年金生活者の投稿事情 : Microsoft 365を使わずにWord形式の論文を仕上げる、の、続きである。 前回の記事では、Node.jsとJavaScriptのスクリプト(`build_body.js`等)を使い、投稿規定どおりの書式で本文.docxを自動生成する方法について書いた。この方法自体には満足しているのだが、実際に使い続けてみると、気になる点、というか、結構、面倒なのだな。
コマンドはなんだっけ?ファイルはどこだ?
`node build_body.js 問題.md 目的.md …` と入力して実行するだけ、といえばそれだけなのだが、査読対応のたびに、
- ターミナル.appを開く
- `cd`で作業フォルダに移動する
- コマンドを入力する
という3手順が、そーでなくても重い腰をさらに重くする。もちろん、根っからのコマンドライン派を自認する身としては、この程度で音を上げるはずはないのだが、忘れっぽくなった今、「あれ、jsファイルはどこに保存したんだっけ?」と探すところから始まるんだな。 加えて、もし同じ学会の会員の方に、この仕組みを使ってもらいたいと思ったとき、「まずNode.jsをインストールしてください」というのは、さすがにハードルが高すぎるだろう、とも思った。
ブラウザだけで完結させる
そこで、Claudeくんに相談し、同じ変換ロジックを、Node.js側ではなくブラウザの中で動くJavaScriptとして書き直してもらった。使う部品(`docx`というライブラリ)自体は前回と同じもので、書式のルール(余白5.5センチ、1行45字、行番号、統計記号のイタリック化、脚注の処理など)もすべて前回のスクリプトから移植している。違うのは、それを実行する場所だけである。 具体的には、次の2つのページを用意した。
- 刷り上がりイメージ プレビュー 表紙.md、本文.md、図表.md、和文要旨.md、英文要旨.mdをドラッグ&ドロップすると、実際の誌面(B5判・2段組)に近いイメージでその場にプレビューが表示される。まだ査読中で分量の見当をつけたいだけのときに、Wordを立ち上げる手間なく確認できる。
- 本文.docx 作成ツール 本文用のMarkdownをドラッグ&ドロップするだけで、投稿規定どおりの体裁(24字×45行・行番号・ページ番号フッター)で本文.docxをその場に作成し、ダウンロードできる。
どちらも、ファイルをサーバーに送信することはしていない。ブラウザの中だけでdocxファイルを組み立て、ブラウザのメモリ上に置いたまま`docx-preview`というライブラリで描画して見せているだけなので、原稿の中身が外部に送られることはない※1。
※1 ただし、これらのページ自体は`docx`・`docx-preview`といったライブラリをCDN(外部の配信サーバー)から読み込んでいるので,完全にオフラインで動くわけではない。念のため。
できること・できないこと
前回のNode.jsスクリプトとの違いを整理すると…
| Node.jsスクリプト(前回) | ブラウザ版(今回) | |
|---|---|---|
| 動かす場所 | 自分のMac(ターミナル) | ブラウザ(Chrome・Safari等)だけ |
| 事前準備 | Node.jsのインストール、npm install docx |
不要(ページを開くだけ) |
| 実行方法 | コマンドを毎回入力 | ファイルをドロップしてボタンを押すだけ |
| プレビュー | できない(Wordで開いて確認) | その場で表示される |
| 出力 | 本文.docx(表紙・要約は別スクリプト) | 同じ(刷り上がりイメージは表紙〜英文要約までまとめて確認可) |
もちろん、ブラウザ版にも限界はある。投稿の最終段階で必要になるPDFへの変換は、ブラウザだけでは行えない(ライセンスの問題もあり,Word文書をPDF化するのは各自のWordやONLYOFFICE等に委ねている)。したがって,本文.docxをダウンロードしたあとの「PDFに書き出す」という一手間は,従来どおり必要になる。
使ってみると…
ファイルを探さなくてよくなっただけ、腰の重さはずいぶん軽くなった。特に「刷り上がりイメージ プレビュー」の方は、査読対応の合間に「今どれくらいの分量になっているか」をさっと確認できるので、かなり重宝している。 同じ仕組みを使ってみたい方は、以下から直接お試しいただける。ブラウザさえあれば動くので,Node.js環境を用意する必要はない。
前回のNode.jsスクリプト一式(表紙・和文要約・英文要約まで含む)は、 こちらの記事 からダウンロードできる。


