私はアイデアや下書きをまとめるのにScrapboxを利用している。一方で、情報をまとめて公開するのにははてなブログを主に利用している。
はてなブログでは「見たまま」「はてな記法」「Markdown」の三種類の編集方法が選べるが、私は「はてな記法」を使っている。理由は慣れである。
Scrapboxの記法もはてな記法も、簡潔な軽量マークアップ言語であり、プレーンテキストで編集できるので便利ではあるものの、それぞれに互換性がないので、相互に情報を移動させたければ変換が必要である。
しかしながら、そのような変換器が探しても見つからなかったため、Scrapboxからはてな記法へと変換するコンバータ(変換器)を作成した。
コンバータのページ
やや特殊な変換
- 次の3つは単体で表示するためにはコードブロックに入れる必要があるため、その一文字だけがインラインコードになっている場合、<code>~</code>で囲むことはしない。
`[`
→[
`]`
→]
`\``
→`
- 見出し。Scrapboxには見出し専用の記法はないので、行頭にインデントがなく、かつ文字を大きく表示する記法単体しか行に存在しない場合に見出しとした。
[**** 大見出し]
→* 大見出し
[*** 中見出し]
→** 中見出し
[** 小見出し]
→*** 小見出し
ソース
何をやってるのかはソース読むと分かるかもしれません。行きあたりばったりで書いてるので読んでわかるかは分かりませんが…。
github.com
テスト用データ
テストに使ったScrapboxページのコードを載せておく。変換結果を表示して見比べてみると良いかと思う。
Scrapbox表記テストページ 変換器のテストに使います。 [**** 大見出し] [*** 中見出し] [** 小見出し] [* 太字1][[太字2]]ふつうの文字[** ややでかい文字][*** もっとでかい文字][**** 更にでかい文字][***** もっとでかい文字] [/ italic] [- stroke] [*/* bold bigger italic] [**-/ bold bigger stroke italic] [_ underline] [_/* underline italic bold] 数式[$ \sin (x)] > 引用1 >引用2 >引用3 $ cat commandline1 % cat commandline2 $ cat commandline3 `コード`記法。`[`~`]` バッククォート自体は`\`` と入力する。`\` \` code:js function test(){ console.log("Hello World!"); } code:py import numpy as np np.array([]) code:test.md # hoge ## hogehoge table:tabletitle0 1111 2222 3333 4444 aaaa bbbb cccc dddd 箇条書きlevel1 箇条書きlevel2 箇条書きlevel3 箇条書きlevel4 1. 数字 2. 数字 3. 数字 画像 [https://nixeneko.sakura.ne.jp/hatenablog/20180316_oembed/simarin.jpg]画像1 [[https://nixeneko.sakura.ne.jp/hatenablog/20180316_oembed/simarin.jpg]]画像2 URL https://www.yahoo.co.jp [Yahoo https://www.yahoo.co.jp] [https://www.yahoo.co.jp Yahoo] [hoge https://www.yahoo.co.jp https://www.google.co.jp] [https://www.google.co.jp https://www.yahoo.co.jp https://www.yahoo.co.jp] ほかどうでもいいやつ [ページタイトル] [ページタイトル.icon]