diff --git a/package.json b/package.json index a594fec776bf1..d890a5cfae5e8 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "fast-glob": "^3.2.11", "github-slugger": "^1.5.0", "gray-matter": "^4.0.3", + "hast-util-from-html": "^1.0.0", "hast-util-to-string": "^2.0.0", "hastscript": "^7.0.2", "html-escaper": "^3.0.3", @@ -70,6 +71,7 @@ "prettier": "^2.8.1", "prettier-plugin-astro": "^0.7.0", "prompts": "^2.4.2", + "rehype": "^12.0.1", "remark": "^14.0.2", "remark-custom-heading-id": "^1.0.0", "remark-directive": "^2.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3aaa704da1b8..67c45da517671 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,6 +32,7 @@ specifiers: fast-glob: ^3.2.11 github-slugger: ^1.5.0 gray-matter: ^4.0.3 + hast-util-from-html: ^1.0.0 hast-util-to-string: ^2.0.0 hastscript: ^7.0.2 html-escaper: ^3.0.3 @@ -51,6 +52,7 @@ specifiers: prettier: ^2.8.1 prettier-plugin-astro: ^0.7.0 prompts: ^2.4.2 + rehype: ^12.0.1 rehype-autolink-headings: ^6.1.1 rehype-slug: ^5.0.1 remark: ^14.0.2 @@ -109,6 +111,7 @@ devDependencies: fast-glob: 3.2.11 github-slugger: 1.5.0 gray-matter: 4.0.3 + hast-util-from-html: 1.0.0 hast-util-to-string: 2.0.0 hastscript: 7.0.2 html-escaper: 3.0.3 @@ -126,6 +129,7 @@ devDependencies: prettier: 2.8.1 prettier-plugin-astro: 0.7.0 prompts: 2.4.2 + rehype: 12.0.1 remark: 14.0.2 remark-custom-heading-id: 1.0.0 remark-directive: 2.0.1 @@ -2930,6 +2934,15 @@ packages: web-namespaces: 2.0.1 dev: true + /hast-util-from-html/1.0.0: + resolution: {integrity: sha512-tXYPhk28aMtDjGb4xNDaxtGKqlyZAEPGjN12jPCjczWppdLSrG/0r604a3FMvrd+9nV1HclILQiVqMnuPxN0WQ==} + dependencies: + '@types/hast': 2.3.4 + hast-util-from-parse5: 7.1.0 + parse5: 7.1.2 + vfile: 5.3.4 + dev: true + /hast-util-from-parse5/7.1.0: resolution: {integrity: sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==} dependencies: @@ -4216,6 +4229,12 @@ packages: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} dev: true + /parse5/7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.4.0 + dev: true + /path-browserify/1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: true diff --git a/src/components/FileTree.astro b/src/components/FileTree.astro new file mode 100644 index 0000000000000..278e48b796490 --- /dev/null +++ b/src/components/FileTree.astro @@ -0,0 +1,135 @@ +--- +import { useTranslations } from '../i18n/util'; +import { fileTreeProcessor } from './internal/rehype-file-tree'; + +const content = await Astro.slots.render('default'); +if (!/^\s*