takker/Scrapbox書籍を作るUserScript@0.2.0を使ってみる
(のりしろ)
アクティブ読書用projectを文献ごとに分けるかどうかで1つのプロジェクトにする際にtakkerさんの方式がいいのではないかと思って使わせていただいた基素.icon
必要なものを用意する
/takker/Scrapbox書籍のformat@0.2.0のCSVを作る
gyazoのリスト
Book2Scrapboxで作れそう
/takker/複数の画像ファイルをGyazoにuploadするscriptあたりでもいけそうだと思ったけど使い方がわからなかった
/takker/Scrapbox書籍を作るUserScript@0.2.0にjsonとcsvとgyazo access tokenを入れて変換させる
これでいけそうな気配
$ deno run --allow-read --allow-write --allow-net=api.gyazo.com -r=https://scrapbox.io https://scrapbox.io/api/code/takker/Scrapbox書籍を作るUserScript@0.2.0/main.ts gyazoList csv accessToken
章.節 節タイトル ページ番号という形式のタイトルのページができて、その中に子要素が全部埋め込まれるんだ
章の頭(親要素)は章とつながる
takker/Scrapbox書籍を作るUserScript@0.2.0の読書用目次は0始まり
textが読み取れないページがあって/takker/Scrapbox書籍のformat@0.2.0#62ca5d6a1280f00000de210aとかで落ちるのかなあ
初見の感想基素.icon
Book2Scrapboxと違ってテキストが主になっている
Scrapboxに図表を切り出してまとめることが意識されていると思う
図表切り出し作業とテキスト整形作業は必須ですtakker.icon
/takker/資料整形 (active読書)と呼んでいる
数式を書き起こすのに膨大な時間がかかる
逆に、図表を切り出したり数式を書き起こしたりしないアクティブ読書が想像できなかったtakker.icon
リンクつけてメモを加えるだけでも有用基素.icon
普段は画像のみのjsonで読んでいるかんじですか?takker.icon
それともOCRまで貼り付けてた上で、特に整形せずにOCR中の単語をブラケティングしている?
OCRありです。真面目に読む時はOCRを元に文を構造化します基素.icon
最初に読む時には画像を見ることもあります
OCRだと表は100%崩れる。認識ミスもある
2段組みの文章なんかは順番がかなり無茶苦茶になるので、特に画像で確認する必要がありますねtakker.icon
わかる基素.icon
でも予想より崩れなかったりするw
「OCRを綺麗になおしてから読む」という癖というか決めつけがあって、だいぶ読むのに時間がかかってましたtakker.icon
まずはリンク貼るほうを優先したほうがよさそう
本格的に取り組む時はこっちですが、ざっとリンクをつけてジャンプしたりする基素.icon
あと、どうでもいいところはリンクをつけるだけで何もしないですね(知ってるところとか)
OCRを綺麗になおしてから読むのは(数式・図表があると)時間がかかりすぎるので飛ばせるところはどんどん飛ばしたい基素.icon
時間がかかけすぎて講義に間に合わないことがよくあった()takker.icon
数式直すのは多大な労力がかかるので、後回しにすることが多い
アクティブ読書のやりかたは結構悩んでいる部分があるから、別途整理したいtakker.icon
ここの文章も持っていきたいな
一長一短かも?
OCRは組版より読みづらい
Book2Scrapboxはどういうlayoutなんだろうtakker.icon
画像のみを含んだJSONを生成する処理と、OCRを追加する処理とで分かれているのか
前者でアップロードしてからScrapbox書籍を作るUserScriptに必要なリストを作成してます基素.icon
なるほどですtakker.icon
tableを作るのは超めんどくさいけど、1ページごとにページにするよりずっと良さそうな感じ
編集の時間が減りそう
ページを合体するよりページを分割するほうが楽takker.icon基素.icon
1画像1ページだと、複数ページに章がまたがっていた場合にmergeするのが大変
大抵は複数ページにまたがる
ページ分割の方は、New Page (Scrapbox)があるからやりやすい
ただし、1ページに10画像も詰め込むとブラウザが重くなるのでそこだけ注意
/takker/『システム英単語<5訂版>』でやらかした
このことについて/takker/1見出し1ページに書いてた気がしたが、空ページだった
/takker/一つのページにすべてのスライドを貼り付けるスタイルのほうが編集しやすそうは中身があるが、対象が違う
見出しが定まっていない資料のscrapbox書籍を作るときの話
本の1章だけ作って読む、ということも可能takker.icon
残りの章は読みたくなったときに順次作ってimportする
たしかに基素.icon
tableをミスったかどうかを判定するのが結構難しいのでインポートして読んでるときに気づいたら修正がめんどくさくて絶望しそうw
放置してる()takker.icon
目次にページ数が書いてない本があって困った
間に白紙や広告が入ってややずれることもあるので、目次のページ数は見てないですtakker.icon
白紙ってカウントされないんだ…基素.icon
一番前と一番後ろの奴だけかもtakker.icon
全部一枚一枚めくって数えています
もしかしたら非効率な作業だった……?
1ページに複数の章がある時、フォーマットはどうすればいいのかな…?
table:
1.2 A 20 20
1.3 B 20 20
こうかな?
あってますtakker.icon
例:/takker/『システム英熟語<5訂版>』#63fbfab91280f00000fed45a
ありがとうございます基素.icon
フォーマットのendの入力がルーチンだと気づいた。入力しないように改良できそう
1冊の本を丸々入れようとしていてスプレッドシートで機械的に入力してる
endは2つのパターンで機械的に決まると思う
末尾だけは入力が必要か
table:後続のページのスタートが1ページ以上後の場合
i start end
1 20 i2.start - 1 この時点のループを考えてみる
2 21
if(index[i+1][start] > index[i][start] ) end = index[i+1][start]-1
table:後続のページのスタートが同一ページの場合
start end
20 i2.start この時点のループを考えてみる
20
if(index[i+1][start] === index[i][start]) end = index[i+1][start]
start !== "" && end === ""のときは、確かに推論できるかもtakker.icon
中間のページを飛ばしたい場合など、特殊なときだけ指定すれば良い
そういう使い方があるのか〜基素.icon
白紙とか広告はこれで飛ばせますtakker.icon
例えば10ページの本で3-6が広告だったらどうなるんだろう?基素.icon
table:book
start end
1 2
7 10
なんか違う気がする
大丈夫だと思う
これでいいのかー
table:こういうのができないか
start end
5.3 100 102
6 ここが空白になる
6.1 103 104
これはできないtakker.icon
単に6を6.xを羅列したリストにしたいなら、↓とすればいい
table:2
5.3 100 102
6 2
6.1 103 104
6.2 105 108
こういうときに上のアルゴリズムだと機会的に入力できないかもという意味でした基素.icon
理解しましたtakker.icon
startが空でない次の行を参照すればいい?