diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..7acb307 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +# Ignore artifacts: +build +coverage +_site +node_modules diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..7faf301 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,17 @@ +{ + "plugins": ["prettier-plugin-jinja-template"], + "overrides": [ + { + "files": ["*.njk"], + "options": { + "parser": "jinja-template" + } + } + ], + "useTabs": false, + "singleQuote": false, + "semi": true, + "endOfLine": "lf", + "arrowParens": "always", + "printWidth": 100 +} diff --git a/.well-known/security.txt b/.well-known/security.txt index 8190654..b127c4f 100644 --- a/.well-known/security.txt +++ b/.well-known/security.txt @@ -1,4 +1,4 @@ Contact: mailto:security@tacowolf.net -Expires: 2025-04-20T20:20:00.000Z +Expires: 2030-04-20T20:20:00.000Z Preferred-Languages: en, es Canonical: https://mestizo.monster/.well-known/security.txt diff --git a/_includes/_footer.njk b/_includes/_footer.njk new file mode 100644 index 0000000..aeb06e8 --- /dev/null +++ b/_includes/_footer.njk @@ -0,0 +1,23 @@ + diff --git a/_includes/_header.njk b/_includes/_header.njk new file mode 100644 index 0000000..17c0a9c --- /dev/null +++ b/_includes/_header.njk @@ -0,0 +1,11 @@ +
+ + +
diff --git a/_includes/base.njk b/_includes/base.njk new file mode 100644 index 0000000..f71237c --- /dev/null +++ b/_includes/base.njk @@ -0,0 +1,16 @@ + + + + + + {{ title }} - mestizo.monster + + + +
+ {% include "_header.njk" %} + {{ content | safe }} + {% include "_footer.njk" %} +
+ + diff --git a/_includes/navigation.njk b/_includes/navigation.njk new file mode 100644 index 0000000..e69de29 diff --git a/_includes/post-list.njk b/_includes/post-list.njk new file mode 100644 index 0000000..aaf8573 --- /dev/null +++ b/_includes/post-list.njk @@ -0,0 +1,10 @@ +--- +layout: base.njk +--- + +{{ content | safe }} + diff --git a/_includes/post.njk b/_includes/post.njk index dea4f01..a5d1abd 100644 --- a/_includes/post.njk +++ b/_includes/post.njk @@ -1,29 +1,17 @@ --- -published: Last Modified +layout: base.njk --- - - - - - - {{ title }} - - -
-
-
-
-

{{ title }}

-

{{ description }}

- -
-
- {{ content | safe }} -
-
- - + +
+
+
+

{{ title }}

+

{{ description }}

