这篇文章专门测试 File Tree 指令。这里使用当前 Astro 博客支持的 file-tree 代码块语法。
当前实现支持内联 JSON、YAML、TOML、缩进文本树、文章相对资源文件、path 构建时扫描,以及 level、folderSlash、ignoreList、highlightList、name、format 这些参数。
YAML 内联数据
源码:
```file-tree {level=1 folderSlash=true highlightList="app.ts,Button.astro"}- name: src type: dir children: - name: app.ts type: file - name: components type: dir children: - name: Button.astro type: file - name: Card.astro type: file- name: package.json type: file```效果:
- app.ts
- Button.astro
- Card.astro
- package.json
JSON 内联数据
源码:
```file-tree {level=-1 folderSlash=true}[ { "name": "content", "type": "dir", "children": [ { "name": "blog", "type": "dir", "children": [ { "name": "file-tree-test", "type": "dir", "children": [{ "name": "index.md", "type": "file" }] } ] } ] }, { "name": "astro.config.mjs", "type": "file" }]```效果:
- index.md
- astro.config.mjs
YAML 资源文件
源码:
```file-tree {file="./project-tree.yaml" level=1 folderSlash=true highlightList="Navigation.astro"}```效果:
- index.ts
- api.ts
- AppShell.astro
- Navigation.astro
- README.md
TOML 资源文件
源码:
```file-tree {file="./release-tree.toml" level=-1 folderSlash=true highlightList="release/dist/_astro/article.js"}```效果:
- index.html
- article.js
- wrangler.toml
缩进文本树
源码:
```file-tree {level=2 folderSlash=true highlightList="src/plugins/remark-file-tree.ts"}src/ plugins/ remark-file-tree.ts remark-gallery.ts scripts/ article.ts styles/ article.cssastro.config.mjs```效果:
- remark-file-tree.ts
- remark-gallery.ts
- article.ts
- article.css
- astro.config.mjs
树形字符输入
源码:
```file-tree {level=1 folderSlash=true}.├── public/│ ├── favicon.svg│ └── robots.txt└── src/ ├── content/ │ └── blog/ └── pages/ └── index.astro```效果:
- favicon.svg
- robots.txt
- index.astro
目录扫描模式
源码:
```file-tree {path="src/plugins" level=0 folderSlash=true name="{path}" highlightList="remark-file-tree.ts"}.```效果:
- mermaid-ssr.ts
- rehype-pangu.ts
- rehype-responsive-images.ts
- remark-admonition.ts
- remark-bilibili.ts
- remark-code-title.ts
- remark-echarts.ts
- remark-file-tree.ts
- remark-footnotes.ts
- remark-gallery.ts
- remark-mermaid.ts
- remark-music.ts
- remark-tabs.ts
- remark-timeline.ts
忽略列表
源码:
```file-tree {path="src/plugins" level=-1 folderSlash=true name="plugins" ignoreList="rehype-pangu.ts,remark-gallery.ts"}.```效果:
- mermaid-ssr.ts
- rehype-responsive-images.ts
- remark-admonition.ts
- remark-bilibili.ts
- remark-code-title.ts
- remark-echarts.ts
- remark-file-tree.ts
- remark-footnotes.ts
- remark-mermaid.ts
- remark-music.ts
- remark-tabs.ts
- remark-timeline.ts
默认根目录扫描
不写内容也不写 path 时,默认扫描项目根目录;内置忽略 .git、.astro、dist、node_modules 等目录。
源码:
```file-tree {level=0 folderSlash=true highlightList="src"}```效果:
- deploy.yml
- CONTRIBUTING.md
- pull_request_template.md
- admonition.md
- bilibili.md
- code-title.md
- echarts.md
- file-tree.md
- footnotes.md
- gallery.md
- mermaid.md
- music.md
- pangu.md
- README.md
- responsive-images.md
- tabs.md
- timeline.md
- DEPLOYMENT.md
- img.js
- neodb.json
- avatar-ifoyoo.jpg
- dota-mods-installer.webm
- ssr-cs.webm
- ygcs.webm
- _headers
- _redirects
- android-chrome-192x192.png
- android-chrome-512x512.png
- apple-touch-icon.png
- browserconfig.xml
- favicon-16x16.png
- favicon-32x32.png
- favicon.ico
- favicon.svg
- mstile-150x150.png
- placeholder.html
- robots.txt
- safari-pinned-tab.svg
- site.webmanifest
- analyze-build.mjs
- check-links.mjs
- check-site.mjs
- neodb-img-proxy-plugin.mjs
- new-post.mjs
- optimize-images.mjs
- sync-neodb.mjs
- ArticleMeta.astro
- BackToTop.astro
- ErrorFallback.astro
- PageActions.astro
- SolarTermIcon.astro
- 2015.jpg
- index.md
- index.md
- index.md
- 1045509917.jpg
- 1641102343.jpg
- 1727044863.jpg
- 2036412158.jpg
- 2836581302.jpg
- 2865386914.jpg
- 2870361217.jpg
- 2976707149.jpg
- 3048387243.jpg
- 3956944561.jpg
- 3961045261.jpg
- 4079498515.jpg
- 934698395.jpg
- index.md
- 1289579982.jpg
- index.md
- 1084735437.png
- 1574698660.png
- 1779943386.png
- index.md
- 1435145810.png
- 2317891603.png
- index.md
- index.md
- index.md
- index.md
- index.md
- index.md
- index.md
- isee16-jd.jpg
- isee16-panda.jpg
- isee16.jpg
- panda.jpg
- bye-y480.jpg
- index.md
- y480bj.jpg
- 1002763632.jpg
- 219035228.jpg
- 2805932074.jpg
- 3748427137.jpg
- 953412562.jpg
- index.md
- challenger300.jpg
- index.md
- qixingqb.jpg
- qixingqb1.jpg
- qixingqb2.jpg
- t3.jpg
- xingze.jpg
- index.md
- CloudXNSdrdc.jpg
- CloudXNSjk.jpg
- CloudXNSjk1.jpg
- CloudXNSjk2.jpg
- CloudXNSjllx.jpg
- CloudXNSjx.jpg
- CloudXNSwjg.jpg
- index.md
- ak47.jpg
- csgo.jpg
- index.md
- skin-changer.jpg
- skinchanger.jpg
- index.md
- 1138044468.jpg
- 1310163206.jpg
- 2179408175.jpg
- 2855228556.jpg
- 4164473875.jpg
- 860879479.jpg
- index.md
- 2855228556.jpg
- index.md
- bandwagon-cp.png
- firefox-zh.png
- index.md
- ketboard-layout.png
- linuxmint-debian.png
- locales.png
- reloadevery.png
- vnc-lm.png
- vnc-password.png
- vnc-view.png
- vnc-zh.png
- xstartup.png
- 1829243740.jpg
- 2727721127.jpg
- index.md
- index.md
- index.md
- AcceptTransfer.png
- AuthorizationCode.png
- cartcontents.png
- ConfirmTransfer0.png
- ConfirmTransfer1.png
- ConfirmTransfer2.png
- DomianLockOff.png
- GetAuthorizationCode.png
- godaddy-transfe-out.png
- index.md
- payment0.png
- payment1.png
- transfer0.png
- transfer1.png
- TransferSuccess.png
- dota-mods-installer.gif
- dota-mods-installer.jpg
- index.md
- sf.jpg
- ti7.jpg
- index.md
- category-share.toml
- dynamic-option.js
- index.md
- monthly-visits.yaml
- index.md
- project-tree.yaml
- release-tree.toml
- airplus.jpg
- filco87bg.jpg
- filco87poker2.jpg
- filcobm.jpg
- filcock1.jpg
- filcock2.jpg
- filcodk.jpg
- filcohz.jpg
- filcojp.jpg
- filcojpbm.jpg
- filcoqjf.jpg
- filcoqz.jpg
- filcozm.jpg
- index.md
- qipashu.jpg
- fzchiji.jpg
- fzkx.jpg
- fzkx1.jpg
- fzkx2.jpg
- fzkx3.jpg
- index.md
- index.md
- index.md
- index.md
- letter.png
- index.md
- pay-banwagong.png
- trace-banwagonhost.png
- generate-placeholders.html
- index.md
- ph-1.jpg
- ph-10.jpg
- ph-11.jpg
- ph-12.jpg
- ph-2.jpg
- ph-3.jpg
- ph-4.jpg
- ph-5.jpg
- ph-6.jpg
- ph-7.jpg
- ph-8.jpg
- ph-9.jpg
- placeholder-portrait.svg
- placeholder-square.svg
- placeholder-standard.svg
- placeholder-wide.svg
- index.md
- index.md
- Explore-GitHub-Actions.png
- index.md
- index.md
- index.md
- index.md
- id_rsa.pub.png
- index.md
- pages.png
- etc_sudoers.jpg
- git-vps.jpg
- index.md
- gulp.png
- index.md
- ysh.png
- ysq.png
- index.md
- posts_screenshot_after.png
- posts_screenshot.png
- urlname.png
- index.md
- 1607363620.jpg
- 3880827161.jpg
- index.md
- index.md
- dd.jpg
- index.md
- jd_autobuy.gif
- jd-f12.jpg
- jd-s.jpg
- p20-pro.jpg
- suipai.jpg
- index.md
- index.md
- 1137463035.jpg
- 1390459956.jpg
- 1395991857.jpg
- 1565537173.jpg
- 1775081704.jpg
- 1895240175.jpg
- 2057800793.jpg
- 2351726102.jpg
- 2945289887.jpg
- 502489299.jpg
- 524199178.jpg
- 660361438.jpg
- 768281243.jpg
- index.md
- glass.jpg
- index.md
- jiancha.jpg
- juhuagouqi.jpg
- shanjiao.jpg
- shuhouyongyao.jpg
- shuixiang1.jpg
- yaoshui.jpg
- zhuyishixiang.jpg
- zhuyisx.png
- index.md
- cs-dog.jpg
- index.md
- jiazhao.jpg
- index.md
- index.md
- amazeuimug.jpg
- index.md
- s1bg.jpg
- s1bm.jpg
- s1dl.jpg
- s1test.jpg
- s1zm.jpg
- index.md
- gpro.jpg
- index.md
- index.md
- index.md
- time.jpeg
- index.md
- index.md
- index.md
- 4389ml0.jpg
- 4389ml1.jpg
- 4389ml2.jpg
- 4389ml3.jpg
- azwc.jpg
- csxs.jpg
- index.md
- jd-mql.jpg
- luntaiaz.jpg
- nwzqb.jpg
- wlt0.jpg
- wlt1.jpg
- wlt2.jpg
- wzwx.jpg
- index.md
- acrosvm-plan.jpg
- ahm4.2.jpg
- cpu-info.jpg
- free-m.jpg
- index.md
- io.jpg
- sulv.jpg
- index.md
- kiwiVM.jpg
- index.md
- index.md
- index.md
- netgear0.jpg
- netgear1.jpg
- netgear3.jpg
- netgear4.jpg
- netgear5.jpg
- netgear6.jpg
- netgear7.jpg
- netgear8.jpg
- index.md
- 1811074775.jpg
- 1896226885.jpg
- 2839993108.jpg
- 343016645.jpg
- 652436616.jpg
- index.md
- index.md
- jd-omen3.jpg
- omen3_0.jpg
- omen3_1.jpg
- omen3_2.jpg
- omen3_3.jpg
- omen3_4.jpg
- omen3_5.jpg
- index.md
- 2693143277.jpg
- index.md
- index.md
- index.md
- oldcontrolpanel.jpg
- oldpage.jpg
- index.md
- index.md
- guoyuan.jpg
- guoyuan1.jpg
- index.md
- juzi.jpg
- juzi1.jpg
- kaizhai.jpg
- kaizhai1.jpg
- shoucheng.jpg
- yangtao.jpg
- zhuangche.jpg
- index.md
- prism-languages.png
- prism-plugins.png
- prism-theme.png
- index.md
- index.md
- index.md
- index.md
- Another-Redis-Desktop-Manager.png
- index.md
- redis.jpg
- 1795991079.jpg
- 2689783238.jpg
- 2759939440.jpg
- 3762873064.jpg
- 4036187375.jpg
- 584712105.jpg
- index.md
- index.md
- restart.jpg
- index.md
- index.md
- index.md
- index.md
- index.md
- index.md
- filco87poker2.jpg
- index.md
- nll.jpg
- nll1.jpg
- nll2.jpg
- nll3.jpg
- yljp.jpg
- events.yaml
- index.md
- index.md
- index.md
- bbraz.png
- index.md
- mgbbr.jpg
- ygcs.gif
- index.md
- ssr-cs.gif
- index.md
- index.md
- Reverse_proxy.webp
- vaultwarden-kz.webp
- vaultwarden-login.webp
- vaultwarden-report.webp
- vaultwarden-tools.webp
- index.md
- index.md
- index.md
- index.md
- index.md
- index.md
- index.md
- index.md
- 1141894393.jpg
- 2350871388.jpg
- 2558022167.jpg
- 2821632953.jpg
- 3877173048.jpg
- 4134275867.jpg
- index.md
- index.md
- index.md
- zsfz1.jpg
- zsfz2.jpg
- en.json
- zh-CN.json
- index.ts
- types.ts
- utils.ts
- expressive-code-processor.mjs
- BaseLayout.astro
- article-archive.ts
- neodb-cover.ts
- posts.ts
- solar-terms.ts
- [cat].astro
- index.astro
- [tag].astro
- [...slug].astro
- 404.astro
- about.astro
- archives.astro
- categories.astro
- fonts.css.ts
- index.astro
- rss.xml.ts
- search-index.json.ts
- search.astro
- status.astro
- tags.astro
- mermaid-ssr.ts
- rehype-pangu.ts
- rehype-responsive-images.ts
- remark-admonition.ts
- remark-bilibili.ts
- remark-code-title.ts
- remark-echarts.ts
- remark-file-tree.ts
- remark-footnotes.ts
- remark-gallery.ts
- remark-mermaid.ts
- remark-music.ts
- remark-tabs.ts
- remark-timeline.ts
- article-gallery.ts
- article-music.ts
- article.ts
- echarts-lite.ts
- home-avatar-eyes.ts
- home-clock.ts
- home-neodb-rail.ts
- neodb-page.ts
- search.ts
- site.ts
- vps-status.ts
- web-vitals.ts
- quiet-light.json
- about.css
- animations.css
- archive.css
- article-bundle.css
- article-polish.css
- article-precision.css
- article.css
- base.css
- components.css
- footer.css
- footnotes.css
- global.css
- header.css
- home.css
- mobile-quiet.css
- mobile-redesign.css
- neodb.css
- pages.css
- precision.css
- responsive.css
- status.css
- taxonomy.css
- tokens.css
- transitions.css
- consts.ts
- content.config.ts
- env.d.ts
- utils.ts
- .env.example
- .gitignore
- .gitmessage
- .nvmrc
- AGENTS.md
- astro.config.mjs
- bun.lock
- package.json
- README.md
- tsconfig.json
评论
GitHub 登录后可评论。
评论区会在滚动到这里时自动加载。