kumamotone’s blog

iOS/Android アプリエンジニアです https://twitter.com/kumamo_tone

Scrapbox に書いた箇条書きを Markdown に変換する JavaScript

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'); // 変換した行を改行コードで結合

使い方

  1. (Chromeの場合) F12 で開発者メニューを開く
  2. Console に上記のスクリプトを入力して Enter
  3. 右クリックして Copy String Contents を選択

先行研究

shokai/Scrapboxからmarkdownに変換 の内容をベースに、箇条書きが深くなったときにうまく変換してくれなかったのでそこだけ書き足した。箇条書きのみのテキストなら変換できる。画像とかアイコンとか表とかそういうのがどうなるのかわからない。

Scrapbox はマジで愛されていて、いろんな実装が存在する。TypeScript や Rust で変換できる CLI を書いてくれている人とか、ブックマークレットを書いてくれてる人とか、UserScript という仕組みを使ってパーサーを書いてくれている人がいるので、それに乗っかってポップアップメニューでコピーできる仕組みを作ってくれたりしてる人とか……めちゃくちゃ良いんだけど……なんというかみんな根気があるな……という気持ちになってしまった……おじさんは、なんとなく何をやっているのかが酔っ払っていてもわかるぐらいのコード量で、コピペしてなんか出た!ぐらいのUXじゃないと安心して安定的に運用できる気がせず……まあ別にそれがイイという哲学でやらしてもらってるんで、別にええんですけど……