diff --git a/.eleventy.js b/.eleventy.js
index 22819ce..6a212b7 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -17,8 +17,10 @@ module.exports = function(eleventyConfig) {
eleventyConfig.setUseGitIgnore(false);
eleventyConfig.addPassthroughCopy('./src/css');
eleventyConfig.addPassthroughCopy('./src/assets/');
+ eleventyConfig.addPassthroughCopy('./src/js/');
eleventyConfig.addWatchTarget('./src/css');
- eleventyConfig.addWatchTarget('./src/components');
+ eleventyConfig.addWatchTarget('./src/js');
+ eleventyConfig.addWatchTarget('./src/assets/');
eleventyConfig.setDataDeepMerge(true);
diff --git a/package.json b/package.json
index 38e99b7..5e2bef5 100644
--- a/package.json
+++ b/package.json
@@ -3,11 +3,11 @@
"version": "1.0.0",
"main": "index.js",
"scripts": {
- "build": "eleventy",
- "watch": "eleventy --watch",
- "serve": "eleventy --serve",
- "start": "eleventy --serve",
- "debug": "DEBUG=* eleventy"
+ "build": "npx @11ty/eleventy",
+ "watch": "npx eleventy --watch",
+ "serve": "npx eleventy --serve",
+ "start": "npx eleventy --serve",
+ "debug": "DEBUG=* npx @11ty/eleventy"
},
"keywords": [],
"author": "",
@@ -19,11 +19,244 @@
"dotenv": "^16.0.1",
"eleventy-plugin-blog-tools": "^0.3.1",
"markdown-it": "^13.0.1",
- "markdown-it-attrs": "^4.1.4"
+ "markdown-it-attrs": "^4.1.4",
+ "tailwindcss": "^3.4.11"
},
"repository": {
"type": "git",
"url": "https://gitlab.comprofix.com/comprofix/website.git"
},
+ "dependencies": {
+ "a-sync-waterfall": "^1.0.1",
+ "acorn": "^7.4.1",
+ "ansi-regex": "^6.1.0",
+ "ansi-styles": "^4.3.0",
+ "any-promise": "^0.1.0",
+ "anymatch": "^3.1.3",
+ "arg": "^5.0.2",
+ "argparse": "^1.0.10",
+ "array-differ": "^3.0.0",
+ "array-union": "^2.1.0",
+ "array-uniq": "^1.0.3",
+ "arrify": "^2.0.1",
+ "asap": "^2.0.6",
+ "assert-never": "^1.3.0",
+ "async": "^3.2.6",
+ "babel-walk": "^3.0.0-canary-5",
+ "balanced-match": "^1.0.2",
+ "bcp-47": "^1.0.8",
+ "bcp-47-match": "^1.0.3",
+ "bcp-47-normalize": "^1.1.1",
+ "binary-extensions": "^2.3.0",
+ "brace-expansion": "^1.1.11",
+ "braces": "^3.0.3",
+ "call-bind": "^1.0.7",
+ "camelcase-css": "^2.0.1",
+ "chalk": "^4.1.2",
+ "character-parser": "^2.2.0",
+ "chokidar": "^3.6.0",
+ "color-convert": "^2.0.1",
+ "color-name": "^1.1.4",
+ "commander": "^10.0.1",
+ "concat-map": "^0.0.1",
+ "constantinople": "^4.0.1",
+ "cross-spawn": "^7.0.3",
+ "cssesc": "^3.0.0",
+ "debug": "^4.3.7",
+ "define-data-property": "^1.1.4",
+ "dependency-graph": "^0.11.0",
+ "dev-ip": "^1.0.1",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "doctypes": "^1.1.0",
+ "dom-serializer": "^1.4.1",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "eastasianwidth": "^0.2.0",
+ "ee-first": "^1.1.1",
+ "ejs": "^3.1.10",
+ "emoji-regex": "^9.2.2",
+ "encodeurl": "^2.0.0",
+ "entities": "^3.0.1",
+ "errno": "^0.1.8",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "escape-html": "^1.0.3",
+ "escape-string-regexp": "^4.0.0",
+ "esprima": "^4.0.1",
+ "extend-shallow": "^2.0.1",
+ "fast-glob": "^3.3.2",
+ "fastq": "^1.17.1",
+ "filelist": "^1.0.4",
+ "fill-range": "^7.1.1",
+ "finalhandler": "^1.3.1",
+ "foreground-child": "^3.3.0",
+ "fs.realpath": "^1.0.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "glob": "^7.2.3",
+ "glob-parent": "^5.1.2",
+ "gopd": "^1.0.1",
+ "graceful-fs": "^4.2.11",
+ "gray-matter": "^4.0.3",
+ "hamljs": "^0.6.2",
+ "handlebars": "^4.7.8",
+ "has-flag": "^4.0.0",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2",
+ "htmlparser2": "^7.2.0",
+ "http-equiv-refresh": "^1.0.0",
+ "inflight": "^1.0.6",
+ "inherits": "^2.0.4",
+ "is-alphabetical": "^1.0.4",
+ "is-alphanumerical": "^1.0.4",
+ "is-binary-path": "^2.1.0",
+ "is-core-module": "^2.15.1",
+ "is-decimal": "^1.0.4",
+ "is-expression": "^4.0.0",
+ "is-extendable": "^0.1.1",
+ "is-extglob": "^2.1.1",
+ "is-fullwidth-code-point": "^3.0.0",
+ "is-glob": "^4.0.3",
+ "is-json": "^2.0.1",
+ "is-number": "^7.0.0",
+ "is-promise": "^2.2.2",
+ "is-regex": "^1.1.4",
+ "isexe": "^2.0.0",
+ "iso-639-1": "^2.1.15",
+ "jackspeak": "^3.4.3",
+ "jake": "^10.9.2",
+ "jiti": "^1.21.6",
+ "js-stringify": "^1.0.2",
+ "js-yaml": "^3.14.1",
+ "jstransformer": "^1.0.0",
+ "junk": "^1.0.3",
+ "kind-of": "^6.0.3",
+ "kleur": "^4.1.5",
+ "lilconfig": "^2.1.0",
+ "lines-and-columns": "^1.2.4",
+ "linkify-it": "^4.0.1",
+ "liquidjs": "^10.16.7",
+ "list-to-array": "^1.1.0",
+ "lodash.deburr": "^4.1.0",
+ "lru-cache": "^10.4.3",
+ "luxon": "^3.5.0",
+ "maximatch": "^0.1.0",
+ "mdurl": "^1.0.1",
+ "merge2": "^1.4.1",
+ "micromatch": "^4.0.8",
+ "mime": "^3.0.0",
+ "minimatch": "^3.1.2",
+ "minimist": "^1.2.8",
+ "minipass": "^3.3.6",
+ "mkdirp": "^0.5.6",
+ "moo": "^0.5.2",
+ "morphdom": "^2.7.4",
+ "ms": "^2.1.3",
+ "multimatch": "^5.0.0",
+ "mustache": "^4.2.0",
+ "mz": "^2.7.0",
+ "nanoid": "^3.3.7",
+ "neo-async": "^2.6.2",
+ "normalize-path": "^3.0.0",
+ "nunjucks": "^3.2.4",
+ "object-assign": "^4.1.1",
+ "object-hash": "^3.0.0",
+ "on-finished": "^2.4.1",
+ "once": "^1.4.0",
+ "package-json-from-dist": "^1.0.0",
+ "parse-srcset": "^1.0.2",
+ "parseurl": "^1.3.3",
+ "path-is-absolute": "^1.0.1",
+ "path-key": "^3.1.1",
+ "path-parse": "^1.0.7",
+ "path-scurry": "^1.11.1",
+ "path-to-regexp": "^6.3.0",
+ "picocolors": "^1.1.0",
+ "picomatch": "^2.3.1",
+ "pify": "^2.3.0",
+ "pirates": "^4.0.6",
+ "please-upgrade-node": "^3.2.0",
+ "postcss": "^8.4.45",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.2",
+ "postcss-nested": "^6.2.0",
+ "postcss-selector-parser": "^6.1.2",
+ "postcss-value-parser": "^4.2.0",
+ "posthtml": "^0.16.6",
+ "posthtml-parser": "^0.11.0",
+ "posthtml-render": "^3.0.0",
+ "posthtml-urls": "^1.0.0",
+ "promise": "^7.3.1",
+ "promise-each": "^2.2.0",
+ "prr": "^1.0.1",
+ "pug": "^3.0.3",
+ "pug-attrs": "^3.0.0",
+ "pug-code-gen": "^3.0.3",
+ "pug-error": "^2.1.0",
+ "pug-filters": "^4.0.0",
+ "pug-lexer": "^5.0.1",
+ "pug-linker": "^4.0.0",
+ "pug-load": "^3.0.0",
+ "pug-parser": "^6.0.0",
+ "pug-runtime": "^3.0.1",
+ "pug-strip-comments": "^2.0.0",
+ "pug-walk": "^2.0.0",
+ "queue-microtask": "^1.2.3",
+ "read-cache": "^1.0.0",
+ "readdirp": "^3.6.0",
+ "recursive-copy": "^2.0.14",
+ "resolve": "^1.22.8",
+ "reusify": "^1.0.4",
+ "rimraf": "^2.7.1",
+ "run-parallel": "^1.2.0",
+ "section-matter": "^1.0.0",
+ "semver": "^7.6.3",
+ "semver-compare": "^1.0.0",
+ "set-function-length": "^1.2.2",
+ "shebang-command": "^2.0.0",
+ "shebang-regex": "^3.0.0",
+ "signal-exit": "^4.1.0",
+ "slash": "^1.0.0",
+ "slugify": "^1.6.6",
+ "source-map": "^0.6.1",
+ "source-map-js": "^1.2.1",
+ "sprintf-js": "^1.0.3",
+ "ssri": "^8.0.1",
+ "statuses": "^2.0.1",
+ "string-width": "^5.1.2",
+ "string-width-cjs": "^4.2.3",
+ "strip-ansi": "^7.1.0",
+ "strip-ansi-cjs": "^6.0.1",
+ "strip-bom-string": "^1.0.0",
+ "sucrase": "^3.35.0",
+ "supports-color": "^7.2.0",
+ "supports-preserve-symlinks-flag": "^1.0.0",
+ "thenify": "^3.3.1",
+ "thenify-all": "^1.6.0",
+ "to-fast-properties": "^2.0.0",
+ "to-regex-range": "^5.0.1",
+ "token-stream": "^1.0.0",
+ "ts-interface-checker": "^0.1.13",
+ "uc.micro": "^1.0.6",
+ "uglify-js": "^3.19.3",
+ "unpipe": "^1.0.0",
+ "util-deprecate": "^1.0.2",
+ "void-elements": "^3.1.0",
+ "which": "^2.0.2",
+ "with": "^7.0.2",
+ "wordwrap": "^1.0.0",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "^7.0.0",
+ "wrappy": "^1.0.2",
+ "ws": "^8.18.0",
+ "yallist": "^4.0.0",
+ "yaml": "^2.5.1"
+ },
"description": ""
}
diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk
index c50d11c..6565b68 100644
--- a/src/_includes/layouts/base.njk
+++ b/src/_includes/layouts/base.njk
@@ -1,9 +1,10 @@
{% include "layouts/header.njk" %}
-
+
+
{% block content %}
{{ content | safe }}
{% endblock %}
-
+
{% include "layouts/footer.njk" %}
\ No newline at end of file
diff --git a/src/_includes/layouts/header.njk b/src/_includes/layouts/header.njk
index 5ff8482..53c23c8 100644
--- a/src/_includes/layouts/header.njk
+++ b/src/_includes/layouts/header.njk
@@ -2,11 +2,23 @@
{{ title }}
+
+
+
@@ -16,6 +28,8 @@
Computer Problems Fixed
+
+
{% block head %}
{% endblock %}
\ No newline at end of file
diff --git a/src/blog/posts/2022/08/07/NewWebsite.md b/src/blog/posts/2022/08/07/NewWebsite.md
index 7b5ac30..b18500e 100644
--- a/src/blog/posts/2022/08/07/NewWebsite.md
+++ b/src/blog/posts/2022/08/07/NewWebsite.md
@@ -8,7 +8,7 @@ author: Matthew McKinnon
-![](/assets/img/fireworks.jpg)
+![](/assets/img/fireworks.jpg) {width=200}
diff --git a/src/css/global.css b/src/css/global.css
index 7abdc4a..349806e 100644
--- a/src/css/global.css
+++ b/src/css/global.css
@@ -1,9 +1,174 @@
-body, html {
+/* styles.css */
+:root {
+ --bg-color: lightgrey;
+ --post-bg-color: white;
+ --text-color: #000000;
+ --button-bg-color: #000000;
+ --button-text-color: #ffffff;
+}
+
+/* body {
+ background-color: var(--bg-color);
+ color: var(--text-color);
+ font-family: Arial, sans-serif;
+ transition: background-color 0.3s ease, color 0.3s ease;
+} */
+
+.container {
+ width: 46px;
+ height: 46px;
+ box-sizing: border-box;
+ padding: 12px;
+ background: none;
+ border: none;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: relative;
+}
+
+.sun {
+ width: 50%;
+ height: 50%;
+ position: absolute;
+ pointer-events: none;
+ opacity: 0;
+ transform: scale(0.6) rotate(0deg);
+ transition: transform 0.3s ease-in, opacity 0.2s ease-in 0.1s;
+ /* white transparent for Safari */
+ background: radial-gradient(
+ circle,
+ rgba(0, 0, 0, 0),
+ rgba(0, 0, 0, 0) 50%,
+ #f0f0f0 50%
+ );
+}
+
+.sun:before {
+ content: "";
+ position: absolute;
+ display: block;
+ width: 100%;
height: 100%;
+ background: radial-gradient(
+ circle,
+ #f0f0f0 30%,
+ rgba(0, 0, 0, 0) 31%,
+ rgba(0, 0, 0, 0) 50%,
+ #f0f0f0 50%
+ );
+ transform: rotate(45deg);
+}
+.sun.visible {
+ pointer-events: auto;
+ opacity: 1;
+ transform: scale(1) rotate(180deg);
+ transition: transform 0.3s ease-in, opacity 0.2s ease-in 0.1s;
+}
+.moon {
+ width: 50%;
+ height: 50%;
+ pointer-events: none;
+ position: absolute;
+ left: 12.5%;
+ top: 18.75%;
+ background-color: rgba(0, 0, 0, 0);
+ border-radius: 50%;
+ box-shadow: 9px 3px 0px 0px #f0f0f0;
+ opacity: 0;
+ transform: scale(0.3) rotate(65deg);
+ transition: transform 0.3s ease-in, opacity 0.2s ease-in 0.1s;
+}
+.moon.visible {
+ pointer-events: auto;
+ opacity: 1;
+ transform: scale(1) rotate(0deg);
+ transition: transform 0.3s ease-in, opacity 0.2s ease-in 0.1s;
+}
+.star {
+ position: absolute;
+ top: 25%;
+ left: 5%;
+ display: block;
+ width: 0px;
+ height: 0px;
+ border-right: 7px solid rgba(0, 0, 0, 0);
+ border-bottom: 5px solid #f0f0f0;
+ border-left: 7px solid rgba(0, 0, 0, 0);
+ transform: scale(0.55) rotate(35deg);
+ opacity: 0;
+ transition: all 0.2s ease-in 0.4s;
+}
+.star:before {
+ border-bottom: 5px solid #f0f0f0;
+ border-left: 3px solid rgba(0, 0, 0, 0);
+ border-right: 3px solid rgba(0, 0, 0, 0);
+ position: absolute;
+ height: 0;
+ width: 0;
+ top: -3px;
+ left: -5px;
+ display: block;
+ content: "";
+ transform: rotate(-35deg);
+}
+.star:after {
+ position: absolute;
+ display: block;
+ color: red;
+ top: 0px;
+ left: -7px;
+ width: 0px;
+ height: 0px;
+ border-right: 7px solid rgba(0, 0, 0, 0);
+ border-bottom: 5px solid #f0f0f0;
+ border-left: 7px solid rgba(0, 0, 0, 0);
+ transform: rotate(-70deg);
+ content: "";
+}
+.moon.visible .star {
+ opacity: 0.8;
+}
+.star.small {
+ transform: scale(0.35) rotate(35deg);
+ position: relative;
+ top: 50%;
+ left: 37.5%;
+ opacity: 0;
+ transition: all 0.2s ease-in 0.45s;
+}
+.moon.visible .star.small {
+ opacity: 0.7;
+ transform: scale(0.45) rotate(35deg);
+}
+
+button {
+ background-color: yellow;
+ display: block;
+ padding: 14px 16px;
+ text-decoration: none;
+}
+
+button:hover {
+ background-color: #808080;
+}
+
+body.dark-mode {
+ --bg-color: black;
+ --post-bg-color: #333;
+ --text-color: #ffffff;
+ --button-bg-color: #ffffff;
+ --button-text-color: #000000;
+}
+
+body, html {
+ background-color: var(--bg-color);
+ color: var(--text-color);
+ /* transition: background-color 0.3s ease, color 0.3s ease; */
margin: 0;
- font-family: Menlo, Consolas, DejaVu Sans Mono, monospace;
+ font-family: Verdana, Menlo, Consolas, DejaVu Sans Mono, monospace;
font-size: 20px;
- background-color: lightgrey;
+ background-color:
}
h1 {
@@ -52,7 +217,7 @@ h1 {
-.menu li a {
+.menu li a {
display: block;
color: white;
text-align: center;
@@ -87,18 +252,10 @@ h1 {
}
-.blogtext {
+.post {
max-width: 1200px;
margin: 20 auto;
- background-color: white;
- display: block;
- padding: 14px 16px
-}
-
-.post_content {
- max-width: 1200px;
- margin: 20 auto;
- background-color: white;
+ background-color: var(--post-bg-color);
display: block;
padding: 14px 16px
}
diff --git a/src/index.njk b/src/index.njk
index 8319400..a972d1d 100644
--- a/src/index.njk
+++ b/src/index.njk
@@ -6,7 +6,7 @@ eleventyExcludeFromCollections: true
{% block content %}
{% for post in collections.posts | reverse %}
-
+
{{ post.data.title }}
{{ post.data.date }}
diff --git a/src/js/darkmode.js b/src/js/darkmode.js
new file mode 100644
index 0000000..b6a56b7
--- /dev/null
+++ b/src/js/darkmode.js
@@ -0,0 +1,26 @@
+// script.js
+document.addEventListener('DOMContentLoaded', () => {
+ const switcher = document.getElementById('modeSwitcher');
+ const currentMode = localStorage.getItem('theme') || 'light';
+
+ if (currentMode === 'dark') {
+ document.body.classList.add('dark-mode');
+ // switcher.textContent = 'Switch to Light Mode';
+ }
+
+ switcher.addEventListener('click', () => {
+ document.body.classList.toggle('dark-mode');
+ const mode = document.body.classList.contains('dark-mode') ? 'dark' : 'light';
+ // switcher.textContent = mode === 'dark' ? 'Switch to Light Mode' : 'Switch to Dark Mode';
+ localStorage.setItem('theme', mode);
+ });
+
+ const sun = document.querySelector(".sun");
+ const moon = document.querySelector(".moon");
+ const button = document.querySelector(".container");
+
+ button.addEventListener("click", () => {
+ sun.classList.toggle("visible");
+ moon.classList.toggle("visible");
+})
+});
\ No newline at end of file