{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# RBPU16 Data Sheet", "\n\nRun All -> self-contained HTML." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import sys,os,re,base64,mimetypes,subprocess\n", "from datetime import datetime as dt; from pathlib import Path; from html import escape as eh\n", "try: import markdown\n", "except: subprocess.check_call([sys.executable,'-m','pip','install','markdown','-q']); import markdown\n", "B=Path(os.getcwd()).resolve(); os.chdir(str(B)); sys.path.insert(0,str(B))\n", "from doc_builder import import_handler, image_extension, codeblock_extension\n", "print(f' {B.name}')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Build" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def pc(md_text):\n", " md_text = import_handler.process_imports(md_text,B,pc)\n", " md_text = codeblock_extension.render_code_blocks(md_text,B)\n", " return markdown.markdown(md_text,extensions=[\n", " 'tables','fenced_code','codehilite','nl2br','sane_lists',\n", " image_extension.ImageRowProcessor(),\n", " ],extension_configs={'codehilite':{'css_class':'highlight','guess_lang':False}})\n", "\n", "cn=[]\n", "with open(B/'project.yaml',encoding='utf-8') as f:\n", " ic=False\n", " for line in f:\n", " line=line.rstrip()\n", " if line.startswith('chapters:'): ic=True; continue\n", " if ic:\n", " mx=re.match(r'^\\s*-\\s+(.+)$',line)\n", " if mx: cn.append(mx.group(1).strip())\n", " elif line and not line.startswith(' '): ic=False\n", "\n", "print('Processing...')\n", "chapters=[]\n", "for i,n in enumerate(cn):\n", " fp=B/'chapters'/n\n", " if not fp.exists(): continue\n", " print(f' [{i+1}] {n}')\n", " c=pc(fp.read_text(encoding='utf-8'))\n", " mx=re.search(r'
| Rev | Date | Changes | Author |
|---|---|---|---|
| 1.0 | {DATE} | Initial | {AU} |