之前有提到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 $USER
usermod -G
一定要加-a
,不然你group就會只有disk
,如果剛好你的帳號是唯一在sudo
group的話,就只好拿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.html
rake generate
rake preview
rake deploy
目前的頁面最後已經加上了CC-BY-NC說明,就是將source/_includes/custom/footer.html
內加上相關HTML tag的。
順序如下
rake newpage['about']
source/about/index.md
source/about/index.md
source/_includes/custom/navigation.html
rake generate
rake preview
rake deploy
rake 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
改成octopress
origin
source
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 |
|