From 849dc2dfb572768b126f66f20254e4e8b9fb4ec0 Mon Sep 17 00:00:00 2001 From: anarsec Date: Tue, 11 Jul 2023 16:52:07 +0000 Subject: [PATCH] layout updates --- content/posts/linux/index.md | 1 + content/posts/tails-best/index.md | 1 + layout/anarsec_article.typ | 83 ++++++++++++++---------- layout/python/anarsec_article_to_pdf.py | 6 +- static/images/destroy.png | Bin 0 -> 16591 bytes 5 files changed, 56 insertions(+), 35 deletions(-) create mode 100644 static/images/destroy.png diff --git a/content/posts/linux/index.md b/content/posts/linux/index.md index 42a9099..2427d7a 100644 --- a/content/posts/linux/index.md +++ b/content/posts/linux/index.md @@ -9,6 +9,7 @@ tags = ["intro", "linux", "tails", "qubes", "easy"] [extra] blogimage="/gifs/destroy.gif" +blogimagepng="/images/destroy.png" toc=true dateedit=2023-05-10 a4="linux-a4.pdf" diff --git a/content/posts/tails-best/index.md b/content/posts/tails-best/index.md index efb509f..bd8756e 100644 --- a/content/posts/tails-best/index.md +++ b/content/posts/tails-best/index.md @@ -335,6 +335,7 @@ Hacking is really a way of life. If you are truly committed to your cause, you s
+
[^1]: This applies to the IPv4 Internet protocol standard. Caution: In some company networks, this no longer applies! diff --git a/layout/anarsec_article.typ b/layout/anarsec_article.typ index 94d8317..67dbe86 100644 --- a/layout/anarsec_article.typ +++ b/layout/anarsec_article.typ @@ -5,13 +5,61 @@ lastediteddate: none, description: none, subtitle: none, + category: none, content ) = { + + // format lists + set list(marker: ([•], [--])) + + // front cover + page()[ + #set align(center + horizon) + + #image(frontimage) + + #text(25pt, title) + +#{ + if subtitle != "None" { + text(18pt, subtitle) + } +} + + #set align(center + bottom) + + #text(18pt)[Series: #category] + + ] + + // inside cover + page()[ + #set align(center + bottom) + + #text()[This version of the zine was last edited on #lastediteddate. Visit anarsec.guide to see whether it has been updated since.] + + #text()[The dagger symbol #super[†] on a word means that there is a glossary entry for it. Ai ferri corti.] + ] + + // table of contents + page()[ + #outline(indent: 20pt, depth: 3) + ] + // format links show link: it => { it.body if type(it.dest) == "string" { - if it.dest.starts-with("https://") or it.dest.starts-with("http://") { + if it.dest == "https://anarsec.guide/recommendations" or it.dest == "/recommendations" { + text[ (#emph()[Recommendations])] + } + else if it.dest.starts-with("/recommendations#") or it.dest.starts-with("/recommendations/#") { + locate(location => { + let elements = query(label(it.dest.trim("/recommendations#", at: start).trim("/recommendations/#", at: start)), location) + text[ (#emph()[Recommendations:] #emph(elements.first().body))] + }) + } + else if it.dest.starts-with("https://") or it.dest.starts-with("http://") { footnote[#it.dest.trim("https://", at: start).trim("http://", at: start)] } else if it.dest.starts-with("/glossary#") or it.dest.starts-with("/glossary/#") { @@ -31,38 +79,6 @@ }) } } - - // format lists - set list(marker: ([•], [--])) - - // front cover - page()[ - #set align(center + horizon) - - #image(frontimage) - - #text(25pt, title) - -#{ - if subtitle != "None" { - text(18pt, subtitle) - } -} - ] - - // inside cover - page()[ - #set align(center + bottom) - - #text()[This version of the zine was last edited on #lastediteddate. Visit anarsec.guide to see whether it has been updated since.] - - #text()[The dagger symbol #super[†] on a word means that there is a glossary entry for it. Ai ferri corti.] - ] - - // table of contents - page()[ - #outline(indent: 20pt, depth: 3) - ] // content set page(numbering: "1") @@ -116,3 +132,4 @@ ] ] ] + diff --git a/layout/python/anarsec_article_to_pdf.py b/layout/python/anarsec_article_to_pdf.py index 521c90e..cdacaac 100644 --- a/layout/python/anarsec_article_to_pdf.py +++ b/layout/python/anarsec_article_to_pdf.py @@ -101,8 +101,9 @@ class Converter: description = description_txt_path.open().read() # Copy the front image - front_image = pathlib.Path(workingDirectory) / ("front_image" + pathlib.Path(toml_front_matter['extra']['blogimage']).suffix) - shutil.copy(self.anarsec_root / "static" / toml_front_matter['extra']['blogimage'].removeprefix("/"), front_image) + blogimageid = "blogimagepng" if "blogimagepng" in toml_front_matter["extra"] else "blogimage" + front_image = pathlib.Path(workingDirectory) / ("front_image" + pathlib.Path(toml_front_matter['extra'][blogimageid]).suffix) + shutil.copy(self.anarsec_root / "static" / toml_front_matter['extra'][blogimageid].removeprefix("/"), front_image) # Copy the back image back_image = pathlib.Path(workingDirectory) / "back_image.png" @@ -160,6 +161,7 @@ class Converter: lastediteddate: "{toml_front_matter["extra"]["dateedit"]}", description: "{description}", subtitle: "{toml_front_matter.get("description")}", + category: "{toml_front_matter["taxonomies"]["categories"][0]}", content ) {typst_path.open().read()} diff --git a/static/images/destroy.png b/static/images/destroy.png new file mode 100644 index 0000000000000000000000000000000000000000..5b82d814080cae3677526dc2a1ecf211d94fdd7f GIT binary patch literal 16591 zcmeHvXHZjX7p@+Tpdx|=Q0hTYlqyOMO{vm5p`#)-6e*#Hs5BLUqckBjMTi6f(n1LY z0qLCpk=|uGD8q5t{IZ9pcSIrGmM9gWB4!I`9~pz!O? z^X)sXdVv*d%70(|G+??a{wjd`uOah|>ts)>{+Ti3jJvY?eGWU1w)V|`JUjcb;MPAw zZ}vIV)b6e+kA0fq-}~W-aZd8Qco@>S+wSr}F(i{Zq;`gmQ;p4~kA z=k&YaKktuj@%=gc`47p>% zDgUs*N3!vWfJT06<=vpIPxUZ~(iXscxhij&R^-~_h$h@j!$lan+n=m8upo$;i$w9f!%#3HwynOZ#U*^o|$oRcEohvr#-$vQcG8%`6jF5dJ z7atqz@OsTI|BrCQLES45*w!LkiD14~Q{R{C7h)U+k^NDpQpvnCtF}}S8B^pR{gJuz&#d7 zDeJyT7Pl*=!w#BTzDg-KQ@zfs=!|k}Qp1Q?k2ohV8*z(DeDKW0uZ13Lq-SOhH-rT_ zcUC0{Z|NJ&G{WIpT3T@&EN9M~TClO�=eC%@{~%;%dONzmYkn(M+h+yv>C518CDA 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