├── .gitignore ├── LICENSE ├── config.json └── layouts ├── _default ├── baseof.html ├── list.archivehtml.html ├── list.json.json ├── list.photoshtml.html ├── rss.xml └── sitemap.xml ├── index.json ├── index.xml ├── list.archivehtml.html ├── list.archivejson.json ├── list.photoshtml.html ├── list.photosjson.json ├── list.podcastjson.json ├── list.podcastxml.xml ├── list.rsd.xml ├── newsletter.html ├── partials ├── custom_footer.html ├── footer.html ├── head.html ├── header.html ├── microblog_head.html └── microblog_syndication.html ├── redirect └── single.html └── robots.txt /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Micro.blog 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "[TITLE]", 3 | "author": { 4 | "name": "[FULL_NAME]", 5 | "avatar": "[AVATAR_URL]", 6 | "username": "[USERNAME]", 7 | "activitypub": { 8 | "username": "[ACTIVITYPUB_USERNAME]", 9 | "url": "[ACTIVITYPUB_ACTOR]" 10 | } 11 | }, 12 | "baseURL": "[SCHEME]://[HOSTNAME]/", 13 | "mediaTypes": { 14 | "application/json": { 15 | "suffixes": [ "json" ] 16 | } 17 | }, 18 | "outputFormats": { 19 | "RSS": { 20 | "baseName": "feed" 21 | }, 22 | "JSON": { 23 | "baseName": "feed" 24 | }, 25 | "RSD": { 26 | "mediaType": "application/xml", 27 | "baseName": "rsd", 28 | "isPlainText": true, 29 | "notAlternative": true 30 | }, 31 | "ArchiveJSON": { 32 | "mediaType": "application/json", 33 | "path": "archive", 34 | "baseName": "index", 35 | "isPlainText": true, 36 | "notAlternative": true 37 | }, 38 | "PhotosJSON": { 39 | "mediaType": "application/json", 40 | "path": "photos", 41 | "baseName": "index", 42 | "isPlainText": true, 43 | "notAlternative": true 44 | }, 45 | "PodcastXML": { 46 | "mediaType": "application/rss+xml", 47 | "baseName": "podcast", 48 | "isPlainText": true, 49 | "notAlternative": true 50 | }, 51 | "PodcastJSON": { 52 | "mediaType": "application/json", 53 | "baseName": "podcast", 54 | "isPlainText": true, 55 | "notAlternative": true 56 | } 57 | }, 58 | "outputs": { 59 | "home": [ "HTML", "RSS", "JSON", "RSD", "ArchiveJSON", "PhotosJSON", "PodcastXML", "PodcastJSON" ], 60 | "page": [ "HTML" ], 61 | "section": [ "HTML" ], 62 | "taxonomy": [ "HTML", "RSS", "JSON" ], 63 | "term": [ "HTML", "RSS", "JSON" ] 64 | }, 65 | "taxonomies": { 66 | "category": "categories" 67 | }, 68 | "rssLimit": 25, 69 | "uglyURLs": false, 70 | "blackfriday": { 71 | "fractions": false 72 | }, 73 | "markup": { 74 | "goldmark": { 75 | "renderer": { 76 | "unsafe": true 77 | } 78 | } 79 | }, 80 | "enableRobotsTXT": true, 81 | "languageCode": "[LANGUAGE]", 82 | "defaultContentLanguage": "[LANGUAGE]", 83 | "paginate": 25, 84 | "pluralizeListTitles": false, 85 | "params": { 86 | "description": "Follow @[USERNAME] on Micro.blog.", 87 | "itunes_description": "[ITUNES_DESCRIPTION]", 88 | "itunes_category": "[ITUNES_CATEGORY]", 89 | "itunes_subcategory": "[ITUNES_SUBCATEGORY]", 90 | "itunes_author": "[ITUNES_AUTHOR]", 91 | "itunes_email": "[ITUNES_EMAIL]", 92 | "itunes_cover": "[ITUNES_COVER]", 93 | "twitter_username": "[TWITTER_USERNAME]", 94 | "github_username": "[GITHUB_USERNAME]", 95 | "instagram_username": "[INSTAGRAM_USERNAME]", 96 | "site_id": "[SITE_ID]", 97 | "paginate_home": false, 98 | "paginate_categories": false, 99 | "paginate_replies": false, 100 | "theme_seconds": "0", 101 | "plugins_css": [], 102 | "plugins_js": [], 103 | "plugins_html": [], 104 | "feeds": { 105 | "bookmarks_json": "[FEEDS_BOOKMARKS_JSON]" 106 | } 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /layouts/_default/baseof.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ partial "head.html" . }} 4 | 5 | {{ partial "header.html" . }} 6 | {{ block "main" . }}{{ end }} 7 | {{ partial "footer.html" . }} 8 | {{ partial "custom_footer.html" . }} 9 | 10 | 11 | -------------------------------------------------------------------------------- /layouts/_default/list.archivehtml.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 | {{ $list := ($.Site.GetPage "taxonomyTerm" "categories").Pages }} 4 | {{ if gt (len $list) 0 }} 5 |
6 | {{ range $list }} 7 |

