ドキュメント管理ツールesa.ioをGASで拡張した話です。備忘録的なやつ。
自分は情報共有ツールesa.ioを一人で使っています。さらっと書ける[WIP]の概念をドキュメント管理に持ち込んでいたり、タイトルに /
をつけるとディレクトリになる点がすごく便利です。
esa.ioのトップページはレスポンシブで1320pxより小さなディスプレイで見ると Recently updated のセクションが消えてしまいます。
つまり、スマートフォンではトップページで最近見た記事を見ることが出来ません。(別のページに行けばあります)
自分はこの解決のためにスマートフォンアプリを作っていましたが、トップページに表示される記事(Readme.md)に最近見た記事をAPIで書き込んでしまえばいいのでは?という考えに至りました。
調べて見たところ既に前例があり「esa のトップページを活発にするなら esapad があるじゃない」という記事でRuby gemでスケジューラーに乗せて更新するというアプローチが取られていました。
個人で使うドキュメント管理のために定期実行は考えたくないので、メルカリ社などでよく使われているというGAS(Google App Script)を使えば便利そうな予感がしました。
GAS … GoogleDriveで動くExcelのマクロみたいなもの。JavaScriptで書ける
なのでRuby gemで紹介されていた esapad をGASで動くJSに移植しました。
使い方
需要はあるかわかりませんが使い方です。
STEP1: アクセストークンを取得する
このGASの実行にはesa.ioを操作するためのアクセストークンが必要です。
https://docs.esa.io/user/applications
のPersonal access tokensセクションの Generate new tokenを押すと文字列が生成されます。
その際にSelect scopesでwriteにチェックを入れるようにしてください。(Readme.mdの更新に必要です。)
文字列が生成されるので保管しておきます。
STEP2: GoogleDriveにスクリプトを作成する
上のスクリプトをGoogleDriveに入力しましょう。
その際にteamName, tokenに自分のチーム名と先程のアクセストークンを入れておいてください。
STEP3: 置き換えたい場所にタグを入れます
esa.ioでREADME.mdの任意の場所に
<! — RECENTLY-UPDATED-POSTS-START →
<! — RECENTLY-UPDATED-POSTS-END →
を入れてください。
STEP4: テスト実行
試しに実行してみます。実行するとREADME.mdのSTEP3で入れた箇所に最近見た記事一覧が追加されます。
STEP4: 定期実行させる
下の記事を参考に定期実行の設定を行いました。
お気持ち
応用が効く内容なので今後問題が出てきたらGASのようなミニマムな解決方法でなんとかしていけそうな気がしました