野良 Scrapbox アプリ - 本文を Markdown 形式でクリップボードにコピー

Scrapbox はシンプルな記法で WYSIWYG を実現した稀有なサービスです。プレビューなしにサクサク書けるのです。

Scrapbox で作成した文書を Wiki などに転記するために本文を Markdown 形式に変換してクリップボードにコピーする機能を追加しました。

見出し

Scrapbox には見出しという概念がなく、文字サイズの修飾を使ってます。文字サイズを決め打ちで Markdown の見出しレベルにマッピングするようにしました。

箇条書き

Scrapbox はインデントが箇条書きになるので、Markdown への変換は容易です。

リンク

Scrapbox のリンクは Markdown より簡易な記法になっていますのでこれも変換します。

コードブロック

Scrapbox のコードブロックは code:index.html のような形式なので、ファイル名を出力してから拡張子をそのままコードブロックの開始部分に追加しています。拡張子ではコードハイライトされない言語もあるかもしれません。

Scrapbox の表はタブ区切りになっているので、| で join しています。

イメージ

Gyazo の 画像は一律 png として変換するようにしてます。HTML を scraping すればフォーマットが分かりますがそこまではしてません。

Scrapbox の記法がシンプルなため、正規表現と少しのコードで実装できました。他にも数式などの記法もありますが変換はしてません。

scrapbox.io

以下は上記のページの変換例です。


Sandbox page

Heading1

Heading2

Heading3

Heading4

goroutines.go

 package main
 
 import (
  "fmt"
  "time"
 )
 
 func say(s string) {
  for i := 0; i < 5; i++ {
      time.Sleep(100 * time.Millisecond)
      fmt.Println(s)
  }
 }
 
 func main() {
  go say("world")
  say("hello")
 }

metasyntactic variables

lang 1st 2nd 3rd
us foo bar baz
jp hoge huga piyo
python spam ham eggs


Release v1.4.0 · kondoumh/sbe · GitHub