Obsidianで小説・シナリオを書く

Obsidianで小説を書くための設定もろもろをまとめときます。

謎のインデントを無効にする

参考サイト: Obsidianで日本語小説を書く設定

上記のサイトのCSSにこれを追加。

1
2
3
.cm-line{
text-indent: 0 !important;
}

これで常に字下げがちゃんと反映されるようになる。

追記

縦書き小説プレビュー用のCSSです。
執筆は横書き派なので執筆は横書きでやってます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
.cm-line,
.markdown-reading-view p {
text-indent: 0 !important;
padding-inline-start: 1rem !important;
white-space: pre-line;
}

.novel * {
font-family: 'shipporimincho-regular' !important;
/* ここのフォントファミリーはお好きなのを。結合用濁点を使えるフォントじゃないと縦書きが若干きもちわるくなります */
}

div[data-mode="preview"] .novel .markdown-preview-section {
writing-mode: vertical-rl;
word-break: break-all;
overflow: auto;
--line-width: auto;
text-orientation: upright;
line-height: 1.6rem;
max-height: 100%;
height: 42rem;
padding-bottom: 0 !important;
min-height: 0 !important;
margin: 0;
padding-left: 50%;
}

div[data-mode="preview"] div.markdown-rendered.novel.markdown-preview-view {
display: flex;
max-height: 1000px;
align-items: center;
width: 100%;
}

div[data-mode="preview"] .markdown-preview-view.is-readable-line-width .markdown-preview-sizer {
max-width: 100%;
}

div[data-mode="preview"] .novel .markdown-preview-section div {
display: inline-block;
height: 100%;
margin: 0;
}

css-classes で novel を設定したファイルだけがプレビューモードで縦書きになったり、フォントが変わったりします。
 フォントを変える方法については下記を参照してください。
 注意点として

  • 厳密な改行をONにしてください
  • テーマごとに若干異なります。自分で手直しする必要が生じるかも知れません。

フォントを変更する

Obsidian Custom Font Plugin

これをいれるとObsidianの保管庫全体のフォントが変更される。
 これの何が良いってモバイル版のフォントも変わること。

フォントによっては非対応文字があったりするので、なるべくなら執筆時点で確認しておきたいですよね。

これを使うとフォント名.cssが作られるので、それをsnippetsで読み込むようにして上の縦書き小説cssで使ってください。
 仕組みはBASE64エンコードうんたらかんたらだけど私はプログラマーじゃないのでなんもわからん。

おまけ

サブセットに役立つリンク

青空文庫形式のルビに対応させる。

obsidian-markdown-furigana

これを入れると{ 漢字 | かんじ }のルビに対応してくれます。
 ただこの形式で小説書くこと無いですよね……基本は青空文庫の|漢字《かんじ》で書いて、投稿サイトやなんやらに変換して使用すると思います。
 なので、改造して対応させます。
 ※本当はフォークして公開しようと思ったんですが、ライセンス表記がなかったので改造方法だけ公開します。issueもずっと動いていないので……

変えるところ

参考:各種小説投稿サイトのルビ記法をJavaScriptで実現する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const REGEXP = /[\||](.+?)《(.+?)》/gm; // 38行目

const furi = match[2]; // 45行目
const kanji = match[1]; // 46行目

// 削除
if (kanji.length === furi.length){ // 47行目
kanji.forEach((k, i) => { // 51行目
}); // 54行目
} // 59行目

rubyNode.appendText(kanji); // 52行目
rubyNode.createEl('rt', { text: furi }); // 53行目

const viewPlugin // 117行目から関数ごと全部削除

おまけ

Android ↔ PC間の同期

NextCloudを使う場合

NextCloudカラフルボックスサーバーで簡単にインストールできるクラウドアプリケーションです。GoogleDriveみたいなやつ。
 アダルトサーバーも用意されていて、そこなら違法性のないものであれば色々えっちなのも置けるのでおすすめです。企業提供のクラウドは垢バンとか怖いし……

  1. PCでObsidianの保管庫を作成
  2. NextCloudのPC版アプリで保管庫を同期させる。
  3. FolderSyncをスマホにインストール
  4. NextCloudと連携し、保管庫をスマホに同期させるようにする。
  5. Android版のObsidianで保管庫を開く

NextCloudの公式Androidアプリは同期に難ありなのでおすすめできないので、FolderSyncをおすすめします。
 PCアプリはめちゃくちゃ使い勝手良いんですけどね……

追記

この方法だとiPadが同期できなかったんですけど、Remotely Saveってプラグインが出ていてこれで同期できることを確認しました。
 とは言え自己責任でお願いします。

その他おすすめプラグイン

Thino

おすすめ。つぶやき型メモ機能をObsidianに入れてくれるプラグイン。便利。

ついでに謎の背景の緑を消すCSSもおいときます。

1
2
3
4

div[data-type=thino_view] .modern#page-wrapper:is(.memos-chat-view,.memos-moments-view,.memos-list-view,.memos-table-view,.memos-calendar-view,.memos-waterfall-view),div[data-type=thino_view] .modern#page-wrapper:is(.memos-chat-view,.memos-moments-view,.memos-list-view,.memos-table-view,.memos-calendar-view,.memos-waterfall-view) .content-wrapper,div[data-type=thino_view] .modern#page-wrapper:is(.memos-chat-view,.memos-moments-view,.memos-list-view,.memos-table-view,.memos-calendar-view,.memos-waterfall-view) .content-wrapper .memolist-wrapper .memolist-container{
background-color: inherit;
}

Templater&Commnder

これを使うとモバイル版で色々入力が楽になります。ルビとか変数とか……ゲームシナリオだとよく使うやつですね。

参考サイト

更新履歴

2024/11/17 : Googleからのアクセス増加とTwitterで問い合わせがあったので更新。わかんないこと有ったらコメントでお願いします。