之前有提到Octopress在文章夠多的時候產生網頁很慢,有號溝的方法。每次要用的時候都要打一狗票。偷懶是組裝工的美德,所以寫了一個script,喜歡的人自己拿去用吧。
這個script主要是
- 例行檢查
- isolate、preview、generate文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
之前有提到Octopress在文章夠多的時候產生網頁很慢,有號溝的方法。每次要用的時候都要打一狗票。偷懶是組裝工的美德,所以寫了一個script,喜歡的人自己拿去用吧。
這個script主要是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
想說裝個Ubuntu 到USB 3.0 Disk上,隨手紀錄一下
1 2 3 4 5 6 7 8 9 | |
這邊有幾個要注意的地方
disk的group中。請用下面的指令
sudo usermod -G -a disk $USERusermod -G一定要加-a,不然你group就會只有disk,如果剛好你的帳號是唯一在sudogroup的話,就只好拿rescue disk開機救回了。VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sdx接下來就是開另外一個新的Virtualbox machine,指定該檔案。打完收工!
主要是要減少寫入Disk的機會,目前找到的方式有
搬了一百多篇文章後,很明顯地發現Octopress產生頁面速度慢到爆炸,有多慢呢?大概下了rake preview指令後要幾十秒才能更新。我猜測rake preview實作上可能是把source/_posts全部都抓起來重新產生頁面造成的問題。
目前能夠找到的方法只能算是workaround,勉強可以號溝。整理如下
rake newpost['新的title']rake isolate['你要修改的檔名']
source/_stash目錄,然後把你rake isolate以外的檔案搬到這邊。換句話說,目前source/_post下面只有你isolate起來的那一篇。rake preview速度飛快,你就快樂的修改你的文章,一存檔馬上就可以看到變化。rake integrate剛才搬出去的文章搬回來。rake generate把所有的文章從markdown轉成HTML,時間一樣漫長。rake deploy發佈到Github總之,就是號溝。如果有更快的工具,支援Markdown和Github page,我會很慎重地考慮再搬一次。
安裝方式如下
_config.yml,把custom/asides/category_cloud.html, custom/asides/category_list.html, custom/asides/top_category_list.html加入到default_asides:這段裏面。
rake newpage['categories']soource/categories/index.md,範例在這邊source/_includes/custom/navigation.html
<li><a href="/categories">Categories</a></li>rake generate
rake preview
rake deploy被bash_completion慣壞了,所以用Octopress的指令要打參數很煩,乾脆自幹一個。如果有需要的朋友就自行取用吧..
步驟如下:
source/_includes/custom/footer.htmlrake generate
rake preview
rake deploy目前的頁面最後已經加上了CC-BY-NC說明,就是將source/_includes/custom/footer.html內加上相關HTML tag的。
順序如下
rake newpage['about']source/about/index.mdsource/about/index.mdsource/_includes/custom/navigation.html
rake generate
rake preview
rake deployrake newpage['頁面名稱'],Octopress就會幫你產生source/頁面名稱/index.md以及相關的metadata。看Octopress手冊看到支援的列表,貼出來方便以後查詢。
昨天評估使用github.io存放網頁的技術,本來是想直接套用Jekyll的東西,無奈能力不足,Markdown的支援度不如預期。後來想到Octopress應該支援度不差。估狗了一下的確可行,順手紀錄一下安裝方式。
先說結論,Octopress + Github pages的好處有
資料有點雜,還是弄一下目錄好了
1 2 3 4 5 6 | |
1 2 3 4 5 | |
基本上就照手冊來,口頭來說就是
官方網址如下
1 2 3 | |
bundle install會根據Octopress裏面的Gemfile安裝使用Octopress需要的Ruby套件。
1
| |
跑下面的指令會要求你輸入Github Page的repository如
git@github.com:wen00072/wen00072.github.io.git
1
| |
setup_github_pages很有趣,值得提一下他幫你做了什麼
origin改成octopressoriginsource branch,從master切到該branch_deploy目錄使用下面的指令,產生資料並上傳到你的Github page,此時直接連Github Page應該就會有網頁畫面了。
1 2 | |
再來我們直接把目前Octopress的Git repository和前面指令產生/修改新的檔案一口氣產生並加到你的Github page中的source branch吧。這個點特別有趣感覺像是做了某種移花接木的技巧,可以仔細想想他為什麼這樣做。想通了應該對於git remote會有點感覺…吧?
提示:你應該還記得前面rake setup_github_pages有提到Octopress會將你的Github page repository URL設成目前working directory git remote的orgin吧?
1 2 3 | |
所以現在你的Github page repository origin會有兩個branch
官方網頁有提到如何更改設定。我只做最簡單的更動,就是_config.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
如果要讓你的config馬上生效,除了local commit, push到source branch外,不要忘記套用到的Github page。
1 2 | |
撰寫文章有兩種,一個是請Octopress幫你生一個範本,指令如下
1
| |
然後Octopress會幫你產生到source/_posts/下面
來個範例
1 2 3 4 5 6 7 8 9 10 11 | |
可以看到產生的檔案會有特定的規範。所以你也可以照樣造句,自己人肉寫一個,這就是第二種方式。不管怎樣,剩下的就是按照Markdown語法編輯檔案了。
最開始有講過,使用Octopress的好處是可以改到爽再deploy到Github page,要如何做呢?很簡單
1
| |
接下來就是用瀏覽器連localhost:4000,如果不滿意就停止,開始改你的markdown檔案,再rake preview。改到爽為止,決定發佈就用下面的指令上傳到Github page上面。
1
| |
上傳完畢後不要忘記local的markdown檔案並沒有commit並且更新。所以你可以做
1 2 3 | |
要注意git add source/_posts/第一次可以這樣做,接下來建議還是針對你的markdown檔案一個一個確認比較妥當。
這邊是我的示範網頁。
嘗試Octopress發現和以前使用的Markdown有一些要注意的地方
<a name="ref"></a>,以前的<a name="ref"/>會讓Octopress的排版亂到讓你想殺人。sass/custom/_layout.scss,把//$indented-lists改成indented-lists,不然list的bullet對齊會很難看。rake preview發現網頁沒更新,請用rake generate檢查是否你的markdown有錯誤的語法。rake generate會噴錯誤,但是不會跟你說在parse哪個markdown檔案出了問題。1 2 3 4 5 6 7 | |