Closed MurakamiShinyu closed 2 months ago
Prettier v3へのアップグレードは #131 で完了しました。これにより以下の問題が解決しました。
和文文字と欧文文字との間にスペース(U+0020)が挿入される
一方で、以下の問題のため packages/@vivliostyle/theme-epub3j/**/*.md
は引き続きPrettierのフォーマットの対象外としています。
意図的に入れている段落の行頭の全角スペース(U+3000)が削除される
本来、行頭の全角スペースはCSSによる指定で再現が可能であるため、行頭の全角スペースを削除するPrettierによるフォーマットは妥当性があるように思います。そのため、theme-epub3jのMarkdownファイルを例外的にPrettierの対象外にする現在の対応が最良だと思います。
このリポジトリではpackage.jsonの次の設定によってcommit時にprettierによる整形が実行されるようになっている:
https://github.com/vivliostyle/themes/blob/da19c8d34aba3b8d8f13de2e2eb8b9e87068c18d/package.json#L34-L38
各テーマパッケージのexampleの原稿MDファイルに対してこれが適用されて次のように意図しない書き換えがされてしまうことがある:
{ … }
を書いている場合(見出しの内容がインラインの要素で終わるときそうする必要がある)、改行がさらに追加されて空白行があいだにできる。そうすると見出しの属性記法ではなくなってしまい、{ … }
がテキストとして出力されてしまう事故になる。このうち問題のうち最初の「和文文字と欧文文字との間にスペース(U+0020)が挿入される」については、prettierのバージョンを現在使われている v2 から最新の v3 に更新すると解決するはず。しかし、commit時のprettier実行のために使われているpretty-quickがprettier v3に対応していないという問題があり、prettierを最新にするためにはpretty-quickをほかのものに置き換える必要がある。そのpretty-quickのissue:
実際に問題が起きた例:
当面の対策としては、
.prettierignore
ファイルでMDファイルが整形対象にならないようにする。例: https://github.com/vivliostyle/themes/blob/da19c8d34aba3b8d8f13de2e2eb8b9e87068c18d/.prettierignore#L2