From 3a1d7848cb3ceb122b573737b4fba8106792ab5d Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Thu, 11 Jul 2024 02:38:39 +0100 Subject: initial commit --- .gitignore | 2 + about.md | 18 + assets/atom.png | Bin 0 -> 4986 bytes assets/background.jpg | Bin 0 -> 187334 bytes assets/cc-by-nc-sa.png | Bin 0 -> 1664 bytes assets/favicon.ico | Bin 0 -> 13081 bytes assets/favicon.svg | 1852 ++++++++++++++++++++++++++++++++++ assets/list.svg | 1852 ++++++++++++++++++++++++++++++++++ assets/logo.svg | 1873 +++++++++++++++++++++++++++++++++++ contact.md | 13 + fonts/Redaction-Bold.woff2 | Bin 0 -> 29684 bytes fonts/Redaction-Italic.woff2 | Bin 0 -> 29212 bytes fonts/Redaction-Regular.woff2 | Bin 0 -> 28392 bytes fonts/Redaction_10-Bold.woff2 | Bin 0 -> 127192 bytes fonts/Redaction_10-Italic.woff2 | Bin 0 -> 152500 bytes fonts/Redaction_10-Regular.woff2 | Bin 0 -> 126552 bytes fonts/Redaction_100-Bold.woff2 | Bin 0 -> 20052 bytes fonts/Redaction_100-Italic.woff2 | Bin 0 -> 20488 bytes fonts/Redaction_100-Regular.woff2 | Bin 0 -> 19504 bytes fonts/Redaction_20-Bold.woff2 | Bin 0 -> 68320 bytes fonts/Redaction_20-Italic.woff2 | Bin 0 -> 78536 bytes fonts/Redaction_20-Regular.woff2 | Bin 0 -> 68996 bytes fonts/Redaction_35-Bold.woff2 | Bin 0 -> 42464 bytes fonts/Redaction_35-Italic.woff2 | Bin 0 -> 50260 bytes fonts/Redaction_35-Regular.woff2 | Bin 0 -> 38876 bytes fonts/Redaction_50-Bold.woff2 | Bin 0 -> 33336 bytes fonts/Redaction_50-Italic.woff2 | Bin 0 -> 35340 bytes fonts/Redaction_50-Regular.woff2 | Bin 0 -> 32972 bytes fonts/Redaction_70-Bold.woff2 | Bin 0 -> 26424 bytes fonts/Redaction_70-Italic.woff2 | Bin 0 -> 30760 bytes fonts/Redaction_70-Regular.woff2 | Bin 0 -> 25064 bytes fonts/flowerfont.ttf | Bin 0 -> 198216 bytes fonts/louise.woff2 | Bin 0 -> 24968 bytes fonts/syne-mono.woff2 | Bin 0 -> 27248 bytes index.html | 1 + infoculture-pub.cabal | 12 + posts/2015-08-12-spqr.md | 60 ++ posts/2015-10-07-rosa-rosa-rosam.md | 47 + posts/2015-11-28-carpe-diem.md | 51 + posts/2015-12-07-tu-quoque.md | 64 ++ site.hs | 161 +++ stack.yaml | 67 ++ stack.yaml.lock | 13 + style.css | 673 +++++++++++++ templates/archives.html | 3 + templates/base.html | 40 + templates/default.html | 33 + templates/post-list.html | 7 + templates/post.html | 30 + templates/sitemap.xml | 23 + templates/tag.html | 4 + templates/thumbs.html | 27 + todo.md | 18 + 53 files changed, 6944 insertions(+) create mode 100644 .gitignore create mode 100644 about.md create mode 100644 assets/atom.png create mode 100644 assets/background.jpg create mode 100644 assets/cc-by-nc-sa.png create mode 100644 assets/favicon.ico create mode 100644 assets/favicon.svg create mode 100644 assets/list.svg create mode 100644 assets/logo.svg create mode 100644 contact.md create mode 100644 fonts/Redaction-Bold.woff2 create mode 100644 fonts/Redaction-Italic.woff2 create mode 100644 fonts/Redaction-Regular.woff2 create mode 100644 fonts/Redaction_10-Bold.woff2 create mode 100644 fonts/Redaction_10-Italic.woff2 create mode 100644 fonts/Redaction_10-Regular.woff2 create mode 100644 fonts/Redaction_100-Bold.woff2 create mode 100644 fonts/Redaction_100-Italic.woff2 create mode 100644 fonts/Redaction_100-Regular.woff2 create mode 100644 fonts/Redaction_20-Bold.woff2 create mode 100644 fonts/Redaction_20-Italic.woff2 create mode 100644 fonts/Redaction_20-Regular.woff2 create mode 100644 fonts/Redaction_35-Bold.woff2 create mode 100644 fonts/Redaction_35-Italic.woff2 create mode 100644 fonts/Redaction_35-Regular.woff2 create mode 100644 fonts/Redaction_50-Bold.woff2 create mode 100644 fonts/Redaction_50-Italic.woff2 create mode 100644 fonts/Redaction_50-Regular.woff2 create mode 100644 fonts/Redaction_70-Bold.woff2 create mode 100644 fonts/Redaction_70-Italic.woff2 create mode 100644 fonts/Redaction_70-Regular.woff2 create mode 100644 fonts/flowerfont.ttf create mode 100644 fonts/louise.woff2 create mode 100644 fonts/syne-mono.woff2 create mode 100644 index.html create mode 100644 infoculture-pub.cabal create mode 100644 posts/2015-08-12-spqr.md create mode 100644 posts/2015-10-07-rosa-rosa-rosam.md create mode 100644 posts/2015-11-28-carpe-diem.md create mode 100644 posts/2015-12-07-tu-quoque.md create mode 100644 site.hs create mode 100644 stack.yaml create mode 100644 stack.yaml.lock create mode 100644 style.css create mode 100644 templates/archives.html create mode 100644 templates/base.html create mode 100644 templates/default.html create mode 100644 templates/post-list.html create mode 100644 templates/post.html create mode 100644 templates/sitemap.xml create mode 100644 templates/tag.html create mode 100644 templates/thumbs.html create mode 100644 todo.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..65d7cc6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +_* +.stack-work diff --git a/about.md b/about.md new file mode 100644 index 0000000..2e8a40f --- /dev/null +++ b/about.md @@ -0,0 +1,18 @@ +--- +title: about +--- + +
+ +## hyper-bs statement + +> info{culture} is a public publication exploring our use of and connection with technology, as well as how we may best harness it with the intentions of artistic and social praxis. + +focusing on: + +- educational materials, handing the powers for self-expression and independence within a global internet back to the user. +- contextualising the cyber landscape as it is now. +- existing, new and potential technologies for grassroots cultivation of online spaces. +- platforming incredible netizens, artists, and projects that bring life to our world wide web. + +
diff --git a/assets/atom.png b/assets/atom.png new file mode 100644 index 0000000..3126c08 Binary files /dev/null and b/assets/atom.png differ diff --git a/assets/background.jpg b/assets/background.jpg new file mode 100644 index 0000000..770ce92 Binary files /dev/null and b/assets/background.jpg differ diff --git a/assets/cc-by-nc-sa.png b/assets/cc-by-nc-sa.png new file mode 100644 index 0000000..ff7d130 Binary files /dev/null and b/assets/cc-by-nc-sa.png differ diff --git a/assets/favicon.ico b/assets/favicon.ico new file mode 100644 index 0000000..4995c16 Binary files /dev/null and b/assets/favicon.ico differ diff --git a/assets/favicon.svg b/assets/favicon.svg new file mode 100644 index 0000000..5ee0ba5 --- /dev/null +++ b/assets/favicon.svg @@ -0,0 +1,1852 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/list.svg b/assets/list.svg new file mode 100644 index 0000000..9365d57 --- /dev/null +++ b/assets/list.svg @@ -0,0 +1,1852 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000..0a53429 --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,1873 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/contact.md b/contact.md new file mode 100644 index 0000000..0800c3c --- /dev/null +++ b/contact.md @@ -0,0 +1,13 @@ +--- +title: contact +--- + +
+ +# contact + +please feel free to contact me if you have anything you feel would be a good fit for the publication. this could be something like web(-culture) related art if you are an artist, perhaps a cool project involving tech democratisation if you are developer, also suggestions, thoughts, really quite about anything! i'd love to hear from you. + +email: contact@infoculture.pub + +
diff --git a/fonts/Redaction-Bold.woff2 b/fonts/Redaction-Bold.woff2 new file mode 100644 index 0000000..392d60d Binary files /dev/null and b/fonts/Redaction-Bold.woff2 differ diff --git a/fonts/Redaction-Italic.woff2 b/fonts/Redaction-Italic.woff2 new file mode 100644 index 0000000..1bd3c5c Binary files /dev/null and b/fonts/Redaction-Italic.woff2 differ diff --git a/fonts/Redaction-Regular.woff2 b/fonts/Redaction-Regular.woff2 new file mode 100644 index 0000000..d187654 Binary files /dev/null and b/fonts/Redaction-Regular.woff2 differ diff --git a/fonts/Redaction_10-Bold.woff2 b/fonts/Redaction_10-Bold.woff2 new file mode 100644 index 0000000..c6bf1b1 Binary files /dev/null and b/fonts/Redaction_10-Bold.woff2 differ diff --git a/fonts/Redaction_10-Italic.woff2 b/fonts/Redaction_10-Italic.woff2 new file mode 100644 index 0000000..1746de1 Binary files /dev/null and b/fonts/Redaction_10-Italic.woff2 differ diff --git a/fonts/Redaction_10-Regular.woff2 b/fonts/Redaction_10-Regular.woff2 new file mode 100644 index 0000000..0095a6a Binary files /dev/null and b/fonts/Redaction_10-Regular.woff2 differ diff --git a/fonts/Redaction_100-Bold.woff2 b/fonts/Redaction_100-Bold.woff2 new file mode 100644 index 0000000..71e0a10 Binary files /dev/null and b/fonts/Redaction_100-Bold.woff2 differ diff --git a/fonts/Redaction_100-Italic.woff2 b/fonts/Redaction_100-Italic.woff2 new file mode 100644 index 0000000..706d8ad Binary files /dev/null and b/fonts/Redaction_100-Italic.woff2 differ diff --git a/fonts/Redaction_100-Regular.woff2 b/fonts/Redaction_100-Regular.woff2 new file mode 100644 index 0000000..cdd97e8 Binary files /dev/null and b/fonts/Redaction_100-Regular.woff2 differ diff --git a/fonts/Redaction_20-Bold.woff2 b/fonts/Redaction_20-Bold.woff2 new file mode 100644 index 0000000..c4e29e5 Binary files /dev/null and b/fonts/Redaction_20-Bold.woff2 differ diff --git a/fonts/Redaction_20-Italic.woff2 b/fonts/Redaction_20-Italic.woff2 new file mode 100644 index 0000000..72fc206 Binary files /dev/null and b/fonts/Redaction_20-Italic.woff2 differ diff --git a/fonts/Redaction_20-Regular.woff2 b/fonts/Redaction_20-Regular.woff2 new file mode 100644 index 0000000..adbe270 Binary files /dev/null and b/fonts/Redaction_20-Regular.woff2 differ diff --git a/fonts/Redaction_35-Bold.woff2 b/fonts/Redaction_35-Bold.woff2 new file mode 100644 index 0000000..737e8be Binary files /dev/null and b/fonts/Redaction_35-Bold.woff2 differ diff --git a/fonts/Redaction_35-Italic.woff2 b/fonts/Redaction_35-Italic.woff2 new file mode 100644 index 0000000..18e54ff Binary files /dev/null and b/fonts/Redaction_35-Italic.woff2 differ diff --git a/fonts/Redaction_35-Regular.woff2 b/fonts/Redaction_35-Regular.woff2 new file mode 100644 index 0000000..52a9ff6 Binary files /dev/null and b/fonts/Redaction_35-Regular.woff2 differ diff --git a/fonts/Redaction_50-Bold.woff2 b/fonts/Redaction_50-Bold.woff2 new file mode 100644 index 0000000..af22835 Binary files /dev/null and b/fonts/Redaction_50-Bold.woff2 differ diff --git a/fonts/Redaction_50-Italic.woff2 b/fonts/Redaction_50-Italic.woff2 new file mode 100644 index 0000000..13e52f0 Binary files /dev/null and b/fonts/Redaction_50-Italic.woff2 differ diff --git a/fonts/Redaction_50-Regular.woff2 b/fonts/Redaction_50-Regular.woff2 new file mode 100644 index 0000000..26ea348 Binary files /dev/null and b/fonts/Redaction_50-Regular.woff2 differ diff --git a/fonts/Redaction_70-Bold.woff2 b/fonts/Redaction_70-Bold.woff2 new file mode 100644 index 0000000..929a599 Binary files /dev/null and b/fonts/Redaction_70-Bold.woff2 differ diff --git a/fonts/Redaction_70-Italic.woff2 b/fonts/Redaction_70-Italic.woff2 new file mode 100644 index 0000000..e97449d Binary files /dev/null and b/fonts/Redaction_70-Italic.woff2 differ diff --git a/fonts/Redaction_70-Regular.woff2 b/fonts/Redaction_70-Regular.woff2 new file mode 100644 index 0000000..4ccafe4 Binary files /dev/null and b/fonts/Redaction_70-Regular.woff2 differ diff --git a/fonts/flowerfont.ttf b/fonts/flowerfont.ttf new file mode 100644 index 0000000..5f9910a Binary files /dev/null and b/fonts/flowerfont.ttf differ diff --git a/fonts/louise.woff2 b/fonts/louise.woff2 new file mode 100644 index 0000000..a69cf15 Binary files /dev/null and b/fonts/louise.woff2 differ diff --git a/fonts/syne-mono.woff2 b/fonts/syne-mono.woff2 new file mode 100644 index 0000000..85edfae Binary files /dev/null and b/fonts/syne-mono.woff2 differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..cc90d6e --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +$partial("templates/thumbs.html")$ \ No newline at end of file diff --git a/infoculture-pub.cabal b/infoculture-pub.cabal new file mode 100644 index 0000000..56ecf2e --- /dev/null +++ b/infoculture-pub.cabal @@ -0,0 +1,12 @@ +name: infoculture-pub +version: 0.1.0.0 +build-type: Simple +cabal-version: >= 1.10 + +executable site + main-is: site.hs + build-depends: base == 4.* + , filepath + , hakyll == 4.16.* + ghc-options: -threaded -rtsopts -with-rtsopts=-N + default-language: Haskell2010 diff --git a/posts/2015-08-12-spqr.md b/posts/2015-08-12-spqr.md new file mode 100644 index 0000000..775b0d2 --- /dev/null +++ b/posts/2015-08-12-spqr.md @@ -0,0 +1,60 @@ +--- +title: S.P.Q.R. +--- + +asdfhskjf +Mauris in lorem nisl. Maecenas tempus facilisis ante, eget viverra nisl +tincidunt et. Donec turpis lectus, mattis ac malesuada a, accumsan eu libero. +Morbi condimentum, tortor et tincidunt ullamcorper, sem quam pretium nulla, id +convallis lectus libero nec turpis. Proin dapibus nisi id est sodales nec +ultrices tortor pellentesque. Vivamus vel nisi ac lacus sollicitudin vulputate +ac ut ligula. Nullam feugiat risus eget eros gravida in molestie sapien euismod. +Nunc sed hendrerit orci. Nulla mollis consequat lorem ac blandit. Ut et turpis +mauris. Nulla est odio, posuere id ullamcorper sit amet, tincidunt vel justo. +Curabitur placerat tincidunt varius. Nulla vulputate, ipsum eu consectetur +mollis, dui nibh aliquam neque, at ultricies leo ligula et arcu. Proin et mi +eget tellus sodales lobortis. Sed tempor, urna vel pulvinar faucibus, lectus +urna vehicula ante, at facilisis dolor odio at lorem. Morbi vehicula euismod +urna, et imperdiet urna ornare vitae. + +Sed tincidunt sollicitudin ultrices. In hac habitasse platea dictumst. Morbi +ligula lectus, egestas at ultricies nec, fringilla et tellus. Duis urna lorem, +bibendum a ornare sed, euismod sed nunc. Aliquam tempor massa at velit fringilla +fringilla. Praesent sit amet tempor felis. Maecenas id felis ac velit aliquam +tempor a sit amet orci. Nunc placerat nulla pellentesque sem commodo cursus. +Praesent quis sapien orci, quis ultricies augue. Nam vestibulum sem non augue +semper tincidunt pellentesque ipsum volutpat. Duis congue, nunc a aliquam +luctus, quam ante convallis nisi, ac pellentesque lacus orci vel turpis. Cum +sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Suspendisse hendrerit nisl eu felis sagittis faucibus. Nunc eu congue +lorem. Quisque non nibh nisi, et ultrices massa. Sed vitae erat vitae nulla +pellentesque fermentum. + +Ut diam nunc, consectetur ut ultrices eu, iaculis sed felis. Sed lacinia, odio +et accumsan luctus, arcu ipsum accumsan erat, sit amet malesuada libero lacus et +velit. Donec accumsan tristique tristique. Proin a metus magna, vitae mattis +nisl. Integer a libero ipsum. Mauris faucibus eleifend metus id sodales. Morbi +ornare, nibh nec facilisis imperdiet, turpis sem commodo lorem, id commodo +mauris metus vitae justo. Etiam at pellentesque tortor. Proin mollis accumsan +ligula, nec tempus augue auctor quis. Nulla lacinia, mi quis lobortis auctor, +nisi diam posuere dui, pulvinar feugiat dui libero eget quam. Fusce eu risus +nunc, a consectetur orci. Class aptent taciti sociosqu ad litora torquent per +conubia nostra, per inceptos himenaeos. Maecenas venenatis aliquet orci, a +ultricies sem facilisis eu. Donec dolor purus, porta condimentum convallis nec, +dignissim nec libero. + +Etiam rutrum ultricies dui, et interdum metus elementum et. Nulla sapien nunc, +interdum tristique porttitor in, laoreet vitae mi. Ut vehicula auctor mauris sit +amet bibendum. Phasellus adipiscing mattis libero, eget adipiscing erat +dignissim at. Vivamus convallis malesuada metus nec cursus. Ut cursus, lorem +eleifend sollicitudin condimentum, felis tortor sodales augue, ac tempus lacus +ipsum vitae quam. Vestibulum vitae lacus non tortor vehicula iaculis faucibus +quis massa. + +Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus +mus. Duis malesuada neque nec ante porttitor accumsan. Suspendisse potenti. +Aliquam in lacus magna, imperdiet laoreet lectus. Praesent id diam nec ante +commodo rhoncus nec vel augue. Pellentesque tortor massa, dignissim ut sagittis +sed, hendrerit vitae nunc. Nam gravida, urna vitae hendrerit rutrum, felis augue +vulputate tortor, ut varius velit libero nec lectus. In adipiscing massa in est +scelerisque ullamcorper. Vivamus in nisi metus. diff --git a/posts/2015-10-07-rosa-rosa-rosam.md b/posts/2015-10-07-rosa-rosa-rosam.md new file mode 100644 index 0000000..594442e --- /dev/null +++ b/posts/2015-10-07-rosa-rosa-rosam.md @@ -0,0 +1,47 @@ +--- +title: Rosa Rosa Rosam +author: Ovidius +--- + +asdhfk +Suspendisse pharetra ullamcorper sem et auctor. Suspendisse vitae tellus eu +turpis dignissim gravida ut ut tortor. Cum sociis natoque penatibus et magnis +dis parturient montes, nascetur ridiculus mus. Morbi aliquam sapien quis nisl +sodales non aliquet nisl iaculis. Curabitur fermentum orci vel sapien +pellentesque id condimentum metus vehicula. Curabitur turpis purus, scelerisque +at interdum quis, placerat sit amet tortor. Aliquam erat volutpat. + +Integer posuere felis non arcu suscipit ullamcorper. Nam tempus risus venenatis +orci sagittis eu aliquam ante tincidunt. Aenean vehicula ipsum id sapien +tincidunt commodo. Aliquam erat volutpat. Curabitur vehicula libero ac turpis +cursus consectetur. Praesent posuere egestas purus et dapibus. Mauris egestas, +lectus vitae scelerisque ultricies, metus lorem tempor nisi, sed vehicula tortor +mauris nec urna. Quisque urna tellus, facilisis at mollis eget, adipiscing in +nisl. Proin quam arcu, euismod et imperdiet sed, ultricies sed orci. + +Nulla malesuada sem eget lectus scelerisque nec rhoncus metus interdum. In dui +felis, rhoncus id scelerisque eget, vulputate id sem. Nulla facilisi. Vestibulum +eleifend, metus dignissim lacinia ornare, magna nulla vehicula nisi, sed +molestie mauris ipsum vel turpis. Class aptent taciti sociosqu ad litora +torquent per conubia nostra, per inceptos himenaeos. Nulla urna leo, vehicula +eget dignissim a, hendrerit ut risus. Fusce ultricies elementum placerat. Nam at +dolor sed nisi mollis sollicitudin vitae at urna. Vestibulum iaculis adipiscing +eros et mollis. + +Phasellus ultricies elit eu risus sagittis eu dictum ante ultrices. Nulla +congue, augue ac placerat tempor, orci mi luctus nisi, at varius ipsum sem sed +eros. Vivamus eget velit eget felis posuere ornare. In sed metus non est iaculis +facilisis dapibus sit amet enim. Aliquam viverra tortor eget neque volutpat in +auctor urna rutrum. Aliquam ligula augue, congue sit amet rutrum in, semper vel +nulla. Sed tempus porttitor faucibus. Donec cursus sodales nulla, quis lacinia +mi vehicula vel. Sed nec purus orci. Nam leo sapien, rutrum a ultrices quis, +placerat vel ligula. Donec massa quam, pellentesque et molestie nec, hendrerit +id mauris. In hac habitasse platea dictumst. Cras quis quam sem. Curabitur in +arcu diam, in interdum mauris. + +Proin lorem sapien, iaculis et faucibus nec, dictum sed nunc. Pellentesque in +purus justo. Vestibulum facilisis rutrum nisi, a egestas nunc suscipit sed. Ut +quis tortor a arcu bibendum placerat non sed ante. Praesent orci sem, posuere +sit amet cursus molestie, volutpat ut purus. Curabitur aliquam, purus in +pharetra viverra, lorem leo aliquam tellus, vel consequat felis neque et mauris. +Aliquam erat volutpat. diff --git a/posts/2015-11-28-carpe-diem.md b/posts/2015-11-28-carpe-diem.md new file mode 100644 index 0000000..2c6e488 --- /dev/null +++ b/posts/2015-11-28-carpe-diem.md @@ -0,0 +1,51 @@ +--- +title: Carpe Diem +--- + +asdfjh +Fusce tortor quam, egestas in posuere quis, porttitor vel turpis. Donec +vulputate porttitor augue at rhoncus. Proin iaculis consectetur sagittis. +Curabitur venenatis turpis sit amet purus tristique nec posuere risus laoreet. +Nullam nisi sem, dapibus id semper id, egestas vel arcu. Morbi porttitor ipsum +placerat erat consequat sed consequat purus feugiat. Donec auctor elit ut risus +mattis facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + +Proin vulputate sapien facilisis leo ornare pulvinar. Fusce tempus massa a risus +semper iaculis. Suspendisse sollicitudin posuere nunc, sit amet rutrum leo +facilisis mattis. Sed ornare auctor dui, vitae rutrum neque auctor sit amet. +Proin ac dui magna. Mauris vehicula interdum augue, nec ultrices libero egestas +quis. Nunc convallis euismod ipsum, id sollicitudin orci consequat ac. Fusce +bibendum congue libero, in rutrum nulla congue non. Cras sit amet risus tortor, +eu pellentesque dui. Phasellus euismod enim non nibh sodales quis consectetur +lorem laoreet. Vivamus a egestas quam. Curabitur in tortor augue, vitae varius +tellus. Integer varius, elit ac gravida suscipit, eros erat pellentesque nisi, +et tristique augue odio id nulla. Aliquam sit amet nunc vel tellus hendrerit +tempus ac vel sem. + +Aenean tincidunt sollicitudin sapien ut porttitor. Curabitur molestie adipiscing +lorem vel scelerisque. Donec vitae interdum est. Proin rutrum vulputate +faucibus. Suspendisse sit amet felis odio, non volutpat ante. Sed eu lectus +quam. Curabitur tristique rhoncus est, vel commodo tortor suscipit semper. +Maecenas feugiat vestibulum nisi id facilisis. Nulla non tincidunt libero. +Praesent ultrices interdum commodo. Sed euismod nisl auctor leo ultrices rutrum. +Aliquam nibh felis, congue molestie blandit at, bibendum at eros. Aenean +tincidunt, tortor iaculis placerat sollicitudin, lorem justo tempor diam, et +posuere sapien leo et magna. Quisque vel aliquam mauris. + +Proin varius tempus fermentum. Cum sociis natoque penatibus et magnis dis +parturient montes, nascetur ridiculus mus. Sed tincidunt nunc id magna +adipiscing non sollicitudin turpis tempor. Etiam vel elit ipsum, quis euismod +velit. Quisque elementum magna vitae quam venenatis lacinia. Sed at arcu ipsum. +Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos +himenaeos. Donec ut lorem ac sapien cursus lacinia sit amet mollis dolor. +Vivamus tempus odio nec magna faucibus sed hendrerit lorem tempor. + +Vestibulum eu nisi arcu. Curabitur nisi risus, fermentum ut lacinia ut, interdum +nec magna. Nunc aliquet gravida massa, eu aliquam lorem faucibus at. Sed +sollicitudin volutpat velit id tempor. In nibh justo, pharetra et pretium +dignissim, tempus in turpis. Phasellus eget lobortis nisl. Phasellus sed +fermentum diam. Nam tempus pharetra odio, quis congue eros imperdiet eu. Aliquam +dui eros, hendrerit et vulputate vel, porta eu eros. Nullam nisi dui, commodo +eget pharetra ut, ornare sit amet nunc. Fusce vel neque urna. Maecenas nulla +ante, egestas at consequat quis, fermentum a enim. Aliquam id tristique urna. +Integer augue justo, scelerisque et consectetur id, rhoncus eget enim. diff --git a/posts/2015-12-07-tu-quoque.md b/posts/2015-12-07-tu-quoque.md new file mode 100644 index 0000000..e9b32a0 --- /dev/null +++ b/posts/2015-12-07-tu-quoque.md @@ -0,0 +1,64 @@ +--- +title: Tu Quoque +thumbnail: '' +subtitle: this is the subtitle omg +tags: lol, omg, slay +author: celeste_🌸 +--- + +asdf +Vestibulum leo turpis, dignissim quis ultrices sit amet, iaculis ac ligula. +Pellentesque tristique, velit eget scelerisque scelerisque, est dolor ultrices +arcu, quis ullamcorper justo arcu luctus mauris. Integer congue molestie nisi id +posuere. Fusce pellentesque gravida tempus. Integer viverra tortor nec eros +mollis quis convallis sem laoreet. Nulla id libero ac erat varius laoreet. Proin +sed est est. Curabitur lacinia fermentum lorem, elementum malesuada ipsum +malesuada ut. Donec suscipit elit id leo vehicula mattis non sed leo. Morbi +varius eleifend varius. Nulla vestibulum, neque vitae aliquam eleifend, nisi +tellus placerat nunc, quis suscipit elit turpis eu tortor. Etiam euismod +convallis lectus quis venenatis. Phasellus laoreet magna in nibh cursus eu +egestas nulla convallis. Aliquam vel ullamcorper risus. Fusce dictum, massa id +consequat viverra, nulla ante tristique est, a faucibus nisi enim nec dui. Donec +metus ligula, condimentum at porttitor eget, lobortis at quam. + + + +Aenean vel libero in magna ultricies congue in a odio. Donec faucibus rutrum +ornare. Fusce dictum eleifend fermentum. Vestibulum vel nibh a metus porttitor +rhoncus. Pellentesque id quam neque, eget molestie arcu. Integer in elit vel +neque viverra ultricies in eget massa. Nam ut convallis est. Pellentesque eros +eros, sodales non vehicula et, tincidunt ut odio. Cras suscipit ultrices metus +sit amet molestie. Fusce enim leo, vehicula sed sodales quis, adipiscing at +ipsum. + +Nunc tempor dignissim enim, sed tincidunt eros bibendum quis. Curabitur et dolor +augue, id laoreet mi. Nulla cursus felis id dui vehicula vitae ornare lorem +blandit. Cras eget dui nec odio volutpat pharetra. Fusce hendrerit justo justo, +vel imperdiet enim. Vivamus elit risus, interdum ultrices accumsan eleifend, +vestibulum vitae sapien. Integer bibendum ullamcorper tristique. Nulla quis odio +lectus, quis eleifend augue. Integer a ligula mauris. Aenean et tempus tortor. +Quisque at tortor mi. Vivamus accumsan feugiat est a blandit. Sed vitae enim ut +dolor semper sodales. Duis tristique, ante et placerat elementum, nulla tellus +pellentesque sapien, quis posuere velit mi eget nulla. Sed vestibulum nunc non +est porttitor ut rutrum nibh semper. Pellentesque habitant morbi tristique +senectus et netus et malesuada fames ac turpis egestas. + +Nulla adipiscing ultricies lobortis. Vivamus iaculis nisl vitae tellus laoreet +vitae aliquet lacus mollis. Phasellus ut lacus urna, sed sagittis ante. Etiam +consectetur pretium nisl sed dignissim. Pellentesque convallis, nisl eget +commodo mollis, sem magna consequat arcu, sed pretium ipsum arcu sit amet neque. +Aliquam erat volutpat. Morbi sed mi sed urna vestibulum placerat vitae vel +metus. Fusce ac ante at justo pharetra vehicula. Vivamus vel tortor eget augue +aliquet aliquet at vel odio. Nunc venenatis, magna quis facilisis fringilla, +augue tellus varius neque, in vulputate est eros ut tortor. Duis lorem neque, +aliquam congue posuere id, condimentum non dui. Phasellus ut dui massa, +porttitor suscipit augue. Praesent quis tellus quam, vel volutpat metus. Vivamus +enim est, aliquam in imperdiet et, sagittis eu ligula. Vestibulum hendrerit +placerat orci et aliquet. Cras pharetra, dolor placerat lobortis tempor, metus +odio cursus ligula, et posuere lacus ligula quis dui. + +Donec a lectus eu nibh malesuada aliquam. Proin at metus quam, et tincidunt leo. +Quisque lacus justo, scelerisque sodales pulvinar sed, dignissim ut sapien. +Vivamus diam felis, adipiscing sollicitudin ultricies id, accumsan ac felis. In +eu posuere ligula. Suspendisse potenti. Donec porttitor dictum dui id vehicula. +Integer ante velit, congue id dictum et, adipiscing a tortor. diff --git a/site.hs b/site.hs new file mode 100644 index 0000000..b8ad4b3 --- /dev/null +++ b/site.hs @@ -0,0 +1,161 @@ +-------------------------------------------------------------------------------- +{-# LANGUAGE OverloadedStrings #-} +import Data.Monoid (mappend) +import System.FilePath ((), (<.>), splitExtension, splitFileName, takeDirectory) +import Hakyll + + +-------------------------------------------------------------------------------- +main :: IO () +main = hakyll $ do + match "assets/*" $ do + route idRoute + compile copyFileCompiler + + match "fonts/*" $ do + route idRoute + compile copyFileCompiler + + match "files/*" $ do + route idRoute + compile copyFileCompiler + + + match "style.css" $ do + route idRoute + compile compressCssCompiler + + match (fromList ["about.md", "contact.md"]) $ do + route $ setExtension "html" `composeRoutes` appendIndex + compile $ pandocCompiler + >>= loadAndApplyTemplate "templates/base.html" defaultContext + >>= relativizeUrls + + -- build up tags + tags <- buildTags "posts/*" (fromCapture "tags/*.html") + tagsRules tags $ \tag pattern -> do + let title = "posts tagged \"" ++ tag ++ "\"" + route appendIndex + compile $ do + posts <- recentFirst =<< loadAll pattern + let ctx = constField "title" title + `mappend` listField "posts" (postCtxWithTags tags) (return posts) + `mappend` defaultContext + + makeItem "" + >>= loadAndApplyTemplate "templates/tag.html" ctx + >>= loadAndApplyTemplate "templates/base.html" ctx + >>= relativizeUrls + + match "posts/*" $ do + route $ setExtension "html" `composeRoutes` + dateFolders `composeRoutes` + appendIndex + compile $ pandocCompiler + >>= saveSnapshot "article-text" + >>= loadAndApplyTemplate "templates/post.html" (postCtxWithTags tags) + >>= saveSnapshot "content" + >>= loadAndApplyTemplate "templates/base.html" (postCtxWithTags tags) + >>= relativizeUrls + + match "posts/*" $ version "raw" $ do + route idRoute + compile getResourceBody + + create ["archives.html"] $ do + route appendIndex + compile $ do + posts <- recentFirst =<< loadAll ("posts/*" .&&. hasNoVersion) + let archiveCtx = + listField "posts" postCtx (return posts) `mappend` + constField "title" "archives" `mappend` + defaultContext + + makeItem "" + >>= loadAndApplyTemplate "templates/archives.html" archiveCtx + >>= loadAndApplyTemplate "templates/base.html" archiveCtx + >>= relativizeUrls + + + match "index.html" $ do + route idRoute + compile $ do + posts <- recentFirst =<< loadAllSnapshots ("posts/*" .&&. hasNoVersion) "article-text" + let indexCtx = + listField "posts" postCtx (return posts) `mappend` + defaultContext + + getResourceBody + >>= applyAsTemplate indexCtx + >>= loadAndApplyTemplate "templates/base.html" indexCtx + >>= relativizeUrls + + match "templates/*" $ compile templateBodyCompiler + + create ["feed.xml"] $ do + route idRoute + compile $ do + let feedCtx = postCtx `mappend` bodyField "description" + posts <- fmap (take 10) . recentFirst =<< + loadAllSnapshots ("posts/*" .&&. hasNoVersion) "content" + renderAtom feedConfig feedCtx posts + + create ["sitemap.xml"] $ do + route idRoute + compile $ do + -- load and sort the posts + posts <- recentFirst =<< loadAll "posts/*" + + -- load individual pages from a list (globs DO NOT work here) + singlePages <- loadAll (fromList ["about.md", "contact.md", "archives.html", "feed.xml"]) + + -- mappend the posts and singlePages together + let pages = posts <> singlePages + + -- create the `pages` field with the postCtx + -- and return the `pages` value for it + sitemapCtx = + constField "root" root <> + listField "pages" postCtx (return pages) + + -- make the item and apply our sitemap template + makeItem "" + >>= loadAndApplyTemplate "templates/sitemap.xml" sitemapCtx + + +-------------------------------------------------------------------------------- +postCtx :: Context String +postCtx = + constField "root" root `mappend` + dateField "date" "%Y-%m-%d" `mappend` + dropIndexHtml "url" `mappend` + defaultContext + +postCtxWithTags :: Tags -> Context String +postCtxWithTags tags = tagsField "tags" tags `mappend` postCtx + +appendIndex :: Routes +appendIndex = customRoute $ + (\(p, e) -> p "index" <.> e) . splitExtension . toFilePath + +dropIndexHtml :: String -> Context a +dropIndexHtml key = mapContext transform (urlField key) where + transform url = case splitFileName url of + (p, "index.html") -> takeDirectory p + _ -> url + +dateFolders :: Routes +dateFolders = + gsubRoute "/[0-9]{4}-[0-9]{2}-[0-9]{2}-" $ replaceAll "-" (const "/") + +root :: String +root = "https://infoculture.pub" + +feedConfig :: FeedConfiguration +feedConfig = FeedConfiguration + { feedTitle = "info{culture}" + , feedDescription = "cultivating informatics" + , feedAuthorName = "cel ❀" + , feedAuthorEmail = "cel@infoculture.pub" + , feedRoot = "https://infoculture.pub" + } diff --git a/stack.yaml b/stack.yaml new file mode 100644 index 0000000..5c09c2f --- /dev/null +++ b/stack.yaml @@ -0,0 +1,67 @@ +# This file was automatically generated by 'stack init' +# +# Some commonly used options have been documented as comments in this file. +# For advanced use and comprehensive documentation of the format, please see: +# https://docs.haskellstack.org/en/stable/yaml_configuration/ + +# Resolver to choose a 'specific' stackage snapshot or a compiler version. +# A snapshot resolver dictates the compiler version and the set of packages +# to be used for project dependencies. For example: +# +# resolver: lts-22.21 +# resolver: nightly-2024-05-06 +# resolver: ghc-9.6.5 +# +# The location of a snapshot can be provided as a file or url. Stack assumes +# a snapshot provided as a file might change, whereas a url resource does not. +# +# resolver: ./custom-snapshot.yaml +# resolver: https://example.com/snapshots/2023-01-01.yaml +resolver: + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/28.yaml + +# User packages to be built. +# Various formats can be used as shown in the example below. +# +# packages: +# - some-directory +# - https://example.com/foo/bar/baz-0.0.2.tar.gz +# subdirs: +# - auto-update +# - wai +packages: +- . +# Dependency packages to be pulled from upstream that are not in the resolver. +# These entries can reference officially published versions as well as +# forks / in-progress versions pinned to a git hash. For example: +# +# extra-deps: +# - acme-missiles-0.3 +# - git: https://github.com/commercialhaskell/stack.git +# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a +# +# extra-deps: [] + +# Override default flag values for local packages and extra-deps +# flags: {} + +# Extra package databases containing global packages +# extra-package-dbs: [] + +# Control whether we use the GHC we find on the path +# system-ghc: true +# +# Require a specific version of Stack, using version ranges +# require-stack-version: -any # Default +# require-stack-version: ">=2.15" +# +# Override the architecture used by Stack, especially useful on Windows +# arch: i386 +# arch: x86_64 +# +# Extra directories used by Stack for building +# extra-include-dirs: [/path/to/dir] +# extra-lib-dirs: [/path/to/dir] +# +# Allow a newer minor version of GHC than the snapshot specifies +# compiler-check: newer-minor diff --git a/stack.yaml.lock b/stack.yaml.lock new file mode 100644 index 0000000..d38dbd9 --- /dev/null +++ b/stack.yaml.lock @@ -0,0 +1,13 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: [] +snapshots: +- completed: + sha256: 87da71cb0ae9ee1ea1bf51a8eb9812f39f779be76abc0a3c926defd8afda05d1 + size: 719139 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/28.yaml + original: + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/28.yaml diff --git a/style.css b/style.css new file mode 100644 index 0000000..e562bca --- /dev/null +++ b/style.css @@ -0,0 +1,673 @@ +html { + font-size: 14pt; + background-image: url("/assets/background.jpg"); + background-size: cover; + background-attachment: fixed; + width: 100vw; + height: 100vh; + color: #e3b69b; + background-color: #06360f; + font-family: 'Flowerfont', Redaction; +} + +* { + word-break: break-word !important; + overflow-wrap: break-word !important; +} + +body { + margin: 10vh auto; + padding: 2vw; + max-width: 1200px; +} + +h1 { + font-size: 2.5rem; +} + +h1, +blockquote { + font-family: 'Flowerfont', 'Syne Mono'; + color: #6bc7df +} + +h2 { + font-size: 1.5rem; + font-family: 'Flowerfont', Louise; + color: #ffbc05; +} + +h3 { + font-family: 'Flowerfont', 'Syne Mono'; +} + +ul { + list-style-image: url("/assets/list.svg"); +} + +pre { + width: 100%; + white-space: pre-wrap; + overflow: auto; + border: 1px solid #e8cdcf; +} + +.meta { + display: flex; + flex-direction: column; + align-items: flex-end; +} + +.meta h2, +.meta h3 { + margin: 0; +} + +.post-list { + font-family: 'Syne Mono'; + /* text-shadow: 0px 0px 2px #e3b69b; */ + filter: drop-shadow(0px 0px 2px #e3b69b); +} + +.post-list a:hover { + /* text-shadow: 0px 0px 4px #e3b69b; */ + filter: drop-shadow(0px 0px 1px #e3b69b); +} + +#public-license:hover { + position: relative; +} + +#public-license:hover:after { + content: url("/assets/cc-by-nc-sa.png"); + /* no need for qoutes */ + display: block; + position: absolute; + left: 0px; + /* change this value to one that suits you */ + top: -31px; + /* change this value to one that suits you */ +} + +#statement { + font-size: 2rem; +} + +#statement .infoculture { + text-shadow: 0px 0px 4px #e3b69b; +} + +#statement .bracket { + color: #06360f; + font-family: 'Louise'; +} + +#statement .culture { + color: #ffbc05; + font-family: 'Louise'; +} + +header img { + filter: drop-shadow(0px 0px 1px #e3b69b); + max-width: 80vw; +} + +nav { + filter: drop-shadow(0px 0px 4px #e3b69b); + background-color: #06360f; + border: 4px groove #800080; + padding: 1vw; + margin-bottom: 2vw; +} + +nav ul { + display: flex; + /* justify-content: flex-end; */ + /* justify-content: space-between; */ + gap: 2vw; + list-style: none; + list-style-image: none; + padding-left: 0; + margin: 0; + flex-wrap: wrap; + align-items: center; +} + +#atom-badge { + flex-grow: 1; +} + +#atom-badge a { + float: right; +} + +.title { + display: flex; + flex-wrap: wrap; + align-items: baseline; + gap: 0 1em; +} + +.title * { + margin: 0; +} + +.thumbs { + display: flex; + /* flex-direction: column; */ + /* justify-content: space-around; */ + align-items: center; + flex-wrap: wrap; + gap: 2vw; +} + +.thumb { + flex: 1 1 auto; +} + +.thumb-title a { + display: flex; + flex-wrap: wrap; + gap: 0em 1em; + align-items: baseline; + justify-content: flex-end; + filter: drop-shadow(0px 0px 1px #e3b69b); +} + +.thumb-title a>* { + color: #d1a2e7; + margin: 0; +} + +.thumb-title a h3 { + float: right; +} + +.thumb-title a:hover { + filter: drop-shadow(0px 0px 2px #e3b69b); +} + +#atom-badge { + font-size: 1px; +} + +article { + display: flex; + flex-direction: column; + /* align-items: center; */ + gap: 2vw; +} + +.thumb.panel { + padding: 2vw; + /* margin: auto; */ +} + +.thumbnail { + filter: drop-shadow(0px 0px 4px #e3b69b); + border: 4px groove #800080; + padding: 0vw; +} + +.thumbnail>* { + width: 100%; + height: 100%; +} + +.panel { + filter: drop-shadow(0px 0px 4px #e3b69b); + background-color: #06360f; + border: 4px groove #800080; + padding: 8vw; +} + +a { + color: #d1a2e7; +} + +/**************/ +/* */ +/* code */ +/* */ +/**************/ +/* https://github.com/jaspervdj/hakyll/blob/master/web/css/syntax.css */ + +a.sourceLine { + display: inline-block; + line-height: 1.25; +} + +a.sourceLine { + pointer-events: none; + color: inherit; + text-decoration: inherit; +} + +a.sourceLine:empty { + height: 1.2em; +} + +.sourceCode { + overflow: visible; +} + +code.sourceCode { + white-space: pre; + position: relative; +} + +div.sourceCode { + margin: 1em 0; +} + +pre.sourceCode { + margin: 0; +} + +@media screen { + div.sourceCode { + overflow: auto; + } +} + +@media print { + code.sourceCode { + white-space: pre-wrap; + } + + a.sourceLine { + text-indent: -1em; + padding-left: 1em; + } +} + +pre.numberSource a.sourceLine { + position: relative; + left: -4em; +} + +pre.numberSource a.sourceLine::before { + content: attr(title); + position: relative; + left: -1em; + text-align: right; + vertical-align: baseline; + border: none; + pointer-events: all; + 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: #aaaaaa; +} + +pre.numberSource { + margin-left: 3em; + border-left: 1px solid #aaaaaa; + padding-left: 4px; +} + +div.sourceCode {} + +@media screen { + a.sourceLine::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 */ + +/***************/ +/* */ +/* fonts */ +/* */ +/***************/ + +@font-face { + font-family: 'Flowerfont'; + src: url('/fonts/flowerfont.ttf'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Syne Mono'; + src: url('/fonts/syne-mono.woff2'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Louise'; + src: url('/fonts/louise.woff2'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction'; + src: url('/fonts/Redaction-Bold.woff2') format('woff2'); + font-weight: bold; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 10'; + src: url('/fonts/Redaction_10-Regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 50'; + src: url('/fonts/Redaction_50-Regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 70'; + src: url('/fonts/Redaction_70-Italic.woff2') format('woff2'); + font-weight: normal; + font-style: italic; + font-display: block; +} + +@font-face { + font-family: 'Redaction'; + src: url('/fonts/Redaction-Italic.woff2') format('woff2'); + font-weight: normal; + font-style: italic; + font-display: block; +} + +@font-face { + font-family: 'Redaction'; + src: url('/fonts/Redaction-Regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 10'; + src: url('/fonts/Redaction_10-Italic.woff2') format('woff2'); + font-weight: normal; + font-style: italic; + font-display: block; +} + +@font-face { + font-family: 'Redaction 35'; + src: url('/fonts/Redaction_35-Regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 50'; + src: url('/fonts/Redaction_50-Italic.woff2') format('woff2'); + font-weight: normal; + font-style: italic; + font-display: block; +} + +@font-face { + font-family: 'Redaction 70'; + src: url('/fonts/Redaction_70-Bold.woff2') format('woff2'); + font-weight: bold; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 20'; + src: url('/fonts/Redaction_20-Regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 100'; + src: url('/fonts/Redaction_100-Regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 50'; + src: url('/fonts/Redaction_50-Bold.woff2') format('woff2'); + font-weight: bold; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 100'; + src: url('/fonts/Redaction_100-Italic.woff2') format('woff2'); + font-weight: normal; + font-style: italic; + font-display: block; +} + +@font-face { + font-family: 'Redaction 35'; + src: url('/fonts/Redaction_35-Bold.woff2') format('woff2'); + font-weight: bold; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 20'; + src: url('/fonts/Redaction_20-Italic.woff2') format('woff2'); + font-weight: normal; + font-style: italic; + font-display: block; +} + +@font-face { + font-family: 'Redaction 10'; + src: url('/fonts/Redaction_10-Bold.woff2') format('woff2'); + font-weight: bold; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 35'; + src: url('/fonts/Redaction_35-Italic.woff2') format('woff2'); + font-weight: normal; + font-style: italic; + font-display: block; +} + +@font-face { + font-family: 'Redaction 100'; + src: url('/fonts/Redaction_100-Bold.woff2') format('woff2'); + font-weight: bold; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 70'; + src: url('/fonts/Redaction_70-Regular.woff2') format('woff2'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +@font-face { + font-family: 'Redaction 20'; + src: url('/fonts/Redaction_20-Bold.woff2') format('woff2'); + font-weight: bold; + font-style: normal; + font-display: block; +} \ No newline at end of file diff --git a/templates/archives.html b/templates/archives.html new file mode 100644 index 0000000..2398a94 --- /dev/null +++ b/templates/archives.html @@ -0,0 +1,3 @@ +
+ $partial("templates/post-list.html")$ +
\ No newline at end of file diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..c818385 --- /dev/null +++ b/templates/base.html @@ -0,0 +1,40 @@ + + + + + + + + $if(title)$ + info{culture} - $title$ + $else$ + info{culture} + $endif$ + + + + + +
+ infoculture +
+ + + + $body$ + + + + + \ No newline at end of file diff --git a/templates/default.html b/templates/default.html new file mode 100644 index 0000000..e91badc --- /dev/null +++ b/templates/default.html @@ -0,0 +1,33 @@ + + + + + + + My Hakyll Blog - $title$ + + + +
+ + +
+ +
+

$title$

+ $body$ +
+ + + + diff --git a/templates/post-list.html b/templates/post-list.html new file mode 100644 index 0000000..22fcc2f --- /dev/null +++ b/templates/post-list.html @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/templates/post.html b/templates/post.html new file mode 100644 index 0000000..77986ae --- /dev/null +++ b/templates/post.html @@ -0,0 +1,30 @@ +
+
+ $if(thumbnail)$ +
$thumbnail$
+ $endif$ +
+
+
+

$title$

+ permalink + raw +
+
+ $if(author)$ +

$author$

+ $endif$ +

$date$

+ $if(tags)$ +

$tags$

+ $endif$ +
+
+
+
+
+ $body$ +
+
+
+
\ No newline at end of file diff --git a/templates/sitemap.xml b/templates/sitemap.xml new file mode 100644 index 0000000..1ff6a8e --- /dev/null +++ b/templates/sitemap.xml @@ -0,0 +1,23 @@ + + + + $root$ + daily + 1.0 + +$for(pages)$ + + $root$$url$ + $if(updated)$$updated$$else$$if(date)$$date$$endif$$endif$ + weekly + 0.8 + +$endfor$ + diff --git a/templates/tag.html b/templates/tag.html new file mode 100644 index 0000000..3909f17 --- /dev/null +++ b/templates/tag.html @@ -0,0 +1,4 @@ +
+

$title$

+ $partial("templates/post-list.html")$ +
\ No newline at end of file diff --git a/templates/thumbs.html b/templates/thumbs.html new file mode 100644 index 0000000..91cfd74 --- /dev/null +++ b/templates/thumbs.html @@ -0,0 +1,27 @@ +
+ $for(posts)$ +
+ $if(thumbnail)$ +
$thumbnail$
+
+ $endif$ + + $if(subtitle)$ +
+ $subtitle$ +
+ $endif$ +
+ $endfor$ +
\ No newline at end of file diff --git a/todo.md b/todo.md new file mode 100644 index 0000000..13203eb --- /dev/null +++ b/todo.md @@ -0,0 +1,18 @@ +[x] permalink and raw +[x] add contact details +[x] tags +[x] clean urls +[x] homepage + [x] thumbnails +[x] fonts + [x] flowerfont +[x] text-wrap issues +[x] sitemap.xml +[ ] remove placeholders + +later: +[ ] teasers +[ ] fun homepage design +[ ] author pages +[ ] tags filter +[ ] add tags to sitemap? -- cgit