// Copyright 2018-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

ifdef::env-github[]
:note-caption: :information_source:
endif::[]

= Index Building For Vulkan Chunked HTML Output

This directory contains scripts which help a search index, and add a
searchbox using this index into each page of the Vulkan chunked HTML
specification output. These files include:

[options="compact"]
  * README.adoc - this file
  * build-index.js - build a JSON search index from generate-index.rb output
  * chunked.css - CSS for the searchbox
  * chunked.js - Script to load and execute the searchbox
  * custom.patch - Patch to generated HTML to include chunked.js / chunked.css
  * generate-index.rb - generate an index of the HTML documents
  * lunr.js - utility functions taken from the lunr package

= Credits and Licenses

The indexing tools and toolchain was created by Baldur Karlsson in
    https://github.com/baldurk/vkdocs-chunked-builder
Files created in that project are under the Apache 2.0 license.

Portions of the chunked.js script are taken from
    https://github.com/filamentgroup/loadJS/blob/master/loadJS.js
These portions are copyright Scott Jehl, Filament Group, Inc., under an MIT
license.

The lunr.js script is taken from the 'lunr' npm package, version 2.3.8. It
is copyright Oliver Nightingale, under an MIT license.
