blob: afe163ecb5bbb0bf11fffb70c9aea7f7d735f660 [file] [log] [blame]
// Copyright 2015-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0
= Vulkan Asciidoc Configuration Files
== Macros
The macros in `spec-macros.rb` and `spec-macros/extension.rb` are described
in the "`Vulkan Documentation and Extensions: Procedures and Conventions`"
document (see the link:../styleguide.txt[style guide].
== Support for Math
Asciidoctor is customized to insert KaTeX `<script>` tags from
`math.js` for HTML5, and properly pass through math which has
`\begin{}\/end{}` delimiters instead of $$\[\]\(\).
For PDF builds, asciidoctor-mathematical is used to generate
images.
== Stylesheets
`khronos.css` is the stylesheet used for HTML output.
It is a slightly tweaked version of the Asciidoctor 'Colony' theme.
== Chunked Spec Index
`chunkindex` contains scripts for building and using a search index for the
Vulkan chunked HTML specification.
== Asciidoctor Extensions
We use a number of Asciidoctor customizations written in Ruby, described
briefly below.
* `asciidoctor-mathematical-ext.rb` - make latexmath: blocks work in table cells
* `extension-highlighter.rb` - one way of constructing a diff HTML document
* `katex_replace.rb` - substitute KaTeX for MathJax in output HTML
* `loadable_html.rb` - add some status messages for slow-loading documents
* `rouge-extend-css.rb` - override parts of the 'rouge' highlighter CSS
* `spec-macros.rb` - custom asciidoctor macros used in spec markup
* `tilde_open_block.rb` - allow '~~~~' as an open block delimiter
* `vuid-expander.rb` - add anchors to valid usage ID tags
* `vu-to-json.rb` - extract valid usage statements to JSON as part of a dummy spec build