diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..1c2ede5 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,11 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +Blog: [] +Categories: [] +Tags: [] +Image: +Type: +draft: false +--- diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..c38abaa --- /dev/null +++ b/config.toml @@ -0,0 +1,133 @@ +baseURL = "https://sakino.kelbie.scot" +languageCode = "en-gb" +title = "Sakino Kelbie" +theme=["nipponalba"] +summarylength=20 +enableEmoji=true +defaultContentLanguage="en" + +[outputs] + home = ["html", "rss"] # default = ["HTML", "RSS"] + section = ["html", "rss"] # default = ["HTML", "RSS"] + taxonomy = ["html", "rss"] # default = ["HTML", "RSS"] + term = ["html", "rss"] # default = ["HTML", "RSS"] + +[markup] + [markup.goldmark] + [markup.goldmark.extensions] + definitionList = true + footnote = true + linkify = true + strikethrough = true + table = true + taskList = true + typographer = true + [markup.goldmark.parser] + attribute = true + autoHeadingID = true + autoHeadingIDType = "github" + [markup.goldmark.renderer] + hardWraps = false + unsafe = false + xhtml = false + +[taxonomies] +blog = "blog" +image = "image" +tag = "tag" +category = "category" +type = "type" +like-of = "like-of" +in-reply-to = "in-reply-to" +repost-of = "repost-of" +bookmark-of = "bookmark-of" +posttype = "posttype" +slug = "slug" + +[params] +title = "Sakino's Place" +author = "Sakino Kelbie󠁧󠁢󠁳󠁣󠁴󠁿" +firstname = "Sakino" +profilePicture = "images/profile1.jpg" +siteLogo = "" +keywords = "" +favicon = "images/" +pronouns = "she/her" + +[languages.en.Params] + +description = "Dedicated Dad" + +[languages.jp.Params] +description = "日本語の紹介を書くーQuintessentially Celtic, vehemently Viking, passionately European, unashamedly, proudly Scottish, craft beer and single malt whisky lover, enthusiastic cook, vegan, perpetually exhausted dad, pronouns: he/him" + +## Social Links +[[params.socialIcons]] +icon = "fa fa-envelope-o fa-2x fa-fw" +title = "e-mail" +url = "mailto:sakino@kelbie.scot" + +[languages.en] +weight = 0 +languageName = "English" + +[[languages.en.menu.main]] +name="Home" +weight= 100 +url = "/" + +[[languages.en.menu.main]] +name = "Blogs" +weight = 200 +url = "/blog/" + +[[languages.en.menu.main]] +name = "Articles" +weight = 300 +url = "/article/" + +[[languages.en.menu.main]] +name = "Notes" +weight = 400 +url = "/note/" + +[[languages.en.menu.main]] +name = "Photos" +weight = 500 +url = "/photo/" + +[[languages.en.menu.main]] +name = "Bookmarks" +weight = 600 +url = "/bookmarks/" + +[[languages.en.menu.main]] +name = "Résumé" +weight = 700 +url = "/resume/" +identifier = "resume" + +[[languages.en.menu.main]] +name = "Feeds" +weight = 800 +url = "/feeds/" +identifier = "feeds" + +[languages.jp] +weight = 10 +languageName = "日本語" + +[[languages.jp.menu.main]] +name="ホーム" +weight= 100 +url = "/jp/" + +[[languages.jp.menu.main]] +name = "全部のブログ" +weight = 200 +url = "/jp/blog/" + +[[languages.jp.menu.main]] +name = "記事" +weight = 300 +url = "/jp/article/" diff --git a/static/fonts/forkawesome-webfont.woff2 b/static/fonts/forkawesome-webfont.woff2 new file mode 100644 index 0000000..de1fc09 Binary files /dev/null and b/static/fonts/forkawesome-webfont.woff2 differ diff --git a/themes/nipponalba/archetypes/post.md b/themes/nipponalba/archetypes/post.md new file mode 100644 index 0000000..929e6f8 --- /dev/null +++ b/themes/nipponalba/archetypes/post.md @@ -0,0 +1,15 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +Description: "" +Blog: + - +category: + - +tag: + - +Image: + - +posttype: +draft: +--- diff --git a/themes/nipponalba/layouts/404.html b/themes/nipponalba/layouts/404.html new file mode 100644 index 0000000..e67890d --- /dev/null +++ b/themes/nipponalba/layouts/404.html @@ -0,0 +1,6 @@ + +{{- define "main" -}} +
+

The page you are looking for is missing

+
+{{- end -}} \ No newline at end of file diff --git a/themes/nipponalba/layouts/_default/backup_single.html b/themes/nipponalba/layouts/_default/backup_single.html new file mode 100644 index 0000000..60c366a --- /dev/null +++ b/themes/nipponalba/layouts/_default/backup_single.html @@ -0,0 +1,102 @@ + {{ define "main" }} +{{ if not (eq .Type "response" "bookmarkof")}} +
+ + {{ with .Page.Params.Image }}{{ partial "taxonomy/image.html" . }}{{ end }}

