見出し画像

TyporaだけでCoCシナリオをシーン分割して執筆するための環境を整える(章分けしたシナリオを全て結合する)

今の環境に不満がある。
「えっ!?あんなに頑張って整えたのに!?」と思われるかもしれないが、環境はどんだけ良くなってもいいと思う。

↓頑張った過去の軌跡

ちなみに今の環境はこんくらいの感じなので、MacやLinuxの人はこのあと出てくるコマンドラインのあれこれは多分ググれば他にもあります。


【1】今の環境への不満

TRPGシナリオ……ひいてはCoCシナリオを書く上でやることがあまりにも多い現状にヘトヘトです。いや、やることが多いんですよ本文を書く以上に。

  • 本文を書く

  • 本文を見やすいように整える(整形)

  • PDFやHTML、txt形式での出力

  • その他雑務諸々……

同人原稿よりもやること多くないか……?(震え)
数年前からは考えもつかないほどに「シナリオ本文を書く以外の作業時間も取られる」というのは、作業環境を自動化または簡素化しないとかなりキツイ……というのは前に気づいたし、今もまた気づいた……。

整えるか……シナリオ執筆環境……。

私は超高速espansoくんでも満足出来ない身体になっていた。もっとだ……もっと楽と速さを手に入れたい。
できれば……そう、もっとシナリオを書くハードルを下げたい。

分割執筆という案をobsidian環境試行錯誤中に知る

https://teineini.net/20231024-bunkatusippitu/

分割執筆についてはたまたまobsidianというソフトにevernoteにはいっていた大量のノートを移し替えるときに偶然知りました。
簡単に言うと「章ごとに作ったファイルを一つに結合させて、完成品を作る」感じです。

懐かしい、「nanaTree」や「nanaterry」を思い出させてくれる……。私はnanaterry大好きでした。ゲームのシナリオを書くときはお世話になりました。

確かに便利だな……。特にCoCシナリオは章立てされているし、章立てされたうえでシナリオ自体が長いとスクロールバーが小さくなる。
つまりはスクロール量がバカほど増えて、もうそれだけで「どこの部分を直すつもりだっけ……どこだ?どこにある?」
になるわけです。

Typoraくんはそのあたりちゃんとサイドバーに
アウトラインで見出しを目次にしてジャンプさせてくれる。

サイドバー、邪魔なんだよな……。集中するときにはさ……画面だけ見てるから横になんかあると邪魔というか……。
なんか……邪魔なんだよな。使うときは使うし便利なんだけど。

シナリオは長距離孤独マラソンだからゴールが見えないと萎える

あと、TRPGシナリオの作業はマジで人に作業の愚痴は言えないしましてや内容の相談もできない……という、長距離孤独マラソンなので、常にご褒美が欲しいわけです。もしくは常にゴールが目の前にあってほしい。

短距離マラソンでゴールがもうちょい先、なら「今日一日でこのファイルは終わらせておこう」みたいな感じでやる気が出そうです。
大掃除を終わらせろと言われると辛いけど「今日は自室の断捨離をしよう」というタスクならやれそう、というあれです。

というわけで、「直したい箇所がどこにあるのかすぐわかる+短期ゴールを作って最終的な完成を目指せる分割執筆」に魅力を感じて、作りました。

Typoraで、その環境を。


【2】どういう感じに分割執筆環境を整える?

うーん、どういう感じの流れで、章立てて作った4~5つぐらいのファイルを一つにしようかな……。

  1. 章ごとにmarkdownファイルを作って一つのフォルダに入れる

  2. フォルダの中にあるファイルを全部結合させて一つのMarkdownファイルにする

  3. Typoraくんの優秀エクスポート機能でいつものようにPDF/HTML/TXTにする

  4. 勝利

待てよ……?確か、ファイル結合といえばコマンドラインでファイル結合できるんだよな……。
私……あの黒い画面に怖そうな英語打ち込んで直接ファイルを移動させるだけでも怖いんだよな……。権限を変えるとかもうおっかなびっくりだし、いつブルースクリーンでるかって怯えてるんですけど。

