tufte-crossref-jekyll 0.12.0b

Sign up to get free protection for your applications and to get access to all the features.
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: []