feat: add github repository card extension feature

- remove astro-compress to improve build speed
- add target and rel attributes to footer links
- rename unocss opacity utility from 'opacity' to 'op'
- update PostList component's page logic from 'isTag' to 'isHome'
- create extend.css file for markdown extended features
- reorganize and sort styles in heti.css
- fix inline code wrapping issue
This commit is contained in:
radishzzz 2025-05-02 18:06:59 +01:00
parent 266e5833e6
commit 2ddae5631e
15 changed files with 407 additions and 479 deletions

View file

@ -74,6 +74,8 @@
"blurhash",
"bmoji",
"canvaskit",
"Cpath",
"Csvg",
"Disqus",
"Etiquetas",
"figcaption",

View file

@ -1,7 +1,6 @@
import mdx from '@astrojs/mdx'
import partytown from '@astrojs/partytown'
import sitemap from '@astrojs/sitemap'
import compress from 'astro-compress'
import robotsTxt from 'astro-robots-txt'
import { defineConfig } from 'astro/config'
import rehypeExternalLinks from 'rehype-external-links'
@ -14,6 +13,7 @@ import { themeConfig } from './src/config'
import { langMap } from './src/i18n/config'
import { rehypeImgToFigure } from './src/plugins/rehype-img-to-figure.mjs'
import { remarkAdmonitions } from './src/plugins/remark-admonitions.mjs'
import { remarkGithubCard } from './src/plugins/remark-github-card.mjs'
import { remarkReadingTime } from './src/plugins/remark-reading-time.mjs'
const url = themeConfig.site.url
@ -59,14 +59,14 @@ export default defineConfig({
}),
sitemap(),
robotsTxt(),
compress(),
],
markdown: {
remarkPlugins: [
remarkDirective,
remarkMath,
remarkReadingTime,
remarkAdmonitions,
remarkGithubCard,
remarkReadingTime,
],
rehypePlugins: [
rehypeSlug,

View file

@ -19,7 +19,6 @@
"@astrojs/sitemap": "^3.3.1",
"@waline/client": "^3.5.6",
"astro": "^5.7.10",
"astro-compress": "^2.3.8",
"astro-og-canvas": "^0.7.0",
"astro-robots-txt": "^1.0.0",
"canvaskit-wasm": "^0.40.0",

379
pnpm-lock.yaml generated
View file

@ -26,9 +26,6 @@ importers:
astro:
specifier: ^5.7.10
version: 5.7.10(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.40.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.7.1)
astro-compress:
specifier: ^2.3.8
version: 2.3.8(@types/node@22.15.3)(jiti@2.4.2)(rollup@4.40.1)(typescript@5.8.3)(yaml@2.7.1)
astro-og-canvas:
specifier: ^0.7.0
version: 0.7.0(astro@5.7.10(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.40.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.7.1))
@ -197,8 +194,8 @@ packages:
peerDependencies:
typescript: ^5.0.0
'@astrojs/compiler@2.11.0':
resolution: {integrity: sha512-zZOO7i+JhojO8qmlyR/URui6LyfHJY6m+L9nwyX5GiKD78YoRaZ5tzz6X0fkl+5bD3uwlDHayf6Oe8Fu36RKNg==}
'@astrojs/compiler@2.12.0':
resolution: {integrity: sha512-7bCjW6tVDpUurQLeKBUN9tZ5kSv5qYrGmcn0sG0IwacL7isR2ZbyyA3AdZ4uxsuUFOS2SlgReTH7wkxO6zpqWA==}
'@astrojs/internal-helpers@0.6.1':
resolution: {integrity: sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A==}
@ -468,8 +465,8 @@ packages:
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
'@eslint-community/eslint-utils@4.6.1':
resolution: {integrity: sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==}
'@eslint-community/eslint-utils@4.7.0':
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
@ -478,8 +475,8 @@ packages:
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
'@eslint/compat@1.2.8':
resolution: {integrity: sha512-LqCYHdWL/QqKIJuZ/ucMAv8d4luKGs4oCPgpt8mWztQAtPrHfXKQ/XAUc8ljCHAfJCn6SvkpTcGt5Tsh8saowA==}
'@eslint/compat@1.2.9':
resolution: {integrity: sha512-gCdSY54n7k+driCadyMNv8JSPzYLeDVM/ikZRtvtROBpRdFSkS8W9A82MqsaY7lZuwL0wiapgD0NT1xT0hyJsA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^9.10.0
@ -491,8 +488,8 @@ packages:
resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/config-helpers@0.2.1':
resolution: {integrity: sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==}
'@eslint/config-helpers@0.2.2':
resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/core@0.10.0':
@ -814,9 +811,6 @@ packages:
resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
'@playform/pipe@0.1.3':
resolution: {integrity: sha512-cjRcaj6b8XZMS+N51In78EuD9e0x0M3gYxi2g+qUGk1iya2uxcS+aSrXxfBUZueOjxADQwpyS4zLEhlbHCGcDA==}
'@polka/url@1.0.0-next.29':
resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
@ -968,19 +962,9 @@ packages:
'@swc/helpers@0.5.17':
resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
'@trysound/sax@0.2.0':
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
'@tybys/wasm-util@0.9.0':
resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
'@types/css-tree@2.3.10':
resolution: {integrity: sha512-WcaBazJ84RxABvRttQjjFWgTcHvZR9jGr0Y3hccPkHjFyk/a3N8EuxjKr+QfrwjoM5b1yI1Uj1i7EzOAAwBwag==}
'@types/csso@5.0.4':
resolution: {integrity: sha512-W/FsRkm/9c04x9ON+bj+HQ0cSgNkG1LvcfuBCpkP7cpikM7+RkrNFLGtiofb++xBG6KGMUycLoDbi9/K621ZCw==}
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
@ -996,9 +980,6 @@ packages:
'@types/hast@3.0.4':
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
'@types/html-minifier-terser@7.0.2':
resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==}
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@ -1029,9 +1010,6 @@ packages:
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
'@types/node@22.13.14':
resolution: {integrity: sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==}
'@types/node@22.15.3':
resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==}
@ -1285,8 +1263,8 @@ packages:
cpu: [x64]
os: [win32]
'@vitest/eslint-plugin@1.1.43':
resolution: {integrity: sha512-OLoUMO67Yg+kr7E6SjF5+Qvl2f6uNJ7ImQYnXT8WgnPiZE41ZQBsnzn70jehXrhFVadphHs2smk+yl0TFKLV5Q==}
'@vitest/eslint-plugin@1.1.44':
resolution: {integrity: sha512-m4XeohMT+Dj2RZfxnbiFR+Cv5dEC0H7C6TlxRQT7GK2556solm99kxgzJp/trKrZvanZcOFyw7aABykUTfWyrg==}
peerDependencies:
'@typescript-eslint/utils': '>= 8.24.0'
eslint: '>= 8.57.0'
@ -1481,9 +1459,6 @@ packages:
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
hasBin: true
astro-compress@2.3.8:
resolution: {integrity: sha512-XajjEtSTJuVRBOrtZ/Siavd4KcH47SEHo0XoZZeYVRF6BODSBqxVdtlfkqYJKM+F4XRUmLDS5ncVTILnQYvvXw==}
astro-eslint-parser@1.2.2:
resolution: {integrity: sha512-JepyLROIad6f44uyqMF6HKE2QbunNzp3mYKRcPoDGt0QkxXmH222FAFC64WTyQu2Kg8NNEXHTN/sWuUId9sSxw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@ -1554,8 +1529,8 @@ packages:
brotli@1.3.3:
resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==}
browserslist@4.24.4:
resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==}
browserslist@4.24.5:
resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@ -1574,9 +1549,6 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
camel-case@4.1.2:
resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
camelcase@8.0.0:
resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
engines: {node: '>=16'}
@ -1633,10 +1605,6 @@ packages:
resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==}
engines: {node: '>=8'}
clean-css@5.3.3:
resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==}
engines: {node: '>= 10.0'}
clean-regexp@1.0.0:
resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
engines: {node: '>=4'}
@ -1688,10 +1656,6 @@ packages:
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
commander@10.0.1:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
commander@13.1.0:
resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
engines: {node: '>=18'}
@ -1699,10 +1663,6 @@ packages:
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
commander@8.3.0:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
engines: {node: '>= 12'}
@ -1747,34 +1707,15 @@ packages:
crossws@0.3.4:
resolution: {integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==}
css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
css-tree@2.2.1:
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
css-tree@2.3.1:
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
css-tree@3.1.0:
resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
engines: {node: '>= 6'}
cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
hasBin: true
csso@5.0.5:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
@ -1805,10 +1746,6 @@ packages:
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
deepmerge-ts@7.1.5:
resolution: {integrity: sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==}
engines: {node: '>=16.0.0'}
deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
@ -1860,9 +1797,6 @@ packages:
domutils@3.2.2:
resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
dot-case@3.0.4:
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
dotenv@16.5.0:
resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==}
engines: {node: '>=12'}
@ -1874,8 +1808,8 @@ packages:
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
electron-to-chromium@1.5.145:
resolution: {integrity: sha512-pZ5EcTWRq/055MvSBgoFEyKf2i4apwfoqJbK/ak2jnFq8oHjZ+vzc3AhRcz37Xn+ZJfL58R666FLJx0YOK9yTw==}
electron-to-chromium@1.5.149:
resolution: {integrity: sha512-UyiO82eb9dVOx8YO3ajDf9jz2kKyt98DEITRdeLPstOEuTlLzDA4Gyq5K9he71TQziU5jUVu2OAu5N48HmQiyQ==}
emmet@2.4.11:
resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==}
@ -2359,11 +2293,6 @@ packages:
html-escaper@3.0.3:
resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
html-minifier-terser@7.2.0:
resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==}
engines: {node: ^14.13.1 || >=16.0.0}
hasBin: true
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
@ -2663,9 +2592,6 @@ packages:
loupe@3.1.3:
resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
@ -2756,12 +2682,6 @@ packages:
mdast-util-to-string@4.0.0:
resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
mdn-data@2.12.2:
resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
@ -2953,9 +2873,6 @@ packages:
nlcst-to-string@4.0.0:
resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==}
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
node-fetch-native@1.6.6:
resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==}
@ -3003,11 +2920,11 @@ packages:
resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
engines: {node: '>=18'}
oniguruma-parser@0.12.0:
resolution: {integrity: sha512-fD9o5ebCmEAA9dLysajdQvuKzLL7cj+w7DQjuO3Cb6IwafENfx6iL+RGkmyW82pVRsvgzixsWinHvgxTMJvdIA==}
oniguruma-parser@0.12.1:
resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==}
oniguruma-to-es@4.3.2:
resolution: {integrity: sha512-Hxxc18dGbVYzcTp2W64YwxQLYabiYM+dOX5Dtycy3qLvuYE4HIQjwfgEeAtPS6chFJs8UdINTQ83/Rlh+1Qwsg==}
oniguruma-to-es@4.3.3:
resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==}
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
@ -3045,9 +2962,6 @@ packages:
pako@0.2.9:
resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
param-case@3.0.4:
resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
@ -3078,9 +2992,6 @@ packages:
parse5@7.3.0:
resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
pascal-case@3.1.2:
resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
path-browserify@1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
@ -3277,10 +3188,6 @@ packages:
rehype@13.0.2:
resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==}
relateurl@0.2.7:
resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
engines: {node: '>= 0.10'}
remark-directive@4.0.0:
resolution: {integrity: sha512-7sxn4RfF1o3izevPV1DheyGDD6X4c9hrGpfdUpm7uC++dqrnJxIZVkk7CoKqcLm0VUMAuOol7Mno3m6g8cfMuA==}
@ -3531,11 +3438,6 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
svgo@3.3.2:
resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==}
engines: {node: '>=14.0.0'}
hasBin: true
synckit@0.10.3:
resolution: {integrity: sha512-R1urvuyiTaWfeCggqEvpDJwAlDVdsT9NM+IP//Tk2x7qHCkSvBk/fwFgw/TLAHzZlrAnnazMcRw0ZD8HlYFTEQ==}
engines: {node: ^14.18.0 || >=16.0.0}
@ -3656,9 +3558,6 @@ packages:
uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
undici-types@6.20.0:
resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
undici-types@6.21.0:
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
@ -4149,7 +4048,7 @@ snapshots:
'@stylistic/eslint-plugin': 4.2.0(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/eslint-plugin': 8.31.1(@typescript-eslint/parser@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/parser': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
'@vitest/eslint-plugin': 1.1.43(@typescript-eslint/utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.7.1))
'@vitest/eslint-plugin': 1.1.44(@typescript-eslint/utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.7.1))
ansis: 3.17.0
cac: 6.7.14
eslint: 9.25.1(jiti@2.4.2)
@ -4209,13 +4108,13 @@ snapshots:
- prettier
- prettier-plugin-astro
'@astrojs/compiler@2.11.0': {}
'@astrojs/compiler@2.12.0': {}
'@astrojs/internal-helpers@0.6.1': {}
'@astrojs/language-server@2.15.4(typescript@5.8.3)':
dependencies:
'@astrojs/compiler': 2.11.0
'@astrojs/compiler': 2.12.0
'@astrojs/yaml2ts': 0.2.2
'@jridgewell/sourcemap-codec': 1.5.0
'@volar/kit': 2.4.13(typescript@5.8.3)
@ -4490,14 +4389,14 @@ snapshots:
eslint: 9.25.1(jiti@2.4.2)
ignore: 5.3.2
'@eslint-community/eslint-utils@4.6.1(eslint@9.25.1(jiti@2.4.2))':
'@eslint-community/eslint-utils@4.7.0(eslint@9.25.1(jiti@2.4.2))':
dependencies:
eslint: 9.25.1(jiti@2.4.2)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
'@eslint/compat@1.2.8(eslint@9.25.1(jiti@2.4.2))':
'@eslint/compat@1.2.9(eslint@9.25.1(jiti@2.4.2))':
optionalDependencies:
eslint: 9.25.1(jiti@2.4.2)
@ -4509,7 +4408,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@eslint/config-helpers@0.2.1': {}
'@eslint/config-helpers@0.2.2': {}
'@eslint/core@0.10.0':
dependencies:
@ -4749,6 +4648,7 @@ snapshots:
dependencies:
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
optional: true
'@jridgewell/sourcemap-codec@1.5.0': {}
@ -4812,12 +4712,6 @@ snapshots:
'@pkgr/core@0.2.4': {}
'@playform/pipe@0.1.3':
dependencies:
'@types/node': 22.13.14
deepmerge-ts: 7.1.5
fast-glob: 3.3.3
'@polka/url@1.0.0-next.29': {}
'@quansync/fs@0.1.2':
@ -4907,7 +4801,7 @@ snapshots:
dependencies:
'@shikijs/types': 3.3.0
'@shikijs/vscode-textmate': 10.0.2
oniguruma-to-es: 4.3.2
oniguruma-to-es: 4.3.3
'@shikijs/engine-oniguruma@3.3.0':
dependencies:
@ -4945,19 +4839,11 @@ snapshots:
dependencies:
tslib: 2.8.1
'@trysound/sax@0.2.0': {}
'@tybys/wasm-util@0.9.0':
dependencies:
tslib: 2.8.1
optional: true
'@types/css-tree@2.3.10': {}
'@types/csso@5.0.4':
dependencies:
'@types/css-tree': 2.3.10
'@types/debug@4.1.12':
dependencies:
'@types/ms': 2.1.0
@ -4977,8 +4863,6 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
'@types/html-minifier-terser@7.0.2': {}
'@types/json-schema@7.0.15': {}
'@types/katex@0.16.7': {}
@ -5006,10 +4890,6 @@ snapshots:
'@types/node@17.0.45': {}
'@types/node@22.13.14':
dependencies:
undici-types: 6.20.0
'@types/node@22.15.3':
dependencies:
undici-types: 6.21.0
@ -5093,7 +4973,7 @@ snapshots:
'@typescript-eslint/utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)':
dependencies:
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1(jiti@2.4.2))
'@typescript-eslint/scope-manager': 8.31.1
'@typescript-eslint/types': 8.31.1
'@typescript-eslint/typescript-estree': 8.31.1(typescript@5.8.3)
@ -5334,7 +5214,7 @@ snapshots:
'@unrs/resolver-binding-win32-x64-msvc@1.7.2':
optional: true
'@vitest/eslint-plugin@1.1.43(@typescript-eslint/utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.7.1))':
'@vitest/eslint-plugin@1.1.44(@typescript-eslint/utils@8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.3)(terser@5.39.0)(yaml@2.7.1))':
dependencies:
'@typescript-eslint/utils': 8.31.1(eslint@9.25.1(jiti@2.4.2))(typescript@5.8.3)
eslint: 9.25.1(jiti@2.4.2)
@ -5587,61 +5467,12 @@ snapshots:
astring@1.9.0: {}
astro-compress@2.3.8(@types/node@22.15.3)(jiti@2.4.2)(rollup@4.40.1)(typescript@5.8.3)(yaml@2.7.1):
dependencies:
'@playform/pipe': 0.1.3
'@types/csso': 5.0.4
'@types/html-minifier-terser': 7.0.2
astro: 5.7.10(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.40.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.7.1)
commander: 13.1.0
csso: 5.0.5
deepmerge-ts: 7.1.5
fast-glob: 3.3.3
html-minifier-terser: 7.2.0
kleur: 4.1.5
lightningcss: 1.29.3
sharp: 0.33.5
svgo: 3.3.2
terser: 5.39.0
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
- '@azure/data-tables'
- '@azure/identity'
- '@azure/keyvault-secrets'
- '@azure/storage-blob'
- '@capacitor/preferences'
- '@deno/kv'
- '@netlify/blobs'
- '@planetscale/database'
- '@types/node'
- '@upstash/redis'
- '@vercel/blob'
- '@vercel/kv'
- aws4fetch
- db0
- encoding
- idb-keyval
- ioredis
- jiti
- less
- rollup
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- tsx
- typescript
- uploadthing
- yaml
astro-eslint-parser@1.2.2:
dependencies:
'@astrojs/compiler': 2.11.0
'@astrojs/compiler': 2.12.0
'@typescript-eslint/scope-manager': 8.31.1
'@typescript-eslint/types': 8.31.1
astrojs-compiler-sync: 1.1.1(@astrojs/compiler@2.11.0)
astrojs-compiler-sync: 1.1.1(@astrojs/compiler@2.12.0)
debug: 4.4.0
entities: 6.0.0
eslint-scope: 8.3.0
@ -5667,7 +5498,7 @@ snapshots:
astro@5.7.10(@types/node@22.15.3)(jiti@2.4.2)(lightningcss@1.29.3)(rollup@4.40.1)(terser@5.39.0)(typescript@5.8.3)(yaml@2.7.1):
dependencies:
'@astrojs/compiler': 2.11.0
'@astrojs/compiler': 2.12.0
'@astrojs/internal-helpers': 0.6.1
'@astrojs/markdown-remark': 6.3.1
'@astrojs/telemetry': 3.2.1
@ -5763,9 +5594,9 @@ snapshots:
- uploadthing
- yaml
astrojs-compiler-sync@1.1.1(@astrojs/compiler@2.11.0):
astrojs-compiler-sync@1.1.1(@astrojs/compiler@2.12.0):
dependencies:
'@astrojs/compiler': 2.11.0
'@astrojs/compiler': 2.12.0
synckit: 0.11.4
autosize@6.0.1: {}
@ -5814,14 +5645,15 @@ snapshots:
dependencies:
base64-js: 1.5.1
browserslist@4.24.4:
browserslist@4.24.5:
dependencies:
caniuse-lite: 1.0.30001716
electron-to-chromium: 1.5.145
electron-to-chromium: 1.5.149
node-releases: 2.0.19
update-browserslist-db: 1.1.3(browserslist@4.24.4)
update-browserslist-db: 1.1.3(browserslist@4.24.5)
buffer-from@1.1.2: {}
buffer-from@1.1.2:
optional: true
builtin-modules@5.0.0: {}
@ -5829,11 +5661,6 @@ snapshots:
callsites@3.1.0: {}
camel-case@4.1.2:
dependencies:
pascal-case: 3.1.2
tslib: 2.8.1
camelcase@8.0.0: {}
caniuse-lite@1.0.30001716: {}
@ -5893,10 +5720,6 @@ snapshots:
ci-info@4.2.0: {}
clean-css@5.3.3:
dependencies:
source-map: 0.6.1
clean-regexp@1.0.0:
dependencies:
escape-string-regexp: 1.0.5
@ -5944,13 +5767,10 @@ snapshots:
comma-separated-tokens@2.0.3: {}
commander@10.0.1: {}
commander@13.1.0: {}
commander@2.20.3: {}
commander@7.2.0: {}
commander@2.20.3:
optional: true
commander@8.3.0: {}
@ -5972,7 +5792,7 @@ snapshots:
core-js-compat@3.42.0:
dependencies:
browserslist: 4.24.4
browserslist: 4.24.5
cross-fetch@3.2.0:
dependencies:
@ -5990,37 +5810,13 @@ snapshots:
dependencies:
uncrypto: 0.1.3
css-select@5.1.0:
dependencies:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 5.0.3
domutils: 3.2.2
nth-check: 2.1.1
css-tree@2.2.1:
dependencies:
mdn-data: 2.0.28
source-map-js: 1.2.1
css-tree@2.3.1:
dependencies:
mdn-data: 2.0.30
source-map-js: 1.2.1
css-tree@3.1.0:
dependencies:
mdn-data: 2.12.2
source-map-js: 1.2.1
css-what@6.1.0: {}
cssesc@3.0.0: {}
csso@5.0.5:
dependencies:
css-tree: 2.2.1
csstype@3.1.3: {}
debug@3.2.7:
@ -6040,8 +5836,6 @@ snapshots:
deep-is@0.1.4: {}
deepmerge-ts@7.1.5: {}
deepmerge@4.3.1: {}
defu@6.1.4: {}
@ -6086,18 +5880,13 @@ snapshots:
domelementtype: 2.3.0
domhandler: 5.0.3
dot-case@3.0.4:
dependencies:
no-case: 3.0.4
tslib: 2.8.1
dotenv@16.5.0: {}
dset@3.1.4: {}
duplexer@0.1.2: {}
electron-to-chromium@1.5.145: {}
electron-to-chromium@1.5.149: {}
emmet@2.4.11:
dependencies:
@ -6183,7 +5972,7 @@ snapshots:
eslint-config-flat-gitignore@2.1.0(eslint@9.25.1(jiti@2.4.2)):
dependencies:
'@eslint/compat': 1.2.8(eslint@9.25.1(jiti@2.4.2))
'@eslint/compat': 1.2.9(eslint@9.25.1(jiti@2.4.2))
eslint: 9.25.1(jiti@2.4.2)
eslint-flat-config-utils@2.0.1:
@ -6214,7 +6003,7 @@ snapshots:
eslint-plugin-astro@1.3.1(eslint@9.25.1(jiti@2.4.2)):
dependencies:
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1(jiti@2.4.2))
'@jridgewell/sourcemap-codec': 1.5.0
'@typescript-eslint/types': 8.31.1
astro-eslint-parser: 1.2.2
@ -6233,7 +6022,7 @@ snapshots:
eslint-plugin-es-x@7.8.0(eslint@9.25.1(jiti@2.4.2)):
dependencies:
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/regexpp': 4.12.1
eslint: 9.25.1(jiti@2.4.2)
eslint-compat-utils: 0.5.1(eslint@9.25.1(jiti@2.4.2))
@ -6274,7 +6063,7 @@ snapshots:
eslint-plugin-jsonc@2.20.0(eslint@9.25.1(jiti@2.4.2)):
dependencies:
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1(jiti@2.4.2))
eslint: 9.25.1(jiti@2.4.2)
eslint-compat-utils: 0.6.5(eslint@9.25.1(jiti@2.4.2))
eslint-json-compat-utils: 0.2.1(eslint@9.25.1(jiti@2.4.2))(jsonc-eslint-parser@2.4.0)
@ -6288,7 +6077,7 @@ snapshots:
eslint-plugin-n@17.17.0(eslint@9.25.1(jiti@2.4.2)):
dependencies:
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1(jiti@2.4.2))
enhanced-resolve: 5.18.1
eslint: 9.25.1(jiti@2.4.2)
eslint-plugin-es-x: 7.8.0(eslint@9.25.1(jiti@2.4.2))
@ -6322,7 +6111,7 @@ snapshots:
eslint-plugin-regexp@2.7.0(eslint@9.25.1(jiti@2.4.2)):
dependencies:
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/regexpp': 4.12.1
comment-parser: 1.4.1
eslint: 9.25.1(jiti@2.4.2)
@ -6344,7 +6133,7 @@ snapshots:
eslint-plugin-unicorn@58.0.0(eslint@9.25.1(jiti@2.4.2)):
dependencies:
'@babel/helper-validator-identifier': 7.27.1
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1(jiti@2.4.2))
'@eslint/plugin-kit': 0.2.8
ci-info: 4.2.0
clean-regexp: 1.0.0
@ -6370,7 +6159,7 @@ snapshots:
eslint-plugin-vue@10.1.0(eslint@9.25.1(jiti@2.4.2))(vue-eslint-parser@10.1.3(eslint@9.25.1(jiti@2.4.2))):
dependencies:
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1(jiti@2.4.2))
eslint: 9.25.1(jiti@2.4.2)
natural-compare: 1.4.0
nth-check: 2.1.1
@ -6406,10 +6195,10 @@ snapshots:
eslint@9.25.1(jiti@2.4.2):
dependencies:
'@eslint-community/eslint-utils': 4.6.1(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/eslint-utils': 4.7.0(eslint@9.25.1(jiti@2.4.2))
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.20.0
'@eslint/config-helpers': 0.2.1
'@eslint/config-helpers': 0.2.2
'@eslint/core': 0.13.0
'@eslint/eslintrc': 3.3.1
'@eslint/js': 9.25.1
@ -6810,16 +6599,6 @@ snapshots:
html-escaper@3.0.3: {}
html-minifier-terser@7.2.0:
dependencies:
camel-case: 4.1.2
clean-css: 5.3.3
commander: 10.0.1
entities: 4.5.0
param-case: 3.0.4
relateurl: 0.2.7
terser: 5.39.0
html-void-elements@3.0.0: {}
htmlparser2@8.0.2:
@ -7009,6 +6788,7 @@ snapshots:
lightningcss-linux-x64-musl: 1.29.3
lightningcss-win32-arm64-msvc: 1.29.3
lightningcss-win32-x64-msvc: 1.29.3
optional: true
lilconfig@3.1.3: {}
@ -7067,10 +6847,6 @@ snapshots:
loupe@3.1.3:
optional: true
lower-case@2.0.2:
dependencies:
tslib: 2.8.1
lru-cache@10.4.3: {}
magic-string@0.30.17:
@ -7308,10 +7084,6 @@ snapshots:
dependencies:
'@types/mdast': 4.0.4
mdn-data@2.0.28: {}
mdn-data@2.0.30: {}
mdn-data@2.12.2: {}
mdurl@2.0.0: {}
@ -7661,11 +7433,6 @@ snapshots:
dependencies:
'@types/nlcst': 2.0.3
no-case@3.0.4:
dependencies:
lower-case: 2.0.2
tslib: 2.8.1
node-fetch-native@1.6.6: {}
node-fetch@2.7.0:
@ -7708,11 +7475,11 @@ snapshots:
dependencies:
mimic-function: 5.0.1
oniguruma-parser@0.12.0: {}
oniguruma-parser@0.12.1: {}
oniguruma-to-es@4.3.2:
oniguruma-to-es@4.3.3:
dependencies:
oniguruma-parser: 0.12.0
oniguruma-parser: 0.12.1
regex: 6.0.1
regex-recursion: 6.0.2
@ -7754,11 +7521,6 @@ snapshots:
pako@0.2.9: {}
param-case@3.0.4:
dependencies:
dot-case: 3.0.4
tslib: 2.8.1
parent-module@1.0.1:
dependencies:
callsites: 3.1.0
@ -7802,11 +7564,6 @@ snapshots:
dependencies:
entities: 6.0.0
pascal-case@3.1.2:
dependencies:
no-case: 3.0.4
tslib: 2.8.1
path-browserify@1.0.1: {}
path-exists@4.0.0: {}
@ -8033,8 +7790,6 @@ snapshots:
rehype-stringify: 10.0.1
unified: 11.0.5
relateurl@0.2.7: {}
remark-directive@4.0.0:
dependencies:
'@types/mdast': 4.0.4
@ -8229,6 +7984,7 @@ snapshots:
'@img/sharp-wasm32': 0.33.5
'@img/sharp-win32-ia32': 0.33.5
'@img/sharp-win32-x64': 0.33.5
optional: true
sharp@0.34.1:
dependencies:
@ -8316,8 +8072,10 @@ snapshots:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
optional: true
source-map@0.6.1: {}
source-map@0.6.1:
optional: true
source-map@0.7.4: {}
@ -8403,16 +8161,6 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
svgo@3.3.2:
dependencies:
'@trysound/sax': 0.2.0
commander: 7.2.0
css-select: 5.1.0
css-tree: 2.3.1
css-what: 6.1.0
csso: 5.0.5
picocolors: 1.1.1
synckit@0.10.3:
dependencies:
'@pkgr/core': 0.2.4
@ -8436,6 +8184,7 @@ snapshots:
acorn: 8.14.1
commander: 2.20.3
source-map-support: 0.5.21
optional: true
tiny-inflate@1.0.3: {}
@ -8513,8 +8262,6 @@ snapshots:
uncrypto@0.1.3: {}
undici-types@6.20.0: {}
undici-types@6.21.0: {}
unicode-properties@1.4.1:
@ -8661,9 +8408,9 @@ snapshots:
ofetch: 1.4.1
ufo: 1.6.1
update-browserslist-db@1.1.3(browserslist@4.24.4):
update-browserslist-db@1.1.3(browserslist@4.24.5):
dependencies:
browserslist: 4.24.4
browserslist: 4.24.5
escalade: 3.2.0
picocolors: 1.1.1

View file

@ -30,7 +30,7 @@ const links = socialLinks.map((link) => {
<p>
{links.map((link, index) => (
<>
<a class="transition-colors hover:c-primary" href={link.url}>
<a class="transition-colors hover:c-primary" href={link.url} target="_blank" rel="noopener noreferrer">
{link.name}
</a>
{index < links.length - 1 && ' / '}
@ -39,7 +39,7 @@ const links = socialLinks.map((link) => {
</p>
<p>
Powered by <a class="transition-colors hover:c-primary" href="https://astro.build/">Astro</a> and <a class="transition-colors hover:c-primary" href="https://github.com/radishzzz/astro-theme-retypeset">Retypeset</a>
Powered by <a class="transition-colors hover:c-primary" href="https://astro.build/" target="_blank" rel="noopener noreferrer">Astro</a> and <a class="transition-colors hover:c-primary" href="https://github.com/radishzzz/astro-theme-retypeset" target="_blank" rel="noopener noreferrer">Retypeset</a>
</p>
<p>

View file

@ -60,7 +60,7 @@ const SubtitleTag = isPost ? 'div' : 'h2'
<SubtitleTag
class:list={[
isPost
? `opacity-0 lg:opacity-100`
? `op-0 lg:op-100`
: 'w-75% lg:w-full',
'c-secondary font-navbar text-3.5 lg:text-4',
]}

View file

@ -3,7 +3,7 @@ import type { CollectionEntry } from 'astro:content'
import PostDate from '@/components/PostDate.astro'
import { defaultLocale } from '@/config'
import { generateDescription } from '@/utils/description'
import { isTagPage } from '@/utils/page'
import { isHomePage } from '@/utils/page'
type Post = CollectionEntry<'posts'> & {
remarkPluginFrontmatter: {
@ -12,7 +12,7 @@ type Post = CollectionEntry<'posts'> & {
}
const { posts, lang, pinned = false } = Astro.props
const isTag = isTagPage(Astro.url.pathname)
const isHome = isHomePage(Astro.url.pathname)
export interface Props {
posts: Post[]
@ -32,14 +32,14 @@ function getPostPath(post: Post) {
{posts.map(post => (
<li
class="mb-5.5"
lg={isTag ? '' : 'mb-10'}
lg={isHome ? 'mb-10' : ''}
>
{/* post title */}
<h3 class="inline">
<a
class="hover:c-primary"
lg={isTag ? '' : 'font-medium text-4.5'}
lg={isHome ? 'font-medium text-4.5' : ''}
href={getPostPath(post)}
transition:name={`post-${post.data.abbrlink || post.id}-${lang}`}
data-disable-transition-on-theme
@ -82,7 +82,7 @@ function getPostPath(post: Post) {
</div>
{/* desktop post description */}
{!isTag && (
{isHome && (
<div
class="heti hidden"
lg="mt-2 block"

View file

@ -36,10 +36,10 @@ function initBackToTop() {
observer = new IntersectionObserver(
([entry]) => {
if (entry.isIntersecting) {
backToTopButton?.classList.add('opacity-0', 'pointer-events-none', 'translate-y-4')
backToTopButton?.classList.add('op-0', 'pointer-events-none', 'translate-y-4')
}
else {
backToTopButton?.classList.remove('opacity-0', 'pointer-events-none', 'translate-y-4')
backToTopButton?.classList.remove('op-0', 'pointer-events-none', 'translate-y-4')
}
},
{

View file

@ -0,0 +1,59 @@
<script>
function setupGithubCards() {
const githubCards = document.querySelectorAll('.gc-container')
if (githubCards.length === 0)
return
githubCards.forEach(async (card) => {
const repo = (card as HTMLElement).dataset.repo
if (!repo)
return
const avatarEl = card.querySelector('.gc-owner-avatar') as HTMLElement
const descEl = card.querySelector('.gc-repo-description') as HTMLElement
const starsEl = card.querySelector('.gc-stars-count') as HTMLElement
const forksEl = card.querySelector('.gc-forks-count') as HTMLElement
const licenseEl = card.querySelector('.gc-license-info') as HTMLElement
try {
const response = await fetch(`https://api.github.com/repos/${repo}`)
if (response.ok) {
const data = await response.json()
if (avatarEl && data.owner?.avatar_url)
avatarEl.style.backgroundImage = `url(${data.owner.avatar_url})`
if (descEl && data.description)
descEl.textContent = data.description
if (starsEl) {
starsEl.textContent = new Intl.NumberFormat('en', {
notation: 'compact',
maximumFractionDigits: 1,
}).format(data.stargazers_count)
}
if (forksEl) {
forksEl.textContent = new Intl.NumberFormat('en', {
notation: 'compact',
maximumFractionDigits: 1,
}).format(data.forks_count)
}
if (licenseEl)
licenseEl.textContent = data.license?.spdx_id || 'No License'
}
else {
if (descEl)
descEl.textContent = 'Loading failed.'
}
}
catch {
console.error(`Failed to fetch ${repo}`)
}
})
}
setupGithubCards()
document.addEventListener('astro:page-load', setupGithubCards)
</script>

View file

@ -3,17 +3,48 @@ title: Markdown 扩展功能
published: 2025-04-25
tags:
- 指南
draft: true
toc: false
lang: zh
abbrlink: markdown-extended-features
---
以下是 Retypeset 主题的 Markdown 扩展功能,包括语法示例与样式效果。
本文介绍 Retypeset 主题支持的 Markdown 扩展功能,包括语法示例与效果展示。
## 图注
使用标准的 Markdown 图像语法 `![alt](src)`,即可自动生成图注。在 `alt` 前添加下划线 `_` 或留空 `alt`,即可隐藏图注。
### 语法
```
![图片描述](./full/or/relative/path/of/image)
![_图片描述](./full/or/relative/path/of/image)
```
### 效果
![图片描述](https://image.radishzz.cc/image/gallery/06.webp)
![_图片描述](https://image.radishzz.cc/image/gallery/06.webp)
## Github 仓库卡片
使用双冒号语法 `::github{repo="owner/repo"}`,即可创建 Github 仓库卡片。在页面加载后,从 GitHub API 中实时获取仓库数据。
### 语法
```
::github{repo="radishzzz/astro-theme-retypeset"}
```
### 效果
::github{repo="radishzzz/astro-theme-retypeset"}
## 提示块
使用容器指令 `:::type` 或 GitHub 语法 `> [!TYPE]`,即可创建提示块。支持以下五种类型:`note``tip``important``warning``caution`
使用三冒号语法 `:::type` 或 GitHub 语法 `> [!TYPE]`,即可创建提示块。支持 `note``tip``important``warning``caution` 五种类型
### 语法
@ -53,22 +84,14 @@ Advises about risks or negative outcomes of certain actions.
This is a note with a custom title.
:::
## 图注
<!-- <details>
<summary>
我有钥匙却无门,有空间却无房间。你能进入却无法离开。我是什么?
</summary>
键盘。
</details>
使用 Markdown 图像语法 `![alt](src)`**且上下均为空行**,即可自动生成图注。在 `alt` 前添加下划线 `_` 或留空 alt即可隐藏图注。
### 显示图注
```
![图片描述](./full/or/relative/path/of/image)
```
### 隐藏图注
```
![_图片描述](./full/or/relative/path/of/image)
![](./full/or/relative/path/of/image)
```
<figure>
<img src="https://image.radishzz.cc/picsmaller/03.webp">
<figcaption text-center="">Node 模块检查器 - 概览</figcaption>
</figure> -->

View file

@ -258,16 +258,4 @@ X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
按下 <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>Delete</kbd> 以结束会话。
大多数<mark>蝾螈</mark>昼伏夜出,以昆虫、蠕虫等小生物为食。
<!-- <details>
<summary>
我有钥匙却无门,有空间却无房间。你能进入却无法离开。我是什么?
</summary>
键盘。
</details>
<figure>
<img src="https://image.radishzz.cc/picsmaller/03.webp">
<figcaption text-center="">Node 模块检查器 - 概览</figcaption>
</figure> -->
大多数<mark>蝾螈</mark>昼伏夜出,以昆虫、蠕虫等小生物为食。

View file

@ -3,14 +3,16 @@ import Button from '@/components/Button.astro'
import Footer from '@/components/Footer.astro'
import Header from '@/components/Header.astro'
import Navbar from '@/components/Navbar.astro'
import GithubCard from '@/components/Widgets/GithubCard.astro'
import PhotoSwipe from '@/components/Widgets/PhotoSwipe.astro'
import Scrollbar from '@/components/Widgets/Scrollbar.astro'
import themeConfig from '@/config'
import Head from '@/layouts/Head.astro'
import { getPageInfo } from '@/utils/page'
import '@/styles/font.css'
import '@/styles/global.css'
import '@/styles/font.css'
import '@/styles/heti.css'
import '@/styles/extend.css'
interface Props {
postTitle?: string
@ -20,7 +22,7 @@ interface Props {
}
const { postTitle, postDescription, postSlug, supportedLangs = [] } = Astro.props
const { isPost } = getPageInfo(Astro.url.pathname)
const { isPost, isAbout } = getPageInfo(Astro.url.pathname)
const fontStyle = themeConfig.global.fontStyle === 'serif' ? 'font-serif' : 'font-sans'
const MarginBottom = isPost && themeConfig.comment?.enabled
? 'mb-10' // Post page with comment system
@ -47,6 +49,7 @@ const MarginBottom = isPost && themeConfig.comment?.enabled
</main>
<Footer />
</div>
<!-- {(isPost || isAbout) && <GithubCard />} -->
<Scrollbar />
<Button supportedLangs={supportedLangs} />
<PhotoSwipe />

View file

@ -0,0 +1,54 @@
import { visit } from 'unist-util-visit'
export function remarkGithubCard() {
return (tree) => {
visit(tree, 'leafDirective', (node) => {
if (node.name !== 'github')
return
const repo = node.attributes?.repo || ''
if (!repo)
return
const [owner, name] = repo.split('/')
if (!owner || !name) {
console.warn(`Invalid GitHub repository format: "${repo}"`)
return
}
node.type = 'html'
node.value = `
<a href="https://github.com/${repo}" class="gc-container" target="_blank" rel="noopener noreferrer" data-repo="${repo}">
<div class="gc-title-bar">
<div class="gc-owner-avatar" style="background-size: cover; background-position: center;" aria-hidden="true"></div>
<span class="gc-repo-title">
<span>${owner}<span class="gc-slash" aria-hidden="true">/</span><strong>${name}</strong></span>
</span>
<svg class="gc-github-icon" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
<path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path>
</svg>
</div>
<p class="gc-repo-description">Loading repository data...</p>
<div class="gc-info-bar">
<svg class="gc-info-icon" height="16" width="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
<path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path>
</svg>
<span class="gc-stars-count" aria-label="Stars count">--</span>
<svg class="gc-info-icon" height="16" width="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
<path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path>
</svg>
<span class="gc-forks-count" aria-label="Forks count">--</span>
<svg class="gc-info-icon" height="16" width="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true">
<path d="M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z"></path>
</svg>
<span class="gc-license-info" aria-label="License">--</span>
</div>
</a>
`
delete node.name
delete node.attributes
delete node.children
})
}
}

139
src/styles/extend.css Normal file
View file

@ -0,0 +1,139 @@
/*!
* Markdown Extended Features
* 1. Admonition
* 2. GitHub Card
*/
/* Admonition */
.admonition-title {
--at-apply: 'flex items-center font-semibold';
}
.admonition-title::before {
--at-apply: 'inline-block aspect-square w-4 mr-2 align-text-bottom content-[""]';
}
/* Note */
.admonition-note {
--at-apply: 'border-note';
}
.admonition-note .admonition-title {
--at-apply: 'c-note';
}
.admonition-note .admonition-title::before {
--at-apply: 'bg-note';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E");
}
/* Tip */
.admonition-tip {
--at-apply: 'border-tip';
}
.admonition-tip .admonition-title {
--at-apply: 'c-tip';
}
.admonition-tip .admonition-title::before {
--at-apply: 'bg-tip';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'%3E%3C/path%3E%3C/svg%3E");
}
/* Important */
.admonition-important {
--at-apply: 'border-important';
}
.admonition-important .admonition-title {
--at-apply: 'c-important';
}
.admonition-important .admonition-title::before {
--at-apply: 'bg-important';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E");
}
/* Warning */
.admonition-warning {
--at-apply: 'border-warning';
}
.admonition-warning .admonition-title {
--at-apply: 'c-warning';
}
.admonition-warning .admonition-title::before {
--at-apply: 'bg-warning';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E");
}
/* Caution */
.admonition-caution {
--at-apply: 'border-caution';
}
.admonition-caution .admonition-title {
--at-apply: 'c-caution';
}
.admonition-caution .admonition-title::before {
--at-apply: 'bg-caution';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E");
}
/* GitHub Card >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
.gc-container {
--at-apply: 'block mt-3 mb-6 rounded border border-solid border-secondary/5 bg-secondary/5 px-5 py-4';
--at-apply: 'transition-colors lg:(px-6 py-5) hover:(bg-secondary/10 c-primary)';
}
/* Title Bar */
.gc-title-bar {
--at-apply: 'flex items-center gap-3';
}
.gc-owner-avatar {
--at-apply: 'flex-shrink-0 aspect-square w-5.5 rounded-full bg-secondary/20';
}
.gc-repo-title {
--at-apply: 'flex items-center text-lg leading-normal';
}
.gc-slash {
--at-apply: 'mx-2 op-40';
}
.gc-github-icon {
--at-apply: 'flex-shrink-0 w-6 ml-auto';
}
/* Repo Description */
.gc-repo-description {
--at-apply: 'mt-2.8 mb-4';
}
/* Info Bar */
.gc-info-bar {
--at-apply: 'flex items-center gap-2 text-sm';
}
.gc-info-icon {
--at-apply: 'flex-shrink-0';
}
.gc-stars-count {
--at-apply: 'mr-4';
}
.gc-forks-count {
--at-apply: 'mr-5';
}
.gc-license-info {
--at-apply: 'ml-0.5 mr-4';
}
/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
/* :where(details) {
--at-apply: 'my-4 px-4 py-3 border border-solid border-secondary/25 rounded cursor-pointer';
}
details :where(summary) {
--at-apply: 'cursor-pointer';
}
details[open] :where(summary) {
--at-apply: 'border-b border-solid border-secondary/25 mb-3 pb-3';
} */
/* details :where(summary) {
list-style: none;
}
details summary::-webkit-details-marker {
display: none;
}
details summary::marker {
content: '';
} */

View file

@ -1,7 +1,8 @@
/*!
* Project: Heti
* URL: https://github.com/sivan/heti
* Author: Sivan [sun.sivan@gmail.com]
* Source: https://unpkg.com/heti/umd/heti.min.css
* Customized for Astro Theme Retypeset
*/
/* Global Styles */
@ -12,23 +13,17 @@
--at-apply: 'tracking-0';
}
/* Article Title */
/* Customized Post Title */
.heti .post-title {
--at-apply: 'mb-2 text-8.6 leading-12 font-bold c-primary lg:text-9';
}
/* Links */
.heti :where(a) {
--at-apply: 'break-all font-medium tracking-0 underline decoration-secondary/40 underline-0.075em underline-offset-0.14em';
--at-apply: 'transition-colors hover:(c-primary decoration-secondary/80) lg:underline-0.1em';
/* KaTeX Formula Overflow Fix */
.heti .katex-display {
--at-apply: 'overflow-x-auto overflow-y-hidden scrollbar-hidden';
}
/* Paragraphs */
.heti :where(p) {
--at-apply: 'mt-3 mb-6 text-justify text-pretty';
}
.heti :where(p:not(:lang(zh)):not(:lang(ja)):not(:lang(ko))) {
--at-apply: 'text-start';
.heti .katex-display::-webkit-scrollbar {
display: none;
}
/* Headings */
@ -76,6 +71,20 @@
--at-apply: 'mt-3';
}
/* Paragraphs */
.heti :where(p) {
--at-apply: 'mt-3 mb-6 text-justify text-pretty';
}
.heti :where(p:not(:lang(zh)):not(:lang(ja)):not(:lang(ko))) {
--at-apply: 'text-start';
}
/* Links */
.heti :where(a:not(.gc-container)) {
--at-apply: 'break-all font-medium tracking-0 underline decoration-secondary/40 underline-0.075em underline-offset-0.14em';
--at-apply: 'transition-colors hover:(c-primary decoration-secondary/80) lg:underline-0.1em';
}
/* Images */
.heti :where(img) {
--at-apply: 'mx-auto cursor-zoom-in force-gpu';
@ -83,7 +92,7 @@
.heti :where(figure) {
--at-apply: 'mx-auto mt-3 mb-6';
}
.heti figure > :where(figcaption) {
.heti :where(figcaption) {
--at-apply: 'text-center text-sm mt-3 text-secondary/80';
}
@ -103,6 +112,9 @@ html.dark .heti pre :where(span) {
--at-apply: 'px-0.4em py-0.2em text-0.85em tracking-0 whitespace-pre-wrap rounded bg-secondary/5 border border-solid border-secondary/5';
counter-reset: line;
}
.heti :where(code:is(:lang(zh), :lang(ja), :lang(ko))) {
--at-apply: 'break-all';
}
.heti :where(code) span.line {
--at-apply: 'relative pl-8';
}
@ -207,7 +219,7 @@ html.dark .heti :where(u) {
/* Keyboard Input */
.heti :where(kbd) {
--at-apply: 'inline-block px-0.4em py-0.3em text-0.85em font-bold leading-none tracking-0 whitespace-nowrap';
--at-apply: 'rounded border border-solid border-secondary/25 text-secondary';
--at-apply: 'rounded border border-solid border-secondary/40 text-secondary';
}
/* Highlighted Text */
@ -260,101 +272,3 @@ html.dark .heti sup a:target {
--at-apply: 'mt-6 mb-3 border-t-2 border-secondary/5';
}
/* KaTeX Mathematical */
.heti .katex-display {
--at-apply: 'block max-w-full overflow-x-auto overflow-y-hidden scrollbar-hidden';
}
.heti .katex-display::-webkit-scrollbar {
display: none;
}
/* Markdown Extended Features >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
.heti .admonition-title {
--at-apply: 'flex items-center font-semibold';
}
.heti .admonition-title::before {
--at-apply: 'inline-block aspect-square w-4 mr-2 align-text-bottom content-[""]';
}
/* Note */
.heti .admonition-note {
--at-apply: 'border-note';
}
.heti .admonition-note .admonition-title {
--at-apply: 'c-note';
}
.heti .admonition-note .admonition-title::before {
--at-apply: 'bg-note';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E");
}
/* Tip */
.heti .admonition-tip {
--at-apply: 'border-tip';
}
.heti .admonition-tip .admonition-title {
--at-apply: 'c-tip';
}
.heti .admonition-tip .admonition-title::before {
--at-apply: 'bg-tip';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'%3E%3C/path%3E%3C/svg%3E");
}
/* Important */
.heti .admonition-important {
--at-apply: 'border-important';
}
.heti .admonition-important .admonition-title {
--at-apply: 'c-important';
}
.heti .admonition-important .admonition-title::before {
--at-apply: 'bg-important';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E");
}
/* Warning */
.heti .admonition-warning {
--at-apply: 'border-warning';
}
.heti .admonition-warning .admonition-title {
--at-apply: 'c-warning';
}
.heti .admonition-warning .admonition-title::before {
--at-apply: 'bg-warning';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E");
}
/* Caution */
.heti .admonition-caution {
--at-apply: 'border-caution';
}
.heti .admonition-caution .admonition-title {
--at-apply: 'c-caution';
}
.heti .admonition-caution .admonition-title::before {
--at-apply: 'bg-caution';
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z'%3E%3C/path%3E%3C/svg%3E");
}
/* .heti :where(details) {
--at-apply: 'my-4 px-4 py-3 border border-solid border-secondary/25 rounded cursor-pointer';
}
.heti details :where(summary) {
--at-apply: 'cursor-pointer';
}
.heti details[open] :where(summary) {
--at-apply: 'border-b border-solid border-secondary/25 mb-3 pb-3';
} */
/* .heti details :where(summary) {
list-style: none;
}
.heti details summary::-webkit-details-marker {
display: none;
}
.heti details summary::marker {
content: '';
} */
/* 为所有admonition-title添加基础样式 */