- Published on
Octopress で関連ページを表示する
- Authors
- Name
- Daisuke Kobayashi
- https://twitter.com
Octopress で投稿した記事に関連ページを表示するようにしました.Octopress には標準で関連ページを表示する機能が備わっているので,それを利用します.
Octopress のテンプレートの編集
source/_includes/post/related_posts.html
を作成し,下記の項目を入力します.limit のところが表示する関連ページの記事数を表します.適宜変更してください.
{% raw %} {% if site.related_posts %}
<h2>Related posts</h2>
<ul class="posts">
{% for post in site.related_posts limit:5 %}
<li class="related">
<a href="{{ root_url }}{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
{% endif %} {% endraw %}
記事のテンプレートから上記の html を include します.source/_layouts/post.html
を開き,下記のラインを追加します.表示したい位置に合わせて適宜変更してください.今回は共有ボタン関連の後ろに表示するようにしました.
{% raw %}
<footer>
<p class="meta">
{% include post/author.html %}
{% include post/date.html %}{% if updated %}{{ updated }}{% else %}{{ time }}{% endif %}
{% include post/categories.html %}
</p>
{% unless page.sharing == false %}
{% include post/sharing.html %}
{% endunless %}
+ {% include post/related_posts.html %}
<p class="meta">
{% if page.previous.url %}
{% endraw %}
_config.yml
に下記のフラグを追加します.
lsi: true
rake generate で関連ページが生成されるようになります.一応これだけで生成自体はできるのですが,処理がものすごく遅いです.Runnning the classifier 部分で記事の分類を行っているようなのですが,めちゃめちゃ時間がかかります.そこでメッセージにある通り,gsl を導入しパフォーマンスを改善します.
$ rake generate
## Generating Site with Jekyll
identical source/stylesheets/screen.css
Configuration from /home/daisuke/Projects/blog/octopress/_config.yml
Notice: for 10x faster LSI support, please install http://rb-gsl.rubyforge.org/
Building site: source -> public
Running the classifier... this could take a while.
........................................
GSL のインストール
下記のコマンドを実行し,gsl をインストールします.apt でインストールすると 1.16 がインストールされますが,最新のものでは動かないようなので 1.14 をインストールします.
tar xvf gsl-1.14.tar.gz ./configure sudo make install
下記のコマンドで gsl の 1.14 がインストールされているか確認します.
$ gsl-config --version 1.14
Gemfile の development group に下記の項目を追加し,bundle install
を実行します.
gem 'gsl'
rake generate をすると classifier 部分が高速化されていることが確認できると思います.それでも 1-2 分かかってしまいますが...