NISHIO Hirokazu[Translate]
機械翻訳したScrapboxをQuartzで公開2024-11-24

何をしようとしているのか言語化するnishio
いまScrapbox(Cosense)からの自動英訳がGitHub Actionで動いてる
しかし翻訳後のScrapboxへのインポートでこけている
時々この現象が起きるんだけど不可解だし、もうなんだかめんどくさいなー、Scrapboxにインポートするのはやめようかなー、という気持ち
QuartzでObsidian Vaultを公開という事例がある
ScrapboxToObsidianでScrapboxのJSONをObsidianのMarkdownに変換する事例がある
これを組み合わせて「Scrapbox→JSON→英訳JSON→Markdown→Quartzで公開」ってやればいいのでは?と思っている


Quartzはv4になってPreactベースになったらしいnishio
まず少し調べるか
とりあえずやってみる
Choose how to initialize the content in /Users/nishio/quartz/content
│ Empty Quartz
◆ Choose how Quartz should resolve links in your content. This should match Obsidian's link format. You can change this later in quartz.config.ts .
│ ● Treat links as shortest path ((default))
│ ○ Treat links as absolute path
│ ○ Treat links as relative paths
うーん、defaultにしておくか
$ npx quartz build --serve
動きはしてる
次の調査
なんかいっぱい色々書いてて未コミットの編集まであるなぁ
これどういう状況なの?
当時でもQuartzはv4に見える
一方で当時はCosenseではなくScrapboxだった
Quartz
This branch is 3 commits ahead of, 564 commits behind jackyzha0/quartz:v4
コンテンツの更新も同じリポジトリなのでカオス!
$ git pull --rebase upstream v4
>CONFLICT (content): Merge conflict in package-lock.json
564コミットもあるから全体像がよくわからん
自分のリポジトリとupstreamとでそれぞれ別々の更新がされてる??
いやー、わけがわからなくなった、無理だ
GitHub Actionを無料のサーバレス実行環境として使うの、僕もOmoikane Embedとかでやっちゃってるし便利なんだけど、Gitはそんな用途のために設計されてないんだよな
上流のOSSは当然更新される
一旦このリポジトリはリネームして、新しくやり直そう
あー、だめかも
同一リポジトリから複数forkできないってGitHubの制約
archiveしたらできるかな?→できない
消すしかないか
gptGitHub サポートに連絡して、nishio/A2023 の fork 関係を解除してもらう必要があります。
いやいやnishio
renameしたものをcloneしてからdeleteする
やれやれ
今後ここにcontentを入れないようにしたい
これは部品であってコンテンツホルダーではない、としたい
% git submodule add git@github.com:nishio/quartz.git quartz
% git clone --depth 1 git@github.com:nishio/etude-github-actions.git
最新だけとったら早いかと思いきやめっちゃ遅いな
疲れてきたのでまずお風呂に入る
とりあえず自動化の前に1回走らせる
etude-github-actions/nishio/data.json は日本語版だな〜
現在の英語JSONがなぜかリポジトリにないが etude-github-actions/nishio/data_en_prev.json が取りあえず英語JSONか
tmp_0.sh tasks/json_to_markdown/run.sh って書いてある
tasks/json_to_markdown の中にGit SubmoduleでScrapboxToObsidianが入っている
前回も細かい実験的作業をこれでやったんだな
tmp_1.sh
cp etude-github-actions/nishio/data_en_prev.json nishio.json tasks/json_to_markdown/run.sh
quartzPagesができた
これをquartzからみる
$ npx quartz create
:
Choose how to initialize the content in `/Users/nishio/from_scrapbox/quartz/content` │ ● Empty Quartz │ ○ Copy an existing folder │ ○ Symlink an existing folder
ここでsymlinkにすればいいわけだな

:
2 | title: '"I can\'t shake it" and "I won\'t shake ... ---------------------^ at Object.yaml [as parse] (../plugins/transformers/frontmatter.ts:55:35)


:
Cleaned output directory `public` in 4ms Found 20937 input files from `content` in 196ms Parsed 20937 Markdown files in 6m Filtered out 0 files in 4ms Emitted 20949 files to `public` in 5m Done processing 20937 files in 11m Started a Quartz server listening at http://localhost:8080 hint: exit with ctrl+c

ガーン
あー、これあれか、Scrapbpxのexport時にメタデータをつけてるとlineがobjectになるやつか

> Github Wikiをコメントフォーム的に利用できるか?
>記事に対する質問や誤りの指摘をGithub Issuesにするか?
なるほど
英訳の質がイマイチなときに「このページをもっと改善して欲しい」という情報を送れるようにしようかと思ったがIssuesでいいか

:
Failed to process `content/Infinite sum compression using the inverse of a formal power series.md`: URI malformed at decodeURI (<anonymous>) at transformInternalLink (../util/path.ts:89:38) at transformLink (../util/path.ts:207:20) at ../plugins/transformers/links.ts:104:49
もうちょっと詳しいこと書いてくれてないとなおし方がわからん

あーー、ダメだー
base64エンコードされてるURLが翻訳プロセスで壊れてるケースが無数にあるのか

無数にあるかと思ってげんなりしてたが意外と3個に収まった
ローカルで見れた

これをえいやとGitHub Pagesで公開すればまあ公開はできる
翻訳の質がイマイチだなぁと思っている
でもそれは今でもイマイチだからいいのか
公開プロセスを自動化しようとすると上記のエラーを自動で解消しないといけない
根本的にはリンクはリンクと判定してからタイトル部分だけの翻訳にすべき

これはsyncするとGitHubにpushする設計なのでコンテンツをこのリポジトリに置くことになる
コードとコンテンツが一括管理
詳しくない人向けに提供するとそうなっちゃうし実際僕もomoikane-embedなどではそうした
が、コンテンツの更新でコードの更新が覆い隠されて長期的には良くない
これもコードとコンテンツが一括管理の状態で、更新されたらbuildするGitHub Action

buildするとpublic/が作られる
前回も同じ話した気がするw
Component.ExplorerとComponent.TableOfContentsはもうコメントアウトしてあるのだが
Component.Graphかな?
Component.Searchかもしれない
Component.Graphを止めた結果
54.58GB
Component.Searchを止めた結果
たいして変わらず
bodyの下に巨大なscriptタグがある
これをなんとかしないことにはどうしようもない感じ
Quartz 4.0は静的HTMLの末尾に巨大なscriptタグがあり1ページ2.5MBある。20000ページあると50GB程度になり問題である。この問題の解決方法はないか?GitHub Issuesなどがないか検索して
gptQuartz 4.0の生成ファイルサイズに関する問題は、GitHubでIssue #1607 として報告されています。この中で、以下の解決策が挙げられています:
主な原因
最近の更新でMermaid.jsのサポートが追加され、JavaScriptがHTMLファイルに直接埋め込まれるようになったことが原因。
解決策
Mermaidの無効化: quartz.config.tsで以下のように設定を変更することで、Mermaid.jsを無効化できます。
Mermaidを無効化するだけで、ビルドサイズが通常のサイズに戻ったとの報告があり、これは現在利用可能な最も簡単な解決策です。
マジかよwnishiotakker
330.4 MBになったwwwnishio
一旦build結果のpublic以下を別リポジトリにおいてdeploy
一応できた
なぜこれのバックリンクにこれがでるのか謎だ
History APIがバグってるみたいtakker
quartz_deployからTower-of-Sin-Babelに移動した後ブラウザの戻るボタンを押すと、URL欄はquartz_deployに戻るが内容が変わらない
なんかおかしいなーと思ったがそういうことかnishio
なんか微妙だなぁ…


"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]