でもなぁ、ここでtypora以外のソフト立ち上げてそこに読み込ませてエクスポートじゃ、意味がないんだよな……速さが足りない……。ソフトをもう一個立ち上げるのも煩わしい………………。
面倒くさいな………………typoraだけで出来る方法ねえかな

コマンド………………? あっ!

Typoraにはエクスポートでコマンドを動かす方法がある

Typoraはもちろん間違いなく最強に便利。使いやすいし見やすい。markdownを取り扱うならこれしかないだろ……ぐらいの勢いが私の中であります。何より画面がシンプル。
テーマも無限に弄ることができるしなによりtypora作業画面自体のサイドバーのデザインとかいじれるのは神でしかないでしょ。サイドバーの色だけ変えるとかもCSSで出来る。すごい。

そしてエクスポート形式があまりにも豊富だったんだ。

公式の画像でごめん。でもデフォルトでこんだけ用意されてる。
見知らぬ形式もあって最早意味がわからないぐらいエクスポート形式がある。
一部はPandoc必須のため、Pandoc入れてないと項目は減ってるかもしれない。
Pandocをいれよう。

PDF……HTML……Word……オープンオフィス、RTF????Epubは知ってるこれ電子書籍や。LaTeXは大学で数学取り扱う人が使ってるやつでは……?
いやこれ、注目すべきは「+」の部分。これ、自分でカスタマイズした設定のエクスポート形式を追加できます。

実際にこの「エクスポート/カスタム」の欄にコマンドをぶちこんで、エクスポートからgithubに飛ばしてバックアップを取る方法を過去にやって、今現在も運用中です。
https://note.com/273c/n/nccbf705a0aea

おかしいて…………。なんでもさせる気満々やろ…………。コイツに出来ないこと何もないやん……。
これでまだTyporaサポートリポジトリで死ぬほどリクエスト出てるのまだ信じられないけど上を目指してほしいのはほんまにそう。
そしてこの「エクスポート/カスタム」はコマンドだけを記入できるから……つまりコマンドを動かせるってこと……よね……?

つまりは……ファイル結合がtyporaのエクスポート欄だけでできる。
出来るじゃん……夢じゃない。やります。

【3】分割執筆のためのファイル構成

bフォルダの中にシーンごとのファイルを入れます。assetsは画像をいれるところ。

こうなりました。
ぶっちゃけ説明が必要なほど重要なのはFilemerge.mdだけです……が、一応他のファイルも説明します。あくまでこれは私の構成なので、好きにファイル構成作りましょう。日本語名のファイルでも結合してくれるはず。

  • b/1~5.md ending.md

    • シーン分割用ファイル。それぞれのファイルにシナリオを書いていく。大体起承転結で4ファイルでいい気がしてるんですが念のために5まで。必要なかったら消せばいいさ……。

  • header.md

    • 以下の通り。シナリオ概要のレギュレーションや背景、キーパリングのコツまでをこの一つのファイルにいれておく。

  • footer.md

    • エンディングより下のあとがきやクリア報酬の部分をいれておく。

Filemerge.md(ファイル結合のためのホーム画面代わり)

実際、ファイル結合に使用するのは上のchange~filesの部分だけなので、
本文の内容は何でもいい。
なので、作業進行のチェックリストをいれました。これが全て埋まるとゴールや!!!!

シナリオを分割作業する上でのホーム画面とも言えるmdファイル。
おそらく今回の肝。

ここを開いて、特定のコマンドを発動させるだけでheader.md+bフォルダの中身全部+footer.mdを全て結合させたmdファイルを作り出します。
なので、ファイル結合のために必要な情報をここにおいておきます。

どうやって置くのかと言うと「YAML frontmatter」を使用します。

---
change: 
title: test
files: header.md b\1.md b\2.md b\3.md b\4.md b\5.md b\ending.md footer.md
---

