199 lines
10 KiB
HTML
199 lines
10 KiB
HTML
<!DOCTYPE HTML>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>index.hbs - mdBook Documentation</title>
|
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
|
|
<meta name="description" content="Create book from markdown files. Like Gitbook but implemented in Rust">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<base href="../../">
|
|
|
|
<link rel="stylesheet" href="book.css">
|
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
|
|
|
|
<link rel="shortcut icon" href="favicon.png">
|
|
|
|
<!-- Font Awesome -->
|
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
|
|
|
<link rel="stylesheet" href="highlight.css">
|
|
<link rel="stylesheet" href="tomorrow-night.css">
|
|
|
|
<!-- MathJax -->
|
|
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
|
|
|
<!-- Fetch JQuery from CDN but have a local fallback -->
|
|
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
|
|
<script>
|
|
if (typeof jQuery == 'undefined') {
|
|
document.write(unescape("%3Cscript src='jquery.js'%3E%3C/script%3E"));
|
|
}
|
|
</script>
|
|
</head>
|
|
<body class="light">
|
|
<!-- Set the theme before any content is loaded, prevents flash -->
|
|
<script type="text/javascript">
|
|
var theme = localStorage.getItem('theme');
|
|
if (theme == null) { theme = 'light'; }
|
|
$('body').removeClass().addClass(theme);
|
|
</script>
|
|
|
|
<!-- Hide / unhide sidebar before it is displayed -->
|
|
<script type="text/javascript">
|
|
var sidebar = localStorage.getItem('sidebar');
|
|
if (sidebar === "hidden") { $("html").addClass("sidebar-hidden") }
|
|
else if (sidebar === "visible") { $("html").addClass("sidebar-visible") }
|
|
</script>
|
|
|
|
<div id="sidebar" class="sidebar">
|
|
<ul class="chapter"><li class="affix"><a href="misc/introduction.html">Introduction</a></li><li><a href="README.html"><strong>1.</strong> mdBook</a></li><li><a href="cli/cli-tool.html"><strong>2.</strong> Command Line Tool</a></li><li><ul class="section"><li><a href="cli/init.html"><strong>2.1.</strong> init</a></li><li><a href="cli/build.html"><strong>2.2.</strong> build</a></li><li><a href="cli/watch.html"><strong>2.3.</strong> watch</a></li><li><a href="cli/serve.html"><strong>2.4.</strong> serve</a></li><li><a href="cli/test.html"><strong>2.5.</strong> test</a></li></ul></li><li><a href="format/format.html"><strong>3.</strong> Format</a></li><li><ul class="section"><li><a href="format/summary.html"><strong>3.1.</strong> SUMMARY.md</a></li><li><a href="format/config.html"><strong>3.2.</strong> Configuration</a></li><li><a href="format/theme/theme.html"><strong>3.3.</strong> Theme</a></li><li><ul class="section"><li><a href="format/theme/index-hbs.html" class="active"><strong>3.3.1.</strong> index.hbs</a></li><li><a href="format/theme/syntax-highlighting.html"><strong>3.3.2.</strong> Syntax highlighting</a></li></ul></li><li><a href="format/mathjax.html"><strong>3.4.</strong> MathJax Support</a></li><li><a href="format/rust.html"><strong>3.5.</strong> Rust code specific features</a></li></ul></li><li><a href="lib/lib.html"><strong>4.</strong> Rust Library</a></li><li class="spacer"></li><li class="affix"><a href="misc/contributors.html">Contributors</a></li></ul>
|
|
</div>
|
|
|
|
<div id="page-wrapper" class="page-wrapper">
|
|
|
|
<div class="page">
|
|
<div id="menu-bar" class="menu-bar">
|
|
<div class="left-buttons">
|
|
<i id="sidebar-toggle" class="fa fa-bars"></i>
|
|
<i id="theme-toggle" class="fa fa-paint-brush"></i>
|
|
</div>
|
|
|
|
<h1 class="menu-title">mdBook Documentation</h1>
|
|
|
|
<div class="right-buttons">
|
|
<i id="print-button" class="fa fa-print" title="Print this book"></i>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="content" class="content">
|
|
<a class="header" href="format/theme\index-hbs.html#indexhbs" id="indexhbs"><h1>index.hbs</h1></a>
|
|
<p><code>index.hbs</code> is the handlebars template that is used to render the book.
|
|
The markdown files are processed to html and then injected in that template.</p>
|
|
<p>If you want to change the layout or style of your book, chances are that you will
|
|
have to modify this template a little bit. Here is what you need to know.</p>
|
|
<a class="header" href="format/theme\index-hbs.html#data" id="data"><h2>Data</h2></a>
|
|
<p>A lot of data is exposed to the handlebars template with the "context".
|
|
In the handlebars template you can access this information by using</p>
|
|
<pre><code class="language-handlebars">{{name_of_property}}
|
|
</code></pre>
|
|
<p>Here is a list of the properties that are exposed:</p>
|
|
<ul>
|
|
<li>
|
|
<p><strong><em>language</em></strong> Language of the book in the form <code>en</code>. To use in <code class="language-html"><html lang="{{ language }}"></code> for example.
|
|
At the moment it is hardcoded.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong><em>title</em></strong> Title of the book, as specified in <code>book.toml</code></p>
|
|
</li>
|
|
<li>
|
|
<p><strong><em>chapter_title</em></strong> Title of the current chapter, as listed in <code>SUMMARY.md</code></p>
|
|
</li>
|
|
<li>
|
|
<p><strong><em>path</em></strong> Relative path to the original markdown file from the source directory</p>
|
|
</li>
|
|
<li>
|
|
<p><strong><em>content</em></strong> This is the rendered markdown.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong><em>path_to_root</em></strong> This is a path containing exclusively <code>../</code>'s that points to the root of the book from the current file.
|
|
Since the original directory structure is maintained, it is useful to prepend relative links with this <code>path_to_root</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong><em>chapters</em></strong> Is an array of dictionaries of the form</p>
|
|
<pre><code class="language-json">{"section": "1.2.1", "name": "name of this chapter", "path": "dir/markdown.md"}
|
|
</code></pre>
|
|
<p>containing all the chapters of the book. It is used for example to construct the table of contents (sidebar).</p>
|
|
</li>
|
|
</ul>
|
|
<a class="header" href="format/theme\index-hbs.html#handlebars-helpers" id="handlebars-helpers"><h2>Handlebars Helpers</h2></a>
|
|
<p>In addition to the properties you can access, there are some handlebars helpers at your disposal.</p>
|
|
<ol>
|
|
<li>
|
|
<a class="header" href="format/theme\index-hbs.html#toc" id="toc"><h3>toc</h3></a>
|
|
<p>The toc helper is used like this</p>
|
|
<pre><code class="language-handlebars">{{#toc}}{{/toc}}
|
|
</code></pre>
|
|
<p>and outputs something that looks like this, depending on the structure of your book</p>
|
|
<pre><code class="language-html"><ul class="chapter">
|
|
<li><a href="link/to/file.html">Some chapter</a></li>
|
|
<li>
|
|
<ul class="section">
|
|
<li><a href="link/to/other_file.html">Some other Chapter</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</code></pre>
|
|
<p>If you would like to make a toc with another structure, you have access to the chapters property containing all the data.
|
|
The only limitation at the moment is that you would have to do it with JavaScript instead of with a handlebars helper.</p>
|
|
<pre><code class="language-html"><script>
|
|
var chapters = {{chapters}};
|
|
// Processing here
|
|
</script>
|
|
</code></pre>
|
|
</li>
|
|
<li>
|
|
<a class="header" href="format/theme\index-hbs.html#previous--next" id="previous--next"><h3>previous / next</h3></a>
|
|
<p>The previous and next helpers expose a <code>link</code> and <code>name</code> property to the previous and next chapters.</p>
|
|
<p>They are used like this</p>
|
|
<pre><code class="language-handlebars">{{#previous}}
|
|
<a href="{{link}}" class="nav-chapters previous">
|
|
<i class="fa fa-angle-left"></i>
|
|
</a>
|
|
{{/previous}}
|
|
</code></pre>
|
|
<p>The inner html will only be rendered if the previous / next chapter exists.
|
|
Of course the inner html can be changed to your liking.</p>
|
|
</li>
|
|
</ol>
|
|
<hr />
|
|
<p><em>If you would like me to expose other properties or helpers, please <a href="https://github.com/azerupi/mdBook/issues">create a new issue</a>
|
|
and I will consider it.</em></p>
|
|
|
|
</div>
|
|
|
|
<!-- Mobile navigation buttons -->
|
|
|
|
<a href="format/theme/theme.html" class="mobile-nav-chapters previous">
|
|
<i class="fa fa-angle-left"></i>
|
|
</a>
|
|
|
|
|
|
|
|
<a href="format/theme/syntax-highlighting.html" class="mobile-nav-chapters next">
|
|
<i class="fa fa-angle-right"></i>
|
|
</a>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<a href="format/theme/theme.html" class="nav-chapters previous" title="You can navigate through the chapters using the arrow keys">
|
|
<i class="fa fa-angle-left"></i>
|
|
</a>
|
|
|
|
|
|
|
|
<a href="format/theme/syntax-highlighting.html" class="nav-chapters next" title="You can navigate through the chapters using the arrow keys">
|
|
<i class="fa fa-angle-right"></i>
|
|
</a>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- Local fallback for Font Awesome -->
|
|
<script>
|
|
if ($(".fa").css("font-family") !== "FontAwesome") {
|
|
$('<link rel="stylesheet" type="text/css" href="_FontAwesome/css/font-awesome.css">').prependTo('head');
|
|
}
|
|
</script>
|
|
|
|
<!-- Livereload script (if served using the cli tool) -->
|
|
|
|
|
|
<script src="highlight.js"></script>
|
|
<script src="book.js"></script>
|
|
</body>
|
|
</html>
|