缘由
曾经数次更换主题与搭建程序,Hexo、Halo、Typecho 甚至 WordPress,但一直感觉使用其他人的主题不是太自由,并且在更新时十分麻烦,经过了一段时间的学习后,最终还是感觉 Vue
写起来比较顺手,并且感觉洪哥的博客的样式十分舒服,于是,开始基于 VitePress 从零开发一个类似于 Heo 的博客主题。
为什么是 VitePress
其实,在最初立项时,也考虑过使用 Next.js 亦或者 Halo,但是由于 Halo
需要使用服务器,不符合纯静态站点的需求,直接 pass。然后对于 Next.js
的 React
的语法形式来说,还是更熟悉 Vue
开发,于是最终还是选择了 VitePress
。
那为什么不使用 Nuxt.js 呢?一方面是如果想用 Nuxt.js
来全栈开发博客的话,就又要牵扯到数据储存这一块内容了,这又违背了想搞一个静态博客的需求,所以也只能放弃了 ( 绝对不是因为 Nuxt.js 还不太会 ),刚好 VitePress
也是使用的 SSR
,就是所谓的服务端渲染,对于博客类站点来说,SSR
十分重要的,并且相比传统的 SPA
单页面,SSR
对于 SEO
更加友好。
主题效果
可参考本站,如遇到问题请前往 GitHub Issue 提交,若访问 GitHub
遇到问题,也可在本站留言板评论区进行留言。
主题技术栈
- VitePress:基于
Vite
和Vue 3
的静态站点生成器,轻量级、功能强大。 - Vue3:一个渐进式的
JavaScript
框架,用于构建用户界面和单页面应用程序。 - Pinia:
Vue 3
的官方状态管理库,比Vuex
更加易用。 - Sass:一种强大的
CSS
预处理语言,用于编写样式。
主题部分样式参考自 HeoBlog,并在此基础上做出了一些小修改。
主题功能
- 明暗切换:支持手动调节和跟随当前系统模式。
- 胶囊音乐:使用 MetingJS 实现,支持指定歌单播放。
- 评论:支持多种评论系统( 大概 )。
- 懒加载:文章页内的图片与友链页的图片均采用懒加载。
- 右键菜单:全站自定义右键菜单,支持部分常用功能,其实就是为了统一主题样式。
- 编不出来了
todo
暂无
关于使用
本站主题在 GitHub
开源,欢迎各位大佬贡献代码,别忘了 Star 哦 ~
使用前请先查看 主题文档
开源许可协议
本项目由 @imsyy 开发,使用 MIT License 开源许可协议进行授权,拷贝、分享或基于此进行创作时请遵守协议内容
MIT License
Copyright (c) 2024 imsyy
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.