diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..645e6a2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.old diff --git a/articles/03-http-file-demo.yamd b/articles/03-http-file-demo.yamd new file mode 100644 index 0000000..6ec34df --- /dev/null +++ b/articles/03-http-file-demo.yamd @@ -0,0 +1,10 @@ +title: File access demo +slug: http-file-demo +hidden: true +author: Chris Josten +firstPublished: 2021-2-10 15:30:00 +--- + +Modern browsers block access to `file://` URLs from webpages that are not "hosted" on `file://`. +[This URL that points towards /etc/passwd should NOT work](file:///etc/passwd). + diff --git a/defaultClasses.lua b/defaultClasses.lua new file mode 100644 index 0000000..b1ddd6f --- /dev/null +++ b/defaultClasses.lua @@ -0,0 +1,19 @@ +local default_code_classes = {} + +function add_default_code_class(el) + el.classes[#el.classes+1] = 'numberSource' + if #(el.classes) == 1 then + el.classes = default_code_classes + end + return el +end + +function get_default_code_class(meta) + if meta['default-code-class'] then + default_code_classes = {pandoc.utils.stringify(meta['default-code-class'])} + end +end + +return {{Meta = get_default_code_class}, + {Code = add_default_code_class}, + {CodeBlock = add_default_code_class}} diff --git a/pages/contact.yamd b/pages/contact.yamd new file mode 100644 index 0000000..ecd36de --- /dev/null +++ b/pages/contact.yamd @@ -0,0 +1,49 @@ +title: Contact +slug: contact +--- +# Languages +You can contact me both in Dutch and in English. If you want to read my broken +French or German, you can try contact me in those languages as well. + +# Email +You can reach me over email via <chris AT netsoj DOT nl>. + +My PGP-key is: + + -----BEGIN PGP PUBLIC KEY BLOCK----- + + mQENBF3NOPQBCACeH/NZt2D5ZA7dxnMk3SHydfOFwKk5XQhGDPxknFkFOKFzVLsj + 2HvAseTRruzWJI1QJb3OH1L8a4yIWq/9XwlW6/30tUhLjcOCm9U8VWArTYZR+vQM + V3eHNvYUUEQg4HHvxqvVDAdgGgMZ2urbJFCb6M8PT89ACuxWir51oWUCX2gJWZkb + kKJT04q2j3pyTYI0fHozNM41nEoMijnsU4sc9SBWwyEJ8Sn8SeuIkxgypeXGeELZ + bRpwasGrJo8R5F585NCSznHPgNAT2Sh9GICZ4/vFx0yGXRNan/Kx0uy1kwDRElbc + pwRJjfMb1CZ3x+Z9UPKaPSk7LJLfJWMNWkjlABEBAAG0HkNocmlzIEpvc3RlbiA8 + Y2hyaXNAbmV0c29qLm5sPokBVAQTAQgAPhYhBPWTbLaHCHV3I7Oj1BeVpZQEZTCr + BQJdzTj0AhsDBQkDw7M8BQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEBeVpZQE + ZTCrpugH+wZDXYTBFotpQVzQJkCLisLQPv/HckDM3WFY2VOP7is7gvtfAHRFPN1B + JzyAWTUfs1ILlytj/8doSNrE4aVJEsPjzcqWFBB6FpSL8V4iV/JLpXXFyRCIvwHb + U2mhTfWNrCveBMthFlpczwbRjPYk69k+G/3J0wDd/u0OM5gh877jLy/P1nBH5Ser + 9Exg1F5UZLXohMYqDCnebv9XpXvPEi+dCPCIl++srnqhebanjg5zfmAI/favTu9P + wMPrVezKBNzRCJ1jqxu+tho33Egyf2Ly0FAFrzwrH0Y/zXPuM9I2nowYBNQJqAlI + r3WSxw8KzPYnV9jntWyR69Z6V/pLCGGJATMEEAEIAB0WIQQLgn4CBXfMJA//RIJx + t+XUHlPEMwUCXlZtTwAKCRBxt+XUHlPEM7Z/B/9LclnSamy8dToQwPJesEUIRUDR + lY4py7Ku/xJb4sfV8JBYENK/D2mHhLMnu01r9JV/QcqQZylaMDqzMFPFaRLUaAH3 + OCIePwm0PBbL10uFWGyBggR0FiuHsqbJgkuhjlUEWFXA1VzBNB+osCeSPCrHL/0w + doWHQVDNasZqHI0fSLD4nF0T4Xv5s5ydIYr+34GLfRoTjHaOiIAyk5PsAqB5E21A + CZ1Aw3jfQ3QlM47hKSYLWrUxnn+cczUui27qWNDwolltdEn1b9reNrjJyFd2erHt + L2Wowpiec5jiIhFHOWIuFcD1jvZyMs0i9amTAIw1RkOJ4EnLodSZnkIyp1z/uQEN + BF3NOPQBCACniQE1ugguZeM8+8ph9gEq7kGR32FYzA+WRKWqYrxqpZD1wj++Ff/p + 0mX+qqgNb2n456HsdeTtt0KuETb9FFp7wCOLslyNCMhUk6jZQy1mshFtxMk2HE0u + RNqs4sAiYw2sHPHIFI32bh+g7UXjz2wrWnhk/Qskhr9x+PAw+0nhqe4TtI4sblZk + YSy20ZxpF8SIqYZyr/jDE6oGVSgIc5ExnJ2icg3k25frIWqjIi9q5aDhBRFYyLYv + mKG/3Amp69Kuqg8TczUrRgfeHi3T/fnRXBcDXYW6Z2DGjgSoLI8TzbDnTmQ8CZga + ZqtGX0obyLUSbuAdRJbylBbp3VeWAm3FABEBAAGJATwEGAEIACYWIQT1k2y2hwh1 + dyOzo9QXlaWUBGUwqwUCXc049AIbDAUJA8OzPAAKCRAXlaWUBGUwq2AqCACJFCYj + tNBxrc8FvYvEDI7bddpn3MVlxzF7FIFUmVkl994Nny7lArJc54gethaWqlZDaucH + IaCDbjTUOQPwJd76tMWRFYbUjRiFD6VODS0BVDgl4AbysWGgkLgeNy/FUeaoQLqc + Q1VPvivhHgGoUxj8j2Y+W2JNHiof+bMGVwt7Zp/gE1Nrgsthkb9QJfW7qFC2n8p7 + OqnpSBLavblGTdnrOwN7NH7/uwgL/1NkRDuTXQEeKTEBi1ty3j3+Peo0x3mHYlca + GcwHW8AgGgsv5c5RwhdekdlyvvD7WwJrAqtkW7SYKG65vMp/RjSFUNKKN0lknF1b + ZKxxq+6VqcAWsD2r + =/dG1 + -----END PGP PUBLIC KEY BLOCK----- diff --git a/pages/index.yamd b/pages/index.yamd index 044d485..a53fe22 100644 --- a/pages/index.yamd +++ b/pages/index.yamd @@ -1,9 +1,8 @@ title: Home slug: index --- -I am Chris Josten — you might have guessed it from the url. I am a <occupation> at -<institution> right now, with a strong interest in <some jargon>. When I'm not busy with that, -I'm arguing about <hobby that appeals to nerds> and <hobby that appeals to a wider audience>. +I am Chris Josten — you might have guessed it from the url. I am currently studying computer science at +the University of Twente. I have not made any substantial (yet), but [I have written some hobby projects](/projects/). diff --git a/public/static/img/projects/images/harbour-sailfin-2.png b/public/static/img/projects/images/harbour-sailfin-2.png new file mode 100644 index 0000000..62e7466 Binary files /dev/null and b/public/static/img/projects/images/harbour-sailfin-2.png differ diff --git a/public/static/img/projects/images/harbour-sailfin-3.png b/public/static/img/projects/images/harbour-sailfin-3.png new file mode 100644 index 0000000..8141faf Binary files /dev/null and b/public/static/img/projects/images/harbour-sailfin-3.png differ diff --git a/public/static/style/base.css b/public/static/style/base.css index 6719a96..9d12161 100644 --- a/public/static/style/base.css +++ b/public/static/style/base.css @@ -22,6 +22,7 @@ } } + .hide-big { display: none; } @@ -31,6 +32,7 @@ --colour-bg: #f0f0f0; --colour-bg-main: #ddd; --colour-bg-code: #ccc; + --colour-bg-highlight: #f9f890; --colour-fg: #000000; --colour-fg-highlight: #7f0602; --colour-fg-lineno: #111; @@ -45,6 +47,7 @@ --colour-bg: #101010; --colour-bg-main: #333; --colour-bg-code: #222; + --colour-bg-highlight: #727000; --colour-fg: #ffffff; --colour-fg-highlight: #fc918d; --colour-fg-lineno: #ccc; @@ -71,6 +74,12 @@ body > section.header-navigation { padding: 2em; } +@media (pointer: coarse) { + body > section.header-navigation li { + padding: 0.25em 0; + } +} + body > footer { flex: 0 0 200px; padding: 2em; @@ -81,7 +90,6 @@ body > section.header-navigation > header { text-align: center; } - body > section.header-navigation > header > img { width: 100%; max-width: 160px; @@ -176,6 +184,10 @@ dl.project-platforms-technologies { border-bottom: 1px dotted var(--colour-fg); } +dt + dd.tag { + margin-left: 40px; +} + .tag { display: inline-block; background-color: #ccc; @@ -266,3 +278,39 @@ a:hover { color: var(--colour-fg); text-decoration: underline solid; } + +@media print { + body { + background-color: initial; + flex-direction: column; + } + body > section.header-navigation { + display: none; + } + + body > main { + max-width: 100%; + background-color: initial; + border: none; + } + + div.sourceCode, .screenshots, figure { + background-color: initial; + } + + .hide-big { + display: block !important; + } + .hide-small { + display: none !important; + } + + a:after { + content: ' (' attr(href) ')'; + } + + .numberSource a:after { + content: '' + } + +} diff --git a/public/static/style/highlight.css b/public/static/style/highlight.css index 9ca5ccc..48df90f 100644 --- a/public/static/style/highlight.css +++ b/public/static/style/highlight.css @@ -60,3 +60,4 @@ code span.st { color: var(--colour-fg-code-string); } /* String */ code span.va { color: #19177c; } /* Variable */ code span.vs { color: #4070a0; } /* VerbatimString */ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ +code span:target { background-color: var(--colour-bg-highlight); } diff --git a/public/static/style/highlightDark.css b/public/static/style/highlightDark.css new file mode 100644 index 0000000..1cb5dc9 --- /dev/null +++ b/public/static/style/highlightDark.css @@ -0,0 +1,62 @@ +pre > code.sourceCode { white-space: pre; position: relative; } +pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } +pre > code.sourceCode > span:empty { height: 1.2em; } +code.sourceCode > span { color: inherit; text-decoration: inherit; } +div.sourceCode { margin: 1em 0; } +pre.sourceCode { margin: 0; } +@media screen { +div.sourceCode { overflow: auto; } +} +@media print { +pre > code.sourceCode { white-space: pre-wrap; } +pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } +} +pre.numberSource code +{ counter-reset: source-line 0; } +pre.numberSource code > span +{ position: relative; left: -4em; counter-increment: source-line; } +pre.numberSource code > span > a:first-child::before +{ content: counter(source-line); +position: relative; left: -1em; text-align: right; vertical-align: baseline; +border: none; display: inline-block; +-webkit-touch-callout: none; -webkit-user-select: none; +-khtml-user-select: none; -moz-user-select: none; +-ms-user-select: none; user-select: none; +padding: 0 4px; width: 4em; +color: #000000; +} +pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } +div.sourceCode +{ } +@media screen { +pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } +} +code span.al { color: #ff0000; font-weight: bold; } /* Alert */ +code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ +code span.at { color: #7d9029; } /* Attribute */ +code span.bn { color: #40a070; } /* BaseN */ +code span.bu { } /* BuiltIn */ +code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ +code span.ch { color: #4070a0; } /* Char */ +code span.cn { color: #880000; } /* Constant */ +code span.co { color: #60a0b0; font-style: italic; } /* Comment */ +code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ +code span.do { color: #ba2121; font-style: italic; } /* Documentation */ +code span.dt { color: #902000; } /* DataType */ +code span.dv { color: #40a070; } /* DecVal */ +code span.er { color: #ff0000; font-weight: bold; } /* Error */ +code span.ex { } /* Extension */ +code span.fl { color: #40a070; } /* Float */ +code span.fu { color: #06287e; } /* Function */ +code span.im { } /* Import */ +code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ +code span.kw { color: #007020; font-weight: bold; } /* Keyword */ +code span.op { color: #666666; } /* Operator */ +code span.ot { color: #007020; } /* Other */ +code span.pp { color: #bc7a00; } /* Preprocessor */ +code span.sc { color: #4070a0; } /* SpecialChar */ +code span.ss { color: #bb6688; } /* SpecialString */ +code span.st { color: #4070a0; } /* String */ +code span.va { color: #19177c; } /* Variable */ +code span.vs { color: #4070a0; } /* VerbatimString */ +code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ diff --git a/public/static/style/old.css b/public/static/style/old.css index 57f7e54..6eda75d 100644 --- a/public/static/style/old.css +++ b/public/static/style/old.css @@ -4,21 +4,32 @@ body { justify-content: flex-start; } +header { + border-bottom: solid 40px; + border-image: url(old/flames.gif) 0 0 200 0 round round; +} + +footer { + border-top: solid 40px; + border-image: url(old/flames.gif) 200 0 0 round round; +} + a:hover { cursor: url(old/cursor-over.gif), auto; } -body > nav { - background-color: yellow; +.header-navigation { + background-color: cyan; + color: black; } -body > nav ul { +.header-navigation> nav ul { padding-left: 2em; list-style-image: url(old/bullet.gif); } -body > main { - background-color: black; +body main { + background-color: green; color: white; border-image: url(old/skull-border.gif) 33% / 2em round; /*border-left-width: 10px !important; @@ -27,7 +38,7 @@ body > main { .title { width: 100%; - background-color: green; + color: orange; } pre { @@ -35,7 +46,7 @@ pre { } blockquote, .screenshots, code{ - background: #0000ff; + background: darkgreen; border-left: #0000cc 6px solid; } diff --git a/public/static/style/old/flames.gif b/public/static/style/old/flames.gif new file mode 100644 index 0000000..5da33a8 Binary files /dev/null and b/public/static/style/old/flames.gif differ