+ +
+
{{ content | safe }}
+
diff --git a/about/index.md b/about/index.md index a9c51a9..cada3b2 100644 --- a/about/index.md +++ b/about/index.md @@ -1,9 +1,8 @@ --- -title = 'about' -draft = false -menus = 'main' -images = ['about/taco.png'] -description = 'but who is taco? and how much does it weigh?' +title: "about" +layout: base.njk +images: ["about/taco.png"] +description: "but who is taco? and how much does it weigh?" ---
@@ -11,19 +10,21 @@ description = 'but who is taco? and how much does it weigh?'
artwork by heyheymomo
-**Daniel A. Gallegos**, also known as **โ€œtacoโ€,** is a [Full-Stack Software Developer](https://en.wikipedia.org/wiki/Solution_stack) and [Site Reliability Engineer](https://en.wikipedia.org/wiki/Site_reliability_engineering) who works with businesses, governments, [educators](https://web.archive.org/web/20230131144232/https://eberly.wvu.edu/news-events/eberly-news/2021/04/12/eberly-college-students-lead-gender-inclusivity-anti-racism-training-at-wvu), [non-profits](https://carrynaloxone.org/), and [startups](https://web.archive.org/web/20160901215818/https://devacademy.la/) to create digital solutions for your real-world problems, ranging from ๐Ÿ–ฅ๏ธ developing government enterprise applications, to ๐ŸŽจ creating graphic assets for professional digital portfolios, to ๐Ÿ› ๏ธ administering servers for a harm reduction coalition. +# {{ title }} -After spending a decade working with a variety of frontends, backends, deadends, software, hardware, various operating systems and more, Daniel is more than capable of handling whatever software or hardware problem you need solved. +**Daniel A. Gallegos**, also known as **"taco",** is a [full-stack software developer](https://en.wikipedia.org/wiki/Solution_stack) and [site reliability engineer](https://en.wikipedia.org/wiki/Site_reliability_engineering) who works with businesses, governments, [educators](https://web.archive.org/web/20230131144232/https://eberly.wvu.edu/news-events/eberly-news/2021/04/12/eberly-college-students-lead-gender-inclusivity-anti-racism-training-at-wvu), [non-profits](https://carrynaloxone.org/), and [startups](https://web.archive.org/web/20160901215818/https://devacademy.la/) to create digital solutions for your real-world problems, ranging from developing government enterprise applications ๐Ÿ–ฅ๏ธ, to creating graphic assets for professional digital presence ๐ŸŽจ, to administering servers for harm reduction coalitions ๐Ÿ› ๏ธ. -Daniel has contributed to projects around the world, including developing enterprise software applications for the ๐Ÿ‡ต๐Ÿ‡ช Peruvian government, creating on-brand graphic assets for multiple offices at ๐ŸŽ“ West Virginia University, redesigning an entire technical instituteโ€™s website, working as a HIPAA-compliant system administrator for a ๐Ÿง‘โ€โš•๏ธ harm reduction coalition and managing hundreds of ๐Ÿง Linux servers in the cloud daily. In addition to his extensive software development and system operations experience, Daniel is a skilled technical writer, copywriter, graphic designer, and definitely doesnโ€™t feel weird writing about himself in the third person. Heโ€™s a pro! ๐Ÿ˜‰ +after spending over 15 years working with a variety of frontends, backends, deadends, software, hardware, various operating systems, and more, daniel is more than capable of handling whatever software or hardware problem you need solved. + +Daniel has contributed to projects around the world, including developing enterprise software applications for the peruvian government ๐Ÿ‡ต๐Ÿ‡ช, creating on-brand graphic assets for multiple offices at west virginia university ๐ŸŽ“, redesigning an entire technical instituteโ€™s website, working as a hipaa-compliant system administrator for a harm reduction coalition ๐Ÿง‘โ€โš•๏ธ, and managing hundreds of linux servers in the cloud daily ๐Ÿง. in addition to his extensive software development and system operations experience, daniel is a skilled technical writer, copywriter, graphic designer, and definitely doesnโ€™t feel weird writing about himself in the third person. heโ€™s a pro! ๐Ÿ˜‰ Daniel holds a Bachelors in Multidisciplinary Studies (BMdS) from [West Virginia University](https://web.archive.org/web/20230728010055/https://lists.wvu.edu/graduation?county=&letter=--&name=&page=5&state=&term=fall&year=2021), which includes areas of study such as: -- ๐Ÿ’ป Computer Science -- ๐Ÿ‡บ๐Ÿ‡ธ English -- ๐Ÿ‡ช๐Ÿ‡ธ Spanish -- ๐Ÿ‡ช๐Ÿ‡จ๐Ÿ‡จ๐Ÿ‡ด๐Ÿ‡ป๐Ÿ‡ช Latin American Studies -- ๐Ÿณ๏ธโ€๐ŸŒˆ LGBTQ+ Studies +- ๐Ÿ’ป computer science +- ๐Ÿ‡บ๐Ÿ‡ธ english +- ๐Ÿ‡ช๐Ÿ‡ธ spanish +- ๐Ÿ‡ช๐Ÿ‡จ๐Ÿ‡จ๐Ÿ‡ด๐Ÿ‡ป๐Ÿ‡ช latin american studies +- ๐Ÿณ๏ธโ€๐ŸŒˆ lgbtq+ studies - and other classes he took and just enjoyed, tbh -He currently works as a [Site Reliability Engineer](https://en.wikipedia.org/wiki/Site_reliability_engineering) for some big healthcare corporation and as a [Webmaster](https://en.wikipedia.org/wiki/Webmaster) for a harm reduction coalition. In his free time, Daniel likes tinkering with Linux server administration and self-hosting technologies to better his life and the lives of those around him. As it is with most folks, Danielโ€™s opinions are his own and do not represent the views of his employer(s). +he currently works as a [site reliability engineer](https://en.wikipedia.org/wiki/Site_reliability_engineering) for some big healthcare corporation and as a [webmaster](https://en.wikipedia.org/wiki/Webmaster) for various nonprofit organizations. in his free time, daniel likes tinkering with linux server administration and self-hosting technologies to better his life and the lives of those around him. as it is with most folks, danielโ€™s opinions are his own and do not represent the views of his employer(s). diff --git a/assets/css/colors.css b/assets/css/colors.css new file mode 100644 index 0000000..e69de29 diff --git a/assets/css/fonts.css b/assets/css/fonts.css new file mode 100644 index 0000000..b90f7ef --- /dev/null +++ b/assets/css/fonts.css @@ -0,0 +1,29 @@ +@font-face { + font-family: "VT323"; + src: url("/fonts/VT323.woff2") format("woff2"); +} +@font-face { + font-family: "Martian Grotesk"; + font-display: swap; + src: url("/fonts/MartianGrotesk-StdLt.woff2") format("woff2"); + font-weight: 300; + font-stretch: 100%; +} + +h1, +h2, +h3, +h4 { + font-family: "VT323", monospace; + font-weight: 400; + font-style: normal; +} + +p, +ul, +li, +ol { + font-family: "Martian Grotesk"; + font-weight: 400; + font-style: normal; +} diff --git a/assets/css/layout.css b/assets/css/layout.css new file mode 100644 index 0000000..83afd17 --- /dev/null +++ b/assets/css/layout.css @@ -0,0 +1,120 @@ +body { + display: grid; + place-items: center; +} + +main { + padding: 1em; +} + +header { + display: flex; + justify-content: start; + align-content: center; + img { + width: 4em; + } + nav { + width: 100%; + display: flex; + padding-left: 1em; + h1 { + align-content: center; + } + ul { + align-content: center; + li { + font-size: 1.5em; + padding: 0.5em; + list-style: none; + display: inline-block; + } + } + } +} + +article { + padding: 0.5em; + hgroup { + ul { + list-style: none; + padding: 0; + text-align: justify; + } + } +} +p { + padding-top: 1em; + padding-bottom: 1em; +} + +footer { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +@media only screen and (max-width: 576px) { + main { + width: 100%; + } + nav { + display: flex; + h1 { + display: none; + } + justify-content: flex-end; + } +} + +@media only screen and (min-width: 577px) and (max-width: 768px) { + main { + width: 80%; + nav { + justify-content: space-between; + ul { + li { + font-size: 1em; + } + } + } + } +} + +@media only screen and (min-width: 769px) and (max-width: 1024px) { + main { + width: 666px; + nav { + justify-content: space-between; + ul { + li { + font-size: 1.2em; + } + } + } + } +} + +@media only screen and (min-width: 1025px) and (max-width: 1440px) { + main { + width: 666px; + nav { + justify-content: space-between; + ul { + li { + font-size: 1.3em; + } + } + } + } +} + +@media only screen and (min-width: 1441px) { + main { + width: 666px; + nav { + justify-content: space-between; + } + } +} diff --git a/assets/css/main.css b/assets/css/main.css new file mode 100644 index 0000000..039af0b --- /dev/null +++ b/assets/css/main.css @@ -0,0 +1,4 @@ +@import "reset.css"; +@import "layout.css"; +@import "fonts.css"; +@import "colors.css"; diff --git a/assets/css/reset.css b/assets/css/reset.css new file mode 100644 index 0000000..359e9a0 --- /dev/null +++ b/assets/css/reset.css @@ -0,0 +1,65 @@ +/* stolen from https://www.joshwcomeau.com/css/custom-css-reset/ */ + +*, +*::before, +*::after { + box-sizing: border-box; +} + +*:not(dialog) { + margin: 0; +} + +@media (prefers-reduced-motion: no-preference) { + html { + interpolate-size: allow-keywords; + } +} + +body { + line-height: 1.5; + -webkit-font-smoothing: antialiased; +} + +img, +picture, +video, +canvas, +svg { + display: block; + max-width: 100%; +} + +input, +button, +textarea, +select { + font: inherit; +} + +p, +h1, +h2, +h3, +h4, +h5, +h6 { + overflow-wrap: break-word; +} + +p { + text-wrap: pretty; +} +h1, +h2, +h3, +h4, +h5, +h6 { + text-wrap: balance; +} + +#root, +#__next { + isolation: isolate; +} diff --git a/assets/fonts/MartianGrotesk-StdLt.woff2 b/assets/fonts/MartianGrotesk-StdLt.woff2 new file mode 100644 index 0000000..03359b0 Binary files /dev/null and b/assets/fonts/MartianGrotesk-StdLt.woff2 differ diff --git a/assets/fonts/VT323.woff2 b/assets/fonts/VT323.woff2 new file mode 100644 index 0000000..a4556be Binary files /dev/null and b/assets/fonts/VT323.woff2 differ diff --git a/assets/taco.png b/assets/img/taco.png similarity index 100% rename from assets/taco.png rename to assets/img/taco.png diff --git a/assets/taco.svg b/assets/img/taco.svg similarity index 100% rename from assets/taco.svg rename to assets/img/taco.svg diff --git a/assets/wolf.svg b/assets/img/wolf.svg similarity index 100% rename from assets/wolf.svg rename to assets/img/wolf.svg diff --git a/assets/wolf_taco.svg b/assets/img/wolf_taco.svg similarity index 100% rename from assets/wolf_taco.svg rename to assets/img/wolf_taco.svg diff --git a/eleventy.config.js b/eleventy.config.js index 3fd589b..ea8f79c 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -1,9 +1,10 @@ import markdownIt from "markdown-it"; +import footnote_plugin from "markdown-it-footnote"; import readingTime from "eleventy-plugin-reading-time"; /** @param {import("@11ty/eleventy").UserConfig} eleventyConfig */ export default async function (eleventyConfig) { - eleventyConfig.addPassthroughCopy("assets"); + eleventyConfig.addPassthroughCopy({ assets: "/" }); eleventyConfig.addPassthroughCopy(".well-known"); eleventyConfig.addPassthroughCopy("**/*.jpg"); eleventyConfig.addPassthroughCopy("**/*.png"); @@ -26,16 +27,21 @@ export default async function (eleventyConfig) { return redirects; }); - eleventyConfig.addCollection("posts", function (collection) { - return collection.getFilteredByGlob("posts/**/*.md"); - }); + function sortByDate(values) { + // inspired by + let vals = [...values]; + return vals.sort((a, b) => { + return a.data.date < b.data.date ? 1 : -1; + }); + } + eleventyConfig.addFilter("sortByDate", sortByDate); - let options = { + let markdownItOptions = { html: true, breaks: true, linkify: true, }; - - eleventyConfig.setLibrary("md", markdownIt(options)); + eleventyConfig.setLibrary("md", markdownIt(markdownItOptions)); + eleventyConfig.amendLibrary("md", (mdLib) => mdLib.use(footnote_plugin)); eleventyConfig.addPlugin(readingTime); } diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..2888dd2 Binary files /dev/null and b/favicon.ico differ diff --git a/index.md b/index.md index 8964e0b..3fe79fd 100644 --- a/index.md +++ b/index.md @@ -1,9 +1,10 @@ --- title: "home" +layout: base.njk description: "words by taco, the mestizo monster." --- -the [wedsite](https://web.archive.org/web/20240708121013/http://hrwiki.org/wiki/Homestar_Runner%27s_Website) of +the [wedsite](https://homestar.wiki/wiki/Homestar_Runner%27s_Website) of # daniel a. gallegos diff --git a/package-lock.json b/package-lock.json index f71698d..e137e4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,12 @@ "dependencies": { "@11ty/eleventy": "^3.1.5", "eleventy-plugin-reading-time": "^0.0.1", - "markdown-it": "^14.1.1" + "markdown-it": "^14.1.1", + "markdown-it-footnote": "^4.0.0" + }, + "devDependencies": { + "prettier": "^3.8.1", + "prettier-plugin-jinja-template": "^2.1.0" } }, "node_modules/@11ty/dependency-tree": { @@ -1041,6 +1046,12 @@ "markdown-it": "bin/markdown-it.mjs" } }, + "node_modules/markdown-it-footnote": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-footnote/-/markdown-it-footnote-4.0.0.tgz", + "integrity": "sha512-WYJ7urf+khJYl3DqofQpYfEYkZKbmXmwxQV8c8mO/hGIhgZ1wOe7R4HLFNwqx7TjILbnC98fuyeSsin19JdFcQ==", + "license": "MIT" + }, "node_modules/mdurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", @@ -1283,6 +1294,32 @@ "node": ">=12" } }, + "node_modules/prettier": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", + "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-jinja-template": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-jinja-template/-/prettier-plugin-jinja-template-2.1.0.tgz", + "integrity": "sha512-mzoCp2Oy9BDSug80fw3B3J4n4KQj1hRvoQOL1akqcDKBb5nvYxrik9zUEDs4AEJ6nK7QDTGoH0y9rx7AlnQ78Q==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "prettier": "^3.0.0" + } + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", diff --git a/package.json b/package.json index 90670a2..2f8fcc4 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,8 @@ "dependencies": { "@11ty/eleventy": "^3.1.5", "eleventy-plugin-reading-time": "^0.0.1", - "markdown-it": "^14.1.1" + "markdown-it": "^14.1.1", + "markdown-it-footnote": "^4.0.0" }, "name": "mestizo.monster", "version": "1.0.0", @@ -14,5 +15,9 @@ "keywords": [], "author": "", "license": "ISC", - "type": "module" + "type": "module", + "devDependencies": { + "prettier": "^3.8.1", + "prettier-plugin-jinja-template": "^2.1.0" + } } diff --git a/posts/index.md b/posts/index.md index 79ff3df..542a684 100644 --- a/posts/index.md +++ b/posts/index.md @@ -1,5 +1,7 @@ --- -title: 'posts' +title: "posts" +layout: post-list.njk +tags: nav --- posts i done gone and wrote diff --git a/posts/letting-myself-relax.md b/posts/letting-myself-relax.md new file mode 100644 index 0000000..4bbb910 --- /dev/null +++ b/posts/letting-myself-relax.md @@ -0,0 +1,16 @@ +--- +title: letting myself relax +description: "the first post of many, i hope" +layout: post.njk +draft: false +date: 2026-04-09 +tags: post +--- + +i think i'm putting a barrier between me and posting words on my website that there shouldn't be. like everything needs to be "curated" and be an effective essay to publish stuff. but i don't think this is healthy, scrutinizing myself to a specific point and not getting this stuff out into the world. i want my work to be read by other people and to do that i need to start publishing more. i want to develop my skills as a writer and hone my own voice. that means i need to be willing to make more mistakes. blogs and their posts should, by design, be ugly. they should be representations of the people who write them, who are mostly miserable little piles of secrets.[^1] + +here's my promise to you, dear reader: i will start writing more. i will start publishing more. not, like, consistently, but moreโ„ข. it will not be perfect but it will be my organically written words. you are going to be reading real thoughts written by a real, genuine dumbass on the other end of the screen who doesn't know what they're doing, like the rest of us are. + +maybe the posts will be long, maybe the posts will be short. but i will post more. it's good for the brain to get these thoughts and ideas out to other people instead of letting it sit and gather dust. i think that's the whole point of this communicating thing, so i really need to exercise it if i want to get better at talking to others. talking to my preferred markdown editor is a good start. + +[^1]: but enough talk. [have at you!](https://www.youtube.com/watch?v=5tV33Ewf_hw) diff --git a/posts/moving-on-from-freenom/images/header.png b/posts/moving-on-from-freenom/header.png similarity index 100% rename from posts/moving-on-from-freenom/images/header.png rename to posts/moving-on-from-freenom/header.png diff --git a/posts/moving-on-from-freenom/index.md b/posts/moving-on-from-freenom/index.md index d80d53f..87206a8 100644 --- a/posts/moving-on-from-freenom/index.md +++ b/posts/moving-on-from-freenom/index.md @@ -1,9 +1,9 @@ --- title: "moving on from freenom ๐Ÿ‘‹" -date: "2023-10-06" +date: 2023-10-06 +tags: post layout: post.njk draft: false -categories: ["life", "technology"] keywords: [ "ga", @@ -22,25 +22,9 @@ keywords: "life", "technology", ] -tags: - [ - "ga", - "daniel-ga", - "dns", - "domain", - "domain-names", - "freenom", - "gabon", - "mestizo-monster", - "networking", - "personal-websites", - "taco-ga", - "website", - "websites", - ] -images: ["posts/moving-on-from-freenom/images/header.png"] +images: ["posts/moving-on-from-freenom/header.png"] description: "what's the harm in a free domain name?" -aliases: ["/2023/10/06/moving-on-from-freenom/index.html"] +aliases: ["../2023/10/06/moving-on-from-freenom/"] kind: "page" --- @@ -58,7 +42,7 @@ kind: "page"
A screenshot of the Freenom admin interface showing the domain daniel.ga being active and paid for +src="header.png"/>
goodnight, sweet prince.
diff --git a/redirects.njk b/redirects.njk index 4cbbc68..90ab0a2 100644 --- a/redirects.njk +++ b/redirects.njk @@ -3,18 +3,19 @@ pagination: data: collections.redirects size: 1 alias: redirect -permalink: "{{redirect[1]}}" +permalink: "{{ redirect[1] }}" layout: "" --- + - - - - - Redirecting to: {{ redirect[0] }} - - - You should be redirecting to {{ redirect[0] }} now. - + + + + + Redirecting to: {{ redirect[0] }} + + + You should be redirecting to {{ redirect[0] }} now. +