tufte-crossref-jekyll 0.12.0b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 40dae1592f49ffe47e4a277ce18cb8fecd7224479f468886a9aeca972272156d
4
+ data.tar.gz: f88cb94ccd45d5f539983eb85945ae995c5a643772fb7b8ec702f04cee0151ae
5
+ SHA512:
6
+ metadata.gz: '092dd77ab84567cbe495865279d12a6e6cf7adcd064d5f529a78d84ba3af01cde6288e0c9b7fdf5d0571a48281d632576a47668501fbccb014bea7bf210f9036'
7
+ data.tar.gz: 76f0162e4908605eaf686d24d3d27589054969527380a44e856a60870c84103f0da0e7a6fba6f64f9422b757d6465b0eea29cec55f518c55eb20fbdabef818ef
data/README.md ADDED
@@ -0,0 +1,199 @@
1
+ # tufte-pandoc-jekyll
2
+
3
+ This is a Jekyll theme for using Tufte CSS alongside `pandoc-sidenote`. It's
4
+ based off of
5
+
6
+ - [Tufte CSS] for the original CSS file
7
+ - [Tufte Pandoc CSS] uses Markdown in conjunction with Tufte CSS
8
+
9
+ [Tufte CSS]: https://edwardtufte.github.io/tufte-css/
10
+ [Tufte Pandoc CSS]: https://jez.io/tufte-pandoc-css/
11
+
12
+ You may ask, "What's the difference between this and `tufte-jekyll`?"
13
+
14
+ Using `pandoc-sidenote`, we don't have to use `{% sidenote %}...{% sidenote %}`
15
+ and can instead just use `[^1]` like normal Pandoc markdown.
16
+
17
+ For a demo, see <https://jez.io/talks/>.
18
+
19
+ ## Features
20
+
21
+ This fork introduces some changes to the style sheets that are meant to
22
+ provide support for using **tufte-pandoc-jekyll** alongside
23
+ [Pandoc-crossref] and [Reveal.js]. Otherwise, this project attempts to
24
+ match the style, features, and version numbering of
25
+ **tufte-pandoc-jekyll**. In short what it does is to:
26
+
27
+ [Pandoc-crossref]: https://lierdakil.github.io/pandoc-crossref/
28
+
29
+ [Reveal.js]: https://revealjs.com
30
+
31
+ ### Figures, captions, and borders ###
32
+
33
+ - Provide basic support for pandoc-crossref subfigures.
34
+ - Correctly style `<figcaption>` even in margin figures, as generated by
35
+ pandoc-crossref.
36
+ - Correctly style `div > table > caption` as generated by
37
+ pandoc-crossref.
38
+ - Match table border color to main text color and collapse to avoid gaps
39
+ and other rendering issues.
40
+ - Basic support for full-width iframes and for treating iframes as
41
+ figures with captions, by using pandoc-crossref `.subfigures` syntax
42
+ (results may be unexpected in some cases).
43
+ - Make `<video>` behave the same as `<img>`.
44
+ - Provide sensible formatting for collapsible `<details>` blocks.
45
+
46
+ ### Alignments and typography ###
47
+
48
+ - Fix the alignment of sidenotes generated by Citeproc citations inside
49
+ Blockquotes.
50
+ - Fix the width of definition lists that are inside an
51
+ ordered or unordered list.
52
+ - Style `<h5>`, `<h6>`, and `<dt>` to match `<span class="newthought">`;
53
+ the rationale behind this is that a `span` provides no semantic
54
+ structure to the document, whereas using headings follows the concept
55
+ of run-in `\paragraph` and `\subparagraph` in LaTeX.
56
+ - Style Pandoc's `.line-block` (blocks where line breaks are preserved
57
+ as-is, for example in poetry) to be consistent with the remainder of
58
+ the text.
59
+ - Emphasized text belonging to a block that is in italics by default
60
+ (epigraphs and level 2 and 3 headings) is made upright.
61
+ - Use the OpenType `font-variant: all-small-caps` for text using
62
+ the default Pandoc span class `{.smallcaps}`.
63
+ - Use the OpenType `font-variant: tabular-nums` inside table cells.
64
+ - Flush table cell contents top even if the cell has a `<p>` in it,
65
+ while preserving spaces between paragraphs.
66
+ - Pull the CSL styling already implemented in Tufte-Pandoc-CSS but not
67
+ yet migrated to tufte-pandoc-jekyll.
68
+
69
+ ### Reveal.js and bonus features ###
70
+
71
+ The following tweaks allow you to use the same Markdown file as a base
72
+ for a regular web page and for a Reveal.js slideshow. These features are
73
+ not enabled by default. To enable then, check out `assets/css/main.scss`
74
+ from the theme files and uncomment the `@import "revealjs-support" ;`
75
+ line.
76
+
77
+ - Provide basic support for Reveal.js columns (only two equal or unequal
78
+ columns work well for now; for further details, see the
79
+ [Pandoc docs](https://pandoc.org/MANUAL.html#columns)).
80
+ - Correct the width of *speaker notes* and *incremental* blocks used by
81
+ Reveal.js to match that of regular paragraph text.
82
+ - Provide a dark color scheme based on a softened inversion of the main
83
+ colors as well as the solarized dark scheme for code.
84
+ - A blank `_local.scss` file for any customization you might want to
85
+ make.
86
+
87
+ :warning: The Reveal.js support does *not* affect slide output in any
88
+ way and you should *not* point your slide presentation to the styles in
89
+ the **tufte-pandoc-jekyll** theme. These features are meant to normalize
90
+ the appearance of the *text* version of your page when it contains
91
+ markup that will *also* be used for slide output.
92
+
93
+ ## Installation
94
+
95
+ There are two external dependencies in order to use this theme. You can install
96
+ them through your package manager (like `apt-get` or `brew`):
97
+
98
+ ```
99
+ # EXAMPLE: This is for macOS. Change if you're on Linux.
100
+ # Note: you must have pandoc version 2.0 or greater
101
+ brew install pandoc
102
+ brew install jez/formulae/pandoc-sidenote
103
+ ```
104
+
105
+ Next, add this line to your Jekyll site's Gemfile:
106
+
107
+ ```ruby
108
+ gem "tufte-pandoc-jekyll"
109
+ ```
110
+
111
+ And add these lines to your Jekyll site's `_config.yml`:
112
+
113
+ ```yaml
114
+ theme: tufte-pandoc-jekyll
115
+
116
+ gems:
117
+ - jekyll-pandoc
118
+ ```
119
+
120
+ And then execute:
121
+
122
+ $ bundle
123
+
124
+ Or install it yourself as:
125
+
126
+ $ gem install tufte-pandoc-jekyll
127
+
128
+
129
+ ## Usage
130
+
131
+ > Note: while `tufte-pandoc-css` optionally includes the Solarized Light/Dark
132
+ > colorscheme, it's enabled by default here, with no easy way to opt-out. This is
133
+ > probably fine for you, but if it's not, feel free to make a PR that allows
134
+ > opting out.
135
+
136
+ ### Variables
137
+
138
+ The following variables are used by this theme.
139
+
140
+ - `site.title`
141
+ - `site.author`
142
+ - Note that this theme currently only supports one author.
143
+ - `site.baseurl`
144
+ - Make sure you don't have a trailing slash here
145
+ - `site.header_includes`
146
+ - `page.header_includes`
147
+ - You can use these to include raw HTML in the `<head>`
148
+ - `site.include_after`
149
+ - `page.include_after`
150
+ - You can use these to include raw HTML in the `<body>` before the content
151
+ - `site.include_before`
152
+ - `page.include_before`
153
+ - You can use these to include raw HTML in the `<body>` after the content
154
+ - `page.layout`
155
+ - Pick one of `index`, `page`, or `post`
156
+ - `index` won't have a "Return home" link at the bottom of the page
157
+ - `page.title`
158
+ - `page.subtitle`
159
+ - `page.date`
160
+ - `page.keywords`
161
+ - `page.math`
162
+ - If `true`, we'll include KaTeX for displaying math formulas
163
+
164
+ ### `_config.yml`
165
+
166
+ You'll need to update your `_config.yml` to compile the site using Pandoc. Make
167
+ sure you've followed the installation instructions.
168
+
169
+ ```
170
+ gems:
171
+ - jekyll-pandoc
172
+
173
+ markdown: Pandoc
174
+ pandoc:
175
+ extensions:
176
+ - section-divs
177
+ - from: 'markdown+tex_math_single_backslash'
178
+ - filter: 'pandoc-sidenote'
179
+ ```
180
+
181
+ Optional: remove `section-divs` if you want to insert `<section>` tags manually.
182
+
183
+ ## Developing
184
+
185
+ To make a release:
186
+
187
+ ```bash
188
+ vim tufte-pandoc-jekyll.gemspec
189
+ git commit tufte-pandoc-jekyll.gemspec -m 'Bump version'
190
+ git tag "$version"
191
+ git push --tags origin master
192
+ gem build tufte-pandoc-jekyll.gemspec
193
+ gem push "tufte-pandoc-jekyll-$version.gem"
194
+ ```
195
+
196
+
197
+ ## License
198
+
199
+ [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://jez.io/MIT-LICENSE.txt)
@@ -0,0 +1,12 @@
1
+ {% if site.include_after %}
2
+ {% for include_after in site.include_after %}
3
+ {{ include_after }}
4
+ {% endfor %}
5
+ {% endif %}
6
+
7
+ {% if page.include_after %}
8
+ {% for include_after in page.include_after %}
9
+ {{ include_after }}
10
+ {% endfor %}
11
+ {% endif %}
12
+
@@ -0,0 +1,12 @@
1
+ {% if site.include_before %}
2
+ {% for include_before in site.include_before %}
3
+ {{ include_before }}
4
+ {% endfor %}
5
+ {% endif %}
6
+
7
+ {% if page.include_before %}
8
+ {% for include_before in page.include_before %}
9
+ {{ include_before }}
10
+ {% endfor %}
11
+ {% endif %}
12
+
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ {% include head.html %}
5
+ </head>
6
+ <body>
7
+ {% include before.html %}
8
+
9
+ <article>
10
+ {% include header.html %}
11
+
12
+ {{ content }}
13
+
14
+ {% if page.layout != 'index' %}
15
+ <section>
16
+ <p class="signoff"><em><a href="{{ site.baseurl }}/">Return home</a></em></p>
17
+ </section>
18
+ {% endif %}
19
+ </article>
20
+
21
+ {% include after.html %}
22
+ {% include math.html %}
23
+ </body>
24
+ </html>
@@ -0,0 +1,41 @@
1
+ <meta charset="utf-8">
2
+ <meta name="generator" content="pandoc">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
4
+ <meta name="author" content="{{ site.author }}">
5
+ {% if page.date %}
6
+ <meta name="dcterms.date" content="{{ page.date }}">
7
+ {% endif %}
8
+ {% if page.keywords %}
9
+ <meta name="keywords" content="{{ page.keywords | join: ' ' }}">
10
+ {% endif %}
11
+
12
+ <title>{{ page.title }} – {{ site.title }}</title>
13
+
14
+
15
+ <!-- TODO(jez): canonical URL -->
16
+ <!-- TODO(jez): OpenGraph tags -->
17
+
18
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/font-et-book/0.1/et-book.min.css">
19
+ <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css">
20
+
21
+ <!-- -->
22
+
23
+ {% if page.math %}
24
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.6.0/katex.min.css">
25
+ {% endif %}
26
+
27
+ <!--[if lt IE 9]>
28
+ <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
29
+ <![endif]-->
30
+
31
+ {% if site.header_includes %}
32
+ {% for header_include in site.header_includes %}
33
+ {{ header_include }}
34
+ {% endfor %}
35
+ {% endif %}
36
+
37
+ {% if page.header_includes %}
38
+ {% for header_include in page.header_includes %}
39
+ {{ header_include }}
40
+ {% endfor %}
41
+ {% endif %}
@@ -0,0 +1,12 @@
1
+ {% if page.title %}
2
+ <header>
3
+ <h1 class="title">{{ page.title }}</h1>
4
+ {% if page.subtitle %}
5
+ <p class="subtitle">{{ page.subtitle }}</p>
6
+ {% endif %}
7
+ {% if page.date %}
8
+ <p class="byline">{{ page.date | date: "%B %-d, %Y"}}</p>
9
+ {% endif %}
10
+ </header>
11
+ {% endif %}
12
+
@@ -0,0 +1,13 @@
1
+ {% if page.math %}
2
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.6.0/katex.min.js"></script>
3
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.6.0/contrib/auto-render.min.js"></script>
4
+ <script>
5
+ renderMathInElement(document.body, {
6
+ delimiters: [
7
+ {left: "$$", right: "$$", display: false},
8
+ {left: "\\[", right: "\\]", display: true},
9
+ {left: "\\(", right: "\\)", display: true}
10
+ ];
11
+ });
12
+ </script>
13
+ {% endif %}
@@ -0,0 +1 @@
1
+ {% include default.html %}
@@ -0,0 +1 @@
1
+ {% include default.html %}
@@ -0,0 +1 @@
1
+ {% include default.html %}
@@ -0,0 +1,68 @@
1
+ details {
2
+ @extend section;
3
+ summary > p { display: inline; }
4
+ }
5
+
6
+ dt,
7
+ dt > a,
8
+ h5,
9
+ h6 {
10
+ @extend .newthought;
11
+ clear: left;
12
+ font-style: normal;
13
+ font-weight: 400;
14
+ }
15
+
16
+ // Run-in definition lists and headings
17
+ article > dl,
18
+ section > dl {
19
+ clear: left;
20
+ font-size: 1.4rem;
21
+ line-height: 2rem;
22
+ }
23
+
24
+ dt,
25
+ h5,
26
+ h6 {
27
+ float: left;
28
+ margin: 0 1.4rem 0 0;
29
+ padding: 0;
30
+ }
31
+
32
+ // Tabular numbers for list items, small-caps Roman numerals
33
+ article ol,
34
+ article ul {
35
+ & > li::marker {
36
+ font-variant: tabular-nums oldstyle-nums all-small-caps;
37
+ }
38
+ }
39
+
40
+ // Fix width of dl inside li
41
+ li > dl {
42
+ &, & > p { width: 100%; }
43
+ }
44
+
45
+ .smallcaps { font-variant: all-small-caps; }
46
+
47
+ // Fixes an edge case of figure~figure.marginnote alignment.
48
+ p~figure > img.marginnote, div.notes~figure > img.marginnote { margin-top: 1.6rem; }
49
+
50
+ // Dark colorscheme with a softer background
51
+ @media (prefers-color-scheme: dark) {
52
+ body { color: #fffff8;
53
+ background-color: lighten(#111, 10%); }
54
+ a:link { text-decoration: none;
55
+ background: -webkit-linear-gradient(#111, #111), -webkit-linear-gradient(#111, #111), -webkit-linear-gradient(lighten(#fffff8, 10%), lighten(#fffff8, 10%));
56
+ background: linear-gradient(#111, #111), linear-gradient(#111, #111), linear-gradient(lighten(#fffff8, 10%), lighten(#fffff8, 10%));
57
+ -webkit-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
58
+ -moz-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
59
+ background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
60
+ background-repeat: no-repeat, no-repeat, repeat-x;
61
+ text-shadow: 0.03em 0 #111, -0.03em 0 #111, 0 0.03em #111, 0 -0.03em #111, 0.06em 0 #111, -0.06em 0 #111, 0.09em 0 #111, -0.09em 0 #111, 0.12em 0 #111, -0.12em 0 #111, 0.15em 0 #111, -0.15em 0 #111;
62
+ background-position: 0% 93%, 100% 93%, 0% 93%; }
63
+ img { background-color: darken(#fffff8, 10%); } // Prevents transparent PNGs from becoming unreadable
64
+ table { border-top: 2px solid #fffff8;
65
+ border-bottom: 2px solid #fffff8; }
66
+ td { border-top: 1px solid #fffff8; }
67
+ th { border-bottom: 1px solid #fffff8; }
68
+ }
data/_sass/_local.scss ADDED
@@ -0,0 +1 @@
1
+ // Add local project customizations here.
@@ -0,0 +1,65 @@
1
+ // From https://ethanschoonover.com/solarized/
2
+ $base03: #002b36;
3
+ $base02: #073642;
4
+ $base01: #586e75;
5
+ $base00: #657b83;
6
+ $base0: #839496;
7
+ $base1: #93a1a1;
8
+ $base2: #eee8d5;
9
+ $base3: #fdf6e3;
10
+ $yellow: #b58900;
11
+ $orange: #cb4b16;
12
+ $red: #dc322f;
13
+ $magenta: #d33682;
14
+ $violet: #6c71c4;
15
+ $blue: #268bd2;
16
+ $cyan: #2aa198;
17
+ $green: #859900;
18
+
19
+ @mixin rebase($rebase03,$rebase02,$rebase01,$rebase00,$rebase0,$rebase1,$rebase2,$rebase3)
20
+ {
21
+ div.sourceCode, pre:not(.sourceCode) { background: $rebase03; }
22
+ pre code { color: $rebase0; }
23
+ code span.kw { color: $green; font-weight: normal; font-style: normal; } /* Keyword */
24
+ code span.dt { color: $yellow; font-weight: normal; font-style: normal; } /* DataType */
25
+ code span.dv { color: $cyan; font-weight: normal; font-style: normal; } /* DecVal */
26
+ code span.bn { color: $cyan; font-weight: normal; font-style: normal; } /* BaseN */
27
+ code span.fl { color: $cyan; font-weight: normal; font-style: normal; } /* Float */
28
+ code span.ch { color: $cyan; font-weight: normal; font-style: normal; } /* Char */
29
+ code span.st { color: $cyan; font-weight: normal; font-style: normal; } /* String */
30
+ code span.co { color: $rebase01; font-weight: normal; font-style: italic; } /* Comment */
31
+ code span.ot { color: $blue; font-weight: normal; font-style: normal; } /* Other */
32
+ code span.al { color: $red; font-weight: normal; font-style: normal; } /* Alert */
33
+ code span.fu { color: $blue; font-weight: normal; font-style: normal; } /* Function */
34
+ code span.er { color: $red; font-weight: normal; font-style: normal; } /* Error */
35
+ code span.wa { color: $orange; font-weight: normal; font-style: italic; } /* Warning */
36
+ code span.cn { color: $cyan; font-weight: normal; font-style: normal; } /* Constant */
37
+ code span.sc { color: $red; font-weight: normal; font-style: normal; } /* SpecialChar */
38
+ code span.vs { color: $rebase0; font-weight: normal; font-style: normal; } /* VerbatimString */
39
+ code span.ss { color: $red; font-weight: normal; font-style: normal; } /* SpecialString */
40
+ code span.im { color: $rebase0; font-weight: normal; font-style: normal; } /* Import */
41
+ code span.va { color: $blue; font-weight: normal; font-style: normal; } /* Variable */
42
+ code span.cf { color: $green; font-weight: normal; font-style: normal; } /* ControlFlow */
43
+ code span.op { color: $green; font-weight: normal; font-style: normal; } /* Operator */
44
+ code span.bu { color: $rebase0; font-weight: normal; font-style: normal; } /* BuiltIn */
45
+ code span.ex { color: $rebase0; font-weight: normal; font-style: normal; } /* Extension */
46
+ code span.pp { color: $orange; font-weight: normal; font-style: normal; } /* Preprocessor */
47
+ code span.at { color: $rebase0; font-weight: normal; font-style: normal; } /* Attribute */
48
+ code span.do { color: $rebase01; font-weight: normal; font-style: italic; } /* Documentation */
49
+ code span.an { color: $rebase01; font-weight: normal; font-style: italic; } /* Annotation */
50
+ code span.cv { color: $rebase01; font-weight: normal; font-style: italic; } /* CommentVar */
51
+ code span.in { color: $rebase01; font-weight: normal; font-style: italic; } /* Information */
52
+ a.sourceLine::before { text-decoration: none; }
53
+ }
54
+
55
+ @media (prefers-color-scheme: no-preference),
56
+ (prefers-color-scheme: light) {
57
+ @include rebase($base3,$base2,$base1,$base0,$base00,$base01,$base02,$base03)
58
+ }
59
+ @media (prefers-color-scheme: dark) {
60
+ @include rebase($base03,$base02,$base01,$base00,$base0,$base1,$base2,$base3)
61
+ }
62
+ html * {
63
+ color-profile: sRGB;
64
+ rendering-intent: auto;
65
+ }
@@ -0,0 +1,117 @@
1
+
2
+ /* For smart quotes */
3
+ q { quotes: "“" "”" "‘" "’"; }
4
+
5
+ /* Override section behavior.
6
+ * We only want the top-level <section> to have padding.
7
+ * This makes it easier to work with --section-divs. */
8
+ section {
9
+ padding-top: initial;
10
+ padding-bottom: initial;
11
+ }
12
+ article > section {
13
+ padding-top: 1rem;
14
+ padding-bottom: 1rem;
15
+ }
16
+
17
+ /* Make byline (date and/or author) small */
18
+ p.byline { font-size: 1.2rem; }
19
+
20
+
21
+ /* Simulate Pandoc's table output styles */
22
+ table {
23
+ border-collapse: collapse;
24
+ border-top: 2px solid #111111;
25
+ border-bottom: 2px solid #111111;
26
+ caption {
27
+ font-size: 1.1rem;
28
+ font-weight: 500;
29
+ margin: 1.1rem 0;
30
+ }
31
+ }
32
+ th {
33
+ border-bottom: 1px solid #111111;
34
+ }
35
+ td, th {
36
+ font-size: 1.4rem;
37
+ font-variant: tabular-nums;
38
+ padding: 10px;
39
+ text-align: left;
40
+ & > p {
41
+ margin-top: 0;
42
+ }
43
+ }
44
+
45
+ /* Allow tables to be full width
46
+ * if they're wrapped in a figure.fullwidth
47
+ * (Easier to insert from Pandoc than manually adding table) */
48
+ figure.fullwidth table {
49
+ width: 90%;
50
+ }
51
+
52
+ @media (max-width: 760px) {
53
+ figure.fullwidth table {
54
+ width: 100%;
55
+ }
56
+ }
57
+
58
+ /* Code blocks
59
+ *
60
+ * Code blocks with a language look like div.sourceCode > pre.sourceCode
61
+ * Otherwise, it's just a pre (without .sourceCode) */
62
+
63
+ /* Unset the tufte-css defaults that we'd like to overwrite */
64
+ pre > code {
65
+ margin-left: initial;
66
+ overflow-x: initial;
67
+ display: initial;
68
+ }
69
+
70
+ .sourceCode.numberLines a:link {
71
+ text-decoration: initial;
72
+ background: initial;
73
+ text-shadow: initial;
74
+ }
75
+
76
+ div.sourceCode,
77
+ pre:not(.sourceCode) {
78
+ padding: 1.4rem;
79
+ margin: -0.7rem -1.4rem;
80
+ width: 55%;
81
+ overflow-x: auto;
82
+ }
83
+
84
+ .fullwidth div.sourceCode,
85
+ .fullwidth pre:not(.sourceCode) {
86
+ width: 100%;
87
+ }
88
+
89
+ // Line blocks (e.g. for poetry)
90
+ .line-block {
91
+ font-size: 1.4rem;
92
+ line-height: 2rem;
93
+ }
94
+
95
+ @media (max-width: 760px) {
96
+ div.sourceCode,
97
+ pre:not(.sourceCode) {
98
+ padding: 1.4rem 8vw;
99
+ margin: -0.7rem -8vw;
100
+ width: 100%;
101
+ }
102
+
103
+ .fullwidth {
104
+ max-width: 100%;
105
+ }
106
+ }
107
+
108
+ /* Math formatting */
109
+ .katex {
110
+ font-size: inherit !important;
111
+ }
112
+
113
+ /* Wrap long URLs in references */
114
+ #refs a {
115
+ word-wrap: break-word;
116
+ overflow-wrap: break-word;
117
+ }
@@ -0,0 +1,54 @@
1
+ // Reveal.js uses <h2> to make new slides. Typically, we will
2
+ // have Pandoc shift these headings when generating a regular
3
+ // web page, so they become <h3>. Headings that use the
4
+ // .unlisted class may have no title and are there just to
5
+ // provide a background-image in reveal.js. Therefore, we don't
6
+ // want them to add unnecessary vertical space and just suppress
7
+ // them completely.
8
+ // Comment this line out if this is not the behavior you expect.
9
+ h3.unlisted { display: none; }
10
+
11
+ // Similarly, we might be using <hr> to start a new slide and
12
+ // therefore might not want it to show up at all in the text.
13
+ // Uncomment this line if you want to suppress it.
14
+ // hr { display: none; }
15
+
16
+ // Fix width of incremental Reveal.js sections
17
+ // Align Reveal.js presenter notes as regular paragraphs.
18
+ // Alternatively, uncomment the second line to hide them completely.
19
+ div.incremental,
20
+ div.notes {
21
+ @extend section;
22
+ // &.notes { display: none !important; }
23
+ }
24
+
25
+ // Right now .r-stack figures are hard-coded to show up
26
+ // in two equal columns.
27
+ div.r-stack > figure {
28
+ float: left;
29
+ max-width: 50%;
30
+ & > figcaption {
31
+ float: none;
32
+ max-width: 100%;
33
+ width: 100%;
34
+ }
35
+ }
36
+
37
+ // Support Pandoc columns for reveal.js
38
+ .columns {
39
+ @extend .fullwidth;
40
+ width: 100%;
41
+ &.subfigures > p:last-of-type {
42
+ max-width: 33%;
43
+ margin-bottom: 1.1rem;
44
+ }
45
+ }
46
+
47
+ .column {
48
+ float: left;
49
+ figure {
50
+ margin-bottom: 1em;
51
+ max-width: 90%;
52
+ figcaption { float: right; }
53
+ }
54
+ }
@@ -0,0 +1,56 @@
1
+ /* The default x-height for code is slightly too large in side notes */
2
+ .marginnote code, .sidenote code {
3
+ font-size: 0.9rem;
4
+ }
5
+ /* ... and slightly too small in body text */
6
+ code {
7
+ font-size: 1.05rem;
8
+ }
9
+ /* Also make the sidenote numbers hang */
10
+ .sidenote {
11
+ text-indent: -0.4rem;
12
+ }
13
+ .sidenote:before {
14
+ /* removes trailing space from the counter content */
15
+ content: counter(sidenote-counter);
16
+ left: -0.4rem;
17
+ }
18
+
19
+ /* To get spacing between lists, use paragraphs.
20
+ * 0.25rem of spacing between list elements looks bad. */
21
+ li:not(:first-child) {
22
+ margin-top: initial;
23
+ }
24
+
25
+ /* Make "Home" link small */
26
+ p.signoff {
27
+ font-size: 1.2rem;
28
+ }
29
+
30
+ body {
31
+ max-width: 1150px;
32
+ }
33
+
34
+ /**
35
+ * Makes it so that top-level <p> don't need to be wrapped in <section>
36
+ */
37
+ article > p,
38
+ article > li,
39
+ article > footer,
40
+ article > table {
41
+ width: 55%;
42
+ }
43
+
44
+ /*
45
+ * Enable hyphens on supported platforms
46
+ */
47
+ article {
48
+ -webkit-hyphens: auto;
49
+ -ms-hyphens: auto;
50
+ hyphens: auto;
51
+ }
52
+ /* Sidenotes end up with a bunch of hyphens because they're so small */
53
+ .sidenote,
54
+ .marginnote {
55
+ hyphens: none;
56
+ }
data/_sass/_tufte.scss ADDED
@@ -0,0 +1,499 @@
1
+ @charset "UTF-8";
2
+
3
+ /* Import ET Book styles
4
+ adapted from https://github.com/edwardtufte/et-book/blob/gh-pages/et-book.css */
5
+
6
+ /* Tufte CSS styles */
7
+ html {
8
+ font-size: 15px;
9
+ }
10
+
11
+ body {
12
+ width: 87.5%;
13
+ margin-left: auto;
14
+ margin-right: auto;
15
+ padding-left: 12.5%;
16
+ font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
17
+ background-color: #fffff8;
18
+ color: #111;
19
+ max-width: 1400px;
20
+ counter-reset: sidenote-counter;
21
+ }
22
+
23
+ h1 {
24
+ font-weight: 400;
25
+ margin-top: 4rem;
26
+ margin-bottom: 1.5rem;
27
+ font-size: 3.2rem;
28
+ line-height: 1;
29
+ }
30
+
31
+ h2 {
32
+ clear: both;
33
+ font-style: italic;
34
+ font-weight: 400;
35
+ margin-top: 2.1rem;
36
+ margin-bottom: 1.4rem;
37
+ font-size: 2.2rem;
38
+ line-height: 1;
39
+ em { font-style: normal; }
40
+ }
41
+
42
+ h3 {
43
+ clear: both;
44
+ font-style: italic;
45
+ font-weight: 400;
46
+ font-size: 1.7rem;
47
+ margin-top: 2rem;
48
+ margin-bottom: 1.4rem;
49
+ line-height: 1;
50
+ em { font-style: normal; }
51
+ }
52
+
53
+ hr {
54
+ display: block;
55
+ height: 1px;
56
+ width: 55%;
57
+ border: 0;
58
+ border-top: 1px solid #ccc;
59
+ margin: 1em 0;
60
+ padding: 0;
61
+ }
62
+
63
+ p.subtitle {
64
+ font-style: italic;
65
+ margin-top: 1rem;
66
+ margin-bottom: 1rem;
67
+ font-size: 1.8rem;
68
+ display: block;
69
+ line-height: 1;
70
+ em { font-style: normal; }
71
+ }
72
+
73
+ .numeral {
74
+ font-family: et-book-roman-old-style;
75
+ }
76
+
77
+ .danger {
78
+ color: red;
79
+ }
80
+
81
+ article {
82
+ padding: 5rem 0rem;
83
+ }
84
+
85
+ section {
86
+ padding-top: 1rem;
87
+ padding-bottom: 1rem;
88
+ }
89
+
90
+ p,
91
+ dl,
92
+ ol,
93
+ ul {
94
+ font-size: 1.4rem;
95
+ line-height: 2rem;
96
+ }
97
+
98
+ p {
99
+ margin-top: 1.4rem;
100
+ margin-bottom: 1.4rem;
101
+ padding-right: 0;
102
+ vertical-align: baseline;
103
+ }
104
+
105
+ /* Chapter Epigraphs */
106
+ div.epigraph {
107
+ margin: 5em 0;
108
+ }
109
+
110
+ div.epigraph > blockquote {
111
+ margin-top: 3em;
112
+ margin-bottom: 3em;
113
+ }
114
+
115
+ div.epigraph > blockquote,
116
+ div.epigraph > blockquote > p {
117
+ font-style: italic;
118
+ em { font-style: normal; }
119
+ }
120
+
121
+ div.epigraph > blockquote > footer {
122
+ font-style: normal;
123
+ }
124
+
125
+ div.epigraph > blockquote > footer > cite {
126
+ font-style: italic;
127
+ }
128
+ /* end chapter epigraphs styles */
129
+
130
+ blockquote {
131
+ font-size: 1.4rem;
132
+ }
133
+
134
+ blockquote p {
135
+ width: 55%;
136
+ margin-right: 40px;
137
+ }
138
+
139
+ blockquote footer {
140
+ width: 55%;
141
+ font-size: 1.1rem;
142
+ text-align: right;
143
+ }
144
+
145
+ section > p,
146
+ section > footer,
147
+ section > table,
148
+ section > div > table {
149
+ width: 55%;
150
+ }
151
+
152
+ /* 50 + 5 == 55, to be the same width as paragraph */
153
+ section > dl,
154
+ section > ol,
155
+ section > ul {
156
+ width: 50%;
157
+ -webkit-padding-start: 5%;
158
+ }
159
+
160
+ /* Causes problems with run-in <dt>
161
+ *dt:not(:first-child),
162
+ *li:not(:first-child) {
163
+ * margin-top: 0.25rem;
164
+ *}
165
+ */
166
+
167
+ figure {
168
+ padding: 0;
169
+ border: 0;
170
+ font-size: 100%;
171
+ font: inherit;
172
+ vertical-align: baseline;
173
+ max-width: 55%;
174
+ -webkit-margin-start: 0;
175
+ -webkit-margin-end: 0;
176
+ margin: 0 0 3em 0;
177
+ }
178
+
179
+ // Fix for fullwidth images within Pandoc figures
180
+ div.fullwidth > figure {
181
+ max-width: 100%;
182
+ }
183
+
184
+ .subfigures > p:last-of-type, // Support Pandoc-crossref subfigures
185
+ figcaption {
186
+ float: right;
187
+ clear: right;
188
+ margin-top: 0;
189
+ margin-bottom: 0;
190
+ font-size: 1.1rem;
191
+ line-height: 1.6;
192
+ vertical-align: baseline;
193
+ position: relative;
194
+ max-width: 40%;
195
+ }
196
+
197
+ figure.fullwidth figcaption {
198
+ margin-right: 24%;
199
+ }
200
+
201
+ // Fix for Pandoc-crossref figcaptions in full-width figures
202
+ div.fullwidth figcaption { max-width: 33%; }
203
+
204
+ /* Links: replicate underline that clears descenders */
205
+ a:link,
206
+ a:visited {
207
+ color: inherit;
208
+ }
209
+
210
+ .no-tufte-underline:link {
211
+ background: unset;
212
+ text-shadow: unset;
213
+ }
214
+
215
+ a:link, .tufte-underline, .hover-tufte-underline:hover {
216
+ text-decoration: none;
217
+ background: -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(currentColor, currentColor);
218
+ background: linear-gradient(#fffff8, #fffff8), linear-gradient(#fffff8, #fffff8), linear-gradient(currentColor, currentColor);
219
+ -webkit-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
220
+ -moz-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
221
+ background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
222
+ background-repeat: no-repeat, no-repeat, repeat-x;
223
+ 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;
224
+ background-position: 0% 93%, 100% 93%, 0% 93%;
225
+ }
226
+
227
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
228
+ a:link, .tufte-underline, .hover-tufte-underline:hover {
229
+ background-position-y: 87%, 87%, 87%;
230
+ }
231
+ }
232
+
233
+ a:link::selection,
234
+ a:link::-moz-selection {
235
+ 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;
236
+ background: #b4d5fe;
237
+ }
238
+
239
+ /******************************************************
240
+ * CSL styling taken from Tufte-CSS, not yet
241
+ implemented in Jekyll-Pandoc-Tufte.
242
+ */
243
+ div.csl-bib-body {
244
+ width: 55%;
245
+ font-size: 1.4rem;
246
+ line-height: 2rem;
247
+ }
248
+
249
+ div.csl-entry {
250
+ clear: both;
251
+ margin-top: .5rem;
252
+ }
253
+
254
+ .hanging div.csl-entry {
255
+ margin-left: 2rem;
256
+ text-indent: -2rem;
257
+ }
258
+
259
+ div.csl-left-margin {
260
+ min-width: 2rem;
261
+ float: left;
262
+ }
263
+
264
+ div.csl-right-inline {
265
+ margin-left: 2rem;
266
+ padding-left: 1rem;
267
+ }
268
+
269
+ div.csl-indent {
270
+ margin-left: 2rem;
271
+ }
272
+
273
+ div.hanging-indent{
274
+ margin-left: 1.5rem;
275
+ text-indent: -1.5rem;
276
+ }
277
+
278
+ /* Sidenotes, margin notes, figures, captions */
279
+ video,
280
+ img {
281
+ max-width: 100%;
282
+ }
283
+
284
+ .sidenote,
285
+ .marginnote {
286
+ float: right;
287
+ clear: right;
288
+ margin-right: -60%;
289
+ width: 50%;
290
+ margin-top: 0.3rem;
291
+ margin-bottom: 0;
292
+ font-size: 1.1rem;
293
+ line-height: 1.3;
294
+ vertical-align: baseline;
295
+ position: relative;
296
+ }
297
+
298
+ // Fix for Pandoc-generated figcaption in margin images
299
+ img.marginnote~figcaption {
300
+ margin-right: -60%;
301
+ max-width: 50%;
302
+ }
303
+
304
+ .sidenote-number {
305
+ counter-increment: sidenote-counter;
306
+ }
307
+
308
+ .sidenote-number:after,
309
+ .sidenote:before {
310
+ font-family: et-book-roman-old-style;
311
+ position: relative;
312
+ vertical-align: baseline;
313
+ }
314
+
315
+ .sidenote-number:after {
316
+ content: counter(sidenote-counter);
317
+ font-size: 1rem;
318
+ top: -0.5rem;
319
+ left: 0.1rem;
320
+ }
321
+
322
+ .sidenote:before {
323
+ content: counter(sidenote-counter) " ";
324
+ font-size: 1rem;
325
+ top: -0.5rem;
326
+ }
327
+
328
+ blockquote .sidenote,
329
+ blockquote .marginnote {
330
+ margin-right: -82%;
331
+ min-width: 59%;
332
+ text-align: left;
333
+ }
334
+
335
+ div.fullwidth,
336
+ table.fullwidth {
337
+ width: 100%;
338
+ }
339
+
340
+ div.table-wrapper {
341
+ overflow-x: auto;
342
+ font-family: "Trebuchet MS", "Gill Sans", "Gill Sans MT", sans-serif;
343
+ }
344
+
345
+ .sans {
346
+ font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
347
+ letter-spacing: .03em;
348
+ }
349
+
350
+ code, pre > code {
351
+ font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
352
+ font-size: 1.0rem;
353
+ line-height: 1.42;
354
+ -webkit-text-size-adjust: 100%; /* Prevent adjustments of font size after orientation changes in iOS. See https://github.com/edwardtufte/tufte-css/issues/81#issuecomment-261953409 */
355
+ }
356
+
357
+ .sans > code {
358
+ font-size: 1.2rem;
359
+ }
360
+
361
+ h1 > code,
362
+ h2 > code,
363
+ h3 > code {
364
+ font-size: 0.80em;
365
+ }
366
+
367
+ .marginnote > code,
368
+ .sidenote > code {
369
+ font-size: 1rem;
370
+ }
371
+
372
+ pre > code {
373
+ font-size: 0.9rem;
374
+ width: 52.5%;
375
+ margin-left: 2.5%;
376
+ overflow-x: auto;
377
+ display: block;
378
+ }
379
+
380
+ pre.fullwidth > code {
381
+ width: 90%;
382
+ }
383
+
384
+ .fullwidth {
385
+ max-width: 90%;
386
+ clear:both;
387
+ }
388
+
389
+ span.newthought {
390
+ font-variant: small-caps;
391
+ font-size: 1.2em;
392
+ }
393
+
394
+ input.margin-toggle {
395
+ display: none;
396
+ }
397
+
398
+ label.sidenote-number {
399
+ display: inline;
400
+ }
401
+
402
+ label.margin-toggle:not(.sidenote-number) {
403
+ display: none;
404
+ }
405
+
406
+ .iframe-wrapper {
407
+ position: relative;
408
+ padding-bottom: 56.25%; /* 16:9 */
409
+ padding-top: 25px;
410
+ height: 0;
411
+ }
412
+
413
+ .iframe-wrapper iframe {
414
+ position: absolute;
415
+ top: 0;
416
+ left: 0;
417
+ width: 100%;
418
+ height: 100%;
419
+ }
420
+
421
+ @media (max-width: 760px) {
422
+ body {
423
+ width: 84%;
424
+ padding-left: 8%;
425
+ padding-right: 8%;
426
+ }
427
+
428
+ hr,
429
+ section > p,
430
+ section > footer,
431
+ section > table {
432
+ width: 100%;
433
+ }
434
+
435
+ pre > code {
436
+ width: 97%;
437
+ }
438
+
439
+ section > dl,
440
+ section > ol,
441
+ section > ul {
442
+ width: 90%;
443
+ }
444
+
445
+ figure {
446
+ max-width: 90%;
447
+ }
448
+
449
+ figcaption,
450
+ img.marginnote~figcaption,
451
+ figure.fullwidth figcaption {
452
+ margin-right: 0%;
453
+ max-width: none;
454
+ }
455
+
456
+ blockquote {
457
+ margin-left: 1.5em;
458
+ margin-right: 0em;
459
+ }
460
+
461
+ blockquote p,
462
+ blockquote footer {
463
+ width: 100%;
464
+ }
465
+
466
+ label.margin-toggle:not(.sidenote-number) {
467
+ display: inline;
468
+ }
469
+
470
+ .sidenote,
471
+ .marginnote {
472
+ display: none;
473
+ }
474
+
475
+ .margin-toggle:checked + .sidenote,
476
+ .margin-toggle:checked + .marginnote {
477
+ display: block;
478
+ float: left;
479
+ left: 1rem;
480
+ clear: both;
481
+ width: 95%;
482
+ margin: 1rem 2.5%;
483
+ vertical-align: baseline;
484
+ position: relative;
485
+ }
486
+
487
+ label {
488
+ cursor: pointer;
489
+ }
490
+
491
+ div.table-wrapper,
492
+ table {
493
+ width: 85%;
494
+ }
495
+
496
+ img {
497
+ width: 100%;
498
+ }
499
+ }
@@ -0,0 +1,16 @@
1
+ ---
2
+ ---
3
+
4
+ @charset "utf-8";
5
+
6
+ @import
7
+ "tufte",
8
+ "tufte-extra",
9
+ "pandoc",
10
+ "pandoc-solarized",
11
+ "custom"
12
+ ;
13
+
14
+ // Reveal.js support is not enabled by default.
15
+ // Uncomment the line below to enable it.
16
+ //@import "revealjs-support" ;
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tufte-crossref-jekyll
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.12.0b
5
+ platform: ruby
6
+ authors:
7
+ - Jake Zimmerman
8
+ - Pedro Palazzo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2021-07-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: jekyll-pandoc
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '2.0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '2.0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: jekyll
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '3.3'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '3.3'
42
+ - !ruby/object:Gem::Dependency
43
+ name: bundler
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.12'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.12'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '10.0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '10.0'
70
+ description:
71
+ email:
72
+ - zimmerman.jake@gmail.com
73
+ - pedro.palazzo@gmail.com
74
+ executables: []
75
+ extensions: []
76
+ extra_rdoc_files: []
77
+ files:
78
+ - README.md
79
+ - _includes/after.html
80
+ - _includes/before.html
81
+ - _includes/default.html
82
+ - _includes/head.html
83
+ - _includes/header.html
84
+ - _includes/math.html
85
+ - _layouts/index.html
86
+ - _layouts/page.html
87
+ - _layouts/post.html
88
+ - _sass/_custom.scss
89
+ - _sass/_local.scss
90
+ - _sass/_pandoc-solarized.scss
91
+ - _sass/_pandoc.scss
92
+ - _sass/_revealjs-support.scss
93
+ - _sass/_tufte-extra.scss
94
+ - _sass/_tufte.scss
95
+ - assets/css/main.scss
96
+ homepage: https://github.com/p3palazzo/tufte-crossref-jekyll
97
+ licenses:
98
+ - MIT
99
+ metadata: {}
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">"
112
+ - !ruby/object:Gem::Version
113
+ version: 1.3.1
114
+ requirements: []
115
+ rubygems_version: 3.2.22
116
+ signing_key:
117
+ specification_version: 4
118
+ summary: A Jekyll theme based on jez/tufte-pandoc-jekyll with support for Pandoc-Crossref
119
+ test_files: []