增强Fuwari的代码块功能
580 字
3 分钟
增强Fuwari的代码块功能
使用现在最新的🍥Fuwari博客已经引入了
astro-expressive-code包,不需要额外安装了,直接使用就完事了折叠与行数都已经配置好了,
@expressive-code/plugin-collapsible-sections与@expressive-code/plugin-line-numbers不用额外安装
使用格式方法
标题
console.log("Line 1");console.log("Line 2");let a = 1;let b = 2;高亮指定行
console.log("Line 1");console.log("Line 2");let a = 1;let b = 2;let c = 3;let d = 4;let e = 5;let f = 6;let g = 7;console.log(a + b);let h = 4;let i = 5;let j = 6;let k = 7;let l = 7;新增/删除指定行
console.log("Line 1");console.log("Line 2");let a = 1;let b = 2;let c = 3;let d = 4;let e = 5;let f = 6;let g = 7;console.log(a + b);let h = 4;let i = 5;let j = 6;let k = 7;let l = 7;高亮块
```js "a + b" del="let g = 7"//{2,4-5}高亮 ins={3,7}新增 del={6}删除console.log("Line 1");console.log("Line 2");let a = 1;let b = 2;let c = 3;let d = 4;let e = 5;let f = 6;let g = 7;console.log(a + b);let h = 4;let i = 5;let j = 6;let k = 7;let l = 7;折叠代码/代码行数
//collapse={8-13, 15-16} 折叠 startLineNumber=7console.log("Line 1");console.log("Line 2");let a = 1;let b = 2;let c = 3;let d = 4;6 collapsed lines
let e = 5;let f = 6;let g = 7;console.log(a + b);let h = 4;let i = 5;let j = 6;2 collapsed lines
let k = 7;let l = 7;代码块标识
这是一个Expressive Code的插件,增加代码块的语言标识图标
# 使用 npmnpm install @xt0rted/expressive-code-file-icons --save
# 如果用 pnpm(从报错中的 .pnpm 来看可能是你的包管理器)pnpm add @xt0rted/expressive-code-file-icons这是博主的设置,修改样式后需删除项目里的📁.astro,并重启项目才能看到效果
import { pluginFileIcons } from "@xt0rted/expressive-code-file-icons";
export default defineConfig({ // ... integrations: [ // ... expressiveCode({ themes: ["catppuccin-frappe", "light-plus"], plugins: [pluginCollapsibleSections(), pluginLineNumbers(), pluginFileIcons({ iconClass: "text-4 w-5 inline mr-1 mb-1", titleClass: "" }) ], }), ]})提醒
不过有些标识图标不适用双主题,比如 Astro 下面是博主的临时解决办法(针对Astro)
onMount(() => { mode = getStoredTheme(); updateAstroSvg(mode); const darkModePreference = window.matchMedia("(prefers-color-scheme: dark)"); const changeThemeWhenSchemeChanged: Parameters< typeof darkModePreference.addEventListener<"change"> >[1] = (_e) => { applyThemeToDocument(mode); }; darkModePreference.addEventListener("change", changeThemeWhenSchemeChanged); return () => { darkModePreference.removeEventListener( "change", changeThemeWhenSchemeChanged, ); };});
function switchScheme(newMode: LIGHT_DARK_MODE) { mode = newMode; setTheme(newMode); updateAstroSvg(mode);}function updateAstroSvg(mode: LIGHT_DARK_MODE) { const spans = document.querySelectorAll('figcaption > .title') spans.forEach(span => { if (!span || !span.innerHTML.includes('astro')) return
const paths = span.querySelectorAll('svg > path') if (mode === DARK_MODE){ paths[1].setAttribute('fill', '#fff') } else{ paths[1].setAttribute('fill', '#000') } })}支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
增强Fuwari的代码块功能
https://firefly.cuteleaf.cn/posts/增强fuwari的代码块功能/ 相关文章 智能推荐
1
增加 FUwari 代码块双主题
前端 新增md主题颜色变动
2
FUwari 二级导航
前端 2025-10-24
3
Fuwari 部署指南(教程)
前端 该文章为 Fuwari 部署指南,作者因静态站点方案优势选择基于 Astro 框架和 fuwari 主题的静态博客。指南先介绍 Astro 及 fuwari 特性,接着阐述搭建需求,详细说明本地部署、博客配置(基本配置与创建文章)、部署上线(准备工作及连接 Cloudflare 流程)步骤,最后提及在src/components/Footer.astro添加 ICP 备案和运行时间的个性化操作,并给出相关参考链接。
4
Fuwari链接卡片
前端 2025-09-22
5
Fuwari链接外部跳转
前端 网站内的链接点击直接新标签页打开
随机文章 随机推荐