I forked the wrong repo 😿

This commit is contained in:
loikein 2023-04-14 16:41:04 +00:00 committed by GitHub
commit e6c63a59cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
68 changed files with 1967 additions and 848 deletions

28
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,28 @@
---
name: Bug report
about: Create a report to help us improve this theme
title: ''
labels: triage
assignees: ''
---
## What version of Hugo are you using (`$ hugo version`)?
## What operating system and processor architecture are you using?
## What did you do?
## What did you expect to see?
## What did you see instead?
## If you have a hugo log output, please paste it below.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

View file

@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View file

@ -0,0 +1,33 @@
name: Build for Github Pages
on:
push:
branches:
- master # Set a branch to deploy
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./exampleSite
steps:
- uses: actions/checkout@v2
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: '0.83.1'
extended: true
- name: Build
run: hugo --minify
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GH_TOKEN }}
publish_dir: ./exampleSite/public

24
.github/workflows/test-build.yml vendored Normal file
View file

@ -0,0 +1,24 @@
name: Test Build
on: [pull_request]
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./exampleSite
steps:
- uses: actions/checkout@v2
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: '0.83.1'
extended: true
- name: Build
run: hugo --minify

7
.gitignore vendored
View file

@ -34,13 +34,20 @@ Temporary Items
## hugo
*.patch
# Generated files by hugo
/public/
exampleSite/public/*
/resources/_gen/
/exampleSite/resources/_gen/
/assets/jsconfig.json
hugo_stats.json
# Node
package-lock.json
node_modules
# Executable may be added to repository
hugo.exe
hugo.darwin

46
CHANGELOG.md Normal file
View file

@ -0,0 +1,46 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.2.0] - 2021-11-03
### Fixed
- Fixed Two deprecation warnings for _normalize-mixin.scss
### Changed
- Replaced normalize.scss with a cdn link to normalize.css
## [0.1.2] - 2021-08-21
### Changed
- There is no css files anymore, all the css is generated from scss, except for the hugo-tufte-override.css of course (70c7b91) [#15](https://github.com/slashformotion/hugo-tufte/issues/15)
### Fixed
- An icon wasn't showing in the navbar menu (c8bc5f6) [#26](https://github.com/slashformotion/hugo-tufte/issues/26)
### Deprecated
- Some parts of Feather.js support remained in the code, they are now removed. (472bb3d) [#32](https://github.com/slashformotion/hugo-tufte/issues/32)
## [0.1.1] - 2021-08-15
### Added
- Markdown styling support in the following shortcodes
- `marginnote` (4e38a13) [#18](https://github.com/slashformotion/hugo-tufte/issues/18)
- `blockquote` (628637b) [#20](https://github.com/slashformotion/hugo-tufte/issues/20)
- `epigraph` (628637b) [#20](https://github.com/slashformotion/hugo-tufte/issues/20)
- `newthought` (628637b) [#20](https://github.com/slashformotion/hugo-tufte/issues/20)
- `sidenote` (628637b) [#20](https://github.com/slashformotion/hugo-tufte/issues/20)
### Note
- The link to the repo in the footer is now pointing at https://github.com/slashformotion/hugo-tufte (ccb1ac0) [#22](https://github.com/slashformotion/hugo-tufte/issues/22)
## [0.1.0] - 2021-08-14
### Added
- All of the [Tufte-css](https://github.com/edwardtufte/tufte-css) feature via [shortcodes](https://github.com/slashformotion/hugo-tufte#shortcodes).
- Support out of the box for social media links( github, gitlab, twitter, patreon, youtube, medium, reddit, stackoverflow, instagram, mastodon, orcid, google_scholar).
- Support for custom navbar and footer links.
- Support for mathematical typesetting (LaTex) support via [katex](https://katex.org/) or [MathJax](https://www.mathjax.org).
[Unreleased]: https://github.com/slashformotion/hugo-tufte/compare/v0.1.2...HEAD
[0.1.2]: https://github.com/slashformotion/hugo-tufte/releases/tag/v0.2.0
[0.1.2]: https://github.com/slashformotion/hugo-tufte/releases/tag/v0.1.2
[0.1.1]: https://github.com/slashformotion/hugo-tufte/releases/tag/v0.1.1
[0.1.0]: https://github.com/slashformotion/hugo-tufte/releases/tag/v0.1.0

66
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,66 @@
# Introduction
> First off, thank you for considering contributing to Hugo-Tufte!
# Ground Rules
- Respect the [Code of conduct]()
- ***If you just have a question use this [Discussion](https://github.com/slashformotion/hugo-tufte/discussions).***
# How to report a bug
### Tell your contributors how to file a bug report.
You can even include a template so people can just copy-paste (again, less work for you).
When filing an issue, make sure to answer these five questions:
1. What version of Go are you using (`$ hugo version`)?
2. What operating system and processor architecture are you using?
3. What did you do?
4. What did you expect to see?
5. What did you see instead?
# How to suggest a feature or enhancement
If you find yourself wishing for a feature that doesn't exist in hugo-tufte, you are probably not alone. There are bound to be others out there with similar needs. Open an issue on our issues list on GitHub which describes the feature you would like to see, why you need it, and how it should work.
# Your First Contribution
<center>
![](https://media.giphy.com/media/3oEduFYRfaeS6KViN2/giphy.gif)
</center>
Learn how pull request works here:
- https://makeapullrequest.com
- http://www.firsttimersonly.com/
> Working on your first Pull Request? You can learn how from this *free* series, [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github).
>At this point, you're ready to make your changes! Feel free to ask for help [here](https://github.com/slashformotion/hugo-tufte/discussions); everyone is a beginner at first :smile_cat:
>
>If a maintainer **(me)** asks you to "rebase" your PR, they're saying that a lot of code has changed, and that you need to update your branch so it's easier to merge.
# Getting started to contribute with code
1. Create your own fork of the code
2. Do the changes in your fork
3. If you like the change and think the project could use it:
* Be sure that you didn't break anything.
<center>
![](https://media.giphy.com/media/3o7btNa0RUYa5E7iiQ/giphy-downsized.gif)
</center>
# Community
You can chat with me [here](https://github.com/slashformotion/hugo-tufte/discussions).

View file

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2015 Shawn O'Hare
Copyright (c) 2015 Shawn O'Hare, Slashformotion
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

16
Makefile Normal file
View file

@ -0,0 +1,16 @@
# VARIABLE
SCSS_DIR := "assets/scss/vendor"
# LIST OF THE COMMANDS
help:
@echo "Commands available:"
@echo "- 'rebuild': rebuild the public directory in the 'exampleSite'"
# COMMANDS
rebuild:
@rm -rf exampleSite/public
@cd exampleSite && hugo && cd ..
@echo "SITE REBUILT"
chroma:
hugo gen chromastyles --style=monokai > assets/scss/syntax/syntax-dark.scss

119
README.md
View file

@ -1,56 +1,73 @@
# Tufte Hugo Theme
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](code_of_conduct.md)
[![build github pages](https://github.com/slashformotion/hugo-tufte/actions/workflows/build-site-ghpages.yml/badge.svg)](https://github.com/slashformotion/hugo-tufte/actions/workflows/build-site-ghpages.yml)
## Maintenance Warning
***This theme isn't actively maintained, if you want a new feature please file a pull request.***
I do not actively maintain this theme. A fork that now
also apears unmaintained can be found at
https://github.com/slashformotion/hugo-tufte
Hugo-Tufte is a minimalist blog-like theme for the
[static site generator Hugo](https://gohugo.io) that
attempts to be a faithful implementation of the
[Tufte-css](https://github.com/edwardtufte/tufte-css) project.
It supports mathematical typesetting via [MathJax](https://www.mathjax.org).
It supports mathematical typesetting via [katex](https://katex.org/) or [MathJax](https://www.mathjax.org).
By utilizing copious partial templates the theme is largely customizable.
## State of Project
This is a fork of the original [hugo-tufte](https://github.com/shawnohare/hugo-tufte).
This theme is largely unmaintained. If there is a particular fork
that should be considered the primary project please submit a PR
updating the README, thanks!
## Quickstart
## Math
### Prerequisite: Hugo Extended
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:
You'll need to install Hugo Extended for this theme to test it locally, since this theme uses SCSS.
- On Windows:
- Using [Chocolatey](https://chocolatey.org/):
```powershell
choco install hugo-extended # remember, you might need admin privs
```
- `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}.\\]`
### For a new site
```powershell
# 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](https://katex.org/) or [MathJax](https://www.mathjax.org) 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 `align` environment. These environments will render provided
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.
```
```latex
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*}
\begin{aligned}
e &= (xy)^2 \\
&=xyxy \implies \\
y^{-1} &= xyx \implies \\
y^{-1}x^{-1} &= xy,
\end{align*}
\end{aligned}
</p>
establishing that $G$ is abelian.
```
## Site Parameters
### Site Parameters
The site specific parameters that this theme recognizes are:
@ -58,8 +75,29 @@ The site specific parameters that this theme recognizes are:
- `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.
## Page Parameters
***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`](https://github.com/slashformotion/hugo-tufte/blob/master/exampleSite/config.toml#L30) 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.
@ -71,7 +109,7 @@ The site specific parameters that this theme recognizes are:
(i.e., pages of type "post") ignore this parameter.
- `toc` boolean: if true, display the table of contents for the page.
## Shortcodes
### Shortcodes
This theme provides the following shortcodes in an attempt to completely
support all the features present in the
@ -83,9 +121,9 @@ support all the features present in the
- **Usage**: Accepts the named parameters `cite` and `footer`.
- **Example**:
```html
{{% blockquote cite="www.shawnohare.com" footer="Shawn" %}}
{{< blockquote cite="www.shawnohare.com" footer="Shawn" >}}
There is nothing more beautiful than an elegant mathematical proof.
{{% /blockquote %}}`
{{< /blockquote >}}
```
- `div`
@ -103,22 +141,25 @@ support all the features present in the
- `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
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" %}}
```html
{{< 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 \\)
$ \mathbb N \subseteq \mathbb R $
to start the beginning of a section.
{{% /epigraph %}}
{{< /epigraph >}}
```
- `marginnote`
- **Description**: Wrap text to produce a numberless margin note.
- Usage: `{{% marginnote %}}...{{% /marginnote %}}`
- **Example**: `{{% marginnote %}}Some marginnote{{% /marginnote%}}`
- Usage: `{{< marginnote >}}...{{< /marginnote >}}`
- **Example**:
```html
{{< marginnote >}}Some marginnote{{< /marginnote>}}
```
- `section`
- **Description**: This shortcode is provided as a work-around for wrapping
@ -135,11 +176,9 @@ support all the features present in the
- `sidenote`
- **Description**: Wrap text to produce an automatically numbered sidenote.
- **Usage**: identical to `marginnote`
`{{% sidenote %}}...{{% /sidenote %}}`
- **Example**: `{{% sidenote %}}Some sidenote{{% /sidenote %}}`
`{{< sidenote >}}...{{< /sidenote >}}`
- **Example**:
```html
{{< sidenote >}}Some sidenote{{< /sidenote >}}
```
## Templates
TODO
- [ ] Describe the role of each template file, as commenting within the files
themselves seems to break the templates.

View file

@ -3,7 +3,7 @@ math = false
meta = true
toc = true
author = "AUTHOR NAME"
type = "post"
+++

View file

@ -0,0 +1,64 @@
$ht-code-border-radius: .4em;
.highlight {
width: 55%;
overflow-x: scroll;
border-radius: $ht-code-border-radius;
&>div.chroma>table.lntable{
margin: $ht-code-border-radius 0 $ht-code-border-radius 0;
& td:first-of-type {
& span:not(& span>span) {
padding: 0 .75em 0 .5em;
}
}
}
&>.chroma>code {
width: max-content;
margin-top: .5em;
margin-bottom: .5em;
margin-left: .5em;
&>span.hl{
margin-left: -.5em;
padding-left: .5em;
}
}
.chroma .hl {
// border-radius: $ht-code-border-radius / 2;
display: block;
}
&::-webkit-scrollbar {
border-radius: $ht-code-border-radius;
width: 10px;
height: 1rem;
}
&::-webkit-scrollbar-thumb {
border-radius: $ht-code-border-radius;
}
}
@media screen and (max-width: 760px) {
.highlight {
width: 90%;
}
}
.highlight .lntable {
overflow: initial;
}
.highlight pre {
margin: 0;
}
.highlight pre code {
display: block;
font-size: 1rem;
}
// fix #48 => https://github.com/slashformotion/hugo-tufte/issues/48
ul>li>div.highlight {
width: 100%;
}

View file

@ -0,0 +1,26 @@
header.brand {
margin-top: 0.5em;
}
/* Main brand title */
header.brand h1 {
margin: 0;
font-weight: 400;
color: rgba(65, 70, 75, 1);
font-size: 3em;
}
header.brand h2 {
margin: 0;
padding-top: 0rem;
/*font-style: normal;*/
/*font-weight: 200;*/
color: rgba(100, 105, 110, 1);
}
header.brand hr {
text-align: left;
margin-left: 0;
width: 75%;
border-color: rgba(250, 250, 250, 0.25);
}

