Vivliostyle CLI
Vivliostyle CLI は、HTMLやマークダウン文書を組版するためのコマンドラインインターフェイスです。
インストール
事前に Node.js (v14 以上) のインストールが必要です。
次のコマンドで Vivliostyle CLI をインストールできます:
npm install -g @vivliostyle/cliHTML から PDF を生成
vivliostyle build コマンドで HTML ファイルを指定すると、HTML から組版した結果の PDF ファイルが出力されます。
vivliostyle build index.htmlデフォルトで出力される PDF ファイル名は "output.pdf" です。
出力 PDF ファイルの指定
-o (--output) オプションで PDF ファイル名を指定できます。
vivliostyle build book.html -o book.pdfPDF を出力しないで結果を見るには
PDF を出力しないで組版結果を確認する方法については 組版結果のプレビュー を参照してください。
ページサイズの指定
-s (--size) オプションでページサイズを指定できます。指定できるサイズは、A5, A4, A3, B5, B4, JIS-B5, JIS-B4, letter, legal, ledger のいずれか、またはコンマで区切って幅と高さを指定します。
vivliostyle build paper.html -s A4 -o paper.pdf
vivliostyle build letter.html -s letter -o letter.pdf
vivliostyle build slide.html -s 10in,7.5in -o slide.pdfWeb の URL の指定
ローカルの HTML ファイルのほか、Web の URL を指定することもできます。
vivliostyle build https://vivliostyle.github.io/vivliostyle_doc/samples/gutenberg/Alice.html -s A4 -o Alice.pdf単一 HTML 文書の指定
Vivliostyle CLI のデフォルトの動作では、コマンドラインで指定された HTML 文書内に、別の HTML 文書へのリンクからなる目次がある場合、または、出版物マニフェストへのリンクがある場合、複数文書で構成される出版物(webbook あるいは webpub)の組版処理を行います。 -d (--single-doc) オプションを指定するとこの動作が変わり、単一の HTML 文書のみ組版することができます。
vivliostyle build index.html --single-docスタイルシートの追加の指定
HTMLファイルに指定されているスタイルシートに加えて、追加のスタイルシート(CSSファイル)を使うには、--style オプションでスタイルシートを指定します。
vivliostyle build example.html --style additional-style.cssこの方法で指定したスタイルシートは、HTMLファイルで指定されているスタイルシートと同様(制作者スタイルシート)の扱いで、よりあとに指定されたことになるので、CSSのカスケーディング規則により、HTMLファイルからのスタイルの指定を上書きすることになります。
ユーザースタイルシートの指定
ユーザースタイルシートを使うには、--user-style オプションでスタイルシートを指定します。(ユーザースタイルシートは、スタイル指定に !important を付けないかぎり、制作者スタイルシートのスタイル指定を上書きしません。)
vivliostyle build example.html --user-style user-style.cssEPUB から PDF を生成
vivliostyle build コマンドで EPUB ファイルを指定すると、EPUB から組版した結果の PDF ファイルが出力されます。
vivliostyle build epub-sample.epub -s A5 --user-style epub-style.css -o epub-sample.pdfEPUB 用のユーザースタイルシートの例
EPUB を好みのページスタイルにして組版するには、ユーザースタイルシートの指定が必要です。
EPUB 用のユーザースタイルシートの例: epub-style.css
@page {
margin: 10%;
@top-center { /* ページヘッダー */
writing-mode: horizontal-tb;
font-size: 75%;
content: string(title);
}
@bottom-center { /* ページフッター */
writing-mode: horizontal-tb;
font-size: 67%;
content: counter(page);
}
}
@page :first { /* 表紙ページ */
margin: 0;
@top-center {
content: none;
}
@bottom-center {
content: none;
}
}
title {
string-set: title content();
}
img { /* 画像がページに収まるように */
max-width: 100vw !important;
max-height: 100vh !important;
}解凍された EPUB から PDF を生成
解凍(unzip)された EPUB から PDF を生成するには、EPUB の OPF ファイルを指定します。
unzip epub-sample.epub
vivliostyle build item/standard.opf -s A5 --user-style epub-style.css -o epub-sample.pdfMarkdown から PDF を生成
vivliostyle build コマンドで Markdown ファイルを指定すると、Markdown から組版した結果の PDF ファイルが出力されます。
vivliostyle build manuscript.md -s A4 -o paper.pdfVFM (Vivliostyle Flavored Markdown) について
Vivliostyle CLI で利用可能な Markdown 記法については、VFM: Vivliostyle Flavored Markdown を参照してください。
テーマ CSS スタイルシートの指定
-T (--theme) オプションで CSS ファイルを指定することができます。
vivliostyle build manuscript.md --theme my-theme/style.css -o paper.pdf組版結果のプレビュー
vivliostyle preview コマンドで組版結果をブラウザでプレビューすることができます(プレビューには Vivliostyle Viewer が使われます)
vivliostyle preview index.htmlvivliostyle preview https://example.com --user-style my-style.cssvivliostyle preview publication.jsonvivliostyle preview epub-sample.epub --user-style my-style.cssvivliostyle preview manuscript.md --theme my-theme/style.css多数の文書から構成される出版物をすばやくプレビュー
多数の文書から構成される出版物をすばやくプレビューするためには、-q (--quick) オプションを指定してください。このオプションでは大まかなページ数カウントを使って迅速に文書をロードします(ページ番号の出力は不正確になります)。
vivliostyle preview index.html --quickvivliostyle preview publication.json --quickvivliostyle preview epub-sample.epub --quickVivliostyle Themes について
Theme を見つける
npm パッケージとして公開されている Theme を見つけるには npm でキーワード "vivliostyle-theme" を検索してください:
Theme のインストール
Vivliostyle CLI で npm パッケージとして公開されている Theme を利用するには、そのインストールが必要です。
npm install @vivliostyle/theme-techbookCreate Book の利用
Vivliostyle Themes を利用するより簡単な方法は Create Book を使用することです。Create Book を参照してください。
構成ファイル vivliostyle.config.js
複数の記事や章ごとのファイルをまとめて1つの出版物を構成するには、構成ファイルを利用します。vivliostyle build または vivliostyle preview コマンドを実行するとき、カレントディレクトリに構成ファイル vivliostyle.config.js があるとそれが使われます。
構成ファイルの作成
次のコマンドで構成ファイル vivliostyle.config.js を作成することができます。
vivliostyle initこれでカレントディレクトリに vivliostyle.config.js が生成されます。構成ファイルは JavaScript で記述され、これを編集することで様々な設定を変更できます。
構成ファイルの設定内容
構成ファイルの設定内容についてはファイル内のコメント(// ではじまる)に説明があります。
- title: 出版物のタイトル。例:
title: 'Principia'。 - author: 著者名。例:
author: 'Isaac Newton'。 - language: 言語。例:
language: 'en'。 この指定があると HTML のlang属性に反映されます。 - size: ページサイズ。例:
size: 'A4'。 - theme: CSS ファイルを指定します。例:
theme: 'style.css'、または Vivliostyle Themes のパッケージ名を指定します。例:theme: '@vivliostyle/theme-techbook'。 - entry: 入力の Markdown または HTML ファイルの配列を指定します。js
entry: [ 'introduction.md', 'chapter1.md', 'chapter2.md', 'glossary.html' ],entryの個別の要素にtitleやthemeの指定が可能です。jsentry: [ { path: 'about.md', title: 'About This Book', theme: 'about.css' }, ... ],
- output: 出力先を指定。例:
output: 'output.pdf'。デフォルトは{title}.pdf。次のように複数の出力を指定することも可能:jsoutput: [ './output.pdf', { path: './book', format: 'webpub', }, ],webpub出力については Web 出版物 (webpub) を参照してください。 - workspaceDir: 中間ファイルを保存するディレクトリを指定。この指定がない場合のデフォルトはカレントディレクトリであり、Markdown から変換された HTML ファイルは Markdown ファイルと同じ場所に保存されます。例:
workspaceDir: '.vivliostyle' - toc:
toc: trueを指定すると、目次を含む HTML ファイルindex.htmlが出力されます。詳しくは 目次の作成 を参照してください。
印刷用 PDF(PDF/X-1a 形式)の生成
vivliostyle build コマンドの --press-ready オプションにより印刷入稿に適した PDF/X-1a 形式で出力することができます。
この機能を使うためには、事前に Docker のインストールが必要です。
PDF の「しおり」(Bookmarks) の生成
vivliostyle build コマンドで出力される PDF には、目次の内容が「しおり」(PDF Bookmarks) として生成されます。PDF の「しおり」は、Adobe Acrobat のような PDF 閲覧ソフトで目次ナビゲーションに利用できます。
この「しおり」生成機能は、出版物に目次が含まれるときに有効になります。EPUB から PDF を生成 の場合には、EPUB に含まれる目次が使われます。それ以外については次の 目次の作成 を参照してください。
目次の作成
構成ファイルでの目次生成の指定
構成ファイル vivliostyle.config.js に toc: true の指定がある場合、目次 HTML ファイル index.html が生成されて、それが出版物の先頭のファイルになります。
目次 HTML ファイルの名前を指定のものにするには toc: にファイル名を指定します。例: toc: 'toc.html'
生成される目次 HTML ファイルの内容は次のようになります。
<html>
<head>
<title>Book Title</title>
<link href="publication.json" rel="publication" />
<link href="style.css" rel="stylesheet" />
</head>
<body>
<h1>Book Title</h1>
<nav id="toc" role="doc-toc">
<h2>Table of Contents</h2>
<ol>
<li><a href="prologue.html">Prologue</a></li>
<li><a href="chapter1.html">Chapter 1</a></li>
<li><a href="chapter2.html">Chapter 2</a></li>
<li><a href="chapter3.html">Chapter 3</a></li>
<li><a href="epilogue.html">Epilogue</a></li>
</ol>
</nav>
</body>
</html>目次タイトルの指定
- 目次 HTML の
titleとh1要素には、出版物のタイトル(構成ファイルのtitleで指定)が出力されます。 - 目次タイトル(
nav要素内の見出しh2要素の内容 "Table of Contents")は、構成ファイルのtocTitleで指定することができます。例:tocTitle: 'Contents'。
目次を出版物の先頭以外の場所に出力するには
構成ファイル vivliostyle.config.js の entry の配列の要素として { rel: 'contents' } を指定すると、その位置に目次 HTML ファイルが生成されます。
entry: [
'titlepage.md',
{ rel: 'contents' },
'chapter1.md',
...
],
toc: 'toc.html',これで、出版物の先頭の HTML ファイルは titlepage.html で、その次に目次の HTML ファイル toc.html という順番になります。
目次を自分で作成するには
目次を自分で作成するには、次のように、構成ファイルの entry の配列の要素として目次のファイルのパスと rel: 'contents' を指定してください。
entry: [
'titlepage.md',
{
path: 'toc.html',
rel: 'contents'
},
'chapter1.md',
...
],目次の作り方については W3C Publication Manifest 仕様に付属の Machine-Processable Table of Contents を参照してください。
Web 出版物 (webpub)
vivliostyle build コマンドに -f (--format) オプションで webpub を指定すると、Web 出版物 (webpub) を生成します。出力先 -o (--output) オプションには webpub を配置するディレクトリを指定します。
(以下の例では、入力の Markdown や HTML ファイルの指定は構成ファイル vivliostyle.config.js に記述されているものとします)
vivliostyle build -o webpub/ -f webpub生成された webpub ディレクトリ内には出版物マニフェスト publication.json ファイルがあり、コンテンツの HTML ファイルの読み込み順などの情報が記述されています。W3C 標準仕様である Publication Manifest に準拠しています。
webpub は、Web 上で読むことができる出版物を作るのに使えます。また、次のように publication.json ファイルを vivliostyle build コマンドに指定することで、webpub から PDF を生成することができます。
vivliostyle build webpub/publication.json -o pdfbook.pdfまた、次のように1回の vivliostyle build コマンドで webpub と PDF の両方を生成することもできます。
vivliostyle build -o webpub/ -f webpub -o pdfbook.pdf -f pdfその他のオプション
vivliostyle help コマンドで Vivliostyle CLI で利用可能なオプションの一覧を表示できます。
vivliostyle help
vivliostyle help init
vivliostyle help build
vivliostyle help preview以下もご覧ください: