2022-11-20
Shinyu Murakami
Vivliostyle Foundation
VFM v1の次の仕様が廃止:
- 見出しの属性は基本的にセクションへコピーされます
- id 属性はセクションに移動します
VFM v2の仕様では:
- 見出しの id 属性値をセクションの aria-labelledby 属性へ値をコピーします
例:
# Welcome {.title}
というMarkdownに対して、VFM v1で生成されるHTMLは
<section class="level1 title" id="welcome">
<h1 class="title">Welcome</h1>
</section>
VFM v2では
<section class="level1" aria-labelledby="welcome">
<h1 class="title" id="welcome">Welcome</h1>
</section>
VFM v1で、見出しに指定された属性を、HTMLの見出し要素(h1-h6)だけでなく自動生成されるsection要素にも重複して出力(ただしidはsectionのみに出力)していたのは次の理由:
しかしこの仕様では、見出しだけに指定したいスタイルがsection全体にも適用されてしまう問題があり、これも不便。
CSSで :has()
擬似クラスが使えるようになったことにより、「sectionにidやclass属性がないと不便」は解消されてる。
例:見出しのclass名が "title" であるsectionのスタイルを指定
section:has(> .title) {
...
}
したがって、これまでの仕様の利点はなくなったので廃止。Markdownの見出しに指定した属性はHTMLの見出し要素にだけ出力という分かりやすい仕様に。詳しくは VFM issue #151。
ほかにも仕様改良予定あり。VFM issues をご覧ください。
VFMがv1からv2にメジャーバージョンアップ(非互換な仕様変更あり)となるので、それを使っているVivliostyle CLIも現在のv5からv6へとバージョンアップすることになります。
これからの課題: Vivliostyle CLI issuesから
CSS変数を活用して、よりカスタマイズがしやすいように
Vivliostyle.js組版エンジンと、VFM、CLI、Themesのアップデートは、もちろんVivliostyle Pubに反映されます!
Vivliostyle Pubの課題: