GaucheのドキュメントをDashに追加する

f:id:kanno_kanno:20170504161236p:plain

f:id:kanno_kanno:20170504161309p:plain

背景

Gaucheのドキュメントを見るにはEmacsのinfoから引けるようにしたりブラウザで見たりとあるけど、個人的にはDashで引けると助かる気がしたので追加してみた。

手順

  1. GaucheのドキュメントHTMLを作成

僕はVM上のcentosでHTMLを作ったけど、Macでやるのも変わらないと思う。

-- text2htmlがなければinstallしておく
$ sudo yum install -y text2html

-- http://practical-scheme.net/gauche/download.html
$ curl -O -L "http://prdownloads.sourceforge.net/gauche/Gauche-0.9.5.tgz

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 6307k  100 6307k    0     0  1576k      0  0:00:04  0:00:04 --:--:-- 2091k

$ cd Gauche-0.9.5
$ gzip -dc Gauche-0.9.5.tgz | tar xvf -

$ ./configure
$ make

$ cd doc
$ make html

これでdoc配下にgauche-ref.html(英語版)およびgauche-refj.html(日本語版)が出来る。 以下は日本語版を追加するものとして進める。

  1. DashのDocset作成

公式の通り。

12 Any HTML Documentation

こちらに沿う。Dashingを使わない場合は以下のサイトの通りでいけるのではないかと思うけど確認はしていない。 自作Dash docsetの作り方 — Alfred + Dashの爆速リファレンス引き環境を拡張する

-- Docset用のsqlite DBとかplistとか作ってくれるやつ
-- https://github.com/technosophos/dashing
-- 予めGoが必要
$ go get -u github.com/technosophos/dashing

$ cd <gauche-refj.htmlが置いてあるディレクトリ>
$ dashing create

dashing.jsonの雛形が出来るので編集する。

{
    "name": "Gauche",
    "package": "gauche",
    "index": "gauche-refj.html",
    "selectors": {
        "h1.chapter": "Chapter",
        "h3.subsection": "Section",
        "dt b": "Info"
    },
    "ignore": [
        "ABOUT"
    ],
    "icon32x32": "",
    "allowJS": false,
    "ExternalURL": ""
}
  • indexはindex.html的なのを指定するのだけど、gaucheの場合1HTMLファイルしかない

    • コメントにてセクションごとにファイルを分ける方法を教えて頂いた

      make htmls とすればセクションごとに分割された html を得ることもできますよ。

  • selectorsは、セレクタにマッチした部分をDashの索引として登録する

編輯したらbuildする。

$ dashing build gauche

-- こんな感じでファイルが出来る
$ tree gauche.docset/
gauche.docset/
└── Contents
    ├── Info.plist
    └── Resources
        ├── Documents
        │   └── gauche-refj.html
        └── docSet.dsidx

3 directories, 3 files
  1. DashにDocsetを追加する

メニューDocsets+から上記のgauche.docsetを選べば出来上がり。

感想

1ファイルに全て入っているせいかDash上の検索及び表示が若干遅い時があるけど、やりたいことは出来たと思う。