hogashi.*

日記から何から

Scrapbox記法からMarkdown記法に変換するCLI書いた

www.npmjs.com

 Yet Another Scrapbox2Markdown @hogashi/sb2md を TypeScript で書いた GitHub - hogashi/sb2md: scrapbox to markdown
 既存研究は Scrapbox → Markdown 変換ツールまとめ - wataash's blog などを参照していて、ざっと見て標準入力から入力できるものがなくて困っていたので作った。さくっとメモ程度に書いた Scrapbox 記法の文章の一部とか、社内で使ってる Scrapbox のページとかを Markdown 記法にしたいことがあるので、ページにアクセスするタイプの CLI だと不便なことがあるのだった。

 既存研究に GitHub - progfay/scrapbox-parser: Scrapbox notation → JavaScript Object というのがあって、↑の記事でもこれを使ってみてはどうかと書かれていたので、じゃあやってみるかとやってみた。 @progfay/scrapbox-parser は便利で、 Scrapbox 記法をパースしてオブジェクトにしてくれるので、オブジェクトのタイプごとに対応する Markdown 記法を書いてあげたら終了した。 YouTube とか見ながらだらっと書いて、最初のコミットから 4時間でできあがった。カッとなってやったのでテストがまだない。

 バンドラに esbuild を使ってみていて、素朴な TypeScript のスクリプトのバンドルには何も設定しなくても特に不便なことがないことがわかった。癖で tsc --init してしまったけどこれも不要だったかも。
 npm パッケージで CLI をつくるのは初めてで、 package.jsonbin フィールドに (shebang を足した) cli.js を指定したらよい、みたいな世界観なのは素朴 package.json | npm Docs"build:bin": "echo '#!/usr/bin/env node' | cat - dist/index.js > bin/cli.js" みたいなことしてるけど、もっとシュッとした方法がありそうな気がしていて、業界標準が知りたい。