View file

@ -0,0 +1,19 @@
/* Content meta-data such as author, publication date, etc. */
.content-meta {
display: block;
/*color: rgba(155, 155, 155, 1);*/
color: rgba(100, 105, 110, 1);
font-size: 1.1rem;
margin-top: 1em;
}
.content-meta .author {
/*color: rgb(90, 20, 55)*/
color: rgba(65, 70, 75, 1);
}
.post-avatar {
border-radius: 50px;
float: right;
margin-left: 1em;
}

View file

@ -0,0 +1,32 @@
nav.menu ul {
list-style: none;
display: block;
/*text-align:center;*/
margin-top: 0.75rem;
padding: 0;
max-width: 45rem;
/* Width is the same as tufte.css body */
font-size: 0.9rem;
width: 87.5%;
}
nav.menu li {
display: inline-block;
margin-right: 1rem;
}
nav.menu li a {
text-decoration: none;
background: transparent;
color: rgba(65, 70, 75, 1);
letter-spacing: 0.05em;
text-transform: uppercase;
}
nav.menu li a:hover,
nav.menu li a:active,
nav.menu li a:focus {
background: inherit;
color: darkgray;
}

View file

@ -0,0 +1,47 @@
/* We utilize the html5 summary tags in order to create a post archive */
/* with built-in folding. */
details {
border-radius: 3px;
}
details summary {
vertical-align: top;
padding: .3em .5em;
outline: none;
/*color: rgba(65, 70, 75, 1);*/
}
details summary.year {
font-size: 1.5rem;
}
// details[open] summary {
// }
/* Table of Contents */
.toc summary {
font-size: 1.5rem;
margin-bottom: -1.5rem;
padding-left: 0;
}
.toc {
// float: right;
/*padding: 0rem 1rem 1rem 1rem;*/
/*margin-top: 1rem;*/
// border-left: 1px solid #eee;
}
.toc ul {
list-style: none;
display: block;
/*margin-top: 0.75rem;*/
padding: 0;
width: 87.5%;
}
.toc li {
line-height: 0.5rem;
margin: 1rem;
}

115
assets/scss/general.scss Normal file
View file

@ -0,0 +1,115 @@
/* ------------------------------------------------------------------------ */
/* hugo-tufte.css */
/* Contains extensions to the original tufte.css styles to */
/* accomodate a blog-like site. */
/* ------------------------------------------------------------------------ */
@import url("https://fonts.googleapis.com/css2?family=Fira+Code:wght@351&display=swap");
/* When setting the primary font stack, apply it to the Pure grid units along */
/* with `html`, `button`, `input`, `select`, and `textarea`. Pure Grids use */
/* specific font stacks to ensure the greatest OS/browser compatibility. */
html,
button,
input,
select,
textarea,
p,
nav,
section,
article,
header,
footer,
.pure-g [class*="pure-u"] {
font-family: "et-book", -apple-system, "San Francisco", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
"Open Sans", "Helvetica Neue", "Lucida Grand", sans-serif;
}
p {
text-align: justify;
}
code {
font-family: "Fira Code", Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 1.125rem;
line-height: 1.6;
}
.sidenote,
.marginnote {
margin-right: -55%;
width: 45%;
}
/* ------------------------------------------------------------------------ */
/* Generic content, such as the index list pages */
/* ------------------------------------------------------------------------ */
/* Content Title styling. This is mostly to avoid underlying links. */
h1.content-title {
/*max-width: 50rem;*/
font-size: 4rem;
}
h1.content-title a:link,
h1.content-title a:visited {
background: transparent;
text-decoration: none;
color: inherit;
}
h1.content-title a:hover,
h1.content-title a:focus {
color: darkgray;
}
/* ------------------------------------------------------------------------ */
/* Styling for listing pages. */
/* ------------------------------------------------------------------------ */
.list-page {
ul {
list-style-type: none;
margin: -0.25em;
width: 87.5%;
max-width: 45rem;
}
li {
margin: 0;
/*font-size: 95%;*/
}
}
.list-page .list-date {
display: inline;
font-size: 0.75em;
/* padding-right: 2em; */
/* margin-right: 2em; */
}
table:not(.lntable) {
margin-top: 1em;
font-size: 1.4rem;
width: auto; /* making booktabs style tables the unstyled default in case someone uses Markdown styling */
/* margin: 0 auto; */
/* border-spacing: 0px; */
border-top: 2px solid #111;
border-bottom: 2px solid #111;
}
table:not(.lntable) th,
table:not(.lntable) td {
font-size: 1.25rem;
line-height: 1.71428571;
}
table:not(.lntable) td {
padding-right: 0.75em;
}
table.lntable {
td.lntd {
padding: 0em;
}
border-spacing: 0;
padding: 0;
}

View file

@ -0,0 +1,22 @@
// VENDOR
@import "vendor/tufte.scss";
// OUR CODE
@import "general";
/// PAGES
@import "pages/footer";
/// COMPONENTS
@import "components/code-highlight";
@import "components/toc";
@import "components/nav";
@import "components/header";
@import "components/meta";
// Look at this https://gohugo.io/hugo-pipes/resource-from-template/#readout
{{ if and (isset .Site.Params "codeblocksdark") .Site.Params.codeBlocksDark }}
@import "syntax/highlight-dark.scss"
{{ else }}
@import "syntax/highlight-light.scss"
{{ end }}

View file

@ -0,0 +1,46 @@
/* Footer, but with a different name to avoid conflicts with tufte.css */
footer.page-footer{
padding-top: 1em;
margin-top: 3em;
color: #aaa;
width: 95%;
max-width: 45rem;
}
footer.page-footer p {
font-size: 1.2rem;
margin: 0em;
/* light font looked odd on chrome */
/*font-weight: lighter;*/
}
footer.page-footer a {
color: rgba(65, 70, 75, 1);
text-decoration: none;
background: transparent;
}
footer.page-footer hr {
text-align: left;
margin-left: 0;
width: 100%;
border-color: rgba(250, 250, 250, 0.25);
}
footer.page-footer ul.page-footer-menu {
list-style: none;
display: block;
/*text-align:center;*/
margin: 0;
padding: 0;
width: unset;
}
footer.page-footer ul.page-footer-menu li {
display: inline-block;
margin-right: 0.5rem;
// font-size: 55%;
}
.copyright {
}
.copyright p {
font-size: 90%;
}

View file

@ -0,0 +1,12 @@
$ht-code-bgcolor: #282a36;
@import "syntax-dark.scss";
.highlight {
&::-webkit-scrollbar {
background: $ht-code-bgcolor;
}
&::-webkit-scrollbar-thumb {
background: scale-color($ht-code-bgcolor, $lightness: 23%, $saturation: -40%);
}
}

View file

@ -0,0 +1,12 @@
$ht-code-bgcolor: #dde2ff;
@import "syntax-light.scss";
.highlight {
&::-webkit-scrollbar {
background: $ht-code-bgcolor;
}
&::-webkit-scrollbar-thumb {
background: scale-color($ht-code-bgcolor, $lightness: -13%, $saturation: -80%);
}
}

View file

