Visual Studio小説モードVisual Studio Codeで小説を執筆するための機能拡張です。 GitHubスポンサー novel-writerの開発はこちらの方々に応援いただいています。 Editor段落ハイライトnovel-writerは小説で用いる会話文や青空文庫注記法などをハイライトします。
品詞ハイライトnovel-writerは形態素解析を用いて分割した品詞をハイライトすることができます。テキストの可読性が向上することを期待して実装した機能です。 品詞はVisual Studio CodeのSemantic Highlighting(文脈依存ハイライト)で行っています。色を変更したい方はReadmeの末尾にある付録を参照し、お好みのカラーにカスタマイズしてお使いください。 品詞ハイライトは、設定でオフにできます。ワークスペースごとに設定することも可能です。 品詞ハイライトにはJavaScriptの形態素解析ライブラリ Kuromoji.js を利用しています。素晴らしいライブラリです。この場を借りてお礼申し上げます。 Markdown見出しの折りたたみ行頭の # を使うMakdownの見出しを折りたたむことができます。 .txtでも有効です。 なお、Markdownの見出しは原稿用紙プレビューやPDFで見出しとして描かれます。 次のシーン、前のシーンへ移動novel形式の書類を開いているときには、前のシーンにあたるファイルや、直後のシーンを開くナビゲーターが表示されます。 ナビゲーターは設定で表示しないように設定できます。 ルビの挿入novel-writerは青空文庫スタイルのルビを挿入できます。 Novel:ルビの追加(またはCtrl+R/Command+R)を実行するときに選択範囲があれば、選択範囲にルビを振ります。選択範囲がない場合には、カーソル前方の単語、またはカーソルが入っている単語にルビを挿入します。 圏点の挿入novel-writerは青空文庫注記法の圏点(傍点・ゴマ)を挿入できます。 テキストを選択してNovel:圏点の挿入を実行すると、選択範囲を⚪︎⚪︎[#「⚪︎⚪︎」に傍点]に変換します。この注記は原稿用紙プレビューやPDFで圏点として描かれます。 文末辞の切り替えnovel-writerは、日本語の小説で使われる連体形文末辞(〜していた。〜と言った。〜を持った。)と終止形文末辞(〜している。〜と言う。〜を持つ。)を切り替えることができます。 テキスト結合ワークスペース中のテキストファイルを結合し、publishフォルダーの中にプロジェクトのフォルダー名のファイルを作ります。 ワークスペースに「原稿」あるいは「Draft」という名称のフォルダーがある場合には、そのフォルダーの中のテキストのみ結合します。もしも締め切りフォルダーが指定されていれば、締め切りフォルダー内のテキストファイルを結合します。 novel-writerは階層化されたフォルダーの中のテキストも結合することができます。 資料などをワークスペースに保存している場合には、テキストファイルを「原稿(あるいはDraft」フォルダーに入れておいてください。 Side-panel原稿ツリー編集サイドパネルには原稿を一覧できる原稿ツリーがあります。それぞれの原稿には文字数が表示され、クリックするとエディターで開くことができます。 原稿フォルダーはテキストファイルそれぞれの文字数、フォルダー内のテキストファイルを合算表示しています。 原稿ツリーのテキストファイルがハイライトしているときにEnterキーを押すと、テキストファイルやフォルダーの名前を変更できます。 ハイライトしたファイルの直後に、テキストやフォルダーを追加することも可能です。 ドラッグ&ドロップ編集原稿ツリーのタイトル右にあるドラッグ&ドロップを有効化ボタンをクリックすると、原稿ツリーのファイルやフォルダーの順番を入れ替えて、ファイルに連番を付与することができるようになります。 ドラッグ&ドロップが有効になると、ファイルの連番と拡張子は表示されなくなります。 注意! ドラッグ&ドロップ機能は、ファイルの名前を書き換えます。万全を期してはいますが、バックアップを取るようにしてください。 Gitを利用しているときにファイルの連番を変更すると、たくさんのファイルが削除・追加された状態になりますが、 締め切りフォルダーの設定バインダーで任意のフォルダーを[締切フォルダー]に指定すると、そのフォルダーに含まれる文字数だけを表示することができます。 原稿のコンパイルを実行すると、締め切りフォルダー内のテキストファイルを結合します。 文字数カウント現在編集中のファイルの文字数と、ワークスペースにあるテキストファイル全てを合算した文字数をステータスバーに表示することができます。ワークスペースに「原稿」あるいは「Draft」という名称のフォルダーがある場合には、そのフォルダーの中だけを計算します。 Gitでファイルの履歴を管理している場合には、前日から現在までの編集距離をリアルタイムに表示します。 Preview原稿用紙プレビューコマンドパレットの[Novel:縦書きプレビュー]で、現在使っているエディタのテキストを、原稿用紙プレビューすることができます。原稿の表示方法は、縦書きと横書き、一行あたりの文字数を指定することができます。
プレビュー画面はlocalhost:8080に出力していますので、ブラウザーや同じLANの他コンピュターから閲覧することもできます。 縦書きプレビューでは、二桁のASCII数字を縦中横に組んで表示します。 プレビュー画面との画面連動縦書きプレビューでクリック(あるいはタップ)すると、エディタがスクロールしてタップした行を選択します。長いテキストを推敲するときにご利用ください。 プレビュー設定Extension Settings で、文字サイズと一行あたりの文字数、ページあたりの行数を設定してお使いください。 正規表現による検索置換をカスタマイズすることで、オリジナルのタグを挿入することも可能です。
組み方向の変更設定でプレビューの縦組と横組を選択できます。
プレビューフォントの設定プレビューフォントの設定が可能です。 Contributed by yasudaz](https://github.com/yasudaz) 版面指定1行あたりの文字数、1ページあたりの行数を指定できます。 正規表現検索置換出力するHTMLを検索置換することができます。オリジナルのタグを挿入する場合などにご利用ください。 PDF Featuresnovel-writerはVivliostyle/CLIを用いて、選択しているテキストファイルのA5変型版(130mm×190mm)の縦書きPDFを出力します。以下のコマンドをでVivlioStyleをインストールしてからPDF出力を実行してください。
1行が短く、ページあたりの行数が長い場合には段組で印刷します。 PDFを保存するときは、コマンドパレットから「Novel:PDF出力」を実行してください。
PDF用のカスタムCSSレイアウトを固定して、異なる版面や上下・ノド・小口の空き、新たなスタイルシートを導入いただけます。印刷物を作成する場合にご利用ください。またカスタムCSSでは、いくつかのnovel-writer変数を利用できます。
novel-writerの標準的なprint.cssは、以下で閲覧できます - GitHub ttrace/vscode-language-japanese-novel/blob/main/htdocs/css/print.css PDF出力機能拡張の設定項目novel-writerのPDF出力は原稿のために開発していますが、簡単な冊子の本文作成にも利用できます。 PDFページ番号フォーマットページ下部のページ番号のフォーマットを指定できます。 作品名 22文字 x 13行 12 とフッターに挿入されます。以下に例を示します。
PDF開始ページ番号PDFのページ番号の開始ページを指定できます。 PDF開始ページの左右設定PDFの第一ページを左右どちらにするか設定できます。 冊子の場合は「左」に、原稿提出の時は「右」にしておくといいでしょう。 FAQvscode-textlintとの併用novel-writerはnovelというファイル形式を用いますので、VS CodeのsettingsでのTextlint: Languagesにnovelを追加してください。 novel-writerの機能を無効にしたい場合VS Codeは標準的なテキストファイルで小説を書くための機能拡張ですので、小説ではないプロジェクトを開いたときにも動作してしまいます。novel-writerの機能を停止したい場合には、VS Codeのプロファイルを用いてnovel-writerが動作しないプロファイル(あるいはnovel-writerが有効なプロファイル)を作成してご利用ください。 novel形式ための特別な拡張子を追加する要望があることは承知していますが、OSの標準的な機能を利用できない拡張子をメンテナンスすることは困難ですので、VS Code本体で言語と拡張子に関する機能拡張が行われるまでは対応できません。 Referencesnovel-writerはさまざまなWeb文書を参考にさせていただきました。特に参考になったのは以下の二つのウェブサイトです。 VSCodeで俺々言語モードを作る https://qiita.com/takl/items/ba2f63db515f66585d1f Language Grammars https://macromates.com/manual/en/language_grammars CopyrightMIT 縦書き表示を行う方法については、MITライセンスで公開されているn-fukiju/縦書きプレビューのコードを大いに参考にさせていただきました。 幾らかはそのまま利用させていただいています。 n-fukuju/vertical-writing-vsce 文字数を計算する部分、ステータスバーでの文字数表記は、MITライセンスで公開されている8amjp/vsce-charactercountの成果を使わせていただいています。 8amjp/vsce-charactercount SponsorsGitHub Sponsorsでご支援いただいている方々です Appendixハイライト設定機能拡張に内蔵しているデフォルトのハイライト設定です。
|