Browse Source

add files

master
acheney 7 months ago
commit
ee66619976
  1. 0
      .hugo_build.lock
  2. 32
      archetypes/album.md
  3. 22
      archetypes/art.md
  4. 13
      archetypes/blog.md
  5. 8
      archetypes/code.md
  6. 17
      archetypes/compilation.md
  7. 9
      archetypes/default.md
  8. 21
      archetypes/docs.md
  9. 34
      archetypes/ep.md
  10. 32
      archetypes/single.md
  11. 20
      archetypes/video.md
  12. 54
      config.toml
  13. 5
      content/_index.md
  14. 11
      content/about/_index.md
  15. 8
      content/album/_index.md
  16. 6
      content/art/_index.md
  17. 6
      content/blog/_index.md
  18. 8
      content/categories/_index.md
  19. 6
      content/code/_index.md
  20. 8
      content/compilation/_index.md
  21. 14
      content/docs/_index.md
  22. 8
      content/ep/_index.md
  23. 6
      content/music/_index.md
  24. 8
      content/pseudonyms/_index.md
  25. 8
      content/single/_index.md
  26. 7
      content/sunvox/_index.md
  27. 6
      content/videos/_index.md
  28. 9
      layouts/404.html
  29. 12
      layouts/_default/about.html
  30. 16
      layouts/_default/art-list.html
  31. 15
      layouts/_default/art.html
  32. 15
      layouts/_default/blog-category-term.html
  33. 15
      layouts/_default/blog-category-terms.html
  34. 14
      layouts/_default/blog-list.html
  35. 15
      layouts/_default/blog-post.html
  36. 15
      layouts/_default/code.html
  37. 54
      layouts/_default/music-list.html
  38. 16
      layouts/_default/music-musictype-term.html
  39. 56
      layouts/_default/music-pseudonym-term.html
  40. 20
      layouts/_default/music-pseudonym-terms.html
  41. 16
      layouts/_default/music-release.html
  42. 15
      layouts/_default/sunvox-modules-docs-module.html
  43. 24
      layouts/_default/sunvox-modules-docs-type.html
  44. 29
      layouts/_default/sunvox-modules-docs.html
  45. 16
      layouts/_default/sunvox-modules.html
  46. 16
      layouts/_default/sunvox-resources.html
  47. 16
      layouts/_default/sunvox-songs.html
  48. 15
      layouts/_default/sunvox.html
  49. 14
      layouts/_default/video-list.html
  50. 15
      layouts/_default/video.html
  51. 28
      layouts/index.html
  52. 27
      layouts/partials/audio-player.html
  53. 9
      layouts/partials/filelist.html
  54. 9
      layouts/partials/metadata-art-home.html
  55. 2
      layouts/partials/metadata-art-post.html
  56. 4
      layouts/partials/metadata-art.html
  57. 8
      layouts/partials/metadata-blog-category.html
  58. 13
      layouts/partials/metadata-blog-post.html
  59. 14
      layouts/partials/metadata-blog.html
  60. 6
      layouts/partials/metadata-code-home.html
  61. 2
      layouts/partials/metadata-code.html
  62. 2
      layouts/partials/metadata-music-alias.html
  63. 1
      layouts/partials/metadata-music-aliases.html
  64. 18
      layouts/partials/metadata-music-home.html
  65. 57
      layouts/partials/metadata-music-post.html
  66. 8
      layouts/partials/metadata-music.html
  67. 2
      layouts/partials/metadata-sunvox-doc-module.html
  68. 1
      layouts/partials/metadata-sunvox-doc.html
  69. 5
      layouts/partials/metadata-sunvox-modules-home.html
  70. 2
      layouts/partials/metadata-sunvox.html
  71. 8
      layouts/partials/metadata-video-home.html
  72. 4
      layouts/partials/metadata-video-post.html
  73. 7
      layouts/partials/metadata-video.html
  74. 8
      layouts/partials/module-docs-type-list.html
  75. 29
      layouts/shortcodes/download-link.html
  76. 4
      layouts/shortcodes/image-caption.html
  77. 29
      layouts/shortcodes/module-link.html
  78. 179
      layouts/shortcodes/player.html
  79. 30
      layouts/shortcodes/release-link.html
  80. BIN
      static/favicon.ico
  81. 20
      themes/sunvox/LICENSE
  82. 2
      themes/sunvox/archetypes/default.md
  83. 0
      themes/sunvox/layouts/404.html
  84. 14
      themes/sunvox/layouts/_default/baseof.html
  85. 15
      themes/sunvox/layouts/_default/list.html
  86. 12
      themes/sunvox/layouts/_default/single.html
  87. 15
      themes/sunvox/layouts/index.html
  88. 372
      themes/sunvox/layouts/partials/color-menu.html
  89. 5
      themes/sunvox/layouts/partials/footer.html
  90. 15
      themes/sunvox/layouts/partials/head.html
  91. 16
      themes/sunvox/layouts/partials/header.html
  92. 2
      themes/sunvox/layouts/partials/svg.html
  93. 8
      themes/sunvox/layouts/partials/top-functions.html
  94. 958
      themes/sunvox/static/css/style.css
  95. BIN
      themes/sunvox/static/fonts/SunDog.ttf
  96. BIN
      themes/sunvox/static/fonts/SunDogMonospace.ttf
  97. 1
      themes/sunvox/static/images/bandcamp.svg
  98. 1
      themes/sunvox/static/images/bg-glow.svg
  99. 38
      themes/sunvox/static/images/colors.svg
  100. 1
      themes/sunvox/static/images/download.svg
  101. Some files were not shown because too many files have changed in this diff Show More

0
.hugo_build.lock

32
archetypes/album.md

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
---
title: "{{ replace .Name "-" " " }}"
date:
type: article
subpage: "music"
aside: "viewing music release..."
layout: music-release
url: "/music/{{.File.Dir }}{{ .Name }}/"
aliases: ["/{{ .File.Dir }}{{ .Name }}/"]
pseudonyms: [""]
artist:
musictypes: ["album"]
cover:
tracklist: [""]
tracklengths: []
---
{{< player >}}
{{< release-link platform="bandcamp" link="" >}}
{{< release-link platform="soundcloud" link="" >}}
{{< release-link platform="newgrounds" link="" >}}
{{< release-link platform="youtube" link="" >}}
# info {class="center-header"}
# notes {class="center-header"}
# credits {class="center-header"}
# samples {class="center-header"}

22
archetypes/art.md

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
---
title: "{{ replace .Name "-" " " | title }}"
date:
type: article
subpage: "art"
aside: "viewing art piece..."
layout: art
url: "/art/"
image: /images/art/
---
{{< release-link platform="download" link="" >}}
{{< release-link platform="newgrounds" link="" >}}
# notes {class="center-header"}
# info {class="center-header"}
created
made using

13
archetypes/blog.md

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
---
title: "{{ replace .Name "-" " " }}"
date: {{ .Date }}
subpage: "blog"
aside: "viewing blog post..."
type: "blog/posts"
layout: blog-post
draft: true
categories: []
excerpt: "excerpt goes here"
---

8
archetypes/code.md

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
---
title: "{{ replace .Name "-" " " | title }}"
date:
subpage: "code"
_build:
render: never
---

17
archetypes/compilation.md

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
---
title: "{{ replace .Name "-" " " }}"
date:
type: article
subpage: "music"
aside: "viewing music release..."
layout: music-release
url: "/music/{{.File.Dir }}{{ .Name }}/"
aliases: ["/{{ .File.Dir }}{{ .Name }}/"]
pseudonyms: [""]
artist:
musictypes: ["compilation"]
cover:
tracklist: [""]
tracklengths: []
---

9
archetypes/default.md

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
onHomepage: true
layout:
url:
aliases: []
---

21
archetypes/docs.md

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
---
title: "{{ replace .Name "-" " " }}"
date: {{ .Date }}
type: article
subpage: "sunvox-modules"
aside: "viewing module docs..."
layout: sunvox-modules-docs-module
url: "/sunvox/modules/docs/{{ .Name }}"
module: "true"
moduleversion:
---
{{< module-link module="" dir="" text="download module" >}}
---
# changelog
---
# controllers

34
archetypes/ep.md

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
---
title: "{{ replace .Name "-" " " }}"
date:
type: article
subpage: "music"
aside: "viewing music release..."
layout: music-release
url: "/music/{{.File.Dir }}{{ .Name }}/"
aliases: ["/{{ .File.Dir }}{{ .Name }}/"]
pseudonyms: [""]
artist:
musictypes: ["ep"]
cover:
tracklist: [""]
tracklengths: []
trackfiles: []
---
{{< player >}}
{{< release-link plaform="download" link="" >}}
{{< release-link platform="bandcamp" link="" >}}
{{< release-link platform="soundcloud" link="" >}}
{{< release-link platform="newgrounds" link="" >}}
{{< release-link platform="youtube" link="" >}}
# info {class="center-header"}
# notes {class="center-header"}
# credits {class="center-header"}
# samples {class="center-header"}

32
archetypes/single.md

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
---
title: "{{ replace .Name "-" " " }}"
date:
type: article
subpage: "music"
aside: "viewing music release..."
layout: music-release
url: "/music/{{.File.Dir }}{{ .Name }}/"
aliases: ["/{{ .File.Dir }}{{ .Name }}/"]
pseudonyms: [""]
artist:
musictypes: ["single"]
cover:
tracklist: [""]
tracklengths: []
---
{{< player >}}
{{< release-link platform="bandcamp" link="" >}}
{{< release-link platform="soundcloud" link="" >}}
{{< release-link platform="newgrounds" link="" >}}
{{< release-link platform="youtube" link="" >}}
# info {class="center-header"}
# notes {class="center-header"}
# credits {class="center-header"}
# samples {class="center-header"}

