入社して1年と1ヶ月が経ちました。

フロントエンジニアとして配属されたにも関わらず
あまりに英語ができない私を危惧したトレーナーさんに

「日報で、その日覚えた開発にまつわる英単語を書け」

と言われ、つらいめんどいと鼻啜りながら書いていた英単語録が

とうとう200近くになりまして
ついに先日単語被りをしてしまった(blockなんて平凡な単語を2回も書いた)ので

検索しやすい・記録しやすい・後から見て自分で使えるようにせねば、と


高速ドキュメント検索ツール「Dash」に、自作ドックセットを作りました。



Github - tokimari/mywords

(書いてる内容は低レベルです…w)


Ameba(アメーバ)


参考にしたのは
 Generating Dash Docsets - Kapeli 公式ドキュメント
 exlee/d3-dash-gen D3.jsのDashドックセットつくるやつ





意外に作り方の日本語記事なくてヒィーって感じだったんですが
普通にドキュメント通りにすればできたので、気軽に作ってみるのもいいかもしれません٩( 'ω' )و


1. ドックセットの準備
$ mkdir -p mywords.docset/Contents/Resources/Documents/


2. ドキュメントファイルを作成

Contents/Resources/Documents/内に、
dashで呼び出す用のドキュメントファイルをHTMLで作成(これが一番面倒)


3. info.plistの作成

公式サイトから土台のinfo.plistをDLしてきて、自分用に修正します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>CFBundleIdentifier</key>
  <string>mywords</string>
  <key>CFBundleName</key>
  <string>mywords4dev</string>
  <key>DocSetPlatformFamily</key>
  <string>mw</string> // Dash上で呼び出すキーワード(mw: で呼び出せる)
  <key>isDashDocset</key>
  <true/>
  <key>dashIndexFilePath</key>
  <string>API-reference.html</string> // ドックセットのindexファイル名
</dict>
</plist>


4. データベースとテーブルの作成、単語の登録

Contents/Resources内にドックセット用のデータベースとテーブルを作り、
登録したい単語を追加します。

$ sqlite3 docSet.dsidx
sqlite> CREATE TABLE searchIndex(id INTEGER PRIMARY KEY, name TEXT, type TEXT, path TEXT);
sqlite> INSERT OR IGNORE INTO searchIndex(name, type, path) VALUES ('block', 'Style', 'bem.html#no186');

私の場合は、単語被りもあり得るので、nameはユニークな値に設定しませんでした。

VALUES ('name', 'type', 'path'); の各パラメータは、
・name:検索する単語
・type:Dashで用意されている Supported Entry Types から選択
・path:Contents/Resources/Documents/からの相対パス or http://-



まだ細かく作ってませんが、アイコンつけたり色々設定出来るようです。


Ameba(アメーバ)


いい感じに自作ドックセットができました。

が、これ今までの分追加するのかなり面倒そうで逃げ腰ナウです_(:3 ⌒゙)_
データベースにぶち込んだらいい感じにドキュメントも追加されるように…したい…_(:3 ⌒゙)_
どうやったらできますかね…_(:3 ⌒゙)_


今186記事なんですが、たまに同期やフロントエンジニアの凄い上司から日報に返信がくるようになったり、地味に読んでくれている人がいるので嬉しい限りです。
トレーナーの言うことは聞くものだなと有り難く思っております。(日報時間かかるけど)