作成: 2020-08-29
最終更新: 2020-08-29
できそうでできないもどかしさ!!
— yoshinon@情報管理LOG🌻 (@yoshinon) August 28, 2022
ScrapboxでWebクリップ(全文)をする方法 https://t.co/9kthmoX5VC pic.twitter.com/OWFVEMJdrT
できそうでできないもどかしさ!! ScrapboxでWebクリップ(全文)をする方法 https://t.co/9kthmoX5VC https://t.co/ https://teineini.net/20220828-scrapbox-webclip/
というツイートを見つけた。
リンク先を見ると、「MarkdownをScrapbox記法に置換するUserScript - POTLATIPS」というものがあり、ScrapboxにMarkdown記法で書かれたものを貼り付け、範囲選択して実行するとそれを変換してくれるスクリプトらしい。
それが使えそうな気がする。
流れとしては、
- SafariでWebページをリーダー表示したもの相当(=記事)をショートカットに取り込み
- 記事のリッチテキストをMarkdownに変換
- 「MarkdownをScrapbox記法に置換するUserScript - POTLATIPS」をショートカット内で実行できるように少し手を加え、MarkdownをScrapbox記法に変換
- その結果をクリップボードにコピー
とすればできそう。
上の「3. 」はショートカット内でJavascriptを実行するアプリ
を使う。
そのScriptableがインストールしてあると、ショートカット内で「Scriptable > Run Inline Script」アクションが実行できるようになる。UserScriptをそれに合わせて少しだけ書き換える。
冒頭3行の
scrapbox.PopupMenu.addButton({ title: 'MdSc', //"MdSc" is the name of popup button. onClick: text =>{
を
const md2sb = text => {
に書き換え、書かれているこの関数をmd2sbという名前で呼べるようにする。
末尾の2行
} })
を
} Script.setShortcutOutput(md2sb(args.shortcutParameter)) Script.complete()
に書き換えて、「Run Inline Script」アクションに渡されたテキスト(args.shortcutParameter
)をmd2sb関数で処理(md2sb(〜)
)して、それをアクションの出力にして(Script.setShortcutOutput(〜)
)、このアクションを終了させる(Script.complete()
)。
とりあえず、できたものを実行してみた。
ところどころフォーマットが崩れている。手直しが必要そう。
Scrapboxページのタイトルも対象ページのタイトルもURLも無い。
そこで、これを少し変更して、
- Scrapboxページのタイトル
[Webページのタイトル URL]
を先頭に追加するようにしてみた。
Webページの全文をScrapboxにクリップできる形式に変換するショートカット
Web頁2SB書式: https://www.icloud.com/shortcuts/f6970eb03fed4032ae28cf6aca4c15fd