The following variables are defined for usage inside your ourbigbook.liquid.html file:
body: the rendered bodydir_relpath: relative path from the rendered output to the_dirdirectory. Sample usage to link to the root directory listing:<div><a href="{{ dir_relpath }}{{ html_index }}">Website source code</a></div>file_relpath: similar toraw_relpath, but link to the_fileoutput directory insteadgit_sha: SHA of the latest git commit of the source code if in a git repositorygithub_prefix: this variable is set only if if the "github" media provider. It points to the URL prefix of the provider, e.g. if you have in yourourbigbook.json:then you can use media from that repository with:"media-providers": { "github": { "remote": "mygithubusername/media" },<img src="image/x-icon" href="{{ github_prefix }}/myimage.jpg" />html_ext:.htmlfor local renders, empty for server renders.So e.g. to link to an IDmyidyou can use:<a href="{{ root_relpath }}myid{{ html_ext }}">This will ideally be replaced with a more generic link to arbitrary ID mechnism at some point: github.com/ourbigbook/ourbigbook/issues/135html_index:/index.htmlfor local renders, empty for server rendersimage: absolute URL of the first image of the rendered page if any. This is suitable for usage inog:imagewith something like:Only the<meta property="og:image" content="{% if image %}{{ image }}{% else %}{{ json.publishRootUrl }}/_raw/logo.svg{% endif %}">\Imagemacro (block macro) is currently considered.input_path: path to the OurBigBook Markup source file relative to the project toplevel directory that generated this output, e.g.path/to/myfile.bigbMay be an empty string in the case of autogenerated sources, notably automatic directory listings, so you should always check for that with something like:{% if input_path != "" %} <div>Source code for this page: <a href="{{ raw_relpath }}/{{ input_path }}">{{ input_path }}</a></div> {% endif %}is_index_article. Boolean. True if the toplevel being rendered on this output file is the the index article. E.g. in:index.bigbwith split header conversion, the value of= John Smith's homepage == Mathematicsis_index_articlewould be:index.html: truesplit.html: truemathematics.html: false
json: exposes the entireourbigbook.jsonto the template. This is useful for example to obtainpublishRootUrlas in:<meta property="og:image" content="{{ json.publishRootUrl }}/{{ raw_relpath }}/logo.svg">raw_relpath: relative path from the rendered output to the_rawdirectory. Should be used to prefix all non-OurBigBook Markup output resources, which is the directory where such files are placed during conversion, e.g.<link rel="shortcut icon" href="{{ raw_relpath }}/logo.svg" />root_page: relative path to the toplevel page, e.g. eitherindex.html,../index.htmllocally or./,../on server oriented rendereingroot_relpath: relative path from the rendered output to the toplevel directory.This allows for toplevel resources like CSS to be found seamlessly form inside subdirectories, specially when rendering locally.For example, for the toplevel CSSmain.csswhich is generated from main.scss, we can use:<link rel="stylesheet" type="text/css" href="{{ root_relpath }}main.css">Then, when a file is locally, for example under a subdirectorymysubdir/myfile.html, OurBigBook will set:giving the desired:root_relpath=../<link rel="stylesheet" type="text/css" href="../main.css">And if the output path were instead justmyohterfile.html,root_relpathexpands to an empty string, giving again the correct:<link rel="stylesheet" type="text/css" href="main.css">This will ideally be replaced with a more generic link to arbitrary ID mechnism at some point: github.com/ourbigbook/ourbigbook/issues/135server_path: path part of the URL at which the output of this template will be visible on the server. For example:This variable can be useful if you need to generate the full path to a given page for an insane system such asindex.bigb:htmlXExtensionis true:- nosplit:
/index.html - split:
/split.html
- nosplit:
htmlXExtensionis false- nosplit: (empty string)
- split:
/split
notindex.bigb:htmlXExtensionis true:- nosplit:
/notindex.html - split:
/notindex-split.html
- nosplit:
htmlXExtensionis false- nosplit:
/notindex - split:
/notindex-split
- nosplit:
og:url:<meta property="og:url" content="{{ json.publishRootUrl }}{{ server_path }}">style: default OurBigBook stylesheetstitle: a plaintext version of the page title without any HTML tags which will is suitable for the<title>elementtoplevel_id: ID of the toplevel header of a page, e.g. given and-S,--split-headers:we'd get;= My homepage == Mathematics {scope} === Chain rule/: empty string/split: empty string/mathematics:mathematics/mathematics/chain-rule:mathematics/chain-rule
Template variable expansion automatically escape special HTML characters such as
<. TODO: " however is not currently escaped: github.com/ourbigbook/ourbigbook/issues/375 but it would be better if it were.