20
archetypes/video.md

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
---
title: "{{ replace .Name "-" " " | title }}"
date:
type: article
subpage: "videos"
aside: "viewing videos..."
layout: video
url: "/videos/"
thumbnail: /images/thumbs/
---
{{< release-link platform="youtube" link="" >}}
{{< release-link platform="peertube" link="" >}}
# notes {class="center-header"}
# info {class="center-header"}
recorded

54
config.toml

@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
baseURL = 'http://acheney.xyz/'
title = 'acheney.xyz'
theme = 'sunvox'
enableRobotsTXT = true
copyright = 'unless otherwise noted, this website and all content within is licensed under cc by 3.0'
languageCode = 'en-us'
[author]
name = "A Cheney"
[menu]
[[menu.main]]
name = "about"
url = "/about/"
weight = 1
[[menu.main]]
name = "blog"
url = "/blog/"
weight = 2
[[menu.main]]
name = "music"
url = "/music/"
weight = 3
[[menu.main]]
name = "art"
url = "/art/"
weight = 4
[[menu.main]]
name = "videos"
url = "/videos/"
weight = 5
[[menu.main]]
name = "code"
url = "/code/"
weight = 6
[[menu.main]]
name = "sunvox"
url = "/sunvox/"
weight = 7
[taxonomies]
category = 'categories'
pseudonym = 'pseudonyms'
musictype = 'musictypes'
moduletype = 'moduletypes'
[permalinks]
category = '/blog/categories/:slug/'
pseudonym = '/music/pseudonyms/:slug/'
musictype = '/music/:slug/'
[outputs]
home = ["HTML", "RSS"]

5
content/_index.md

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
---
title: "home"
aside: "viewing homepage..."
onHomepage: false
---

11
content/about/_index.md

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
---
title: "about"
aside: "viewing about page..."
layout: about
onHomepage: false
url: "/about/"
---

8
content/album/_index.md

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
---
title: "albums"
aside: "viewing albums..."
onHomepage: false
layout: music-musictype-term
url: "/music/album/"
aliases: ["/album/"]
---

6
content/art/_index.md

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
---
title: "art"
aside: "viewing art pieces..."
layout: art-list
onHomepage: false
---

6
content/blog/_index.md

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
---
title: "blog"
aside: "viewing blog posts..."
layout: blog-list
onHomepage: false
---

8
content/categories/_index.md

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
---
title: "categories"
aside: "viewing categories..."
hidden: true
url: "/blog/categories/"
aliases: ["/categories/"]
layout: blog-category-terms
---

6
content/code/_index.md

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
---
title: "code"
aside: "viewing code projects..."
layout: code
onHomepage: false
---

8
content/compilation/_index.md

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
---
title: "compilations"
aside: "viewing compilations..."
onHomepage: false
layout: music-musictype-term
url: "/music/compilation/"
aliases: ["/compilation/"]
---

14
content/docs/_index.md

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
---
title: "sunvox module docs"
aside: "viewing module docs..."
onHomepage: false
layout: sunvox-modules-docs
url: "/sunvox/modules/docs"
aliases: ["/docs/"]
---
### welcome to the documentation for my sunvox modules!
### to navigate the docs, simply click on one of the tags shown below; all modules under that tag will be displayed
### the newly updated modules are shown at the bottom of this page

8
content/ep/_index.md

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
---
title: "eps"
aside: "viewing eps..."
onHomepage: false
layout: music-musictype-term
url: "/music/ep/"
aliases: ["/ep/"]
---

6
content/music/_index.md

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
---
title: "music"
aside: "viewing music releases..."
onHomepage: false
layout: music-list
---

8
content/pseudonyms/_index.md

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
---
title: "pseudonyms"
aside: "viewing pseudonyms..."
onHomepage: false
layout: music-pseudonym-terms
url: "/music/pseudonyms/"
aliases: ["/pseudonyms/"]
---

8
content/single/_index.md

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
---
title: "singles"
aside: "viewing singles..."
onHomepage: false
layout: music-musictype-term
url: "/music/single/"
aliases: ["/single/"]
---

7
content/sunvox/_index.md

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
---
title: "sunvox"
aside: "viewing sunvox content..."
onHomepage: false
layout: sunvox
url: "/sunvox/"
---

6
content/videos/_index.md

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
---
title: "videos"
aside: "viewing videos..."
layout: video-list
onHomepage: false
---

9
layouts/404.html

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
{{ define "main" }}
<h1 id="gallery-header">404</h1>
<h2 id="gallery-subtitle"><a href="/" class="white">go home?</a></h2>
{{ end }}
{{ define "aside" }}
<aside>
<h3>viewing 404 page...</h3>
</aside>
{{ end }}

12
layouts/_default/about.html

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<article id="about">
{{ .Content }}
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

16
layouts/_default/art-list.html

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<div class="release-gallery">
{{ range where .Pages.ByPublishDate.Reverse "Params.hidden" "ne" "true"}}
<article>
{{- partial "metadata-art.html" . -}}
</article>
{{ end }}
</div>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

15
layouts/_default/art.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Params.subpage }}</h1>
<article>
{{- partial "metadata-art-post.html" . -}}
<div class="content">
{{ .Content }}
</div>
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

15
layouts/_default/blog-category-term.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<h3 id="gallery-subtitle">{{ .Params.categorymetadata }}</h3>
{{ range .Pages }}
<article>
{{- partial "metadata-blog-category.html" . -}}
</article>
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

15
layouts/_default/blog-category-terms.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
{{ range $key, $taxonomy := .Site.Taxonomies.categories }}
<article>
<h1><a class="white" href="{{ .Page.RelPermalink }}">{{ $key }}</a></h1>
<h3><a class="white" href="{{ .Page.RelPermalink }}">{{ .Page.Params.categorymetadata }}</a></h3>
</article>
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

14
layouts/_default/blog-list.html

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
{{ range where .Pages.ByPublishDate.Reverse "Params.hidden" "ne" "true"}}
<article>
{{- partial "metadata-blog.html" . -}}
</article>
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

15
layouts/_default/blog-post.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Params.subpage }}</h1>
<article>
{{- partial "metadata-blog-post.html" . -}}
<div class="content">
{{ .Content }}
</div>
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

15
layouts/_default/code.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<h2 id="gallery-subtitle">proudly hosted by gitea</h2>
{{ range where .Pages.ByPublishDate.Reverse "Params.hidden" "ne" "true"}}
<article>
{{ partial "metadata-code.html" . }}
</article>
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

54
layouts/_default/music-list.html

@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<h2 id="gallery-subtitle">sunvox project files can be downloaded <a class="subtitle-link" href="/sunvox/songs">here</a>. wip/unreleased songs can be found in the #wips channel at <a class="subtitle-link" href="https://chat.acheney.xyz">chat.acheney.xyz</a></h2>
<h2 class="release-gallery-header"><a href="/music/pseudonyms" class="music-type-header">pseudonyms</a></h2>
<div id="alias-gallery">
{{ range $pseudonym, $pseudonyms := .Site.Taxonomies.pseudonyms }}
{{ $trim := $pseudonym | urlize }}
{{ $svg := ( printf "%s%s%s" "/static/images/pseudonyms/" $trim ".svg" ) }}
<article class="alias-display">
<a href="{{"music/pseudonyms/" | relLangURL}}{{$pseudonym | urlize}}"><div class="alias-logo">{{- partial "svg.html" $svg -}}</div></a>
</article>
{{ end }}
</div>
<h2 class="release-gallery-header"><a href="/music/album" class="music-type-header">albums</a></h2>
<div class="release-gallery">
{{ range .Site.Taxonomies.musictypes.album }}
<article>
{{ partial "metadata-music.html" . }}
</article>
{{ end }}
</div>
<h2 class="release-gallery-header"><a href="/music/ep" class="music-type-header">eps</a></h2>
<div class="release-gallery">
{{ range .Site.Taxonomies.musictypes.ep }}
<article>
{{ partial "metadata-music.html" . }}
</article>
{{ end }}
</div>
<h2 class="release-gallery-header"><a href="/music/single" class="music-type-header">singles</a></h2>
<div class="release-gallery">
{{ range .Site.Taxonomies.musictypes.single }}
<article>
{{ partial "metadata-music.html" . }}
</article>
{{ end }}
</div>
<h2 class="release-gallery-header"><a href="/music/compilation" class="music-type-header">compilations</a></h2>
<div class="release-gallery">
{{ range .Site.Taxonomies.musictypes.compilation }}
<article>
{{ partial "metadata-music.html" . }}
</article>
{{ end }}
</div>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

16
layouts/_default/music-musictype-term.html

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<div class="release-gallery">
{{ range .Pages }}
<article>
{{ partial "metadata-music.html" . }}
</article>
{{ end }}
</div>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