@ -0,0 +1,91 @@
/* Dracula Theme v1.2.5
*
* https://github.com/zenorocha/dracula-theme
*
* Copyright 2016, All rights reserved
*
* Code licensed under the MIT license
* http://zenorocha.mit-license.org
*
* @author Rob G <wowmotty@gmail.com>
* @author Chris Bracco <chris@cbracco.me>
* @author Zeno Rocha <hi@zenorocha.com>
*/
.highlight .hl { background-color: scale-color($ht-code-bgcolor, $lightness: 32%, $saturation: -40%) }
.highlight { background: $ht-code-bgcolor; color: #f8f8f2 }
.highlight .c { color: #6272a4 } /* Comment */
.highlight .err { color: #f8f8f2 } /* Error */
.highlight .g { color: #f8f8f2 } /* Generic */
.highlight .k { color: #ff79c6 } /* Keyword */
.highlight .l { color: #f8f8f2 } /* Literal */
.highlight .n { color: #f8f8f2 } /* Name */
.highlight .o { color: #ff79c6 } /* Operator */
.highlight .x { color: #f8f8f2 } /* Other */
.highlight .p { color: #f8f8f2 } /* Punctuation */
.highlight .ch { color: #6272a4 } /* Comment.Hashbang */
.highlight .cm { color: #6272a4 } /* Comment.Multiline */
.highlight .cp { color: #ff79c6 } /* Comment.Preproc */
.highlight .cpf { color: #6272a4 } /* Comment.PreprocFile */
.highlight .c1 { color: #6272a4 } /* Comment.Single */
.highlight .cs { color: #6272a4 } /* Comment.Special */
.highlight .gd { color: #8b080b } /* Generic.Deleted */
.highlight .ge { color: #f8f8f2; text-decoration: underline } /* Generic.Emph */
.highlight .gr { color: #f8f8f2 } /* Generic.Error */
.highlight .gh { color: #f8f8f2; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #f8f8f2; font-weight: bold } /* Generic.Inserted */
.highlight .go { color: #44475a } /* Generic.Output */
.highlight .gp { color: #f8f8f2 } /* Generic.Prompt */
.highlight .gs { color: #f8f8f2 } /* Generic.Strong */
.highlight .gu { color: #f8f8f2; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #f8f8f2 } /* Generic.Traceback */
.highlight .kc { color: #ff79c6 } /* Keyword.Constant */
.highlight .kd { color: #8be9fd; font-style: italic } /* Keyword.Declaration */
.highlight .kn { color: #ff79c6 } /* Keyword.Namespace */
.highlight .kp { color: #ff79c6 } /* Keyword.Pseudo */
.highlight .kr { color: #ff79c6 } /* Keyword.Reserved */
.highlight .kt { color: #8be9fd } /* Keyword.Type */
.highlight .ld { color: #f8f8f2 } /* Literal.Date */
.highlight .m { color: #bd93f9 } /* Literal.Number */
.highlight .s { color: #f1fa8c } /* Literal.String */
.highlight .na { color: #50fa7b } /* Name.Attribute */
.highlight .nb { color: #8be9fd; font-style: italic } /* Name.Builtin */
.highlight .nc { color: #50fa7b } /* Name.Class */
.highlight .no { color: #f8f8f2 } /* Name.Constant */
.highlight .nd { color: #f8f8f2 } /* Name.Decorator */
.highlight .ni { color: #f8f8f2 } /* Name.Entity */
.highlight .ne { color: #f8f8f2 } /* Name.Exception */
.highlight .nf { color: #50fa7b } /* Name.Function */
.highlight .nl { color: #8be9fd; font-style: italic } /* Name.Label */
.highlight .nn { color: #f8f8f2 } /* Name.Namespace */
.highlight .nx { color: #f8f8f2 } /* Name.Other */
.highlight .py { color: #f8f8f2 } /* Name.Property */
.highlight .nt { color: #ff79c6 } /* Name.Tag */
.highlight .nv { color: #8be9fd; font-style: italic } /* Name.Variable */
.highlight .ow { color: #ff79c6 } /* Operator.Word */
.highlight .w { color: #f8f8f2 } /* Text.Whitespace */
.highlight .mb { color: #bd93f9 } /* Literal.Number.Bin */
.highlight .mf { color: #bd93f9 } /* Literal.Number.Float */
.highlight .mh { color: #bd93f9 } /* Literal.Number.Hex */
.highlight .mi { color: #bd93f9 } /* Literal.Number.Integer */
.highlight .mo { color: #bd93f9 } /* Literal.Number.Oct */
.highlight .sa { color: #f1fa8c } /* Literal.String.Affix */
.highlight .sb { color: #f1fa8c } /* Literal.String.Backtick */
.highlight .sc { color: #f1fa8c } /* Literal.String.Char */
.highlight .dl { color: #f1fa8c } /* Literal.String.Delimiter */
.highlight .sd { color: #f1fa8c } /* Literal.String.Doc */
.highlight .s2 { color: #f1fa8c } /* Literal.String.Double */
.highlight .se { color: #f1fa8c } /* Literal.String.Escape */
.highlight .sh { color: #f1fa8c } /* Literal.String.Heredoc */
.highlight .si { color: #f1fa8c } /* Literal.String.Interpol */
.highlight .sx { color: #f1fa8c } /* Literal.String.Other */
.highlight .sr { color: #f1fa8c } /* Literal.String.Regex */
.highlight .s1 { color: #f1fa8c } /* Literal.String.Single */
.highlight .ss { color: #f1fa8c } /* Literal.String.Symbol */
.highlight .bp { color: #f8f8f2; font-style: italic } /* Name.Builtin.Pseudo */
.highlight .fm { color: #50fa7b } /* Name.Function.Magic */
.highlight .vc { color: #8be9fd; font-style: italic } /* Name.Variable.Class */
.highlight .vg { color: #8be9fd; font-style: italic } /* Name.Variable.Global */
.highlight .vi { color: #8be9fd; font-style: italic } /* Name.Variable.Instance */
.highlight .vm { color: #8be9fd; font-style: italic } /* Name.Variable.Magic */
.highlight .il { color: #bd93f9 } /* Literal.Number.Integer.Long */

View file

@ -0,0 +1,69 @@
.highlight .hl { background-color: #ffffd4 }
.highlight { background: $ht-code-bgcolor;}
.highlight .c { color: #6a737d } /* Comment */
.highlight .err { } /* Error */
.highlight .k { color: #d73a49 } /* Keyword */
.highlight .o { } /* Operator */
.highlight .ch { color: #6a737d } /* Comment.Hashbang */
.highlight .cm { color: #6a737d } /* Comment.Multiline */
.highlight .cp { color: #d73a49 } /* Comment.Preproc */
.highlight .cpf { color: #032f62 } /* Comment.PreprocFile */
.highlight .c1 { color: #6a737d } /* Comment.Single */
.highlight .cs { color: #6a737d } /* Comment.Special */
.highlight .gd { color: #b31d28; background-color: #ffeef0 } /* Generic.Deleted */
.highlight .ge { } /* Generic.Emph */
.highlight .gr { } /* Generic.Error */
.highlight .gh { color: #005cc5 } /* Generic.Heading */
.highlight .gi { color: #22863a; background-color: #f0fff4 } /* Generic.Inserted */
.highlight .go { } /* Generic.Output */
.highlight .gp { } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #6f42c1; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #005cc5 } /* Keyword.Constant */
.highlight .kd { color: #d73a49 } /* Keyword.Declaration */
.highlight .kn { color: #d73a49 } /* Keyword.Namespace */
.highlight .kp { color: #d73a49 } /* Keyword.Pseudo */
.highlight .kr { color: #d73a49 } /* Keyword.Reserved */
.highlight .kt { color: #d73a49 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #032f62 } /* Literal.String */
.highlight .na { } /* Name.Attribute */
.highlight .nb { color: #005cc5 } /* Name.Builtin */
.highlight .nc { color: #6f42c1 } /* Name.Class */
.highlight .no { color: #005cc5 } /* Name.Constant */
.highlight .nd { color: #6f42c1 } /* Name.Decorator */
.highlight .ni { color: #005cc5 } /* Name.Entity */
.highlight .ne { color: #005cc5 } /* Name.Exception */
.highlight .nf { color: #6f42c1 } /* Name.Function */
.highlight .nl { color: #005cc5 } /* Name.Label */
.highlight .nn { color: #6f42c1 } /* Name.Namespace */
.highlight .nt { color: #22863a } /* Name.Tag */
.highlight .nv { color: #24292e } /* Name.Variable */
.highlight .ow { color: #d73a49; } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #005cc5 } /* Literal.Number.Bin */
.highlight .mf { color: #005cc5 } /* Literal.Number.Float */
.highlight .mh { color: #005cc5 } /* Literal.Number.Hex */
.highlight .mi { color: #005cc5 } /* Literal.Number.Integer */
.highlight .mo { color: #005cc5 } /* Literal.Number.Oct */
.highlight .sa { color: #d73a49 } /* Literal.String.Affix */
.highlight .sb { color: #032f62 } /* Literal.String.Backtick */
.highlight .sc { color: #032f62 } /* Literal.String.Char */
.highlight .dl { color: #d73a49 } /* Literal.String.Delimiter */
.highlight .sd { color: #032f62 } /* Literal.String.Doc */
.highlight .s2 { color: #032f62 } /* Literal.String.Double */
.highlight .se { color: #032f62 } /* Literal.String.Escape */
.highlight .sh { color: #032f62 } /* Literal.String.Heredoc */
.highlight .si { color: #005cc5 } /* Literal.String.Interpol */
.highlight .sx { color: #032f62 } /* Literal.String.Other */
.highlight .sr { color: #032f62 } /* Literal.String.Regex */
.highlight .s1 { color: #032f62 } /* Literal.String.Single */
.highlight .ss { color: #005cc5 } /* Literal.String.Symbol */
.highlight .bp { color: #005cc5 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #005cc5 } /* Name.Function.Magic */
.highlight .vc { color: #24292e } /* Name.Variable.Class */
.highlight .vg { color: #24292e } /* Name.Variable.Global */
.highlight .vi { color: #24292e } /* Name.Variable.Instance */
.highlight .vm { color: #005cc5 } /* Name.Variable.Magic */
.highlight .il { color: #005cc5 } /* Literal.Number.Integer.Long */

3
assets/scss/vendor/_normalize.scss vendored Normal file
View file

@ -0,0 +1,3 @@
@import 'normalize/variables';
@import 'normalize/vertical-rhythm';
@import 'normalize/normalize-mixin';

462
assets/scss/vendor/tufte.scss vendored Normal file
View file

@ -0,0 +1,462 @@
/* You can find the original at https://github.com/edwardtufte/tufte-css */
/* Import ET Book styles
adapted from https://github.com/edwardtufte/et-book/blob/gh-pages/et-book.css */
@charset "UTF-8";
@font-face {
font-family: "et-book";
src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot");
src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot?#iefix") format("embedded-opentype"),
url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.woff") format("woff"),
url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.ttf") format("truetype"),
url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.svg#etbookromanosf") format("svg");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "et-book";
src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot");
src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot?#iefix")
format("embedded-opentype"),
url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff")
format("woff"),
url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.ttf")
format("truetype"),
url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.svg#etbookromanosf")
format("svg");
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: "et-book";
src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot");
src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot?#iefix") format("embedded-opentype"),
url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.woff") format("woff"),
url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.ttf") format("truetype"),
url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.svg#etbookromanosf") format("svg");
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: "et-book-roman-old-style";
src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot");
src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot?#iefix")
format("embedded-opentype"),
url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.woff") format("woff"),
url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.ttf") format("truetype"),
url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.svg#etbookromanosf") format("svg");
font-weight: normal;
font-style: normal;
}
/* Tufte CSS styles */
html {
font-size: 15px;
}
body {
width: 87.5%;
margin-left: auto;
margin-right: auto;
padding-left: 12.5%;
font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
background-color: #fffff8;
color: #111;
max-width: 1400px;
counter-reset: sidenote-counter;
}
h1 {
font-weight: 400;
margin-top: 4rem;
margin-bottom: 1.5rem;
font-size: 3.2rem;
line-height: 1;
}
h2 {
font-style: italic;
font-weight: 400;
margin-top: 2.1rem;
margin-bottom: 0;
font-size: 2.2rem;
line-height: 1;
}
h3 {
font-style: italic;
font-weight: 400;
font-size: 1.7rem;
margin-top: 2rem;
margin-bottom: 0;
line-height: 1;
}
p.subtitle {
font-style: italic;
margin-top: 1rem;
margin-bottom: 1rem;
font-size: 1.8rem;
display: block;
line-height: 1;
}
.numeral {
font-family: et-book-roman-old-style;
}
.danger {
color: red;
}
article {
position: relative;
padding: 5rem 0rem;
}
section {
padding-top: 1rem;
padding-bottom: 1rem;
}
p,
ol,
ul {
font-size: 1.4rem;
}
p {
line-height: 2rem;
margin-top: 1.4rem;
margin-bottom: 1.4rem;
padding-right: 0;
vertical-align: baseline;
}
/* Chapter Epigraphs */
div.epigraph {
margin: 5em 0;
}
div.epigraph > blockquote {
margin-top: 3em;
margin-bottom: 3em;
}
div.epigraph > blockquote,
div.epigraph > blockquote > p {
font-style: italic;
}
div.epigraph > blockquote > footer {
font-style: normal;
}
div.epigraph > blockquote > footer > cite {
font-style: italic;
}
/* end chapter epigraphs styles */
blockquote {
font-size: 1.4rem;
}
blockquote p {
width: 50%;
}
blockquote footer {
width: 50%;
font-size: 1.1rem;
text-align: right;
}
ol,
ul {
width: 45%;
-webkit-padding-start: 5%;
-webkit-padding-end: 5%;
}
li ul {
width: 100%;
}
li {
padding: 0.5rem 0;
}
figure {
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
max-width: 55%;
-webkit-margin-start: 0;
-webkit-margin-end: 0;
margin: 0 0 3em 0;
}
figcaption {
float: right;
clear: right;
margin-right: -48%;
margin-top: 0;
margin-bottom: 0;
font-size: 1.1rem;
line-height: 1.6;
vertical-align: baseline;
position: relative;
max-width: 40%;
}
figure.fullwidth figcaption {
margin-right: 24%;
}
/* Links: replicate underline that clears descenders */
a:link,
a:visited {
color: inherit;
}
a:link {
text-decoration: none;
background: -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#fffff8, #fffff8),
-webkit-linear-gradient(#333, #333);
background: linear-gradient(#fffff8, #fffff8), linear-gradient(#fffff8, #fffff8), linear-gradient(#333, #333);
-webkit-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
-moz-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
background-repeat: no-repeat, no-repeat, repeat-x;
text-shadow: 0.03em 0 #fffff8, -0.03em 0 #fffff8, 0 0.03em #fffff8, 0 -0.03em #fffff8, 0.06em 0 #fffff8,
-0.06em 0 #fffff8, 0.09em 0 #fffff8, -0.09em 0 #fffff8, 0.12em 0 #fffff8, -0.12em 0 #fffff8, 0.15em 0 #fffff8,
-0.15em 0 #fffff8;
background-position: 0% 93%, 100% 93%, 0% 93%;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
a:link {
background-position-y: 87%, 87%, 87%;
}
}
a:link::selection {
text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe,
-0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe,
-0.15em 0 #b4d5fe;
background: #b4d5fe;
}
a:link::-moz-selection {
text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe,
-0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe,
-0.15em 0 #b4d5fe;
background: #b4d5fe;
}
/* Sidenotes, margin notes, figures, captions */
img {
max-width: 100%;
}
.sidenote,
.marginnote {
float: right;
clear: right;
margin-right: -60%;
width: 50%;
margin-top: 0;
margin-bottom: 0;
font-size: 1.1rem;
line-height: 1.3;
vertical-align: baseline;
position: relative;
}
.table-caption {
float: right;
clear: right;
margin-right: -60%;
width: 50%;
margin-top: 0;
margin-bottom: 0;
font-size: 1rem;
line-height: 1.6;
}
.sidenote-number {
counter-increment: sidenote-counter;
}
.sidenote-number:after,
.sidenote:before {
content: counter(sidenote-counter) " ";
font-family: et-book-roman-old-style;
position: relative;
vertical-align: baseline;
}
.sidenote-number:after {
content: counter(sidenote-counter);
font-size: 1rem;
top: -0.5rem;
left: 0.1rem;
}
.sidenote:before {
content: counter(sidenote-counter) " ";
top: -0.5rem;
}
p,
footer,
table,
div.table-wrapper-small,
div.supertable-wrapper > p,
div.booktabs-wrapper {
width: 55%;
}
div.fullwidth,
table.fullwidth {
width: 100%;
}
div.table-wrapper {
overflow-x: scroll;
font-family: "Trebuchet MS", "Gill Sans", "Gill Sans MT", sans-serif;
}
@media screen and (max-width: 760px) {
p,
footer {
width: 90%;
}
pre.code {
width: 87.5%;
}
ul {
width: 85%;
}
figure {
max-width: 90%;
}
figcaption,
figure.fullwidth figcaption {
margin-right: 0%;
max-width: none;
}
blockquote p,
blockquote footer {
width: 90%;
}
}
.sans {
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
letter-spacing: 0.03em;
}
.code {
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 1.125rem;
line-height: 1.6;
}
h1 .code,
h2 .code,
h3 .code {
font-size: 0.8em;
}
.marginnote .code,
.sidenote .code {
font-size: 1rem;
}
pre.code {
width: 52.5%;
padding-left: 2.5%;
overflow-x: scroll;
}
.fullwidth {
max-width: 90%;
clear: both;
}
span.newthought {
font-variant: small-caps;
font-size: 1.2em;
}
input.margin-toggle {
display: none;
}
label.sidenote-number {
display: inline;
}
label.margin-toggle:not(.sidenote-number) {
display: none;
}
@media (max-width: 760px) {
label.margin-toggle:not(.sidenote-number) {
display: inline;
}
.sidenote,
.marginnote {
display: none;
}
.margin-toggle:checked + .sidenote,
.margin-toggle:checked + .marginnote {
display: block;
float: left;
left: 1rem;
clear: both;
width: 95%;
margin: 1rem 2.5%;
vertical-align: baseline;
position: relative;
}
label {
cursor: pointer;
}
pre.code {
width: 90%;
padding: 0;
}
.table-caption {
display: block;
float: right;
clear: both;
width: 98%;
margin-top: 1rem;
margin-bottom: 0.5rem;
margin-left: 1%;
margin-right: 1%;
vertical-align: baseline;
position: relative;
}
div.table-wrapper,
table,
table.booktabs {
width: 85%;
}
div.table-wrapper {
border-right: 1px solid #efefef;
}
img {
width: 100%;
}
}

134
code_of_conduct.md Normal file
View file

@ -0,0 +1,134 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
slashformotion[at]protonmail[dot].com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available
at [https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

4
config.toml Normal file
View file

@ -0,0 +1,4 @@
[module]
[module.hugoVersion]
extended = true
min = "0.83.0"

View file

@ -1,57 +1,107 @@
contentdir = "content"
layoutdir = "layouts"
publishdir = "public"
builddrafts = true
canonifyurls = true
baseurl = "https://github.com/shawnohare/hugo-tufte"
# Remove this if your site folder is not inside the theme folder
themesDir = "../../"
# Set your theme here
theme = "hugo-tufte"
# The language of your website (see https://www.andiamo.co.uk/resources/iso-language-codes/ for reference)
languageCode = "en-us"
# The url of your website
baseurl = "https://slashformotion.github.io/hugo-tufte/"
# The title of your website (shown on all the pages)
title = "Hugo-tufte Theme Example Site"
# Site wide kill switch for Latex support
math = true
# (If math is enabled)
## if "katex" is set to true katex will be used to render LaTex, if not MathJax will be used instead
katex = true
[params]
# Subtitle of the website
subtitle = "Subtitle goes here."
# Your name or the name of you company
copyrightHolder = "Copyright Holder"
# Show the "Powered by Hugo-Tufte and Hugo."
showPoweredBy = true
# Site wide kill switch
hidedate = false
# Uncomment for dark code blocks
# codeBlocksDark = true
# Common social website links, please comment the unused ones.
## (if your favorite one is not in the list, please head to the footer menu below and add an entry)
### Please note that some of the value below are only provided as an exemple, perhaps the computed isn't valid
github = "slashformotion"
gitlab = "slashformotion"
twitter = "slashformotion"
patreon = ""
youtube = "user/ChromeDevelopers" # check the end of your youtube url https://www.youtube.com/<copy_this>
medium = "slashformotion"
reddit = "Slashformotion"
stackoverflow = "16609732/slashformotion"
instagram = "google"
mastodon = "instance.url/@username"
orcid = "0000-0003-0634-3275"
google_scholar = "jm5QaHkAAAAJ"
[taxonomies]
category = "categories"
group = "groups"
series = "series"
tag = "tags"
[params]
subtitle = "Subtitle goes here."
copyrightHolder = "Copyright Holder"
showPoweredBy = true
# -----------------------------------------------------------------------
# Navigation menu
# -----------------------------------------------------------------------
[[menu.nav]]
name = "Home"
pre = "<i class='fa fa-home fa-lg'></i> "
pre = "<i class='fas fa-home la-lg'></i>"
weight = -110
identifier = "home"
url = "/"
[[menu.nav]]
name = "Posts"
pre = "<i class='fa fa-book fa-lg'></i> "
pre = "<i class='fas fa-book fa-lg'></i> "
weight = -100
identifier = "posts"
url = "/post"
[[menu.nav]]
name = "Categories"
pre = "<i class='fa fa-tags fa-lg'></i> "
pre = "<i class='fas fa-tags fa-lg'></i> "
weight = -90
identifier = "categories"
url = "/categories"
[[menu.nav]]
name = "About"
pre = "<i class='fas fa-info-circle fa-lg'></i> "
weight = -80
identifier = "about"
url = "/about"
[[menu.nav]]
name = "Source Code"
pre = "<i class='fab fa-github fa-lg'></i> "
weight = -70
identifier = "github"
url = "https://github.com/slashformotion/hugo-tufte"
# -----------------------------------------------------------------------
# Footer menu
# FOOTER MENU
# If you need to add custom links to you footer: put them here. Be aware that this theme is using fontawesome.
# Please head to https://fontawesome.com/v4.7/icons/ to pick icons
# -----------------------------------------------------------------------
[[menu.footer]]
name = ""
pre = "<i class='fa fa-github fa-2x'></i> "
weight = -100
identifier = "github"
url = "https://github.com/shawnohare/hugo-tufte"
[[menu.footer]]
name = ""
pre = "<i class='fa fa-twitter fa-2x'></i> "
name = "Custom footer link"
pre = "<i class='fab fa-google fa-lg'></i> "
weight = -90
identifier = "twitter"
url = "https://twitter.com"
identifier = "custom_link"
url = "https://google.com"
# Don't change the settings below
[markup]
[markup.goldmark]
[markup.goldmark.renderer]
unsafe = true # make the shortcodes work
[markup.highlight]
noClasses = false
pygmentsUseClasses = true
canonifyurls = true

View file

@ -0,0 +1,16 @@
+++
title = "About This Site"
hasMath = false
+++
Hello, I'm an example site that uses the Hugo Tufte theme.
Here is a bullet list:
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
- Arcu felis bibendum ut tristique et. Volutpat odio facilisis mauris sit amet massa.
- Sed id semper risus in hendrerit gravida rutrum.
- Risus pretium quam vulputate dignissim suspendisse in est ante. Bibendum neque egestas congue quisque egestas diam in arcu.
- Nulla porttitor massa id neque aliquam. Laoreet non curabitur gravida arcu ac tortor dignissim convallis.
- Sit amet consectetur adipiscing elit.

View file

@ -1,6 +0,0 @@
+++
title = "About This Site"
hasMath = false
+++
Hello, I'm an example site that uses the Hugo Morphism theme.

View file

@ -0,0 +1,64 @@
+++
math = true
meta = false
author = "AUTHOR NAME"
date = "2021-07-20T13:56:01-08:00"
type = "post"
title = "More math $\\xi_{(even-in-the-title-!)}$"
subtitle = "Wow this really works ! "
toc = true
categories = ["katex", "latex", "tufte-css"]
+++
A compilation of $\LaTeX$ formulas...
<!--more-->
## Matrix
<p>
$$
\begin{matrix}
\alpha& \beta^{*}\\
\gamma^{*}& \delta
\end{matrix}
$$
</p>
<p>
$$
\begin{bmatrix}
\alpha& \beta^{*}\\
\gamma^{*}& \delta
\end{bmatrix}
$$
</p>
<p>
$$
\begin{Vmatrix}
\alpha& \beta^{*}\\
\gamma^{*}& \delta
\end{Vmatrix}
$$
</p>
## Limits
$$
\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}
$$
$$
\lim_{n \to \infty}
\frac{1}{x^n}
= 0
$$
## Various symbols
$$\lambda,\xi,\pi,\theta,
\mu,\Phi,\Omega,\Delta$$

View file

@ -10,6 +10,12 @@ categories:
## First Heading
| Tables | Are | Cool |
|:----------|:-------------:|------:|
| col 1 is | left-aligned | $1600 |
| col 2 is | centered | $12 |
| col 3 is | right-aligned | $1 |
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus, consequatur aspernatur omnis iste. Voluptates, id inventore ea natus ab sed amet ipsa ratione sunt dignissimos. Soluta illum aliquid repellendus recusandae.
### Sub

View file

@ -1,26 +0,0 @@
---
title: "First Post"
description: "Welcome to the first blog post."
date: "2014-03-28"
categories:
- "template"
- "boring"
---
## Sample Post 1
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
### Sub-heading
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Est, non, ratione, molestiae illo optio quia sequi id fuga natus nihil ad architecto dolor alias ex sunt iste aperiam eius itaque.
## foo
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo, neque, eveniet voluptate eos debitis illum qui nostrum eius maxime ratione assumenda suscipit impedit deserunt voluptatibus odio ducimus non. Ex, ratione.

View file

@ -6,74 +6,81 @@ math = true
title = "Hugo-Tufte Features"
subtitle = "Fancy Subtitle"
toc = true
categories = ["mathjax", "latex", "tufte-css"]
categories = ["katex", "latex", "tufte-css"]
+++
This is a quick demonstration post. It serves as an example of the features
of this theme. One of them is \\( \LaTeX \\) via MathJax.
of this theme. One of them is $ \LaTeX $ via [Katex](https://katex.org/).
{{< section "begin" >}}
## A Bit About Mathematics
{{% epigraph pre="Shawn O'Hare, " cite="Math is Fun" %}}
{{< epigraph pre="Shawn O'Hare, " cite="Math is Fun" >}}
This is an example of an epigraph with some math
\\(\mathbb N \subseteq \mathbb R \\)
$ \mathbb N \subseteq \mathbb R $
to start the beginning of a section.
{{% /epigraph %}}
{{< /epigraph >}}
<!--more-->
### Inline
Some inline math:
{{% marginnote "mn-example" %}}This is a margin note.{{% /marginnote %}}
$e^{i \pi} = -1$ and \\(\sqrt{-1} = i \\)
and \\( a_2 = 3 \\).
{{< marginnote "mn-example" >}}This is a margin note.{{< /marginnote >}}
$e^{i \pi} = -1$
and $\sqrt{-1} = i $
and $ a_2 = 3 $.
### Display
And display math using escaped brackets `\\[`:
{{% sidenote "sn-example" %}}This is a sidenote!{{% /sidenote %}}
\\[
And display math using this symbol `$$`:
{{< sidenote "sn-example" >}}This is a sidenote!{{< /sidenote >}}
$$
-- \cdot_H -- \colon B(G,H) \times B(H, K) \to B(G, K), \quad ([X], [Y]) \mapsto [X \times_H Y].
\\]
$$
### Environments
Currently, certain $\LaTeX$ environments need to be escaped so that
the markdown processor does not override MathJax. Currently, display
the markdown processor does not override Katex. Currently, display
environments should be enclosed in `<p>` tags and blank lines.
For instance:
<p>
\begin{align*}
$$
\begin{aligned}
\mu(A) &= \iint_{I^2} \chi_A (x,y) \ d(x,y)
= \int_I \left( \int_I \chi_A (x,y) \ dx\right) dy
= \int_I 0 \ dy= 0 \quad \text{and} \\
\mu(A) &=\iint_{I^2} \chi_A (x,y) \ d(x,y)
= \int_I \left( \int_I \chi_A (x,y) \ dy \right) dx
=\int_I dx = 1,
\end{align*}
\end{aligned}
$$
</p>
<!-- See https://github.com/jgm/pandoc/issues/3953#issuecomment-334670625 -->
is produced from
```
```txt
<p>
\begin{align*}
$$
\begin{aligned}
\mu(A) &= \iint_{I^2} \chi_A (x,y) \ d(x,y)
= \int_I \left( \int_I \chi_A (x,y) \ dx\right) dy
= \int_I 0 \ dy= 0 \quad \text{and} \\
\mu(A) &=\iint_{I^2} \chi_A (x,y) \ d(x,y)
= \int_I \left( \int_I \chi_A (x,y) \ dy \right) dx
=\int_I dx = 1,
\end{align*}
\end{aligned}
$$
</p>
```
### Blockquotes
Some blockquotes. But first, we try to manually cite via
<cite>This is between cite tags and has math: \\(e^x \\)</cite>
<cite>This is between cite tags and has math: $e^x $</cite>
{{% blockquote cite="www.shawnohare.com" footer="Shawn O'Hare" %}}
{{< blockquote cite="www.shawnohare.com" footer="Shawn O'Hare" >}}
This is a blockquote with two paragraphs, that employs the
theme's `blockquote` shortcode. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
@ -82,7 +89,7 @@ Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
id sem consectetuer libero luctus adipiscing.
Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
{{% /blockquote %}}
{{< /blockquote >}}
### New thoughts
@ -94,7 +101,7 @@ the `newthought` shortcode.
### Code
As an example of some inline code: `go test -v -short`.
And this is some block-code:
```go
```go {linenos=table,hl_lines=["2-5"],linenostart=199}
package main
import "log"
@ -109,6 +116,24 @@ func main() {
log.Println(y)
}
```
Here's an example without line numbers.
```go {hl_lines=["2-5"],linenostart=199}
package main
import "log"
func add(x int, y int) int {
log.Println("We are going to take the sum of two numbers, and leave a very very very long comment.")
return x + y
}
func main() {
y := add(1, 2)
log.Println(y)
}
```
### Figure
Below we have an example of a regular width figure.
{{< figure
@ -124,7 +149,8 @@ Below we have an example of a regular width figure.
>}}
{{< section "end" >}}
And now we exhibit a margin figure.
{{< figure
src="https://edwardtufte.github.io/tufte-css/img/rhino.png"
class="class param"
@ -134,10 +160,11 @@ And now we exhibit a margin figure.
label="mn-export-import"
caption="This is the image caption."
attr="Image attribution"
attrlink="attribute link"
attrlink="https://edwardtufte.github.io/tufte-css"
alt="alt"
link="link"
>}}
But tight integration of graphics with text is central to Tuftes work even when those graphics are ancillary to the main body of a text. In many of those cases, a margin figure may be most appropriate.
{{< section "end" >}}
Below is a full-width figure.

View file

@ -0,0 +1 @@
/* Nothing here yet, (This file is waiting your customizations) */

View file

@ -1,2 +0,0 @@
This file is the last hugo-tufte related css file
loaded by the theme, and so personal customization can go here.

3
go.mod Normal file
View file

@ -0,0 +1,3 @@
module github.com/slashformotion/hugo-tufte
go 1.17

View file

@ -1,7 +1,13 @@
{{ partial "header.html" . }}
<section id="main">
<div>
<h1 id="title">{{ .Title }}</h1>
{{ define "main" }}
<div id="layout" class="pure-g">
<article class="pure-u-1">
{{ partial "brand.html" . }}
<section><h2 id="title">Looks like there is a problem in the url... <br/>
<a href="{{ "" | relURL}}">Go Home ? </a></h2></section>
<section>
{{ partial "footer.html" . }}
</section>
</article>
</div>
</section>
{{ partial "footer.html" . }}
{{ end }}

View file

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
{{- partial "header.html" . -}}
<body >
{{ block "main" . }}{{ end }}
</body>
</html>

View file

@ -0,0 +1,23 @@
<!-- +++
layout: "baseof"
+++ -->
{{ define "main" }}
<div id="layout" class="pure-g">
<article class="pure-u-1">
{{ partial "brand.html" . }}
{{ range first 5 .Site.Pages }}
{{ partial "content.header.html" . }}
<p>{{ .Summary }}</p>
{{ if .Truncated }}
<p><a href="{{ .RelPermalink }}">Read On &rarr;</a></p>
{{ end }}
{{ end }}
{{ partial "footer.html" . }}
</article>
</div>
{{ end }}

View file

@ -1,6 +1,5 @@
{{ partial "header.html" . }}
{{ define "main" }}
<body>
<div id="layout" class="pure-g">
<article class="pure-u-1">
{{ partial "brand.html" . }}
@ -32,5 +31,5 @@
{{ partial "footer.html" . }}
</article>
</div>
</body>
</html>
{{ end }}

View file

@ -1,17 +1,19 @@
{{ partial "header.html" . }}
{{/*
<body>
This template render single pages
*/}}
{{ define "main" }}
<div id="layout" class="pure-g">
<article class="pure-u-1">
{{ partial "brand.html" . }}
{{ partial "content.header.html" . }}
{{ partial "toc.html" . }}
<section>{{ .Content }}</section>
<section>
{{ partial "disqus.html" . }}
<article class="pure-u-1">
{{ partial "brand.html" . }}
{{ partial "content.header.html" . }}
{{ partial "toc.html" . }}
<section>{{ .Content }}</section>
<section>
{{ partial "footer.html" . }}
</section>
</article>
</section>
</article>
</div>
</body>
</html>
{{ end }}

View file

@ -1,17 +1,25 @@
{{ partial "header.html" . }}
<body>
{{ define "main" }}
<div id="layout" class="pure-g">
<article class="pure-u-1">
{{ partial "brand.html" . }}
{{ range first 5 .Site.Pages }}
{{ partial "content.header.html" . }}
<p>{{ .Summary }}</p>
{{ if .Truncated }}
<p><a href="{{ .RelPermalink }}">Read On &rarr;</a></p>
<article class="pure-u-1">
{{ partial "brand.html" . }}
{{ range where .Site.RegularPages "Type" "post"}}
<h1 class="content-title">
{{ if .IsNode }}
<a href="{{ .Permalink }}">{{ .Title}}</a>
{{ else }}
<a href="{{ .RelPermalink }}">{{ .Title }}{{ if .Draft }} :: Draft {{end}}</a>
{{ end }}
{{ end }}
{{ partial "footer.html" . }}
</article>
</h1>
<p>{{ truncate 120 .Summary }}</p>
{{/* {{ if .Truncated }} */}}
<p><a href="{{ .RelPermalink }}">Read On &rarr;</a></p>
{{/* {{ end }} */}}
{{ end }}
{{ partial "footer.html" . }}
</article>
</div>
</body>
</html>
{{ end }}

View file

@ -1 +0,0 @@
<!-- Includes go here -->

View file

@ -1,5 +1,6 @@
<header class="brand">
<h1>{{ .Site.Title}}</h1>
<a href="{{ .Site.BaseURL }}"><h1>{{ .Site.Title}}</h1></a>
<h2>{{ .Site.Params.subtitle }}</h2>
{{ partial "nav.html" . }}
<hr />
</header>

View file

@ -1,14 +1,17 @@
<section>
<h1 class="content-title">
<h1 class="content-title">
{{ if .IsNode }}
<a href="{{ .Permalink }}">{{ .Title}}</a>
{{ else }}
<a href="{{ .RelPermalink }}">{{ .Title }}{{ if .Draft }} :: Draft {{end}}</a>
{{ end }}
</h1>
{{ if .IsPage }}
{{ if .Params.subtitle }}<p class=subtitle>{{ .Params.subtitle }}</p>{{ end }}
{{ if or (eq .Type "post") (.Params.meta) }}
</h1>
{{ if .IsPage }}
{{ if .Params.subtitle }}
<p class=subtitle>{{ .Params.subtitle }}</p>
{{ end }}
{{ if or (eq .Type "post") (.Params.meta) }}
<span class="content-meta">
{{ if .Params.author }}
<i class="fa fa-user">&nbsp;</i><span class="author">
@ -34,6 +37,6 @@
{{ end }}
{{ end }}
</span>
{{ end }}
{{ end }}
</section>
{{ end }}
{{ end }}
</section>

View file

@ -1,19 +0,0 @@
{{ if .Params.comments }}
<div id="disqus_thread"></div>
<script type="text/javascript">
(function() {
// Don't ever inject Disqus on localhost--it creates unwanted
// discussions from 'localhost:1313' on your Disqus account...
if (window.location.hostname == "localhost")
return;
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
var disqus_shortname = '{{ .Site.Params.disqusShortname }}';
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com/" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
{{ end }}

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-us">

View file

@ -1,15 +1,78 @@
<footer class="page-footer">
<hr>
<div class="previous-post" style="display:inline-block;">
{{ if .PrevPage }}
<a class="link-reverse" href="{{ .PrevPage.Permalink }}?ref=footer">« {{ .PrevPage.Title | truncate 50 "..."}}</a>
{{ end }}
</div>
<div class="next-post", style="display:inline-block;float:right;">
{{ if .NextPage }}
<a class="link-reverse" href="{{ .NextPage.Permalink }}?ref=footer">{{ .NextPage.Title | truncate 50 "..." }} »</a>
{{ end }}
</div>
<ul class="page-footer-menu">
{{/* SOCIALS */}}
{{ if isset .Site.Params "twitter" }}
<li><a href="https://twitter.com/{{.Site.Params.twitter}}"><i class='fab fa-twitter fa-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "github" }}
<li><a href="https://github.com/{{.Site.Params.github}}"><i class='fab fa-github fa-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "gitlab" }}
<li><a href="https://gitlab.com/{{.Site.Params.gitlab}}"><i class='fab fa-gitlab fa-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "patreon" }}
<li><a href="https://www.patreon.com/{{.Site.Params.patreon}}"><i class='fab fa-patreon la-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "youtube" }}
<li><a href="https://www.youtube.com/{{.Site.Params.youtube}}"><i class='fab fa-youtube la-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "medium" }}
<li><a href="https://medium.com/{{.Site.Params.medium}}"><i class='fab fa-medium la-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "reddit" }}
<li><a href="https://www.reddit.com/user/{{.Site.Params.reddit}}"><i class='fab fa-reddit la-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "stackoverflow" }}
<li><a href="https://stackoverflow.com/users/{{.Site.Params.stackoverflow}}?tab=profile"><i class='fab fa-stack-overflow la-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "instagram" }}
<li><a href="https://www.instagram.com/{{.Site.Params.instagram}}"><i class='fab fa-instagram la-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "mastodon" }}
<li><a href="https://{{.Site.Params.mastodon}}"><i class='fab fa-mastodon la-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "orcid" }}
<li><a href="https://orcid.org/{{.Site.Params.orcid}}"><i class='fab fa-orcid la-lg'></i></a></li>
{{ end }}
{{ if isset .Site.Params "google_scholar" }}
<li><a href="https://scholar.google.com/citations?user={{.Site.Params.google_scholar}}"><i class='fas fa-graduation-cap la-lg'></i></a></li>
{{ end }}
{{/* END SOCIALS */}}
{{ range .Site.Menus.footer }}
<li><a href="{{.URL}}">{{.Pre }}{{ .Name }}</a></li>
<li><a href="{{.URL}}">{{.Pre }} {{ .Name }}</a></li>
{{ end }}
</ul>
{{ if .Site.Params.showPoweredBy}}
<p>
Powered by <a href="https://gohugo.io">Hugo</a> and the
<a href="https://github.com/shawnohare/hugo-tufte">Tufte theme</a>.
<a href="https://github.com/slashformotion/hugo-tufte">Tufte theme</a>.
</p>
{{ end }}
@ -25,4 +88,3 @@
</p>
</div>
</footer>
{{ partial "body.includes.html" . }}

View file

@ -1,7 +1,11 @@
{{ partial "doctype.html" . }}
<head>
<title>{{ .Site.Title }} - {{ .Title }}</title>
{{ partial "meta.html" . }}
{{ partial "opengraph.html" }}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="description"
content="{{ with .Description }}{{ . }}{{ else }}{{ with .Summary }}{{ . }}{{ else }}{{ .Site.Params.description }}{{end }}{{ end }} ">
<link rel="canonical" href="{{ .Permalink }}" />
<!-- Standard favicon -->
<link rel="icon" type="image/x-icon" href="{{"favicon/favicon.ico" | relURL}}">
{{ partial "header.includes.html" . }}
</head>

View file

@ -1,19 +1,11 @@
<!-- Load MathJax, if necessary. -->
<!-- Load Katex, if necessary. -->
{{ if or .Params.math .IsHome }}
{{ partial "math.html" . }}
{{ end }}
<!-- Syntax highlighting -->
<!-- {{ partial "highlight.html" . }} -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.css">
<!-- Pure css -->
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/pure-min.css">
<!--[if lte IE 8]>
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/grids-responsive-old-ie-min.css">
<![endif]-->
<!--[if gt IE 8]><!-->
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/grids-responsive-min.css">
<!--<![endif]-->
<link rel="stylesheet" href="https://unpkg.com/purecss@2.0.6/build/pure-min.css">
<!-- Fonts -->
<!-- <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Open+Sans"> -->
@ -21,9 +13,12 @@
<!-- <link href='//fonts.googleapis.com/css?family=Raleway:400,200,100,700,300,500,600,800' rel='stylesheet' type='text/css'> -->
<!-- Font Awesome -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.css">
{{ $htoptions := (dict "targetPath" "/css/hugo-tufte.min.css" "outputStyle" "compressed" "enableSourceMap" true) }}
{{ $htstyle := resources.Get "scss/hugo-tufte.scss"| resources.ExecuteAsTemplate "main.scss" . | resources.ToCSS $htoptions }}
<link rel="stylesheet" href="{{ $htstyle.Permalink | relURL }}">
<link rel="stylesheet" href="{{ "/css/hugo-tufte-override.css" | relURL }}">
<!-- Main CSS file based on Pure blog layout -->
<link rel="stylesheet" href="{{ "/css/tufte.css" | absURL }}">
<link rel="stylesheet" href="{{ "/css/hugo-tufte.css" | absURL }}">
<link rel="stylesheet" href="{{ "/css/hugo-tufte-override.css" | absURL }}">

View file

@ -1,18 +1,29 @@
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
displayMath: [['$$','$$'], ['\\[','\\]']],
processEscapes: true,
processEnvironments: true,
menuSettings: { zoom: "Double-Click" },
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
TeX: { equationNumbers: { autoNumber: "AMS" },
extensions: ["AMSmath.js", "AMSsymbols.js"] }
{{ if .Params.katex }}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/auto-render.min.js"></script>
<script defer>
renderMathInElement(
document.body,
{
delimiters: [
{ left: "$$", right: "$$", display: true },
{ left: "\\[", right: "\\]", display: true },
{ left: "$", right: "$", display: false },
{ left: "\\(", right: "\\)", display: false }
],
displayMode: true
}
});
</script>
<script type="text/javascript"
src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
);
</script>
{{ else }}
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script defer>
window.MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']]
}
};
</script>
{{ end }}

View file

@ -1,7 +0,0 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<!-- Enable responsiveness on mobile devices-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="{{ .Description }}">
<meta name="keywords" content="{{ range .Keywords }}{{ . }},{{ end }}">
<meta name="author" content="{{ .Site.Title }}">
{{ hugo.Generator }}

7
layouts/robots.txt Normal file
View file

@ -0,0 +1,7 @@
User-agent: *
{{- if hugo.IsProduction | or (eq .Site.Params.env "production") }}
Allow: /
{{- else }}
Disallow: /
{{- end }}
Sitemap: {{ "sitemap.xml" | absURL }}

View file

@ -1,4 +1,6 @@
<blockquote cite="{{ .Get "cite" }}">
{{ .Inner }}
<p>
{{ .Inner | markdownify }}
</p>
<footer>{{ .Get "footer" }}</footer>
</blockquote>

View file

@ -1,11 +1,13 @@
<div class="epigraph">
<blockquote>
{{ $t := .Get "type" }}
{{ if eq $t "compact" }}{{ .Inner }}{{ else }}<p>{{ .Inner }}</p>{{ end }}
{{ if eq $t "compact" }}{{ .Inner | markdownify }}{{ else }}<p>{{ .Inner | markdownify }}</p>{{ end }}
{{ if .IsNamedParams }}
<footer>
{{ with .Get "pre" }}{{ . }}{{ end }}
{{ with .Get "link" }}<a href={{ . }}>{{ end }}
{{ with .Get "cite" }}<cite>{{ . }}</cite>{{ end }}
</a>
{{ with .Get "post" }}{{ . }}{{ end }}
</footer>
{{ end }}

View file

@ -1,3 +1,4 @@
{{ $marginnoteDomIdSuffix := .Ordinal }}<label for="marginnote-{{.Page.File.UniqueID}}-{{ $marginnoteDomIdSuffix }}" class="margin-toggle">&#8853;</label>
{{ $marginnoteDomIdSuffix := .Ordinal }}
<label for="marginnote-{{.Page.File.UniqueID}}-{{ $marginnoteDomIdSuffix }}" class="margin-toggle">&#8853;</label>
<input type="checkbox" id="marginnote-{{.Page.File.UniqueID}}-{{ $marginnoteDomIdSuffix }}" class="margin-toggle"/>
<span class="marginnote">{{ .Inner | markdownify}}</span>

View file

@ -1 +1 @@
<span class="newthought">{{ .Inner }}</span>
<span class="newthought">{{ .Inner | markdownify }}</span>

View file

@ -1,3 +1,3 @@
{{ $sidenoteDomIdSuffix := .Ordinal }}<label for="sidenote-{{.Page.File.UniqueID}}-{{ $sidenoteDomIdSuffix }}" class="margin-toggle sidenote-number"></label>
<input type="checkbox" id="sidenote-{{.Page.File.UniqueID}}-{{ $sidenoteDomIdSuffix }}" class="margin-toggle"/>
<span class="sidenote">{{ .Inner }}</span>
<span class="sidenote">{{ .Inner | markdownify }}</span>

View file

@ -1,285 +0,0 @@
/* ------------------------------------------------------------------------ */
/* hugo-tufte.css */
/* Contains extensions to the original tufte.css styles to */
/* accomodate a blog-like site. */
/* ------------------------------------------------------------------------ */
/* When setting the primary font stack, apply it to the Pure grid units along */
/* with `html`, `button`, `input`, `select`, and `textarea`. Pure Grids use */
/* specific font stacks to ensure the greatest OS/browser compatibility. */
html, button, input, select, textarea, p, nav, section, article, header, footer, .pure-g [class *= "pure-u"] {
font-family: "et-book", -apple-system, "San Francisco", "Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Open Sans","Helvetica Neue", "Lucida Grand", sans-serif;
}
/* Hugo code blocks are <pre><code class="language-$lang">...</code></pre> */
/*@media screen and (max-width: 760px) {
pre code {
}
}*/
code {
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 1.125rem;
line-height: 1.6;
}
pre code {
width: 52.5%;
font-size: 1.2rem;
padding-left: 2.5%;
display: block;
overflow-x: scroll;
}
/*@media (max-width: 760px) {
pre code {
width: 90%;
padding: 0;
}
}*/
/* ------------------------------------------------------------------------ */
/* Brand details, such as a sidebar or top display. */
/* ------------------------------------------------------------------------ */
header.brand{
margin-top: 0.5em;
}
/* Main brand title */
header.brand h1 {
margin: 0;
font-weight: 400;
color: rgba(65, 70, 75, 1);
}
header.brand h2 {
margin: 0;
padding-top: 0rem;
/*font-style: normal;*/
/*font-weight: 200;*/
color: rgba(100, 105, 110, 1);
}
header.brand hr {
text-align: left;
margin-left: 0;
width: 75%;
border-color: rgba(250, 250, 250, 0.25);
}
nav.menu ul {
list-style: none;
display: block;
/*text-align:center;*/
margin-top: 0.75rem;
padding: 0;
max-width: 45rem;
/* Width is the same as tufte.css body */
font-size: .9rem;
width: 87.5%;
}
nav.menu li {
display: inline-block;
margin-right: 1rem;
}
nav.menu li a {
text-decoration: none;
background: transparent;
color: rgba(65, 70, 75, 1);
letter-spacing: 0.05em;
text-transform: uppercase;
}
nav.menu li a:hover,
nav.menu li a:active,
nav.menu li a:focus {
background: inherit;
color: darkgray;
}
/* ------------------------------------------------------------------------ */
/* Generic content, such as the index list pages */
/* ------------------------------------------------------------------------ */
/* Content Title styling. This is mostly to avoid underlying links. */
h1.content-title {
/*max-width: 50rem;*/
}
h1.content-title a:link,
h1.content-title a:visited {
background: transparent;
text-decoration: none;
color: inherit;
}
h1.content-title a:hover,
h1.content-title a:focus {
color: darkgray;
}
/* Content meta-data such as author, publication date, etc. */
.content-meta {
display: block;
/*color: rgba(155, 155, 155, 1);*/
color: rgba(100, 105, 110, 1);
font-size: 1.1rem;
margin-top: 1em;
}
.content-meta .author {
/*color: rgb(90, 20, 55)*/
color: rgba(65, 70, 75, 1);
}
.post-avatar {
border-radius: 50px;
float: right;
margin-left: 1em;
}
/* ------------------------------------------------------------------------ */
/* Styling for listing pages. */
/* ------------------------------------------------------------------------ */
.list-page ul {
list-style-type: none;
margin: -0.25em;
width: 87.5%;
max-width: 45rem;
}
.list-page li {
margin: 0;
/*font-size: 95%;*/
}
.list-date {
display: inline;
font-size: 0.75em;
/* padding-right: 2em; */
/* margin-right: 2em; */
}
/* Table of Contents */
.toc summary {
font-size: 1.5rem;
margin-bottom: -1.5rem;
padding-left: 0;
}
.toc {
/*float: right;*/
/*padding: 0rem 1rem 1rem 1rem;*/
/*margin-top: 1rem;*/
/*border-left: 1px solid #eee;*/
}
.toc ul {
list-style: none;
display: block;
/*margin-top: 0.75rem;*/
padding: 0;
width: 87.5%;
}
.toc li {
line-height: 0.5rem;
margin: 1rem;
}
table {
font-size: 1.4rem;
}
/* Footer, but with a different name to avoid conflicts with tufte.css */
footer.page-footer{
padding-top: 1em;
margin-top: 3em;
color: #aaa;
width: 95%;
max-width: 45rem;
}
footer.page-footer p {
font-size: 1.2rem;
margin: 0em;
/* light font looked odd on chrome */
/*font-weight: lighter;*/
}
footer.page-footer a {
color: rgba(65, 70, 75, 1);
text-decoration: none;
background: transparent;
}
footer.page-footer hr {
text-align: left;
margin-left: 0;
width: 100%;
border-color: rgba(250, 250, 250, 0.25);
}
footer.page-footer ul.page-footer-menu {
list-style: none;
display: block;
/*text-align:center;*/
margin: 0;
padding: 0;
}
footer.page-footer ul.page-footer-menu li {
display: inline-block;
margin-right: 0.5rem;
font-size: 55%;
}
.copyright {
}
.copyright p {
font-size: 90%;
}
/* ------------------------------------------------------------------------ */
/* Post Archive. */
/* ------------------------------------------------------------------------ */
/* We utilize the html5 summary tags in order to create a post archive */
/* with built-in folding. */
details {
border-radius: 3px;
}
details summary {
vertical-align: top;
padding: .3em .5em;
outline: none;
/*color: rgba(65, 70, 75, 1);*/
}
details summary.year {
font-size: 1.5rem;
}
details[open] summary {
}
/* ------------------------------------------------------------------------ */
/* MathJax styling
/* ------------------------------------------------------------------------ */
.MathJax {
font: inherit;
color: inherit;
font-size: 100%;
background: inherit;
border: inherit;
}
.MathJax_Display {
font: inherit;
color: inherit;
font-size: 100%;
background: inherit;
border: inherit;
padding-bottom: 1rem;
/* max-width: 45rem; */
overflow-x: auto;
overflow-y: auto;
}

View file

@ -1,274 +0,0 @@
/* Import ET Book styles
adapted from https://github.com/edwardtufte/et-book/blob/gh-pages/et-book.css */
@charset "UTF-8";
@font-face {
font-family: "et-book";
src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot");
src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.woff") format("woff"), url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.ttf") format("truetype"), url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.svg#etbookromanosf") format("svg");
font-weight: normal;
font-style: normal
}
@font-face {
font-family: "et-book";
src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot");
src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff") format("woff"), url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.ttf") format("truetype"), url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.svg#etbookromanosf") format("svg");
font-weight: normal;
font-style: italic
}
@font-face {
font-family: "et-book";
src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot");
src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.woff") format("woff"), url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.ttf") format("truetype"), url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.svg#etbookromanosf") format("svg");
font-weight: bold;
font-style: normal
}
@font-face {
font-family: "et-book-roman-old-style";
src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot");
src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot?#iefix") format("embedded-opentype"), url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.woff") format("woff"), url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.ttf") format("truetype"), url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.svg#etbookromanosf") format("svg");
font-weight: normal;
font-style: normal;
}
/* Tufte CSS styles */
html { font-size: 15px; }
body { width: 87.5%;
margin-left: auto;
margin-right: auto;
padding-left: 12.5%;
font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
background-color: #fffff8;
color: #111;
max-width: 1400px;
counter-reset: sidenote-counter; }
h1 { font-weight: 400;
margin-top: 4rem;
margin-bottom: 1.5rem;
font-size: 3.2rem;
line-height: 1; }
h2 { font-style: italic;
font-weight: 400;
margin-top: 2.1rem;
margin-bottom: 0;
font-size: 2.2rem;
line-height: 1; }
h3 { font-style: italic;
font-weight: 400;
font-size: 1.7rem;
margin-top: 2rem;
margin-bottom: 0;
line-height: 1; }
p.subtitle { font-style: italic;
margin-top: 1rem;
margin-bottom: 1rem;
font-size: 1.8rem;
display: block;
line-height: 1; }
.numeral { font-family: et-book-roman-old-style; }
.danger { color: red; }
article { position: relative;
padding: 5rem 0rem; }
section { padding-top: 1rem;
padding-bottom: 1rem; }
p, ol, ul { font-size: 1.4rem; }
p { line-height: 2rem;
margin-top: 1.4rem;
margin-bottom: 1.4rem;
padding-right: 0;
vertical-align: baseline; }
/* Chapter Epigraphs */
div.epigraph { margin: 5em 0; }
div.epigraph > blockquote { margin-top: 3em;
margin-bottom: 3em; }
div.epigraph > blockquote, div.epigraph > blockquote > p { font-style: italic; }
div.epigraph > blockquote > footer { font-style: normal; }
div.epigraph > blockquote > footer > cite { font-style: italic; }
/* end chapter epigraphs styles */
blockquote { font-size: 1.4rem; }
blockquote p { width: 50%; }
blockquote footer { width: 50%;
font-size: 1.1rem;
text-align: right; }
ol, ul { width: 45%;
-webkit-padding-start: 5%;
-webkit-padding-end: 5%; }
li { padding: 0.5rem 0; }
figure { padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
max-width: 55%;
-webkit-margin-start: 0;
-webkit-margin-end: 0;
margin: 0 0 3em 0; }
figcaption { float: right;
clear: right;
margin-right: -48%;
margin-top: 0;
margin-bottom: 0;
font-size: 1.1rem;
line-height: 1.6;
vertical-align: baseline;
position: relative;
max-width: 40%; }
figure.fullwidth figcaption { margin-right: 24%; }
/* Links: replicate underline that clears descenders */
a:link, a:visited { color: inherit; }
a:link { text-decoration: none;
background: -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#333, #333);
background: linear-gradient(#fffff8, #fffff8), linear-gradient(#fffff8, #fffff8), linear-gradient(#333, #333);
-webkit-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
-moz-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
background-repeat: no-repeat, no-repeat, repeat-x;
text-shadow: 0.03em 0 #fffff8, -0.03em 0 #fffff8, 0 0.03em #fffff8, 0 -0.03em #fffff8, 0.06em 0 #fffff8, -0.06em 0 #fffff8, 0.09em 0 #fffff8, -0.09em 0 #fffff8, 0.12em 0 #fffff8, -0.12em 0 #fffff8, 0.15em 0 #fffff8, -0.15em 0 #fffff8;
background-position: 0% 93%, 100% 93%, 0% 93%; }
@media screen and (-webkit-min-device-pixel-ratio: 0) { a:link { background-position-y: 87%, 87%, 87%; } }
a:link::selection { text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe, -0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe, -0.15em 0 #b4d5fe;
background: #b4d5fe; }
a:link::-moz-selection { text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe, -0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe, -0.15em 0 #b4d5fe;
background: #b4d5fe; }
/* Sidenotes, margin notes, figures, captions */
img { max-width: 100%; }
.sidenote, .marginnote { float: right;
clear: right;
margin-right: -60%;
width: 50%;
margin-top: 0;
margin-bottom: 0;
font-size: 1.1rem;
line-height: 1.3;
vertical-align: baseline;
position: relative; }
.table-caption { float:right;
clear:right;
margin-right: -60%;
width: 50%;
margin-top: 0;
margin-bottom: 0;
font-size: 1.0rem;
line-height: 1.6; }
.sidenote-number { counter-increment: sidenote-counter; }
.sidenote-number:after, .sidenote:before { content: counter(sidenote-counter) " ";
font-family: et-book-roman-old-style;
position: relative;
vertical-align: baseline; }
.sidenote-number:after { content: counter(sidenote-counter);
font-size: 1rem;
top: -0.5rem;
left: 0.1rem; }
.sidenote:before { content: counter(sidenote-counter) " ";
top: -0.5rem; }
p, footer, table, div.table-wrapper-small, div.supertable-wrapper > p, div.booktabs-wrapper { width: 55%; }
div.fullwidth, table.fullwidth { width: 100%; }
div.table-wrapper { overflow-x: scroll;
font-family: "Trebuchet MS", "Gill Sans", "Gill Sans MT", sans-serif; }
@media screen and (max-width: 760px) { p, footer { width: 90%; }
pre.code { width: 87.5%; }
ul { width: 85%; }
figure { max-width: 90%; }
figcaption, figure.fullwidth figcaption { margin-right: 0%;
max-width: none; }
blockquote p, blockquote footer { width: 90%; }}
.sans { font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
letter-spacing: .03em; }
.code { font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 1.125rem;
line-height: 1.6; }
h1 .code, h2 .code, h3 .code { font-size: 0.80em; }
.marginnote .code, .sidenote .code { font-size: 1rem; }
pre.code { width: 52.5%;
padding-left: 2.5%;
overflow-x: scroll; }
.fullwidth { max-width: 90%;
clear:both; }
span.newthought { font-variant: small-caps;
font-size: 1.2em; }
input.margin-toggle { display: none; }
label.sidenote-number { display: inline; }
label.margin-toggle:not(.sidenote-number) { display: none; }
@media (max-width: 760px) { label.margin-toggle:not(.sidenote-number) { display: inline; }
.sidenote, .marginnote { display: none; }
.margin-toggle:checked + .sidenote,
.margin-toggle:checked + .marginnote { display: block;
float: left;
left: 1rem;
clear: both;
width: 95%;
margin: 1rem 2.5%;
vertical-align: baseline;
position: relative; }
label { cursor: pointer; }
pre.code { width: 90%;
padding: 0; }
.table-caption { display: block;
float: right;
clear: both;
width: 98%;
margin-top: 1rem;
margin-bottom: 0.5rem;
margin-left: 1%;
margin-right: 1%;
vertical-align: baseline;
position: relative; }
div.table-wrapper, table, table.booktabs { width: 85%; }
div.table-wrapper { border-right: 1px solid #efefef; }
img { width: 100%; } }

BIN
static/favicon/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,12 +1,14 @@
name = "Tufte"
license = "MIT"
licenselink = "https://github.com/shawnohare/hugo-tufte/blob/master/LICENSE.md"
licenselink = "https://github.com/slashformotion/hugo-tufte/blob/master/LICENSE.md"
description = "A minimalist blog theme using Tufte-css."
homepage = "http://github.com/shawnohare/hugo-tufte"
tags = ["blog", "tufte", "minimal"]
homepage = "https://github.com/slashformotion/hugo-tufte"
demo = "https://slashformotion.github.io/hugo-tufte/"
tags = ["blog", "tufte", "minimal", 'light', "personal"]
features = ["math", "tufte-css", "tufte"]
min_version = 0.15
min_version = 0.83
[author]
name = "Shawn O'Hare"
homepage = "http://www.shawnohare.com"
authors = [
{name = "Shawn O'Hare", homepage = "http://www.shawnohare.com"},
{name = "Slashformotion", homepage = "https://github.com/slashformotion"}
]