{{ .Title }}

8 | {{ end }} 9 |
10 | {{ end }} 11 | 12 | {{ $list := (where .Site.Pages "Type" "post") }} 13 |
14 | {{ range $list }} 15 | 16 |

17 | : 18 | {{ if .Title }} 19 | {{ .Title }} 20 | {{ end }} 21 | {{ .Summary | truncate 100 }} 22 |

23 | 24 | {{ end }} 25 |
26 | 27 | {{ end }} -------------------------------------------------------------------------------- /layouts/_default/list.json.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "https://jsonfeed.org/version/1", 3 | "title": {{ if eq .Title .Site.Title }}{{ .Site.Title | jsonify }}{{ else }}{{ printf `%s on %s` .Title .Site.Title | jsonify }}{{ end }}, 4 | "icon": "{{ .Site.Author.avatar }}", 5 | "home_page_url": "{{ .Site.BaseURL }}", 6 | "feed_url": "{{ .Site.BaseURL }}feed.json", 7 | "items": [ 8 | {{- $len := (len .Pages) -}} 9 | {{ range $index, $value := .Pages }} 10 | { 11 | {{ if .Params.guid -}} 12 | "id": "{{ .Params.guid }}", 13 | {{- else -}} 14 | "id": "{{ .Permalink }}", 15 | {{- end }} 16 | {{ if .Title -}} 17 | "title": {{ .Title | jsonify }}, 18 | {{- end -}} 19 | {{- $s := .Content | jsonify -}} 20 | {{- $s := replace $s "\\u003c" "<" -}} 21 | {{- $s := replace $s "\\u003e" ">" -}} 22 | {{- $s := replace $s "\\u0026" "&" }} 23 | "content_html": {{ $s }}, 24 | "date_published": "{{ .Date.Format "2006-01-02T15:04:05-07:00" }}", 25 | "url": "{{ .Permalink }}" 26 | {{- with .Params.categories -}} 27 | , 28 | "tags": {{ . | jsonify }} 29 | {{- end }} 30 | } 31 | {{- if ne (add $index 1) $len -}},{{- end -}} 32 | {{ end }} 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /layouts/_default/list.photoshtml.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 |
4 | 5 | {{- $list := where .Site.Pages ".Params.photos" "!=" nil -}} 6 | {{- $len := (len $list) -}} 7 | {{ range $index, $value := $list }} 8 | 9 | {{ range first 1 .Params.photos }} 10 | 11 | {{ end }} 12 | 13 | {{ end }} 14 | 15 |
16 | 17 | {{ end }} -------------------------------------------------------------------------------- /layouts/_default/rss.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} 4 | {{ .Permalink }} 5 | 6 | {{ with .Site.LanguageCode }} 7 | {{.}} 8 | {{ end }} 9 | {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} 10 | {{ range .Pages }} 11 | 12 | {{ .Title }} 13 | {{ .Permalink }} 14 | {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} 15 | {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} 16 | {{- if .Params.guid }} 17 | {{ .Params.guid }} 18 | {{- else -}} 19 | {{ .Permalink }} 20 | {{- end }} 21 | {{ .Content | html }} 22 | 23 | {{ end }} 24 | 25 | -------------------------------------------------------------------------------- /layouts/_default/sitemap.xml: -------------------------------------------------------------------------------- 1 | {{ "<" | safeHTML }}?xml version="1.0" encoding="UTF-8"{{ "?>" | safeHTML }} 2 | 3 | {{ $list := (where .Site.Pages "Type" "post") }} 4 | {{- $list := $list | union (where .Site.Pages ".Params.menu" "main") -}} 5 | {{- range $list -}} 6 | 7 | {{ .Permalink }} 8 | {{ .Date.Format "2006-01-02T15:04:05-07:00" }} 9 | 10 | {{ end }} 11 | 12 | -------------------------------------------------------------------------------- /layouts/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "https://jsonfeed.org/version/1", 3 | "title": {{ .Site.Title | jsonify }}, 4 | "icon": "{{ .Site.Author.avatar }}", 5 | "home_page_url": "{{ .Site.BaseURL }}", 6 | "feed_url": "{{ .Site.BaseURL }}feed.json", 7 | "items": [ 8 | {{- $list := first 25 (where .Site.Pages "Type" "post") -}} 9 | {{- $len := (len $list) -}} 10 | {{ range $index, $value := $list }} 11 | { 12 | {{ if .Params.guid -}} 13 | "id": "{{ .Params.guid }}", 14 | {{- else -}} 15 | "id": "{{ .Permalink }}", 16 | {{- end }} 17 | {{ if .Title -}} 18 | "title": {{ .Title | jsonify }}, 19 | {{- end -}} 20 | {{- $s := .Content | jsonify -}} 21 | {{- $s := replace $s "\\u003c" "<" -}} 22 | {{- $s := replace $s "\\u003e" ">" -}} 23 | {{- $s := replace $s "\\u0026" "&" }} 24 | "content_html": {{ $s }}, 25 | {{ if .Params.custom_summary }}"summary": {{ .Summary | plainify | jsonify }},{{ end }} 26 | "date_published": "{{ .Date.Format "2006-01-02T15:04:05-07:00" }}", 27 | "url": "{{ .Permalink }}" 28 | {{- with .Params.categories -}} 29 | , 30 | "tags": {{ . | jsonify }} 31 | {{- end }} 32 | } 33 | {{- if ne (add $index 1) $len -}},{{- end -}} 34 | {{ end }} 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /layouts/index.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }} 4 | {{ .Permalink }} 5 | 6 | {{ with .Site.LanguageCode }} 7 | {{.}} 8 | {{ end }} 9 | {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} 10 | {{- $list := first 25 (where .Site.Pages "Type" "post") -}} 11 | {{ range $list }} 12 | 13 | {{ .Title }} 14 | {{ .Permalink }} 15 | {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} 16 | {{ with .Site.Author.email }}{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}{{end}} 17 | {{- if .Params.guid }} 18 | {{ .Params.guid }} 19 | {{- else -}} 20 | {{ .Permalink }} 21 | {{- end }} 22 | {{ .Content | html }} 23 | 24 | {{ end }} 25 | 26 | 27 | -------------------------------------------------------------------------------- /layouts/list.archivehtml.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 | {{ $list := ($.Site.GetPage "taxonomyTerm" "categories").Pages }} 4 | {{ if gt (len $list) 0 }} 5 |
6 | {{ range $list }} 7 |

