generated at
Scrapboxページの読み上げ
ScrapboxのAPIでは、ページのテキストデータが取得できる
wget でテキストデータを取ってきて、macOS のsayコマンドに送ると、読み上げができる
(誰でも思いつきそうなことだけど)
$ wget -q -O - https://scrapbox.io/api/pages/villagepump/相手に勢いがあると、協力してやろうかなと考える心理/text | say
たぶんだけど、WindowsやLinuxでも同様なことはできるだろうと思う

awk を使って指定した行を読み上げさせる
ここでは 4行目から7行目まで
$ wget -q -O - https://scrapbox.io/api/pages/villagepump/井戸端/text | awk '4<=NR && NR<=7' | say
10行目から17行目まで
$ wget -q -O - https://scrapbox.io/api/pages/villagepump/井戸端/text | awk '10<=NR && NR<=17' | say

豆知識をひとつだけ選んで読み上げる
$ wget -q -O - https://scrapbox.io/api/pages/villagepump/豆知識/text | grep '^ ' | grep -v '\t' | grep -v ' ' | shuf -n1 | tr -d '\\[\\] ' | say

やってみて気づいたこと
読み上げに対応したテキストを工夫する必要がある
書き言葉と話し言葉の違い
読み上げ用にテキスト整形をするスクリプトが必要かも


ページ全部を読ませる
script.js
function readall() { function say(content) { let msg = new SpeechSynthesisUtterance(); msg.text = content msg.lang = 'ja-JP'; window.speechSynthesis.speak(msg); } scrapbox.Page.lines.map(function(line) { say(line.text) }) } scrapbox.PageMenu.addItem({ title: 'Say', onClick: () => readall() })
って書いたけどもうあったdnin
選択したやつを読ませる