commit ec24bc99109e39ad6a33914da4931c5fa53cc50e Author: Vicky Steeves Date: Wed Oct 14 17:31:14 2020 -0400 initial commit diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..dc19131 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/zen"] + path = themes/zen + url = https://github.com/frjo/hugo-theme-zen.git diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..00e77bd --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/archetypes/episodes.md b/archetypes/episodes.md new file mode 100644 index 0000000..d6b3e5a --- /dev/null +++ b/archetypes/episodes.md @@ -0,0 +1,29 @@ +--- +title: "{{ replace .TranslationBaseName "-" " " | humanize }}" +slug: +date: {{ .Date }} +keywords: + - + - + - + - +categories: + - +tags: + - + - +podcast: + mp3: https://files.lorescape.xyz/0X-.mp3 + duration: + image: + src: + alt: + episode: + season: 1 +--- + + + + + +{{< audio src="https://files.lorescape.xyz/0X-.mp3">}} diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..3f6403b --- /dev/null +++ b/config.yaml @@ -0,0 +1,87 @@ +baseurl: "https://lorescape.xyz/" +title: "Lorescape" +theme: "zen" +enableEmoji: true +languageCode: "en-US" +author: + name: "Vicky Zelda" + +params: + contact: "info@lorescape.xyz" + copyright: "Original content is licensed [CC BY-NC](https://creativecommons.org/licenses/by-nc/4.0/)." + + dateformat: "2006-01-02" # Set the date format, default to "2 January, 2006" + description: "" # Set site description, used in meta tags and JSON-LD + metadescription: "" + favicon: "favicon.ico" # Relative path to favicon in json feed, no leading slash. + feedlinks: true # Show feed links in the footer. + footer: "" + icon: "favicon-32x32.png" # Relative path to icon in json feed and JSON-LD, no leading slash. + image: "images/logo.png" # Relative path to site image in JSON-LD, no leading slash. + imageMaxWidth: "" # Max width for images added via figure shortcode. + jquery: true # Add jQuery + languageDir: "" # Set ltr or rtl, defaults to ltr. + logo: false # Turn off the logo. + mainSections: # The sections you want to have listed on the front page. + - "" # Default to the section with most content if not set. + - "" # Set to empty if no section should be listed. + microUsername: "" # Your micro.blog username. + mobileMenu: true # Turn on a mobile menu on small screens. + piwikSiteId: # Matamo site id + piwikTrackerUrl: "" # Matamo url, schemaless and no slash on end (example.org/matamo). + poweredby: false # Show powered by hugo in footer + realfavicongenerator: true # If full set of favicons, site manifest etc. exists, default false. + safariPinnedColor: "#9D9DEF" # Hex color value, used in meta tags, default "#000000". + searchLimit: 20 # Max number of search hits, default 20. + sidebar: false # Show a sidebar to the right + submitted: true # Show author and date information for a post. + themeColor: "#9D9DEF" # Hex color value, used in meta tags, default "#ffffff". + + podcast: + title: # * Feed title, defaults to site title (iTunes). + description: # * Feed description/summary, defaults to site description (iTunes). + image: "images/logo.png" # * Feed image, place inside assets directory (iTunes). + category: + name: "Games & Hobbies" # * Feed category (iTunes). + subcategories: ["Video games"] # Feed sub category (iTunes). + explicit: false # Feed explicit settting, default to false (iTunes). + author: "Vicky Zelda" # Feed author (iTunes). + owner: + name: "Vicky Zelda" # Feed owner name (iTunes). + email: "info@lorescape.xyz" # Feed owner e-mail (iTunes). + lang: # Feed language, defaults to site language (iTunes). + block: no # Block the feed from iTunes, default to no (iTunes). + complete: no # Set the feed as complete, defaults to no (iTunes). + type: "episodic" # Podcast type, defaults to episodic (iTunes). + newfeed: # Are you moving? Set the new feed url here (iTunes). + cdn: "" # CDN url, no slash on end (https://cdn.example.org). + preload: "metadata" # Set on the HTML5 audio tag, defaults to "metadata". + +menu: + main: + - Name: "Home" + Identifier: "home" + Weight: -100 + URL: "/" + - Name: "Series" + Identifier: "series" + Weight: -100 + URL: "/categories/" + - Name: "Crypt of the Necrodancer" + Identifier: "necrodancer" + Parent: "series" + URL: "/categories/crypt-of-the-necrodancer/" + Weight: 1 + - Name: "Meta/Personal Stuff" + Identifier: "meta" + Parent: "series" + URL: "/categories/meta/" + Weight: 2 + - Name: "Episodes" + Identifier: "episodes" + Weight: -90 + URL: "/episodes/" + - Name: "RSS" + Identifier: "subscribe" + Weight: -80 + URL: "/episodes/index.xml" diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..570da87 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,9 @@ +--- +title: "Lorescape" +--- + +# Welcome to the Lorescape + +{{< figure src="/imgs/lorescape.png" class="mb-1" >}} + + This is a podcast that goes into the lore of mostly roguelike video games. diff --git a/content/episodes/00-intro.md b/content/episodes/00-intro.md new file mode 100644 index 0000000..3bbe614 --- /dev/null +++ b/content/episodes/00-intro.md @@ -0,0 +1,30 @@ +--- +title: "Enter the Lorescape" +slug: 00-intro +author: Vicky Zelda +date: 2020-10-12T19:26:18-04:00 +keywords: + - podcast + - video games + - introduction + - lore +categories: + - Meta +tags: + - intro + - personal +podcast: + mp3: https://files.lorescape.xyz/00-intro.mp3 + duration: + image: + src: /images/logo.png + alt: The Lorescape logo + episode: 0 + season: 1 +--- + +Hello world! + + + +{{< audio src="https://files.lorescape.xyz/00-intro.mp3">}} diff --git a/content/episodes/01-necrodancer.md b/content/episodes/01-necrodancer.md new file mode 100644 index 0000000..e194c14 --- /dev/null +++ b/content/episodes/01-necrodancer.md @@ -0,0 +1,30 @@ +--- +title: "First Series: Crypt of the Necrodancer" +slug: first-series +author: Vicky Zelda +date: 2020-10-12T19:26:22-04:00 +keywords: + - crypt of the necrodancer + - podcast + - video games + - +categories: + - Crypt of the Necrodancer +tags: + - general + - plot summary +podcast: + mp3: https://files.lorescape.xyz/01-necrodancer.mp3 + duration: + image: + src: /images/01-necrodancer.png + alt: Logo for Crypt of the Necrodancer + episode: 1 + season: 1 +--- + +The first series we'll go over is the Crypt of the Necrodancer! + + + +{{< audio src="https://files.lorescape.xyz/01-necrodancer.mp3">}} diff --git a/content/episodes/images/logo@2x.png b/content/episodes/images/logo@2x.png new file mode 100644 index 0000000..f1cdf42 Binary files /dev/null and b/content/episodes/images/logo@2x.png differ diff --git a/content/imgs/lorescape.png b/content/imgs/lorescape.png new file mode 100644 index 0000000..e938476 Binary files /dev/null and b/content/imgs/lorescape.png differ diff --git a/layouts/404.html b/layouts/404.html new file mode 100644 index 0000000..e69de29 diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html new file mode 100644 index 0000000..4d1d31f --- /dev/null +++ b/layouts/_default/baseof.html @@ -0,0 +1,43 @@ + + + + + +{{ block "title" . }}{{ .Title }} – {{ .Site.Title }}{{ end }} +{{ partial "meta.html" . }} +{{ partialCached "styles.html" . }} +{{- block "head" . }}{{ end }} +{{ partial "meta_json_ld.html" . }} +{{ partial "scripts.html" . }} +{{ partialCached "tracking.html" . }} + +{{- partial "header.html" . -}} + +
+ +
+{{ if .Site.IsMultiLingual }}{{ partial "language-selector.html" . }}{{ end -}} +
+ + +{{ partial "menu.html" . }} + +{{ block "main" . }}{{ end }} + +{{ if $.Param "sidebar" }}{{ partial "sidebar.html" . }}{{ end -}} + +
+{{ if $.Param "feedlinks" }}{{ partial "feedlinks.html" . }}{{ end -}} +

{{ with $.Param "copyright" }}{{ . | markdownify }}{{ else }}© {{ .Site.Title }}{{ end }}

+{{ with $.Param "footer" }}

{{ . | markdownify }}

{{ end }} +{{ if $.Param "poweredby" }}

Powered by Hugo and the Zen theme.

{{ end }} +
+ +
+{{ if $.Param "mobilemenu" }}{{ partial "mobilemenu.html" . }}{{ end -}} + + diff --git a/layouts/_default/full.html b/layouts/_default/full.html new file mode 100644 index 0000000..c302f1c --- /dev/null +++ b/layouts/_default/full.html @@ -0,0 +1,9 @@ +
+
+

