Sponsor Link
環境&対象
以下の環境で動作確認を行なっています。
- Scrivener 3.2.3 (Mac版)
- macOS Monterey 12.2 beta
課題 / issues to be solved
自分の使い方では 最終的に、MarsEdit 経由でアップロードすることを想定していたので、単純に記事本文に該当する箇所を HTML 的なテキストにしてくれることが期待でした。
当初、HTML 出力を使えば簡単 と予想していたのですが、期待通りにはいきませんでした。
何が問題だったかというと以下の点でした。
- HTML ヘッダータグ等は不要
- h2, h3 等の HTML タグを割り当てる対象を明確に/簡単に指定したい
- エディタ中で装飾をしたくないので、構造から、h2 等のタグを割り当ててほしい
- WordPress の テーマが対応する([]で囲われている)特殊タグは、そのままテキストとして記述したい
- コンパイルして出力すると便利そうなので、コンパイルを使った運用をしたい
Scrivener で構造定義
文章を構造化して扱うのが Scrivener 流です。
Scrivener のチュートリアルでは、Part/Chapter/Section と構造化していました。
今回は、最終的に HTML になるので、HTML の持つ構造である h1, h2, … を構造の単位とするのが良さそうです。
なお、h1 は、通常、記事全体のタイトルになるはずなので、記事としては、複数の h2 を持つことを想定し、h2, h3, h4 までを定義しました。あまり装飾することはないので、h2, h3, h4 以外は、地の文となる p と コードを記載するための code を追加してみました。
以下のような感じです。

Scrivener では、手動で section type を指定することもできるのですが、構造から自動で割り当ててくれると便利です。
以下のように設定することで、フォルダの深さを基準に、h2, h3, h4, p と割り当ててくれます。
# code は、明示的に割り当てる必要があります。
注意:Scrivener 的には、ドキュメントとフォルダに意味的な相違はありませんが、この設定では、サブドキュメントを含むドキュメントと内部にドキュメントを含むフォルダは扱いが異なります。h2, h3, h4 と割り当てるためには、フォルダを使用する必要があります。

Scrivener でフォーマット指定
Scrivener 内での構造を決めると、書き手側が フォルダ、ドキュメントを使い分けると Scrivener も文章の構造を理解できるようになります。
構造を定義した後は、その構造を利用して、どのように出力するかを定義しないといけません。
具体的には、以下の設定が必要となりました。
- h2, h3, h4 に対しての タグ指定(h2, h3, h4)
- 改行コード指定
h2, h3, h4 に対しての タグ指定
例えば、h3 に対しては、以下のようにすることで、タイトルを h3 タグで囲い、残りのテキストを続けて出力するようにしています。

実際にカスタマイズしたのは、以下の2箇所です。
タイトルを出力する時の Pre/Postfix
タイトルは、h2, h3, h4 のそれぞれ適切なタグで囲わないといけません。

Note: 何か特別なタグやプロパティを指定したい時にも同様にカスタマイズできそうです。
改行コード
セパレータはデフォルトでは、^L がセパレータとして使用されます。
Blog に使用する目的では、改行コードで問題ないので、”single return” をセパレータとして使うようにします。

Scrivener での Compile
HTML としての header 等は不要なので、Text として出力します。
以下は、この Blog 記事のコンパイル画面です。

“Compile” ボタンを押下すると、ファイルダイアログが表示され 保存場所を聞いてきます。
出力ファイルを別アプリで開く設定もしておくと、コピペがしやすくなります。
まとめ
- 構造を HTML に合わせて設定しておく(h2,h3, …)
- フォーマットをカスタマイズすることで、HTML タグを挿入できる
- 独自タグ等は、プレーンテキストとして記述しておく
- 独自タグ等は、フォーマットで変換することもできる
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
Sponsor Link