From eb4fe3b595a14cb80f11e8412235581f02d57e10 Mon Sep 17 00:00:00 2001 From: Amy Retzerau Date: Wed, 10 Sep 2025 12:21:53 +0200 Subject: [PATCH] feat: added rose pine theme from prism syntax --- 2 | 135 +++++++++++++++++++++++++ package-lock.json | 165 ++++++++++++++++++++++--------- package.json | 5 + src/routes/+layout.svelte | 12 ++- src/routes/+page.svelte | 27 +++-- src/routes/about/+page.svelte | 0 src/routes/blogs/blog.svelte | 32 ++++++ src/routes/blogs/img.svelte | 9 ++ src/routes/blogs/style-blog.css | 10 ++ src/routes/blogs/test/+page.svx | 61 +++++++++--- src/routes/blogs/test2/+page.svx | 7 ++ src/routes/main.svelte | 0 src/routes/style-entries.css | 47 +++++++++ src/routes/style.css | 92 +++++++++++++++++ static/blog-1.png | Bin 0 -> 40013 bytes svelte.config.js | 44 ++++++--- 16 files changed, 567 insertions(+), 79 deletions(-) create mode 100644 2 create mode 100644 src/routes/about/+page.svelte create mode 100644 src/routes/blogs/blog.svelte create mode 100644 src/routes/blogs/img.svelte create mode 100644 src/routes/blogs/style-blog.css create mode 100644 src/routes/main.svelte create mode 100644 src/routes/style-entries.css create mode 100644 src/routes/style.css create mode 100644 static/blog-1.png diff --git a/2 b/2 new file mode 100644 index 0000000..bce4448 --- /dev/null +++ b/2 @@ -0,0 +1,135 @@ +@import '/node_modules/@rose-pine/palette/dist/css/rose-pine-hsl.css'; +@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&display=swap'); + +.fraunces-me { + } + +body { + color: var(--rp-moon-text); + background: var(--rp-moon-base); + padding: 0; + margin: 0; + text-align: justify; +} + +pre { + background: var(--rp-moon-base); + border-radius: 0.5rem; +} + +a { + color: var(--rp-moon-iris); + text-decoration: none; +} + +a:visited { + color: hsl(from var(--rp-moon-iris) h s calc(l * 0.85)) +} + +.nav { + margin: auto; + margin-top: 1rem; + + padding: 2rem; + max-width: 60rem; + width: calc(100%-4rem); + + font-family: "Fraunces", serif; + font-optical-sizing: auto; + font-weight: 400; + font-style: normal; + font-variation-settings: + "SOFT" 0, + "WONK" 0; + font-size:1.728rem; +} + +a.nav{ + margin: 1rem; + margin-left: 0rem; + padding-left: 0rem; + color: var(--rp-moon-text); +} + +.main { + background: var(--rp-moon-surface); + padding: 1rem; + margin: auto; + margin-top: 1rem; + max-width: 60rem; + width: calc(100%-4rem); + box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-base) h s calc(l * 0.85)); + border-radius: 0.5rem; +} + +hr { + color: var(--rp-moon-muted); +} + + + +.blog-entry{ + background: var(--rp-moon-overlay); + padding-left: 0.5rem; + border-radius: 0.5rem; + #display: block; + #height:10rem; + width:100%; + color: var(--rp-moon-text) !important; + text-decoration : none !important; + display: flex; +} + + + +.blog-entry:hover{ + box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-surface) h s calc(l * 0.85)); + transition: 0.15s; +} + +.blog-entry div { + width: calc(100% - 15rem); + min-width: 20rem; +} + + + +.blog-entry img{ + #height:100%; + width:15rem; + object-fit: cover; + border-radius: 0 0.5rem 0.5rem 0; +} + +@media only screen and (max-width: 600px) { + .blog-entry div { + width: 100%; + } + + .blog-entry img { + width: 100%; + } +} + +.blog-entry h4{ + margin-top:1rem; +} + + +h1{font-size: 2.986rem} +h2{font-size: 2.488rem} +h3{font-size: 2.074rem} +h4{font-size: 1.728rem} + + h1, h2, h3, h4{ + font-family: "Fraunces", serif; + font-optical-sizing: auto; + font-weight: 400; + font-style: normal; + text-align: left; + font-variation-settings: + "SOFT" 0, + "WONK" 0; +} + + diff --git a/package-lock.json b/package-lock.json index 9378bf1..d069949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,11 @@ "": { "name": "blog", "version": "0.0.1", + "dependencies": { + "@rose-pine/palette": "github:rose-pine/rose-pine-palette", + "prism-rose-pine": "github:rose-pine/prism#main", + "svelte-preprocess": "^6.0.3" + }, "devDependencies": { "@eslint/compat": "^1.2.5", "@eslint/js": "^9.18.0", @@ -698,7 +703,6 @@ "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", @@ -709,7 +713,6 @@ "version": "2.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -720,7 +723,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -730,14 +732,12 @@ "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.30", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1083,6 +1083,17 @@ "win32" ] }, + "node_modules/@rose-pine/palette": { + "version": "4.0.1", + "resolved": "git+ssh://git@github.com/rose-pine/rose-pine-palette.git#20998b7abfc40a47d73586140e01d71f53e7e405", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/rose-pine/palette?sponsor=1" + } + }, "node_modules/@standard-schema/spec": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", @@ -1094,7 +1105,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz", "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==", - "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^8.9.0" @@ -1121,9 +1131,9 @@ } }, "node_modules/@sveltejs/kit": { - "version": "2.37.1", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.37.1.tgz", - "integrity": "sha512-4T9rF2Roe7RGvHfcn6+n92Yc2NF88k7ljFz9+wE0jWxyencqRpadr2/CvlcQbbTXf1ozmFxgMO6af+qm+1mPFw==", + "version": "2.38.0", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.38.0.tgz", + "integrity": "sha512-iLmykJOv4PAZvuC0niq1HUoK/LZdfsTW1CpkPAAnroYeYiV7Bp73Eeh/As8u0Y1n/2IDM+p9cdoHYufcpvkXkQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1209,7 +1219,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, "license": "MIT" }, "node_modules/@types/json-schema": { @@ -1498,7 +1507,6 @@ "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -1561,7 +1569,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">= 0.4" @@ -1571,7 +1578,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, "license": "Apache-2.0", "engines": { "node": ">= 0.4" @@ -1655,7 +1661,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -1968,7 +1973,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", - "dev": true, "license": "MIT" }, "node_modules/espree": { @@ -2006,7 +2010,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.0.tgz", "integrity": "sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -2320,7 +2323,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "^1.0.6" @@ -2412,7 +2414,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -2422,7 +2424,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "dev": true, "license": "MIT" }, "node_modules/locate-path": { @@ -2452,7 +2453,6 @@ "version": "0.30.19", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" @@ -2557,7 +2557,7 @@ "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, + "devOptional": true, "funding": [ { "type": "github", @@ -2666,7 +2666,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, + "devOptional": true, "license": "ISC" }, "node_modules/picomatch": { @@ -2686,7 +2686,7 @@ "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, + "devOptional": true, "funding": [ { "type": "opencollective", @@ -2715,7 +2715,7 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "lilconfig": "^2.0.5", @@ -2745,7 +2745,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, + "devOptional": true, "license": "ISC", "engines": { "node": ">= 6" @@ -2856,6 +2856,45 @@ "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" } }, + "node_modules/prism-rose-pine": { + "version": "0.0.0", + "resolved": "git+ssh://git@github.com/rose-pine/prism.git#df6985ddb1e34ba12965552b7040cae9cbd97493", + "license": "MIT", + "dependencies": { + "@rose-pine/palette": "^2.1.0", + "prettier": "^2.3.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/prism-rose-pine/node_modules/@rose-pine/palette": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@rose-pine/palette/-/palette-2.1.0.tgz", + "integrity": "sha512-CVts9RNQU2wCn5rnWJ3QVlLQdjbxJktoGT+U5K8k+9HDgmC8n25C+QjrQ8l4XNTPCl1YzKCdpTy7H8qHutkC5w==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/rose-pine/palette?sponsor=1" + } + }, + "node_modules/prism-rose-pine/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/prism-svelte": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/prism-svelte/-/prism-svelte-0.4.7.tgz", @@ -3079,7 +3118,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, + "devOptional": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -3115,7 +3154,6 @@ "version": "5.38.7", "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.38.7.tgz", "integrity": "sha512-1ld9TPZSdUS3EtYGQzisU2nhwXoIzNQcZ71IOU9fEmltaUofQnVfW5CQuhgM/zFsZ43arZXS1BRKi0MYgUV91w==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.4", @@ -3190,6 +3228,61 @@ } } }, + "node_modules/svelte-preprocess": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-6.0.3.tgz", + "integrity": "sha512-PLG2k05qHdhmRG7zR/dyo5qKvakhm8IJ+hD2eFRQmMLHp7X3eJnjeupUtvuRpbNiF31RjVw45W+abDwHEmP5OA==", + "hasInstallScript": true, + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": ">=3", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": ">=0.55", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^4.0.0 || ^5.0.0-next.100 || ^5.0.0", + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -3260,7 +3353,7 @@ "version": "5.9.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -3503,21 +3596,6 @@ "node": ">=0.10.0" } }, - "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -3535,7 +3613,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", - "dev": true, "license": "MIT" } } diff --git a/package.json b/package.json index e8d1320..49e2a79 100644 --- a/package.json +++ b/package.json @@ -32,5 +32,10 @@ "typescript": "^5.0.0", "typescript-eslint": "^8.20.0", "vite": "^7.0.4" + }, + "dependencies": { + "@rose-pine/palette": "github:rose-pine/rose-pine-palette", + "prism-rose-pine": "github:rose-pine/prism#main", + "svelte-preprocess": "^6.0.3" } } diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 20f8d04..4a78458 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,5 +1,8 @@ @@ -8,4 +11,11 @@ -{@render children?.()} + + +
+ {@render children?.()} +
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index e0c213e..152e1e2 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,6 +1,7 @@ -

