当前为广习习的技术博客的博客内容。查看全部
  • miku1
    前期调研 ​参考已有的项目 ​实际上这样想法已经有人实现,并且已封装成简单配置即可使用的依赖,比如 giscus。但是分析了相关功能,其中一个功能 可以不为文章创建 discussion,等到有人评论再创建 discussion 让我感到疑惑。因为使用的是静态网页,并且想要创建 github discussion 是需要 discussion id 和 access_token 去请求 API 的。ID 不可能说有人创建评论就重新构建静态网页然后重新写入;token 也不建议保存在静态网页,因为不论怎么混淆也是能找到的。当然 gisgus 也不是把 token 保存在前端,而是走他们自己的 github bot 帮你创建评论,而它讨论的 API 是可以重复调用的,我有提 重复创建讨论 询问了一下,确实理解是设计需要。因为不希望自己项目的评论区随地大小便,所以我决定自己写评论模块。查看 github graphql 和 oauth api ​oauth api ​由于是静态网页,纯前端项目,我开始寻找有没有无需后端就能通过 oauth 并且 github 支持的协议。当然一开始找到了,是…
  • miku
    时间线 ​2月,离开实习公司,在杭州待了2个月左右,准备春招面试。4月,春招结尾,收到了1份offer。由于实习公司的经历+春招的打击,我对自己不是很自信,决定提前实习了解一下这个公司。5月,劳动节假期过后开始实习6月,请假一周,回学校,毕业设计答辩,和朋友聚了聚,和家里见了面。7月,入职,试用期。12月,收到试用通过结果。总结 ​代码和业务在一起才有价值。公司的大哥在对需求的时候常说的一句:没有什么是做不到的,无非是多花点时间罢了,等我排期。review我的代码常说的一句:不要想的那么复杂,接口功能拆的更细分点,不然你后面怎么维护?
  • miku
    环境 ​注意环境是ie8,常用的现代浏览器的语法是没有的,比如:let,const(es6开始支持)。只能使用 varpromise,async/await。转而使用function callbackvar存在的问题 ​js// 正常写法 for (var i = 0; i < 3; i++) { setTimeout(() => console.log("var i =", i), 0); }但是循环内定义的函数不是马上执行的,当这个函数被调用时,i 已经等于 imgList.length 了。 使用 let 就不会出现这个问题。 根本原因是作用域的问题,var会自动提到全局变量,可以尝试在for循环结束后打印ijsfor (var i = 0; i < 3; i++) { setTimeout(() => console.log("var i =", i), 0); } console.log(i);目前是使用IIFE,创建新的函数作用域,冻结变量。js// IIFE写法 for (var i = 0; i < 3; i++) { (function(…
  • miku
    添加TAG ​文档的元数据可以通过-- --在文档开头标识。类似于:--- title: 如何给文章添加tag并支持被VitePress自带的本地搜索索引 date: 2025-12-10 15:19 author: 广习习 tags: [技术分享, VitePress] ---vitepress 解析 md 转换成 html 的过程可以使用 Layout.vue 来自定义布局。看下面的代码,解析 md 文件的元数据(frontmatter)并使用naive-ui 的 tag 组件显示。这里的文章时间也需要手动更新,而不是根据 git 提交的时间。html<!-- Layout.vue --> <template> <NConfigProvider > <!-- 保留默认主题的布局 --> <DefaultTheme.Layout> <!-- 在标题区域插入更新时间 --> <template #doc-before > <div style="margin-bottom: 30px;"> …
  • miku
    目标是什么 ​这里指的是语法的兼容,目标版本是ie8。我平时语法用到的比如Arrow functions () => {}Optional chaining operator (?.)可以在 语法搜索 查看语法兼容情况开发环境搭建 ​在 win11 系统,目前来说最简单的方法是使用 edge 的 ie兼容模式 ,缺点是不确定使用的是什么版本的。有一个方法可以调出ie的原生软件页面。可以参考 Win11 打开 IE 浏览器 - 简书总结一下:在 edge 允许启用 ie兼容模式创建 vbs 脚本 CreateObject("InternetExplorer.Application").Visible=true打开 ie 浏览器 F12,选择 ie8 仿真模式IE浏览器问题 ​升级win11后,IE调试工具-网络-网络集合代理无法启动,win11 24H2删除了老的依赖,参考链接评论
  • miku
    VitePress运行时API详解 ​本文将详细介绍VitePress提供的运行时API,这些API可以帮助我们更好地控制页面行为和获取站点数据。useData() API ​useData() 是VitePress提供的主要运行时API,可用于访问当前页面的站点、主题和页面数据。它在 .md 和 .vue 文件中都能正常工作:md<script setup> import { useData } from 'vitepress' const { theme, page, frontmatter } = useData() </script> ## 结果 ### 主题数据 <pre>{{ theme }}</pre> ### 页面数据 <pre>{{ page }}</pre> ### 页面Frontmatter <pre>{{ frontmatter }}</pre>实际结果 ​主题数据 ​{ "search": { "provider": "local", "options": {} }…
  • miku
    VitePress中的Markdown扩展功能 ​在使用VitePress搭建博客时,了解其内置的Markdown扩展功能是非常有帮助的。本文将详细介绍一些常用的扩展功能。语法高亮 ​VitePress提供由 Shiki 驱动的语法高亮,还具有行高亮等附加功能:示例代码md```js{4} export default { data () { return { msg: 'Highlighted!' } } } ```Outputjsexport default { data () { return { msg: 'Highlighted!' } } }Custom Containers ​Inputmd::: info This is an info box. ::: ::: tip This is a tip. ::: ::: warning This is a warning. ::: ::: danger This is a dangerous warning. ::: ::: details This is a details block. :::OutputINFOThis…
  • miku
    VitePress使用技巧 ​在这篇文章中,我想分享一些使用VitePress的实用技巧。Markdown扩展功能 ​VitePress提供了丰富的Markdown扩展功能:代码块高亮 ​```js export default { name: "MyComponent", data() { return { msg: "Hello VitePress!" } } } ```自定义容器 ​TIP这是一个提示信息。WARNING这是一个警告信息。代码行高亮 ​```js{4} export default { data() { return { msg: "Highlighted!" } } } ```主题定制 ​VitePress允许你通过CSS变量来定制主题样式,这使得个性化变得非常简单。希望这些技巧对你有帮助!
  • miku
    我的第一篇博客 ​为什么选择VitePress ​VitePress是一个极简的静态站点生成器,它基于Vue 3和Vite,具有以下优点:快速的热更新极小的打包体积优秀的Markdown支持友好的主题定制能力未来规划 ​在未来的博客中,我会分享:前端技术的最新动态Vue.js开发实践性能优化技巧工程化经验希望我的分享对你有所帮助!