56
layouts/_default/music-pseudonym-term.html

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
{{ $trim := strings.TrimRight "/" (strings.TrimLeft "/music/pseudonyms/" .RelPermalink) }}
{{ $svg := ( printf "%s%s%s" "/static/images/icons/" $trim ".svg" ) }}
<div class="alias-icon">
{{- partial "svg.html" $svg -}}
</div>
<h1 id="gallery-header">{{ .Title }}</h1>
<h2 class="release-gallery-header"><a href="/music/album" class="music-type-header">albums</a></h2>
<div class="release-gallery">
{{ $entries := .Pages }}
{{ $entries = where $entries ".Params.musictypes" "intersect" (slice "album") }}
{{ range $entries }}
<article>
{{ partial "metadata-music-alias.html" . }}
</article>
{{ end }}
</div>
<h2 class="release-gallery-header"><a href="/music/ep" class="music-type-header">eps</a></h2>
<div class="release-gallery">
{{ $entries := .Pages }}
{{ $entries = where $entries ".Params.musictypes" "intersect" (slice "ep") }}
{{ range $entries }}
<article>
{{ partial "metadata-music-alias.html" . }}
</article>
{{ end }}
</div>
<h2 class="release-gallery-header"><a href="/music/single" class="music-type-header">singles</a></h2>
<div class="release-gallery">
{{ $entries := .Pages }}
{{ $entries = where $entries ".Params.musictypes" "intersect" (slice "single") }}
{{ range $entries }}
<article>
{{ partial "metadata-music-alias.html" . }}
</article>
{{ end }}
</div>
<h2 class="release-gallery-header"><a href="/music/compilation" class="music-type-header">compilations</a></h2>
<div class="release-gallery">
{{ $entries := .Pages }}
{{ $entries = where $entries ".Params.musictypes" "intersect" (slice "compilation") }}
{{ range $entries }}
<article>
{{ partial "metadata-music-alias.html" . }}
</article>
{{ end }}
</div>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

20
layouts/_default/music-pseudonym-terms.html

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<div id="alias-gallery">
{{ range $pseudonym, $pseudonyms := .Site.Taxonomies.pseudonyms }}
{{ $trim := $pseudonym | urlize }}
{{ $svg := ( printf "%s%s%s" "/static/images/pseudonyms/" $trim ".svg" ) }}
<article class="alias-display">
<a href="{{"music/pseudonyms/" | relLangURL}}{{$pseudonym | urlize}}"><div class="alias-logo">{{- partial "svg.html" $svg -}}</div></a>
</article>
{{ end }}
</div>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

16
layouts/_default/music-release.html

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Params.subpage }}</h1>
<article>
{{- partial "metadata-music-post.html" . -}}
<div class="content">
{{ .Content }}
</div>
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

15
layouts/_default/sunvox-modules-docs-module.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">sunvox module docs</h1>
<article>
{{- partial "metadata-sunvox-doc-module.html" . -}}
<div class="content">
{{ .Content }}
</div>
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

24
layouts/_default/sunvox-modules-docs-type.html

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<h2 id="gallery-subtitle">module tags</h2>
<div id="module-type-list-wrapper">
<ul class="module-type-list">
{{ with .Site.GetPage "docs/" }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
{{ partial "module-docs-type-list.html" . }}
{{ end }}
</ul>
</div>
<h2 id="gallery-subtitle">modules</h2>
{{ range .RegularPagesRecursive.ByTitle }}
<article>
{{ partial "metadata-sunvox-doc.html" . }}
</article>
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

29
layouts/_default/sunvox-modules-docs.html

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<div class="content">
{{ .Content }}
</div>
<h2 id="gallery-subtitle">module tags</h2>
<div id="module-type-list-wrapper">
<ul class="module-type-list">
{{ with .Site.GetPage "docs/" }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
{{ partial "module-docs-type-list.html" . }}
{{ end }}
</ul>
</div>
<h2 id="gallery-subtitle">newest modules</h2>
{{ range where .Site.RegularPages.ByTitle ".Params.module" "eq" "true" }}
{{ if eq .Params.moduleversion 1.2 }}
<article>
{{ partial "metadata-sunvox-doc.html" . }}
</article>
{{ end }}
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

16
layouts/_default/sunvox-modules.html

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Params.subpage }}</h1>
<article>
<h1 class="post-title">{{ .Title }}</h1>
<img src="{{ .Params.thumb }}" class="video-thumbnail"></img>
<div class="content">
{{ .Content }}
</div>
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

16
layouts/_default/sunvox-resources.html

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Params.subpage }}</h1>
<article>
<h1 class="post-title">{{ .Title }}</h1>
<img src="{{ .Params.thumb }}" class="video-thumbnail"></img>
<div class="content">
{{ .Content }}
</div>
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

16
layouts/_default/sunvox-songs.html

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Params.subpage }}</h1>
<article>
<h1 class="post-title">{{ .Title }}</h1>
<img src="{{ .Params.thumb }}" class="video-thumbnail"></img>
<div class="content">
{{ .Content }}
</div>
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

15
layouts/_default/sunvox.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
<h2 id="gallery-subtitle">sunvox-related content</h2>
{{ range where .Site.Pages "Params.sunvox" "true"}}
<article>
{{ partial "metadata-sunvox.html" . }}
</article>
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

14
layouts/_default/video-list.html

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
{{ range where .Pages.ByPublishDate.Reverse "Params.hidden" "ne" "true"}}
<article>
{{- partial "metadata-video.html" . -}}
</article>
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

15
layouts/_default/video.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Params.subpage }}</h1>
<article>
{{- partial "metadata-video-post.html" . -}}
<div class="content">
{{ .Content }}
</div>
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

28
layouts/index.html

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
{{ range where .Site.RegularPages.ByPublishDate.Reverse "Params.onHomepage" "ne" "false" }}
{{ if .Date.After ( time "2023-03-23" ) }}
<article>
{{if eq .Params.subpage "blog"}}
{{ partial "metadata-blog.html" . }}
{{else if eq .Params.subpage "music"}}
{{ partial "metadata-music-home.html" . }}
{{else if eq .Params.subpage "art"}}
{{ partial "metadata-art-home.html" . }}
{{else if eq .Params.subpage "videos"}}
{{ partial "metadata-video-home.html" . }}
{{else if eq .Params.subpage "code"}}
{{ partial "metadata-code-home.html" . }}
{{else if eq .Params.subpage "sunvox-modules"}}
{{ partial "metadata-sunvox-modules-home.html" . }}
{{end}}
</article>
{{ end }}
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

27
layouts/partials/audio-player.html

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<div class="player-container">
<div class="player">
<div class="player-play" onclick="playpauseTrack()">
<img src="/images/play-big.png"/>
</div>
<div class="player-main">
<div class="player-details">
<div class="player-title">title</div>
<div class="player-current-time">00:00</div>
<div class="player-separator"> / </div>
<div class="player-total-time">00:00</div>
</div>
<div class="player-seek">
<input type="range" min="1" max="100" value="0" class="player-seek-slider" onchange="seekTo()">
</div>
</div>
<div class="player-skip"/>
<div class="player-prev" onclick="prevTrack()">
<img src="/images/play-prev-big.png"/>
</div>
<div class="player-next" onclick="nextTrack()">
<img src="/images/play-next-big.png"/>
</div>
</div>
</div>
</div>

9
layouts/partials/filelist.html

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
{{- range readDir . }}
{{- $path := path.Join $ .Name }}
{{- if .IsDir }}
{{- partial "filelist.html" $path }}
{{- else }}
{{- printf "%s\n" $path }}
{{- end }}
{{- end -}}

9
layouts/partials/metadata-art-home.html

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
{{ $dateTime := .PublishDate.Format "2006-01-02" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }}
<time datetime="{{ $dateTime }}">{{ .PublishDate.Format $dateFormat }}</time>
<a class="tags white">art</a>
<h1><a class="left title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
<div class="art-preview-container">
<a href="{{ .RelPermalink }}"><img class="art-preview" src="{{.Params.image}}" /></a>
</div>

2
layouts/partials/metadata-art-post.html

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
<a href="{{ .RelPermalink }}"><img class="art-full" src="{{.Params.image}}" /></a>
<h1 class="release-info"><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>

4
layouts/partials/metadata-art.html

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<div class="art-preview-container">
<a href="{{ .RelPermalink }}"><img class="art-preview" src="{{.Params.image}}" /></a>
</div>
<h4><a class="left title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h4>

8
layouts/partials/metadata-blog-category.html

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
{{ $dateTime := .PublishDate.Format "2006-01-02" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }}
<time datetime="{{ $dateTime }}">{{ .PublishDate.Format $dateFormat }}</time>
<h1><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
<a class="summary white" href="{{ .RelPermalink }}">
<p>{{ .Params.excerpt }}</p>
</a>

13
layouts/partials/metadata-blog-post.html

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
<h1 class="post-title" >{{ .Title }}</h1>
<div class="post-info">
{{ $dateTime := .PublishDate.Format "2006-01-02" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }}
<time datetime="{{ $dateTime }}">{{ .PublishDate.Format $dateFormat }}</time>
{{ with .Params.categories }}
{{ range . }}
{{ $href := print (absURL "blog/categories/") (urlize .) }}
<a class="post-tags" href="{{ $href }}">{{ . }}</a>
{{ end }}
{{ end }}
</div>
<p class="post-excerpt">{{ .Params.excerpt }}</p>

14
layouts/partials/metadata-blog.html

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
{{ $dateTime := .PublishDate.Format "2006-01-02" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }}
<time datetime="{{ $dateTime }}">{{ .PublishDate.Format $dateFormat }}</time>
{{ with .Params.categories }}
{{ range . }}
{{ $href := print (absURL "blog/categories/") (urlize .) }}
<a class="tags" href="{{ $href }}">{{ . }}</a>
{{ end }}
{{ end }}
<h1><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
<a class="summary white" href="{{ .RelPermalink }}">
<p>{{ .Params.excerpt }}</p>
</a>

6
layouts/partials/metadata-code-home.html

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
{{ $dateTime := .PublishDate.Format "2006-01-02" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }}
<time datetime="{{ $dateTime }}">{{ .PublishDate.Format $dateFormat }}</time>
<a class="tags">code</a>
<h1><a class="title white" href="https://git.acheney.xyz/acheney/{{ .File.BaseFileName }}">{{ .Title }}</a></h1>
{{ .Content }}

2
layouts/partials/metadata-code.html

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
<h1><a class="title white" href="https://git.acheney.xyz/acheney/{{ .File.BaseFileName }}">{{ .Title }}</a></h1>
{{ .Content }}

2
layouts/partials/metadata-music-alias.html

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
<a href="{{ .RelPermalink }}"><img class="cover" src="{{.Params.cover}}" /></a>
<h1><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>

1
layouts/partials/metadata-music-aliases.html

@ -0,0 +1 @@ @@ -0,0 +1 @@
<h1><a class="title white" href="{{ .Page.Permalink }}">{{ .Page.Title }}</a></h1>

18
layouts/partials/metadata-music-home.html

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
{{ $dateTime := .PublishDate.Format "2006-01-02" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }}
<time datetime="{{ $dateTime }}">{{ .PublishDate.Format $dateFormat }}</time>
{{ with .Params.musictypes }}
{{ range . }}
{{ $href := print (absURL "music/") (urlize .) }}
<a class="tags" href="{{ $href }}">{{ . }}</a>
{{ end }}
{{ end }}
<h1><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
{{ with .Params.pseudonyms }}
{{ range . }}
{{ $href := print (absURL "music/pseudonyms/") (urlize .) }}
<h4><a href="{{ $href }}" class="white">{{ . }}</a></h4>
{{ end }}
{{ end }}
<a href="{{ .RelPermalink }}"><img class="cover" src="{{.Params.cover}}" /></a>

57
layouts/partials/metadata-music-post.html

@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
<a href="{{ .RelPermalink }}"><img class="cover" src="{{.Params.cover}}" /></a>
<h1 class="release-info" ><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
{{ with .Params.pseudonyms }}
{{ range . }}
{{ $href := print (absURL "music/pseudonyms/") (urlize .) }}
<h4 class="release-info"><a href="{{ $href }}" class="white">{{ . }}</a></h4>
{{ end }}
{{ end }}
<div class="tracklist-container">
<table>
{{ $tracklist := .Params.tracklist }}
{{ $tracklengths := .Params.tracklengths }}
{{ range $i, $sequence := (seq (len $tracklist)) }}
<tr>
<td class="col-tracktitles">{{ index $tracklist $i }}</td>
<td class="col-tracklengths">{{ index $tracklengths $i}}</td>
</tr>
{{ end }}
<tr>
<td class="col-tracktitles">total:</td>
{{ $total := 0 }}
{{ range $.Params.tracklengths }}
{{ $times := split . ":" }}
{{ $hours := 0 }}
{{ $minutes := 0 }}
{{ $seconds := 0 }}
{{ if (eq (strings.TrimLeft "0" (index $times 0) ) "") }}
{{ $hours = int "0" }}
{{ else }}
{{ $hours = int (strings.TrimLeft "0" (index $times 0)) }}
{{ end }}
{{ if (eq (strings.TrimLeft "0" (index $times 1) ) "") }}
{{ $minutes = int "0" }}
{{ else }}
{{ $minutes = int (strings.TrimLeft "0" (index $times 1)) }}
{{ end }}
{{ if (eq (strings.TrimLeft "0" (index $times 2) ) "") }}
{{ $seconds = int "0" }}
{{ else }}
{{ $seconds = int (strings.TrimLeft "0" (index $times 2)) }}
{{ end }}
{{ $convHours := mul $hours 3600 }}
{{ $convMinutes := mul $minutes 60 }}
{{ $totalSeconds := add (add $convMinutes $convHours) $seconds }}
{{ $total = add $total $totalSeconds }}
{{ end }}
{{ $totalHours := int (math.Floor (div $total 3600)) }}
{{ $totalMinutes := int (math.Floor (div $total 60)) }}
{{ $totalSeconds := int (mod $total 60) }}
<td class="col-tracklengths">{{ printf "%02d" $totalHours }}:{{ printf "%02d" $totalMinutes }}:{{printf "%02d" $totalSeconds }}</td>
</tr>
</table>
</div>

8
layouts/partials/metadata-music.html

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
<a href="{{ .RelPermalink }}"><img class="cover" src="{{.Params.cover}}" /></a>
<h1><a class="title big-link" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
{{ with .Params.pseudonyms }}
{{ range . }}
{{ $href := print (absURL "music/pseudonyms/") (urlize .) }}
<h4><a href="{{ $href }}" class="white">{{ . }}</a></h4>
{{ end }}
{{ end }}

2
layouts/partials/metadata-sunvox-doc-module.html

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
<h1 class="post-title white" >{{ .Title }}</h1>
<a class="module-type" href="/sunvox/modules/{{ .File.Dir }}">{{ replace .File.Dir "docs/" "" | strings.TrimRight "/" }}</a>

1
layouts/partials/metadata-sunvox-doc.html

@ -0,0 +1 @@ @@ -0,0 +1 @@
<h1 class="release-info"><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>

5
layouts/partials/metadata-sunvox-modules-home.html

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
{{ $dateTime := .PublishDate.Format "2006-01-02" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }}
<time datetime="{{ $dateTime }}">{{ .PublishDate.Format $dateFormat }}</time>
<a class="tags" href="/sunvox/modules/">sunvox module</a>
<h1><a class="title white" href="{{ .RelPermalink }}" >{{ .Title }}</a></h1>

2
layouts/partials/metadata-sunvox.html

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
<h1><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
<h3>{{ .Params.description }}</h3>

8
layouts/partials/metadata-video-home.html

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
{{ $dateTime := .PublishDate.Format "2006-01-02" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }}
<time datetime="{{ $dateTime }}">{{ .PublishDate.Format $dateFormat }}</time>
<a class="tags">video</a>
<h1><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
<div class="video-preview-container">
<a href="{{ .RelPermalink }}"><img class="video-thumbnail" src="{{.Params.thumbnail}}" /></a>
</div>

4
layouts/partials/metadata-video-post.html

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<div class="art-preview-container">
<a href="{{ .RelPermalink }}"><img class="video-thumbnail" src="{{.Params.thumbnail}}" /></a>
</div>
<h1 class="release-info"><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>