Welcome to SvelteKit

-

Visit svelte.dev/docs/kit to read the documentation

-{#each blog_entries as [href, page]} - {page.metadata?.title}
- -{/each} +
+

Welcome to SvelteKit

+

+ Visit svelte.dev/docs/kit to read the documentation +

+ {#each blog_entries as [href, page]} + +
+
+

{page.metadata?.title}

+

{page.metadata?.desc}

+

{new Date(Date.parse(page.metadata?.date)).toDateString()}

+
+ +
+
+
+ + {/each} +
diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/blogs/blog.svelte b/src/routes/blogs/blog.svelte new file mode 100644 index 0000000..4b7bd9a --- /dev/null +++ b/src/routes/blogs/blog.svelte @@ -0,0 +1,32 @@ + + + + +export let alt; + +

{title}

+
+

Last updated {ddate.toDateString()}

+
+

{desc}

+ + + +
+
+ + diff --git a/src/routes/blogs/img.svelte b/src/routes/blogs/img.svelte new file mode 100644 index 0000000..8c9e24b --- /dev/null +++ b/src/routes/blogs/img.svelte @@ -0,0 +1,9 @@ + + + diff --git a/src/routes/blogs/style-blog.css b/src/routes/blogs/style-blog.css new file mode 100644 index 0000000..3dfd4d9 --- /dev/null +++ b/src/routes/blogs/style-blog.css @@ -0,0 +1,10 @@ +.blog-text{ + border-radius: 0.5rem; + background: var(--rp-moon-surface); + box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-base) h s calc(l * 0.85)); + margin: -1rem; + padding: 1rem; +} + + + diff --git a/src/routes/blogs/test/+page.svx b/src/routes/blogs/test/+page.svx index f4367f8..2ed3b99 100644 --- a/src/routes/blogs/test/+page.svx +++ b/src/routes/blogs/test/+page.svx @@ -1,18 +1,55 @@ --- -title: "Blog Entry #1" +title: "The creation of this Blog" +layout: blog +date: 2025-09-12 +desc: "The goal was to create an easy to maintain blog with while the main focus relays on keeping the effort +to write new posts minimal. This is more a ressource summery with tips, than an full tutorial." --- -# Title ---- +## Static side generation +The stack consists of: +- [svelte + svelte-kit](https://svelte.dev/docs/kit/introduction) +- [mdsvex](https://mdsvex.pngwn.io/) +- [static adapter](https://svelte.dev/docs/kit/adapter-static) -1. asd -2. asd -3. asd +The core functionallity provides which allow you to combine svelte and markdown. -```js -{..., lib}: -{ - "hello" = "world"; -} -``` \ No newline at end of file +![Tasd|20rem](/blog-1.png) + +## Image sizing + +I want to be able to rezise an image in markdown without using HTML, +just like in obsidian, by declaring the width after the alt text `![some alt text|](/some-image.png)`. +To archive that I replace every img that that mdsvex creates with some new written `img` component: + +```ts +//img.svelte + + + +``` + +And then needs to be imported in the mdsvex layout: +```ts + +``` + +This is desctibed in furhter details by the [mdsvex docs](https://mdsvex.pngwn.io/docs#custom-components) +and this [issue](https://github.com/pngwn/MDsveX/discussions/292). + +## Colors + +I love the [rose pine](https://rosepinetheme.com/) color palette. I use it privatly for some applications, +and think it improves this blog too. +Both the [prism theme](https://github.com/rose-pine/prism) and [color palette](https://github.com/rose-pine/rose-pine-palette) +can be added as npm package and used without compications. diff --git a/src/routes/blogs/test2/+page.svx b/src/routes/blogs/test2/+page.svx index e69de29..be37a73 100644 --- a/src/routes/blogs/test2/+page.svx +++ b/src/routes/blogs/test2/+page.svx @@ -0,0 +1,7 @@ +--- +title: "FemDev GameJam - Catrastrophe" +date: 2024-11-10 +src: "https://elkortes.itch.io/catastrophe" +desc: "I took part in the amazing FemDev Game and helped to creathe this little game. +My work are the animations, 3d Models and some texturing" +--- diff --git a/src/routes/main.svelte b/src/routes/main.svelte new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/style-entries.css b/src/routes/style-entries.css new file mode 100644 index 0000000..3d42950 --- /dev/null +++ b/src/routes/style-entries.css @@ -0,0 +1,47 @@ + +.blog-entry{ + background: var(--rp-moon-surface); + border-radius: 0.5rem; + width:100%; + color: var(--rp-moon-text) !important; + text-decoration : none !important; + display: flex; + flex-flow: row wrap; + box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-base) h s calc(l * 0.85)); +} + + + +.blog-entry:hover{ + box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-base) h s calc(l * 0.75)); + background: var(--rp-moon-overlay); + transition: 0.2s; +} + +.blog-entry div { + width: calc(100% - 17rem); + padding: 1rem; +} + +.blog-entry img{ + width:15rem; + object-fit: cover; + border-radius: 0 0.5rem 0.5rem 0; +} + +@media only screen and (max-width: 700px) { + .blog-entry div { + width: calc( 100% - 2rem); + } + + .blog-entry img { + width: 100%; + max-height: 15rem; + border-radius: 0 0rem 0.5rem 0.5rem; + } +} + +.blog-entry h4{ + margin-top:0.5rem; + margin-bottom: 0.5rem; +} diff --git a/src/routes/style.css b/src/routes/style.css new file mode 100644 index 0000000..712e52a --- /dev/null +++ b/src/routes/style.css @@ -0,0 +1,92 @@ +@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&display=swap'); + + +body { + color: var(--rp-moon-text); + background: var(--rp-moon-base); + padding: 0; + margin: 0; + text-align: justify; +} + +pre { + background: var(--rp-moon-base); + border-radius: 0.5rem; +} + +a { + color: var(--rp-moon-iris); + text-decoration: none; +} + +a:visited { + color: hsl(from var(--rp-moon-iris) h s calc(l * 0.85)) +} + + +.nav { + margin: auto; + margin-top: 1rem; + + padding: 1rem; + max-width: 60rem; + width: calc(100% - 2rem); + + font-family: "Fraunces", serif; + font-optical-sizing: auto; + font-weight: 400; + font-style: normal; + font-variation-settings: + "SOFT" 0, + "WONK" 0; + font-size:1.728rem; +} + +a.nav{ + margin: 1rem; + margin-left: 0rem; + padding-left: 0rem; + color: var(--rp-moon-foam); + #text-decoration: underline; +} + +main { + padding: 1rem; + margin: auto; + #margin-top: 1rem; + max-width: 60rem; + width: calc(100% - 2rem); + #box-shadow: 0px 0px 1rem 0px hsl(from var(--rp-moon-base) h s calc(l * 0.85)); +} + +.date{ + text-align: right; + color: var(--rp-moon-subtle) +} + +hr { + color: var(--rp-moon-muted); +} + + +h1{font-size: 2.986rem} +h2{font-size: 2.488rem} +h3{font-size: 2.074rem} +h4{font-size: 1.728rem} + + h1, h2, h3, h4{ + font-family: "Fraunces", serif; + font-optical-sizing: auto; + font-weight: 400; + font-style: normal; + text-align: left; + font-variation-settings: + "SOFT" 0, + "WONK" 0; +} + +h4{ + color: var(--rp-moon-rose); +} + + diff --git a/static/blog-1.png b/static/blog-1.png new file mode 100644 index 0000000000000000000000000000000000000000..755483973e1537593798ef26c78996a10addc9e4 GIT binary patch literal 40013 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%0D;XkuZc?qRbtfmp4}tOdmd*pV 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