a lot of work done, a lot of work to do :P
This commit is contained in:
parent
384d1d1037
commit
e658a02509
|
@ -1,7 +1,9 @@
|
||||||
import tailwind from '@astrojs/tailwind';
|
import tailwind from '@astrojs/tailwind';
|
||||||
import { defineConfig } from 'astro/config';
|
import { defineConfig } from 'astro/config';
|
||||||
|
|
||||||
|
import mdx from "@astrojs/mdx";
|
||||||
|
|
||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
integrations: [tailwind()],
|
integrations: [tailwind(), mdx()]
|
||||||
});
|
});
|
|
@ -13,6 +13,7 @@
|
||||||
"format:check": "prettier . --check --config ./.prettierrc"
|
"format:check": "prettier . --check --config ./.prettierrc"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@astrojs/mdx": "^1.1.5",
|
||||||
"@astrojs/tailwind": "^5.0.2",
|
"@astrojs/tailwind": "^5.0.2",
|
||||||
"@sanity/client": "^6.9.1",
|
"@sanity/client": "^6.9.1",
|
||||||
"@sanity/image-url": "^1.0.2",
|
"@sanity/image-url": "^1.0.2",
|
||||||
|
|
|
@ -5,6 +5,9 @@ settings:
|
||||||
excludeLinksFromLockfile: false
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@astrojs/mdx':
|
||||||
|
specifier: ^1.1.5
|
||||||
|
version: 1.1.5(astro@3.6.4)
|
||||||
'@astrojs/tailwind':
|
'@astrojs/tailwind':
|
||||||
specifier: ^5.0.2
|
specifier: ^5.0.2
|
||||||
version: 5.0.2(astro@3.6.4)(tailwindcss@3.3.5)
|
version: 5.0.2(astro@3.6.4)(tailwindcss@3.3.5)
|
||||||
|
@ -84,6 +87,32 @@ packages:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@astrojs/mdx@1.1.5(astro@3.6.4):
|
||||||
|
resolution: {integrity: sha512-4bveyB1Lb1vWo2kdHJjQYoCytWlrIjAxHATHUTuYnBPmdPjsfy9wuCnb9rozwyyarDABx87CzG5gotBNYd+dVA==}
|
||||||
|
engines: {node: '>=18.14.1'}
|
||||||
|
peerDependencies:
|
||||||
|
astro: ^3.0.0
|
||||||
|
dependencies:
|
||||||
|
'@astrojs/markdown-remark': 3.5.0(astro@3.6.4)
|
||||||
|
'@mdx-js/mdx': 2.3.0
|
||||||
|
acorn: 8.11.2
|
||||||
|
astro: 3.6.4
|
||||||
|
es-module-lexer: 1.4.1
|
||||||
|
estree-util-visit: 1.2.1
|
||||||
|
github-slugger: 2.0.0
|
||||||
|
gray-matter: 4.0.3
|
||||||
|
hast-util-to-html: 8.0.4
|
||||||
|
kleur: 4.1.5
|
||||||
|
rehype-raw: 6.1.1
|
||||||
|
remark-gfm: 3.0.1
|
||||||
|
remark-smartypants: 2.0.0
|
||||||
|
source-map: 0.7.4
|
||||||
|
unist-util-visit: 4.1.2
|
||||||
|
vfile: 5.3.7
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@astrojs/prism@3.0.0:
|
/@astrojs/prism@3.0.0:
|
||||||
resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==}
|
resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==}
|
||||||
engines: {node: '>=18.14.1'}
|
engines: {node: '>=18.14.1'}
|
||||||
|
@ -769,6 +798,30 @@ packages:
|
||||||
'@jridgewell/resolve-uri': 3.1.1
|
'@jridgewell/resolve-uri': 3.1.1
|
||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
|
|
||||||
|
/@mdx-js/mdx@2.3.0:
|
||||||
|
resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree-jsx': 1.0.3
|
||||||
|
'@types/mdx': 2.0.10
|
||||||
|
estree-util-build-jsx: 2.2.2
|
||||||
|
estree-util-is-identifier-name: 2.1.0
|
||||||
|
estree-util-to-js: 1.2.0
|
||||||
|
estree-walker: 3.0.3
|
||||||
|
hast-util-to-estree: 2.3.3
|
||||||
|
markdown-extensions: 1.1.1
|
||||||
|
periscopic: 3.1.0
|
||||||
|
remark-mdx: 2.3.0
|
||||||
|
remark-parse: 10.0.2
|
||||||
|
remark-rehype: 10.1.0
|
||||||
|
unified: 10.1.2
|
||||||
|
unist-util-position-from-estree: 1.1.2
|
||||||
|
unist-util-stringify-position: 3.0.3
|
||||||
|
unist-util-visit: 4.1.2
|
||||||
|
vfile: 5.3.7
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@nodelib/fs.scandir@2.1.5:
|
/@nodelib/fs.scandir@2.1.5:
|
||||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
|
@ -824,6 +877,12 @@ packages:
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@types/acorn@4.0.6:
|
||||||
|
resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/babel__core@7.20.5:
|
/@types/babel__core@7.20.5:
|
||||||
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
|
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -859,6 +918,12 @@ packages:
|
||||||
'@types/ms': 0.7.34
|
'@types/ms': 0.7.34
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@types/estree-jsx@1.0.3:
|
||||||
|
resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/estree@1.0.5:
|
/@types/estree@1.0.5:
|
||||||
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
|
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -895,6 +960,10 @@ packages:
|
||||||
'@types/unist': 3.0.2
|
'@types/unist': 3.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@types/mdx@2.0.10:
|
||||||
|
resolution: {integrity: sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/ms@0.7.34:
|
/@types/ms@0.7.34:
|
||||||
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
|
resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -925,6 +994,14 @@ packages:
|
||||||
resolution: {integrity: sha512-5b0PkOJsFBX5alChuIO3qpkt5vIZBevzLPhUQ1UP8UzVjL3F1VllnZxp/thfD8R5ol7D7WHkgZHIjdUBX4tDpQ==}
|
resolution: {integrity: sha512-5b0PkOJsFBX5alChuIO3qpkt5vIZBevzLPhUQ1UP8UzVjL3F1VllnZxp/thfD8R5ol7D7WHkgZHIjdUBX4tDpQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/acorn-jsx@5.3.2(acorn@8.11.2):
|
||||||
|
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||||
|
peerDependencies:
|
||||||
|
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||||
|
dependencies:
|
||||||
|
acorn: 8.11.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/acorn@8.11.2:
|
/acorn@8.11.2:
|
||||||
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
|
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
|
@ -986,6 +1063,11 @@ packages:
|
||||||
resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
|
resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/astring@1.8.6:
|
||||||
|
resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
|
||||||
|
hasBin: true
|
||||||
|
dev: false
|
||||||
|
|
||||||
/astro-portabletext@0.9.6:
|
/astro-portabletext@0.9.6:
|
||||||
resolution: {integrity: sha512-v8YKRgjCpaxr94NefXRsH5ti9YoXqCrYah46epdJ4AdwtvIiLZA8vONFQjk5Y2cJ2UEEeGd+/8lo+tWmlo3aPw==}
|
resolution: {integrity: sha512-v8YKRgjCpaxr94NefXRsH5ti9YoXqCrYah46epdJ4AdwtvIiLZA8vONFQjk5Y2cJ2UEEeGd+/8lo+tWmlo3aPw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -1218,6 +1300,10 @@ packages:
|
||||||
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
|
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/character-reference-invalid@2.0.1:
|
||||||
|
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/chokidar@3.5.3:
|
/chokidar@3.5.3:
|
||||||
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
|
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
|
||||||
engines: {node: '>= 8.10.0'}
|
engines: {node: '>= 8.10.0'}
|
||||||
|
@ -1572,6 +1658,39 @@ packages:
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/estree-util-attach-comments@2.1.1:
|
||||||
|
resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/estree-util-build-jsx@2.2.2:
|
||||||
|
resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree-jsx': 1.0.3
|
||||||
|
estree-util-is-identifier-name: 2.1.0
|
||||||
|
estree-walker: 3.0.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/estree-util-is-identifier-name@2.1.0:
|
||||||
|
resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/estree-util-to-js@1.2.0:
|
||||||
|
resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree-jsx': 1.0.3
|
||||||
|
astring: 1.8.6
|
||||||
|
source-map: 0.7.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/estree-util-visit@1.2.1:
|
||||||
|
resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree-jsx': 1.0.3
|
||||||
|
'@types/unist': 2.0.10
|
||||||
|
dev: false
|
||||||
|
|
||||||
/estree-walker@3.0.3:
|
/estree-walker@3.0.3:
|
||||||
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
|
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -1881,6 +2000,28 @@ packages:
|
||||||
zwitch: 2.0.4
|
zwitch: 2.0.4
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/hast-util-to-estree@2.3.3:
|
||||||
|
resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
'@types/estree-jsx': 1.0.3
|
||||||
|
'@types/hast': 2.3.8
|
||||||
|
'@types/unist': 2.0.10
|
||||||
|
comma-separated-tokens: 2.0.3
|
||||||
|
estree-util-attach-comments: 2.1.1
|
||||||
|
estree-util-is-identifier-name: 2.1.0
|
||||||
|
hast-util-whitespace: 2.0.1
|
||||||
|
mdast-util-mdx-expression: 1.3.2
|
||||||
|
mdast-util-mdxjs-esm: 1.3.1
|
||||||
|
property-information: 6.4.0
|
||||||
|
space-separated-tokens: 2.0.2
|
||||||
|
style-to-object: 0.4.4
|
||||||
|
unist-util-position: 4.0.4
|
||||||
|
zwitch: 2.0.4
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/hast-util-to-html@8.0.4:
|
/hast-util-to-html@8.0.4:
|
||||||
resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==}
|
resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -2018,6 +2159,10 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/inline-style-parser@0.1.1:
|
||||||
|
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/into-stream@6.0.0:
|
/into-stream@6.0.0:
|
||||||
resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==}
|
resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
@ -2026,6 +2171,17 @@ packages:
|
||||||
p-is-promise: 3.0.0
|
p-is-promise: 3.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/is-alphabetical@2.0.1:
|
||||||
|
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/is-alphanumerical@2.0.1:
|
||||||
|
resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
|
||||||
|
dependencies:
|
||||||
|
is-alphabetical: 2.0.1
|
||||||
|
is-decimal: 2.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/is-arrayish@0.3.2:
|
/is-arrayish@0.3.2:
|
||||||
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
|
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
|
@ -2048,6 +2204,10 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
hasown: 2.0.0
|
hasown: 2.0.0
|
||||||
|
|
||||||
|
/is-decimal@2.0.1:
|
||||||
|
resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/is-docker@3.0.0:
|
/is-docker@3.0.0:
|
||||||
resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
|
resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
|
||||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||||
|
@ -2074,6 +2234,10 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-extglob: 2.1.1
|
is-extglob: 2.1.1
|
||||||
|
|
||||||
|
/is-hexadecimal@2.0.1:
|
||||||
|
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/is-inside-container@1.0.0:
|
/is-inside-container@1.0.0:
|
||||||
resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
|
resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
|
||||||
engines: {node: '>=14.16'}
|
engines: {node: '>=14.16'}
|
||||||
|
@ -2101,6 +2265,12 @@ packages:
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/is-reference@3.0.2:
|
||||||
|
resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
dev: false
|
||||||
|
|
||||||
/is-retry-allowed@2.2.0:
|
/is-retry-allowed@2.2.0:
|
||||||
resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==}
|
resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
@ -2257,6 +2427,11 @@ packages:
|
||||||
'@jridgewell/sourcemap-codec': 1.4.15
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/markdown-extensions@1.1.1:
|
||||||
|
resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/markdown-table@3.0.3:
|
/markdown-table@3.0.3:
|
||||||
resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
|
resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -2361,6 +2536,61 @@ packages:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-mdx-expression@1.3.2:
|
||||||
|
resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree-jsx': 1.0.3
|
||||||
|
'@types/hast': 2.3.8
|
||||||
|
'@types/mdast': 3.0.15
|
||||||
|
mdast-util-from-markdown: 1.3.1
|
||||||
|
mdast-util-to-markdown: 1.5.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-mdx-jsx@2.1.4:
|
||||||
|
resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree-jsx': 1.0.3
|
||||||
|
'@types/hast': 2.3.8
|
||||||
|
'@types/mdast': 3.0.15
|
||||||
|
'@types/unist': 2.0.10
|
||||||
|
ccount: 2.0.1
|
||||||
|
mdast-util-from-markdown: 1.3.1
|
||||||
|
mdast-util-to-markdown: 1.5.0
|
||||||
|
parse-entities: 4.0.1
|
||||||
|
stringify-entities: 4.0.3
|
||||||
|
unist-util-remove-position: 4.0.2
|
||||||
|
unist-util-stringify-position: 3.0.3
|
||||||
|
vfile-message: 3.1.4
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-mdx@2.0.1:
|
||||||
|
resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==}
|
||||||
|
dependencies:
|
||||||
|
mdast-util-from-markdown: 1.3.1
|
||||||
|
mdast-util-mdx-expression: 1.3.2
|
||||||
|
mdast-util-mdx-jsx: 2.1.4
|
||||||
|
mdast-util-mdxjs-esm: 1.3.1
|
||||||
|
mdast-util-to-markdown: 1.5.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/mdast-util-mdxjs-esm@1.3.1:
|
||||||
|
resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree-jsx': 1.0.3
|
||||||
|
'@types/hast': 2.3.8
|
||||||
|
'@types/mdast': 3.0.15
|
||||||
|
mdast-util-from-markdown: 1.3.1
|
||||||
|
mdast-util-to-markdown: 1.5.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/mdast-util-phrasing@3.0.1:
|
/mdast-util-phrasing@3.0.1:
|
||||||
resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==}
|
resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -2514,6 +2744,67 @@ packages:
|
||||||
micromark-util-types: 1.1.0
|
micromark-util-types: 1.1.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-mdx-expression@1.0.8:
|
||||||
|
resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
micromark-factory-mdx-expression: 1.0.9
|
||||||
|
micromark-factory-space: 1.1.0
|
||||||
|
micromark-util-character: 1.2.0
|
||||||
|
micromark-util-events-to-acorn: 1.2.3
|
||||||
|
micromark-util-symbol: 1.1.0
|
||||||
|
micromark-util-types: 1.1.0
|
||||||
|
uvu: 0.5.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-mdx-jsx@1.0.5:
|
||||||
|
resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/acorn': 4.0.6
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
estree-util-is-identifier-name: 2.1.0
|
||||||
|
micromark-factory-mdx-expression: 1.0.9
|
||||||
|
micromark-factory-space: 1.1.0
|
||||||
|
micromark-util-character: 1.2.0
|
||||||
|
micromark-util-symbol: 1.1.0
|
||||||
|
micromark-util-types: 1.1.0
|
||||||
|
uvu: 0.5.6
|
||||||
|
vfile-message: 3.1.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-mdx-md@1.0.1:
|
||||||
|
resolution: {integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==}
|
||||||
|
dependencies:
|
||||||
|
micromark-util-types: 1.1.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-mdxjs-esm@1.0.5:
|
||||||
|
resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
micromark-core-commonmark: 1.1.0
|
||||||
|
micromark-util-character: 1.2.0
|
||||||
|
micromark-util-events-to-acorn: 1.2.3
|
||||||
|
micromark-util-symbol: 1.1.0
|
||||||
|
micromark-util-types: 1.1.0
|
||||||
|
unist-util-position-from-estree: 1.1.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
vfile-message: 3.1.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/micromark-extension-mdxjs@1.0.1:
|
||||||
|
resolution: {integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==}
|
||||||
|
dependencies:
|
||||||
|
acorn: 8.11.2
|
||||||
|
acorn-jsx: 5.3.2(acorn@8.11.2)
|
||||||
|
micromark-extension-mdx-expression: 1.0.8
|
||||||
|
micromark-extension-mdx-jsx: 1.0.5
|
||||||
|
micromark-extension-mdx-md: 1.0.1
|
||||||
|
micromark-extension-mdxjs-esm: 1.0.5
|
||||||
|
micromark-util-combine-extensions: 1.1.0
|
||||||
|
micromark-util-types: 1.1.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/micromark-factory-destination@1.1.0:
|
/micromark-factory-destination@1.1.0:
|
||||||
resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==}
|
resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -2531,6 +2822,19 @@ packages:
|
||||||
uvu: 0.5.6
|
uvu: 0.5.6
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/micromark-factory-mdx-expression@1.0.9:
|
||||||
|
resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
micromark-util-character: 1.2.0
|
||||||
|
micromark-util-events-to-acorn: 1.2.3
|
||||||
|
micromark-util-symbol: 1.1.0
|
||||||
|
micromark-util-types: 1.1.0
|
||||||
|
unist-util-position-from-estree: 1.1.2
|
||||||
|
uvu: 0.5.6
|
||||||
|
vfile-message: 3.1.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
/micromark-factory-space@1.1.0:
|
/micromark-factory-space@1.1.0:
|
||||||
resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
|
resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -2614,6 +2918,19 @@ packages:
|
||||||
resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
|
resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/micromark-util-events-to-acorn@1.2.3:
|
||||||
|
resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==}
|
||||||
|
dependencies:
|
||||||
|
'@types/acorn': 4.0.6
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
'@types/unist': 2.0.10
|
||||||
|
estree-util-visit: 1.2.1
|
||||||
|
micromark-util-symbol: 1.1.0
|
||||||
|
micromark-util-types: 1.1.0
|
||||||
|
uvu: 0.5.6
|
||||||
|
vfile-message: 3.1.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
/micromark-util-html-tag-name@1.2.0:
|
/micromark-util-html-tag-name@1.2.0:
|
||||||
resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==}
|
resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==}
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -2926,6 +3243,19 @@ packages:
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/parse-entities@4.0.1:
|
||||||
|
resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.10
|
||||||
|
character-entities: 2.0.2
|
||||||
|
character-entities-legacy: 3.0.0
|
||||||
|
character-reference-invalid: 2.0.1
|
||||||
|
decode-named-character-reference: 1.0.2
|
||||||
|
is-alphanumerical: 2.0.1
|
||||||
|
is-decimal: 2.0.1
|
||||||
|
is-hexadecimal: 2.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/parse-headers@2.0.5:
|
/parse-headers@2.0.5:
|
||||||
resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==}
|
resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -2974,6 +3304,14 @@ packages:
|
||||||
resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
|
resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/periscopic@3.1.0:
|
||||||
|
resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
|
||||||
|
dependencies:
|
||||||
|
'@types/estree': 1.0.5
|
||||||
|
estree-walker: 3.0.3
|
||||||
|
is-reference: 3.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/picocolors@1.0.0:
|
/picocolors@1.0.0:
|
||||||
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
|
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
|
||||||
|
|
||||||
|
@ -3240,6 +3578,15 @@ packages:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/remark-mdx@2.3.0:
|
||||||
|
resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==}
|
||||||
|
dependencies:
|
||||||
|
mdast-util-mdx: 2.0.1
|
||||||
|
micromark-extension-mdxjs: 1.0.1
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: false
|
||||||
|
|
||||||
/remark-parse@10.0.2:
|
/remark-parse@10.0.2:
|
||||||
resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==}
|
resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -3465,6 +3812,11 @@ packages:
|
||||||
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
|
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
/source-map@0.7.4:
|
||||||
|
resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
|
||||||
|
engines: {node: '>= 8'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/space-separated-tokens@2.0.2:
|
/space-separated-tokens@2.0.2:
|
||||||
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
|
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -3583,6 +3935,12 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/style-to-object@0.4.4:
|
||||||
|
resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
|
||||||
|
dependencies:
|
||||||
|
inline-style-parser: 0.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/sucrase@3.34.0:
|
/sucrase@3.34.0:
|
||||||
resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
|
resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
@ -3786,6 +4144,12 @@ packages:
|
||||||
array-iterate: 2.0.1
|
array-iterate: 2.0.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/unist-util-position-from-estree@1.1.2:
|
||||||
|
resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.10
|
||||||
|
dev: false
|
||||||
|
|
||||||
/unist-util-position@4.0.4:
|
/unist-util-position@4.0.4:
|
||||||
resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==}
|
resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -3798,6 +4162,13 @@ packages:
|
||||||
'@types/unist': 3.0.2
|
'@types/unist': 3.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/unist-util-remove-position@4.0.2:
|
||||||
|
resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==}
|
||||||
|
dependencies:
|
||||||
|
'@types/unist': 2.0.10
|
||||||
|
unist-util-visit: 4.1.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/unist-util-stringify-position@3.0.3:
|
/unist-util-stringify-position@3.0.3:
|
||||||
resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==}
|
resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 559 KiB |
|
@ -1,15 +1,20 @@
|
||||||
---
|
---
|
||||||
import type { ImageObject } from '../lib/cms/types';
|
import type { CollectionEntry } from 'astro:content';
|
||||||
import urlFor from '../lib/cms/urlFor';
|
import { getImage } from 'astro:assets';
|
||||||
|
|
||||||
export interface Props {
|
export type Props = CollectionEntry<'blog'>['data']['linkPreview'];
|
||||||
description: string;
|
|
||||||
image: ImageObject;
|
|
||||||
twitterCardType: 'summary' | 'summary_large_image' | 'player' | 'app';
|
|
||||||
title: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { description, image, twitterCardType, title } = Astro.props;
|
const { description, image, title } = Astro.props;
|
||||||
|
|
||||||
|
const imageUrl = (
|
||||||
|
await getImage({
|
||||||
|
src: import.meta
|
||||||
|
.glob('/src/assets/blog/*.{jpeg,jpg,png,gif,webp}')
|
||||||
|
[image.path](),
|
||||||
|
width: 2,
|
||||||
|
height: 3,
|
||||||
|
})
|
||||||
|
).src;
|
||||||
---
|
---
|
||||||
|
|
||||||
<meta name="og:title" content={title} />
|
<meta name="og:title" content={title} />
|
||||||
|
@ -17,9 +22,6 @@ const { description, image, twitterCardType, title } = Astro.props;
|
||||||
<meta name="description" content={description} />
|
<meta name="description" content={description} />
|
||||||
<meta name="og:description" content={description} />
|
<meta name="og:description" content={description} />
|
||||||
<meta name="twitter:description" content={description} />
|
<meta name="twitter:description" content={description} />
|
||||||
<meta name="og:image" content={urlFor(image).width(1200).height(630).url()} />
|
<meta name="og:image" content={imageUrl} />
|
||||||
<meta
|
<meta name="og:image:alt" content={image.altText} />
|
||||||
name="twitter:image"
|
<!-- I exclude Twitter meta tags on purpose :) I miss Twitter -->
|
||||||
content={urlFor(image).width(1200).height(630).url()}
|
|
||||||
/>
|
|
||||||
<meta name="twitter:card" content={twitterCardType} />
|
|
||||||
|
|
3
frontend/src/components/mdx/BlogPostSubtitle.astro
Normal file
3
frontend/src/components/mdx/BlogPostSubtitle.astro
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<h2 class="mb-2 text-green-800 text-justify sm:text-lg">
|
||||||
|
<slot />
|
||||||
|
</h2>
|
32
frontend/src/components/mdx/blogPostComponents.ts
Normal file
32
frontend/src/components/mdx/blogPostComponents.ts
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
import ShowableFigure from './components/ShowableFigure.astro';
|
||||||
|
import NumberListItem from './components/NumberListItem.astro';
|
||||||
|
import InlineLink from './components/InlineLink.astro';
|
||||||
|
import InlineCode from './components/InlineCode.astro';
|
||||||
|
import BulletList from './components/BulletList.astro';
|
||||||
|
import NumberList from './components/NumberList.astro';
|
||||||
|
import BulletListItem from './components/BulletListItem.astro';
|
||||||
|
import Heading1 from './components/Heading1.astro';
|
||||||
|
import Heading2 from './components/Heading2.astro';
|
||||||
|
import Heading3 from './components/Heading3.astro';
|
||||||
|
import Heading4 from './components/Heading4.astro';
|
||||||
|
import Heading5 from './components/Heading5.astro';
|
||||||
|
import Heading6 from './components/Heading6.astro';
|
||||||
|
import Paragraph from './components/Paragraph.astro';
|
||||||
|
import FootnoteMark from './components/FootnoteMark.astro';
|
||||||
|
|
||||||
|
const components = {
|
||||||
|
img: ShowableFigure,
|
||||||
|
h1: Heading1,
|
||||||
|
h2: Heading2,
|
||||||
|
h3: Heading3,
|
||||||
|
h4: Heading4,
|
||||||
|
h5: Heading5,
|
||||||
|
h6: Heading6,
|
||||||
|
p: Paragraph,
|
||||||
|
code: InlineCode,
|
||||||
|
a: InlineLink,
|
||||||
|
ul: BulletList,
|
||||||
|
ol: NumberList,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default components;
|
3
frontend/src/components/mdx/components/BulletList.astro
Normal file
3
frontend/src/components/mdx/components/BulletList.astro
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<ul class="list-disc ps-2 list-inside">
|
||||||
|
<slot />
|
||||||
|
</ul>
|
13
frontend/src/components/mdx/components/InlineLink.astro
Normal file
13
frontend/src/components/mdx/components/InlineLink.astro
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
import type { HTMLAttributes } from 'astro/types';
|
||||||
|
|
||||||
|
export type Props = HTMLAttributes<'a'>;
|
||||||
|
---
|
||||||
|
|
||||||
|
<a
|
||||||
|
class:list={[
|
||||||
|
'text-primary-800 underline transition-colors duration-100 hover:text-primary-700',
|
||||||
|
Astro.props.class,
|
||||||
|
]}
|
||||||
|
{...Astro.props}><slot /></a
|
||||||
|
>
|
3
frontend/src/components/mdx/components/NumberList.astro
Normal file
3
frontend/src/components/mdx/components/NumberList.astro
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<ol class="list-decimal ps-2 list-inside">
|
||||||
|
<slot />
|
||||||
|
</ol>
|
|
@ -1,61 +0,0 @@
|
||||||
---
|
|
||||||
import { PortableText } from 'astro-portabletext';
|
|
||||||
import type { SomePortableTextComponents } from '../../../node_modules/astro-portabletext/lib/types';
|
|
||||||
import type { PortableTextBlock } from '@portabletext/types';
|
|
||||||
|
|
||||||
import ShowableFigure from './components/ShowableFigure.astro';
|
|
||||||
import NumberListItem from './components/NumberListItem.astro';
|
|
||||||
import InlineLink from './components/InlineLink.astro';
|
|
||||||
import InlineCode from './components/InlineCode.astro';
|
|
||||||
import BulletList from './components/BulletList.astro';
|
|
||||||
import NumberList from './components/NumberList.astro';
|
|
||||||
import BulletListItem from './components/BulletListItem.astro';
|
|
||||||
import Heading1 from './components/Heading1.astro';
|
|
||||||
import Heading2 from './components/Heading2.astro';
|
|
||||||
import Heading3 from './components/Heading3.astro';
|
|
||||||
import Heading4 from './components/Heading4.astro';
|
|
||||||
import Heading5 from './components/Heading5.astro';
|
|
||||||
import Heading6 from './components/Heading6.astro';
|
|
||||||
import Paragraph from './components/Paragraph.astro';
|
|
||||||
import FootnoteMark from './components/FootnoteMark.astro';
|
|
||||||
import ReferenceMark from './components/ReferenceMark.astro';
|
|
||||||
|
|
||||||
export interface Props {
|
|
||||||
content: PortableTextBlock[];
|
|
||||||
}
|
|
||||||
|
|
||||||
const components: SomePortableTextComponents = {
|
|
||||||
type: {
|
|
||||||
image: ShowableFigure,
|
|
||||||
},
|
|
||||||
block: {
|
|
||||||
h1: Heading1,
|
|
||||||
h2: Heading2,
|
|
||||||
h3: Heading3,
|
|
||||||
h4: Heading4,
|
|
||||||
h5: Heading5,
|
|
||||||
h6: Heading6,
|
|
||||||
normal: Paragraph,
|
|
||||||
},
|
|
||||||
mark: {
|
|
||||||
code: InlineCode,
|
|
||||||
link: InlineLink,
|
|
||||||
footnote: FootnoteMark,
|
|
||||||
referenceToSource: ReferenceMark,
|
|
||||||
},
|
|
||||||
list: {
|
|
||||||
bullet: BulletList,
|
|
||||||
number: NumberList,
|
|
||||||
},
|
|
||||||
listItem: {
|
|
||||||
bullet: BulletListItem,
|
|
||||||
number: NumberListItem,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const { content } = Astro.props;
|
|
||||||
---
|
|
||||||
|
|
||||||
<div class="text-justify">
|
|
||||||
<PortableText components={components} value={content} />
|
|
||||||
</div>
|
|
|
@ -1,22 +0,0 @@
|
||||||
---
|
|
||||||
import { PortableText } from 'astro-portabletext';
|
|
||||||
import type { PortableTextBlock } from '@portabletext/types';
|
|
||||||
|
|
||||||
import Paragraph from './components/Paragraph.astro';
|
|
||||||
|
|
||||||
export interface Props {
|
|
||||||
content: PortableTextBlock[];
|
|
||||||
}
|
|
||||||
|
|
||||||
const components = {
|
|
||||||
block: {
|
|
||||||
normal: Paragraph,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const { content } = Astro.props;
|
|
||||||
---
|
|
||||||
|
|
||||||
<h2 class="mb-2 text-green-800 text-justify sm:text-lg">
|
|
||||||
<PortableText components={components} value={content} />
|
|
||||||
</h2>
|
|
|
@ -1,3 +0,0 @@
|
||||||
<ul class="list-disc ps-2 list-inside [counter-reset:list-counter]">
|
|
||||||
<slot />
|
|
||||||
</ul>
|
|
|
@ -1,14 +0,0 @@
|
||||||
---
|
|
||||||
import type { PortableTextLink } from '@portabletext/types';
|
|
||||||
|
|
||||||
export interface Props {
|
|
||||||
node: { markDef: PortableTextLink };
|
|
||||||
}
|
|
||||||
|
|
||||||
const { node: value } = Astro.props;
|
|
||||||
---
|
|
||||||
|
|
||||||
<a
|
|
||||||
class="text-primary-800 break-words underline hover:text-primary-700"
|
|
||||||
href={value.markDef.href}><slot /></a
|
|
||||||
>
|
|
|
@ -1,3 +0,0 @@
|
||||||
<ol class="[counter-reset:list-counter] ps-2 list-inside">
|
|
||||||
<slot />
|
|
||||||
</ol>
|
|
|
@ -1,27 +0,0 @@
|
||||||
---
|
|
||||||
import InlineLink from '../../InlineLink.astro';
|
|
||||||
|
|
||||||
export interface ReferenceMark {
|
|
||||||
linkToReference: string;
|
|
||||||
authors: string;
|
|
||||||
dateOfPublication: string;
|
|
||||||
notes: string;
|
|
||||||
title: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface Props {
|
|
||||||
node: { markDef: ReferenceMark };
|
|
||||||
}
|
|
||||||
|
|
||||||
const ref = Astro.props.node.markDef;
|
|
||||||
---
|
|
||||||
|
|
||||||
<slot /><InlineLink
|
|
||||||
class="ml-1 text-sm no-underline"
|
|
||||||
href={ref.linkToReference}
|
|
||||||
title={ref.title}
|
|
||||||
>
|
|
||||||
[{ref.authors}{ref.dateOfPublication ? `, ${ref.dateOfPublication}` : ''}{
|
|
||||||
ref.notes ? ` - ${ref.notes}` : ''
|
|
||||||
}]
|
|
||||||
</InlineLink>
|
|
29
frontend/src/content/blog/pt/somos-uma-familia-pobre.mdx
Normal file
29
frontend/src/content/blog/pt/somos-uma-familia-pobre.mdx
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
title: '“Somos uma família pobre”: como o caso da Nobre é um sintoma da doença capitalista'
|
||||||
|
subtitle: >
|
||||||
|
Depois das manifestações e greves dos trabalhadores e trabalhadoras da Nobre Alimentação,
|
||||||
|
fica mais uma vez claro que a máquina de gerar lucros que é o capitalismo não cumpre
|
||||||
|
o seu propósito na sociedade.
|
||||||
|
slug: somos-uma-familia-pobre-a-doenca-capitalista
|
||||||
|
summary: >
|
||||||
|
No dia 1 de maio, uma análise das greves e manifestações das trabalhadoras da
|
||||||
|
Nobre e como o sistema capitalista provoca esta situação de forma permanente.
|
||||||
|
publishDate: 2023-05-01
|
||||||
|
linkPreview:
|
||||||
|
image:
|
||||||
|
path: /src/assets/blog/somos-uma-familia-pobre_link-preview-image.jpeg
|
||||||
|
altText: >
|
||||||
|
Uma foto de uma manifestação, mas que só mostra as bandeiras que as pessoas
|
||||||
|
seguram sobre as suas cabeça. A bandeira no centro é roxa, da Extinction Rebellion.
|
||||||
|
Também há um punho vermelho socialista, de cartão. No fundo, vê-se um prédio alto,
|
||||||
|
desfocado.
|
||||||
|
---
|
||||||
|
|
||||||
|
Recentemente, com grande taxa de adesão, as trabalhadoras e trabalhadores da Nobre Alimentação - conhecida pelo fabrico de enchidos - [organizaram greves e manifestações](https://sicnoticias.pt/pais/2023-04-28-Uma-familia-pobre-trabalhadores-da-Nobre-em-greve-9e790445), utilizando essas ferramentas fundamentais para expressar o seu profundo descontentamento em relação à empresa.
|
||||||
|
Lutam por salários mais altos, carga horária mais baixa e mais dias de férias, para além de um sistema de progressão nas carreiras que, até agora, parece ser completamente inexistente.
|
||||||
|
Nas manifestações, a falar à comunicação social, uma das funcionárias afirma que a empresa criou um lema interno que usava para comunicar às pessoas que lá trabalham: “Somos uma família Nobre”.
|
||||||
|
As manifestantes aproveitaram para virar este lema do avesso e trazê-lo para a realidade que conhecem: “Somos uma família pobre”.
|
||||||
|
|
||||||
|
# Something
|
||||||
|
|
||||||
|
Go there [there](#something)
|
|
@ -6,10 +6,31 @@ const libraryCollection = defineCollection({
|
||||||
title: z.string(),
|
title: z.string(),
|
||||||
checkedOut: z.boolean(),
|
checkedOut: z.boolean(),
|
||||||
link: z.string().url(),
|
link: z.string().url(),
|
||||||
description: z.string().optional(),
|
description: z.ostring(),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
const blogCollection = defineCollection({
|
||||||
|
type: 'content',
|
||||||
|
schema: z.object({
|
||||||
|
title: z.string(),
|
||||||
|
subtitle: z.string(),
|
||||||
|
summary: z.string(),
|
||||||
|
publishDate: z.date(),
|
||||||
|
linkPreview: z.object({
|
||||||
|
// If not defined, will take the value of `title`
|
||||||
|
title: z.ostring(),
|
||||||
|
// If not defined, will take the value of `summary`
|
||||||
|
description: z.ostring(),
|
||||||
|
image: z.object({
|
||||||
|
path: z.string(),
|
||||||
|
altText: z.string(),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
export const collections = {
|
export const collections = {
|
||||||
library: libraryCollection,
|
library: libraryCollection,
|
||||||
|
blog: blogCollection,
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
---
|
---
|
||||||
import client from "../../lib/cms/client";
|
import client from '../../lib/cms/client';
|
||||||
import { forBlogPage } from "../../lib/cms/queries/blogPosts";
|
import { forBlogPage } from '../../lib/cms/queries/blogPosts';
|
||||||
import ButtonLink from "../../components/ButtonLink.astro";
|
import ButtonLink from '../../components/ButtonLink.astro';
|
||||||
import CardLink from "../../components/CardLink.astro";
|
import CardLink from '../../components/CardLink.astro';
|
||||||
import PageTitle from "../../components/PageTitle.astro";
|
import PageTitle from '../../components/PageTitle.astro';
|
||||||
import Layout from "../../layouts/Layout.astro";
|
import Layout from '../../layouts/Layout.astro';
|
||||||
|
|
||||||
const posts: {
|
const posts: {
|
||||||
title: string;
|
title: string;
|
||||||
|
@ -12,7 +12,7 @@ const posts: {
|
||||||
summary: string;
|
summary: string;
|
||||||
slug: string;
|
slug: string;
|
||||||
}[] = await client.fetch(forBlogPage, {
|
}[] = await client.fetch(forBlogPage, {
|
||||||
lang: "en_EN",
|
lang: 'en_EN',
|
||||||
});
|
});
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ const posts: {
|
||||||
{
|
{
|
||||||
posts.map(({ title, slug, publishDate, summary }) => (
|
posts.map(({ title, slug, publishDate, summary }) => (
|
||||||
<CardLink link={`/blog/${slug}`}>
|
<CardLink link={`/blog/${slug}`}>
|
||||||
<article class="flex flex-col">
|
<article class="flex flex-col gap-2">
|
||||||
<span class="text-lg sm:text-xl font-medium break-words text-primary-700">
|
<span class="text-lg sm:text-xl font-medium break-words text-primary-700">
|
||||||
{title}
|
{title}
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -1,58 +1,54 @@
|
||||||
---
|
---
|
||||||
import type { PortableTextBlock } from '@portabletext/types';
|
import BlogPostSubtitle from '../../../components/mdx/BlogPostSubtitle.astro';
|
||||||
import client from '../../../lib/cms/client';
|
|
||||||
import { forBlogPostPage } from '../../../lib/cms/queries/blogPosts';
|
|
||||||
import BlogPostContent from '../../../components/portableText/BlogPostContent.astro';
|
|
||||||
import BlogPostSubtitle from '../../../components/portableText/BlogPostSubtitle.astro';
|
|
||||||
import ButtonLink from '../../../components/ButtonLink.astro';
|
import ButtonLink from '../../../components/ButtonLink.astro';
|
||||||
import PageTitle from '../../../components/PageTitle.astro';
|
import PageTitle from '../../../components/PageTitle.astro';
|
||||||
import Layout from '../../../layouts/Layout.astro';
|
import Layout from '../../../layouts/Layout.astro';
|
||||||
import BlogPostMetadata from '../../../components/BlogPostMetadata.astro';
|
import BlogPostMetadata from '../../../components/BlogPostMetadata.astro';
|
||||||
import type { ImageObject } from '../../../lib/cms/types';
|
|
||||||
import BlogPostFootnotes from '../../../components/BlogPostFootnotes.astro';
|
import BlogPostFootnotes from '../../../components/BlogPostFootnotes.astro';
|
||||||
|
import { getCollection } from 'astro:content';
|
||||||
|
import type { CollectionEntry } from 'astro:content';
|
||||||
|
import blogPostComponents from '../../../components/mdx/blogPostComponents';
|
||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
||||||
title: string;
|
blogPost: CollectionEntry<'blog'>;
|
||||||
subtitle: PortableTextBlock[];
|
|
||||||
content: PortableTextBlock[];
|
|
||||||
publishDate: string;
|
|
||||||
headerImage: ImageObject;
|
|
||||||
summary: string;
|
|
||||||
readTime: string;
|
|
||||||
twitterCardType: 'summary' | 'summary_large_image' | 'player' | 'app';
|
|
||||||
linkPreviewDescription: string;
|
|
||||||
linkPreviewImage: ImageObject;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getStaticPaths() {
|
export async function getStaticPaths() {
|
||||||
const posts: (Props & {
|
const posts = await getCollection('blog', ({ id }) => id.startsWith('pt'));
|
||||||
slug: string;
|
|
||||||
})[] = await client.fetch(forBlogPostPage, {
|
|
||||||
lang: 'pt_PT',
|
|
||||||
});
|
|
||||||
|
|
||||||
return posts.map(({ slug, ...blogPost }) => {
|
return posts.map(({ slug, ...blogPost }) => {
|
||||||
return {
|
return {
|
||||||
params: { slug },
|
params: { slug },
|
||||||
props: blogPost,
|
props: { blogPost },
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const {
|
const { blogPost } = Astro.props;
|
||||||
title,
|
|
||||||
subtitle,
|
|
||||||
content,
|
|
||||||
publishDate,
|
|
||||||
headerImage,
|
|
||||||
summary,
|
|
||||||
readTime,
|
|
||||||
twitterCardType,
|
|
||||||
linkPreviewDescription,
|
|
||||||
linkPreviewImage,
|
|
||||||
} = Astro.props;
|
|
||||||
|
|
||||||
const { slug } = Astro.params;
|
const { slug } = Astro.params;
|
||||||
|
|
||||||
|
const {
|
||||||
|
data: {
|
||||||
|
title,
|
||||||
|
subtitle,
|
||||||
|
summary,
|
||||||
|
publishDate,
|
||||||
|
linkPreview: {
|
||||||
|
title: linkPreviewTitle,
|
||||||
|
description: linkPreviewDescription,
|
||||||
|
image: linkPreviewImage,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
body,
|
||||||
|
} = blogPost;
|
||||||
|
|
||||||
|
const readTime = Math.ceil(body.length / 5 / 180);
|
||||||
|
|
||||||
|
const { Content, headings } = await blogPost.render();
|
||||||
|
|
||||||
|
const formattedPublishDate = publishDate.toLocaleDateString('pt', {
|
||||||
|
dateStyle: 'short',
|
||||||
|
});
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout
|
<Layout
|
||||||
|
@ -63,24 +59,25 @@ const { slug } = Astro.params;
|
||||||
>
|
>
|
||||||
<BlogPostMetadata
|
<BlogPostMetadata
|
||||||
slot="metadata"
|
slot="metadata"
|
||||||
title={title}
|
title={linkPreviewTitle ?? title}
|
||||||
description={linkPreviewDescription ?? summary}
|
description={linkPreviewDescription ?? summary}
|
||||||
image={linkPreviewImage ?? headerImage}
|
image={linkPreviewImage}
|
||||||
twitterCardType={twitterCardType}
|
|
||||||
/>
|
/>
|
||||||
<article class="max-w-prose m-auto pt-8">
|
<article class="max-w-prose m-auto pt-8">
|
||||||
<header class="mb-5">
|
<header class="mb-5">
|
||||||
<PageTitle class="mb-2 break-words">{title}</PageTitle>
|
<PageTitle class="mb-2 break-words">{title}</PageTitle>
|
||||||
<BlogPostSubtitle content={subtitle} />
|
<BlogPostSubtitle>{subtitle}</BlogPostSubtitle>
|
||||||
<span class="text-lg sm:text-xl">
|
<span class="text-lg sm:text-xl">
|
||||||
<time datetime={publishDate}>{publishDate}</time>
|
<time datetime={formattedPublishDate}>{formattedPublishDate}</time>
|
||||||
•
|
•
|
||||||
{readTime}
|
{readTime} min
|
||||||
</span>
|
</span>
|
||||||
</header>
|
</header>
|
||||||
<BlogPostContent content={content} />
|
<div class="text-justify">
|
||||||
|
<Content components={blogPostComponents} />
|
||||||
|
</div>
|
||||||
<hr class="my-5 border-t border-primary-700" />
|
<hr class="my-5 border-t border-primary-700" />
|
||||||
<BlogPostFootnotes blogPostContent={content} />
|
<!-- <BlogPostFootnotes blogPostContent={content} /> -->
|
||||||
</article>
|
</article>
|
||||||
<Fragment slot="footer">
|
<Fragment slot="footer">
|
||||||
<nav class="flex gap-4">
|
<nav class="flex gap-4">
|
||||||
|
|
|
@ -1,19 +1,12 @@
|
||||||
---
|
---
|
||||||
import client from "../../lib/cms/client";
|
import ButtonLink from '../../components/ButtonLink.astro';
|
||||||
import { forBlogPage } from "../../lib/cms/queries/blogPosts";
|
import CardLink from '../../components/CardLink.astro';
|
||||||
import ButtonLink from "../../components/ButtonLink.astro";
|
import PageTitle from '../../components/PageTitle.astro';
|
||||||
import CardLink from "../../components/CardLink.astro";
|
import Layout from '../../layouts/Layout.astro';
|
||||||
import PageTitle from "../../components/PageTitle.astro";
|
|
||||||
import Layout from "../../layouts/Layout.astro";
|
|
||||||
|
|
||||||
const posts: {
|
import { getCollection } from 'astro:content';
|
||||||
title: string;
|
|
||||||
publishDate: string;
|
const posts = await getCollection('blog', ({ id }) => id.startsWith('pt'));
|
||||||
summary: string;
|
|
||||||
slug: string;
|
|
||||||
}[] = await client.fetch(forBlogPage, {
|
|
||||||
lang: "pt_PT",
|
|
||||||
});
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout
|
<Layout
|
||||||
|
@ -28,14 +21,21 @@ const posts: {
|
||||||
</header>
|
</header>
|
||||||
<ol>
|
<ol>
|
||||||
{
|
{
|
||||||
posts.map(({ title, slug, publishDate, summary }) => (
|
posts.map(({ data: { title, publishDate, summary }, slug }) => (
|
||||||
<CardLink link={`/blogue/${slug}`}>
|
<CardLink link={`/blogue/${slug}`}>
|
||||||
<article class="flex flex-col">
|
<article class="flex flex-col gap-2">
|
||||||
<span class="text-lg sm:text-xl font-medium break-words text-primary-700">
|
<span class="text-lg sm:text-xl font-medium break-words text-primary-700">
|
||||||
{title}
|
{title}
|
||||||
</span>
|
</span>
|
||||||
<time datetime={publishDate} class="text-sm text-primary-800">
|
<time
|
||||||
{publishDate}
|
datetime={publishDate.toLocaleDateString('pt', {
|
||||||
|
dateStyle: 'short',
|
||||||
|
})}
|
||||||
|
class="text-sm text-primary-800"
|
||||||
|
>
|
||||||
|
{publishDate.toLocaleDateString('pt', {
|
||||||
|
dateStyle: 'short',
|
||||||
|
})}
|
||||||
</time>
|
</time>
|
||||||
<span>{summary}</span>
|
<span>{summary}</span>
|
||||||
</article>
|
</article>
|
||||||
|
|
|
@ -89,7 +89,9 @@ import Layout from '../layouts/Layout.astro';
|
||||||
</InlineLink>.
|
</InlineLink>.
|
||||||
</p>
|
</p>
|
||||||
<p class="mb-3">
|
<p class="mb-3">
|
||||||
Se quiseres ver-me, tens <InlineLink href="/me.jpeg">{'aqui'}</InlineLink>
|
Se quiseres ver-me, tens <InlineLink href="/me.jpeg">
|
||||||
|
{'aqui'}
|
||||||
|
</InlineLink>
|
||||||
uma foto minha!
|
uma foto minha!
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|
Loading…
Reference in a new issue