7
layouts/partials/metadata-video.html

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
{{ $dateTime := .PublishDate.Format "2006-01-02" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2, 2006" }}
<time datetime="{{ $dateTime }}">{{ .PublishDate.Format $dateFormat }}</time>
<h1><a class="title white" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
<div class="video-preview-container">
<a href="{{ .RelPermalink }}"><img class="video-thumbnail" src="{{.Params.thumbnail}}" /></a>
</div>

8
layouts/partials/module-docs-type-list.html

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
<ul class="module-type-list">
{{ range where .Pages.ByTitle ".Params.module" "ne" "true" }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
{{ if .Pages }}
{{ partial "module-docs-type-list.html" . }}
{{ end }}
{{ end }}
</ul>

29
layouts/shortcodes/download-link.html

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
<a class="download-link-container" id="{{.Get "id"}}" style="cursor: pointer">
<div class="release-link" id="{{.Get "id"}}-button">
<div class="link-icon-container">
{{- partial "svg.html" "/themes/sunvox/static/images/download.svg" -}}
</div>
<p class="button-text">{{.Get "text" }}</p>
<div class="link-icon-container">
{{- partial "svg.html" "/themes/sunvox/static/images/download.svg" -}}
</div>
</div>
</a>
<script>
var downloadButton{{ replace ( replace (.Get "id") "-" "" ) "\"" "" | title | safeJS }} = document.getElementById("{{.Get "id"}}-button");
function buttonFlash(button) {
button.style.cssText="border:solid;border-width:2px;border-color:#FFFFFF";
setTimeout(() => {
button.style.cssText='border:solid;border-width:2px;border-color:#4B4B4B';
}, "500");
}
downloadButton{{ replace ( replace (.Get "id") "-" "" ) "\"" "" | title | safeJS }}.addEventListener("mousedown", function() {
window.location.href = "/zips/{{.Get "file"}}.zip"
});
downloadButton{{ replace ( replace (.Get "id") "-" "" ) "\"" "" | title | safeJS }}.addEventListener("mousedown", function() {
buttonFlash(downloadButton{{ replace ( replace (.Get "id") "-" "" ) "\"" "" | title | safeJS }})
});
</script>

4
layouts/shortcodes/image-caption.html

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
<figure class="image-caption">
<img class="image-caption-image {{ .Get "class" }}" src="{{ .Get "src" }}" title="{{ .Get "title" }}" alt="{{ .Get "alt" }}">
<figcaption class="image-caption-text">{{ .Get "title" }}</figcaption>
</figure>

29
layouts/shortcodes/module-link.html

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
<div class="release-link module-download-button matomo_download" id="module-download" style="cursor: pointer">
<div class="link-icon-container">
{{- partial "svg.html" "/themes/sunvox/static/images/download.svg" -}}
</div>
<p class="button-text">{{.Get "text" }}</p>
<div class="link-icon-container">
{{- partial "svg.html" "/themes/sunvox/static/images/download.svg" -}}
</div>
</div>
<script>
var downloadButton = document.getElementById("module-download");
function buttonFlash(button) {
button.style.cssText="border:solid;border-width:2px;border-color:#FFFFFF";
setTimeout(() => {
button.style.cssText='border:solid;border-width:2px;border-color:#4B4B4B';
}, "500");
}
downloadButton.addEventListener("mousedown", function() {
window.location.href = "/sunvox/modules/{{.Get "dir"}}{{ (.Get "module") | safeJS }}.sunsynth"
});
downloadButton.addEventListener("mousedown", function() {
buttonFlash(downloadButton)
});
</script>

179
layouts/shortcodes/player.html

@ -0,0 +1,179 @@ @@ -0,0 +1,179 @@
{{ $trackFileArray := .Page.Params.trackfiles }}
{{ $trackTitleArray := .Page.Params.tracklist }}
{{ $releaseTitle := .Page.Params.title }}
<div class="player-container">
<div class="player">
<div class="player-play" onclick="playpauseTrack()" style="filter:opacity(.75)">
{{- partial "svg.html" "themes/sunvox/static/images/play.svg" -}}
</div>
<div class="player-main">
<div class="player-details">
<div class="player-title">title</div>
<div class="player-current-time">00:00</div>
<div class="player-separator"> / </div>
<div class="player-total-time">00:00</div>
</div>
<div class="player-seek">
<input type="range" min="1" max="100" value="0" class="player-seek-slider" onchange="seekTo()">
</div>
</div>
<div class="player-skip"/>
<div class="player-prev" onclick="prevTrack()" style="filter:opacity(.75)">
{{- partial "svg.html" "themes/sunvox/static/images/play-prev.svg" -}}
</div>
<div class="player-next" onclick="nextTrack()" style="filter:opacity(.75)">
{{- partial "svg.html" "themes/sunvox/static/images/play-next.svg" -}}
</div>
</div>
</div>
</div>
<script type="text/javascript">
// Select all the elements in the HTML page
// and assign them to a variable
let playerTitle = document.querySelector(".player-title");
let playerCurrentTime = document.querySelector(".player-current-time");
let playerTotalTime = document.querySelector(".player-total-time");
let playerPlay = document.querySelector(".player-play");
let playerNext = document.querySelector(".player-next");
let playerPrev = document.querySelector(".player-prev");
let playerSeek = document.querySelector(".player-seek-slider");
// Specify globally used values
let playerIndex = 0;
let playerIsPlaying = false;
let updateTimer;
// Create the audio element for the player
let playerCurrentTrack = document.createElement('audio');
// Define the list of tracks that have to be played
let playerTrackList = [
{{ range $i, $sequence := (seq (len $trackFileArray)) }}
{
name: "{{index $trackTitleArray $i}}",
path: "/audio/{{ urlize $releaseTitle }}/mp3/{{index $trackFileArray $i}}.mp3"
},
{{ end }}
];
function loadTrack(playerIndex) {
// Clear the previous seek timer
clearInterval(updateTimer);
resetValues();
// Load a new track
playerCurrentTrack.src = playerTrackList[playerIndex].path;
playerCurrentTrack.load();
// Update details of the track
playerTitle.textContent = playerTrackList[playerIndex].name;
// Set an interval of 1000 milliseconds
// for updating the seek slider
updateTimer = setInterval(seekUpdate, 1000);
// Move to the next track if the current finishes playing
// using the 'ended' event
playerCurrentTrack.addEventListener("ended", nextTrack);
}
// Function to reset all values to their default
function resetValues() {
playerCurrentTime.textContent = "00:00";
playerTotalTime.textContent = "00:00";
playerSeek.value = 0;
}
function playpauseTrack() {
// Switch between playing and pausing
// depending on the current state
if (!playerIsPlaying) playTrack();
else pauseTrack();
}
function playTrack() {
// Play the loaded track
playerCurrentTrack.play();
playerIsPlaying = true;
playerPlay.style.cssText = 'filter:opacity(1)';
}
function pauseTrack() {
// Pause the loaded track
playerCurrentTrack.pause();
playerIsPlaying = false;
playerPlay.style.cssText = 'filter:opacity(.75)';
}
function nextTrack() {
// Go back to the first track if the
// current one is the last in the track list
if (playerIndex < playerTrackList.length - 1)
playerIndex += 1;
else playerIndex = 0;
playerNext.style.cssText = 'filter:opacity(1)';
// Load and play the new track
loadTrack(playerIndex);
playTrack();
setTimeout("playerNext.style.cssText='filter:opacity(.75)'",500);
}
function prevTrack() {
// Go back to the last track if the
// current one is the first in the track list
if (playerIndex > 0)
playerIndex -= 1;
else playerIndex = playerTrackList.length - 1;
playerPrev.style.cssText = 'filter:opacity(1)';
// Load and play the new track
loadTrack(playerIndex);
playTrack();
setTimeout("playerPrev.style.cssText='filter:opacity(.75)'",500);
}
function seekTo() {
// Calculate the seek position by the
// percentage of the seek slider
// and get the relative duration to the track
seekto = playerCurrentTrack.duration * (playerSeek.value / 100);
// Set the current track position to the calculated seek position
playerCurrentTrack.currentTime = seekto;
}
function seekUpdate() {
let seekPosition = 0;
// Check if the current track duration is a legible number
if (!isNaN(playerCurrentTrack.duration)) {
seekPosition = playerCurrentTrack.currentTime * (100 / playerCurrentTrack.duration);
playerSeek.value = seekPosition;
// Calculate the time left and the total duration
let currentMinutes = Math.floor(playerCurrentTrack.currentTime / 60);
let currentSeconds = Math.floor(playerCurrentTrack.currentTime - currentMinutes * 60);
let durationMinutes = Math.floor(playerCurrentTrack.duration / 60);
let durationSeconds = Math.floor(playerCurrentTrack.duration - durationMinutes * 60);
// Add a zero to the single digit time values
if (currentSeconds < 10) { currentSeconds = "0" + currentSeconds; }
if (durationSeconds < 10) { durationSeconds = "0" + durationSeconds; }
if (currentMinutes < 10) { currentMinutes = "0" + currentMinutes; }
if (durationMinutes < 10) { durationMinutes = "0" + durationMinutes; }
// Display the updated duration
playerCurrentTime.textContent = currentMinutes + ":" + currentSeconds;
playerTotalTime.textContent = durationMinutes + ":" + durationSeconds;
}
}
loadTrack(playerIndex);
</script>

30
layouts/shortcodes/release-link.html

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
<div class="release-link" id="{{.Get "platform" }}" style="cursor: pointer">
{{ $svg := ( printf "%s%s%s" "/themes/sunvox/static/images/" ( .Get "platform" ) ".svg" ) }}
<div class="link-icon-container">
{{- partial "svg.html" $svg -}}
</div>
<p class="button-text">{{ if isset .Params "text" }}{{ .Get "text" }}{{ else }}{{ .Get "platform" }}{{ end }}</p>
<div class="link-icon-container">
{{- partial "svg.html" $svg -}}
</div>
</div>
<script>
var linkButton{{ replace ( replace (.Get "platform") "-" "" ) "\"" "" | title | safeJS }} = document.getElementById({{.Get "platform"}});
function buttonFlash(button) {
button.style.cssText="border:solid;border-width:2px;border-color:#FFFFFF";
setTimeout(() => {
button.style.cssText='border:solid;border-width:2px;border-color:#4B4B4B';
}, "500");
}
linkButton{{ replace ( replace (.Get "platform") "-" "" ) "\"" "" | title | safeJS}}.addEventListener("mousedown", function() {
buttonFlash(linkButton{{ replace ( replace (.Get "platform") "-" "" ) "\"" "" | title | safeJS}})
});
linkButton{{ replace ( replace (.Get "platform") "-" "" ) "\"" "" | title | safeJS}}.addEventListener("mousedown", function() {
window.location.href = "{{.Get "link"}}"
});
</script>

BIN
static/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

20
themes/sunvox/LICENSE

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2022 A Cheney
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

2
themes/sunvox/archetypes/default.md

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
+++
+++

0
themes/sunvox/layouts/404.html

14
themes/sunvox/layouts/_default/baseof.html

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
{{- partial "head.html" . -}}
<body>
{{- partial "color-menu.html" . -}}
{{- partial "header.html" . -}}
<div id="content">
<div id="gallery">
{{- block "main" . }}{{- end }}
</div>
</div>
{{- partial "footer.html" . -}}
</body>
</html>

15
themes/sunvox/layouts/_default/list.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
<h1 id="gallery-header">{{ .Title }}</h1>
{{ range where .Pages.ByPublishDate.Reverse "Params.hidden" "ne" "true"}}
<article>
<h1><a class="title" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
{{ .Content }}
</article>
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

12
themes/sunvox/layouts/_default/single.html

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
{{ define "main" }}
<h1 id="gallery-header">{{ .Params.subpage }}</h1>
<article>
<h1 id="title">{{ .Title }}</h1>
{{ .Content }}
</article>
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

15
themes/sunvox/layouts/index.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
{{ define "main" }}
{{- partial "top-functions.html" . -}}
<h1 id="gallery-header">{{ .Title }}</h1>
{{ range where ( where .Site.RegularPages "Type" "article") "Params.hidden" "ne" "true"}}
<article>
<h1><a class="title" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
{{ .Content }}
</article>
{{ end }}
{{ end }}
{{ define "aside" }}
<aside>
<h3>{{ .Params.aside }}</h3>
</aside>
{{ end }}

372
themes/sunvox/layouts/partials/color-menu.html

@ -0,0 +1,372 @@ @@ -0,0 +1,372 @@
<div id="color-menu-container" style="display:none">
<div id="page-darken">
</div>
<div id="color-menu">
<div id="color-presets">
<div id="color-presets-row-1" class="color-preset-row">
<div id="color-preset-1" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 16 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(120 200 120)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-2" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(14 24 14)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(130 220 130)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-3" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(20 20 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 210 100)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-4" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 20)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(140 140 240)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-5" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(10 10 40)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(120 120 220)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-6" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(20 0 20)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(200 120 200)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
</div>
<div id="color-presets-row-2" class="color-preset-row">
<div id="color-preset-7" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(40 40 40)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(190 190 190)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-8" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(20 20 20)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(180 180 180)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-9" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(10 20 20)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(180 190 200)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-10" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(10 30 30)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(200 120 100)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-11" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(20 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(240 130 130)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
<div id="color-preset-12" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(28 28 28)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(200 200 50)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
</div>
</div>
<div id="color-presets-row-3" class="color-preset-row">
<div id="color-preset-13" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(220 220 220)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(80 80 80)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-14" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(150 145 140)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(60 50 40)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-15" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(140 140 140)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(50 50 50)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-16" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(80 90 80)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(16 32 16)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-17" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(70 100 100)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(16 40 40)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-18" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(130 140 150)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(40 50 60)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
</div>
<div id="color-presets-row-4" class="color-preset-row">
<div id="color-preset-19" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(70 100 180)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(16 40 40)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-20" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(80 140 210)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(16 40 80)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-21" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(80 210 210)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(32 80 80)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-22" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(220 210 200)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(80 40 32)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-23" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(130 110 100)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(80 20 10)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
<div id="color-preset-24" class="color-preset">
<div class="color-preset-color-preview" style="background-color:rgb(255 255 255)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(220 220 150)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(80 80 32)">
</div>
<div class="color-preset-color-preview" style="background-color:rgb(0 0 0)">
</div>
</div>
</div>
</div>
<div id="color-sliders">
<div id="c1-sliders" class="c-sliders">
<div id="c1-preview" class="c-preview">
</div>
<div id="c1-sliders-vertical" class="c-sliders-vertical">
<div class="c-slider-container" id="c1-slider-red-container">
<div class="c-slider-label-container">
<label>red</label>
<label id="c1-red-slider-label"></label>
</div>
<input type="range" id="c1-red-slider" name="c1-red" min="0" max="255" step="1" value=""/>
</div>
<div class="c-slider-container" id="c1-slider-green-container">
<div class="c-slider-label-container">
<label>green</label>
<label id="c1-green-slider-label"></label>
</div>
<input type="range" id="c1-green-slider" name="c1-green" min="0" max="255" step="1" value=""/>
</div>
<div class="c-slider-container" id="c1-slider-blue-container">
<div class="c-slider-label-container">
<label>blue</label>
<label id="c1-blue-slider-label"></label>
</div>
<input type="range" id="c1-blue-slider" name="c1-blue" min="0" max="255" step="1" value=""/>
</div>
</div>
</div>
<div id="c2-sliders" class="c-sliders">
<div id="c2-preview" class="c-preview">
</div>
<div id="c2-sliders-vertical" class="c-sliders-vertical">
<div class="c-slider-container" id="c2-slider-red-container">
<div class="c-slider-label-container">
<label>red</label>
<label id="c2-red-slider-label"></label>
</div>
<input type="range" id="c2-red-slider" name="c2-red" min="0" max="255" step="1" value=""/>
</div>
<div class="c-slider-container" id="c2-slider-green-container">
<div class="c-slider-label-container">
<label>green</label>
<label id="c2-green-slider-label"></label>
</div>
<input type="range" id="c2-green-slider" name="c2-green" min="0" max="255" step="1" value=""/>
</div>
<div class="c-slider-container" id="c2-slider-blue-container">
<div class="c-slider-label-container">
<label>blue</label>
<label id="c2-blue-slider-label"></label>
</div>
<input type="range" id="c2-blue-slider" name="c2-blue" min="0" max="255" step="1" value=""/>
</div>
</div>
</div>
<div id="c3-sliders" class="c-sliders">
<div id="c3-preview" class="c-preview">
</div>
<div id="c3-sliders-vertical" class="c-sliders-vertical">
<div class="c-slider-container" id="c3-slider-red-container">
<div class="c-slider-label-container">
<label>red</label>
<label id="c3-red-slider-label"></label>
</div>
<input type="range" id="c3-red-slider" name="c3-red" min="0" max="255" step="1" value=""/>
</div>
<div class="c-slider-container" id="c3-slider-green-container">
<div class="c-slider-label-container">
<label>green</label>
<label id="c3-green-slider-label"></label>
</div>
<input type="range" id="c3-green-slider" name="c3-green" min="0" max="255" step="1" value=""/>
</div>
<div class="c-slider-container" id="c3-slider-blue-container">
<div class="c-slider-label-container">
<label>blue</label>
<label id="c3-blue-slider-label"></label>
</div>
<input type="range" id="c3-blue-slider" name="c3-blue" min="0" max="255" step="1" value=""/>
</div>
</div>
</div>
<div id="c4-sliders" class="c-sliders">
<div id="c4-preview" class="c-preview">
</div>
<div id="c4-sliders-vertical" class="c-sliders-vertical">
<div class="c-slider-container" id="c4-slider-red-container">
<div class="c-slider-label-container">
<label>red</label>
<label id="c4-red-slider-label"></label>
</div>
<input type="range" id="c4-red-slider" name="c4-red" min="0" max="255" step="1" value=""/>
</div>
<div class="c-slider-container" id="c4-slider-green-container">
<div class="c-slider-label-container">
<label>green</label>
<label id="c4-green-slider-label"></label>
</div>
<input type="range" id="c4-green-slider" name="c4-green" min="0" max="255" step="1" value=""/>
</div>
<div class="c-slider-container" id="c4-slider-blue-container">
<div class="c-slider-label-container">
<label>blue</label>
<label id="c4-blue-slider-label"></label>
</div>
<input type="range" id="c4-blue-slider" name="c4-blue" min="0" max="255" step="1" value=""/>
</div>
</div>
</div>
</div>
<div id="color-buttons">
<input type="button" id="apply-button" value="ok"/>
<input type="button" id="cancel-button" value="cancel"/>
</div>
</div>
</div>

5
themes/sunvox/layouts/partials/footer.html

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
<footer>
<h3 id="footer-text">acheney.xyz</h3>
</footer>
<h4 id="footer-info">unless otherwise noted, this website and all content within is licensed under cc by 3.0 | sundog font by nightradio | made with love using hugo | hosted by 1984</h4>
<a id="rss-link" href="/index.xml" class="white"><h5>rss feed</h5></a>

15
themes/sunvox/layouts/partials/head.html

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="/css/style.css">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
{{ $title := print .Site.Title " | " .Title }}
{{ if .IsHome }}{{ $title = .Site.Title }}{{ end }}
<title>{{ $title }}</title>
<script src="/js/show-nav-mobile.js"></script>
<script src="/js/download-file.js"></script>
<script src="/js/button-flash.js" ></script>
<script src="/js/color.js"></script>
</head>

16
themes/sunvox/layouts/partials/header.html

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
<header>
<div id="header-logo">
<a href="/">
{{- partial "svg.html" "themes/sunvox/static/images/logo.svg" -}}
</a>
</div>
</header>
<nav>
<a href="javascript:void(0);" id="nav-hamburger" onclick="showNav()">{{- partial "svg.html" "themes/sunvox/static/images/hamburger.svg" -}}</a>
{{ range .Site.Menus.main }}
<a href="{{ .URL }}" class="nav-link">
{{ $text := print .Name | safeHTML }}
{{ $text }}
{{ end }}
</a>
</nav>

2
themes/sunvox/layouts/partials/svg.html

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
{{ $svg := . }}
{{ $svg | readFile | safeHTML }}

8
themes/sunvox/layouts/partials/top-functions.html

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
<div id="top-functions">
{{ if not .IsHome }}
<a id="back-link" href="{{ .Parent.RelPermalink }}">back</a>
{{ end }}
<div id="color-button-container" onclick="showColorMenu()">
{{- partial "svg.html" "themes/sunvox/static/images/colors.svg" -}}
</div>
</div>

958
themes/sunvox/static/css/style.css

@ -0,0 +1,958 @@ @@ -0,0 +1,958 @@
@font-face {
font-family: SunDog;
src: url('../fonts/SunDog.ttf') format('truetype');
}
@font-face {
font-family: SunDogMono;
src: url('../fonts/SunDogMonospace.ttf') format('truetype');
}
:root {
--c1r: 0;
--c1g: 0;
--c1b: 0;
--c2r: 10;
--c2g: 20;
--c2b: 20;
--c3r: 180;
--c3g: 190;
--c3b: 200;
--c4r: 255;
--c4g: 255;
--c4b: 255;
--car: 255;
--cag: 255;
--cab: 0;
}
html {
background-color: rgb( calc(var(--c2r)) calc(var(--c2g)) calc(var(--c2b)) );
height: 100%;
}
body {
width: 100%;
height: 100%;
margin-left: auto;
margin-right: auto;
margin-top: 0px;
background-color: rgb( calc(var(--c2r)) calc(var(--c2g)) calc(var(--c2b)) );
color: rgb( calc(var(--c4r)) calc(var(--c4g)) calc(var(--c4b)) );
font-family: SunDog, monospace;
font-size: 1.25em;
}
header {
background-color: rgb( calc(var(--c2r) + 11) calc(var(--c2g) + 11) calc(var(--c2b) + 11) );
width: 100%;
height: 10vw;
display: flex;
align-items: center;
justify-content: center;
}
path, rect {
fill: rgb( calc(var(--c4r)) calc(var(--c4g)) calc(var(--c4b)) ) !IMPORTANT;
}
svg {
width: 100%;
height: auto;
margin: auto;
}
#header-logo {
width: 10%;
margin: auto;
}
#header-logo svg {
width: 100%;
height: auto;
}
#header-logo a {
width: 100%;
height: auto;
}
@media only screen and (max-width: 810px) {
header {
height: auto;
}
#header-logo {
width: 30%;
}
}
nav {
background-color: rgb( calc(var(--c2r) + 59) calc(var(--c2g) + 59) calc(var(--c2b) + 63) );
width: 100;
display: flex;
align-items: center;
justify-content: center;
border-top: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
border-bottom: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
}
@media only screen and (max-width: 810px) {
nav {
flex-flow: column;
}
}
.nav-link {
display: block;
}
@media only screen and (max-width: 810px) {
.nav-link {
display: none;
}
}
#nav-hamburger {
display: none;
}
@media only screen and (max-width: 810px) {
#nav-hamburger {
display: block;
}
}
nav a {
flex-basis: 10%;
padding: 10px;
text-align: center;
color: rgb( calc(var(--c4r)) calc(var(--c4g)) calc(var(--c4b)) );
text-decoration-line: none;
}
nav a:hover {
background-color: rgb( calc(var(--c2r) + 69) calc(var(--c2g) + 68) calc(var(--c2b) + 72) );;
}
ul {
list-style-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8' standalone='no'%3F%3E%3C!-- Created with Inkscape (http://www.inkscape.org/) --%3E%3C%3Fxml-stylesheet type='text/css' href='/css/style.css' %3F%3E%3Csvg version='1.1' id='svg6162' width='16' height='16' viewBox='0 0 16 16' fill='rgb(127 127 127)' xmlns='http://www.w3.org/2000/svg' xmlns:svg='http://www.w3.org/2000/svg'%3E%3Cdefs id='defs6166' /%3E%3Cg id='layer1'%3E%3Crect style='stroke-width:30;stroke-linecap:square' id='rect8389' width='4' height='4' x='6' y='9' /%3E%3C/g%3E%3C/svg%3E");
}
#top-functions {
display: flex;
align-items: center;
justify-content: space-between;
}
#color-button-container {
width: 1em;
margin-left: auto;
cursor: pointer
}
#color-menu {
width: 60%;
height: 60%;
background-color: rgb( calc(var(--c2r) + 11) calc(var(--c2g) + 11) calc(var(--c2b) + 11) );
padding: 10px;
border: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
position: fixed;
top:0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
display: flex;
flex-direction: column;
}
#color-presets {
flex-grow: 6;
}
.color-preset-row {
display: flex;
flex-direction: row;
height: 25%;
justify-content: space-between;
}
.color-preset {
display: flex;
flex-direction: row;
width: 100%;
margin: 1px;
justify-content: space-between;
cursor: pointer;
}
.color-preset-color-preview {
width: 100%;
}
#color-sliders {
height: 20%;
margin-top: auto;
display: flex;
justify-content: space-between;
flex-grow: 1;
}
.c-sliders {
display: flex;
flex-direction: row;
width: 100%;
}
.c-sliders-vertical {
width: 100%;
display: flex;
flex-flow: column;
justify-content: space-between;
align-items: stretch;
}
.c-sliders input[type="range"] {
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 100%;
cursor: pointer;
outline: none;
overflow: hidden;
line-height: 20px;
margin: 0px;
background: rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
}
.c-preview {
width: 30%;
}
.c-slider-label-container {
position: absolute;
padding-left: 5px;
margin: 0px;
padding-left: 5px;
height: inherit;
display: flex;
flex-direction: column;
justify-content: left;
flex-wrap: wrap;
}
.c-slider-container {
margin: 2px;
padding: 0px;
height: auto;
overflow: clip;
flex: 1;
}
.c-sliders input[type="range"]::-webkit-slider-runnable-track {
height: 100%;
margin: 0px;
}
.c-sliders input[type="range"]::-moz-range-track {
width: 100%;
height: auto;
margin: 0px;
}
.c-sliders input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
height: 0em;
width: 0em;
background-color: rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
border-radius: 0%;
border: 0px solid rgb( calc(var(--c2r) + 59) calc(var(--c2g) + 59) calc(var(--c2b) + 63));
box-shadow: -407px 0 0 400px rgb( calc(var(--c2r) + 59) calc(var(--c2g) + 59) calc(var(--c2b) + 63));
}
.c-sliders input[type="range"]::-moz-range-thumb {
height: 0em;
width: 0em;
background-color: rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
border-radius: 0%;
border: 0px solid rgb( calc(var(--c2r) + 59) calc(var(--c2g) + 59) calc(var(--c2b) + 63));
box-shadow: -407px 0 0 400px rgb( calc(var(--c2r) + 59) calc(var(--c2g) + 59) calc(var(--c2b) + 63));
}
#color-buttons input[type="button"] {
background-color: rgb( calc(var(--c2r) + 11) calc(var(--c2g) + 11) calc(var(--c2b) + 11) );
border: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
color: rgb( var(--c4r) var(--c4g) var(--c4b));
font-family: SunDog, monospace;
font-size: 2vw;
width: 15%;
margin-top: 10px;
cursor: pointer;
}
@media only screen and (max-width: 810px) {
#color-buttons input[type="button"] {
font-size: 4vw;
}
}
@media only screen and (max-width: 810px) {
#color-menu {
width: inherit;
}
}
#page-darken {
width: 100%;
height: 100%;
background-color: black;
opacity: 50%;
position: fixed;
top:0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
hr {
border: 1px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
}
#content {
display: flex;
align-items: top;
padding: 20px;
justify-content: center;
}
@media only screen and (max-width: 810px) {
#content {
flex-flow: column;
}
}
#back-link {
color: rgb( calc(var(--c3r)) calc(var(--c3g)) calc(var(--c3b)) );
font-size: 0.8em;
text-decoration: none;
}
#gallery {
order: 2;
width: 50%;
margin-left: 10px;
display: flex;
flex-flow: column wrap;
flex-wrap: wrap;
}
@media only screen and (max-width: 810px) {
#gallery {
margin-top: 20px;
margin-left: 0px;
width: inherit;
}
}
#gallery-header, #gallery-subtitle {
text-align: center;
}
.release-gallery-header {
text-align: center;
}
aside {
order: 1;
background-color: rgb( calc(var(--c2r) + 11) calc(var(--c2g) + 11) calc(var(--c2b) + 11) );
width: 15%;
padding: 10px;
border: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
margin-right: 10px;
}
aside h3 {
text-align: center;
}
@media only screen and (max-width: 810px) {
aside {
width: inherit;
margin-right: 0px;
}
}
article {
background-color: rgb( calc(var(--c2r) + 11) calc(var(--c2g) + 11) calc(var(--c2b) + 11) );
margin-bottom: 20px;
padding: 10px;
border: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
}
@media only screen and (max-width: 810px) {
article {
width: inherit;
}
}
article a {
text-decoration-line: none;
color: rgb( calc(var(--car)) calc(var(--cag)) calc(var(--cab)) );
}
.subtitle-link {
text-decoration-line: none;
color: rgb( calc(var(--car)) calc(var(--cag)) calc(var(--cab)) );
}
.white {
color: rgb( calc(var(--c4r)) calc(var(--c4g)) calc(var(--c4b)) );
text-decoration: none;
}
article p {
line-height: 1.25em;
}
.content h1, .content h2, .content h3 {
text-align: center;
}
.left {
text-align: left;
}
.center-header {
text-align: center;
}
.title {
font-size: 1.5em;
padding: 0px;
margin: 10px 0px 10px 0px;
}
.category-header {
text-align: center;
}
.category-header a {
color: white;
text-decoration-line: none;
}
#about {
font-size: 1.35em;
}
#about h2 {
font-size: 1.30em;
}
#about p {
line-height: 1.35em;
}
.big-link {
color: rgb( calc(var(--c4r)) calc(var(--c4g)) calc(var(--c4b)) );
}
.image-caption-image {
display: block;
margin-left: auto;
margin-right: auto;
}
.image-caption-text {
text-align: center;
font-size: 0.75em;
}
.phone-pic {
width: 50%;
height: auto;
}
@media only screen and (max-width: 810px) {
.phone-pic {
width: 100%;
height: auto;
}
}
.blog-image {
width: 100%;
height: auto;
}
code {
font-family: SunDog, monospace;
}
.progress-container {
width: 50%;
height: 2px;
padding: 0px;
display: flex;
align-items: center;
justify-content: space-between;
margin: auto;
margin-bottom: 10px;
box-sizing: border-box;
}
.progress {
background-color: rgb( calc(var(--c4r)) calc(var(--c4g)) calc(var(--c4b)) );
height: 2px;
}
.release-gallery {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.release-gallery article {
flex: 0 0 43%;
}
/* #alias-gallery article {
flex: 0 0 43%;
} */
@media only screen and (max-width: 810px) {
#alias-gallery article {
flex: 1 1 100%;
overflow-x: hidden;
width: inherit;
}
}
.music-type-header {
color: rgb( calc(var(--c4r)) calc(var(--c4g)) calc(var(--c4b)) );
text-decoration-line: none;
}
@media only screen and (max-width: 810px) {
.release-gallery article {
flex: 1 1 100%;
overflow-x: hidden;
}
}
.tags {
color: rgb( calc(var(--c3r)) calc(var(--c3g)) calc(var(--c3b)) );
}
.post-title {
font-size: 2em;
text-align: center;
padding: 0px;
margin: 10px 0px 10px 0px;
}
.post-tags {
color: rgb( calc(var(--c3r)) calc(var(--c3g)) calc(var(--c3b)) );
}
.post-info {
text-align: center;
}
.post-excerpt {
font-style: italic;
text-align: center;
}
.cover {
margin-top: 10px;
width: 100%;
}
.alias-logo {
width: 50%;
height: 50%;
display: block;
margin: auto;
}
.alias-icon {
width: 50%;
margin: auto;
margin-bottom: 20px;
}
.alias-display {
width: 100%;
min-width: 0;
}
.release-info {
text-align: center;
}
.art-preview-container {
display: flex;
}
.art-preview {
width: 100%;
aspect-ratio: 1 / 1;
object-fit: cover;
}
.art-full {
width: 100%;
height: auto;
display: block;
}
.player-container {
width: 100%;
display: flex;
justify-content: center;
}
.player {
width: 75%;
display: flex;
margin-top: 10px;
padding: 10px;
border: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
box-sizing: border-box;
margin-bottom: 10px;
}
@media only screen and (max-width: 810px) {
.player {
width: 100%;
}
}
.player-play {
width: 9%;
display: flex;
align-items: center;
margin-right: 10px;
padding: 0;
cursor: pointer
}
.player-play img {
max-width: 100%;
height: auto;
}
.player-main {
width: 80%;
display: flex;
flex-flow: column;
justify-content: center;
}
.player-details {
display: flex;
height: auto;
}
.player-title, .player-current-time, .player-separator, .player-total-time {
margin-right: 10px;
}
.player-skip {
width: 10%;
display: flex;
align-items: center;
cursor: pointer;
justify-content: center;
}
.player-skip svg {
max-width: 100%;
height: 24px;
}
.player-seek-slider {
-webkit-appearance: none;
appearance: none;
width: 100%;
height: 5px;
background: rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
outline: none;
cursor: pointer;
}
.player-seek-slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 26px;
height: 26px;
border: 0;
background: url('data:image/svg+xml,%3C%3Fxml version="1.0" encoding="UTF-8" standalone="no"%3F%3E%3C!-- Created with Inkscape (http://www.inkscape.org/) --%3E%3Csvg version="1.1" id="svg6162" width="100%25" height="auto" fill="rgb(127 127 127)" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"%3E%3Cdefs id="defs6166" /%3E%3Cg id="layer1"%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8861" width="1" height="7" x="6" y="4.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8863" width="1" height="5" x="5" y="5.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8865" width="1" height="3" x="4" y="6.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8867" width="1" height="1" x="3" y="7.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8869" width="1" height="7" x="9" y="4.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8871" width="1" height="5" x="10" y="5.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8873" width="1" height="3" x="11" y="6.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8875" width="1" height="1" x="12" y="7.5" /%3E%3C/g%3E%3C/svg%3E');
cursor: pointer;
}
.player-seek-slider::-moz-range-thumb {
width: 26px;
height: 26px;
border: 0;
background: url('data:image/svg+xml,%3C%3Fxml version="1.0" encoding="UTF-8" standalone="no"%3F%3E%3C!-- Created with Inkscape (http://www.inkscape.org/) --%3E%3Csvg version="1.1" id="svg6162" width="100%25" height="auto" fill="rgb(127 127 127)" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"%3E%3Cdefs id="defs6166" /%3E%3Cg id="layer1"%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8861" width="1" height="7" x="6" y="4.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8863" width="1" height="5" x="5" y="5.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8865" width="1" height="3" x="4" y="6.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8867" width="1" height="1" x="3" y="7.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8869" width="1" height="7" x="9" y="4.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8871" width="1" height="5" x="10" y="5.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8873" width="1" height="3" x="11" y="6.5" /%3E%3Crect style="stroke-width:30;stroke-linecap:square" id="rect8875" width="1" height="1" x="12" y="7.5" /%3E%3C/g%3E%3C/svg%3E');
cursor: pointer;
}
.tracklist-container {
width: 100%;
font-family: SunDogMono;
display: flex;
justify-content: center;
}
.tracklist-container table {
width: 50%;
}
.col-tracklengths {
text-align: right;
}
.col-tracktitles {
text-align: left;
}
@media only screen and (max-width: 810px) {
.tracklist-container table {
width: 100%;
}
}
.release-link {
width: 50%;
border: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
padding: 10px;
display: flex;
align-items: center;
justify-content: space-between;
margin: auto;
margin-bottom: 10px;
box-sizing: border-box;
}
.release-link svg {
width: 16px;
height: 16px;
}
.link-icon-container {
display: flex;
flex-flow: column;
justify-content: center;
}
.download-link-container {
display: block;
color: rgb( calc(var(--c4r) + 40) calc(var(--c4g) + 39) calc(var(--c4b) + 39) );
}
.download-indicator {
font-size: smaller;
padding: 0px;
margin: 0px;
margin-bottom: 10px;
text-align: center;
}
.button-text {
margin: 0;
}
@media only screen and (max-width: 810px) {
.release-link {
width: 100%;
}
}
.video-thumbnail {
width: 100%;
}
.video-preview-container {
margin-top: 10px;
}
#alias-gallery {
display: flex;
flex-direction: column;
}
.module-type-list {
list-style: none;
font-size: 0.9em;
margin: 0;
padding: 0;
}
.module-type-list a {
text-decoration: none;
color: white;
}
#module-type-list-wrapper {
font-size: 1.3em;
text-align: center;
}
.module-type {
color: rgb( calc(var(--c2r) + 11) calc(var(--c2g) + 11) calc(var(--c2b) + 11) );
display: block;
text-align: center;
}
.module-download-button {
margin-top: 10px;
}
footer {
background-color: rgb( calc(var(--c2r) + 11) calc(var(--c2g) + 11) calc(var(--c2b) + 11) );
width: 100%;
display: flex;
flex-flow: row;
align-items: center;
justify-content: center;
border-top: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
border-bottom: 2px solid rgb( calc(var(--c2r) + 40) calc(var(--c2g) + 39) calc(var(--c2b) + 39) );
}
#footer-info {
text-align: center;
color: rgb( calc(var(--c3r)) calc(var(--c3g)) calc(var(--c3b)) );
}
#rss-link {
text-align: center;
color: rgb( calc(var(--c4r)) calc(var(--c4g)) calc(var(--c4b)) );
}

BIN
themes/sunvox/static/fonts/SunDog.ttf

Binary file not shown.

BIN
themes/sunvox/static/fonts/SunDogMonospace.ttf

Binary file not shown.

1
themes/sunvox/static/images/bandcamp.svg

@ -0,0 +1 @@ @@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Created with Inkscape (http://www.inkscape.org/) --><?xml-stylesheet type="text/css" href="/css/style.css" ?><svg version="1.1" id="svg6162" width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> <defs id="defs6166" /> <g id="g6168"> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect7931" width="7" height="1" x="6" y="6" /> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect7931-9" width="7" height="1" x="5" y="7" /> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect7931-9-6" width="7" height="1" x="4" y="8" /> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect7931-9-6-0" width="7" height="1" x="3" y="9" /> </g></svg>

After

Width:  |  Height:  |  Size: 1020 B

1
themes/sunvox/static/images/bg-glow.svg

@ -0,0 +1 @@ @@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Created with Inkscape (http://www.inkscape.org/) --><?xml-stylesheet type="text/css" href="/css/style.css" ?><svg width="32" height="32" viewBox="0 0 8.4666665 8.4666666" version="1.1" id="svg521" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> <defs id="defs518"> <filter style="color-interpolation-filters:sRGB" id="filter2722" x="-0.58385931" y="-0.58385931" width="2.1677186" height="2.1677186"> <feGaussianBlur stdDeviation="1.1091425" id="feGaussianBlur2724" /> </filter> </defs> <g id="layer1"> <circle style="opacity:1;mix-blend-mode:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:11.7386;stroke-linecap:square;filter:url(#filter2722)" id="path698" cx="4.2333331" cy="4.2333331" r="2.2796092" transform="matrix(0.85601993,0,0,0.85601993,0.60951582,0.60951582)" /> </g></svg>

After

Width:  |  Height:  |  Size: 1010 B

38
themes/sunvox/static/images/colors.svg

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="16"
height="16"
viewBox="0 0 4.2333333 4.2333333"
version="1.1"
id="svg5"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs2" />
<g
id="layer1">
<rect
style="fill:#00ff00 !IMPORTANT;fill-opacity:1;stroke-width:7.9375;stroke-linecap:square"
id="rect790"
width="1.0583333"
height="1.0583333"
x="0.79812557"
y="2.254683" />
<rect
style="fill:#0000ff !IMPORTANT;fill-opacity:1;stroke-width:7.9375;stroke-linecap:square"
id="rect1156"
width="1.0583333"
height="1.0583333"
x="2.3773015"
y="2.2541523" />
<rect
style="fill:#ff0000 !IMPORTANT;fill-opacity:1;stroke-width:7.9375;stroke-linecap:square"
id="rect1678"
width="1.0583333"
height="1.0583333"
x="1.5874605"
y="0.92604685" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

1
themes/sunvox/static/images/download.svg

@ -0,0 +1 @@ @@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- Created with Inkscape (http://www.inkscape.org/) --><?xml-stylesheet type="text/css" href="/css/style.css" ?><svg version="1.1" id="svg6162" width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> <defs id="defs6166" /> <g id="layer1"> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect8279" width="4" height="5" x="6" y="3" /> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect8284" width="10" height="1" x="3" y="8" /> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect8286" width="8" height="1" x="4" y="9" /> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect8288" width="6" height="1" x="5" y="10" /> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect8290" width="4" height="1" x="6" y="11" /> <rect style="fill:#000000;stroke-width:30;stroke-linecap:square" id="rect8292" width="2" height="1" x="7" y="12" /> </g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save