{{ .Title }}

{{ .Description }} + +
+{{ else if eq .Type "bookmarkof" }} +{{ $cats := slice }} +{{ range .Site.Data.bookmarks }} + {{ $cats = $cats | append .category }} +{{ end }} +{{ $cats = uniq $cats | sort }} +{{ range $cats }} + {{ $cat := . }} +

{{ $cat }}

+ {{ range $.Site.Data.bookmarks }} + {{ if eq .category $cat }} +
+ + +
+{{ end }} +{{ end }} +{{ end }} +{{ else }} +
+
+ +
+
+ {{ if .Params.likeof }}

Liked {{ .Params.likeof }}{{ end }} + {{ if .Params.inreplyto }}

Replied to {{ .Params.inreplyto }}{{ end }} + {{ if .Params.repostof }}

Shared {{ .Params.repostof }}{{ end }}

+ {{ if .Content }}

{{ .Content }}

{{end}} +
+ {{ if not (eq .Type "article") }}
+ {{ with .Page.Params.category }}Categories: {{ partial "taxonomy/categories.html" . }}{{ end }}
+
{{ end }} + {{end}} + +{{end}} diff --git a/themes/nipponalba/layouts/_default/baseof.html b/themes/nipponalba/layouts/_default/baseof.html new file mode 100644 index 0000000..0e634a4 --- /dev/null +++ b/themes/nipponalba/layouts/_default/baseof.html @@ -0,0 +1,14 @@ + + + {{- partial "head.html" . -}} + + +
+ {{ partial "navbar.html" . }} +
+ {{- block "main" . }}{{- end }} + +
+ {{ partial "footer.html"}} diff --git a/themes/nipponalba/layouts/_default/list.html b/themes/nipponalba/layouts/_default/list.html new file mode 100644 index 0000000..8ab741d --- /dev/null +++ b/themes/nipponalba/layouts/_default/list.html @@ -0,0 +1,58 @@ +{{ define "main" }} +
+
+ {{if not (eq .Name "Blog")}}{{ .Name }}{{ end }}{{if eq .Name "Blog"}}All Blogs{{ end }} + {{ if eq .Type "article" "blog"}}{{else}} + + {{ end }} +
+
+{{ end }} diff --git a/themes/nipponalba/layouts/_default/list.jp.html b/themes/nipponalba/layouts/_default/list.jp.html new file mode 100644 index 0000000..2afe007 --- /dev/null +++ b/themes/nipponalba/layouts/_default/list.jp.html @@ -0,0 +1,27 @@ +{{ define "main" }} +
+ {{if not (eq .Name "Blog" "Categories" "Tags") }}{{ .Name }}{{ end }}{{if eq .Name "Blog"}}全部のブログ{{ end }}{{if eq .Name "Categories"}}カテゴリー{{ end }}{{if eq .Name "Tags"}}タグ{{ end }} + +
+ {{ end }} diff --git a/themes/nipponalba/layouts/_default/single.html b/themes/nipponalba/layouts/_default/single.html new file mode 100644 index 0000000..be6ade2 --- /dev/null +++ b/themes/nipponalba/layouts/_default/single.html @@ -0,0 +1,100 @@ +{{ define "main" }} +{{ if not (eq .Type "response" "bookmarkof")}} +
+ + {{ with .Page.Params.Image }}{{ partial "image.html" . }}{{ end }} +
{{ if eq .Type "article" }}

{{ .Title }}

{{ .Description }}
+ {{ with .Page.Params.Blog }}Blog: {{ partial "taxonomy/blog.html" . }}{{ end }}
+ {{ with .Page.Params.category }}Categories: {{ partial "taxonomy/categories.html" . }}{{ end }}{{ .ReadingTime }}-minute read
+ {{ with .Page.Params.tag }}Tags: {{ partial "taxonomy/tags.html" . }}{{ end }} +
{{ end }} +{{ if eq .Type "article" }}
{{else}}
{{end}} + {{ .Content }} + {{ if eq .Type "photo"}} +
+ {{ range .Page.Params.Photo }} + {{ if isset . "value" }} + {{ .alt }} + {{ else }} +  Trying to fix + {{end}} + {{end}} + +
+ {{end}} + {{ if eq .Type "article" }} + {{ end }}
+
+
+{{ if not (eq .Type "article") }}{{ with .Page.Params.category }}Categories: {{ partial "taxonomy/categories.html" . }}{{ end }}{{ end }} +
+ +
+

Interactions

+
+ Interactions on this site are possible only via webmentions. Alternatively, contact me via xmpp, matrix or email.

+
+
+ + + +
+

Alternatively, if you do not have a webmentions enabled website then you can leave a message using the comment parade form below.

+
Comment Parade

Please copy the following and paste into the URL field below: {{.Permalink }}

+

All going well, interactions will take a few minutes to appear, possibly longer due to .. gremlins.

+
+{{ $mention_ids := index $.Site.Data.index .RelPermalink }} +{{ if isset $mention_ids 0}} +{{ $mentions := apply $mention_ids "index" $.Site.Data.mentions "." }} +{{ $mentions := sort $mentions "wm-received" }} +
+ + +

Comments & Replies

{{ partial "webmention.html" $mentions }} +
{{ end }}
+
+{{ else if eq .Type "bookmarkof" }} +
{{ $cats := slice }} +{{ range .Site.Data.bookmarks }} + {{ $cats = $cats | append .category }} +{{ end }} +{{ $cats = uniq $cats | sort }} +{{ range $cats }} + {{ $cat := . }} +
+

{{ $cat }}

+ {{ range $.Site.Data.bookmarks }} + {{ if eq .category $cat }} + +{{ end }} +{{ end }}
+{{ end }}
+{{ else}} +
+ +

{{ .Site.Params.Firstname }} + {{ if eq .Params.posttype "in-reply-to" }} replied to {{ index .Params "in-reply-to" }}{{ end }} + {{ if eq .Params.posttype "like-of" }} liked {{ index .Params "like-of" }}{{ end }} + {{ if eq .Params.posttype "repost-of" }} shared {{ index .Params "repost-of" }}{{ end }}

+ {{ if .Content }}

{{ .Content }}

{{end}} + {{ if not (eq .Type "article") }}
+ {{ with .Page.Params.category }}Categories: {{ partial "taxonomy/categories.html" . }}{{ end }}
+
+
+
{{ end }} + {{ end }} +{{end}} diff --git a/themes/nipponalba/layouts/index.html b/themes/nipponalba/layouts/index.html new file mode 100644 index 0000000..5cc1d84 --- /dev/null +++ b/themes/nipponalba/layouts/index.html @@ -0,0 +1,51 @@ +{{ define "main" }} +
+
+

Latest note

+ {{ range (first 1 (where .Site.RegularPages "Type" "=" "note")) }} +
+ +
{{ .Content }} +
+
+ {{ if eq .Type "article" }} + {{ with .Page.Params.Blog }}Blog: {{ partial "taxonomy/blog.html" . }}{{ end }}
+ {{ with .Page.Params.category }}Categories: {{ partial "taxonomy/categories.html" . }}{{ end }}{{ .ReadingTime }}-minute read
+ {{ with .Page.Params.tag }}Tags: {{ partial "taxonomy/tags.html" . }}{{ end }} + {{ else }} + {{ with .Page.Params.category }}Categories: {{ partial "taxonomy/categories.html" . }}{{ end }}
+ {{ end }} +
+
{{ end }} +
+

Latest articles

+ {{ range (first 3 (where .Site.RegularPages "Type" "=" "article")) }} + {{ end }}
+

Latest photos

+ {{ range (first 3 (where .Site.RegularPages "Type" "=" "photo")) }} + {{ end }}
+ +
+
+ +{{ end }} diff --git a/themes/nipponalba/layouts/partials/aside.html b/themes/nipponalba/layouts/partials/aside.html new file mode 100644 index 0000000..b7edb60 --- /dev/null +++ b/themes/nipponalba/layouts/partials/aside.html @@ -0,0 +1,40 @@ +
+profile picture +
+ +
+

{{ .Site.Params.description }}
+ Pronouns: he/him/his