{{ .Title }}

8 | {{ end }} 9 |
10 | {{ end }} 11 | 12 | {{ $list := (where .Site.Pages "Type" "post") }} 13 |
14 | {{ range $list }} 15 | 16 |

17 | : 18 | {{ if .Title }} 19 | {{ .Title }} 20 | {{ end }} 21 | {{ .Summary | truncate 100 }} 22 |

23 | 24 | {{ end }} 25 |
26 | 27 | {{ end }} -------------------------------------------------------------------------------- /layouts/list.archivejson.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "https://jsonfeed.org/version/1", 3 | "title": {{ .Site.Title | jsonify }}, 4 | "icon": "{{ .Site.Author.avatar }}", 5 | "home_page_url": "{{ .Site.BaseURL }}", 6 | "feed_url": "{{ .Site.BaseURL }}photos/index.json", 7 | "items": [ 8 | {{- $list := (where .Site.Pages "Type" "post") -}} 9 | {{- $len := (len $list) -}} 10 | {{ range $index, $value := $list }} 11 | { 12 | "id": "{{ .Permalink }}", 13 | "title": {{ .Title | jsonify }}, 14 | "content_text": {{ .Summary | truncate 100 | jsonify }}, 15 | "date_published": "{{ .Date.Format "2006-01-02T15:04:05-07:00" }}", 16 | "url": "{{ .Permalink }}" 17 | } 18 | {{- if ne (add $index 1) $len -}},{{- end -}} 19 | {{ end }} 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /layouts/list.photoshtml.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 |
4 | 5 | {{- $list := where .Site.Pages ".Params.photos" "!=" nil -}} 6 | {{- $len := (len $list) -}} 7 | {{ range $index, $value := $list }} 8 | 9 | {{ range first 1 .Params.photos }} 10 | 11 | {{ end }} 12 | 13 | {{ end }} 14 | 15 |
16 | 17 | {{ end }} -------------------------------------------------------------------------------- /layouts/list.photosjson.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "https://jsonfeed.org/version/1", 3 | "title": {{ .Site.Title | jsonify }}, 4 | "icon": "{{ .Site.Author.avatar }}", 5 | "home_page_url": "{{ .Site.BaseURL }}", 6 | "feed_url": "{{ .Site.BaseURL }}photos/index.json", 7 | "items": [ 8 | {{- $list := where .Site.Pages ".Params.photos" "!=" nil -}} 9 | {{- $len := (len $list) -}} 10 | {{ range $index, $value := $list }} 11 | { 12 | "id": "{{ .Permalink }}", 13 | "title": {{ .Title | jsonify }}, 14 | {{- $s := .Content | jsonify -}} 15 | {{- $s := replace $s "\\u003c" "<" -}} 16 | {{- $s := replace $s "\\u003e" ">" -}} 17 | {{- $s := replace $s "\\u0026" "&" }} 18 | "content_html": {{ $s }}, 19 | "date_published": "{{ .Date.Format "2006-01-02T15:04:05-07:00" }}", 20 | "url": "{{ .Permalink }}", 21 | {{ range first 1 .Params.photos }} 22 | "image": "{{ . }}", 23 | "_microblog": { 24 | "thumbnail_url": "https://micro.blog/photos/400/{{ . }}" 25 | } 26 | {{ end }} 27 | } 28 | {{- if ne (add $index 1) $len -}},{{- end -}} 29 | {{ end }} 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /layouts/list.podcastjson.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "https://jsonfeed.org/version/1", 3 | "title": {{ .Site.Title | jsonify }}, 4 | "icon": "{{ .Site.Author.avatar }}", 5 | "home_page_url": "{{ .Site.BaseURL }}", 6 | "feed_url": "{{ .Site.BaseURL }}podcast.json", 7 | "_podcast": { 8 | "about": "https://jsonfeed.org/podcasting", 9 | "image": "{{ .Site.Params.itunes_cover }}", 10 | "explicit": false, 11 | "categories": [ 12 | { 13 | "category": {{ .Site.Params.itunes_category | jsonify }}, 14 | "subcategory": {{ .Site.Params.itunes_subcategory | jsonify }} 15 | } 16 | ] 17 | }, 18 | "items": [ 19 | {{- $list := where .Site.Pages ".Params.audio_with_metadata" "!=" nil -}} 20 | {{- $len := (len $list) -}} 21 | {{ range $index, $value := $list }} 22 | { 23 | {{ if .Params.guid -}} 24 | "id": "{{ .Params.guid }}", 25 | {{- else -}} 26 | "id": "{{ .Permalink }}", 27 | {{- end }} 28 | {{ if .Title -}} 29 | "title": {{ .Title | jsonify }}, 30 | {{- end -}} 31 | {{- $s := .Content | jsonify -}} 32 | {{- $s := replace $s "\\u003c" "<" -}} 33 | {{- $s := replace $s "\\u003e" ">" -}} 34 | {{- $s := replace $s "\\u0026" "&" }} 35 | "content_html": {{ $s }}, 36 | "date_published": "{{ .Date.Format "2006-01-02T15:04:05-07:00" }}", 37 | "url": "{{ .Permalink }}" 38 | {{- with .Params.categories -}} 39 | , 40 | "tags": {{ . | jsonify }} 41 | {{- end -}} 42 | {{- range first 1 .Params.audio_with_metadata -}}, 43 | "attachments": [ 44 | { 45 | "url": "{{ .url }}", 46 | "mime_type": "audio/mpeg" 47 | } 48 | ] 49 | {{ end }} 50 | } 51 | {{- if ne (add $index 1) $len -}},{{- end -}} 52 | {{ end }} 53 | ] 54 | } 55 | -------------------------------------------------------------------------------- /layouts/list.podcastxml.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ if eq .Title .Site.Title }}{{ .Site.Title | htmlEscape }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title | htmlEscape }}{{ end }} 6 | {{ .Permalink }} 7 | {{ .Site.Params.itunes_description | htmlEscape }} 8 | Copyright {{ .Date.Format "2006" }} {{ .Site.Params.itunes_author | htmlEscape }} 9 | 10 | 11 | 12 | 13 | {{ .Site.Params.itunes_author | htmlEscape }} 14 | false 15 | 16 | {{ .Site.Params.itunes_author | htmlEscape }} 17 | {{ .Site.Params.itunes_email | htmlEscape }} 18 | 19 | {{ with .Site.LanguageCode }} 20 | {{.}} 21 | {{ end }} 22 | {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} 23 | {{- $list := where .Site.Pages ".Params.audio_with_metadata" "!=" nil -}} 24 | {{ range $list }} 25 | 26 | {{ .Title | htmlEscape }} 27 | {{ .Permalink }} 28 | {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} 29 | {{ with .Site.Author.email }}{{ . | htmlEscape}}{{ with $.Site.Author.name }} ({{ . | htmlEscape}}){{end}}{{end}} 30 | {{ .Permalink }} 31 | 32 | {{ range first 1 .Params.audio_with_metadata }} 33 | {{ if gt .size 0 }} 34 | 35 | {{ .duration_seconds }} 36 | {{ else }} 37 | 38 | {{ end }} 39 | {{ end }} 40 | 41 | {{ end }} 42 | 43 | 44 | -------------------------------------------------------------------------------- /layouts/list.rsd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Micro.blog 5 | https://micro.blog/ 6 | https://micro.blog/ 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /layouts/newsletter.html: -------------------------------------------------------------------------------- 1 | 13 | 14 |
15 | 16 |

