# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

[book]
authors = ["lowRISC"]
language = "en"
multilingual = false
src = "."
title = "OpenTitan Documentation"

[output.html]
site-url = "book/"
fold = { enable = true}
git-repository-url = "https://github.com/lowrisc/opentitan"
edit-url-template = "https://github.com/lowrisc/opentitan/edit/master/{path}"
curly-quotes = true

additional-js = [
    "./util/mdbook/wavejson/default.js",
    "./util/mdbook/wavejson/wavedrom.min.js",
    "./util/mdbook/wavejson/wavejson.js",
]

additional-css = [
    "./util/mdbook/wavejson/wavejson.css",
]

[preprocessor.readme2index]
command = "./util/mdbook_readme2index.py"

[preprocessor.wavejson]
command = "./util/mdbook_wavejson.py"

[preprocessor.reggen]
command = "./util/mdbook_reggen.py"
# Python RegEx identifying ip block config paths.
ip-cfg-py-regex = '(ip|ip_autogen)/.+/data/(?!.+_testplan).+\.hjson'

[preprocessor.testplan]
command = "./util/mdbook_testplan.py"
# Python RegEx identifying testplan paths.
testplan-py-regex = '.+_testplan\.hjson'

[preprocessor.otbn]
command = "./util/mdbook_otbn.py"

[preprocessor.doxygen]
command = "./util/mdbook_doxygen.py"
out-dir = "docs/"
html-out-dir = "doxy/"
dif-src-py-regex = 'dif_\S*\.h'
