【obsidianで小説を書く】400字原稿用紙換算してくれるプラグインをつくりました

Diaryobsidian

表題の通りです。

https://github.com/YoFujii0705/japanese-manuscript-counter/tree/main

↑ここにあるコードを適当にあれしてください。

例文が変で、すみませんが……。こんな感じで、プラグインを有効化するとステータスバーに字数と枚数が表示されます。テキストを選択すると、選択範囲の字数と枚数が出ます。
さらに、コマンド表示で詳細が見れます。デバッグ用につけた機能なのですが、便利なのでそのまま残しました。

最近、obsidian上で小説を書くことが増えてきました。

こんな感じで、ワークスペースをシンプルにして、左で本文執筆、右にプロットを表示みたいな感じにして書いています。

それで、「他にobsidianで小説書いている人いないかな」と思って最初は以下の記事を参考にしました。字下げの設定をしたりルビを振れるプラグインなどをインストールしたり。私は cssclasses: novel のときだけフォントをお気に入りのフォントに変更して、かつ縦書き表示でプレビューできるようにしています。

https://kuma.quels.net/2024/03/02/obsidian-japanese-novel-writing

残念ながらエディタモードでは縦書きでリアルタイムに執筆することはできませんが、プレビューモードだとこんな感じ↑に表示されます。

/* novel クラスでの折りたたみ機能を完全無効化 */
.novel .cm-foldGutter {
    display: none !important;
}

.novel .cm-gutters {
    display: none !important;
}

/* CodeMirror 6の折りたたみインジケーター */
.novel .cm-fold-indicator {
    display: none !important;
}

/* 折りたたみプレースホルダー */
.novel .cm-fold-placeholder {
    display: none !important;
}

/* より広範囲に適用 */
.novel .CodeMirror-foldgutter,
.novel .cm-gutterElement.cm-foldGutter {
    display: none !important;
}

あと、トグル表示が鬱陶しかったので、cssclasses: novel のときに上記のスニペットで字下げがトグルにならないようにしています。

ここまでやって、かなり快適な執筆環境が整って満足していたのですが、何か足りないなと思ったときに「400字原稿用紙換算」だ、と思いました。
私は公募に出すことも多く、未だに400字換算で指定されている公募とかもあるのであると便利かもなと思い。
小説を書いている人なら毎回インターネットに転がっている親切な換算サイトに助けられていることでしょう。しかし、obsidianで小説を書くなら全部をobsidian上で完結させたいじゃないか……と思ったので、つくりました。
私は非エンジニアなので、コードは全部Claudeがつくっています。禁則処理とか改行とか、意外と考えることが多かったですが、なんとかインターネット上の換算サイトと同じ数値を叩き出すようになってくれました。
まあ、コードの美しさとかはよくわからんので、とりあえず私の環境では動いています、という感じです。

もし、obsidianで小説書きたいよ〜書いてるよ〜という奇特な方がいらっしゃったら、使ってみてください。
それではまた。