{{ .Title }}

+{{ if $.Param "submitted" | default false }}{{ partial "submitted.html" . }}{{ end -}} +
+
+{{ .Content }} +
+
diff --git a/layouts/_default/li.html b/layouts/_default/li.html new file mode 100644 index 0000000..823cfc3 --- /dev/null +++ b/layouts/_default/li.html @@ -0,0 +1 @@ +
  • {{ .Title }}
  • diff --git a/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..5d560f6 --- /dev/null +++ b/layouts/_default/list.html @@ -0,0 +1,11 @@ +{{ define "main" -}} +
    +

    {{ .Title }}

    +{{ $paginator := .Paginate (.Pages) -}} +{{ range $paginator.Pages -}} +{{ .Render "summary"}} +{{ end -}} + +{{ partial "pagination.html" . }} +
    +{{ end }} diff --git a/layouts/_default/list.json.json b/layouts/_default/list.json.json new file mode 100644 index 0000000..e477612 --- /dev/null +++ b/layouts/_default/list.json.json @@ -0,0 +1,47 @@ +{{- $pctx := . -}} +{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}} +{{- $pages := $pctx.RegularPages -}} +{{- $limit := .Site.Config.Services.RSS.Limit -}} +{{- if ge $limit 1 -}} +{{- $pages = $pages | first $limit -}} +{{- end -}} +{{ $length := (len $pages) -}} +{ + "version" : "https://jsonfeed.org/version/1", + "title" : "{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} {{ i18n "string_on" }} {{ end }}{{ .Site.Title }}{{ end }}", + "description": "{{ i18n "string_recent_content" }} {{ if ne .Title .Site.Title }}{{ with .Title }}{{ i18n "string_in" }} {{ . }} {{ end }}{{ end }}{{ i18n "string_on" }} {{ .Site.Title }}", + "home_page_url" : "{{ .Site.BaseURL }}", + {{ with .OutputFormats.Get "JSON" -}} + "feed_url" : "{{ .Permalink }}", + {{ end -}} + {{ with $.Param "icon" -}} + "icon" : "{{ . | absURL }}", + {{ end -}} + {{ with $.Param "favicon" -}} + "favicon" : "{{ . | absURL }}", + {{ end -}} + {{ with .Site.Author.name -}} + "author" : { + "name" : "{{ . }}"{{ with $.Site.Author.url }}, + "url": "{{ . }}"{{ end }}{{ with $.Site.Author.avatar }}, + "avatar": "{{ . | absURL }}"{{ end }} + }, + {{ end -}} + "items" : [ + {{ range $index, $element := $pages -}} + { + "title" : {{ .Title | jsonify }}, + "date_published" : "{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}", + "date_modified" : "{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}", + "id" : "{{ .Permalink }}", + "url" : "{{ .Permalink }}", + {{ with .Params.author -}} + "author" : { + "name" : "{{ . }}" + }, + {{ end -}} + "content_html" : {{ .Content | jsonify }} + }{{ if ne (add $index 1) $length }},{{ end }} + {{ end -}} + ] +} diff --git a/layouts/_default/rss.xml b/layouts/_default/rss.xml new file mode 100644 index 0000000..c4f6695 --- /dev/null +++ b/layouts/_default/rss.xml @@ -0,0 +1,46 @@ +{{- $pctx := . -}} +{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}} +{{- $pages := $pctx.RegularPages -}} +{{- $limit := .Site.Config.Services.RSS.Limit -}} +{{- if ge $limit 1 -}} +{{- $pages = $pages | first $limit -}} +{{- end -}} +{{- printf "" | safeHTML }} + + + {{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} {{ i18n "string_on" }} {{ end }}{{ .Site.Title }}{{ end }} + {{ .Permalink }} + {{ i18n "string_recent_content" }} {{ if ne .Title .Site.Title }}{{ with .Title }}{{ i18n "string_in" }} {{ . }} {{ end }}{{ end }}{{ i18n "string_on" }} {{ .Site.Title }} + Hugo -- gohugo.io + {{ with .Site.LanguageCode -}} + {{ . }} + {{ end -}} + {{ with .Site.Author.email -}} + {{ . }}{{ with $.Site.Author.name }} ({{ . }}){{end}} + {{ end -}} + {{ with .Site.Author.email -}} + {{ . }}{{ with $.Site.Author.name }} ({{ . }}){{end}} + {{ end -}} + {{ with .Site.Copyright -}} + {{ . }} + {{ end -}} + {{ if not .Date.IsZero -}} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ end -}} + {{ with .OutputFormats.Get "RSS" -}} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end -}} + {{ range $pages }} + + {{ .Title }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ with .Site.Author.email -}} + {{ . }}{{ with $.Site.Author.name }} ({{ . }}){{end}} + {{ end -}} + {{ .Permalink }} + {{ .Content | html }} + + {{ end }} + + diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..4c891f7 --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,16 @@ +{{ define "main" -}} +
    +
    +
    +

    {{ .Title }}

    +{{ if $.Param "submitted" | default false }}{{ partial "submitted.html" . }}{{ end -}} +{{ if .Params.tags }}{{ partial "tags.html" . }}{{ end -}} +
    +
    +{{ .Content }} + +{{ if ne .Lastmod .Date }}{{ partial "dates.html" . }}{{ end -}} +
    +
    +
    +{{ end }} diff --git a/layouts/_default/summary.html b/layouts/_default/summary.html new file mode 100644 index 0000000..6d58dff --- /dev/null +++ b/layouts/_default/summary.html @@ -0,0 +1,9 @@ +
    +
    +

    {{ .Title }}

    +{{ if $.Param "submitted" | default false }}{{ partial "submitted.html" . -}}{{ end }} +
    +
    +{{ .Summary }} +
    +
    diff --git a/layouts/home.searchindex.json b/layouts/home.searchindex.json new file mode 100644 index 0000000..cc83383 --- /dev/null +++ b/layouts/home.searchindex.json @@ -0,0 +1,5 @@ +{{- $.Scratch.Add "searchindex" slice -}} +{{- range $index, $element := .Site.RegularPages -}} + {{- $.Scratch.Add "searchindex" (dict "id" $index "title" $element.Title "permalink" $element.RelPermalink "tags" (delimit ($element.Params.tags | default "") " ") "content" $element.Plain "summary" $element.Summary "date" ($element.Date.Format ($.Param "dateformat" | default "2 January, 2006"))) -}} +{{- end -}} +{{- $.Scratch.Get "searchindex" | jsonify -}} diff --git a/layouts/index.html b/layouts/index.html new file mode 100644 index 0000000..82c4e3f --- /dev/null +++ b/layouts/index.html @@ -0,0 +1,19 @@ +{{ define "title" }}{{ .Site.Title }}{{ end }} + +{{ define "main" -}} +
    +
    +
    +{{ .Content }} +
    +
    + +{{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }} +{{ $paginator := .Paginate $pages -}} +{{ range $paginator.Pages -}} +{{ .Render "summary"}} +{{ end -}} + +{{ partial "pagination.html" . }} +
    +{{ end }} diff --git a/layouts/micro/list.html b/layouts/micro/list.html new file mode 100644 index 0000000..df9e49a --- /dev/null +++ b/layouts/micro/list.html @@ -0,0 +1,13 @@ +{{ define "main" -}} +
    +

    Micro posts

    + + +{{ $paginator := .Paginate (.Pages) -}} +{{ range $paginator.Pages -}} +{{ .Render "summary"}} +{{ end -}} + +{{ partial "pagination.html" . }} +
    +{{ end }} diff --git a/layouts/micro/list.json.json b/layouts/micro/list.json.json new file mode 100644 index 0000000..5046229 --- /dev/null +++ b/layouts/micro/list.json.json @@ -0,0 +1,35 @@ +{{ $list := .Pages -}} +{{ $length := (len $list) -}} +{ + "version" : "https://jsonfeed.org/version/1", + "title" : "Micro posts {{ i18n "string_on" }} {{ .Site.Title }}", + "description": "Micro blog {{ i18n "string_by" }} {{ with $.Site.Author.name }}{{ . }}{{end}}, {{ i18n "string_follow" }} @{{ with $.Param "microusername" }}{{ . }}{{ end }} {{ i18n "string_at" }} https://micro.blog/{{ with $.Param "microusername" }}{{ . }}{{ end }}", + "home_page_url" : "{{ .Site.BaseURL }}", + {{ with .OutputFormats.Get "JSON" -}} + "feed_url" : "{{ .Permalink }}", + {{ end -}} + {{ with $.Param "icon" -}} + "icon" : "{{ . | absURL }}", + {{ end -}} + {{ with $.Param "favicon" -}} + "favicon" : "{{ . | absURL }}", + {{ end -}} + {{ with .Site.Author.name -}} + "author" : { + "name" : "{{ . }}"{{ with $.Site.Author.url }}, + "url": "{{ . }}"{{ end }}{{ with $.Site.Author.avatar }}, + "avatar": "{{ . | absURL }}"{{ end }} + }, + {{ end -}} + "items" : [ + {{ range $index, $element := $list -}} + { + "date_published" : "{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}", + "date_modified" : "{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}", + "id" : "{{ .Permalink }}", + "url" : "{{ .Permalink }}", + "content_html" : {{ .Content | jsonify }} + }{{ if ne (add $index 1) $length }},{{ end }} + {{ end -}} + ] +} diff --git a/layouts/micro/rss.xml b/layouts/micro/rss.xml new file mode 100644 index 0000000..681e8d1 --- /dev/null +++ b/layouts/micro/rss.xml @@ -0,0 +1,34 @@ + + + Micro posts {{ i18n "string_on" }} {{ .Site.Title }} + {{ .Permalink }} + Micro blog {{ i18n "string_by" }} {{ with $.Site.Author.name }}{{ . }}{{end}}, {{ i18n "string_follow" }} @{{ with $.Param "microusername" }}{{ . }}{{ end }} {{ i18n "string_at" }} https://micro.blog/{{ with $.Param "microusername" }}{{ . }}{{ end }} + Hugo -- gohugo.io + {{ with .Site.LanguageCode -}} + {{ . }} + {{ end -}} + {{ with .Site.Author.email -}} + {{ . }}{{ with $.Site.Author.name }} ({{ . }}){{end}} + {{ end -}} + {{ with .Site.Author.email -}} + {{ . }}{{ with $.Site.Author.name }} ({{ . }}){{end}} + {{ end -}} + {{ with .Site.Copyright -}} + {{ . }} + {{ end -}} + {{ if not .Date.IsZero -}} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ end -}} + {{ with .OutputFormats.Get "RSS" -}} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end -}} + {{ range .Pages }} + + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ .Permalink }} + {{ .Content | html }} + + {{ end }} + + diff --git a/layouts/micro/single.html b/layouts/micro/single.html new file mode 100644 index 0000000..20f180c --- /dev/null +++ b/layouts/micro/single.html @@ -0,0 +1,16 @@ +{{ define "main" -}} +
    +
    +
    +

    {{ .Title }}

    +

    +{{ with $.Param "author" }}{{ . }} – {{ end -}} + +

    +
    +
    +{{ .Content }} +
    +
    +
    +{{ end }} diff --git a/layouts/micro/summary.html b/layouts/micro/summary.html new file mode 100644 index 0000000..6acdab4 --- /dev/null +++ b/layouts/micro/summary.html @@ -0,0 +1,12 @@ +
    +
    + +

    +{{ with $.Param "author" }}{{ . }} – {{ end -}} + +

    +
    +
    +{{ .Content }} +
    +
    diff --git a/layouts/partials/dates.html b/layouts/partials/dates.html new file mode 100644 index 0000000..31fff9f --- /dev/null +++ b/layouts/partials/dates.html @@ -0,0 +1,4 @@ +

    +{{ i18n "last_mod" }} {{ .Lastmod.Format ($.Param "dateformat" | default "2 January, 2006") }}
    +{{ i18n "created" }} {{ .Date.Format ($.Param "dateformat" | default "2 January, 2006") }} +

    diff --git a/layouts/partials/feedlinks.html b/layouts/partials/feedlinks.html new file mode 100644 index 0000000..5bb25c1 --- /dev/null +++ b/layouts/partials/feedlinks.html @@ -0,0 +1,8 @@ +{{ $list := .AlternativeOutputFormats -}} +{{ $length := (len $list) -}} +{{ if $list -}} +

    Subscribe{{ with .Section }} to section {{ . }}{{ end }}: {{ range $index, $element := $list -}} +{{ .Name }}{{ if ne (add $index 1) $length }} | {{ end }} +{{- end -}} +

    +{{ end -}} diff --git a/layouts/partials/header.html b/layouts/partials/header.html new file mode 100644 index 0000000..9950d6a --- /dev/null +++ b/layouts/partials/header.html @@ -0,0 +1,3 @@ + + +
    diff --git a/layouts/partials/language-selector.html b/layouts/partials/language-selector.html new file mode 100644 index 0000000..3d4c1e0 --- /dev/null +++ b/layouts/partials/language-selector.html @@ -0,0 +1,16 @@ +

    {{ i18n "lang_select_title" }}

    + diff --git a/layouts/partials/menu.html b/layouts/partials/menu.html new file mode 100644 index 0000000..accfc24 --- /dev/null +++ b/layouts/partials/menu.html @@ -0,0 +1,24 @@ + diff --git a/layouts/partials/meta.html b/layouts/partials/meta.html new file mode 100644 index 0000000..ef5d008 --- /dev/null +++ b/layouts/partials/meta.html @@ -0,0 +1,31 @@ +{{ range .AlternativeOutputFormats -}} + +{{ end -}} + + + +{{ with $.Param "author" }}{{ end }} +{{ with $.Param "contact" }}{{ end }} + + + + +{{ with $.Param "image" }}{{ end }} +{{ hugo.Generator }} + + +{{ with .Site.Params.piwikTrackerUrl }}{{ end }} +{{ with $.Param "microusername" }}{{ end }} + +{{ if .IsTranslated -}} +{{ range .Translations }} + +{{ end -}} +{{ end -}} + +{{ if $.Param "realfavicongenerator" -}} + + + + +{{ end -}} diff --git a/layouts/partials/meta_json_ld.html b/layouts/partials/meta_json_ld.html new file mode 100644 index 0000000..d5af852 --- /dev/null +++ b/layouts/partials/meta_json_ld.html @@ -0,0 +1,47 @@ + diff --git a/layouts/partials/mobilemenu.html b/layouts/partials/mobilemenu.html new file mode 100644 index 0000000..abf7ef8 --- /dev/null +++ b/layouts/partials/mobilemenu.html @@ -0,0 +1,35 @@ +
    +
    + {{ i18n "menu_mobile" }} +
    +
    + {{ if .Site.IsMultiLingual }}{{ partial "language-selector.html" . }}{{ end }} +
    + +
    +
    diff --git a/layouts/partials/pagination.html b/layouts/partials/pagination.html new file mode 100644 index 0000000..34af0cd --- /dev/null +++ b/layouts/partials/pagination.html @@ -0,0 +1,11 @@ +{{ if or (.Paginator.HasPrev) (.Paginator.HasNext) -}} + +{{ end -}} diff --git a/layouts/partials/podcast.html b/layouts/partials/podcast.html new file mode 100644 index 0000000..f8ebe96 --- /dev/null +++ b/layouts/partials/podcast.html @@ -0,0 +1,12 @@ +{{ $src := (.Params.podcast.mp3 | absURL) -}} +{{ if .Site.Params.Podcast.cdn -}} +{{ $src = add $.Site.Params.Podcast.cdn (.Params.podcast.mp3 | relURL) -}} +{{ end -}} +
    + +
    {{ .Title }}
    +
    +{{ with .Params.podcast.image }} +{{ $resource := resources.Get .src }}{{ $size := "250x" }}{{ with .width }}{{ $size = (add (string .) "x") }}{{ end }}{{ $image := $resource.Resize $size -}} +
    {{ .alt }}
    +{{ end -}} diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html new file mode 100644 index 0000000..14377e2 --- /dev/null +++ b/layouts/partials/scripts.html @@ -0,0 +1,24 @@ +{{ $early := resources.Get "js/script-early.js" | minify | fingerprint -}} + +{{ if $.Param "jquery" -}} +{{ $jquery := resources.Get "js/lib/jquery.slim.min.js" | fingerprint -}} + +{{ end -}} +{{ $umbrella := resources.Get "js/lib/umbrella.min.js" | fingerprint -}} + +{{ if $.Param "mobilemenu" -}} +{{ $mobilemenu := resources.Get "js/mobile.js" | minify | fingerprint -}} + +{{ end -}} +{{ if .HasShortcode "contact" -}} +{{ $contact := resources.Get "js/contact.js" | minify | fingerprint -}} + +{{ end -}} +{{ if .HasShortcode "search" -}} +{{ $flexsearch := resources.Get "js/lib/flexsearch.min.js" | fingerprint -}} + +{{ $search := resources.Get "js/search.js" | resources.ExecuteAsTemplate "js/search.js" . | minify | fingerprint -}} + +{{ end -}} +{{ $script := resources.Get "js/script.js" | minify | fingerprint -}} + diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html new file mode 100644 index 0000000..99fd72e --- /dev/null +++ b/layouts/partials/sidebar.html @@ -0,0 +1,15 @@ +{{ $currentSection := .Section -}} +{{ $currentID := "" -}} +{{ with .File }}{{ $currentID = .UniqueID }}{{ end -}} + diff --git a/layouts/partials/styles.html b/layouts/partials/styles.html new file mode 100644 index 0000000..947f2bd --- /dev/null +++ b/layouts/partials/styles.html @@ -0,0 +1,19 @@ +{{ $main_options := (dict "targetPath" "css/styles.css" "outputStyle" "compressed" "enableSourceMap" false "includePaths" (slice "assets/lib/typey/stylesheets")) -}} +{{ if eq hugo.Environment "development" -}} + {{ $main_options = merge $main_options (dict "outputStyle" "nested" "enableSourceMap" true) -}} +{{ end -}} +{{ $mobile_options := merge $main_options (dict "targetPath" "css/mobile.css") -}} +{{ $print_options := merge $main_options (dict "targetPath" "css/print.css") -}} +{{ $main_style := resources.Get "sass/styles.scss" | toCSS $main_options -}} +{{ $mobile_style := resources.Get "sass/mobile.scss" | toCSS $mobile_options -}} +{{ $print_style := resources.Get "sass/print.scss" | toCSS $print_options -}} +{{ if ne hugo.Environment "development" -}} + {{ $main_style = $main_style | fingerprint -}} + {{ $mobile_style = $mobile_style | fingerprint -}} + {{ $print_style = $print_style | fingerprint -}} +{{ end -}} +{{ if $.Param "mobilemenu" -}} + +{{ end -}} + + diff --git a/layouts/partials/submitted.html b/layouts/partials/submitted.html new file mode 100644 index 0000000..55ff27c --- /dev/null +++ b/layouts/partials/submitted.html @@ -0,0 +1,4 @@ +
    +{{ with $.Param "author" }} – {{ end -}} + +
    diff --git a/layouts/partials/tags.html b/layouts/partials/tags.html new file mode 100644 index 0000000..fc88c48 --- /dev/null +++ b/layouts/partials/tags.html @@ -0,0 +1,8 @@ +
    +{{ i18n "taxo_tags" }}: + +
    diff --git a/layouts/partials/tracking.html b/layouts/partials/tracking.html new file mode 100644 index 0000000..432b79c --- /dev/null +++ b/layouts/partials/tracking.html @@ -0,0 +1,11 @@ +{{ if and .Site.Params.piwikTrackerUrl .Site.Params.piwikSiteID -}} +{{ $script := resources.Get "js/tracking.js" | resources.ExecuteAsTemplate "js/tracking.js" . | minify | fingerprint -}} + + +{{ end -}} + +{{ if .Site.GoogleAnalytics -}} +{{ $script := resources.Get "js/tracking.js" | resources.ExecuteAsTemplate "js/tracking.js" . | minify | fingerprint -}} + + +{{ end -}} diff --git a/layouts/podcast/full.html b/layouts/podcast/full.html new file mode 100644 index 0000000..a83a346 --- /dev/null +++ b/layouts/podcast/full.html @@ -0,0 +1,10 @@ +
    +
    +

    {{ .Title }}

    +{{ if $.Param "submitted" | default false }}{{ partial "submitted.html" . }}{{ end -}} +
    +{{ partial "podcast.html" . -}} +
    +{{ .Content }} +
    +
    diff --git a/layouts/podcast/rss.xml b/layouts/podcast/rss.xml new file mode 100644 index 0000000..f87e92e --- /dev/null +++ b/layouts/podcast/rss.xml @@ -0,0 +1,64 @@ + + + {{ .Site.Params.Podcast.Title | default .Site.Title }} + {{ .Permalink }} + {{ .Site.Params.Podcast.Description | default .Site.Params.Description }} + Hugo -- gohugo.io + {{ .Site.Params.Podcast.Lang | default .Site.LanguageCode }} + {{ with .Site.Author.email -}} + {{ . }}{{ with $.Site.Author.name }} ({{ . }}){{end}} + {{ end -}} + {{ with .Site.Author.email -}} + {{ . }}{{ with $.Site.Author.name }} ({{ . }}){{end}} + {{ end -}} + {{ with .Site.Copyright -}} + {{ . }} + {{ end -}} + {{ if not .Date.IsZero -}} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ end -}} + {{ with .OutputFormats.Get "RSS" -}} + {{ printf "" .Permalink .MediaType | safeHTML }} + {{ end -}} + {{ with .Site.Params.Podcast.Image }}{{ $image := resources.Get . }}{{ end }} + {{ with .Site.Params.Podcast.Category -}} + + {{ range .subcategories }}{{ end }} + + {{ end -}} + {{ with .Site.Params.Podcast.Owner -}} + + {{ with .name }}{{ . }}{{ end }} + {{ with .email }}{{ . }}{{ end }} + + {{ end -}} + {{ with .Site.Params.Podcast.Description }}{{ . }}{{ end }} + {{ with .Site.Params.Podcast.Author }}{{ . }}{{ end }} + {{ with .Site.Params.Podcast.Type }}{{ . }}{{ end }} + {{ with .Site.Params.Podcast.Block }}{{ . }}{{ end }} + {{ with .Site.Params.Podcast.Complete }}{{ . }}{{ end }} + {{ with .Site.Params.Podcast.NewFeed }}{{ . }}{{ end }} + {{ if .Site.Params.Podcast.Explicit }}true{{ else }}false{{ end }} + {{ range .Pages }} + + {{ .Title }} + {{ .Title }} + {{ .Permalink }} + {{ .Permalink }} + {{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ with .Site.Author.email -}} + {{ . }}{{ with $.Site.Author.name }} ({{ . }}){{ end }} + {{ end -}} + {{ .Content | html }} + {{ with .Params.podcast.mp3 }}{{ $file_stat := os.Stat (add "/static" (. | relURL)) }}{{ end }} + {{ with .Params.podcast.duration }}{{ . }}{{ end }} + {{ with .Params.podcast.image.src }}{{ $image := resources.Get . }}{{ end }} + {{ with .Params.podcast.episode }}{{ . }}{{ end }} + {{ with .Params.podcast.episodeType }}{{ . }}{{ end }} + {{ with .Params.podcast.season }}{{ . }}{{ end }} + {{ with .Params.podcast.block }}{{ . }}{{ end }} + {{ if .Params.podcast.explicit }}true{{ else }}false{{ end }} + + {{ end }} + + diff --git a/layouts/podcast/single.html b/layouts/podcast/single.html new file mode 100644 index 0000000..7f4db97 --- /dev/null +++ b/layouts/podcast/single.html @@ -0,0 +1,15 @@ +{{ define "main" -}} +
    +
    +
    +

    {{ .Title }}

    +{{ if $.Param "submitted" | default false }}{{ partial "submitted.html" . }}{{ end -}} +{{ if .Params.tags }}{{ partial "tags.html" . }}{{ end -}} +
    +{{ partial "podcast.html" . -}} +
    +{{ .Content }} +
    +
    +
    +{{ end }} diff --git a/layouts/shortcodes/audio.html b/layouts/shortcodes/audio.html new file mode 100644 index 0000000..c2f0e29 --- /dev/null +++ b/layouts/shortcodes/audio.html @@ -0,0 +1,6 @@ +
    + +
    diff --git a/layouts/shortcodes/clear.html b/layouts/shortcodes/clear.html new file mode 100644 index 0000000..a9d2c1a --- /dev/null +++ b/layouts/shortcodes/clear.html @@ -0,0 +1 @@ +
    diff --git a/layouts/shortcodes/contact.html b/layouts/shortcodes/contact.html new file mode 100644 index 0000000..cd38a63 --- /dev/null +++ b/layouts/shortcodes/contact.html @@ -0,0 +1,16 @@ +

    {{ i18n "js_required" }}

    + + + + diff --git a/layouts/shortcodes/figure.html b/layouts/shortcodes/figure.html new file mode 100644 index 0000000..18084d0 --- /dev/null +++ b/layouts/shortcodes/figure.html @@ -0,0 +1,50 @@ +{{ $maxwidth := .Site.Params.imageMaxWidth -}} +{{ $realwidth := 0 -}} +{{ $realheight := 0 -}} +{{ $width := 0 -}} +{{ $height := 0 -}} +{{ $height := 0 -}} +{{ if (fileExists (add "/static" (.Get "src"))) -}} + {{ with (imageConfig (add "/static" (.Get "src"))) -}} + {{ $realwidth = .Width -}} + {{ $realheight = .Height -}} + {{ $width = .Width -}} + {{ $height = .Height -}} + {{ end -}} +{{ end -}} +{{ if and (.Get "width") (.Get "height") -}} + {{ $width = (int (.Get "width")) -}} + {{ $height = (int (.Get "height")) -}} +{{ else if (.Get "width") -}} + {{ $width = (int (.Get "width")) -}} + {{ if and ($realwidth) (lt ($width) ($realwidth)) -}} + {{ $height = (mul ($realheight) (div (add ($width) 0.0) ($realwidth))) -}} + {{ $height = (math.Round $height) -}} + {{ end -}} +{{ else if (.Get "height") -}} + {{ $height = (int (.Get "height")) -}} + {{ if and ($realheight) (lt ($height) ($realheight)) -}} + {{ $width = (mul ($realwidth) (div (add ($height) 0.0) ($realheight))) -}} + {{ $width = (math.Round $width) -}} + {{ end -}} +{{ else if and ($maxwidth) (lt ($maxwidth) ($width)) -}} + {{ $width = ($maxwidth) -}} + {{ $height = (mul ($realheight) (div (add ($width) 0.0) ($realwidth))) -}} + {{ $height = (math.Round $height) -}} +{{ end -}} +
    +{{ with .Get "link" }}{{ end -}} + +{{- if .Get "link" }}{{ end }} +{{ if or (or (.Get "title") (.Get "caption" | markdownify)) (.Get "attr") -}} +
    {{ if isset .Params "title" }} +

    {{ .Get "title" }}

    {{ end }} +{{ if or (.Get "caption") (.Get "attr") -}} +

    +{{- .Get "caption" -}} +{{ with .Get "attrlink" }}{{ end }}{{ .Get "attr" | markdownify }}{{ if .Get "attrlink" }}{{ end -}} +

    +{{ end -}} +
    +{{ end -}} +
    diff --git a/layouts/shortcodes/search.html b/layouts/shortcodes/search.html new file mode 100644 index 0000000..784c598 --- /dev/null +++ b/layouts/shortcodes/search.html @@ -0,0 +1,22 @@ +

    {{ i18n "js_required" }}

    + + + + +
    + + diff --git a/layouts/shortcodes/video.html b/layouts/shortcodes/video.html new file mode 100644 index 0000000..e29807a --- /dev/null +++ b/layouts/shortcodes/video.html @@ -0,0 +1,6 @@ +
    + +{{ with .Get "caption" }}
    {{ . }}
    {{ end }} +
    diff --git a/layouts/shortcodes/wrapper.html b/layouts/shortcodes/wrapper.html new file mode 100644 index 0000000..371f73c --- /dev/null +++ b/layouts/shortcodes/wrapper.html @@ -0,0 +1 @@ +
    {{ if eq (.Get 1) "nomarkdown" }}{{ .Inner }}{{ else }}{{ .Inner | markdownify }}{{ end }}
    diff --git a/resources/_gen/assets/scss/sass/mobile.scss_4b3618896c13c1af159e65083abb6447.content b/resources/_gen/assets/scss/sass/mobile.scss_4b3618896c13c1af159e65083abb6447.content new file mode 100644 index 0000000..bea719f --- /dev/null +++ b/resources/_gen/assets/scss/sass/mobile.scss_4b3618896c13c1af159e65083abb6447.content @@ -0,0 +1,90 @@ +.main-menu, +.header__region { + display: none; } + @media (min-width: 666px) { + .main-menu, + .header__region { + display: block; } } +.mobile-nav { + font-family: Futura, "Century Gothic", AppleGothic, sans-serif; + position: absolute; + right: 0; + top: 0; + width: 100vw; + height: 100vh; + overflow: hidden; + z-index: 20; + pointer-events: none; } + @media (min-width: 666px) { + .mobile-nav { + display: none; } } + .js-nav-open .mobile-nav { + position: fixed; } + .mobile-nav__cover { + position: absolute; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.2); + opacity: 0; } + .js-nav-open .mobile-nav__cover { + opacity: 1; + pointer-events: auto; } + .mobile-nav__toggle { + display: block; + position: absolute; + top: 10px; + right: 10px; + padding: 6px 29px 4px 4px; + z-index: 22; + text-decoration: none; + font-weight: bold; + line-height: 1; + border: 1px solid #cccccc; + border-radius: 3px; + color: #000; + pointer-events: auto; } + @media (min-width: 666px) { + .mobile-nav__toggle { + display: none; } } + .js-nav-open .mobile-nav__toggle { + color: #fff; } + .mobile-nav__toggle::after { + position: absolute; + content: ''; + margin-left: 5px; + width: 20px; + height: 20px; + border-top: 12px double #000; + border-bottom: 4px solid #000; } + .js-nav-open .mobile-nav__toggle::after { + border-color: #fff; } + .mobile-nav__sheet { + background-color: #333333; + width: 90vw; + height: 100vh; + padding: 2rem; + transform: translateX(100vw); + z-index: 21; } + .mobile-nav__sheet a { + color: #fff; + text-decoration: none; } + .mobile-nav__sheet a:hover, .mobile-nav__sheet a:focus { + color: #fff; } + .js-nav-open .mobile-nav__sheet { + pointer-events: auto; + box-shadow: -10px 0 10px -10px #333333; + transform: translateX(10vw); } + .mobile-nav__navbar { + display: flex; + flex-direction: column; + padding: 0; + margin: 0; } + .mobile-nav__navbar li { + list-style-type: none; + margin: .4rem 0; } + .mobile-nav__cover, .mobile-nav__toggle, .mobile-nav__toggle::after, .mobile-nav__sheet { + transition: all 130ms ease-in; } + .js-nav-open .mobile-nav__cover, .js-nav-open .mobile-nav__toggle, .js-nav-open .mobile-nav__toggle::after, .js-nav-open .mobile-nav__sheet { + transition: all 330ms ease-out; } + +/*# sourceMappingURL=mobile.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/sass/mobile.scss_4b3618896c13c1af159e65083abb6447.json b/resources/_gen/assets/scss/sass/mobile.scss_4b3618896c13c1af159e65083abb6447.json new file mode 100644 index 0000000..87a946f --- /dev/null +++ b/resources/_gen/assets/scss/sass/mobile.scss_4b3618896c13c1af159e65083abb6447.json @@ -0,0 +1 @@ +{"Target":"css/mobile.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/scss/sass/print.scss_6f664080c634a8edb051ceda3df60601.content b/resources/_gen/assets/scss/sass/print.scss_6f664080c634a8edb051ceda3df60601.content new file mode 100644 index 0000000..207c26d --- /dev/null +++ b/resources/_gen/assets/scss/sass/print.scss_6f664080c634a8edb051ceda3df60601.content @@ -0,0 +1,23 @@ +@media print { + .print-none, + .pager, + aside, + nav, + footer { + display: none; } } + +@media print { + html { + font-size: 12pt; } + body, + .page { + background-color: #fff; } + .main { + width: 100%; } + :link, + :visited { + text-decoration: underline; } + abbr[title]::after { + content: " (" attr(title) ")"; } } + +/*# sourceMappingURL=print.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/sass/print.scss_6f664080c634a8edb051ceda3df60601.json b/resources/_gen/assets/scss/sass/print.scss_6f664080c634a8edb051ceda3df60601.json new file mode 100644 index 0000000..820f6c9 --- /dev/null +++ b/resources/_gen/assets/scss/sass/print.scss_6f664080c634a8edb051ceda3df60601.json @@ -0,0 +1 @@ +{"Target":"css/print.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/scss/sass/styles.scss_c253c1450adff31bb2ccb2afd691b09e.content b/resources/_gen/assets/scss/sass/styles.scss_c253c1450adff31bb2ccb2afd691b09e.content new file mode 100644 index 0000000..8418cbe --- /dev/null +++ b/resources/_gen/assets/scss/sass/styles.scss_c253c1450adff31bb2ccb2afd691b09e.content @@ -0,0 +1,856 @@ +html { + font-family: "Garamond Premier Pro", Charter, "Times New Roman", serif; + font-size: 137.5%; + line-height: 1.40909091em; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; + min-height: 100%; + box-sizing: border-box; } + @media (min-width: 1111px) { + html { + font-size: 112.5%; + line-height: 1.38888889em; } } +*, +*::before, +*::after { + box-sizing: inherit; } + +body { + margin: 0; + padding: 0; } + +h1, +.header__site-name { + font-size: 1.27272727rem; + line-height: 2.11363636rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + +h2 { + font-size: 1.18181818rem; + line-height: 2.11363636rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + +h3 { + font-size: 1.09090909rem; + line-height: 2.11363636rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + +h4 { + font-size: 1rem; + line-height: 1.40909091rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + +h5 { + font-size: 0.81818182rem; + line-height: 1.40909091rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + +h6 { + font-size: 0.72727273rem; + line-height: 1.40909091rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + +@media (min-width: 666px) { + h1, + .header__site-name { + font-size: 1.88888889rem; + line-height: 2.81818182rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + h2 { + font-size: 1.55555556rem; + line-height: 2.11363636rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + h3 { + font-size: 1.22222222rem; + line-height: 2.11363636rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + h4 { + font-size: 1rem; + line-height: 1.40909091rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + h5 { + font-size: 0.88888889rem; + line-height: 1.40909091rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } + h6 { + font-size: 0.77777778rem; + line-height: 1.40909091rem; + margin-top: 1.40909091rem; + margin-bottom: 1.40909091rem; } } + +.divider, +hr { + margin: 1.40909091rem 0; + border: 0; + border-top: 1px solid #cccccc; } + .divider > :first-child, + hr > :first-child { + margin-top: 1.40909091rem; } + +blockquote { + margin: 1.40909091rem 2rem; } + +dl, +ol, +ul { + margin: 1.40909091rem 0; } + +dd { + margin: 0 0 0 44px; } + +ol, +ul { + padding: 0 0 0 44px; } + ol ol, + ol ul, + ul ol, + ul ul { + margin: 0; } + +figure { + margin: 1.40909091rem 0; } + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; } + +p, +pre { + margin: 1.05681818rem 0; } + +code, +kbd, +samp, pre { + font-family: Menlo, "Ubuntu Mono", "DejaVu Sans Mono", "Courier New", Courier, monospace, sans-serif; + font-size: 1em; } + +a { + color: #000; + -webkit-text-decoration-skip: objects; } + +:visited { + color: #000; } + +a:hover, +a:focus { + color: #333333; } + +a:active { + color: #c00; } + +abbr[title] { + border-bottom: 0; + text-decoration: underline; + text-decoration: underline dotted; } + +b, +strong { + font-weight: inherit; } + +b, +strong { + font-weight: bolder; } + +small { + font-size: 0.81818182rem; } + +sub, +sup { + font-size: 0.72727273rem; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sub { + bottom: -.25em; } + +sup { + top: -.5em; } + +img, +svg { + max-width: 100%; + height: auto; } + +button, +input, +optgroup, +select, +textarea { + font-family: "Garamond Premier Pro", Charter, "Times New Roman", serif; + line-height: 1.40909091rem; + font-size: 100%; + box-sizing: border-box; + max-width: 100%; + margin: 0; } + +button { + overflow: visible; } + +button, +select { + text-transform: none; } + +input { + overflow: visible; } + +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { + height: auto; } + +[type='search'] { + -webkit-appearance: textfield; + outline-offset: -2px; } + [type='search']::-webkit-search-cancel-button, [type='search']::-webkit-search-decoration { + -webkit-appearance: none; } + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; } + +.button, +button, +[type='button'], +[type='reset'], +[type='submit'] { + font-family: Futura, "Century Gothic", AppleGothic, sans-serif; + margin-right: 1.05681818rem; + margin-bottom: 1.05681818rem; + display: inline-block; + padding: 2px 10px; + line-height: inherit; + text-decoration: none; + cursor: pointer; + color: #333333; + text-align: center; + background-image: linear-gradient(#f6f6f6, #e2e2e2); + border: 1px solid #e4e4e4; + border-left-color: #d2d2d2; + border-right-color: #d2d2d2; + border-bottom-color: #b4b4b4; + border-radius: 2px; + -moz-appearance: button; + -webkit-appearance: button; } + .button::-moz-focus-inner, + button::-moz-focus-inner, + [type='button']::-moz-focus-inner, + [type='reset']::-moz-focus-inner, + [type='submit']::-moz-focus-inner { + border-style: none; + padding: 0; } + .button:-moz-focusring, + button:-moz-focusring, + [type='button']:-moz-focusring, + [type='reset']:-moz-focusring, + [type='submit']:-moz-focusring { + outline: 1px dotted ButtonText; } + .button:hover, .button:focus, .button:active, + button:hover, + button:focus, + button:active, + [type='button']:hover, + [type='button']:focus, + [type='button']:active, + [type='reset']:hover, + [type='reset']:focus, + [type='reset']:active, + [type='submit']:hover, + [type='submit']:focus, + [type='submit']:active { + text-decoration: none; + color: #333333; } + .button:active, + button:active, + [type='button']:active, + [type='reset']:active, + [type='submit']:active { + border-color: #555; + text-shadow: #333333 0 -1px 0; + background: #666666; + color: #fff; } + +[disabled].button, +button[disabled], +[disabled][type='button'], +[disabled][type='reset'], +[disabled][type='submit'] { + cursor: default; + color: #999999; + background-color: #eeeeee; + border-color: #eeeeee; + background-image: none; + text-shadow: none; } + [disabled].button:hover, + button[disabled]:hover, + [disabled][type='button']:hover, + [disabled][type='reset']:hover, + [disabled][type='submit']:hover, [disabled].button:focus, + button[disabled]:focus, + [disabled][type='button']:focus, + [disabled][type='reset']:focus, + [disabled][type='submit']:focus, [disabled].button:active, + button[disabled]:active, + [disabled][type='button']:active, + [disabled][type='reset']:active, + [disabled][type='submit']:active { + color: #999999; } + +[type='checkbox'], +[type='radio'] { + box-sizing: border-box; + padding: 0; } + +fieldset { + padding: 0.49318182rem 0.70454545rem 0.91590909rem; + border: 1px solid #cccccc; } + +legend { + box-sizing: border-box; + display: table; + max-width: 100%; + margin-left: -5px; + padding: 0 5px; + color: inherit; + white-space: normal; } + +label { + display: block; + font-weight: bold; } + +progress { + vertical-align: baseline; } + +textarea { + overflow: auto; } + +table { + margin: 1.40909091rem 0; + border-collapse: collapse; + border-spacing: 0; + width: 100%; } + +td, +th { + padding: 0; } + +details { + display: block; } + +summary { + display: list-item; } + +menu { + margin: 1.40909091rem 0; + padding: 0 0 0 44px; } + menu menu, ol menu, ul menu { + margin: 0; } + +.layout__page { + max-width: 960px; } + @media (min-width: 666px) { + .layout__page { + margin: 0 auto; + min-height: 100vh; } } +.layout__header, .layout__footer, .layout__main, .layout__navigation, .layout__first-sidebar, .layout__second-sidebar, .layout__page-top, .layout__page-bottom { + padding: 0 10px; + min-width: 0; } + @media (min-width: 666px) { + .layout__header, .layout__footer, .layout__main, .layout__navigation, .layout__first-sidebar, .layout__second-sidebar, .layout__page-top, .layout__page-bottom { + padding: 0 20px; } } +@supports (display: grid) { + .layout__page { + display: grid; + grid-template-areas: 'head' 'nav' 'top' 'main' 'side1' 'side2' 'bottom' 'foot'; + grid-template-rows: auto auto auto 1fr auto auto auto auto; + grid-template-columns: 1fr; } + @media (min-width: 999px) { + .layout__page { + grid-template-rows: auto auto auto 1fr auto auto; } + .layout__sidebar-first { + grid-template-areas: 'head head' 'nav nav' 'side1 top' 'side1 main' 'side1 bottom' 'foot foot'; + grid-template-columns: 1fr 2fr; } + .layout__sidebar-second { + grid-template-areas: 'head head' 'nav nav' 'top side2' 'main side2' 'bottom side2' 'foot foot'; + grid-template-columns: 2fr 1fr; } + .layout__sidebar-two { + grid-template-areas: 'head head head' 'nav nav nav' 'side1 top side2' 'side1 main side2' 'side1 bottom side2' 'foot foot foot'; + grid-template-columns: 1fr 2fr 1fr; } } + .layout__header { + grid-area: head; } + .layout__navigation { + grid-area: nav; } + .layout__page-top { + grid-area: top; } + .layout__main { + grid-area: main; } + .layout__first-sidebar { + grid-area: side1; } + .layout__second-sidebar { + grid-area: side2; } + .layout__page-bottom { + grid-area: bottom; } + .layout__footer { + grid-area: foot; } } + +.box { + margin-bottom: 1.40909091rem; + border: 5px solid #cccccc; + padding: 1em; } + .box__title { + margin: 0; } + .box:focus, .box:hover, .box.is-focus, .box--is-focus { + border-color: #000; } + .box--highlight { + border-color: #000; } + +.clearfix::before { + content: ''; + display: table; } + +.clearfix::after { + content: ''; + display: table; + clear: both; } + +@media (min-width: 666px) { + .header { + display: flex; } } + +.header__logo { + margin: 0 20px 0 0; } + +.header__logo-image { + vertical-align: bottom; } + +.header__site-name { + margin: 0; + display: inline-block; } + +.header__site-link:link, .header__site-link:visited { + color: #000; + text-decoration: none; } + +.header__site-link:hover, .header__site-link:focus { + text-decoration: underline; } + +@media (min-width: 666px) { + .header__region { + margin-left: auto; } } + +.hidden, +html.nojs .nojs-hidden, +html.js .js-hidden { + display: none; } + +.highlight-mark { + color: #c00; + background-color: transparent; } + +.inline-links { + padding: 0; } + .inline-links__item { + display: inline; + list-style-type: none; + padding: 0 1em 0 0; } + +.inline-sibling { + display: inline; + margin-right: 10px; } + .inline-sibling__child, + .inline-sibling * { + display: inline; } + .inline-sibling__adjacent, + .inline-sibling + *, + .inline-sibling + * > :first-child, + .inline-sibling + * > :first-child > :first-child { + display: inline; } + +.inverted-box { + padding: 0.70454545rem; + background: #333333; + color: #fff; + border-radius: 5px; } + .inverted-box :link, + .inverted-box :visited { + color: #fff; } + .inverted-box p:first-of-type, + .inverted-box ul:first-of-type, + .inverted-box ol:first-of-type { + margin-top: 0; } + .inverted-box p:last-of-type, + .inverted-box ul:last-of-type, + .inverted-box ol:last-of-type { + margin-bottom: 0; } + +.language-selector .navbar::before { + content: ''; + background-image: url("../images/language-icon.png"); + background-size: 24px; + background-repeat: no-repeat; + height: 24px; + width: 24px; + margin-right: 8px; } + +article > .content ul, +aside ul { + display: table; + list-style: none; + padding: 0; } + article > .content ul > li, + aside ul > li { + display: table-row; } + article > .content ul > li::before, + aside ul > li::before { + font-size: 0.81818182rem; + padding-right: 0.70454545rem; + display: table-cell; + content: '\2022'; } + @media (min-width: 1111px) { + article > .content ul > li::before, + aside ul > li::before { + font-size: 0.88888889rem; } } +article > .content ol, +aside ol { + display: table; + list-style: none; + padding: 0; } + article > .content ol > li, + aside ol > li { + display: table-row; + counter-increment: table-ol; } + article > .content ol > li::before, + aside ol > li::before { + font-size: 0.81818182rem; + padding-right: 0.70454545rem; + display: table-cell; + content: counter(table-ol) "."; + text-align: right; } + @media (min-width: 1111px) { + article > .content ol > li::before, + aside ol > li::before { + font-size: 0.88888889rem; } } +.message { + padding: 10px; + border-width: 1px; + border-style: solid; + width: 95%; } + .message.status { + background-color: #f4feee; + color: #43a808; + border-color: #43a808; } + .message.warning { + background-color: #fffce6; + color: #000; + border-color: #000; } + .message.error { + background-color: #fff0f0; + color: #c00; + border-color: #c00; } + +.responsive-video { + position: relative; + padding-bottom: 56.25%; + padding-top: 25px; + height: 0; } + .responsive-video__embed, + .responsive-video iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + .responsive-video--4-3 { + padding-bottom: 75%; } + +.visually-hidden { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); + word-wrap: normal; } + .visually-hidden--off, + .visually-hidden--focusable:active, + .visually-hidden--focusable:focus { + position: static !important; + clip: auto; + height: auto; + width: auto; + overflow: visible; } + +.watermark { + font-family: Impact, "Arial Narrow", Helvetica, sans-serif; + font-weight: bold; + text-transform: uppercase; + display: block; + height: 0; + overflow: visible; + background-color: transparent; + color: #eeeeee; + font-size: 75px; + line-height: 1; + text-align: center; + text-shadow: 0 0 1px rgba(0, 0, 0, 0.1); + word-wrap: break-word; } + +.more-link { + text-align: right; } + .more-link__help-icon { + padding: 1px 0 1px 20px; + background-image: url(../sass/navigation/more-link/more-link__help-icon.svg); + background-position: 0 50%; + background-repeat: no-repeat; } + +.navbar { + display: flex; + flex-wrap: wrap; + margin: 0; + padding: 0; + text-align: left; } + .navbar__item, + .navbar li { + padding: 0 10px 0 0; + list-style-type: none; + list-style-image: none; } + +.pager { + margin-top: 0.70454545rem; + margin-bottom: 0.70454545rem; + clear: both; + padding: 0; + text-align: center; } + .pager__item, + .pager-item, + .pager-first, + .pager-previous, + .pager-next, + .pager-last, + .pager-ellipsis, + .pager__current-item, + .pager-current { + display: inline; + padding: 0 .5em; + list-style-type: none; + background-image: none; } + .pager__current-item, + .pager-current { + font-weight: bold; } + +body { + background-color: #eeeeee; } + +.page { + background-color: #fff; } + +.header { + padding-top: 10px; } + @media (min-width: 666px) { + .header { + padding-top: 20px; } } +.footer { + margin-top: 2.11363636rem; + padding: 0.70454545rem 0; + text-align: center; + border-top: 2px solid #333333; } + .footer p { + margin: 0; } + +th, +label, +legend, +figcaption { + font-size: 0.81818182rem; + line-height: 1.40909091rem; } + @media (min-width: 1111px) { + th, + label, + legend, + figcaption { + font-size: 0.88888889rem; + line-height: 1.40909091rem; } } +.language-selector, +article > header, +.content-dates, +.footer { + font-size: 0.72727273rem; + line-height: 1.40909091rem; } + @media (min-width: 1111px) { + .language-selector, + article > header, + .content-dates, + .footer { + font-size: 0.77777778rem; + line-height: 1.40909091rem; } } +h1, +h2, +h3, +th, +nav, +label, +legend, +article > header, +.content-dates, +.header, +.footer { + font-family: Futura, "Century Gothic", AppleGothic, sans-serif; + color: #333333; + font-weight: normal; } + +article > header { + color: #666666; } + +article .submitted { + margin-bottom: .5rem; } + +@media (min-width: 888px) { + article .submitted, + article .tags { + display: inline-block; + padding-right: 1rem; } } + +article .tags ul { + display: inline-flex; + flex-wrap: wrap; + margin: 0; + padding: 0; } + +article .tags li { + list-style-type: none; + padding-right: 0.28181818rem; } + +article .content-dates { + color: #666666; + text-align: right; } + +article code { + font-size: 0.72727273rem; + line-height: 1.40909091rem; + overflow-wrap: break-word; } + @media (min-width: 1111px) { + article code { + font-size: 0.77777778rem; + line-height: 1.40909091rem; } } +article pre { + color: #333333; + border-radius: 3px; + padding: 5px; + border: 1px solid #cccccc; + background-color: #fff; + overflow: auto; + max-height: 300px; + max-width: 90vw; } + article pre.chroma { + max-height: initial; + overflow-x: scroll; } + article pre > code { + display: inline-block; + white-space: pre; } + +article .js-clipboard-button { + display: block; } + +.title-submitted { + margin-bottom: 0; } + +@media (min-width: 666px) { + figure.image figcaption { + display: table-caption; + caption-side: bottom; } } + +figure.image figcaption h4, +figure.image figcaption p { + margin: 0; } + +@media (min-width: 666px) { + figure.image { + display: table; } + figure.image img { + display: block; } + figure.image.center { + margin-left: auto; + margin-right: auto; } + figure.image.left { + padding: 0 0.70454545rem 0.70454545rem 0; + margin: 0; + float: left; + clear: both; } + figure.image.left figcaption { + padding: 0 0.70454545rem 0.70454545rem 0; } + figure.image.right { + padding: 0 0 0.70454545rem 0.70454545rem; + margin: 0; + float: right; + clear: both; } + figure.image.right figcaption { + padding: 0 0 0.70454545rem 0.70454545rem; } } + +figure.podcast audio { + width: 95%; } + +.main-menu { + margin-top: 0.70454545rem; + outline: 0; } + .main-menu li { + margin-right: 0.70454545rem; + margin-bottom: 0.70454545rem; + padding: 0; } + .main-menu a { + display: block; + background-color: #333333; + color: #fff; + padding: 2px 8px; + text-decoration: none; } + .main-menu a:hover, .main-menu a:focus { + background-color: #666666; } + .main-menu a:active, .main-menu a.active { + background-color: #333333; + text-decoration: underline; } + +.menu a.active { + text-decoration: none; } + +.search-input { + margin: 1.40909091rem 0; } + +.search-text { + font-size: 1.09090909rem; + line-height: 1.40909091rem; + max-width: 80%; } + +.content input, +.content textarea { + margin-bottom: 1.05681818rem; + width: 92%; } + .content input:required + span::after, + .content textarea:required + span::after { + content: ' *'; + color: #c00; + vertical-align: top; } + .content input:not(:placeholder-shown):valid, + .content textarea:not(:placeholder-shown):valid { + background-color: #f4feee; } + .content input:not(:placeholder-shown):invalid, + .content textarea:not(:placeholder-shown):invalid { + background-color: #fff0f0; } + +.js-submitted input:valid, +.js-submitted textarea:valid { + background-color: #f4feee; } + +.js-submitted input:invalid, +.js-submitted textarea:invalid { + background-color: #fff0f0; } + +/*# sourceMappingURL=styles.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/sass/styles.scss_c253c1450adff31bb2ccb2afd691b09e.json b/resources/_gen/assets/scss/sass/styles.scss_c253c1450adff31bb2ccb2afd691b09e.json new file mode 100644 index 0000000..081a4be --- /dev/null +++ b/resources/_gen/assets/scss/sass/styles.scss_c253c1450adff31bb2ccb2afd691b09e.json @@ -0,0 +1 @@ +{"Target":"css/styles.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/static/android-chrome-96x96.png b/static/android-chrome-96x96.png new file mode 100644 index 0000000..555e3b6 Binary files /dev/null and b/static/android-chrome-96x96.png differ diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png new file mode 100644 index 0000000..37db8ae Binary files /dev/null and b/static/apple-touch-icon.png differ diff --git a/static/browserconfig.xml b/static/browserconfig.xml new file mode 100644 index 0000000..b3930d0 --- /dev/null +++ b/static/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/static/css/custom.css b/static/css/custom.css new file mode 100644 index 0000000..fed24ec --- /dev/null +++ b/static/css/custom.css @@ -0,0 +1,59 @@ +@font-face { + font-family: 'PressStart'; + src: url('/fonts/PressStart/PressStart2P-Regular.ttf'); +} + +@font-face { + font-family: 'Dosis'; + src: url('/fonts/Dosis/ShadowsIntoLight-Regular.ttf'); +} + +@font-face { + font-family: 'Dosis'; + src: url('/fonts/Dosis/Dosis-VariableFont_wght.ttf'); +} + +.list-page, .single-page { + background-color: #e6e6fa; +} + +h1, h2, h3, h4, h5, h6 { + font-family: Dosis; +} + +body, .submitted, .tags, .navbar { + font-family: Dosis; +} + +body p { + font-size: 1.3em; +} + +.submitted, .tags { + font-size: 1.3em; + color: black; +} + +.navbar { + font-size: 1.3em; +} + +.dropdown { + position: relative; + display: inline-block; +} + +.dropdown-content { + display: none; + position: absolute; + background-color: #f9f9f9; + min-width: 160px; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + padding: 12px 16px; + z-index: 1; +} + +.dropdown:hover .dropdown-content { + display: block; +} + diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png new file mode 100644 index 0000000..72ef03e Binary files /dev/null and b/static/favicon-16x16.png differ diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png new file mode 100644 index 0000000..2b3774c Binary files /dev/null and b/static/favicon-32x32.png differ diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..f659e15 Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/fonts/Dosis/Dosis-VariableFont_wght.ttf b/static/fonts/Dosis/Dosis-VariableFont_wght.ttf new file mode 100644 index 0000000..78af21c Binary files /dev/null and b/static/fonts/Dosis/Dosis-VariableFont_wght.ttf differ diff --git a/static/fonts/Dosis/OFL.txt b/static/fonts/Dosis/OFL.txt new file mode 100644 index 0000000..35a7281 --- /dev/null +++ b/static/fonts/Dosis/OFL.txt @@ -0,0 +1,95 @@ +Copyright (c) 2011, Edgar Tolentino and Pablo Impallari (www.impallari.com|impallari@gmail.com), +Copyright (c) 2011, Igino Marini. (www.ikern.com|mail@iginomarini.com), +with Reserved Font Names "Dosis". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/static/fonts/Dosis/README.txt b/static/fonts/Dosis/README.txt new file mode 100644 index 0000000..76015bf --- /dev/null +++ b/static/fonts/Dosis/README.txt @@ -0,0 +1,69 @@ +Dosis Variable Font +=================== + +This download contains Dosis as both a variable font and static fonts. + +Dosis is a variable font with this axis: + wght + +This means all the styles are contained in a single file: + Dosis-VariableFont_wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Dosis: + static/Dosis-ExtraLight.ttf + static/Dosis-Light.ttf + static/Dosis-Regular.ttf + static/Dosis-Medium.ttf + static/Dosis-SemiBold.ttf + static/Dosis-Bold.ttf + static/Dosis-ExtraBold.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them freely in your products & projects - print or digital, +commercial or otherwise. However, you can't sell the fonts on their own. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/static/fonts/Dosis/static/Dosis-Bold.ttf b/static/fonts/Dosis/static/Dosis-Bold.ttf new file mode 100644 index 0000000..a9cf34a Binary files /dev/null and b/static/fonts/Dosis/static/Dosis-Bold.ttf differ diff --git a/static/fonts/Dosis/static/Dosis-ExtraBold.ttf b/static/fonts/Dosis/static/Dosis-ExtraBold.ttf new file mode 100644 index 0000000..71f25b0 Binary files /dev/null and b/static/fonts/Dosis/static/Dosis-ExtraBold.ttf differ diff --git a/static/fonts/Dosis/static/Dosis-ExtraLight.ttf b/static/fonts/Dosis/static/Dosis-ExtraLight.ttf new file mode 100644 index 0000000..b47296d Binary files /dev/null and b/static/fonts/Dosis/static/Dosis-ExtraLight.ttf differ diff --git a/static/fonts/Dosis/static/Dosis-Light.ttf b/static/fonts/Dosis/static/Dosis-Light.ttf new file mode 100644 index 0000000..9da0907 Binary files /dev/null and b/static/fonts/Dosis/static/Dosis-Light.ttf differ diff --git a/static/fonts/Dosis/static/Dosis-Medium.ttf b/static/fonts/Dosis/static/Dosis-Medium.ttf new file mode 100644 index 0000000..8b47958 Binary files /dev/null and b/static/fonts/Dosis/static/Dosis-Medium.ttf differ diff --git a/static/fonts/Dosis/static/Dosis-Regular.ttf b/static/fonts/Dosis/static/Dosis-Regular.ttf new file mode 100644 index 0000000..f31a36a Binary files /dev/null and b/static/fonts/Dosis/static/Dosis-Regular.ttf differ diff --git a/static/fonts/Dosis/static/Dosis-SemiBold.ttf b/static/fonts/Dosis/static/Dosis-SemiBold.ttf new file mode 100644 index 0000000..9648025 Binary files /dev/null and b/static/fonts/Dosis/static/Dosis-SemiBold.ttf differ diff --git a/static/fonts/PressStart/OFL.txt b/static/fonts/PressStart/OFL.txt new file mode 100644 index 0000000..70881e0 --- /dev/null +++ b/static/fonts/PressStart/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2012 The Press Start 2P Project Authors (cody@zone38.net), with Reserved Font Name "Press Start 2P". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/static/fonts/PressStart/PressStart2P-Regular.ttf b/static/fonts/PressStart/PressStart2P-Regular.ttf new file mode 100644 index 0000000..e9b029c Binary files /dev/null and b/static/fonts/PressStart/PressStart2P-Regular.ttf differ diff --git a/static/fonts/ShadowsIntoLight/OFL.txt b/static/fonts/ShadowsIntoLight/OFL.txt new file mode 100644 index 0000000..f19b48e --- /dev/null +++ b/static/fonts/ShadowsIntoLight/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2010, Kimberly Geswein (kimberlygeswein.com) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/static/fonts/ShadowsIntoLight/ShadowsIntoLight-Regular.ttf b/static/fonts/ShadowsIntoLight/ShadowsIntoLight-Regular.ttf new file mode 100644 index 0000000..b7bc796 Binary files /dev/null and b/static/fonts/ShadowsIntoLight/ShadowsIntoLight-Regular.ttf differ diff --git a/static/images/header.png b/static/images/header.png new file mode 100644 index 0000000..8ba8a3a Binary files /dev/null and b/static/images/header.png differ diff --git a/static/images/logo.png b/static/images/logo.png new file mode 100644 index 0000000..b03a906 Binary files /dev/null and b/static/images/logo.png differ diff --git a/static/images/logo@2x.png b/static/images/logo@2x.png new file mode 100644 index 0000000..f1cdf42 Binary files /dev/null and b/static/images/logo@2x.png differ diff --git a/static/mstile-150x150.png b/static/mstile-150x150.png new file mode 100644 index 0000000..1bac155 Binary files /dev/null and b/static/mstile-150x150.png differ diff --git a/static/safari-pinned-tab.svg b/static/safari-pinned-tab.svg new file mode 100644 index 0000000..f9e0b39 --- /dev/null +++ b/static/safari-pinned-tab.svg @@ -0,0 +1,39 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + + + diff --git a/static/site.webmanifest b/static/site.webmanifest new file mode 100644 index 0000000..c42d1a5 --- /dev/null +++ b/static/site.webmanifest @@ -0,0 +1,14 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-96x96.png", + "sizes": "96x96", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/themes/zen b/themes/zen new file mode 160000 index 0000000..1958081 --- /dev/null +++ b/themes/zen @@ -0,0 +1 @@ +Subproject commit 1958081f6bc24b61d5efb4460bc6a7dd505de081