+
+ Craft Beer + Single Malt Whisky + Homebrewing + Scottish Politics + Scottish History + Japanese History + Tech + Veganism + Cooking
+
+
+Scotland or Japan + + +
+
+
Brewing Microbiology
+
Cyberpunk 2077
+
The Expanse
+
+
+
+
© {{ now.Format "2006"}} | CC-BY 4.0 |
+Made with ❤ and Hugo by {{ .Site.Params.author }}
diff --git a/themes/nipponalba/layouts/partials/footer.html b/themes/nipponalba/layouts/partials/footer.html new file mode 100644 index 0000000..6efd0af --- /dev/null +++ b/themes/nipponalba/layouts/partials/footer.html @@ -0,0 +1,19 @@ +
+ + + + diff --git a/themes/nipponalba/layouts/partials/head.html b/themes/nipponalba/layouts/partials/head.html new file mode 100644 index 0000000..ba9e7a3 --- /dev/null +++ b/themes/nipponalba/layouts/partials/head.html @@ -0,0 +1,29 @@ + + {{.Title}} + + {{- hugo.Generator -}} + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/themes/nipponalba/layouts/partials/image.html b/themes/nipponalba/layouts/partials/image.html new file mode 100644 index 0000000..fada9f4 --- /dev/null +++ b/themes/nipponalba/layouts/partials/image.html @@ -0,0 +1,3 @@ + {{- range $index, $el := . -}} + + {{ end }} diff --git a/themes/nipponalba/layouts/partials/likes.html b/themes/nipponalba/layouts/partials/likes.html new file mode 100644 index 0000000..7220ac5 --- /dev/null +++ b/themes/nipponalba/layouts/partials/likes.html @@ -0,0 +1,7 @@ +{{ range . }} +{{ $_wm_property := "wm-property" }} +{{ .Params.wm_property }} +{{ if eq "wm-property" "life-of"}} +{{ .author.name }} +{{ end }} +{{ end }} diff --git a/themes/nipponalba/layouts/partials/math.html b/themes/nipponalba/layouts/partials/math.html new file mode 100644 index 0000000..f097f65 --- /dev/null +++ b/themes/nipponalba/layouts/partials/math.html @@ -0,0 +1,30 @@ +{{- if or (eq site.Params.math true) (eq .Params.math true) -}} + {{- $use := "katex" -}} + + {{- with site.Params.math -}} + {{- if and (isset . "use") (eq (.use | lower) "mathjax") -}} + {{- $use = "mathjax" -}} + {{- end -}} + {{- end -}} + + {{- if eq $use "mathjax" -}} + {{- $url := "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML" -}} + {{- $hash := "sha384-e/4/LvThKH1gwzXhdbY2AsjR3rm7LHWyhIG5C0jiRfn8AN2eTN5ILeztWw0H9jmN" -}} + + + {{- else -}} + {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" -}} + {{- $hash := "sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" -}} + + + {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" -}} + {{- $hash := "sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" -}} + + + {{- $url := "https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" -}} + {{- $hash := "sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" -}} + + {{- end -}} +{{- end -}} \ No newline at end of file diff --git a/themes/nipponalba/layouts/partials/navbar.html b/themes/nipponalba/layouts/partials/navbar.html new file mode 100644 index 0000000..7283f47 --- /dev/null +++ b/themes/nipponalba/layouts/partials/navbar.html @@ -0,0 +1,20 @@ +
+ +
diff --git a/themes/nipponalba/layouts/partials/photo.html b/themes/nipponalba/layouts/partials/photo.html new file mode 100644 index 0000000..fcca638 --- /dev/null +++ b/themes/nipponalba/layouts/partials/photo.html @@ -0,0 +1,7 @@ + + +{{- range $index, $el := . -}} + + +{{- end -}} + diff --git a/themes/nipponalba/layouts/partials/shares.html b/themes/nipponalba/layouts/partials/shares.html new file mode 100644 index 0000000..1ce5832 --- /dev/null +++ b/themes/nipponalba/layouts/partials/shares.html @@ -0,0 +1,5 @@ +{{ range . }} +{{ if eq .mention_type "repost" }} +{{ .author.name }} +{{ end }} +{{ end }} diff --git a/themes/nipponalba/layouts/partials/syndication.html b/themes/nipponalba/layouts/partials/syndication.html new file mode 100644 index 0000000..6aad83d --- /dev/null +++ b/themes/nipponalba/layouts/partials/syndication.html @@ -0,0 +1,3 @@ +{{ range . }} +Syndicated to Pleroma +{{ end }} diff --git a/themes/nipponalba/layouts/partials/taxonomy/blog.html b/themes/nipponalba/layouts/partials/taxonomy/blog.html new file mode 100644 index 0000000..76b5390 --- /dev/null +++ b/themes/nipponalba/layouts/partials/taxonomy/blog.html @@ -0,0 +1,6 @@ + + + {{- range $index, $el := . -}} + {{ . }} +{{- end -}} + diff --git a/themes/nipponalba/layouts/partials/taxonomy/categories.html b/themes/nipponalba/layouts/partials/taxonomy/categories.html new file mode 100644 index 0000000..bacd02b --- /dev/null +++ b/themes/nipponalba/layouts/partials/taxonomy/categories.html @@ -0,0 +1,6 @@ + + diff --git a/themes/nipponalba/layouts/partials/taxonomy/tags.html b/themes/nipponalba/layouts/partials/taxonomy/tags.html new file mode 100644 index 0000000..976aecb --- /dev/null +++ b/themes/nipponalba/layouts/partials/taxonomy/tags.html @@ -0,0 +1,6 @@ + + diff --git a/themes/nipponalba/layouts/partials/webmention.html b/themes/nipponalba/layouts/partials/webmention.html new file mode 100644 index 0000000..7f46bcc --- /dev/null +++ b/themes/nipponalba/layouts/partials/webmention.html @@ -0,0 +1,30 @@ +{{ range sort . "published" "asc" }} +{{ if eq (index . "wm-property") "mention" }} +
{{ .author.name }} mentioned this post in the post {{ .title }} +{{ if .content.html }} +{{ .content.html | safeHTML }} +{{ else }} +

{{ .content.text | safeHTML }}

+{{ end }} +{{ if not (eq .published nil)}} +
+ {{ else }} + +{{ end }} +{{ end }} +{{ if eq (index . "wm-property") "in-reply-to" }} +
{{ .author.name }} replied to this post here
+ {{ if .content.html }} + {{ .content.html | safeHTML }} + {{ else }} +

{{ .content.text | safeHTML }}

