Private fork of the hugo-tufte theme.
Find a file
2023-04-17 17:20:14 +01:00
.github chore(.github): fix typos in bug report template 2022-01-29 08:34:13 +01:00
archetypes Started refactoring 2021-07-21 20:23:55 +02:00
assets adjust meta styles; add tufte-css.md 2023-04-17 17:20:14 +01:00
exampleSite adjust meta styles; add tufte-css.md 2023-04-17 17:20:14 +01:00
images Update example site and include images. 2016-02-20 13:09:11 -08:00
layouts adjust meta styles; add tufte-css.md 2023-04-17 17:20:14 +01:00
static adjust meta styles; add tufte-css.md 2023-04-17 17:20:14 +01:00
.gitignore Merge branch 'main' into master 2023-04-14 16:39:58 +00:00
CHANGELOG.md 🔖 chores 2021-11-03 23:10:50 +01:00
code_of_conduct.md update code of conduct 2021-07-25 10:09:53 +02:00
config.toml dump hugo minimal working version to 0.83 2021-08-01 11:36:11 +02:00
CONTRIBUTING.md chores 2021-07-25 10:05:22 +02:00
go.mod Create go.mod 2022-01-30 20:01:17 +01:00
LICENSE.md 🔖 chores 2021-11-03 23:10:50 +01:00
Makefile ♻️ Fixing the normalize.scss issue (#39) 2021-11-03 21:54:46 +01:00
README.md adjust table & footer css; edit readme 2023-04-15 16:20:36 +01:00
theme.toml Update theme.toml 2021-12-17 18:15:56 +01:00

Tufte Hugo Theme

Contributor Covenant build github pages

Fork notes by loikein:

I just do whatever I want to make the theme better suit my needs. Not intended as a continuation of the original projects.

Original readme:

This theme isn't actively maintained, if you want a new feature please file a pull request.

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 katex or MathJax. By utilizing copious partial templates the theme is largely customizable.

This is a fork of the original hugo-tufte.

Quickstart

Prerequisite: Hugo Extended

You'll need to install Hugo Extended for this theme to test it locally, since this theme uses SCSS.

  • On Windows:
    • Using Chocolatey:
      choco install hugo-extended # remember, you might need admin privs
      

For a new site

# this code is shell-agnostic, and should work in cmd, powershell, bash, zsh....
hugo new site <your-site-name> # create your new site with hugo in your pwd
cd <your-site-name>\themes\    # cd into the themes directory
git clone <this-git-repo>      # HTTPS link @ the top of the page if you've never done this before

Add theme = 'hugo-tufte' to your config.toml to let your site know to actually use this theme, specifically.

Then run hugo server -D and open up localhost:1313/ or wherever it says in Firefox.

Features

Math

Katex or MathJax renders LaTeX written inside of markdown files. LaTeX can be written more or less as normal. Some examples:

  • This $\frac{1}{2}$ will be rendered inline.
  • 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 aligned environment (align* is not supported by katex). 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{aligned}
  e &= (xy)^2  \\
  &=xyxy \implies \\
  y^{-1} &= xyx \implies \\
  y^{-1}x^{-1} &= xy,
\end{aligned}
</p>

establishing that $G$ is abelian.

Site Parameters

The site specific parameters that this theme recognizes are:

  • subtitle string: This is displayed under the main title.
  • showPoweredBy boolean: if true, display a shoutout to Hugo and this theme.
  • copyrightHolder string: Inserts the value in the default copyright notice.
  • copyright string: Custom copyright notice.
  • math boolean: Site wide kill switch for Latex support
  • katex boolean: if "katex" is set to true katex will be used to render LaTex, if not MathJax will be used instead. (Set to true by default)
  • codeBlocksDark boolean: if true, code blocks will use a dark theme.

Socials

You can add links to your social media profile by using thoses parameters:

  • github: string
  • gitlab: string
  • twitter: string
  • patreon: string
  • youtube: string
  • medium: string
  • reddit: string
  • stackoverflow: string
  • instagram: string
  • mastodon: string
  • orcid: string
  • google_scholar: string

Please see exampleSite/config.toml to see the full implementation with exemples.

Page Parameters

  • hideDate boolean: if true, do not display a page date. When meta is set to true, hideDate takes greater precedence.
  • hideReadTime boolean: if true, do not display the page's reading time estimate. When meta is set to true, hideReadTime takes greater precedence.
  • math boolean: if true, try to render the page's LaTeX code using MatheJax.
  • meta boolean: if true, display page metadata such as author, date, categories provided these page parameters exist and are not overridden. Content in the /post directory, (i.e., pages of type "post") ignore this parameter.
  • toc boolean: if true, display the table of contents for the page.

Shortcodes

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 cite or footer metadata.
    • Usage: Accepts the named parameters cite and footer.
    • Example:
    {{< blockquote cite="www.shawnohare.com" footer="Shawn" >}}
      There is nothing more beautiful than an elegant mathematical proof.
    {{< /blockquote >}}
    
  • 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 section shortcode. Accepts the style parameters class and id. 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, link. These parameters make no styling assumptions, so spacing is important. A more compactly styled epigraph will be used if the type parameter is set to compact.
    • Example:
    {{< epigraph pre="Author Writer, " cite="Math is Fun" link='https://www.google.com' >}}
    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: {{< marginnote >}}...{{< /marginnote >}}
    • Example:
    {{< marginnote >}}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 class and id. 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 {{< sidenote >}}...{{< /sidenote >}}
    • Example:
    {{< sidenote >}}Some sidenote{{< /sidenote >}}