blob: b885704068be60ee9356ccfbf1a25e37af440799 [file] [log] [blame]
#!/usr/bin/env python3
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
"""mdbook preprocessor for wavejson code-blocks.
It surrounds wavejson code-blocks with script tags of type WaveDrom.
"""
import json
import sys
import re
from mdbook import utils as md_utils
WAVEJSON_PATTERN = re.compile("```wavejson\n(.+?)\n```", re.DOTALL)
WAVEJSON_REPLACE = r'<script type="WaveDrom">\1</script>'
def main() -> None:
if len(sys.argv) > 2:
if (sys.argv[1], sys.argv[2]) == ("supports", "html"):
sys.exit(0)
else:
sys.exit(1)
# load both the context and the book from stdin
context, book = json.load(sys.stdin)
for chapter in md_utils.chapters(book["sections"]):
chapter["content"] = \
WAVEJSON_PATTERN.sub(WAVEJSON_REPLACE, chapter["content"])
# dump the book into stdout
print(json.dumps(book))
if __name__ == "__main__":
main()