pnovel 0.4.1 をリリースしました
前置き#
以前別のブログではお知らせしましたが、日本語で小説を書くための簡易マークアップ言語のパーサーを作っています。
簡易マークアップ言語と言っていますが、まだ仕様をしっかりとは決めていません。しかし、現時点で確定していることについて下記にまとめます。
- 改行は改行としては解釈しない
- 改行をする場合は 1 行空白を空ける
- 空白行を作る場合は
[newline]
トークンを利用する
- 段落の行頭に全角スペースを付す
- ただし、下記の記号で始まる段落は例外(どちらも全角)
- 「
- (
- ただし、下記の記号で始まる段落は例外(どちらも全角)
# ${章のタイトル}
で章立てを表す%
で始まる行はコメント、パース時に無視します- 現在は文中に % があるとコメントとして解釈しません
- 「!」や「?」のあとには全角空白を空けるというルールがありますが、これを自動で守るように変換します
- 現在は強制的に空白を空けてしまいますが、ここでは空白を空けたくないという場合は raw-string 記法を作れないかと思案中 です
改行の扱い、コメントの記法は LaTeX に合わせてみました。そのうち Example をたくさん書いたドキュメントを用意するつもりです。
動作方法#
さて、先日リリースの自動化を実現したので簡単にリリースができるようになりました。現時点では NPM のレジストリには公開していませんが、
npm config set @515hikaru:registry https://npm.pkg.github.com/515hikaru
という設定をすると npx @515hikaru/pnovel
で動かすことができます。公式に Docker Image
も作っているのでそちらがよければどうぞ。
0.4.1 リリースの内容#
正直なところこのソフトウェアが広く使われるようになるとは全く思っていないのですが、なんとなく無駄に真面目にやりたくなったのでリリース内容を書きます。
- 「!」や「?」のあとには全角空白を空けるというルールを自動で守る機能を追加しました
- 例えば「あ!田中さん!」のような文章を「あ! 田中さん!」に変換します
- 閉じカッコの前の例外も対応しています
- と書いたところでバグを見つけました
- もともとの文章が正しく「あ! 田中さん!」とスペースが空いていたときも、問題なく表示されます
- 例えば「あ!田中さん!」のような文章を「あ! 田中さん!」に変換します
まだまだバギーですが、鋭意開発していくつもりなのでよろしくお願いします。
今後の予定#
まずはパーサーを良くしていくのが前提なので、見つけたバグを潰していこうと思っています。その上で、2 つの側面からより便利にしていきたいなと考えています。
- コマンドラインツールとして便利にする
- ブラウザで使えるようにする
わたしはプログラマなのでコマンドラインツールで動けばそれでいいのですが、やはりブラウザで動くというのは強みだと思うので(自分にとってもちょっと試すのに便利になるでしょうし)。ブラウザでこの形式でテキストを書くと、プレビューができて、パース結果をテキストファイルとしてダウンロードできる、みたいなものを考えています。ただ現時点では着手できていません。一旦はコマンドラインツールとして機能強化が優先になると思います。
あとファイルの分割をサポートして、複数の原稿を include
する、という機能はあってもいいんじゃないかと思っています。ひとつのファイルが何万行とかになったら嫌ですし。
今日は以上です。