標準だと中国語読みローマ字になる?
octopress/octopressのmasterをcloneして使っているのだが、ここのstringex
における to_url
が中国語読み?になってしまう。例えばこんな感じ。
irb(main):001:0> require 'stringex'
=> true
irb(main):006:0> '日本語のurlを"to_url"すると?'.to_url
=> "ri-ben-yu-falseurlwo-to-url-suruto?"
つまり、rake new_post['日本語']
とやると、できるページ名が ri-ben-yu
とかになってしまい、さっぱり私にはわからない形になる。
どう解決するか
考えたのは
- 意識高く、全ては英語で通すべきである
- URL encodingすればいいんじゃね?
- stringexを拡張して日本語ローマ字にするべきだ
- 便利なライブラリがあるに違いない、あるに決まった。
の4択だが見事4.に成功した。Ruby - 日本語をURL用ローマ字に変換するgem Zipangを作った - Qiitaである。神。
ちなみに1.はわかるがやはり和書のタイトルなどを入れたい場合には無理があるだろう。2.はファイルシステムに存在できない文字がでたらエスケープとかクソめんどいことになるだろうなと、3.は意識高すぎてツライのでパス。
適用
- Gemfileに
gem 'zipang'
行を追加し、bundle install
-
to_url
は正規化目的で最終的には通したほうがいいだろうと考えて、がんばってx.to_url
となっているところをすべてZipang.to_slug(x).to_url
に置き換える。私の場合はRakefile
とplugins/category_generator.rb
、plugins/tag_cloud.rb
であった。 - gem kuromoji が jdk に依存しているので Java のインストールが必須であった。
- 試す。以下な感じ。いい感じである。
~/gitwork/myblog
[pharaohkj]$ tree |grep bushi
│ │ │ └── bushi-no-kakei-bo-dokuryo
│ ├── 2015-08-24-bushi-no-kakei-bo-dokuryo.markdown
~/gitwork/myblog
[pharaohkj]$ tree |grep sengoku
│ │ ├── sengoku-taisen
~/gitwork/myblog
[pharaohkj]$ tree |grep shuusi
│ │ │ │ └── shuusi
│ ├── 2015-08-03-shuusi.markdown
Dockerfile
いろいろ事情があって私は GitHub
にpushすると、jenkins
がDocker
を使ってAmazon CloudFront上にDeployするようにしてあるので、そちらもJDKのインストールに対応させる。OpenJDKで問題なく動いてるようだ。
追加した行はこんな感じ。いきなりイメージサイズが膨らむのが残念なところ。FROM
はubuntu:15.04
ENV JAVA_HOME /usr/lib/jvm/java-6-openjdk-amd64/
RUN apt-get install -y openjdk-6-jdk
考察
以上で完了。サンプルはPharaohKJ/octopress.phalanxware.comとlibAlexandrina.so.octopress。
しかしいろんなサービスを使って無料でブログってる方々は多いと思うが、Java依存なGemをinstallできる環境って限られてるかもしれないから注意。・・・まぁやっぱり英語で生きていくべきなのであろう。
余談 : SEO有利あんのかな?
自分がURLみたり、ファイルシステム上をみたりするときにみやすいだけじゃなくて、最終的にできたURLがSEO有利不利あるのかなーと思ってかるーくgoogleしてみたら以下の様なページが。
URLを日本語にすべきか? => UXの観点から日本語のほうがいいかもしれないがSEOとは関係ない | 海外SEO情報ブログ
GoogleのSyed Malik Mairaj氏は、その国の言語でURLを付けることを推奨しました。
ただしそれはユーザー体験の観点からです。
Googleの評価が高まりランキングが上がるということではありません。
なるほど。んじゃまぁ今回は自己満足ということで。