diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c89c64..b102b5a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -771,7 +771,7 @@ packages: is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 - tslib: 2.5.1 + tslib: 2.5.2 dev: false /@polka/url@1.0.0-next.21: @@ -1190,7 +1190,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001488 - electron-to-chromium: 1.4.399 + electron-to-chromium: 1.4.402 node-releases: 2.0.10 update-browserslist-db: 1.0.11(browserslist@4.21.5) dev: false @@ -1446,8 +1446,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: false - /electron-to-chromium@1.4.399: - resolution: {integrity: sha512-+V1aNvVgoWNWYIbMOiQ1n5fRIaY4SlQ/uRlrsCjLrUwr/3OvQgiX2f5vdav4oArVT9TnttJKcPCqjwPNyZqw/A==} + /electron-to-chromium@1.4.402: + resolution: {integrity: sha512-gWYvJSkohOiBE6ecVYXkrDgNaUjo47QEKK0kQzmWyhkH+yoYiG44bwuicTGNSIQRG3WDMsWVZJLRnJnLNkbWvA==} dev: false /emmet@2.4.4: @@ -3562,7 +3562,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.4.0 - tslib: 2.5.1 + tslib: 2.5.2 dev: false /titleize@3.0.0: @@ -3605,8 +3605,8 @@ packages: type-fest: 0.13.1 dev: false - /tslib@2.5.1: - resolution: {integrity: sha512-KaI6gPil5m9vF7DKaoXxx1ia9fxS4qG5YveErRRVknPDXXriu5M8h48YRjB6h5ZUOKuAKlSJYb0GaDe8I39fRw==} + /tslib@2.5.2: + resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} dev: false /type-fest@0.13.1: diff --git a/public/static/svg/github.svg b/public/static/svg/github.svg new file mode 100644 index 0000000..37fa923 --- /dev/null +++ b/public/static/svg/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/base/Header.astro b/src/components/base/Header.astro index 1addece..ee39bc2 100644 --- a/src/components/base/Header.astro +++ b/src/components/base/Header.astro @@ -12,6 +12,11 @@ const menu: MenuItem[] = [ name: 'Posts', url: '/posts/', }, + { + identifier: 'repos', + name: 'Repos', + url: '/repos/', + }, { identifier: 'slides', name: 'Slides', diff --git a/src/content/config.ts b/src/content/config.ts index 799ef24..f096069 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -40,5 +40,14 @@ export const collections = { }) ) }) + }), + repos: defineCollection({ + type: "data", + schema: z.object({ + type: z.string(), + url: z.string(), + description: z.string(), + icons: z.array(z.string()), + }) }) } diff --git a/src/content/repos/plwordnet-rs.json b/src/content/repos/plwordnet-rs.json new file mode 100644 index 0000000..0333310 --- /dev/null +++ b/src/content/repos/plwordnet-rs.json @@ -0,0 +1,6 @@ +{ + "type": "github", + "url": "https://github.com/kamoshi/plwordnet-rs", + "description": "Native Rust library facilitating the integration of plWordNet 4.2 lexical resources.", + "icons": ["rust"] +} \ No newline at end of file diff --git a/src/pages/repos.astro b/src/pages/repos.astro new file mode 100644 index 0000000..d184ba3 --- /dev/null +++ b/src/pages/repos.astro @@ -0,0 +1,31 @@ +--- +import Base from "@layouts/Base.astro"; +import { getCollection } from 'astro:content'; + + +const repos = await getCollection('repos'); +--- + + +
+
+

Maintained repositories

+
+ {repos.map(repo => ( + +
+ +

{repo.id}

+
+
{repo.data.description}
+
+ {repo.data.icons.map(icon => ( + + ))} +
+
+ ))} +
+
+
+ diff --git a/src/styles/layouts/_repos.scss b/src/styles/layouts/_repos.scss new file mode 100644 index 0000000..813241c --- /dev/null +++ b/src/styles/layouts/_repos.scss @@ -0,0 +1,51 @@ +.l-repos { + padding: 1em; + + &__article { + margin: 1em auto 1em auto; + max-width: 60em; + } +} + +.repos { + display: flex; + color: unset; +} + +.repo-item { + max-width: 16em; + padding: 0.5em; + background: white; + border-radius: 0.5em; + color: unset; + text-decoration: unset; + box-shadow: var(--shadow-l); + transition: box-shadow ease-in-out 0.1s; + + &__header { + display: flex; + align-items: center; + gap: 0.5em; + padding-bottom: 0.25em; + margin-bottom: 0.25em; + border-bottom: 1px solid lightgray; + } + + &__icon { + max-height: 1.6em; + } + + &__heading { + margin: 0; + } + + &__tech { + display: flex; + gap: 0.25em; + } + + &:focus-within, + &:hover { + box-shadow: var(--shadow-m); + } +} diff --git a/src/styles/styles.scss b/src/styles/styles.scss index cabd736..d31ad57 100644 --- a/src/styles/styles.scss +++ b/src/styles/styles.scss @@ -36,3 +36,4 @@ @use 'layouts/pages'; @use 'layouts/article'; @use 'layouts/songs'; +@use 'layouts/repos';