LoginSignup
2

More than 5 years have passed since last update.

gem ZipangでOctopressの日本語URLをローマ字読みぽくする

Posted at

標準だと中国語読みローマ字になる?

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 とかになってしまい、さっぱり私にはわからない形になる。

どう解決するか

考えたのは

  1. 意識高く、全ては英語で通すべきである
  2. URL encodingすればいいんじゃね?
  3. stringexを拡張して日本語ローマ字にするべきだ
  4. 便利なライブラリがあるに違いない、あるに決まった。

の4択だが見事4.に成功した。Ruby - 日本語をURL用ローマ字に変換するgem Zipangを作った - Qiitaである。神。

ちなみに1.はわかるがやはり和書のタイトルなどを入れたい場合には無理があるだろう。2.はファイルシステムに存在できない文字がでたらエスケープとかクソめんどいことになるだろうなと、3.は意識高すぎてツライのでパス。

適用

  1. Gemfileに gem 'zipang'行を追加し、bundle install
  2. to_urlは正規化目的で最終的には通したほうがいいだろうと考えて、がんばって x.to_url となっているところをすべて Zipang.to_slug(x).to_url に置き換える。私の場合は Rakefileplugins/category_generator.rbplugins/tag_cloud.rb であった。
  3. gem kuromoji が jdk に依存しているので Java のインストールが必須であった。
  4. 試す。以下な感じ。いい感じである。
~/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すると、jenkinsDockerを使ってAmazon CloudFront上にDeployするようにしてあるので、そちらもJDKのインストールに対応させる。OpenJDKで問題なく動いてるようだ。

追加した行はこんな感じ。いきなりイメージサイズが膨らむのが残念なところ。FROMubuntu:15.04

ENV JAVA_HOME /usr/lib/jvm/java-6-openjdk-amd64/
RUN apt-get install -y openjdk-6-jdk

考察

以上で完了。サンプルはPharaohKJ/octopress.phalanxware.comlibAlexandrina.so.octopress

しかしいろんなサービスを使って無料でブログってる方々は多いと思うが、Java依存なGemをinstallできる環境って限られてるかもしれないから注意。・・・まぁやっぱり英語で生きていくべきなのであろう。

余談 : SEO有利あんのかな?

自分がURLみたり、ファイルシステム上をみたりするときにみやすいだけじゃなくて、最終的にできたURLがSEO有利不利あるのかなーと思ってかるーくgoogleしてみたら以下の様なページが。

URLを日本語にすべきか? => UXの観点から日本語のほうがいいかもしれないがSEOとは関係ない | 海外SEO情報ブログ

GoogleのSyed Malik Mairaj氏は、その国の言語でURLを付けることを推奨しました。
ただしそれはユーザー体験の観点からです。
Googleの評価が高まりランキングが上がるということではありません。

なるほど。んじゃまぁ今回は自己満足ということで。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2