Vivliostyleプロジェクトの
今までとこれから

2022-11-20
Shinyu Murakami
Vivliostyle Foundation

目次

  1. Vivliostyleプロジェクトの今まで
  2. Vivliostyleプロジェクトのこれから

Vivliostyleプロジェクトの今まで

Vivliostyle各プロジェクトの充実

Vivliostyleプロジェクトのこれから

VFM v2—Markdown拡張仕様の改良

セクション分けでの属性の扱いの仕様変更

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 をご覧ください。

Vivliostyle CLI v6

VFMがv1からv2にメジャーバージョンアップ(非互換な仕様変更あり)となるので、それを使っているVivliostyle CLIも現在のv5からv6へとバージョンアップすることになります。

これからの課題: Vivliostyle CLI issuesから

Themes のスタイルシートの刷新

CSS変数を活用して、よりカスタマイズがしやすいように

Vivliostyle Pub

Vivliostyle.js組版エンジンと、VFM、CLI、Themesのアップデートは、もちろんVivliostyle Pubに反映されます!

Vivliostyle Pubの課題: