diff --git a/versions/latest/.gitignore b/versions/latest/.gitignore new file mode 100644 index 0000000..a1c642e --- /dev/null +++ b/versions/latest/.gitignore @@ -0,0 +1,7 @@ +# .gitignore + +.hugo_build.lock +/public/ +/resources/_gen/ +/assets/jsconfig.json +hugo_stats.json \ No newline at end of file diff --git a/versions/latest/Makefile b/versions/latest/Makefile new file mode 100644 index 0000000..c4e0968 --- /dev/null +++ b/versions/latest/Makefile @@ -0,0 +1,5 @@ +serve: + docker run --rm -it -v $(PWD):/src -v $(PWD)/../../content:/src/content -v $(PWD)/../../static:/src/static -p 1313:1313 klakegg/hugo:0.111.3 server --bind 0.0.0.0 + +build: + docker run --rm -it -v $(PWD):/src -v $(PWD)/../../content:/src/content -v $(PWD)/../../static:/src/static klakegg/hugo:0.111.3 \ No newline at end of file diff --git a/versions/latest/config.yaml b/versions/latest/config.yaml new file mode 100644 index 0000000..b0fb3ba --- /dev/null +++ b/versions/latest/config.yaml @@ -0,0 +1,30 @@ +baseURL: "https://devsparks.goooseman.dev" +languageCode: "en-us" +title: "DevSparks Blog" +theme: "devsparks" +relativeUrls: true + +module: + mounts: + - source: "../../content" + target: "content" + - source: "../../static" + target: "static" + +params: + dateFormat: "January 2, 2006" + +menu: + main: + - name: "Hacks" + weight: 10 + identifier: "hacks" + url: '/' + - name: "About" + weight: 20 + identifier: "about" + url: '/about/' + - name: "GitHub" + weight: 30 + identifier: "github" + url: 'https://github.com/goooseman/devsparks-blog' \ No newline at end of file diff --git a/versions/latest/shared_dependencies.md b/versions/latest/shared_dependencies.md new file mode 100644 index 0000000..1db385f --- /dev/null +++ b/versions/latest/shared_dependencies.md @@ -0,0 +1,39 @@ +Files to generate: +- Makefile +- .gitignore +- config.yaml +- themes/devsparks/layouts/_default/baseof.html +- themes/devsparks/layouts/_default/list.html +- themes/devsparks/layouts/_default/single.html +- themes/devsparks/layouts/shortcodes/hackermans-tip.html +- themes/devsparks/layouts/shortcodes/padawans-playground.html +- themes/devsparks/static/css/main.css +- themes/devsparks/static/css/syntax-highlighting.css +- themes/devsparks/static/css/theme-light.css +- themes/devsparks/static/css/theme-dark.css +- themes/devsparks/static/js/theme-switcher.js +- themes/devsparks/static/js/footer-image.js +- themes/devsparks/static/js/remark42.js + +Shared dependencies: +- breakpoints +- theme-switch +- remark42 +- footer-image-human +- footer-image-robot +- .layout__header +- .header__theme_switch +- .layout__link__active +- .section__tip__hackerman +- .section__tip__padawan +- .tip__container +- .tip__title +- .tip__image +- .article__title +- .article__date +- .article__tags +- .article__content +- .article__remark42 +- .footer__container +- .footer__about_text +- .footer__author-photo \ No newline at end of file diff --git a/versions/latest/themes/devsparks/layouts/_default/baseof.html b/versions/latest/themes/devsparks/layouts/_default/baseof.html new file mode 100644 index 0000000..d0c24a3 --- /dev/null +++ b/versions/latest/themes/devsparks/layouts/_default/baseof.html @@ -0,0 +1,40 @@ + + + + + + {{ .Title }} + + + + + + + +
+ + +
+
+ {{ block "main" . }}{{ end }} +
+ + + + + \ No newline at end of file diff --git a/versions/latest/themes/devsparks/layouts/_default/list.html b/versions/latest/themes/devsparks/layouts/_default/list.html new file mode 100644 index 0000000..af61b41 --- /dev/null +++ b/versions/latest/themes/devsparks/layouts/_default/list.html @@ -0,0 +1,19 @@ +{{ define "main" }} + {{ if .IsHome }} +

Hacks

+ {{ else }} +

{{ .Title }}

+ {{ end }} + + {{ range (where .Site.RegularPages "Type" "in" (slice "hacks")).GroupByDate "2006" }} +

{{ .Key }}