17 | Profile icon 18 | {{ .Site.Title }} 19 | — Unsubscribe 20 | 21 | {{ if gt (len .Intro) 0 }} 22 |

23 |


24 | 25 |

26 | {{ .Intro }} 27 | {{ end }} 28 | 29 |

30 |


31 | 32 | {{ range .Pages }} 33 | 34 | {{ if .Title }} 35 | {{ .Title }} 36 | {{ end }} 37 | 38 |

39 | {{ .Content }} 40 | 41 |

42 | {{ if gt (len .Params.audio) 0 }} 43 | Audio 44 | {{ end }} 45 | 46 | {{ if gt (len .Params.video) 0 }} 47 | Video 48 | {{ end }} 49 | 50 | {{ .Date.Format "2006-01-02" }} 51 | 52 |


53 | 54 | {{ end }} 55 | 56 | 74 | 75 |
76 | -------------------------------------------------------------------------------- /layouts/partials/custom_footer.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microdotblog/theme-blank/17ba67cc4743cce395fb635fe198b9220a9b638d/layouts/partials/custom_footer.html -------------------------------------------------------------------------------- /layouts/partials/footer.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microdotblog/theme-blank/17ba67cc4743cce395fb635fe198b9220a9b638d/layouts/partials/footer.html -------------------------------------------------------------------------------- /layouts/partials/head.html: -------------------------------------------------------------------------------- 1 | {{ partial "microblog_head.html" . }} 2 | -------------------------------------------------------------------------------- /layouts/partials/header.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microdotblog/theme-blank/17ba67cc4743cce395fb635fe198b9220a9b638d/layouts/partials/header.html -------------------------------------------------------------------------------- /layouts/partials/microblog_head.html: -------------------------------------------------------------------------------- 1 | {{ if ne .Kind "home" }} 2 | 3 | 4 | {{ end }} 5 | 6 | {{ range .AlternativeOutputFormats -}} 7 | {{ printf `` .Rel .Permalink .MediaType.Type $.Site.Title | safeHTML }} 8 | {{ end -}} 9 | 10 | {{ if .Site.Params.has_podcasts }} 11 | 12 | 13 | {{ end }} 14 | 15 | 16 | 17 | {{ with .Site.Params.twitter_username }} 18 | 19 | {{ end }} 20 | 21 | {{ with .Site.Params.github_username }} 22 | 23 | {{ end }} 24 | 25 | {{ with .Site.Params.instagram_username }} 26 | 27 | {{ end }} 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | {{ range .Site.Params.plugins_css }} 41 | 42 | {{ end }} 43 | 44 | {{ range $filename := .Site.Params.plugins_html }} 45 | {{ partial $filename $ }} 46 | {{ end }} 47 | -------------------------------------------------------------------------------- /layouts/partials/microblog_syndication.html: -------------------------------------------------------------------------------- 1 | {{ if eq .Kind "home" }} 2 | {{ if .Params.bluesky }} 3 | 4 | {{ end }} 5 | {{ else }} 6 | {{ if .Params.bluesky }} 7 | Reply on Bluesky --> 8 | {{ end }} 9 | {{ end }} 10 | -------------------------------------------------------------------------------- /layouts/redirect/single.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /layouts/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | --------------------------------------------------------------------------------