From da2275674a1c8c6e13b3f198bd20f99cd4097e34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93lafur=20Sverrir=20Kjartansson?= Date: Sun, 5 Jun 2022 11:07:08 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20fyrsta=20=C3=BAtg=C3=A1fa=20af=20pdf=20?= =?UTF-8?q?=C3=BAtg=C3=A1fu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Notar pandoc til að útbúa pdf, þurfti að * Setja upp `librsvg` með brew fyrir svg myndir * Búa til lua filter til að sleppa „myndum“ sem voru brotnar * Setja upp `pdffiles.txt` til að tilgreina hvað eigi að lesa inn --- .gitignore | 3 +++ chapters/pdf.md | 22 ++++++++++++++++++++++ package.json | 3 ++- pandoc-filters.lua | 12 ++++++++++++ pdffiles.txt | 25 +++++++++++++++++++++++++ 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 chapters/pdf.md create mode 100644 pandoc-filters.lua create mode 100644 pdffiles.txt diff --git a/.gitignore b/.gitignore index 3a0fcab..3268cb9 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,6 @@ temp npm-debug.log* yarn-debug.log* yarn-error.log* + +# pdf output +/pdf diff --git a/chapters/pdf.md b/chapters/pdf.md new file mode 100644 index 0000000..f29a77d --- /dev/null +++ b/chapters/pdf.md @@ -0,0 +1,22 @@ +--- +title: "Bókin um vefforritun" +subtitle: "Lærðu að smíða vefi með HTML og CSS ✨" +author: "Ólafur Sverrir Kjartansson" +toc: true +toc-title: Efnisyfirlit +papersize: a4 +lang: is-IS +geometry: +- top=40mm +- right=30mm +- bottom=40mm +- left=30mm +header-includes: + # Wrappa kóðablokkir + - \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\\{\}} + - \usepackage{fvextra} + # Wrappa inline kóða + - \usepackage[htt]{hyphenat} + # Færa footnotes lengra frá efni + - \addtolength{\skip\footins}{2pc} +--- diff --git a/package.json b/package.json index 4a51b5a..6fe2d4b 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "scripts": { "generate": "node src/generate.js", "clean": "rm -rf ./cache ./build", - "wordlist": "find ./chapters/*.md -type f | xargs grep --color=always -w -Ff ./wordlist.txt | awk '{print $0,\"\\n\"}'" + "wordlist": "find ./chapters/*.md -type f | xargs grep --color=always -w -Ff ./wordlist.txt | awk '{print $0,\"\\n\"}'", + "pdf": "pandoc -s ./chapters/pdf.md $(cat pdffiles.txt) -o ./pdf/bok.pdf --pdf-engine=xelatex --number-sections --resource-path=./chapters --lua-filter=./pandoc-filters.lua" }, "repository": { "type": "git", diff --git a/pandoc-filters.lua b/pandoc-filters.lua new file mode 100644 index 0000000..8882555 --- /dev/null +++ b/pandoc-filters.lua @@ -0,0 +1,12 @@ +--[[ +Strip out images that are not local, some chapters use YouTube embeds that otherwise break while building +See +https://github.com/jgm/pandoc/issues/4893 +https://pandoc.org/lua-filters.html +https://github.com/pandoc/lua-filters +]]-- +function Image(element) + if element.src.sub(element.src, 1, string.len('http')) == 'http' then + return {} + end +end diff --git a/pdffiles.txt b/pdffiles.txt new file mode 100644 index 0000000..d2ba889 --- /dev/null +++ b/pdffiles.txt @@ -0,0 +1,25 @@ +./chapters/00.inngangur.md +./chapters/01.internetid.md +./chapters/02.saga.md +./chapters/03.html.md +./chapters/04.element.md +./chapters/05.toflur-listar-form.md +./chapters/06.ad-skrifa-html.md +./chapters/07.adgengi.md +./chapters/08.seo.md +./chapters/09.css.md +./chapters/10.css-malfraedi.md +./chapters/11.css-box-model.md +./chapters/12.css-specifity-cascade.md +./chapters/13.css-best-practices.md +./chapters/14.visual-formatting.md +./chapters/15.css-letur-litir.md +./chapters/16.css-studningur.md +./chapters/17.css-flexbox.md +./chapters/18.skalanlegir.md +./chapters/19.kvikun.md +./chapters/20.honnun.md +./chapters/21.grid.md +./chapters/22.css-verkefni.md +./chapters/23.css-taeki-tol.md +./chapters/24.npm-taeki-tol.md