+ + {{ end }} +{{ end }} \ No newline at end of file diff --git a/versions/latest/themes/devsparks/layouts/_default/single.html b/versions/latest/themes/devsparks/layouts/_default/single.html new file mode 100644 index 0000000..80d8a6b --- /dev/null +++ b/versions/latest/themes/devsparks/layouts/_default/single.html @@ -0,0 +1,19 @@ +{{ define "main" }} +
+

{{ .Title }}

+ {{ with .Date }} +

{{ .Format "January 2, 2006" }}

+ {{ end }} + {{ with .Params.tags }} +

+ {{ range . }} + {{ . }} + {{ end }} +

+ {{ end }} +
+ {{ .Content }} +
+
+
+{{ end }} \ No newline at end of file diff --git a/versions/latest/themes/devsparks/layouts/shortcodes/hackermans-tip.html b/versions/latest/themes/devsparks/layouts/shortcodes/hackermans-tip.html new file mode 100644 index 0000000..8cf47fc --- /dev/null +++ b/versions/latest/themes/devsparks/layouts/shortcodes/hackermans-tip.html @@ -0,0 +1,5 @@ +
+

Hackerman's tip

+ Hackerman Image + {{ .Inner | markdownify }} +
\ No newline at end of file diff --git a/versions/latest/themes/devsparks/layouts/shortcodes/padawans-playground.html b/versions/latest/themes/devsparks/layouts/shortcodes/padawans-playground.html new file mode 100644 index 0000000..e54d6f1 --- /dev/null +++ b/versions/latest/themes/devsparks/layouts/shortcodes/padawans-playground.html @@ -0,0 +1,5 @@ +
+

Padawan's Playground