markdownの大事なメタデータともいえる「YAML frontmatter」の部分は上のとおりです。必ずmdファイルの一行目にいれてください。2行目からだとYAMLと認識されません。

  • change:

    • girhubにおくるときのコメント欄です。詳しくは下の記事。今回の用途でだけ使う場合はなんならchangeは消していい。

    • https://note.com/273c/n/nccbf705a0aea

  • title:

    • シナリオタイトルを入れておくとファイル結合したときにそのファイル名に使ってくれる。便利だな!?

  • files:

    • 結合したいファイルを半角スペースあけて入れていきます。

    • これをあとでまとめて結合するときに「結合したいファイルのリストこれです!」と結合コマンドに${files}という変数で教えてやると、typoraくんのエクスポート機能が勝手にこの一覧を代入してくれます。

    • ファイルが増えたり減ったりしたときもここだけをいじればいい。ええ~!コマンド直接いじらなくていいの!?嬉しい~~!!


【4】エクスポート/カスタムを使って全てのシーンファイルを一つのファイルに結合する

まずは、設定→エクスポート→一番下の「+」を押す→テンプレートから追加で「カスタム」
コマンドを入れます。
このエクスポート形式の名前どうする?と聞かれたら
適当にMergeとか推しCPの名前とかにしておきます。結合しろ。一つになれ
type ${files} > ${title}.md

Windowsのコマンドなので、MacやLinuxの人は類似の「複数ファイルを結合させるコマンド」があると思うのでググると幸せになれます。

変数が使われていますが、Typoraくんの神業で変数がなければこれは本当は、

type header.md b\1.md b\2.md b\3.md b\4.md b\5.md b\ending.md footer.md > test.md

でした。これを、YAMLフロントマターのデータを割り込ませられるのを使って楽ちんにしているというわけです。

そして最後にこのエクスポート形式を必ず「Filemerge.md」を開いたまま発動させる。

Filemerge.mdをエクスポートするという形にしないと、files:の部分が式に代入されなくてエラーになる。
だから、もしも他のファイルでコマンドを発動させても「${files}の中身がどこにもかいてないからエラーだぞ!」って言われるだけです。怒られるだけ。

ファイル結合コマンドを発動すると、Filemerge.mdと同じフォルダにある、filesで指定したファイルがざざ~~~っと結合されて……title:で指定した文字を含むmdファイルに綺麗に結合されます。

ちょうどこんなふうに。
ちなみに中身に何も書いてないファイルも間違えて一緒に結合しても警告がでるだけでエラーはでない。
「キマリは通さない。でも何も書かれていないmdファイルは仕方ないから通す」って問題なくやってくれる。無害だからかな。そうかも。

titleにシナリオ名を入れておけば、そのままそのあとはTyporaくんの普通のエクスポート形式で「PDF」や「HTML」「TXT」を選んでそれぞれ出力すればいいだけなのです。

分割執筆環境……できちゃったな……。


オマケ:エクスポート/カスタムを使ってテンプレートフォルダをまるごと複製

そしてここまで来て思うんですよ。

「あ~~、毎回シナリオ書き始めるたびにテンプレートフォルダをコピペするのか~めんどくせ~~~な~~~~。テンプレートフォルダを一発で作業用フォルダ「Work」に「NEWSCENARIO」っていうフォルダ名に変えて、中身のファイルそのまんまでぶちこんでくれね~かな~~。Typora以外のウィンドウに移動した瞬間やる気失ってX開いちゃうよ~~~~~(大声)

やります。エクスポート/カスタムの前に跪いて神の力を乞います。

Windowsにはxcopyならぬコマンドがあるので、コレを使います。
さっきと同じように【設定→エクスポート→+を押して適当に推しの名前か『ファイル複製』と名前をつける→コマンドにXCOPYのコマンドをいれる】で、OKです。

Typoraのファイルを開いたところで、エクスポート→ファイル複製または推しの名前を押すと、指定した場所にテンプレートフォルダがコピーされてます。
何か一回うまくコピーされてなくて慌てたこともあったんですが、ちゃんとフォルダを捨ててもう一度やり直したらいけました。なんだったんだ?

すげ~~な……Typora……。
コマンドとか発動できるならもう何でも出来るじゃん……。


次回は、Typoraで完全無欠のテキストファイルを出力して全ての事務作業の苦しみから解放され涅槃に向かう記事(Pandocでplain text出力+Luaフィルターの話)でも書きたいです。

いただいたサポートはありがたくおやつにかわります。心が優雅な暮らしになります。