Scrapbox に書いたメモを Markdown に最低限変換するJavaScriptを書いた。
scrapbox.Page.lines.map(line => { if (line.section.start) { // セクションの開始行なら見出しとしてフォーマット return `## ${line.text}\n`; } else { // タブの数に基づいてインデントを調整 return line.text.replace( /^\s+/, match => ' '.repeat((match.length - 1) * 2) + '* ' ); } }).join('\n'); // 変換した行を改行コードで結合
使い方
先行研究
shokai/Scrapboxからmarkdownに変換 の内容をベースに、箇条書きが深くなったときにうまく変換してくれなかったのでそこだけ書き足した。箇条書きのみのテキストなら変換できる。画像とかアイコンとか表とかそういうのがどうなるのかわからない。
Scrapbox はマジで愛されていて、いろんな実装が存在する。TypeScript や Rust で変換できる CLI を書いてくれている人とか、ブックマークレットを書いてくれてる人とか、UserScript という仕組みを使ってパーサーを書いてくれている人がいるので、それに乗っかってポップアップメニューでコピーできる仕組みを作ってくれたりしてる人とか……めちゃくちゃ良いんだけど……なんというかみんな根気があるな……という気持ちになってしまった……おじさんは、なんとなく何をやっているのかが酔っ払っていてもわかるぐらいのコード量で、コピペしてなんか出た!ぐらいのUXじゃないと安心して安定的に運用できる気がせず……まあ別にそれがイイという哲学でやらしてもらってるんで、別にええんですけど……