+ Padawan Image + {{ .Inner | markdownify }} +
\ No newline at end of file diff --git a/versions/latest/themes/devsparks/static/css/main.css b/versions/latest/themes/devsparks/static/css/main.css new file mode 100644 index 0000000..6b5021b --- /dev/null +++ b/versions/latest/themes/devsparks/static/css/main.css @@ -0,0 +1,87 @@ +@import url('https://fonts.googleapis.com/css2?family=Fira+Code&display=swap'); + +:root { + --border-width: 2px; +} + +a { + color: var(--text-color); + text-decoration: none; + border-bottom: var(--border-width) solid var(--text-color); + transition: color 0.3s, background-color 0.3s; +} + +a:hover { + color: var(--background-color); + background-color: var(--text-color); + background-image: linear-gradient(to top, var(--text-color), var(--background-color)); + background-position: 0 100%; + background-repeat: no-repeat; + background-size: 100% 200%; +} + +.layout__link__active { + border: var(--border-width) solid; +} + +.layout__header { + display: flex; + justify-content: space-between; + padding-top: 10px; +} + +.header__theme_switch { + background: transparent; + border: var(--border-width) solid; + width: 22px; + height: 22px; + text-align: center; +} + +.section__tip__hackerman .tip__container, +.section__tip__padawan .tip__container { + position: relative; + margin-top: 300px; + margin-bottom: 5px; + border: var(--border-color) solid; + padding: 20px; + margin-left: -20px; + margin-right: -20px; +} + +.section__tip__hackerman .tip__image, +.section__tip__padawan .tip__image { + position: absolute; + bottom: 100%; + left: 20%; + height: 280px; +} + +.tip__title { + font-style: italic; + font-weight: bold; +} + +.article__content h3 { + padding-top: 5px; + border-top: var(--border-width) solid currentColor; +} + +.article__remark42 { + margin-left: -20px; + margin-right: -20px; + margin-top: 10px; +} + +body { + width: 600px; + margin: 0 auto; + background-color: var(--background-color); +} + +@media (max-width: 680px) { + body { + width: 100%; + padding: 20px; + } +} \ No newline at end of file diff --git a/versions/latest/themes/devsparks/static/css/syntax-highlighting.css b/versions/latest/themes/devsparks/static/css/syntax-highlighting.css new file mode 100644 index 0000000..3005536 --- /dev/null +++ b/versions/latest/themes/devsparks/static/css/syntax-highlighting.css @@ -0,0 +1,20 @@ +/* themes/devsparks/static/css/syntax-highlighting.css */ + +/* Single line code */ +code { + color: var(--background-color); + background-color: var(--color); +} + +/* Code block */ +pre div.highlight { + background-color: var(--background-color); + color: white; + padding: 10px; +} + +/* Code inside code block */ +pre div.highlight code { + background-color: transparent; + color: white; +} \ No newline at end of file diff --git a/versions/latest/themes/devsparks/static/css/theme-dark.css b/versions/latest/themes/devsparks/static/css/theme-dark.css new file mode 100644 index 0000000..f0a6818 --- /dev/null +++ b/versions/latest/themes/devsparks/static/css/theme-dark.css @@ -0,0 +1,62 @@ +/* themes/devsparks/static/css/theme-dark.css */ + +:root { + --background-color: #40414e; + --text-color: #ffc000; + --border-color: #ffc000; +} + +body.body__theme__dark { + background-color: var(--background-color); + color: var(--text-color); +} + +.header__theme_switch { + background: transparent; + border: 2px solid var(--border-color); + width: 22px; + height: 22px; + text-align: center; +} + +.layout__header { + display: flex; + justify-content: space-between; + padding-top: 10px; +} + +.layout__link__active { + border: 2px solid; +} + +.footer__about_text { + border: 2px solid var(--border-color); +} + +.tip__container { + position: relative; + margin-top: 300px; + margin-bottom: 5px; + border: 2px solid var(--border-color); + padding: 20px; + margin-left: -20px; + margin-right: -20px; +} + +.tip__image { + position: absolute; + bottom: 100%; + left: 20%; + height: 280px; +} + +.article__content h3 { + padding-top: 5px; + border-top: 1px solid currentColor; +} + +.article__remark42 { + margin-left: -20px; + margin-right: -20px; + margin-top: 10px; +} \ No newline at end of file diff --git a/versions/latest/themes/devsparks/static/css/theme-light.css b/versions/latest/themes/devsparks/static/css/theme-light.css new file mode 100644 index 0000000..16f6be7 --- /dev/null +++ b/versions/latest/themes/devsparks/static/css/theme-light.css @@ -0,0 +1,62 @@ +/* themes/devsparks/static/css/theme-light.css */ + +:root { + --background-color: #ffc000; + --text-color: #40414e; + --border-color: #40414e; +} + +.body__theme__light { + background-color: var(--background-color); + color: var(--text-color); +} + +.header__theme_switch { + background: transparent; + border: 2px solid var(--border-color); + width: 22px; + height: 22px; + text-align: center; +} + +.layout__header { + display: flex; + justify-content: space-between; + padding-top: 10px; +} + +.layout__link__active { + border: 2px solid; +} + +.footer__about_text { + border: 2px solid var(--border-color); +} + +.tip__container { + position: relative; + margin-top: 300px; + margin-bottom: 5px; + border: 2px solid var(--border-color); + padding: 20px; + margin-left: -20px; + margin-right: -20px; +} + +.tip__image { + position: absolute; + bottom: 100%; + left: 20%; + height: 280px; +} + +.article__content h3 { + padding-top: 5px; + border-top: 1px solid currentColor; +} + +.article__remark42 { + margin-left: -20px; + margin-right: -20px; + margin-top: 10px; +} \ No newline at end of file diff --git a/versions/latest/themes/devsparks/static/js/footer-image.js b/versions/latest/themes/devsparks/static/js/footer-image.js new file mode 100644 index 0000000..a2ce86b --- /dev/null +++ b/versions/latest/themes/devsparks/static/js/footer-image.js @@ -0,0 +1,12 @@ +const footerImageHuman = document.getElementById('footer-image-human'); +const footerImageRobot = document.getElementById('footer-image-robot'); + +footerImageHuman.addEventListener('mouseover', () => { + footerImageHuman.style.display = 'none'; + footerImageRobot.style.display = 'block'; +}); + +footerImageRobot.addEventListener('mouseout', () => { + footerImageRobot.style.display = 'none'; + footerImageHuman.style.display = 'block'; +}); \ No newline at end of file diff --git a/versions/latest/themes/devsparks/static/js/remark42.js b/versions/latest/themes/devsparks/static/js/remark42.js new file mode 100644 index 0000000..329293e --- /dev/null +++ b/versions/latest/themes/devsparks/static/js/remark42.js @@ -0,0 +1,13 @@ +// https://r42.com/docs/configuration/frontend/ +var remark_config = { + host: 'https://r42.goooseman.dev', + site_id: 'dev_sparks', + components: ['embed', 'last-comments'], + max_shown_comments: 100, + theme: 'dark', + show_email_subscription: false, + simple_view: false, + no_footer: false +} + +!function(e,n){for(var o=0;o