目次
はじめに
ネタのメモを以前は普通にtxtで作成していたのだけれど、VSCodeを使うのであれば目次などがハイライトされるのでMarkdownで書いたほうが楽だなと思いいたり、md形式で書くようにした。
で、地道にその形式でやっていってもいいとは思うのだけれど、便利なプラグがあったので色々とインストールすることにした。
VSCodeの小説用環境構築
前提
以下がインストール済み
名称 | バージョン |
---|---|
VSCode | 1.78.2 |
Node | v18.12.1 |
npm | 8.19.2 |
やりたいこと
- Markdown形式の文章をもっと簡単に書きたい
- textlintを入れて校正できるようにしたい
- その他
1. Markdown形式の文章をもっと簡単に書きたい
次のプラグインをインストール
- markdownlint
- Markdown形式かの校正をしてエラーを出すやつ
- Markdown Preview Enhanced
- 画面分割をしてプレビューが見れる
- Markdown Shortcuts
- 入力補助をしてくれるやつ
- Markdown All in One
- ショートカットとか使いやすいらしい。まだ活用できていない。
- Table Formatter
- テーブルを見やすくするやつ
- Auto Markdown TOC
- 自動で目次を作ってくれるやつ
注意
自動整形は次の設定をしておかないといけない。
editor.formatOnSave
- オン
また、markdownlintの不要なエラーは外した。
(以下、自分用なので雑)
"markdownlint.config": {
"MD022": false,
"MD025": false,
"MD032": false,
"MD041": false,
"line-length": false, // MD013: 1文の最大文字数をはtextlintと競合するため無効化
"no-duplicate-heading": false, // MD024: 見出し文字列の重複を許容
"no-trailing-punctuation": false, // MD026: 見出しに.,;:が入ることを許容
"no-inline-html": false, // MD033: HTML記述を許容
"no-bare-urls": false // MD034: URLそのままの表記を許容
},
2. textlintを入れて校正できるようにしたい
上に書いたように、Nodeやnpmが入っていないと使えない
-
適当なディレクトリに以下をダウンロード(以降ダウンロードディレクトリを
TEXTLINT_HOME
と呼ぶ)https://github.com/ttrace/textlint-settings-for-fiction
- 作家の方が使用しているtextlintの設定をまるっとまとめたやつ
-
PowerShellを起動
-
次のコマンドを実行
- デフォルトをインストール
cd %TEXTLINT_HOME%
npm install
- 他、欲しい物をインストール
- 技術書用語
npm install textlint-rule-spellcheck-tech-word
- 技術書用語2
- 手動でダンロードして、
%TEXTLINT_HOME%/dict
にtech-rule
として追加
- 手動でダンロードして、
- 技術書用語
- デフォルトをインストール
-
設定ファイルの編集
-
prh-my-rule.yml
の作成-
dict
直下に作成 -
以下記述
version: 1 imports: - tech-rule/ja/kanji-open.yml - tech-rule/ja/typo.yml - tech-rule/javascript.yml - tech-rule/css.yml - tech-rule/software.yml ignoreRules: rules: # project configuration - expected: Almin patterns: /almin.js/i # 独自のもの - expected: VSCode pattern: /vs ?code(?!-textlint)/i specs: - from: vscode to: VSCode - from: vs code to: VSCode - from: VS Code to: VSCode - expected: Markdown pattern: /markdown(?!lint)/i
-
-
.textlintrc
の更新-
次のように更新
{ "rules": { "@textlint-ja/morpheme-match": { "dictionaryPathList": [ "dict/morpheme-match-dict.js" ] }, "prh": { "rulePaths": [ "dict/prh-rule.yml", "dict/prh-local-rule.yml", "dict/prh-my-rule.yml", "node_modules/prh/prh-rules/media/techbooster.yml" ] }, "preset-jtf-style": { "1.1.1.本文": false, "1.1.3.箇条書き": false, "2.1.8.算用数字": false, "2.1.9.アルファベット": false, "2.2.2.算用数字と漢数字の使い分け": false, "3.1.1.全角文字と半角文字の間": false, "3.3.かっこ類と隣接する文字の間のスペースの有無": false, "4.1.1.句点(。)": false, // "4.2.1.感嘆符(!)": false, "4.2.9.ダッシュ(-)": false }, "spellcheck-tech-word": true, "@textlint-ja/textlint-rule-no-synonyms": { "allows": [ "ハロワ", "ハローワーク", "だし", "出し", "コロナ", "コロナウイルス", "ネット", "ネットワーク", "足", "脚" ] }, "general-novel-style-ja": { "chars_leading_paragraph": false, "even_number_ellipsises": false, "no_punctuation_at_closing_quote": false, "max_arabic_numeral_digits": 4 // アラビア数字の桁数は2桁まで (false: チェックしない) } } }{ "rules": { "@textlint-ja/morpheme-match": { "dictionaryPathList": [ "dict/morpheme-match-dict.js" ] }, "prh": { "rulePaths": [ "dict/prh-rule.yml", "dict/prh-local-rule.yml", "dict/prh-my-rule.yml", "node_modules/prh/prh-rules/media/techbooster.yml" ] }, "preset-jtf-style": { "1.1.1.本文": false, "1.1.3.箇条書き": false, "2.1.8.算用数字": false, "2.1.9.アルファベット": false, "2.2.2.算用数字と漢数字の使い分け": false, "3.1.1.全角文字と半角文字の間": false, "3.3.かっこ類と隣接する文字の間のスペースの有無": false, "4.1.1.句点(。)": false, // "4.2.1.感嘆符(!)": false, "4.2.9.ダッシュ(-)": false }, "spellcheck-tech-word": true, "@textlint-ja/textlint-rule-no-synonyms": { "allows": [ "ハロワ", "ハローワーク", "だし", "出し", "コロナ", "コロナウイルス", "ネット", "ネットワーク", "足", "脚" ] }, "general-novel-style-ja": { "chars_leading_paragraph": false, "even_number_ellipsises": false, "no_punctuation_at_closing_quote": false, "max_arabic_numeral_digits": 4 // アラビア数字の桁数は2桁まで (false: チェックしない) } } }
-
-
-
一部調整
%TEXTLINT_HOME%/node_modules/technical-word-rules/all.json
を修正- 以下を削除
,{"pattern":"(?:使うべきではない言葉なので修正してください|最強|常識的|最も優れた|知らない|知らなさそう|酷い)","expected":"使うべきではない言葉なので修正してください"}
- 自動修正で「使うべきではない言葉なので修正してください」と上書きされてしまう
- たぶんバグ
- 以下を削除
,{"pattern":"!?","expected":"!?"},{"pattern":"?!","expected":"?!"},{"pattern":"!!","expected":"!!"},{"pattern":"??","expected":"??"},{"pattern":"!?([^\\n\\s「」『』()[]])","expected":"!? $1"},{"pattern":"\\!\\?([^\\n\\s「」『』()[]])","expected":"!? $1"},{"pattern":"?!([^\\n\\s「」『』()[]])","expected":"?! $1"},{"pattern":"\\?\\!([^\\n\\s「」『』()[]])","expected":"?! $1"},{"pattern":"??([^\\n\\s「」『』()[]])","expected":"?? $1"},{"pattern":"\\?\\?([^\\n\\s「」『』()[]])","expected":"?? $1"},{"pattern":"!([^\\n\\s「」『』()[]])","expected":"! $1"},{"pattern":"?([^\\n\\s「」『』()[]★])","expected":"? $1"}
- preset-jtf-styleと競合するので
- 以下を削除
- vscode-textlintのインストール
3. その他
VSCodeの設定
editor.wordSeparators
`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?、。
- 句点も区切り文字と認識されるようになる
novel-writerとvscode-textlintの共存について
次の記事でtextlintと共存できなくて諦めた、と書いたのだが、私の理解が間違っていて、novel-writerの機能を使いつつ、textlintの校正も同時に受ける、というのは無理なようだ。
じゃあどうやってどちらも使うかというのは、言語モードを変えることで対応できるみたい。
- novel
- ⇒novel-writer
- txt
- ⇒vscode-textlint
見たい感じ。
参考:Visual Studio Codeを翻訳用に使ってみた
今後について
その他にも以下が気になる。
メモ程度に単語を書いておく。
- vale
- prettier-code
- Re:VIEW
- prh -ProofReadingHelper
- →これってすでに入っている?