diff --git a/.frontmatter/database/mediaDb.json b/.frontmatter/database/mediaDb.json index 3e6e7f94..8df1a728 100644 --- a/.frontmatter/database/mediaDb.json +++ b/.frontmatter/database/mediaDb.json @@ -1 +1 @@ -{"assets":{"images":{}},"src":{"assets":{"images":{}}}} \ No newline at end of file +{"assets":{"images":{}},"src":{"assets":{"images":{}},"components":{"card":{}},"content":{"page":{"en":{}}}}} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 20f83b36..949aa657 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,5 @@ "files.associations": { "*.mdx": "markdown" }, - "frontMatter.content.autoUpdateDate": true + "frontMatter.content.autoUpdateDate": true, } diff --git a/astro.config.ts b/astro.config.ts index e2120b99..9624a15c 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -37,6 +37,7 @@ import { oEmbedTransformer, youTubeTransformer, } from './src/plugins/transformers'; +import remarkCard from './src/plugins/remark-card'; // https://astro.build/config export default defineConfig({ @@ -111,6 +112,7 @@ export default defineConfig({ remarkGfm, remarkAstroImageAssets, remarkCallout, + remarkCard, remarkFootnote, remarkLineBreaks, [ diff --git a/src/assets/images/anki-icon.webp b/src/assets/images/anki-icon.webp new file mode 100644 index 00000000..6c5575ec Binary files /dev/null and b/src/assets/images/anki-icon.webp differ diff --git a/src/assets/images/asrock-b650e-pg-itx-wifi.webp b/src/assets/images/asrock-b650e-pg-itx-wifi.webp new file mode 100644 index 00000000..0a384af1 Binary files /dev/null and b/src/assets/images/asrock-b650e-pg-itx-wifi.webp differ diff --git a/src/assets/images/audio-technica-ath-r70x.webp b/src/assets/images/audio-technica-ath-r70x.webp new file mode 100644 index 00000000..060a55d6 Binary files /dev/null and b/src/assets/images/audio-technica-ath-r70x.webp differ diff --git a/src/assets/images/cloudflare-logo.webp b/src/assets/images/cloudflare-logo.webp new file mode 100644 index 00000000..9d80f342 Binary files /dev/null and b/src/assets/images/cloudflare-logo.webp differ diff --git a/src/assets/images/corsair-sf750.avif b/src/assets/images/corsair-sf750.avif new file mode 100644 index 00000000..c143fde7 Binary files /dev/null and b/src/assets/images/corsair-sf750.avif differ diff --git a/src/assets/images/crucial-ddr5-pro_.jpg b/src/assets/images/crucial-ddr5-pro_.jpg new file mode 100644 index 00000000..acf68c93 Binary files /dev/null and b/src/assets/images/crucial-ddr5-pro_.jpg differ diff --git a/src/assets/images/davinci-resolve-icon.webp b/src/assets/images/davinci-resolve-icon.webp new file mode 100644 index 00000000..04a54a2a Binary files /dev/null and b/src/assets/images/davinci-resolve-icon.webp differ diff --git a/src/assets/images/docker-logo-blue.webp b/src/assets/images/docker-logo-blue.webp new file mode 100644 index 00000000..44e974a5 Binary files /dev/null and b/src/assets/images/docker-logo-blue.webp differ diff --git a/src/assets/images/dr-10l_pro.jpg b/src/assets/images/dr-10l_pro.jpg new file mode 100644 index 00000000..37c3b01e Binary files /dev/null and b/src/assets/images/dr-10l_pro.jpg differ diff --git a/src/assets/images/drafts-icon.webp b/src/assets/images/drafts-icon.webp new file mode 100644 index 00000000..d61570c4 Binary files /dev/null and b/src/assets/images/drafts-icon.webp differ diff --git a/src/assets/images/garakuro-geforce-rtx-4060ti.webp b/src/assets/images/garakuro-geforce-rtx-4060ti.webp new file mode 100644 index 00000000..46fa9077 Binary files /dev/null and b/src/assets/images/garakuro-geforce-rtx-4060ti.webp differ diff --git a/src/assets/images/goodnotes-icon.webp b/src/assets/images/goodnotes-icon.webp new file mode 100644 index 00000000..5036ed67 Binary files /dev/null and b/src/assets/images/goodnotes-icon.webp differ diff --git a/src/assets/images/ipad-pro-13inch-spaceblack.webp b/src/assets/images/ipad-pro-13inch-spaceblack.webp new file mode 100644 index 00000000..d8f81be5 Binary files /dev/null and b/src/assets/images/ipad-pro-13inch-spaceblack.webp differ diff --git a/src/assets/images/iphone-15-black.webp b/src/assets/images/iphone-15-black.webp new file mode 100644 index 00000000..daf2d515 Binary files /dev/null and b/src/assets/images/iphone-15-black.webp differ diff --git a/src/assets/images/kindle-icon.webp b/src/assets/images/kindle-icon.webp new file mode 100644 index 00000000..f936f169 Binary files /dev/null and b/src/assets/images/kindle-icon.webp differ diff --git a/src/assets/images/kioxia-ssd-exceria-plus-g3.jpg b/src/assets/images/kioxia-ssd-exceria-plus-g3.jpg new file mode 100644 index 00000000..55913b66 Binary files /dev/null and b/src/assets/images/kioxia-ssd-exceria-plus-g3.jpg differ diff --git a/src/assets/images/lian-li-a4-h2o.jpg b/src/assets/images/lian-li-a4-h2o.jpg new file mode 100644 index 00000000..f8b120ab Binary files /dev/null and b/src/assets/images/lian-li-a4-h2o.jpg differ diff --git a/src/assets/images/mac-studio-m2.webp b/src/assets/images/mac-studio-m2.webp new file mode 100644 index 00000000..4a5aee87 Binary files /dev/null and b/src/assets/images/mac-studio-m2.webp differ diff --git a/src/assets/images/motu-digital-performer-11.webp b/src/assets/images/motu-digital-performer-11.webp new file mode 100644 index 00000000..82102143 Binary files /dev/null and b/src/assets/images/motu-digital-performer-11.webp differ diff --git a/src/assets/images/neovim-icon.webp b/src/assets/images/neovim-icon.webp new file mode 100644 index 00000000..31117893 Binary files /dev/null and b/src/assets/images/neovim-icon.webp differ diff --git a/src/assets/images/ni-maschine-mk3.webp b/src/assets/images/ni-maschine-mk3.webp new file mode 100644 index 00000000..3526a9bc Binary files /dev/null and b/src/assets/images/ni-maschine-mk3.webp differ diff --git a/src/assets/images/nixos-icon.webp b/src/assets/images/nixos-icon.webp new file mode 100644 index 00000000..4cd0232d Binary files /dev/null and b/src/assets/images/nixos-icon.webp differ diff --git a/src/assets/images/nzxt-kraken-240-black.avif b/src/assets/images/nzxt-kraken-240-black.avif new file mode 100644 index 00000000..447890c4 Binary files /dev/null and b/src/assets/images/nzxt-kraken-240-black.avif differ diff --git a/src/assets/images/obsidian-icon.png b/src/assets/images/obsidian-icon.png new file mode 100644 index 00000000..42c682b6 Binary files /dev/null and b/src/assets/images/obsidian-icon.png differ diff --git a/src/assets/images/portacapture-x8.jpg b/src/assets/images/portacapture-x8.jpg new file mode 100644 index 00000000..68e5bfd5 Binary files /dev/null and b/src/assets/images/portacapture-x8.jpg differ diff --git a/src/assets/images/rme-babyface-pro-fs.webp b/src/assets/images/rme-babyface-pro-fs.webp new file mode 100644 index 00000000..88bef0ab Binary files /dev/null and b/src/assets/images/rme-babyface-pro-fs.webp differ diff --git a/src/assets/images/ryzen-5-7600x.avif b/src/assets/images/ryzen-5-7600x.avif new file mode 100644 index 00000000..d8d544cf Binary files /dev/null and b/src/assets/images/ryzen-5-7600x.avif differ diff --git a/src/assets/images/sigma-dc-dn-contemporary-e-mount.webp b/src/assets/images/sigma-dc-dn-contemporary-e-mount.webp new file mode 100644 index 00000000..72afaa01 Binary files /dev/null and b/src/assets/images/sigma-dc-dn-contemporary-e-mount.webp differ diff --git a/src/assets/images/sony-ilce-6700.webp b/src/assets/images/sony-ilce-6700.webp new file mode 100644 index 00000000..bf5d7e0c Binary files /dev/null and b/src/assets/images/sony-ilce-6700.webp differ diff --git a/src/assets/images/spotify-icon.png b/src/assets/images/spotify-icon.png new file mode 100644 index 00000000..873ae8f1 Binary files /dev/null and b/src/assets/images/spotify-icon.png differ diff --git a/src/assets/images/totalmix-fx.webp b/src/assets/images/totalmix-fx.webp new file mode 100644 index 00000000..9886927b Binary files /dev/null and b/src/assets/images/totalmix-fx.webp differ diff --git a/src/assets/images/vscode-icon.jpg b/src/assets/images/vscode-icon.jpg new file mode 100644 index 00000000..0350776f Binary files /dev/null and b/src/assets/images/vscode-icon.jpg differ diff --git a/src/assets/images/working-copy-icon.avif b/src/assets/images/working-copy-icon.avif new file mode 100644 index 00000000..7d74303a Binary files /dev/null and b/src/assets/images/working-copy-icon.avif differ diff --git a/src/components/BlogList/BlogList.astro b/src/components/BlogList/BlogList.astro index c2af9a63..b7451340 100644 --- a/src/components/BlogList/BlogList.astro +++ b/src/components/BlogList/BlogList.astro @@ -35,7 +35,7 @@ const { entries, taxonomies } = Astro.props; return (
  • -
    +
    + + + + diff --git a/src/components/Card/CardGrid.astro b/src/components/Card/CardGrid.astro new file mode 100644 index 00000000..11502644 --- /dev/null +++ b/src/components/Card/CardGrid.astro @@ -0,0 +1,25 @@ +--- + +--- + +
    + +
    + diff --git a/src/components/Card/card.ts b/src/components/Card/card.ts new file mode 100644 index 00000000..335d823a --- /dev/null +++ b/src/components/Card/card.ts @@ -0,0 +1,18 @@ +const cardBorderTypes = ['pixel', 'double', 'solid'] as const; + +export type CardBorderType = (typeof cardBorderTypes)[number]; + +export type ElementCardProps = { + 'data-border-type': string; +}; + +export type ComponentCardProps = { + borderType: CardBorderType; + isAnimated: boolean; +}; + +export const isElementCard = (props: object): props is ElementCardProps => + Object.hasOwn(props, 'data-border-type'); + +export const isValidBorderType = (type: string): type is CardBorderType => + cardBorderTypes.some((borderType) => borderType === type); diff --git a/src/components/Card/index.ts b/src/components/Card/index.ts new file mode 100644 index 00000000..4ebfa24c --- /dev/null +++ b/src/components/Card/index.ts @@ -0,0 +1,2 @@ +export { default as Card } from './Card.astro'; +export { default as CardGrid } from './CardGrid.astro'; diff --git a/src/components/ContactForm/SubmitButton/SubmitButton.tsx b/src/components/ContactForm/SubmitButton/SubmitButton.tsx index 2d01d6cd..19e58189 100644 --- a/src/components/ContactForm/SubmitButton/SubmitButton.tsx +++ b/src/components/ContactForm/SubmitButton/SubmitButton.tsx @@ -8,7 +8,7 @@ type Props = { export const SubmitButton: Component = (props) => { return ( - ); diff --git a/src/components/ContactForm/TextField/TextField.tsx b/src/components/ContactForm/TextField/TextField.tsx index 0f7e81dd..89f24e36 100644 --- a/src/components/ContactForm/TextField/TextField.tsx +++ b/src/components/ContactForm/TextField/TextField.tsx @@ -48,7 +48,7 @@ export const TextField: Component = (props) => { +
    = (props) => { } > -
    +
    diff --git a/src/components/Navigation/Navigation.astro b/src/components/Navigation/Navigation.astro index f32e988b..af3c667f 100644 --- a/src/components/Navigation/Navigation.astro +++ b/src/components/Navigation/Navigation.astro @@ -31,6 +31,9 @@ const t = await getEntry('i18n', `${locale}/translation`); {t.data.nav.nav_links.about} + {t.data.nav.nav_links.tools}