以前書いて以降にOctopressに関して変更した部分や、 調べた事のメモです。
- faviconの変更
- 404 not found
- 画像の挿入
- 自分のpostへのリンク
- Markdown記法でのtable
- 見出し目次の追加
- footnote
- テンプレートの変更
- Markdown拡張子の変更
- 関連記事
- タグクラウド
faviconの変更
小さいサイズの絵を用意してsource/favicon.png
と取り替えるだけです。
404 not found
Octopress+GitHub Pagesで自分のurl以下でページ下で存在しないページにアクセスすると、
この様に全てGitHub Pagesの404 Page not found が出てきます。 これを、自分のurl以下では自分用の物を表示させるためには
rake new_page["404.md"]
でsource/404.md
を作り、中身を適当に編集します。
source/404.html
を直接作ってもこれがそのままコピーされるのでそれも可能です
1。
source/index.html
なんかを元にして上の方にページがみつかりませんでした
、
的なものを付けて作るのが手っ取り早いです。
こんな感じで書いておくと、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
こんな感じになります。
追記: 2014/02/14
404.mdのコードを追加。
追記ここまで
画像の挿入
Ref: 公式ブログ
より
1
|
|
Octopressと同じサイト内で画像を挿入させるには、通常source/images/
に画像を入れ、
{% img /images/pic.png %}
と言うように呼び出すことが出来ます。勿論、画像ファイルは通常のurlでも構いません。
上の公式にあるように、左寄せにして、サイズを100 x 200 にしたいときは
{% img left /images/pic.png 100 200 %}
とします。
追記: 2014/02/14
上のOctopress用のimgタグの両側にraw
を入れ忘れて
普通の<img...>
になってしまっていたので修正。
追記ここまで
取り敢えず色々試した感じ、width
以降に関しては
- imageファイル直後に数字が1つ若しくは2つある順に
weight
、height
になる。 - 2つめが数字でない場合、
"
で囲っていなくてもtitle
になる。 - ただし、数字から始まる文字列(
10aaa
)みたいな場合は10だけがheight
の値になりaaa
は無視される。 - 数字の後、
"
で囲った言葉ひとつだと、それが"
も含めた言葉として認識されてtitle
、alt
の両方になる。
ちょっと挙動が良くわからないですが、title
、alt
を気にしなければ、取り敢えず
1つ数字を入れればwidth
に、2つ入れればheight
にも数字が入る、と。
また、Markdownの通常の画像挿入も使えます。
![alt](/images/pic.png "title")
これを使っておけば、GitHubやBitbucketでのプレビューでも画像がみれるので そちらでも見たいような物はなるべくOctopress(jekyll)独特の文法は避けた方が無難かと。
ただ、これだと画像のサイズが調整できないので、直接htmlを書いてもokです。
<img src="/images/pic.png" alt="alt" title="title" width="100" height="100">
これもちょっと注意が必要で、必ず<p>
~</p>
が前後に挿入されるため
インライン的には使えません。
(このラインの前後を他の文章とつなげると、つなげたもの全てが<p>
でくくられる様です。)
それから、height
だけを指定することが出来ませんでした。
出来上がったhtmlファイルを見ると正しくheightの部分も変換されていて、
そのファイルを直接見ると大きさが正しくブラウザで表示されるのですが、
多分どこかでスタイルが邪魔してOctopressで出来上がったページを見るとサイズ指定が無視されます(bugなのか使用なのか…?)
とりあえず両方共設定してやれば思い通りにはいきます (高さだけ揃えて横幅が違う物も一揃えに、とやるやり方が今のところ分かりません。)
自分のpostへのリンク
post
はpublish
される時にデフォルトだと
2013-03-07-setup-octopress.markdown
といったpostは
/blog/2013/03/07/setup-octopress
的な物に変更されますが(_config.yml
内のpermalink
の値)、
これだと少し面倒だし、これらのページヘのリンクを書くと、
ディレクトリ構造を変えた時に全て手で書き換えないといけなくなってしまいます。
そこで、post_url.rb
というものを導入します
(ダウンロードしてplugin
フォルダに入れる)。
これを使うと
[link to the post]({% post_url 2013-03-07-setup-octopress %})
といった、そのままの形で書くことが出来ます。
Markdown記法でのtable
Markdownでは
left column | center column | right column
:-----------|:------------:|------------:
a|a|a
b|b|c
と書くと表組みが簡単に書けるわけですが(二段目の:---
等の部分で:
が左だけなら
左寄せ、両側なら中寄せ、右だけなら右寄せ)、Octopressでは
スタイルがちゃんと用意されてないので表示が微妙ですが、一応最初から表組みにはなってます。。
これを有効にするには次の様な表組み用スタイルシートを
source/stylesheets/data-table.css
に用意し
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
更にsource/_includes/head.html
のhead
内に
1
|
|
の一行を加えます。
追記
stylesheetはせっかくsassでまとめる様になってるので
data-table.css
の内容をsass/custom/_styles.scss
に書いて
あげるのが素直。
追記ここまで
上の表組みもこのように表示されます。
left column | center column | right column |
---|---|---|
a | a | a |
b | b | b |
c | c | c |
d | d | d |
Note: 通常のMarkdownと違って、両側に|
を入れてしまうと、
左端は余計な区切りに、右端は|
文字の最後に挿入される様な形になってしまうので、
Octopressで使う場合は両端の|
は入れない様にしないといけません。
(もしかしたらどこか変な使い方をしてるだけかもしれませんが)
追記: 2015/11/14
以前まで上のSCSSの中でtable
要素について
上の参考記事に従って* + table
みたいに隣接要素を要求してましたが、
今は下の様な変更を行っています。
追記ここまで
見出し目次の追加
上のContents
下に出している各見出しをまとめた目次の出し方です。
_config.yml
に
1 2 3 |
|
を追加。記事に
1
|
|
を入れればそこに目次が出来ます。
ただ、これだけだと日本語の見出しを使った場合
Liquid Exception: incompatible character encodings: UTF-8 and ASCII-8BIT in atom.xml
と怒られるので、
~/.rvm/gems/ruby-1.9.3-p392/gems/jekyll-0.12.1/lib/jekyll/converters/markdown.rb
(Macで$HOMEにインストールした場合)
または、
/lib/ruby/gems/1.9.1/gems/jekyll-0.12.1/lib/jekyll/converters/markdown.rb
(cygwinでcommonディレクトリにインストールした場合)
の中身を
ここ
で紹介されてるように変更します。
footnote
https://github.com/fmcypriano/footnote-octopressから
footnote.rb
をインストール(/plugins/に追加)します。
追記: 2013/05/01
書いた人がユーザー名を変更したらしく
(fmcypriano
fcy
)
現在はこちら
https://github.com/fcy/footnote-octopress
になってます。
追記ここまで
追記: 2013/12/20
Latexの様にその場で書けて番号等を気にしなくても自動で投資番号を振ってくれることが 出来るプラグインを作りました。
追記ここまで
フットノートは
1
|
|
を挿入するとリンクが出来て2 下記を記事の下に書き込めばOK。
1 2 3 |
|
リンクにマウスを持って行くとノートがポップアップもしてくれる。
これはmarkdownのコンバーターにrdiscountを使っている場合で、
kramdown
などを使うと通常のMarkdownの様な[^1]
でリンクを作って
[^1]:
で参照先を書く、と言うことも出来ます。
(kramdown
ソースコード表示を変更したくてちょっと変えてみましたが、
色々あって取り敢えず保留中です)
テンプレートの変更
Rakefileにちょっと手を加えて、
rake new_post['xxx']
で作る段階でYAMLブロックに挿入される要素を増やします。
Rakefile
内の110行目辺りにnew_post
にあたる部分があるので
ここのCreating new post...
以下にある部分を変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
初期値がpublished: false
にしておいた方が気楽にnew_post
できると思います。
(間違って作った中途半端なファイルがいつの間にかアップロードされることが無い様に)
それから、ほぼ毎回使う下に区切りのmore
と、目次の項目も最初から書いてあります。
categories
等にタイトル名をそのまま入れていますが、
通常rake new_post
をするときには、カテゴリーになるような言葉を
いくつか入れる様にして、最初からそれをcategories
とkeywards
とtags
に入れて
しまっています。
(タイトル名はいずれにしろ変更するので)
同じ日に同じカテゴリーの投稿をするときには変更する必要がありますが、 それくらいなら手作業で良いと思いますので。
それから、YAMLブロックの最後に空白を入れてあります。 こうしないとブロックの一番最後の行がMarkdownエディタで見出し文字に なってしまいますので。
categories
とtags
については、今のところちゃんと使い切れてないので、
取り敢えず両方に同じ値を入れています。
直ぐ下のnew_page
にあたる部分にも、取り敢えず
published: false
だけ追加してあります。
Markdown拡張子の変更
Rakefileでついでに26行目あたりにある
new_post_ext = "markdown" # default new post file extension when using the new_post task
new_page_ext = "markdown" # default new page file extension when using the new_page task
の行を
new_post_ext = "md" # default new post file extension when using the new_post task
new_page_ext = "md" # default new page file extension when using the new_page task
として、新しくnew_post
した時に出来るファイルの拡張子を.md
にして短くして
おきました。
関連記事
ここから
related_posts.rb
をとってきてplugins
ディレクトリに入れます。
次に、
1 2 3 4 5 6 7 8 |
|
と言った形の内容で、source/_includes/post/related_posts.html
と言うファイルを作ります。
次に、source/_layouts/post.html
を編集して、
1 2 3 |
|
の3行をfooter
内に挿入する。(一番下に入れました。)
下にあるYou may also like...
のところです。
さらに_config.yml
へ
# Related post
related_posts: true
related_posts_limit: 5
と入れておきます。
このプラグインではtags
の値をみて、関連ある投稿を集めます。
プラグインの中身を見れば直ぐ分かるのですが、
最初、categories
だけを設定していたので、
全然関連付け記事が取れなくてちょっと悩みました
タグクラウド
で公開されているプラグインを使いました。 このレポジトリ をcloneするなり中身をダウンロードしてくるなりして、
octopress-tagcloud/plugin/tag_cloud.rb
をplugin/
フォルダに、octopress-tagcloud/source/_includes/custom/asdies/
にあるtag_cloud.html
とcategory_list.html
をsource/_includes/custom/asdies/
に
コピーします。
後は
_config.yml
内のdefault_asides:
の配列に
custom/asides/tag_cloud.html
を加えればタグクラウドが表示されます。
さらに
custom/asides/category_list.html
を加えればカテゴリーが リスト形式で表示されます。
ここでタグクラウド、と言っているものはcategories
で指定された物の
クラウド表記になります。(category_listも同様)