├── .github
└── workflows
│ └── publish.yml
├── .gitignore
├── .quartoignore
├── DESCRIPTION
├── LICENSE
├── README.md
├── _extensions
└── bookup
│ ├── _extension.yml
│ ├── bookup.scss
│ ├── bookup_dark.scss
│ ├── embed-fonts.lua
│ ├── fonts-download.css
│ ├── fonts-embed.css
│ └── fonts
│ ├── fira-mono-v12-latin-500.woff2
│ ├── fira-mono-v12-latin-700.woff2
│ ├── fira-mono-v12-latin-regular.woff2
│ ├── roboto-slab-v22-latin-700.woff2
│ ├── roboto-v29-latin-300.woff2
│ ├── roboto-v29-latin-300italic.woff2
│ ├── roboto-v29-latin-700.woff2
│ ├── roboto-v29-latin-700italic.woff2
│ ├── roboto-v29-latin-italic.woff2
│ └── roboto-v29-latin-regular.woff2
├── examples
├── _sample.qmd
├── book
│ ├── .gitignore
│ ├── _extensions
│ │ └── bookup
│ ├── _quarto.yml
│ ├── index.qmd
│ ├── references.bib
│ ├── references.qmd
│ ├── sample.qmd
│ └── summary.qmd
├── document
│ ├── _extensions
│ │ └── bookup
│ ├── bookup-dark.qmd
│ └── bookup.qmd
└── website
│ ├── .gitignore
│ ├── _extensions
│ └── bookup
│ ├── _quarto.yml
│ ├── about.qmd
│ ├── index.qmd
│ ├── page.qmd
│ └── styles.css
├── screenshots
├── book_light.png
├── single_dark.png
├── single_light.png
└── website_dark.png
└── template.qmd
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | on:
2 | workflow_dispatch:
3 | push:
4 | branches: [main]
5 |
6 | name: Publish examples
7 |
8 | jobs:
9 | build-deploy:
10 | runs-on: ubuntu-latest
11 | permissions:
12 | contents: write
13 | steps:
14 | - name: Install dev packages
15 | run: sudo apt-get install -y pandoc
16 |
17 | - name: Check out repository
18 | uses: actions/checkout@v2
19 |
20 | - name: Set up Quarto
21 | uses: quarto-dev/quarto-actions/setup@v2
22 |
23 | - name: Install R
24 | uses: r-lib/actions/setup-r@v2
25 | with:
26 | r-version: "release"
27 |
28 | - name: Set up Pandoc
29 | uses: r-lib/actions/setup-pandoc@v2
30 |
31 | - name: Install R Dependencies
32 | uses: r-lib/actions/setup-r-dependencies@v2
33 | with:
34 | cache: true
35 | cache-version: 2
36 |
37 | - name: Render book
38 | uses: quarto-dev/quarto-actions/render@v2
39 | with:
40 | path: "examples/book"
41 |
42 | - name: Render website
43 | uses: quarto-dev/quarto-actions/render@v2
44 | with:
45 | path: "examples/website"
46 |
47 | - name: Render example document
48 | uses: quarto-dev/quarto-actions/render@v2
49 | with:
50 | path: "examples/document/bookup.qmd"
51 | env:
52 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
53 |
54 | - name: Render dark example document
55 | uses: quarto-dev/quarto-actions/render@v2
56 | with:
57 | path: "examples/document/bookup-dark.qmd"
58 | env:
59 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
60 |
61 | - name: Copy examples
62 | run: |
63 | mkdir gh_root && \
64 | cp -rp examples/book/_book gh_root/book && \
65 | cp -rp examples/website/_site gh_root/website && \
66 | cp -p examples/document/bookup.html gh_root/ && \
67 | cp -p examples/document/bookup-dark.html gh_root/
68 |
69 | - name: Deploy book
70 | uses: JamesIves/github-pages-deploy-action@v4
71 | with:
72 | folder: gh_root
73 | token: ${{ secrets.GITHUB_TOKEN }}
74 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *_files
2 | *.html
3 | /.luarc.json
4 | _freeze/
5 | _book/
6 | _site
7 | .quarto/
8 | examples/**.html
9 | examples/*/fonts/
--------------------------------------------------------------------------------
/.quartoignore:
--------------------------------------------------------------------------------
1 | examples/
2 | LICENSE
3 | DESCRIPTION
4 | .github/
5 | .gitignore
6 | screenshots/
--------------------------------------------------------------------------------
/DESCRIPTION:
--------------------------------------------------------------------------------
1 | Package: placeholder
2 | Type: Quarto custom format
3 | Title: bookup-html
4 | Encoding: UTF-8
5 | Date: 2023-03-08
6 | Version: 0.0.1
7 | Depends:
8 | knitr,
9 | palmerpenguins,
10 | DT,
11 | ggplot2
12 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Julien Barnier
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # bookup-html custom quarto format
2 |
3 | [](https://github.com/juba/bookup-html/actions/workflows/publish.yml)
4 |
5 |
6 | `bookup` is a custom [quarto](https://quarto.org) HTML format based on the Roboto font family. It provides both a light and a dark theme, and should be suitable for single documents, book projects and website projects.
7 |
8 | ## Screenshots
9 |
10 |
11 |
12 |
13 |
14 |
15 | Single document, light theme ([live example](https://juba.github.io/bookup-html/bookup.html))
16 |
17 | |
18 |
19 |
20 | [](https://juba.github.io/bookup-html/bookup.html)
21 |
22 | |
23 |
24 |
25 |
26 |
27 | Single document, dark theme ([live example](https://juba.github.io/bookup-html/bookup-dark.html))
28 |
29 | |
30 |
31 |
32 | [](https://juba.github.io/bookup-html/bookup-dark.html)
33 |
34 | |
35 |
36 |
37 |
38 |
39 | Book project with a docked sidebar, light theme ([live example](https://juba.github.io/bookup-html/book/))
40 |
41 | |
42 |
43 |
44 | [](https://juba.github.io/bookup-html/book/)
45 |
46 | |
47 |
48 |
49 |
50 |
51 | Website project with a floating sidebar, dark theme ([live example](https://juba.github.io/bookup-html/website/))
52 |
53 | |
54 |
55 |
56 | [](https://juba.github.io/bookup-html/website/)
57 |
58 | |
59 |
60 |
61 |
62 |
63 | ## Installation and usage
64 |
65 | To use this custom format, first install the extension at the root directory of your project:
66 |
67 | ```bash
68 | quarto add juba/bookup-html
69 | ```
70 |
71 | And add the format to your YAML configuration, along with other HTML format options if needed:
72 |
73 | ```yaml
74 | format:
75 | bookup-html:
76 | toc: true
77 | toc-depth: 3
78 | ```
79 |
80 |
81 | Even simpler, you can also directly install the extensions and generate a sample qmd file from a template with:
82 |
83 | ```bash
84 | quarto use template juba/bookup-html
85 | ```
86 |
87 | ## Dark and light variants
88 |
89 | **Warning :** this will only work with quarto version 1.3 or higher.
90 |
91 | By default, your document will be displayed with the light theme, with a toggle allowing to switch to the dark theme.
92 |
93 | If you want to change this behavior you can add a variant to the format name:
94 |
95 | | Format name | Theme used |
96 | | ----------------------- | ------------------------------------------- |
97 | | `bookup-html` (default) | Light theme by default, optional dark theme |
98 | | `bookup-html+dark` | Dark theme by default, optional light theme |
99 | | `bookup-html+lightonly` | Light theme only |
100 | | `bookup-html+darkonly` | Dark theme only |
101 |
102 |
103 | ## Format Options
104 |
105 |
106 | Currently `bookup` provides the following option:
107 |
108 | - `embed-fonts` : if set to `true`, fonts are included locally with the document. If set to `false`, they are downloaded from Google Web Fonts. Not that if you use `self-contained: true`, fonts are embedded inside the resulting HTML even if `embed-fonts` is `false`.
109 |
110 |
111 | ## Credits
112 |
113 | This format is derived from the original [bookdown](https://bookdown.org) theme, adapted for the online french book [Introduction à R et au tidyverse](https://juba.github.io/tidyverse).
114 |
115 |
--------------------------------------------------------------------------------
/_extensions/bookup/_extension.yml:
--------------------------------------------------------------------------------
1 | title: Bookup
2 | author: Julien Barnier
3 | version: 0.1.0
4 | quarto-required: ">=1.3.340"
5 | contributes:
6 | formats:
7 | common:
8 | toc: true
9 | filters: [embed-fonts.lua]
10 | embed-fonts: true
11 | html:
12 | theme:
13 | light: [bookup.scss]
14 | dark: [bookup.scss, bookup_dark.scss]
15 | html+dark:
16 | theme:
17 | dark: [bookup.scss, bookup_dark.scss]
18 | light: [bookup.scss]
19 | html+lightonly:
20 | theme: bookup.scss
21 | html+darkonly:
22 | theme: [bookup.scss, bookup_dark.scss]
--------------------------------------------------------------------------------
/_extensions/bookup/bookup.scss:
--------------------------------------------------------------------------------
1 | /*-- scss:defaults --*/
2 |
3 | $font-family-sans-serif: "Roboto", "Segoe UI", "Helvetica Neue", Helvetica, sans-serif;
4 | $font-family-monospace: "Fira Mono", "Menlo", "Andale Mono", monospace;
5 | $font-size-root: 16px;
6 | $h1-font-size: 2.2em;
7 | $h2-font-size: 1.75em;
8 | $h3-font-size: 1.5em;
9 | $h4-font-size: 1.25em;
10 |
11 |
12 | /*-- scss:rules --*/
13 |
14 | :root {
15 | --bs-body-font-weight: 300;
16 | --link-color: #4183C4;
17 |
18 | --toc-active-color: #0d6efd;
19 | --toc-border-color: #e9ecef;
20 |
21 | --sidebar-fg: #333;
22 | --sidebar-bg-docked: #fafafa;
23 | --sidebar-border: #dee2e6;
24 | --sidebar-active-link-color: #0d6efd;
25 | --sidebar-part-color: #00368c;
26 | --sidebar-input-border: #a1a7ac;
27 | --sidebar-form-bg: transparent;
28 |
29 | --figure-img-border: 1px solid #ddd;
30 | --figure-img-shadow: 1px 1px 10px #ddd;
31 |
32 | --code-block-color: #555;
33 | --code-block-bg: #f7f7f7;
34 | --code-color: #c7254e;
35 | --code-bg: #f9f2f4;
36 |
37 | --hl-code-comments: #696867;
38 |
39 | --header-footer-border: #dee2e6;
40 |
41 | --table-tr-border: #dee2e6;
42 | --table-out-borders: #999;
43 | --table-tr-hover: rgba(0, 0, 0, 0.07);
44 |
45 | --reader-toggle-bg: #fafafa;
46 | --reader-toggle-border: #BBB;
47 |
48 | --callout-color: #333;
49 | --callout-warning-bg: #fff9e6;
50 | --callout-warning-title: #c7980d;
51 | --callout-note-bg: #e7f1ff;
52 | --callout-note-title: #2f65b8;
53 | --callout-important-bg: #fcebec;
54 | --callout-important-title: #900;
55 | --callout-caution-bg: #fff2e8;
56 | --callout-caution-title: #d6850d;
57 | --callout-tip-bg: #e8f3ee;
58 | --callout-tip-title: #050;
59 |
60 | --listing-card-border: #a1a7ac;
61 | --listing-card-shadow: rgba(0, 0, 0, 0.04);
62 | --listing-card-shadow-hover: rgba(0, 0, 0, 0.1);
63 | }
64 |
65 | .table,
66 | .dataTable {
67 | --bs-table-accent-bg: rgba(0, 0, 0, 0);
68 | --bs-table-striped-bg: rgba(0, 0, 0, 0.03);
69 | }
70 |
71 | /* Grid */
72 |
73 | @media (min-width: 992px) {
74 | body.docked .page-columns {
75 | grid-template-columns: [screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 170px) [page-start-inset] 50px [body-start-outset] 50px [body-start] minmax(3em, 5fr) [body-content-start] minmax(300px, 800px) [body-content-end] minmax(3em, 5fr) [body-end] 50px [body-end-outset] minmax(0px, 100px) [page-end-inset] 50px [page-end] 7fr [screen-end-inset] 1.5em [screen-end] !important
76 | }
77 | }
78 |
79 |
80 | /* Global styles */
81 |
82 | p {
83 | margin-bottom: 0.85em;
84 | }
85 |
86 |
87 | /* Sidebar */
88 |
89 | #quarto-sidebar,
90 | #quarto-content .sidebar-navigation {
91 |
92 | &.docked {
93 | background-color: var(--sidebar-bg-docked);
94 | }
95 |
96 | .sidebar-item-container {
97 | margin-bottom: 0.5em;
98 |
99 | a.active,
100 | a:hover {
101 | color: var(--sidebar-active-link-color);
102 | }
103 | }
104 |
105 | code {
106 | font-size: inherit;
107 | color: inherit;
108 | background-color: transparent;
109 | }
110 |
111 | a,
112 | .chapter-number {
113 | color: var(--sidebar-fg);
114 | }
115 |
116 | .chapter-number {
117 | font-weight: bold;
118 | }
119 |
120 | .sidebar-item-section {
121 | margin-bottom: .7em;
122 | }
123 |
124 | .sidebar-item+.sidebar-item-section {
125 | margin-top: 1.2em;
126 | }
127 |
128 | .sidebar-item-section>.sidebar-item-container:first-child a,
129 | .sidebar-item-section>.sidebar-item-container:first-child a.active,
130 | .sidebar-item-section>.sidebar-item-container:first-child a:hover {
131 | font-weight: bold;
132 | color: var(--sidebar-part-color);
133 | background-color: transparent;
134 | cursor: pointer;
135 | }
136 |
137 | }
138 |
139 | #quarto-sidebar {
140 | border-color: var(--sidebar-border) !important;
141 |
142 | #quarto-search {
143 | form {
144 | border-color: var(--sidebar-input-border);
145 | background-color: var(--sidebar-form-bg);
146 | }
147 |
148 | form,
149 | svg,
150 | input {
151 | color: var(--sidebar-fg) !important;
152 | }
153 | }
154 |
155 | }
156 |
157 | #quarto-sidebarnav-toggle+#quarto-sidebar,
158 | #quarto-toc-toggle+#quarto-sidebar {
159 | border: none !important;
160 | }
161 |
162 |
163 | /* Table of contents */
164 |
165 | #quarto-margin-sidebar,
166 | #quarto-content .margin-sidebar,
167 | #quarto-sidebar #TOC {
168 | code {
169 | font-size: inherit;
170 | color: inherit;
171 | }
172 |
173 | ul {
174 |
175 | a.active,
176 | a:hover {
177 | color: var(--toc-active-color) !important;
178 | border-left: 1px solid var(--toc-active-color);
179 | }
180 |
181 | a {
182 | border-color: var(--toc-border-color);
183 | }
184 | }
185 |
186 | a:hover {
187 | color: var(--link-color);
188 | }
189 |
190 | ul>li>ul>li>a {
191 | padding: 0.1em 0 0.1em 2em;
192 | font-size: 90%;
193 | opacity: 85%;
194 | }
195 | }
196 |
197 | /* toc-location: body */
198 | #quarto-document-content #TOC {
199 |
200 | margin-bottom: 3em;
201 |
202 | h2 {
203 | font-size: 1.2em;
204 | margin-bottom: 0.3em;
205 | }
206 |
207 | >ul {
208 | margin-left: 1em;
209 | }
210 |
211 | ul {
212 | border-left: 1px solid var(--toc-border-color);
213 | list-style-type: none;
214 | font-size: 95%;
215 |
216 | li {
217 | &::before {
218 | content: "";
219 | }
220 |
221 | margin-bottom: 0;
222 | }
223 | }
224 |
225 | ul ul {
226 | padding-left: 1.5em;
227 | border: none;
228 | margin-bottom: 0;
229 | }
230 | }
231 |
232 |
233 |
234 | /* Content */
235 |
236 | #quarto-content {
237 |
238 | /* Reader mode toggles */
239 |
240 | .margin-sidebar.quarto-sidebar-toggle-contents {
241 | background-color: var(--sidebar-bg-docked);
242 | color: var(--sidebar-fg);
243 | }
244 |
245 | .quarto-sidebar-toggle {
246 | background-color: var(--reader-toggle-border);
247 | border-color: var(--reader-toggle-border);
248 | }
249 |
250 | .quarto-sidebar-toggle-title {
251 | background-color: var(--reader-toggle-bg);
252 | color: var(--sidebar-fg);
253 | }
254 |
255 | .quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title {
256 | border-bottom-color: var(--reader-toggle-border);
257 | }
258 |
259 | .quarto-sidebar-toggle-contents {
260 | background-color: var(--reader-toggle-bg);
261 | }
262 |
263 | .quarto-sidebar-toggle+#quarto-sidebar {
264 | background-color: var(--bs-body-bg);
265 | }
266 |
267 | /* Bottom page navigation */
268 |
269 | .page-navigation {
270 | a {
271 | color: var(--bs-body-color);
272 | }
273 |
274 |
275 | code {
276 | color: var(--code-block-color);
277 | background-color: var(--code-block-bg);
278 | border-color: var(--code-block-bg);
279 | }
280 | }
281 |
282 | }
283 |
284 |
285 |
286 | /* Document content */
287 |
288 | #quarto-document-content {
289 |
290 | #title-block-header .quarto-title-meta-contents a {
291 | color: var(--bs-body-color);
292 | }
293 |
294 | a,
295 | .btn-link {
296 | color: var(--link-color);
297 | text-decoration: none;
298 | }
299 |
300 | a:not(.nav-link):hover,
301 | .btn-link:hover {
302 | text-decoration: underline;
303 | }
304 |
305 | a.anchorjs-link:hover {
306 | text-decoration: none;
307 | }
308 |
309 | strong {
310 | font-weight: bold;
311 | }
312 |
313 | /* Headings */
314 |
315 | #title-block-header {
316 | margin-block-end: 2rem;
317 | }
318 |
319 | h1,
320 | h2,
321 | h3,
322 | h4 {
323 | font-family: "Roboto Slab", $font-family-sans-serif;
324 | line-height: 1.25;
325 | margin-top: 1.275em;
326 | margin-bottom: 0.85em;
327 | border: none;
328 |
329 | code {
330 | color: inherit;
331 | background: none;
332 | padding: 0;
333 | }
334 | }
335 |
336 |
337 | .header-section-number {
338 | color: inherit;
339 | padding-right: 0.5em;
340 | }
341 |
342 |
343 | /* Figures */
344 |
345 | p>img {
346 | margin: 0.5em auto 1.5em auto;
347 | display: block;
348 | max-width: 100%;
349 | height: auto;
350 | }
351 |
352 | figure {
353 | margin: 2em auto 2.5em auto;
354 | text-align: center;
355 | max-width: 100%;
356 |
357 | img {
358 | border: var(--figure-img-border);
359 | box-shadow: var(--figure-img-shadow);
360 | max-width: 100%;
361 | height: auto;
362 | }
363 |
364 | figcaption {
365 | color: var(--bs-body-color);
366 | font-style: italic;
367 | font-size: 0.9em;
368 | margin-top: -1em;
369 | }
370 | }
371 |
372 |
373 | /* Tables */
374 |
375 | table,
376 | .pagedtable-wrapper,
377 | .dataTables_wrapper {
378 | font-size: 0.9em;
379 | margin-top: 0;
380 | margin-bottom: 2rem;
381 | }
382 |
383 | table {
384 | width: auto;
385 | margin-left: auto;
386 | margin-right: auto;
387 |
388 | thead {
389 | th {
390 | box-shadow: none;
391 | }
392 | }
393 |
394 | th,
395 | td {
396 | padding: .3em 1em;
397 | }
398 |
399 | thead,
400 | tbody {
401 | tr {
402 | border-top: none;
403 | }
404 |
405 | tr:first-child {
406 | border-top: 1px solid var(--table-out-borders);
407 | }
408 |
409 | tr:last-child {
410 | border-bottom: 1px solid var(--table-out-borders);
411 | }
412 | }
413 |
414 | tbody {
415 | border-top: none;
416 |
417 | tr:hover {
418 | background-color: var(--table-tr-hover) !important;
419 | box-shadow: none !important;
420 |
421 | td {
422 | box-shadow: none !important;
423 | }
424 | }
425 | }
426 | }
427 |
428 |
429 | .table {
430 | tr {
431 | border-color: var(--table-tr-border);
432 | }
433 | }
434 |
435 | .pagedtable table {
436 | width: 100%;
437 | margin-left: 0;
438 | margin-right: 0;
439 | }
440 |
441 | /* DT */
442 |
443 | .dataTables_wrapper,
444 | .dataTables_wrapper .dataTables_length,
445 | .dataTables_wrapper .dataTables_filter,
446 | .dataTables_wrapper .dataTables_info,
447 | .dataTables_wrapper .dataTables_processing,
448 | .dataTables_wrapper .dataTables_paginate,
449 | .dataTables_wrapper .dataTables_paginate .paginate_button {
450 | color: var(--bs-body-color) !important;
451 | }
452 |
453 | .dataTable {
454 |
455 | &.no-footer {
456 | border-bottom-color: var(--table-out-borders);
457 | }
458 |
459 | th {
460 | border-color: var(--table-out-borders);
461 | }
462 |
463 | tr {
464 | border-color: var(--table-tr-border);
465 | }
466 |
467 | tbody {
468 | td {
469 | border-color: var(--table-tr-border);
470 | }
471 |
472 | tr.even {
473 | background-color: var(--bs-table-accent-bg);
474 | }
475 |
476 | tr.odd {
477 | background-color: var(--bs-table-striped-bg);
478 |
479 | td {
480 | box-shadow: none;
481 | }
482 | }
483 | }
484 |
485 | }
486 |
487 |
488 | /* Code */
489 |
490 | pre,
491 | code {
492 | font-size: .95em;
493 |
494 | a {
495 | color: inherit;
496 | }
497 | }
498 |
499 | p>code,
500 | a code,
501 | ul code,
502 | ol code {
503 | color: var(--code-color);
504 | background-color: var(--code-bg);
505 | border-color: var(--code-bg);
506 | padding: 2px 4px;
507 | font-size: 85%;
508 | border-radius: 4px;
509 | }
510 |
511 | pre {
512 | color: var(--code-block-color);
513 | background-color: var(--code-block-bg);
514 | border-radius: 6px;
515 | padding: .8em 1.2em;
516 | }
517 |
518 | div.sourceCode {
519 | color: var(--code-block-color);
520 | background-color: var(--code-block-bg);
521 | border-radius: 6px;
522 | margin-bottom: 1.6em;
523 | border: none;
524 | }
525 |
526 | .code-annotation-gutter {
527 | background-color: var(--code-block-bg);
528 | }
529 |
530 | a.code-annotation-anchor:hover {
531 | text-decoration: none;
532 | }
533 |
534 | code {
535 |
536 | span.kw,
537 | span.cf {
538 | font-weight: 500;
539 | }
540 |
541 | span.kw,
542 | span.cf,
543 | span.op,
544 | span.er {
545 | color: #009ad2;
546 | text-decoration: none;
547 | }
548 |
549 | span.co,
550 | span.do {
551 | color: var(--hl-code-comments);
552 | font-style: normal;
553 | }
554 | }
555 |
556 |
557 | /* Lists */
558 |
559 | ul:not(.nav) {
560 | margin: 0 0 1.5em 0;
561 | padding: 0 0 0 2em;
562 | list-style-type: none;
563 | }
564 |
565 | ul:not(.nav):not(.task-list)>li {
566 | text-indent: -1.1em;
567 | margin-bottom: .5em;
568 | }
569 |
570 | ul:not(.nav):not(.task-list)>li::before {
571 | content: "— ";
572 | }
573 |
574 |
575 | /* Callouts */
576 |
577 | .callout {
578 |
579 | padding: .5em;
580 | color: var(--callout-color);
581 |
582 | .callout-header {
583 | font-weight: bolder;
584 | font-size: 110%;
585 | margin-bottom: .5em;
586 | background: none;
587 | }
588 |
589 | .callout-body {
590 | font-weight: var(--bs-body-font-weight);
591 | }
592 |
593 | .callout-icon::before {
594 | height: 1.1rem;
595 | width: 1.1rem;
596 | background-size: 1.1rem 1.1rem;
597 | }
598 |
599 | /* Inline code in callout */
600 | p>code,
601 | a code,
602 | ul code,
603 | ol code {
604 | color: var(--callout-color);
605 | background-color: transparent;
606 | border: none;
607 | padding: 2px 4px;
608 | font-size: 100%;
609 | }
610 |
611 |
612 | }
613 |
614 | .callout-warning {
615 | background-color: var(--callout-warning-bg);
616 | border-top-color: var(--callout-warning-bg);
617 | border-right-color: var(--callout-warning-bg);
618 | border-bottom-color: var(--callout-warning-bg);
619 |
620 | .callout-header {
621 | color: var(--callout-warning-title);
622 | }
623 | }
624 |
625 | .callout-note {
626 | background-color: var(--callout-note-bg);
627 | border-top-color: var(--callout-note-bg);
628 | border-right-color: var(--callout-note-bg);
629 | border-bottom-color: var(--callout-note-bg);
630 |
631 |
632 | .callout-header {
633 | color: var(--callout-note-title);
634 | }
635 | }
636 |
637 | .callout-important {
638 | background-color: var(--callout-important-bg);
639 | border-top-color: var(--callout-important-bg);
640 | border-right-color: var(--callout-important-bg);
641 | border-bottom-color: var(--callout-important-bg);
642 |
643 | .callout-header {
644 | color: var(--callout-important-title);
645 | }
646 | }
647 |
648 | .callout-caution {
649 | background-color: var(--callout-caution-bg);
650 | border-top-color: var(--callout-caution-bg);
651 | border-right-color: var(--callout-caution-bg);
652 | border-bottom-color: var(--callout-caution-bg);
653 |
654 | .callout-header {
655 | color: var(--callout-caution-title);
656 | }
657 | }
658 |
659 | .callout-tip {
660 | background-color: var(--callout-tip-bg);
661 | border-top-color: var(--callout-tip-bg);
662 | border-right-color: var(--callout-tip-bg);
663 | border-bottom-color: var(--callout-tip-bg);
664 |
665 | .callout-header {
666 | color: var(--callout-tip-title);
667 | }
668 | }
669 |
670 |
671 | /* Leaflet */
672 |
673 | .leaflet-container {
674 | margin-top: 0;
675 | margin-bottom: 2rem;
676 | }
677 |
678 | .leaflet .leaflet-control-container a {
679 | background-color: #FFF;
680 | color: #000;
681 | }
682 |
683 | .leaflet a:hover {
684 | text-decoration: none;
685 | }
686 |
687 |
688 | /* Footnotes */
689 |
690 | .footnote-back {
691 | padding-left: .3em;
692 | }
693 |
694 | .footnote-ref {
695 | padding: 0 0 0 .2em;
696 | font-weight: 400;
697 | }
698 |
699 | }
700 |
701 |
702 | /* Header secondary nav */
703 |
704 | header {
705 | .quarto-secondary-nav {
706 | background-color: var(--bs-body-bg);
707 | color: var(--bs-body-color);
708 | border-bottom: 1px solid var(--header-footer-border);
709 |
710 | a,
711 | .btn,
712 | code {
713 | color: var(--bs-body-color) !important;
714 | }
715 |
716 | }
717 | }
718 |
719 |
720 | /* Footnotes */
721 |
722 | #footnotes {
723 | .footnote-back {
724 | font-family: var(--bs-font-monospace);
725 | }
726 | }
727 |
728 | /* Footer */
729 |
730 | body:not(.floating) {
731 | .nav-footer {
732 | border-top: 1px solid var(--header-footer-border);
733 | }
734 | }
735 |
736 |
737 | /* Listings */
738 |
739 | #quarto-document-content {
740 | .quarto-listing {
741 | a {
742 | color: currentColor;
743 |
744 | &:hover {
745 | text-decoration: none;
746 | }
747 | }
748 |
749 | .card {
750 | box-shadow: 0 16px 16px var(--listing-card-shadow);
751 | transition: all 0.3s ease-out;
752 | background-color: var(--bs-body-bg);
753 | color: var(--bs-body-color);
754 | border-color: var(--listing-card-border);
755 |
756 | &:hover {
757 | transform: translateY(-5px) scale(1.005) translateZ(0);
758 | box-shadow: 0 26px 26px var(--listing-card-shadow-hover);
759 | }
760 | }
761 | }
762 | }
--------------------------------------------------------------------------------
/_extensions/bookup/bookup_dark.scss:
--------------------------------------------------------------------------------
1 | /*-- scss:defaults --*/
2 |
3 | $body-bg: #1c1f2b;
4 | $body-color: #cad2dd;
5 | $footer-bg: #1c1f2b;
6 | $footer-fg: #cad2dd;
7 |
8 |
9 | /*-- scss:rules --*/
10 |
11 | :root {
12 | --link-color: #c1ff42;
13 |
14 | --toc-active-color: #c1ff42;
15 | --toc-border-color: #555;
16 |
17 | --sidebar-fg: #ccd1e2;
18 | --sidebar-bg-docked: #2d3143;
19 | --sidebar-border: transparent;
20 | --sidebar-active-link-color: #c1ff42;
21 | --sidebar-part-color: #ccd1e2;
22 | --sidebar-input-border: #5d6173;
23 |
24 | --figure-img-border: 1px solid #5d6173;
25 | --figure-img-shadow: none;
26 |
27 | --code-block-color: #9dbed8;
28 | --code-block-bg: #2d3143;
29 | --code-color: #9dbed8;
30 | --code-bg: #2d3143;
31 |
32 | --hl-code-comments: #8e8d8c;
33 |
34 | --header-footer-border: #2d3143;
35 |
36 | --table-tr-border: #50616e;
37 | --table-out-borders: #AAA;
38 | --table-tr-hover: #242838;
39 |
40 | --reader-toggle-bg: #2d3143;
41 | --reader-toggle-border: #5d6173;
42 |
43 | --callout-color: #000;
44 | --callout-warning-bg: #ffe99f;
45 | --callout-warning-title: #af8300;
46 | --callout-note-bg: #b4d3ff;
47 | --callout-note-title: #2f65b8;
48 | --callout-important-bg: #f8bcc0;
49 | --callout-important-title: #900;
50 | --callout-caution-bg: #ffdabd;
51 | --callout-caution-title: #be7200;
52 | --callout-tip-bg: #bafcde;
53 | --callout-tip-title: #050;
54 |
55 | --listing-card-border: #5d6173;
56 | --listing-card-shadow: rgba(255, 255, 255, 0.04);
57 | --listing-card-shadow-hover: rgba(255, 255, 255, 0.08);
58 |
59 | }
60 |
61 | .table,
62 | .dataTable {
63 | --bs-table-accent-bg: #35394b;
64 | --bs-table-striped-bg: #2d3143;
65 | }
66 |
67 | body {
68 | color-scheme: dark;
69 | }
--------------------------------------------------------------------------------
/_extensions/bookup/embed-fonts.lua:
--------------------------------------------------------------------------------
1 | local function readMeta(meta)
2 | if meta['embed-fonts'] then
3 | quarto.doc.add_html_dependency({
4 | name = "bookup_fonts_gwf",
5 | version = "0.0",
6 | stylesheets = { "fonts-embed.css" }
7 | })
8 | quarto.doc.add_format_resource("fonts")
9 | else
10 | quarto.doc.add_html_dependency({
11 | name = "bookup_fonts_embed",
12 | version = "0.0",
13 | stylesheets = { "fonts-download.css" }
14 | })
15 | end
16 | end
17 |
18 | return {
19 | { Meta = readMeta }
20 | }
21 |
--------------------------------------------------------------------------------
/_extensions/bookup/fonts-download.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css?family=Roboto+Slab:700|Roboto:300,300i,400,400i,700|Fira+Code');
2 |
--------------------------------------------------------------------------------
/_extensions/bookup/fonts-embed.css:
--------------------------------------------------------------------------------
1 | /*-- scss:rules --*/
2 |
3 | /* roboto-300 - latin */
4 | @font-face {
5 | font-family: 'Roboto';
6 | font-style: normal;
7 | font-weight: 300;
8 | src: local(''),
9 | url('fonts/roboto-v29-latin-300.woff2') format('woff2')
10 | }
11 |
12 | /* roboto-300italic - latin */
13 | @font-face {
14 | font-family: 'Roboto';
15 | font-style: italic;
16 | font-weight: 300;
17 | src: local(''),
18 | url('fonts/roboto-v29-latin-300italic.woff2') format('woff2')
19 | }
20 |
21 | /* roboto-regular - latin */
22 | @font-face {
23 | font-family: 'Roboto';
24 | font-style: normal;
25 | font-weight: 400;
26 | src: local(''),
27 | url('fonts/roboto-v29-latin-regular.woff2') format('woff2')
28 | }
29 |
30 | /* roboto-italic - latin */
31 | @font-face {
32 | font-family: 'Roboto';
33 | font-style: italic;
34 | font-weight: 400;
35 | src: local(''),
36 | url('fonts/roboto-v29-latin-italic.woff2') format('woff2')
37 | }
38 |
39 | /* roboto-700 - latin */
40 | @font-face {
41 | font-family: 'Roboto';
42 | font-style: normal;
43 | font-weight: 700;
44 | src: local(''),
45 | url('fonts/roboto-v29-latin-700.woff2') format('woff2')
46 | }
47 |
48 | /* roboto-700italic - latin */
49 | @font-face {
50 | font-family: 'Roboto';
51 | font-style: italic;
52 | font-weight: 700;
53 | src: local(''),
54 | url('fonts/roboto-v29-latin-700italic.woff2') format('woff2')
55 | }
56 |
57 | /* roboto-slab-700 - latin */
58 | @font-face {
59 | font-family: 'Roboto Slab';
60 | font-style: normal;
61 | font-weight: 700;
62 | src: local(''),
63 | url('fonts/roboto-slab-v22-latin-700.woff2') format('woff2')
64 | }
65 |
66 | /* fira-mono-regular - latin */
67 | @font-face {
68 | font-family: 'Fira Mono';
69 | font-style: normal;
70 | font-weight: 400;
71 | src: local(''),
72 | url('fonts/fira-mono-v12-latin-regular.woff2') format('woff2')
73 | }
74 |
75 | /* fira-mono-500 - latin */
76 | @font-face {
77 | font-family: 'Fira Mono';
78 | font-style: normal;
79 | font-weight: 500;
80 | src: local(''),
81 | url('fonts/fira-mono-v12-latin-500.woff2') format('woff2')
82 | }
83 |
84 | /* fira-mono-700 - latin */
85 | @font-face {
86 | font-family: 'Fira Mono';
87 | font-style: normal;
88 | font-weight: 700;
89 | src: local(''),
90 | url('fonts/fira-mono-v12-latin-700.woff2') format('woff2')
91 | }
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/fira-mono-v12-latin-500.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/fira-mono-v12-latin-500.woff2
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/fira-mono-v12-latin-700.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/fira-mono-v12-latin-700.woff2
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/fira-mono-v12-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/fira-mono-v12-latin-regular.woff2
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/roboto-slab-v22-latin-700.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/roboto-slab-v22-latin-700.woff2
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/roboto-v29-latin-300.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/roboto-v29-latin-300.woff2
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/roboto-v29-latin-300italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/roboto-v29-latin-300italic.woff2
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/roboto-v29-latin-700.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/roboto-v29-latin-700.woff2
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/roboto-v29-latin-700italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/roboto-v29-latin-700italic.woff2
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/roboto-v29-latin-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/roboto-v29-latin-italic.woff2
--------------------------------------------------------------------------------
/_extensions/bookup/fonts/roboto-v29-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/_extensions/bookup/fonts/roboto-v29-latin-regular.woff2
--------------------------------------------------------------------------------
/examples/_sample.qmd:
--------------------------------------------------------------------------------
1 |
2 |
3 | ```{r}
4 | #| label: setup
5 | #| include: false
6 |
7 | library(knitr)
8 | ```
9 |
10 | # Code and tables
11 |
12 | ## Syntax highlighting
13 |
14 | Here is a sample code chunk, just to show that syntax highlighting works as expected as well as code annotations.
15 |
16 | ```{r}
17 | #| label: sh
18 | #| echo: true
19 | #| eval: true
20 | say_hello <- function(name) {
21 | paste("Hello,", name, "!") # <1>
22 | }
23 |
24 | say_hello("world") # <2>
25 | ```
26 | 1. Quite an original example.
27 | 2. This is were all the action is happening.
28 |
29 | ## Verbatim
30 |
31 | Here is the structure of the `penguins` dataset.
32 |
33 | ```{r}
34 | #| label: penguins_str
35 | #| echo: true
36 | #| code-line-numbers: true
37 | library(palmerpenguins)
38 | str(penguins)
39 | ```
40 |
41 | ## Tables
42 |
43 | Sample table output.
44 |
45 | ```{r}
46 | #| label: table
47 | tab <- table(penguins$island, penguins$species)
48 | kable(tab)
49 | ```
50 |
51 | Sample `DT:datatable` output.
52 |
53 | ```{r}
54 | #| label: dt
55 | library(DT)
56 | DT::datatable(penguins)
57 | ```
58 |
59 |
60 | # Styling
61 |
62 | A simple list :
63 |
64 | - one mississipi
65 | - two mississipi
66 | - three mississipi
67 |
68 |
69 | A blockquote :
70 |
71 | > Oh ! What a nice blockquote you have here. Much more wonderful than a classical lorem ipsum, really.
72 |
73 | And we could also [include links](https://www.r-project.org/) or simply URLs like this : ^[And even footnotes].
74 |
75 | An incredibly complex equation :
76 |
77 | $$ y = \sqrt{\frac{1}{x + \beta}} $$
78 |
79 |
80 | # Figures
81 |
82 | Here is an histogram.
83 |
84 | ```{r}
85 | #| label: hist
86 | library(ggplot2)
87 | ggplot(data = penguins) +
88 | geom_histogram(aes(x = body_mass_g)) +
89 | facet_grid(rows = vars(species))
90 | ```
91 |
92 | And a wonderful scatterplot, with a caption.
93 |
94 | ```{r}
95 | #| label: scatter
96 | #| fig.cap: "This is a scatterplot"
97 | ggplot(data = penguins) +
98 | geom_point(
99 | aes(x = bill_length_mm, y = bill_depth_mm)
100 | )
101 | ```
102 |
103 |
104 | # Callouts
105 |
106 | ::: {.callout-note}
107 | This is a note callout.
108 | :::
109 |
110 | ::: {.callout-warning}
111 | This is a warning callout
112 | :::
113 |
114 | ::: {.callout-important}
115 | This is an important callout
116 | :::
117 |
118 | ::: {.callout-caution}
119 | This is a caution callout
120 | :::
121 |
122 | ::: {.callout-tip}
123 | This is a tip callout.With a bit of `code`.
124 | :::
125 |
126 | # Tabset
127 |
128 | :::{.panel-tabset}
129 |
130 | ## First tab
131 |
132 | This is the first tab content.
133 |
134 | ## Second tab
135 |
136 | This is the second tab content.
137 |
138 | :::
--------------------------------------------------------------------------------
/examples/book/.gitignore:
--------------------------------------------------------------------------------
1 | /.quarto/
2 |
--------------------------------------------------------------------------------
/examples/book/_extensions/bookup:
--------------------------------------------------------------------------------
1 | ../../../_extensions/bookup
--------------------------------------------------------------------------------
/examples/book/_quarto.yml:
--------------------------------------------------------------------------------
1 | project:
2 | type: book
3 |
4 | execute:
5 | freeze: auto
6 |
7 | book:
8 | title: "Sample bookup-html book project"
9 | author: "Jane Doe"
10 | date: today
11 | downloads: [pdf, epub]
12 | doi: "10.XXX/XXX"
13 | url: https://example.com
14 | repo-url: https://github.com/juba/bookup-html/tree/main/examples/book
15 | repo-actions: edit
16 | search: true
17 | reader-mode: true
18 | sidebar:
19 | style: "docked"
20 | chapters:
21 | - index.qmd
22 | - part: "Content"
23 | chapters:
24 | - sample.qmd
25 | - summary.qmd
26 | appendices:
27 | - references.qmd
28 |
29 | bibliography: references.bib
30 |
31 | format:
32 | bookup-html
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/examples/book/index.qmd:
--------------------------------------------------------------------------------
1 | # Introduction
2 |
3 | This is a sample quarto book project using the `bookup-html` custom [quarto](https://quarto.org) format.
4 |
5 | You can learn more on this format and how to use it in the [bookup-html Github repository](https://github.com/juba/bookup-html).
6 |
7 |
--------------------------------------------------------------------------------
/examples/book/references.bib:
--------------------------------------------------------------------------------
1 | @article{knuth84,
2 | author = {Knuth, Donald E.},
3 | title = {Literate Programming},
4 | year = {1984},
5 | issue_date = {May 1984},
6 | publisher = {Oxford University Press, Inc.},
7 | address = {USA},
8 | volume = {27},
9 | number = {2},
10 | issn = {0010-4620},
11 | url = {https://doi.org/10.1093/comjnl/27.2.97},
12 | doi = {10.1093/comjnl/27.2.97},
13 | journal = {Comput. J.},
14 | month = may,
15 | pages = {97–111},
16 | numpages = {15}
17 | }
18 |
19 |
20 |
--------------------------------------------------------------------------------
/examples/book/references.qmd:
--------------------------------------------------------------------------------
1 | # References {.unnumbered}
2 |
3 | ::: {#refs}
4 | :::
5 |
--------------------------------------------------------------------------------
/examples/book/sample.qmd:
--------------------------------------------------------------------------------
1 | # Features overview
2 |
3 | This is a book created from markdown and executable code.
4 |
5 | See @knuth84 for additional discussion of literate programming.
6 |
7 | {{< include ../_sample.qmd >}}
8 |
9 |
--------------------------------------------------------------------------------
/examples/book/summary.qmd:
--------------------------------------------------------------------------------
1 | # An empty page
2 |
3 | In summary, this book has no content whatsoever.
4 |
--------------------------------------------------------------------------------
/examples/document/_extensions/bookup:
--------------------------------------------------------------------------------
1 | ../../../_extensions/bookup/
--------------------------------------------------------------------------------
/examples/document/bookup-dark.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Bookup quarto format example"
3 | date: today
4 | author: "Jane Doe"
5 | format:
6 | bookup-html+darkonly:
7 | embed-fonts: true
8 | self-contained: true
9 | ---
10 |
11 |
12 | This is a sample document using the `bookup-html` custom [quarto](https://quarto.org) format.
13 |
14 | You can learn more about this format and how to use it in the [bookup-html Github repository](https://github.com/juba/bookup-html).
15 |
16 |
17 | {{< include ../_sample.qmd >}}
18 |
--------------------------------------------------------------------------------
/examples/document/bookup.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Bookup quarto format example"
3 | date: today
4 | author: "Jane Doe"
5 | format:
6 | bookup-html:
7 | embed-fonts: true
8 | self-contained: true
9 | ---
10 |
11 |
12 | This is a sample document using the `bookup-html` custom [quarto](https://quarto.org) format.
13 |
14 | You can learn more about this format and how to use it in the [bookup-html Github repository](https://github.com/juba/bookup-html).
15 |
16 |
17 | {{< include ../_sample.qmd >}}
18 |
--------------------------------------------------------------------------------
/examples/website/.gitignore:
--------------------------------------------------------------------------------
1 | /.quarto/
2 |
--------------------------------------------------------------------------------
/examples/website/_extensions/bookup:
--------------------------------------------------------------------------------
1 | ../../../_extensions/bookup/
--------------------------------------------------------------------------------
/examples/website/_quarto.yml:
--------------------------------------------------------------------------------
1 | project:
2 | type: website
3 |
4 | website:
5 | title: "Bookup website"
6 | search: true
7 | reader-mode: true
8 | navbar:
9 | background: "#2e3f58"
10 | left:
11 | - href: index.qmd
12 | text: Home
13 | - about.qmd
14 | - text: "More"
15 | menu:
16 | - page.qmd
17 | sidebar:
18 | style: "floating"
19 | contents:
20 | - section: "Pages"
21 | contents:
22 | - index.qmd
23 | - page.qmd
24 | - about.qmd
25 | page-footer:
26 | left: "This is quite a fine footer."
27 | right:
28 | - icon: github
29 | href: https://github.com/juba/bookup-html
30 |
31 | format:
32 | bookup-html:
33 | embed-fonts: true
34 |
35 |
36 |
--------------------------------------------------------------------------------
/examples/website/about.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "About"
3 | ---
4 |
5 | This would be a nice about page if it had any content.
6 |
--------------------------------------------------------------------------------
/examples/website/index.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Sample bookup-html website project"
3 | ---
4 |
5 | # Welcome
6 |
7 | This is a sample quarto website project using the `bookup-html` custom [quarto](https://quarto.org) format.
8 |
9 | You can learn more on this format and how to use it in the [bookup-html Github repository](https://github.com/juba/bookup-html).
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/examples/website/page.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Sample page"
3 | ---
4 |
5 | {{< include ../_sample.qmd >}}
6 |
7 |
--------------------------------------------------------------------------------
/examples/website/styles.css:
--------------------------------------------------------------------------------
1 | /* css styles */
2 |
--------------------------------------------------------------------------------
/screenshots/book_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/screenshots/book_light.png
--------------------------------------------------------------------------------
/screenshots/single_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/screenshots/single_dark.png
--------------------------------------------------------------------------------
/screenshots/single_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/screenshots/single_light.png
--------------------------------------------------------------------------------
/screenshots/website_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/juba/bookup-html/62827330a1cbbe367e369b0edf671ce76d4c15ee/screenshots/website_dark.png
--------------------------------------------------------------------------------
/template.qmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: ""
3 | author: ""
4 | date: today
5 | format:
6 | bookup-html:
7 | embed-fonts: true
8 | toc: true
9 | ---
10 |
11 | ## Introduction
12 |
13 | This is a default template for the `bookup-html` custom quarto format.
14 |
15 | You can learn more about `bookup` in its [Github repository](https://github.com/juba/bookup-html).
16 |
17 | You can learn more about controlling the appearance of HTML output at the [quarto website](https://quarto.org/docs/output-formats/html-basics.html).
18 |
19 |
--------------------------------------------------------------------------------