Mae's website :3 maemoon.me
personal website svelte sveltekit
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Working blog :D

+614 -14
+313
package-lock.json
··· 16 16 "eslint-config-prettier": "^9.1.0", 17 17 "eslint-plugin-svelte": "^2.36.0", 18 18 "globals": "^15.0.0", 19 + "mdsvex": "^0.11.2", 19 20 "prettier": "^3.1.1", 20 21 "prettier-plugin-svelte": "^3.1.2", 21 22 "svelte": "^4.2.7", 23 + "svelte-preprocess": "^5.1.4", 22 24 "vite": "^5.0.3" 23 25 } 24 26 }, ··· 940 942 "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 941 943 "dev": true 942 944 }, 945 + "node_modules/@types/pug": { 946 + "version": "2.0.10", 947 + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", 948 + "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", 949 + "dev": true 950 + }, 951 + "node_modules/@types/unist": { 952 + "version": "2.0.10", 953 + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", 954 + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", 955 + "dev": true 956 + }, 943 957 "node_modules/acorn": { 944 958 "version": "8.11.3", 945 959 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", ··· 1039 1053 "dependencies": { 1040 1054 "balanced-match": "^1.0.0", 1041 1055 "concat-map": "0.0.1" 1056 + } 1057 + }, 1058 + "node_modules/buffer-crc32": { 1059 + "version": "0.2.13", 1060 + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 1061 + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 1062 + "dev": true, 1063 + "engines": { 1064 + "node": "*" 1042 1065 } 1043 1066 }, 1044 1067 "node_modules/callsites": { ··· 1192 1215 "node": ">=6" 1193 1216 } 1194 1217 }, 1218 + "node_modules/detect-indent": { 1219 + "version": "6.1.0", 1220 + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", 1221 + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", 1222 + "dev": true, 1223 + "engines": { 1224 + "node": ">=8" 1225 + } 1226 + }, 1195 1227 "node_modules/devalue": { 1196 1228 "version": "5.0.0", 1197 1229 "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.0.0.tgz", 1198 1230 "integrity": "sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==", 1231 + "dev": true 1232 + }, 1233 + "node_modules/es6-promise": { 1234 + "version": "3.3.1", 1235 + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", 1236 + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", 1199 1237 "dev": true 1200 1238 }, 1201 1239 "node_modules/esbuild": { ··· 1537 1575 "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", 1538 1576 "dev": true 1539 1577 }, 1578 + "node_modules/fs.realpath": { 1579 + "version": "1.0.0", 1580 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1581 + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1582 + "dev": true 1583 + }, 1540 1584 "node_modules/fsevents": { 1541 1585 "version": "2.3.3", 1542 1586 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", ··· 1551 1595 "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1552 1596 } 1553 1597 }, 1598 + "node_modules/glob": { 1599 + "version": "7.2.3", 1600 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1601 + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1602 + "deprecated": "Glob versions prior to v9 are no longer supported", 1603 + "dev": true, 1604 + "dependencies": { 1605 + "fs.realpath": "^1.0.0", 1606 + "inflight": "^1.0.4", 1607 + "inherits": "2", 1608 + "minimatch": "^3.1.1", 1609 + "once": "^1.3.0", 1610 + "path-is-absolute": "^1.0.0" 1611 + }, 1612 + "engines": { 1613 + "node": "*" 1614 + }, 1615 + "funding": { 1616 + "url": "https://github.com/sponsors/isaacs" 1617 + } 1618 + }, 1554 1619 "node_modules/glob-parent": { 1555 1620 "version": "6.0.2", 1556 1621 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", ··· 1585 1650 "version": "0.1.2", 1586 1651 "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", 1587 1652 "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", 1653 + "dev": true 1654 + }, 1655 + "node_modules/graceful-fs": { 1656 + "version": "4.2.11", 1657 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 1658 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 1588 1659 "dev": true 1589 1660 }, 1590 1661 "node_modules/has-flag": { ··· 1640 1711 "node": ">=0.8.19" 1641 1712 } 1642 1713 }, 1714 + "node_modules/inflight": { 1715 + "version": "1.0.6", 1716 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1717 + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1718 + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", 1719 + "dev": true, 1720 + "dependencies": { 1721 + "once": "^1.3.0", 1722 + "wrappy": "1" 1723 + } 1724 + }, 1725 + "node_modules/inherits": { 1726 + "version": "2.0.4", 1727 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1728 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1729 + "dev": true 1730 + }, 1643 1731 "node_modules/is-extglob": { 1644 1732 "version": "2.1.1", 1645 1733 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", ··· 1803 1891 "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", 1804 1892 "dev": true 1805 1893 }, 1894 + "node_modules/mdsvex": { 1895 + "version": "0.11.2", 1896 + "resolved": "https://registry.npmjs.org/mdsvex/-/mdsvex-0.11.2.tgz", 1897 + "integrity": "sha512-Y4ab+vLvTJS88196Scb/RFNaHMHVSWw6CwfsgWIQP8f42D57iDII0/qABSu530V4pkv8s6T2nx3ds0MC1VwFLA==", 1898 + "dev": true, 1899 + "dependencies": { 1900 + "@types/unist": "^2.0.3", 1901 + "prism-svelte": "^0.4.7", 1902 + "prismjs": "^1.17.1", 1903 + "vfile-message": "^2.0.4" 1904 + }, 1905 + "peerDependencies": { 1906 + "svelte": "^3.56.0 || ^4.0.0 || ^5.0.0-next.120" 1907 + } 1908 + }, 1909 + "node_modules/min-indent": { 1910 + "version": "1.0.1", 1911 + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 1912 + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 1913 + "dev": true, 1914 + "engines": { 1915 + "node": ">=4" 1916 + } 1917 + }, 1806 1918 "node_modules/minimatch": { 1807 1919 "version": "3.1.2", 1808 1920 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", ··· 1815 1927 "node": "*" 1816 1928 } 1817 1929 }, 1930 + "node_modules/minimist": { 1931 + "version": "1.2.8", 1932 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 1933 + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 1934 + "dev": true, 1935 + "funding": { 1936 + "url": "https://github.com/sponsors/ljharb" 1937 + } 1938 + }, 1939 + "node_modules/mkdirp": { 1940 + "version": "0.5.6", 1941 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 1942 + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 1943 + "dev": true, 1944 + "dependencies": { 1945 + "minimist": "^1.2.6" 1946 + }, 1947 + "bin": { 1948 + "mkdirp": "bin/cmd.js" 1949 + } 1950 + }, 1818 1951 "node_modules/mri": { 1819 1952 "version": "1.2.0", 1820 1953 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", ··· 1863 1996 "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 1864 1997 "dev": true 1865 1998 }, 1999 + "node_modules/once": { 2000 + "version": "1.4.0", 2001 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2002 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 2003 + "dev": true, 2004 + "dependencies": { 2005 + "wrappy": "1" 2006 + } 2007 + }, 1866 2008 "node_modules/optionator": { 1867 2009 "version": "0.9.4", 1868 2010 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", ··· 1929 2071 "dev": true, 1930 2072 "engines": { 1931 2073 "node": ">=8" 2074 + } 2075 + }, 2076 + "node_modules/path-is-absolute": { 2077 + "version": "1.0.1", 2078 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2079 + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 2080 + "dev": true, 2081 + "engines": { 2082 + "node": ">=0.10.0" 1932 2083 } 1933 2084 }, 1934 2085 "node_modules/path-key": { ··· 2103 2254 "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" 2104 2255 } 2105 2256 }, 2257 + "node_modules/prism-svelte": { 2258 + "version": "0.4.7", 2259 + "resolved": "https://registry.npmjs.org/prism-svelte/-/prism-svelte-0.4.7.tgz", 2260 + "integrity": "sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==", 2261 + "dev": true 2262 + }, 2263 + "node_modules/prismjs": { 2264 + "version": "1.29.0", 2265 + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", 2266 + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", 2267 + "dev": true, 2268 + "engines": { 2269 + "node": ">=6" 2270 + } 2271 + }, 2106 2272 "node_modules/punycode": { 2107 2273 "version": "2.3.1", 2108 2274 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", ··· 2151 2317 "node": ">=0.10.0" 2152 2318 } 2153 2319 }, 2320 + "node_modules/rimraf": { 2321 + "version": "2.7.1", 2322 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 2323 + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 2324 + "deprecated": "Rimraf versions prior to v4 are no longer supported", 2325 + "dev": true, 2326 + "dependencies": { 2327 + "glob": "^7.1.3" 2328 + }, 2329 + "bin": { 2330 + "rimraf": "bin.js" 2331 + } 2332 + }, 2154 2333 "node_modules/rollup": { 2155 2334 "version": "4.18.0", 2156 2335 "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", ··· 2221 2400 "node": ">=6" 2222 2401 } 2223 2402 }, 2403 + "node_modules/sander": { 2404 + "version": "0.5.1", 2405 + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", 2406 + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", 2407 + "dev": true, 2408 + "dependencies": { 2409 + "es6-promise": "^3.1.2", 2410 + "graceful-fs": "^4.1.3", 2411 + "mkdirp": "^0.5.1", 2412 + "rimraf": "^2.5.2" 2413 + } 2414 + }, 2224 2415 "node_modules/semver": { 2225 2416 "version": "7.6.2", 2226 2417 "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", ··· 2274 2465 "node": ">= 10" 2275 2466 } 2276 2467 }, 2468 + "node_modules/sorcery": { 2469 + "version": "0.11.0", 2470 + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", 2471 + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", 2472 + "dev": true, 2473 + "dependencies": { 2474 + "@jridgewell/sourcemap-codec": "^1.4.14", 2475 + "buffer-crc32": "^0.2.5", 2476 + "minimist": "^1.2.0", 2477 + "sander": "^0.5.0" 2478 + }, 2479 + "bin": { 2480 + "sorcery": "bin/sorcery" 2481 + } 2482 + }, 2277 2483 "node_modules/source-map-js": { 2278 2484 "version": "1.2.0", 2279 2485 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", ··· 2290 2496 "dev": true, 2291 2497 "dependencies": { 2292 2498 "ansi-regex": "^5.0.1" 2499 + }, 2500 + "engines": { 2501 + "node": ">=8" 2502 + } 2503 + }, 2504 + "node_modules/strip-indent": { 2505 + "version": "3.0.0", 2506 + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 2507 + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 2508 + "dev": true, 2509 + "dependencies": { 2510 + "min-indent": "^1.0.0" 2293 2511 }, 2294 2512 "engines": { 2295 2513 "node": ">=8" ··· 2428 2646 "svelte": "^3.19.0 || ^4.0.0" 2429 2647 } 2430 2648 }, 2649 + "node_modules/svelte-preprocess": { 2650 + "version": "5.1.4", 2651 + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz", 2652 + "integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==", 2653 + "dev": true, 2654 + "hasInstallScript": true, 2655 + "dependencies": { 2656 + "@types/pug": "^2.0.6", 2657 + "detect-indent": "^6.1.0", 2658 + "magic-string": "^0.30.5", 2659 + "sorcery": "^0.11.0", 2660 + "strip-indent": "^3.0.0" 2661 + }, 2662 + "engines": { 2663 + "node": ">= 16.0.0" 2664 + }, 2665 + "peerDependencies": { 2666 + "@babel/core": "^7.10.2", 2667 + "coffeescript": "^2.5.1", 2668 + "less": "^3.11.3 || ^4.0.0", 2669 + "postcss": "^7 || ^8", 2670 + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", 2671 + "pug": "^3.0.0", 2672 + "sass": "^1.26.8", 2673 + "stylus": "^0.55.0", 2674 + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", 2675 + "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", 2676 + "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" 2677 + }, 2678 + "peerDependenciesMeta": { 2679 + "@babel/core": { 2680 + "optional": true 2681 + }, 2682 + "coffeescript": { 2683 + "optional": true 2684 + }, 2685 + "less": { 2686 + "optional": true 2687 + }, 2688 + "postcss": { 2689 + "optional": true 2690 + }, 2691 + "postcss-load-config": { 2692 + "optional": true 2693 + }, 2694 + "pug": { 2695 + "optional": true 2696 + }, 2697 + "sass": { 2698 + "optional": true 2699 + }, 2700 + "stylus": { 2701 + "optional": true 2702 + }, 2703 + "sugarss": { 2704 + "optional": true 2705 + }, 2706 + "typescript": { 2707 + "optional": true 2708 + } 2709 + } 2710 + }, 2431 2711 "node_modules/text-table": { 2432 2712 "version": "0.2.0", 2433 2713 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", ··· 2465 2745 "node": ">= 0.8.0" 2466 2746 } 2467 2747 }, 2748 + "node_modules/unist-util-stringify-position": { 2749 + "version": "2.0.3", 2750 + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", 2751 + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", 2752 + "dev": true, 2753 + "dependencies": { 2754 + "@types/unist": "^2.0.2" 2755 + }, 2756 + "funding": { 2757 + "type": "opencollective", 2758 + "url": "https://opencollective.com/unified" 2759 + } 2760 + }, 2468 2761 "node_modules/uri-js": { 2469 2762 "version": "4.4.1", 2470 2763 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", ··· 2479 2772 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2480 2773 "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 2481 2774 "dev": true 2775 + }, 2776 + "node_modules/vfile-message": { 2777 + "version": "2.0.4", 2778 + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", 2779 + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", 2780 + "dev": true, 2781 + "dependencies": { 2782 + "@types/unist": "^2.0.0", 2783 + "unist-util-stringify-position": "^2.0.0" 2784 + }, 2785 + "funding": { 2786 + "type": "opencollective", 2787 + "url": "https://opencollective.com/unified" 2788 + } 2482 2789 }, 2483 2790 "node_modules/vite": { 2484 2791 "version": "5.2.12", ··· 2572 2879 "engines": { 2573 2880 "node": ">=0.10.0" 2574 2881 } 2882 + }, 2883 + "node_modules/wrappy": { 2884 + "version": "1.0.2", 2885 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2886 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 2887 + "dev": true 2575 2888 }, 2576 2889 "node_modules/yaml": { 2577 2890 "version": "1.10.2",
+2
package.json
··· 18 18 "eslint-config-prettier": "^9.1.0", 19 19 "eslint-plugin-svelte": "^2.36.0", 20 20 "globals": "^15.0.0", 21 + "mdsvex": "^0.11.2", 21 22 "prettier": "^3.1.1", 22 23 "prettier-plugin-svelte": "^3.1.2", 23 24 "svelte": "^4.2.7", 25 + "svelte-preprocess": "^5.1.4", 24 26 "vite": "^5.0.3" 25 27 }, 26 28 "type": "module"
+18 -10
src/app.html
··· 1 1 <!doctype html> 2 2 <html lang="en"> 3 - <head> 4 - <meta charset="utf-8" /> 5 - <link rel="icon" href="%sveltekit.assets%/favicon.png" /> 6 - <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 - %sveltekit.head% 8 - </head> 9 - <body data-sveltekit-preload-data="hover"> 10 - <div style="display: contents">%sveltekit.body%</div> 11 - </body> 12 - </html> 3 + 4 + <head> 5 + <meta charset="utf-8" /> 6 + <link rel="icon" href="%sveltekit.assets%/favicon.png" /> 7 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 8 + <link rel="preconnect" href="https://fonts.googleapis.com" /> 9 + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 10 + <link 11 + href="https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap" 12 + rel="stylesheet" /> 13 + %sveltekit.head% 14 + </head> 15 + 16 + <body data-sveltekit-preload-data="hover"> 17 + <div style="display: contents">%sveltekit.body%</div> 18 + </body> 19 + 20 + </html>
+35
src/lib/global.css
··· 1 + * { 2 + margin: 0; 3 + padding: 0; 4 + } 5 + 6 + body { 7 + background-color: #191724; 8 + color: #e0def4; 9 + } 10 + 11 + h1 { 12 + font-family: 'Lato'; 13 + } 14 + 15 + h2 { 16 + font-family: 'Lato'; 17 + color: #908caa; 18 + font-size: 1.2rem; 19 + } 20 + 21 + p { 22 + font-family: 'Lato'; 23 + font-size: 1.2rem; 24 + padding-bottom: 1em; 25 + } 26 + 27 + a { 28 + font-family: 'Lato'; 29 + font-size: 1.2rem; 30 + color: #eb6f92; 31 + } 32 + 33 + a:hover { 34 + color: #ebbcba; 35 + }
+18
src/lib/index.js
··· 1 1 // place files you want to import through the `$lib` alias in this folder. 2 + export const fetchMarkdownPosts = async () => { 3 + const allPostFiles = import.meta.glob('/src/posts/*.md'); 4 + const iterablePostFiles = Object.entries(allPostFiles); 5 + 6 + const allPosts = await Promise.all( 7 + iterablePostFiles.map(async ([path, resolver]) => { 8 + const { metadata } = await resolver(); 9 + const postPath = path.slice(11, -3); 10 + 11 + return { 12 + meta: metadata, 13 + path: postPath 14 + }; 15 + }) 16 + ); 17 + 18 + return allPosts; 19 + };
+15
src/posts/adhd.md
··· 1 + --- 2 + title: "ADHD" 3 + date: "2024-04-30" 4 + --- 5 + I have ADHD. That's probably not too surprising - ADHD is very common, with 4 to 8% of people having it (as far as I can tell from a quick Google search.) Yet despite that, I feel like I am constantly misunderstood. 6 + 7 + First of all, I should clarify that I'm not trying to imply that others don't have it worse - I am *not* trying to compare myself or my experiences to others because I do not have a complete understanding of them either. That said, I think the widespread knowledge and normality of ADHD paradoxically decreases understanding of people with the disability. Because ADHD is treated as being "normal", the collective understanding of its negative effects are understated. You've probably seen "ADHD productivity hacks" or "tips" or whatever - "Make a todo list!!", "Break it down into chunks!!", "Try this medicine!", Just get it over with!" - I've been told all of these things before. But at least for me, **they do not work.** They can help a tiny bit, sometimes, but they certainly can't fix my attention. (Hell, I'm writing this instead of working on my school project that's 2 months late.) 8 + 9 + Most days, I can't focus on a single thing for longer than 15 minutes at a time. Working on something for me looks like opening up my computer, writing a sentence or two, remembering a cool thing I heard about, going to research it and ending up going down a Wikipedia rabbit hole. Eventually I remember what I was working on, so I go and write another sentence - but hey, I don't really like this font. So I go to browse for other fonts and end up learning some typography fundamentals in the process, and now I'm really interested in graphics design. So I install Adobe Illustrator, open up a blank document - and by now I've lost interest. So I go back to the project I'm supposed to be doing but then I wonder if my friend's ever responded to that message I sent them, so I check Discord, and end up researching the history of Unicode to correct a single inconsequential message from a different friend. 10 + 11 + I do the same thing when trying out the aforementioned tips - I will spend the entire time finding the best todo list apps and then making multiple todo lists instead of just doing the work. I will restart the same project many times because I don't like my previous ideas any more. In order to break something into chunks I need to break the breaking of the thing into chunks. If I could "just get it done with", I would. As for medical solutions, I've tried multiple different drugs and they all have made me either feel worse - to the point of having complete breakdowns in the evenings, or just not having a noticable difference to my attention. 12 + 13 + Yet people keep telling me these things almost every day - my parents, teachers, occupational therapists, physchiatrists. Thinking they have a magic cure or solution that can "fix" me. Maybe these things work for others - maybe having autism in combination with ADHD makes things harder. Maybe I'm doing okay, and the school system is just failing me. 14 + 15 + Whatever it is, I'm tired.
+16
src/posts/creativity.md
··· 1 + --- 2 + title: "Creativity" 3 + date: "2024-05-23" 4 + --- 5 + I want to make a video game. I want to get something out into the world, something that gives people the same sort of feeling that I felt when I played other people's games. Something that expresses my emotions in a way that might let people actually understand, at least a little. And I want it to be successful. 6 + 7 + But there are so many games. So many stories already told. It seems like every day a new, unique, critically acclaimed game comes out. How am I supposed to stand out in a landscape like that? How am I supposed to make something that doesn't just get overlooked, ignored by the masses? I'm honestly not sure. 8 + 9 + # Why should I care? 10 + Why should I even be caring about this? I write blog posts regardless of how many people are reading. The process of creating is fulfilling in itself. But I *do* care. I can't help it. And I don't think it's because of greed; money is nice to have but it would be a secondary goal. The reason I want to make something original is because I want to give people a unique experience. I don't want to scream into a void, put all my energy into a game that will never be played. I want to make the world a better place. I want to help people going through hard times. I want to express complex feelings so that maybe someone feeling similar can have something to relate to. 11 + 12 + # No more ideas; we have enough 13 + I don't want to come up with the best, most unique, never-before-seen idea in the world, only for it to be underused, executed badly and written off, failing to get the attention it deserves because there's so many others. I need to take other preexisting ideas, merge them, and execute them the best I can. And I need to somehow give people a unique experience from non-unique ideas. I'm not sure how to do that. 14 + 15 + # Copyright 16 + How do I take an idea and put it into my game without copying something that already exists? How do I make it different enough to the point where I'm not stealing but I'm also not creating a new idea? How do I find that balance? I don't know.
+10
src/posts/names.md
··· 1 + --- 2 + title: "Names" 3 + date: "2024-03-06" 4 + --- 5 + Names are hard. 6 + I don't know what my name is, or what it's going to be. 7 + I've tried every one I can think of, but they all feel off somehow. 8 + 9 + I don't have a big takeaway or conclusion to this post. 10 + But I needed to write it down anyways.
+11
src/posts/trans_food.md
··· 1 + --- 2 + title: "Being trans is like pineapple on pizza" 3 + date: "2024-02-13" 4 + --- 5 + If you didn't know, I'm transgender (MtF). Throughout the process of discovering this, I've heard a lot of advice from people in the trans community. 6 + 7 + One common point I see brought up is that "you can't choose whether you're trans or not", and I agree with this - however, I think it can sometimes backfire and make people falsely infer that being transgender is a binary - you're either trans, or you're not, and that there's one correct answer. This can lead to people doubting themselves and worrying that they're faking it or that they're not "truly" trans. 8 + 9 + I've come up with an allegory that I believe does a better job of explaining it - controversial foods. You can't choose whether you're trans in the same way you can't choose which foods you like. You can choose to eat olives or pineapple on pizza even if you don't like the taste of it, but you're not going to enjoy it much. You can choose to identify as a man or a woman or whatever; you can change your pronouns, your name, transition medically - but you won't want to if you're not trans. The only way to find out whether you like a food or not is by trying it or not, and the only way to know your gender is by experimenting. Your brain will tell you if you're doing things wrong. 10 + 11 + Like with foods, it's not black or white; You can have a favourite food while still liking others. You can like certain foods only when prepared a certain way. Your tastes can change over time. It's the same with being trans.
+19
src/posts/vent_post.md
··· 1 + --- 2 + title: "Vent post" 3 + date: "2024-06-05" 4 + --- 5 + AHHAHHAHADFUDFHDFHHHHHHHH 6 + smdfsdfjklsdmkfamsdfioewjirjweifijodsijfsdv dfmkvd 7 + fdHAHHdsfusnfnsf 8 + m.fgs.fg.er.erwt 9 + 10 + 11 + dfbdfbdfbdfbdfbdfbdfbdfbd 12 + 13 + 14 + .......34.3.45.345.34.53.45.34.53495129459349590324952349059034 15 + AHJAHFDUHUIDHHHHHHHHH 16 + 17 + NAHNEHWHAHHHHH HH GBBTYUGUUJTUNTNUTUTUTIUTIIIIIIIIIIIIIIIIIII!!I!N!N!NN!N!N!FSF 18 + 19 + ok im done now
+9
src/posts/welcome.md
··· 1 + --- 2 + title: "Welcome" 3 + date: "2024-01-28" 4 + --- 5 + Welcome to my blog. 6 + 7 + I'm starting it because [Todepond](https://www.todepond.com) told me to. 8 + 9 + I'll post here whenever I have a thought that I'd like to share. I hope you'll find it interesting.
+9
src/posts/writing.md
··· 1 + --- 2 + title: "Writing" 3 + date: "2024-04-29" 4 + --- 5 + [Just](https://todepond.com/wikiblogarden/better-computing/just/) write, they say. 6 + 7 + Just come up with an idea. Figure out how to put it into words. Question whether your idea is good. Question whether your idea is too personal. Wait no this isn't what I meant to say. The words don't express my feelings properly. Will people take offense to this? Wait actually I've changed my mind about this part. Is this original enough? Am I just copying TodePond? Is it weird that I mention them so much in this blog, even though they inspired me to start it? Am I writing for myself or for others? Should I even post this? Will people find this interesting? Do I even know what I'm writing about? Is my grammar correct? *Should* my grammar be correct? This word isn't common enough, I should change it. I've used this word too much, I should change it. I have another great idea but no idea how to express it. What should I name this post? Is that too cringy? Is it clickbait? Is it concise enough? 8 + 9 + Typing is easy. Writing is hard.
+7
src/routes/+layout.js
··· 1 + export const load = ({ url }) => { 2 + const currentRoute = url.pathname; 3 + 4 + return { 5 + currentRoute 6 + }; 7 + };
+11
src/routes/+layout.svelte
··· 1 + <script> 2 + import '$lib/global.css'; 3 + import { fly, blur } from 'svelte/transition'; 4 + export let data; 5 + </script> 6 + 7 + {#key data.currentRoute} 8 + <main in:blur={{ duration: 200, delay: 200 }} out:blur={{ duration: 200 }}> 9 + <slot /> 10 + </main> 11 + {/key}
+8
src/routes/+page.js
··· 1 + export const load = async ({ fetch }) => { 2 + const response = await fetch(`/api/posts`); 3 + const posts = await response.json(); 4 + 5 + return { 6 + posts 7 + }; 8 + };
+54 -2
src/routes/+page.svelte
··· 1 - <h1>Welcome to SvelteKit</h1> 2 - <p>Visit <a href="https://kit.svelte.dev">kit.svelte.dev</a> to read the documentation</p> 1 + <script> 2 + import { onMount } from 'svelte'; 3 + import { fade } from 'svelte/transition'; 4 + export let data; 5 + console.log(data); 6 + let lastUpdated = new Date(data.posts[0].meta.date); 7 + let lastUpdatedString = `${lastUpdated.getDay()}/${lastUpdated.getMonth()}/${lastUpdated.getFullYear()}`; 8 + let messages = [ 9 + 'This is a blog. Sometimes I write stuff.', 10 + 'This is a blog. I write stuff here.', 11 + 'This is a blog. Occasionally, I write stuff.', 12 + 'This is a blog. I write stuff here when I feel like it.', 13 + `This is a blog. It currently has ${data.posts.length} posts.`, 14 + 'This is a blog. Thank you for reading!', 15 + 'This is a blog... or is it?', 16 + 'This is a blog. It is written in Svelte and SvelteKit.', 17 + `This is a blog. It was last updated on ${lastUpdatedString}.`, 18 + 'This is, unsurprisingly, a blog.' 19 + ]; 20 + 21 + let message = "This is a blog. This message hasn't loaded yet."; 22 + 23 + onMount(() => { 24 + message = messages[Math.floor(Math.random() * messages.length)]; 25 + }); 26 + </script> 27 + 28 + <main> 29 + <h1>Blog :3</h1> 30 + <br /> 31 + <p>{message}</p> 32 + <br /> 33 + <ul> 34 + {#each data.posts as post} 35 + <li transition:fade> 36 + <a href={'/post/' + post.path}> 37 + {post.meta.title} 38 + </a> 39 + </li> 40 + {/each} 41 + </ul> 42 + </main> 43 + 44 + <style> 45 + main { 46 + margin: 0 auto; 47 + max-width: 750px; 48 + padding: 2em; 49 + } 50 + 51 + li { 52 + list-style: none; 53 + } 54 + </style>
+12
src/routes/api/posts/+server.js
··· 1 + import { fetchMarkdownPosts } from '$lib'; 2 + import { json } from '@sveltejs/kit'; 3 + 4 + export const GET = async () => { 5 + const allPosts = await fetchMarkdownPosts(); 6 + 7 + const sortedPosts = allPosts.sort((a, b) => { 8 + return new Date(b.meta.date) - new Date(a.meta.date); 9 + }); 10 + 11 + return json(sortedPosts); 12 + };
+11
src/routes/post/[slug]/+page.js
··· 1 + export async function load({ params }) { 2 + const post = await import(`$lib/../posts/${params.slug}.md`); 3 + const { title, date } = post.metadata; 4 + const content = post.default; 5 + 6 + return { 7 + content, 8 + title, 9 + date 10 + }; 11 + }
+25
src/routes/post/[slug]/+page.svelte
··· 1 + <script> 2 + export let data; 3 + </script> 4 + 5 + <svelte:head> 6 + <title>{data.title}</title> 7 + </svelte:head> 8 + 9 + <main> 10 + <article> 11 + <h1>{data.title}</h1> 12 + <h2>{data.date}</h2> 13 + <br /> 14 + <svelte:component this={data.content} /> 15 + </article> 16 + <a href="..">Back</a> 17 + </main> 18 + 19 + <style> 20 + main { 21 + margin: 0 auto; 22 + max-width: 750px; 23 + padding: 2em; 24 + } 25 + </style>
+11 -2
svelte.config.js
··· 1 1 import adapter from '@sveltejs/adapter-auto'; 2 + import sveltePreprocess from 'svelte-preprocess'; 3 + import { mdsvex } from 'mdsvex'; 2 4 3 5 /** @type {import('@sveltejs/kit').Config} */ 4 6 const config = { ··· 7 9 // If your environment is not supported, or you settled on a specific environment, switch out the adapter. 8 10 // See https://kit.svelte.dev/docs/adapters for more information about adapters. 9 11 adapter: adapter() 10 - } 12 + }, 13 + extensions: ['.svelte', '.md'], 14 + preprocess: [ 15 + sveltePreprocess(), 16 + mdsvex({ 17 + extensions: ['.md'] 18 + }) 19 + ] 11 20 }; 12 21 13 - export default config; 22 + export default config;