Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prettierによる整形で原稿MDファイル内容が書き換えられてしまう問題 #119

Open
MurakamiShinyu opened this issue Dec 18, 2023 · 0 comments

Comments

@MurakamiShinyu
Copy link
Member

このリポジトリではpackage.jsonの次の設定によってcommit時にprettierによる整形が実行されるようになっている:

themes/package.json

Lines 34 to 38 in da19c8d

"husky": {
"hooks": {
"pre-commit": "lint-staged && pretty-quick --staged"
}
},

各テーマパッケージのexampleの原稿MDファイルに対してこれが適用されて次のように意図しない書き換えがされてしまうことがある:

  • 和文文字と欧文文字との間にスペース(U+0020)が挿入される(prettier v2の問題)
  • 意図的に入れている段落の行頭の全角スペース(U+3000)が削除される
    • 電書協EPUB3制作ガイドでは段落の字下げに全角スペースを入れる(行頭が括弧以外の場合)ことが勧められている。この形式の原稿が扱えないのは問題。
  • VFMでの見出しの属性記法で、見出しの行のあと改行してから属性記法 { … } を書いている場合(見出しの内容がインラインの要素で終わるときそうする必要がある)、改行がさらに追加されて空白行があいだにできる。そうすると見出しの属性記法ではなくなってしまい、{ … } がテキストとして出力されてしまう事故になる。

このうち問題のうち最初の「和文文字と欧文文字との間にスペース(U+0020)が挿入される」については、prettierのバージョンを現在使われている v2 から最新の v3 に更新すると解決するはず。しかし、commit時のprettier実行のために使われているpretty-quickがprettier v3に対応していないという問題があり、prettierを最新にするためにはpretty-quickをほかのものに置き換える必要がある。そのpretty-quickのissue:

実際に問題が起きた例:

当面の対策としては、.prettierignore ファイルでMDファイルが整形対象にならないようにする。例:

packages/@vivliostyle/theme-epub3j/**/*.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant