Hugo-Tufte is a minimalist blog-like theme for the static site generator Hugo that attempts to be a faithful implementation of the Tufte-css project. It supports mathematical typesetting via MathJax. By utilizing copious partial templates the theme is largely customizable.
Mathjax renders LaTeX written inside of markdown files. LaTeX can be
written more or less as normal, but inline and display environments that
start with \ must be escaped. Some examples:
This $\LaTeX$ will be rendered inline.This \\(\LaTeX\\) will be rendered inline.A simple displayed equation: $$f(x, y) := e^{x^2 - y^2}.$$A simple displayed equation: \\[f(x, y) := e^{x^2 - y^2}.\\]
There currently seems to be some weirdness with other environments,
such as the align environment. These environments will render provided
they are wrapped in <p> tags and blank lines. The snippet below should
render correctly.
Let $G$ be a finite group with exponent $2$. Then every element is
an involution, hence for any $x$, $y$ in $G$ we have:
<p>
\begin{align*}
e &= (xy)^2 \\
&=xyxy \implies \\
y^{-1} &= xyx \implies \\
y^{-1}x^{-1} &= xy,
\end{align*}
</p>
establishing that $G$ is abelian.
The site specific parameters that this theme recognizes are:
subtitlestring: This is displayed under the main title.showPoweredByboolean: if true, display a shoutout to Hugo and this theme.copyrightHolderstring: Inserts the value in the default copyright notice.copyrightstring: Custom copyright notice.
hideDateboolean: if true, do not display a page date. Whenmetais set to true,hideDatetakes greater precedence.hideReadTimeboolean: if true, do not display the page's reading time estimate. Whenmetais set to true,hideReadTimetakes greater precedence.mathboolean: if true, try to render the page's LaTeX code using MatheJax.metaboolean: if true, display page metadata such as author, date, categories provided these page parameters exist and are not overridden. Content in the/postdirectory, (i.e., pages of type "post") ignore this parameter.tocboolean: if true, display the table of contents for the page.
This theme provides the following shortcodes in an attempt to completely support all the features present in the Tufte-css project.
-
blockquote- Description: Wrap text in a blockquote and insert optional
citeorfootermetadata. - Usage: Accepts the named parameters
citeandfooter. - Example:
{{% blockquote cite="www.shawnohare.com" footer="Shawn" %}} There is nothing more beautiful than an elegant mathematical proof. {{% /blockquote %}}` - Description: Wrap text in a blockquote and insert optional
-
div- Description: This shortcode is provided as a work-around for wrapping complex blocks of markdown in div tags. The wrapped text can include other shortcodes
- Usage: Identical to the
sectionshortcode. Accepts the style parametersclassandid. If only the positional argument"end"is passed, a closing tag will be inserted. - Example:
{{< div class="my-class" >}}inserts a<div class="my-class">tag, while{{<div "end" >}}inserts the closing</div>tag.
-
epigraph- Description: Create an epigraph with the wrapped text.
- Usage: To include a footer with source attribution, pass in the
optional named parameters
pre,cite,post. These parameters make no styling assumptions, so spacing is important. A more compactly styled epigraph will be used if thetypeparameter is set tocompact. - Example:
{{% epigraph pre="Author Writer, " cite="Math is Fun" %}} This is an example of an epigraph with some math \\( \mathbb N \subseteq \mathbb R \\) to start the beginning of a section. {{% /epigraph %}} -
marginnote- Description: Wrap text to produce a numberless margin note.
- Usage: Accepts a required positional argument that is the margin note id.
{{% marginnote "<margin note id>"" %}}...{{% /marginnote %}} - Example:
{{% marginnote "mn-example" %}}Some marginnote{{% /marginnote%}}
-
section- Description: This shortcode is provided as a work-around for wrapping complex blocks of markdown in section tags. The wrapped text can include other shortcodes
- Usage: Accepts the style parameters
classandid. If only the positional argument"end"is passed, a closing tag will be inserted. - Example:
{{< section class="my-class" >}}inserts a<section class="my-class">tag, while{{<section "end" >}}inserts the closing</section>tag.
-
sidenote- Description: Wrap text to produce an automatically numbered sidenote.
- Usage: identical to
marginnote. Accepts a required positional argument that is the side note id.{{% sidenote "<side note id>"" %}}...{{% /sidenote %}} - Example:
{{% sidenote "sn-example" %}}Some sidenote{{% /sidenote %}}
TODO
- Describe the role of each template file, as commenting within the files themselves seems to break the templates.