+ {{ end }} +{{ if not (eq .published nil) }} +
+ {{ else }} + +{{ end }}{{ end }} +{{ if eq (index . "wm-property") "bookmark" }} +
{{ .author.name }} bookmarked this post
+{{ end }} +{{ end }} diff --git a/themes/nipponalba/static/css/style.css b/themes/nipponalba/static/css/style.css new file mode 100644 index 0000000..873a9dc --- /dev/null +++ b/themes/nipponalba/static/css/style.css @@ -0,0 +1,1058 @@ +@charset "UTF-8"; +@font-face { font-family: 'Inter'; font-weight: 400; font-style: normal; font-display: swap; unicode-range: U+000-5FF; src: local('Inter'), url('https://rsms.me/inter/fonts/Inter-Regular.woff2?v=3.15') format('woff2'), url('https://rsms.me/inter/fonts/Inter-Regular.woff=3.15') format('woff');} +@font-face { font-family: 'Inter'; font-weight: 400; font-style: italic; font-display: swap; unicode-range: U+000-5FF; src: local('Inter'), url('https://rsms.me/inter/fonts/Inter-Italic.woff2?v=3.15') format('woff2'), url('https://rsms.me/inter/fonts/Inter-Italic.woff=3.15') format('woff');} +@font-face { font-family: 'Inter'; font-weight: 700; font-style: bold; font-display: swap; unicode-range: U+000-5FF; src: local('Inter'), url('https://rsms.me/inter/fonts/Inter-Bold.woff2?v=3.15') format('woff2'), url('https://rsms.me/inter/fonts/Inter-Bold.woff=3.15') format('woff');} +/*! +Fork Awesome 1.1.7 +License - https://forkaweso.me/Fork-Awesome/license + +Copyright 2018 Dave Gandy & Fork Awesome + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'ForkAwesome'; + src: url('/fonts/forkawesome-webfont.woff2?v=1.1.7') format('woff2'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 ForkAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Fork Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-envelope-o:before { + content: "\f003"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share:before { + content: "\f064"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-rss:before { + content: "\f09e"; +} +.fa-link:before { + content: "\f0c1"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-thumbs-up:before{ + content: "\f164"; +} +.fa-television:before { + content: "\f26c"; +} +.fa-xmpp:before { + content: "\f2f9"; +} +.fa-matrix-org:before { + content: "\f313"; +} +.fa-pixelfed:before { + content: "\f314"; +} +.fa-pleroma:before { + content: "\f324"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +html { font-family: 'Inter', sans-serif;} +@supports (font-variation-settings: normal) { + html { font-family: 'Inter var', sans-serif; } +} +:root { + --dark-link:#e6ffff; + --dark-text:#87d5ff; + --dark-bg:#5c5458; + --dark-opacity: 0.75; + --light-text:#084c72; + --light-bg:#f0f2d7; + --light-link:#00569b; + --light-opacity:1; + --light-shadow:rgba(0,0,0,0.06); + --light-border:rgba(150,150,150,0.3); + --text-colour: var(--dark-text); + --bg-colour: var(--dark-bg); + --link-colour: var(--dark-link); + --opacity-img: var(--dark-opacity); + --border-colour: var(--light-border); + --shadow-colour: var(--light-shadow); +} + +@media (prefers-color-scheme: light) { + --text-colour: var(--light-text); + --bg-colour: var(--light-bg); + --link-colour: var(--light-link); + --opacity-img: var(--light-opacity); + +} +[data-theme="light"]{ + --text-colour: var(--light-text); + --bg-colour: var(--light-bg); + --link-colour: var(--light-link); + --opacity-img: var(--light-opacity); +} + +/* Switched mode */ +.theme-switch:checked ~ *, +.theme-switch:checked + *, +.theme-switch:checked + * + *, +.theme-switch:checked + * + * + *{ + --text-colour:var(--light-text); + --bg-colour:var(--light-bg); + --link-colour:var(--light-link); + --opacity-img: var(--light-opacity); +} + +.theme-switch{ + display:none; +} + +.light{ + display:inline; + float:right; + color:var(--text-colour); +} + +html { + -webkit-animation-fill-mode: forwards; +} + +body { + color: var(--text-colour); + font-size: 15px; + margin: 0 auto; + background: var(--bg-colour); + height:100vh; + min-height:100vh; +} +p { + line-height: 1.9em; + font-weight: 400; + font-size: 15px; +} +a { + text-decoration: none; + color: var(--link-colour); +} +a:link, a:visited { + opacity: 1; + -webkit-transition: all .15s linear; + -moz-transition: all .15s linear; + -o-transition: all .15s linear; + -ms-transition: all .15s linear; + transition: all .15s linear; + color: var(--link-colour); +} +a:hover, a:active { + color: var(--text-colour); +} +img { + opacity: var(--opacity-img); + transition: opacity .5s ease-in-out; +} +img:hover { + opacity: 1 +} +table { + border-collapse:collapse; +} +table, td, th{ + border: 1px dotted var(--text-colour); + padding:15px; +} +h3 { + color: var(--text-colour); + font-size: 22px; + font-weight: 600; + line-height: 1.6; +} +h4 { + color: var(--text-colour); + font-size: 16px; +} + +#page{ + color: var(--text-colour); + background: var(--bg-colour); + min-height:100vh; +} +#page-top { + width: 100%; + max-width: 1000px; + z-index: 3; + height: 60px; + border-bottom: 1px solid var(--border-colour); + background: var(--bg-colour); + margin: 0 auto; +} +#page-top a { + color: var(--text-colour); +} +#page-top a:hover { + color: var(--link-colour); +} +nav { +width:100%; + list-style: none; + padding: 18px 0px; + font-size: 14px; + display:flex; +} +nav li{ + position: relative; + display: initial; + padding-right: 20px; + font-weight:bolder; +} +nav li i{ + margin:0; + padding-left:10px; +} +nav > li:nth-child(9) { + margin-left: auto; + padding-right:5px; + display:none; +} +nav > li:nth-child(10) { + padding-right:0; + margin-left: auto; +} +nav i{ + margin-bottom:20px; + position:relative; + top:-5px; +} +main { + max-width: 1000px; + margin: 0 auto; + background: var(--bg-colour); +} + +main{ + display:grid; + grid-template-columns: calc(100% - 207px) 185px; + grid-template-rows: auto; + } + +.about .h-feed, .archive-listing, .stream, .post, .bookmarks, #response, .response, .resume{ + grid-column: 1; + vertical-align:top; + width: 99%; + padding-top:20px; +} +.profile { + margin-top:20px; + padding:10px; + box-shadow: 0 2px 3px var(--shadow-colour); + border: 1px solid var(--border-colour); + border-radius:15px; + height: 1300px; + grid-column: 2; + max-width:185px; + width:185px; + text-align:center; +} +.profile img{ + width:165px; + border-radius: 5px; +} +.profile .title{ + font-size: 1.8rem; + font-weight: bold; + letter-spacing: 1.5px; + line-height: 1; + } +.social-links { + list-style: none; + padding: 0; + } +.social-links i { + font-size:25px; +} +.social-links li { + display: inline; +} +.social-links a { + color: var(--text-colour); +} +.social-links a:hover { + color: var(--link-colour); +} +.social-links img{ + max-width: 24px; + vertical-align:middle; + padding-bottom: 7px; + padding-left: 4px; + display: inline; + } +#session a span{ + visibility:hidden; + display:block; + position:absolute; +} +#session a span img{ + min-width: 160px; + opacity: 1; +} +#session a:hover, #session a:hover span{ + visibility:visible; + z-index: 1; +} +.profile .description{ + text-align:center; +} + +.profile .interests .p-category{ + background-color: var(--link-colour); + padding:5px; + color: var(--bg-colour); + box-shadow: 0 1px 2px var(--shadow-colour); + border: 1px solid var(--border-colour); + border-radius:5px; + display:inline-block; + margin:2px; +} +.profile .doing{ + margin-top: 10px; + font-weight:bolder; +} +.watching, .playing, .reading{ + padding:5px; +} + +.watching img, .playing img{ + max-height:100px; + object-fit:cover; + object-position:top; +} + .reading img{ + object-fit:contain; + } + +.site-info{ + font-size:13px; +} +.site-info a{ + color: var(--text-colour); +} +.index-note, .feed, .post, #response .h-cite, +.resume header, .workhistory, .education, .skills, .feeds { + width: 98%; + box-shadow: 0 2px 3px var(--shadow-colour); + border: 1px solid var(--border-colour); + border-radius: 15px; + padding:10px; +} +.index-note{ + width:92%; +} +.resume{ + width:97%; +} +.index-article, .index-photo, .list-article, .list-blog, .list-category{ + box-shadow: 0 2px 3px var(--shadow-colour); + border: 1px solid var(--border-colour); + border-radius: 15px; + vertical-align:top; + width:31%; + display:inline-block; + height: 220px; + margin:0; + padding:0; +} +.index-article img, .list-article img, .list-blog img{ + width:100%; + height:100px; + border-top-left-radius:15px; + border-top-right-radius:15px; + object-fit:cover; + margin:0; + padding:0; +} + +.index-article a, .list-article a, .list-blog a{ + color: var(--text-colour); +} +.entry-title{ + font-weight:bold; + padding:5px; + min-height:40px; + display:block; +} +.index-article .e-content, .list-article .e-content{ + padding:5px; +} +.index-photo img{ + width:100%; + height:220px; + object-fit:cover; + border-radius:15px; + margin:0; + padding:0; +} +.latest_photos{ + padding-bottom: 50px; +} +.info i{ + opacity: 0.5; + margin-right: 5px; +} +.info{ + padding: 30px 0; + font-size:13px; + display:grid; + grid-template-columns: repeat (80%. 20%); +} +.blogs_span, .categories_span, .tags_span{ + grid-column: 1; +} +.category, .blog, .tag { + font-size: 13px; + line-height: 1.5; + display:inline; + text-decoration:underline; +} +.categories, .tags{ + display:inline; + margin:0;padding:0; +} +.categories li, .tags li{ + list-style:none; + display:inline; +} +.tag::before { + content: "#"; + opacity: .75; +} +.categories li::after, .tags li::after{ + content: ", "; +} +.categories li:last-child:after, .tags li:last-child:after{ + content: ""; +} +.info-date{ + grid-column: 2; + text-align:right; + line-height:1.5; +} +.info-date .dt-published{ + font-size:13px; +} +.info-date a{ + text-decoration:underline; +} +.reading-time{ + display:inline; + grid-column: 2; + text-align:right; + font-weight:bold; +} +.syndication{ + grid-column:2; + text-align:right; + font-size:13px; + margin:0; +} +.stream{ + padding-bottom:150px; + margin: 0 auto; +} + +.feed{ + margin-bottom: 10px; + padding:0; +} +.post{ + margin: 20px 0; + padding: 0; + } +.index_content, .post_content{ + text-align:justify; + width:97%; + padding: 10px; +} +.index_content .e-content img, .post_content img{ + width: 90%; + display:block; + margin: 0 auto; + border-radius:15px; +} + +.banner{ + width:100%; + max-height: 300px; + object-fit:scale-down; + object-position:top; + border-top-left-radius:15px; + border-top-right-radius:15px; +} + +.h-entry p a { + text-decoration: underline; + color: var(--link-colour); +} +.h-entry a:hover { + color: var(--link-colour); +} +.education, .work{ + margin: 10px 0px; + padding-top: 0px; + display:grid; + grid-template-columns: 200px auto; + grid-template-rows: auto; +} +.skills{ + margin: 10px 0px; +} + +.daterange{ + color: var(--link-colour); + font-style: italic; + margin-right: 20px; + grid-column: 1; + font-size:14px; +} +.institution, .organisation, .jobdescription{ + display:block; + grid-column: 2; +} +.jobtitle, .degree{ + grid-column:2; + font-weight:bolder; +} +.institution, .organisation{ + font-style:italic; +} +.organisation{ + padding-left: 20px; +} +.skilltype summary{ + font-weight:bolder; +} +.skilltype ul{ + display: flex; + flex-wrap: wrap; + margin:0; + padding: 0; +} +.skilltype li{ + list-style:none; + display: inline; + padding: 5px; + border: 1px solid var(--border-colour); + border-radius: 5px; + margin: 5px; +} +#interactions{ + margin:20px 0 10px 0; + padding:0; + display:grid; + grid-template-rows: repeat (20px, 40px, auto); + width:100%; + padding-bottom:150px; +} +#webmention-form{ +grid-row: 2; + margin-top:20px; + width: 100%; +} +#webmention-form label{ +line-height: 2; +} +#webmention-form input[type=url]{ + width: 60%; +} +#webmentions{ + grid-row: 4; + margin-top: 0 20px 0 0 ; + padding: 0 0 200px 0; +} +.interaction h4{ + line-height:15px; + padding:0; + margin:0; +} +.interaction.like, .interaction.share{ + border:0; + color: var(--text-colour); + padding:2px; + margin:30px 0 0 0; + display:flex; + width:100%; + min-height:30px; +} +.interaction.like h4, .interaction.share h4{ + margin-right: 20px; +} +.interaction.like img,.interaction.share img{ + display:inline; + width:30px; + height:30px; + padding:0; + margin:2px; + position:relative; + top:-10px; + border-radius: 50%; + border: 1px solid var(--border-colour); + box-shadow: 0 2px 3px var(--shadow-colour); +} +.interaction.like img:nth-child(1),.interaction.share img:nth-child(1){ + margin-left:10px; +} +.interaction.mention, .interaction.reply{ + border:1px solid var(--border-colour); + border-radius:15px; + display:grid; + grid-template-columns: 80px auto; + min-height: 60px; + padding: 10px; + margin: 10px 0px; +} +.interaction.mention .remote_profile, .interaction.reply .remote_profile{ + width: 80px; +} +.interaction.mention .remote_profile img, .interaction.reply .remote_profile img{ + width: 50px; + height: 50px; + object-fit:cover; + border-radius: 50%; + margin: 0 auto; +} +.intactivity{ + font-size:13px; + font-style: italic; + line-height:18px; + text-align:left; +} +.intcontent{ + font-size:15px; + vertical-align:top; + text-align:left; + padding-left: 10px; +} +.interaction time{ + font-size:13px; +} + +.description { + color: var(--text-colour); +} +.archive-listing-item{ + margin:0; + padding:0; +} +.list-article, .list-blog, .list-category{ + display:inline-block; + float:left; + margin:5px 10px 5px 0; +} +.list-blog{ + height:190px; + width: 350px; + text-align:center; +} +.list-blog img{ + height:150px; + width:350px; +} +.list-category{ + height: 220px; +} +.list-category p{ + color: var(--link-colour); + line-height: normal; + padding: 5px; +} +.note-banner{ + height:30px; + text-align:center; + font-weight: bold; + display:block; + vertical-align:middle; + font-size:24px; + text-transform:lowercase; + padding:10px; + color:var(--bg-colour); + background-color: var(--link-colour); + border-top-left-radius:15px; + border-top-right-radius:15px; +} +.list-title{ + font-size:30px; + font-weight:bold; + color: var(--text-colour); +} + +.list-title i{ + font-size:22px; + vertical-align:middle; + color: var(--text-colour); +} + +.listing{ + padding:0; + margin:0; +} +.listing li { + list-style-type: none; + padding: 0; +} +.listing-title { + font-size: 24px; + color: var(--text-colour); + font-weight: 600; + line-height: 2.2em; +} + +.listing-post { + padding-bottom: 5px; +} +.post-time { + float: right; + color: var(--text-colour); +} +.list-with-title .listing .listing-post a { + color: var(--text-colour); +} +.list-with-title .listing .listing-post a:hover { + color: var(--link-colour); +} + +.readmore { + font-size: 14px; + text-align:left; + padding:0; + text-decoration:underline; +} + +.page_404 { + text-align: center; + padding-top: 50px; +} + +.pixelfed_embed { + margin:0 auto; + display:block; +} +hr { + color: var(--text-colour); +} + +.author .title{ + display:none; +} + +#response p{ + margin:0; +} +.response-top{ + font-style:italic; +} +time{ + font-size:13px; +} +.bookmarks, #response-details{ + box-shadow: 0 2px 3px var(--shadow-colour); + border: 1px solid var(--border-colour); + border-radius: 15px; + margin-top: 20px; + width:95%; + padding:10px; +} +.bookmark { + border: 1px solid var(--border-colour); + padding: 10px; + margin-bottom: 5px; + border-radius: 15px; +} +.bookmark .p-content{ + display:inline; + margin:0; + padding:0; +} +.bookmark a{ + text-decoration:underline; +} +.picture{ + flex: calc(100% / 3); + max-width:calc(100% / 3); +} +.photogrid{ + display:flex; + flex-wrap:wrap; + width:100%; + height: 100%; + min-width:100%; + margin-bottom:10px; +} +.feed img.thumb{ + width:220px; + border-radius: 15px; + padding: 0px; + margin:10px; + border: 1px solid var(--border-colour); +} +hr{ + border-top: 1px solid var(--border-colour); + border-bottom:0; +} +.pagination { + list-style:none; + margin: 0 auto; + border:0px; + display:flex; + max-width: 600px; + width:100%; +} +.pagination li{ + padding:10px 50px; + font-weight:bold; +} +.pagination-bottom{ + padding-bottom:100px; +} +.pagination a { + color: var(--text-colour); +} +.pagination a:hover { + color: var(--link-colour); +} +.anchor { + display:none; +} + +.anchor:target { + display:block; +} +.feeds { + width: 95%; + margin-top: 20px; +} +.feedrow { + display:grid; + grid-template-columns: 80% auto; +} +.feedrow .description{ + grid-column: 1; +} +.feedrow .feedlinks{ + grid-column: 2; +} +.commentparade { + width:100%; + overflow:auto; + background: var(--background-colour); + padding:0; + height:250px; + color: var(--text-colour); +} +#commentparade .url{ + font-weight:bolder; +} + +@media screen and (max-width: 960px) { + #page-top { + width: 95%; + padding: 10px 0; + } + .about, .post, .archive, .stream, .bookmarks, #response{ + width:95%; + margin:0 auto; + } + main { + width:95%; + } +.interactions{ + padding-bottom: 100px; +} + .pagination li{ + padding:10px 40px; + height: 30px; + } + .pagination-bottom{ + margin-bottom:0px; + } +} +@media screen and (max-width: 560px) { + main{ + display:block; + } +#Bookmarks, #Blogs{ + display:none; +} +.pagination li{ + padding:10px 23px; + height: 30px; +} +article img{ + width: 95%; + text-align:center; +} +.interactions{ + padding-bottom: 0px; +} + +.post{ + margin-top:20px; +} +.post_content, .index_content{ + width: 95%; +} +.photo .index_content{ + text-align: left; +} +.profile{ + max-width: 50%; + height: 1120px; + margin: 0px auto; + margin-bottom:40px; + padding-top: 10px; + +} +.profile img{ + display:block; + margin: 0px auto; +} +} +@media screen and (max-width: 460px) { + +#Résumé, #Feeds{ + display:none; +} +nav{ + width: 98%; +} +.profile{ + max-width: 80%; + height: 1120px; +} +.pagination li{ + padding:10px 6px; + height: 30px; +} +.index-article, .index-photo, .list-article, .list-blog, .list-category{ + width:100%; + margin-bottom:10px; +} + +.profile img{ + display:block; + margin:0px auto; +} + +.education, .work{ + grid-template-columns: 90px auto; + +} +.bookmarks, #response, .post, #interactions{ + margin-bottom:10px; +} +#interactions{ + padding-bottom:10px; + width:95%; +} +}