搜了搜使用octorpress的網站,發現包括本博客在內的不少博客都清一色地使用了默認主題,幾乎未做任何修改。我本想搜一個現成的有創意的主題直接用,結果未能如願。看來只能本身動手,豐衣足食了。javascript
自定義主題最基本的能力要求是對html、css等必定了解,但很惋惜,筆者並不知足這一要求,只能邊嘗試邊查資料邊學習。因此,若是翻譯有誤或者有知識性錯誤,請你們指正。css
2.0版本的Octopress添加了 source/_includes/custom 目錄。若是你的octopress沒有這個目錄,請升級到最新版本。這個目錄頗有用。目錄結構以下:html
source/ _includes/ # 主佈局部分 custom/ # 自定義網頁頁眉、頁腳、導航欄、邊側欄、網頁頭部信息 asides/ # 邊側欄主題部分 post/ # 博文元數據、分享和評論部分 _layouts/ # 頁面、博文、分類存檔佈局
向主導航欄添加或刪除連接,須要編輯/source/_includes/custom/navigation.html。這個文件的內容通常像這樣:java
<!-- lang: html --> <ul class="main-navigation"> <li><a href="{{ root_url }}/">Blog</a></li> <li><a href="{{ root_url }}/archives">Archives</a></li> </ul>
每一個連接以 {{ root_url }} 開頭(當網站被部署到子目錄中時,這會幫助Octopress生成不一樣的url)。若是你正在把你的網站部署到像yousite.com/octopress這樣的地方,這對你會頗有幫助。git
Octopress默認把你博文的索引頁做爲首頁。若是你想自定義index頁,執行這樣的命令:github
mv source/index.html source/blog/index.html rake new_page[index.html]
接着,當你升級Octopress時,更新你的 Rakefile 以確認你的新博客主頁被保留了。web
blog_index_dir = 'source/blog'
記得爲你的網站更新主導航,由於目前的博客連接到 / 。(具體請查看修改導航欄這一部份內容)添加home的連接,而後把'blog'的連接設置到 /blog/api
這樣,source/index.html就會成爲你的首頁。sass
若是你想修改 < HEAD > 請編輯 /source/_includes/custom/head.html文件。ide
<!-- lang: html --> <!--Fonts from Google"s Web font directory at http://google.com/webfonts --> <link href="http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css"> <link href="http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
你能夠添加或移除Google Fonts,插入javascript腳本等
Octopress在邊側欄上顯示Twiter,Pinboard一類的第三方服務。你能夠在 _config.yml 中從新調整這些,並建立自定義的邊側欄。
default_asides: [asides/recent_posts.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html] # blog_index_asides: # post_asides: # page_asides:
若是你想向邊側欄添加新的部分,能夠在 source/_includes/custom/asides/ 下建立一個新的文件。例如不少人都想建立一個About Me,該目錄下已經有一個about.html文件用於被添加到邊側欄。
<!-- lang: html --> <section> <h1>About Me</h1> <p>A little something about me.</p> </section>
不管合適你添加一個新的部分到邊側欄,請參照這個模式。使用 < section > 和 < h1 > 來創建標題。而後編輯 _config.yml以把他們添加進去。
default_asides: [asides/recent_posts.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html] blog_index_asides: [custom/asides/about.html, asides/recent_posts.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html] post_asides: [custom/asides/about.html, asides/recent_posts.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html] # page_asides:
標題和附標題須要在_config.yml中編輯。若是你須要作其餘改動,請編輯/source/_includes/custom/header.html
<!-- lang: html --> <hgroup> <h1><a href="{{ root_url }}/">{{ site.title }}</a></h1> {% if site.subtitle %} <h2>{{ site.subtitle }}</h2> {% endif %} </hgroup>
你能夠在 source/_includes/custom/footer.html 中自定義頁腳
<!-- lang: html --> <p> Copyright © {{ site.time | date: "%Y" }} - {{ site.author }} - <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span> </p>
你能夠把它改爲任何你想要的樣子。但必定要酷且保留Octopress的連接。
若是你想自定義樣式,請編輯sass/custom/_styles.scss。這個樣式表最後會被導出。
你可使用HSL Color Picker這個簡單的基於網頁的顏色拾取器幫助你選擇顏色。
# In /sass/base/ _theme.scss # 全部的顏色都被定義在這裏 # In /sass/custom/ - 修改這些文件能夠簡單地個性化 _colors.scss # Override colors in base/_theme.scss to change color schemes _styles.scss # Easly Override any style (last in the cascade)
自定義顏色
<!-- lang: css --> $header-bg: #263347; $subtitle-color: lighten($header-bg, 58); $nav-bg: desaturate(lighten(#8fc17a, 18), 5); $sidebar-bg: desaturate(#eceff5, 8); $sidebar-link-color: saturate(#526f9a, 10); $sidebar-link-color-hover: darken(#7ab662, 9); /* Navigation */ $nav-bg: #ccc !default; $nav-color: darken($nav-bg, 38) !default; $nav-color-hover: darken($nav-color, 25) !default; ...