generated at
Dynalistで「チェック」(Ctrl+Enter)した項目に付く取り消し線をScrapboxで再現する方法
Dynalistで「チェック」(Ctrl+Enter)した項目には取り消し線が付きます。それをScrapboxに貼り付けた際に、Scrapbox上で取り消し線を再現する方法(取り消し線をScrapbox記法置換する方法)を紹介します。
Dynalistチェックボックス機能でチェックを入れた項目の取り消し線も再現できます。
チェックボックス自体(✓マークとそれを囲む四角形)は再現できません。

スクリーンショット
(Dynalistで「チェック」した項目の取り消し線と、チェックボックスにチェックを入れた場合の取り消し線の例)

(Scrapboxで再現した状態)

全体の流れ
1. Dynalistの内容をHTML形式のファイルとしてダウンロードする
2. それをPandocMarkdown形式に変換する
3. Scrapboxに貼り付ける
4. 余分な部分を除去し、取り消し線をScrapbox記法に置換する

注意点
Dynalistで「チェック」(Ctrl+Enter)することによって付けられた取り消し線は、DynalistにMarkdown形式で書き込むことができる普通の取り消し線(例: ~~hoge~~ )とは別のものとして扱われます。
Dynalistに記入できるMarkdown(リンク画像/太字/イタリック/上述の普通の取り消し線( ~~hoge~~ ))や、Dynalistの独自記法(日時記法/@を用いたハッシュタグ/数式記法)は、この記事で紹介している方法ではScrapbox記法に置換されません。
それらのMarkdownや独自記法を置換するには、こちらに紹介されている方法を併用して下さい(dy2sc.jsを使うのが最も手軽と思います)。

必要なもの
インストール方法はこちら
テキストエディタ
上掲の工程4で使うためのUserScript(下記)を、自分のページに貼り付けてブラウザをリロードし、同ページの上部に表示される“Load new UserScript”をクリックしておく。
script.js
scrapbox.PopupMenu.addButton({ title: 'Check', //Checkはボタンの名前。変更可能。変更する場合は'に挟まれた部分を書き換える。 onClick: text =>{ //取り消し線をScrapbox記法へ置換 text=text.split(/\n/).map(line => line.replace(/\~\~(\~+|[^~]+)\~\~/g,'[- $1]')).join('\n') //行頭の〈ハイフン+半角スペース3個〉を除去 text=text.split(/\n/).map(line => line.replace(/\- {3}/g,'')).join('\n') //Dynalistの余分なインデントを除去 text=text.split(/\n/).map(line => line.replace(/\s{4}/g,' ')).join('\n') return text; } })

手順
このアウトラインをScrapboxで再現するという例で説明します。2行目の done および5行目の 1 (チェックボックスにチェックを入れたもの)に取り消し線が付いている状態です。


1. Dynalistの内容をHTML形式のファイルとしてダウンロードする
Dynalistにて、Scrapboxに貼り付けたい部分の最上位の行(この例では test の行)の行頭にマウスカーソルを合わせ、「≡」の形のアイコンをクリックして、“Export...”をクリック。

Exportの画面が開くので、上部のタブで“Formatted“をクリックし、右下の“Download as file“をクリックします。
右上の“Export visible items only”にはチェックを入れません。


すると、この画面の中央に表示されているコンテンツがHTML形式でダウンロードされます。
ファイル名は dynalist-2019-10-16.html のようになっている。
ファイル名は書き換えてもよい。

2. HTMLファイルをPandocでMarkdown形式に置換する
Pandocをインストールしたうえで、コマンドプロンプト(MacやLinuxならTerminal)を開いて、次のように実行します。
$ pandoc ダウンロードしたHTMLファイルのファイル名.html -s -o 出力するファイル名.md
行頭の $ は入力しない。
出力するファイル名は自由に決めてよい。

たとえば、ダウンロードしたHTMLファイルが dynalist-2019-10-16.html であり、出力するファイル名を output.md としたい場合は、次のように実行することになります。
$ pandoc dynalist-2019-10-16.html -s -o output.md

すると、HTMLファイルをMarkdown形式に変換したファイル(output.md)が作られます。
HTMLファイルと同じフォルダに作られる。

3. Scrapboxに貼り付ける
上掲の手順で作られたMarkdown形式のファイル(output.md)を、まずはテキストエディタで開きます。


このファイルの内容をコピーし、Scrapboxのページの2行目以降に貼り付けます。
2行目以降に貼り付けないとUserScriptが正しく機能しません。

(Scrapboxのページの2行目に貼り付けた状態)

4. 余分な部分を除去し、取り消し線をScrapbox記法に置換する
ページの2行目以降をマウスで選択して、ポップアップしたボタンの中の“Check“をクリックします。
“Check“ボタンは、上掲のUserScriptを設置したことで使えるようになっているものです。

(この例では右から3個目に“Check“ボタンがある)

“Check“をクリックすると、下記の2つが実行されます。
各行頭の〈ハイフン+半角スペース3個〉および、余分なインデントが除去される。
取り消し線が再現される。


最上位の行( test )が、このままだとScrapboxページの2行目にあるので、これをページタイトルにするために、ページの全体を1行ぶん上へ移動させます。すなわち、Scrapboxページの1行目でDeleteキーを押すか、2行目の先頭でBackspaceキーを押します。

すると、このような状態になり、もとのDynalistでの階層構造と取り消し線が再現されます。

(Scrapbox)

(Dynalist)

以上です。

備考
Dynalistからエクスポートした内容の1行目(Scrapboxでページタイトルとなる行)がチェック(Ctrl+Enter)されている場合は、上掲の手順を最後まで実行すると、ページタイトルにScrapbox記法( [- hoge] )が含まれた状態になります。


この記法部分が不要の場合は、手動で消します。
hr