LeetCode 344. Reverse String [Easy]
翻转字符串。
Hexo 知识大全。
Hexo 官方网站:Hexo.io
官方 Github 仓库:hexojs/hexo: A fast, simple & powerful blog framework, powered by Node.js.
官方介绍:
A fast, simple & powerful blog framework, powered by Node.js.
快速、简洁且高效的博客框架
Hexo 的历史:About | Hexo
npm install hexo-cli -g
npm install
。这个命令会根据当前目录下的 package.json
文件安装相关的依赖。npm install hexo-deployer-git --save
1 | hexo init myblog |
hexojs/hexo-starter: Hexo Starter site (use npx hexo init myBlog
)
编辑主题的 _config.yml
,修改字段 avatar
, 的url
值设置成头像的链接地址。
其中,头像的链接地址可以是:
1.完整的互联网 URL
2.站点内的地址,例如:
/uploads/avatar.jpg
需要将你的头像图片放置在站点
的 source/uploads/
(可能需要新建uploads目录)/images/avatar.jpg
需要将你的头像图片放置在主题
的 source/images/
目录下。1 | avatar: |
参考:指令 | Hexo
1 | hexo generate |
可简写为:
1 | hexo g |
1 | hexo server |
可简写为:
1 | hexo s |
1 | hexo new [layout] <title> |
示例:
1 | hexo new draft 新文章 |
安装 hexo-generator-sitemap
1 | pnpm i hexo-generator-sitemap |
在 source
文件夹创建 robots.txt
文件,指定sitemap位置,为 swiftype 搜索引擎优化
另外插件貌似有bug,当文章名称中存在 &
的时候,不能正确处理转义的问题,会导致 XML 无法正常格式化。
TODO需要解决。可以考虑贡献代码。
另外,sitemap 中的 priority
,Google 已经明确说明不会参考,所以如果主要目的是给 Google 使用的话,那么可以把这个属性给去掉。
安装hexo-asset-image插件
修改主题的配置:
开启fancybox、fastclick、pace. 都需要相关依赖的支持
waline评论迁移到twikoo - Barney’s Blog
资料:
Atlas 指定数据库名称:
Where do I find my dbname for MongoDB connection string? - Stack Overflow
1 | 'mongodb+srv://<username>:<password>@<cluster_name>.jqzujwt.mongodb.net/<dbname(optional)>?retryWrites=true&w=majority' |
2024-07-10 22:41:42
有广告,弃用。
A lightweight comments widget built on GitHub issues
Github项目页:https://github.com/utterance
walinejs/waline: 💬 A Simple, Safe Comment System
资料:如何在netlify中设置node和npm的版本 - 掘金
使用 Let's Encrypt
获取免费的证书必须保证服务器是自己的才可以。
CDN学习笔记一(CDN是什么?) - Tinywan - 博客园
只有在工信部备过案的域名才能进行CDN加速。可以选择流量计费和流量峰值计费方式。每个用户每个月有10GB的免费流量包。
请问有免费加速 https 网站的 CDN 吗? - V2EX
现在用的是 fancybox
。
https://laravel-china.org/articles/21811这个网站用的图片展示功能很赞,看情况自己实现一下。
NexT的主题设定与配置 - BLUEHEART - CSDN博客
在 hexo s
启动本地服务器模式下,修改主题配置文件是实时生效的,可以实时修改看到效果。
重新安装了 node.js 之后,在博客文件夹执行 hexo new [article name]
时,出现了错误提示,可能是缺少了某些全局模块。
执行了 npm audit fix
解决了。
Markdown 支持 HTML 标签,所以一对尖括号括起来的内容会被当作 HTML 的标签来处理。如果要想表示一对尖括号,需要使用转义的 HTML,即使用 <
表示 <
,使用 >
表示 >
。
Hexo 的分类默认是多级分类。分类 - Hexo 官方文档
1 | categories: |
上面这种会被分类到 [技术, Java] 分类中,Java 分类作为技术分类的一个子分类存在。
如果希望一篇文章同时分到两个顶级分类中,可以这么做:
1 | categories: |
VS Code 支持使用正则表达式进行查找替换。
VS Code 替换时引用分组不是 \1
这种形式,而是 $1
这种形式。如图:
还可以使用VS Code 打开一个文件夹,然后批量查找替换。
有一些插件可以直接根据目录自动生成 categories,比如:
hexo-directory-category(之前使用一直报错)
hexo-auto-category(可能会覆盖所有frontmatter,谨慎使用)
阅读文章向下滚动的时候,顶部或者侧边栏要有持续显示的导航栏。
文章支持图片可以吸引用户,提高表达能力。(参考微信公众号就有题图)
要有推荐内容的能力,包含文章置顶、文章轮播、筛选热门文章的能力。
鼠标移动到标题图上的时候,图片会略微放大,通过交互给用户带来动感
支持多语言,未来可能会把一些热门文章人工翻译为英文内容。但是英文文章和中文文章是独立的两篇文章。
主题在交互层面应该满足基本要求,比如鼠标移动到可点击元素上的时候,对应元素样式要有所变化来体现出来鼠标已经移动到了可点击区域。有些主题鼠标放到导航栏的按钮上完全没有样式变化。
【备注】可以通过标签来定义【热门】【必看】这些推荐内容。缺点是需要人为根据阅读量来标记。
【备注】自定义 404 页面,并提示用户如果有需要可以给站长留言。
在一篇文章的合适位置推荐相关的文章(有关联得,更有可能引起读者兴趣的)。
【备注】给博客起个不同寻常的名字还是能给人耳目一新的感觉的。
文章列表一般有列表式布局和卡片式点阵布局,我觉得点阵式布局更适合小红书、抖音等大型平台,用户可以同事看到很多,然后选自己感兴趣的。对于博客以及内容营销类网站,一般来讲,感觉还是按照顺序排列的会更好的。可能部分主题的网站适合点阵文章列表。
导航栏颜色允许自定义,导航栏透明度允许自定义。
处理分类名称或者 urlname
带有大写的情况时候,sitemap 需要能够生成正确的 url,避免导致重定向从而影响谷歌 SEO。
hexo 很多博客前边带有代码的时候,在摘要中显示的效果是
题目146. LRU 缓存 - 力扣(LeetCode) LRU Cache - LeetCode 思路哈希表 + 双向链表。 题解题解1:基于 Java HashMap 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657…
需要智能判断一下,如果摘要内容是代码,需要考虑一下更好的展示效果。忽略或者缩写,不要显示一串数字。
关于如何选择博客布局的文章:
我该怎样开始设计我的网站? - 学习 Web 开发 | MDN
常见 web 布局都包含什么? - 学习 Web 开发 | MDN
官网Blog 页面优化( Lesson 1)-博客版面的设计布局 - Leizi Digital
吐槽
2024-07-11 23:12:39
发现 ButterFly 这个主题,连导航栏居中这么基础的功能都需要自定义 CSS 来解决,不得不说,使用现成的主题,如果自己对于外观有需求,也还是比较麻烦。
Ailln/awesome-hexo-theme: 🌟排名前 10 的 Hexo 主题 | Top 10 Hexo theme
Hexo 好看的主题推荐_hexo好看呢的主题-CSDN博客
Star:7.1k
贡献者:66人
优点
缺点
front-matter
中手动设置数值来操控排序,方法不优雅。资料:
Hexo’s Fluid 主题私人定制(持续更新) - Eren の 宇宙船
汪汪江的窝【改造出来了卡片式列表】
next-theme/hexo-theme-next: 🎉 Elegant and powerful theme for Hexo.【Next v8.x,2.4k】
theme-next/hexo-theme-next: Elegant and powerful theme for Hexo.【8.1k,v7.x 版本】
iissnan/hexo-theme-next: Elegant theme for Hexo.【15.9k Star,旧仓库】
优点:
缺点
1 | pnpm i hexo-theme-next |
这个主题有四种布局风格:
Muse 风格
文章右侧默认显示的是目录,可以在目录和站点概览之间进行切换。
Mist 风格
和 Muse 一样,右侧目录和网站概览。
Pisces
左侧目录和概览
Gemini
左侧目录和概览
置顶功能:
通过修改 Front Matter 中的 sticky 来实现。
另外发现,项目中同时安装 Next 和 ButterFly 主题的依赖之后,ButterFly 可能会干扰 Next 主题。
因为两个主题中都有 utils.js,ButterFly 的这个 JS 会影响 Next,导致无法正常显示一些内容。
本地搜索:
本地搜索出来的 URL 中,搜索结果的链接会把文章末尾的 html 也给带上:
http://localhost:4000/articles/about-sql-order-by-rand.html?highlight=rand
暂时还不知道怎么让这个 URL 不带 .html
后缀,需要研究一下。
Blankj’s Blog【这个博主选择了粉色背景色、宠物背景图、文章块透明效果,给 Next 带来了一些生动的感觉。】
TriaL【修改了背景,Next 也可以变得不像 Next】
归档 | Coders@Work【加了格子背景,省略了一些卡片,看起来不那么单调】
卮言【加了背景图,卡片的直角变圆角,也能从原本的冷色调变成温暖的感觉】
xaoxuu/hexo-theme-stellar: 内置文档系统的简约商务风Hexo主题,支持大量的标签组件和动态数据组件。
1.2k Star
很好看很用心的主题。作者自己对于博客主题有独特的设计理念:
“真正的简约远不止删繁就简,而是在纷繁中建立秩序。”
人的注意力是有限的,要提高有效信息的醒目程度,就必须降低不重要信息醒目程度,删除所有无效信息。
降低视觉密度
- 增加留白,增加间距。
- 减少颜色丰富度,大面积出现的是中性色,彩色必须有其特殊意义,意义相同的元素使用同一种颜色。
提高有效信息优先级
- 文章标题永远是最大的,对比度最高的
- 不可交互的不重要的小标题(如侧边栏某个插件的标题)降低对比度
- 与文章相关的不重要的小标题,使用小号字体
删掉无效信息
- 文章标签、字数、阅读量、评论数
- 网站访问量、字数、搭建时间
- 全局播放器(除了特殊文章)
官方文档:Stellar:开始您全新的博客之旅 - XAOXUU
特点:
updated
字段,那么默认是取文件的更新时间作为文章的更新时间。最近更新的文章会显示在左侧侧边栏。优点:
缺点:
pjax
(建议集成Pjax异步加载改善访问速度 · Issue #220 · xaoxuu/hexo-theme-stellar)优化
安装:
1 | pnpm i hexo-theme-stellar |
复制配置文件
1 | cp ./node_modules/hexo-theme-stellar/_config.yml ./_config.stellar.yml |
本地搜索的原理:
会把所有文章的内容生成一个 search.json
文件,当用户点击了搜索框的时候,就会下载这个 search.json
文件,然后从这个文件中搜索网站内容。
【BUG】而且当前有一个BUG,鼠标每次移动到搜索框,都会重新下载一次这个文件,效率不高,且浪费流量。
[Hexo Stellar 主题装修笔记 - 宇宙尽头的餐馆](https://www.flyalready.cn/Hexo Stellar 主题装修笔记/)
使用Typora_plugin增强Stellar写作体验 - Thun888
Stellar主题自定义侧边栏教程「萌新向」 - SkyReeves
Stellar:使用 Stellar 主题的博客 - XAOXUU
酷小呵【增加了黑暗模式切换】
怎么开启导航栏?
独立页面设置导航栏的高亮?
参考:Stellar:编写文章以及独立页面 - XAOXUU
导航栏如何显示每个分类的名字?
在主题配置中,把每个目录项的 icon
属性去掉,就会变成只显示文字的效果了。
volantis-x/hexo-theme-volantis: A Wonderful Theme for Hexo.
此外,Volantis 有一个社区,可以分享自己的关于 Hexo 的文章获得曝光。
官方文档:开始使用 - Volantis
优点
YYYY-MM-DD
这种格式的,而不是 XXXX 年 X 月 X 日
这种格式的,不需要考虑多语言适配且更简洁。缺点:
资料
安装
1 | pnpm i hexo-generator-json-content |
auroral-ui/hexo-theme-aurora: 🏳️🌈 Futuristic auroral Hexo theme.
很有设计感,且首页有很大尺寸的内容推荐卡片,有视觉震撼感。
但是,这个主题属于初看很惊艳,但是还有很多地方可以改进的。
优点
缺点
三钻 Benny X Guo | 三钻 Benny X Guo
jerryc127/hexo-theme-butterfly: 🦋 A Hexo Theme: Butterfly
Star:6.9k
官网:Butterfly - A Simple and Card UI Design theme for Hexo
官方文档:Butterfly 安裝文檔(一) 快速開始 | Butterfly
是基于 Melody 主题(Molunerfinn/hexo-theme-melody: :musical_keyboard:A simple & beautiful & fast theme for Hexo.)开发的。
优点
缺点
首页 | Butterfly主题美化教程【基于ButterFly做美化】
baidu analytics 和 google analytics 在开启pjax后失效 · Issue #516 · jerryc127/hexo-theme-butterfly
[BUG] 网站分析如 google analytics 无法追踪页面 · Issue #562 · HEIGE-PCloud/DoIt
竹山一页:竹山一叶 - 竹山一叶的小家
Fomalhaut🥝【这个 ButterFly 改的很多,很漂亮】博客魔改教程总结(二) | Fomalhaut🥝
everfu/hexo-theme-solitude: 一款设计师风格的 Hexo 主题,支持懒加载、PWA、Latex以及多种评论系统。
基于 张宏Heo
的 HeoBlog
风格设计的一款主题,很有设计风格。
缺点:
anzhiyu-c/hexo-theme-anzhiyu: 安知鱼主题,这是一个简洁美丽的hexo主题。
1.1k
注意事项:HeoBlog存在大量网址尚未收录到Google的情况解决方案 | 张洪Heo
这里提到可能存在不利于 SEO 的 BUG。
但是 Peng 体验之后感觉性能不是很好,首屏加载时间要接近3秒。
Molunerfinn/hexo-theme-melody: :musical_keyboard:A simple & beautiful & fast theme for Hexo.
ppoffice/hexo-theme-minos: A simple and retro styled Hexo theme, concentrated more on your ideas.
有点像 Medium.com 风格的主题。
YunYouJun/hexo-theme-yun: ☁️ A fast & light & lovely theme for Hexo. 一个对可爱自以为是的 Hexo 主题。
一个有设计感的首页,再加上一些响应式。
和 ButterFly 差不多,但是比较简约。
有一种现代感和时尚感。
shen-yu/hexo-theme-ayer: 一个干净优雅的hexo主题 A clean and elegant theme for Hexo. 🐋
ppoffice/hexo-theme-hueman: A redesign of Alx’s wordpress theme Hueman, ported to Hexo.
基于 Wordpress 的 Hueman 主题移植过来的。
fi3ework/hexo-theme-archer: 🎯 A smart and modern theme for Hexo.
miiiku/hexo-theme-flexblock: 一个卡片类拟态风格的Hexo主题
一个卡片类拟态风格的Hexo主题
Star:5.2k
共享者:62人
特点:
缺点:
litten/hexo-theme-yilia: 一个简洁优雅的hexo主题 A simple and elegant theme for hexo.
8.4k
ppoffice/hexo-theme-icarus: A simple, delicate, and modern theme for the static site generator Hexo.
Star:6.3k
缺点:不支持 pjax
tufu9441/maupassant-hexo: A simple Hexo theme forked from icylogic.
2.6k
贡献者:42
特点:
缺点:
EvanNotFound/hexo-theme-redefine: Simplicity in Speed, Purity in Design: Redefine Your Hexo Journey.
1.3k
ahonn/hexo-theme-even: :rocket: A super concise theme for Hexo
sumimakito/hexo-theme-typography: Rediscover the beauty of typography.
shenliyang/hexo-theme-snippet: Snippet 简洁而不简单,也许是一款你寻找已久的hexo主题
1.1k star
缺点:最上边始终是不变的 Header 和导航栏。
参考作者的 Notion。
手动指定文章摘要截取部分:在摘要结束的地方,手动加上 ``
按照要求开启之后,在需要使用数学公式的文章的文件头中加上 mathjax: true
相关博客文章:
Algolia 需要你手动上传索引,虽然麻烦,但是索引更新和文章更新可以做到同步。
Swiftype 不需要手动上传索引,Swiftype的服务器自动抓取你网站的新内容,但是他们的服务器可能不会实时检测网站变化,索引更新可能会有延迟。
重点看next主题配置文件中给的两个文章:
See:https://github.com/theme-next/hexo-theme-next/blob/master/docs/ALGOLIA-SEARCH.md
Dependencies:https://github.com/theme-next/theme-next-algolia-instant-search
注意,上边的依赖,clone到next主题文件夹下之后,把隐藏的文件夹 .git
删除了,不然 git 同步的时候会导致错误。
另外,algolia的配置信息,既需要在站点的配置文件中加上,还需要在主题的配置文件中加上。两个地方需要的信息是不一样的。
另外,因为对免费用户有限制,所以之索引了标题,没有索引内容。
参考:https://github.com/theme-next/hexo-theme-next/blob/master/docs/ALGOLIA-SEARCH.md#known-issues
1 | hexo clean |
每次更新索引,需要重新执行这个命令。
只有免费试用,不能长期使用。
从 Github 上的 Pull Request 来看,这个方法貌似 v7.3.0 之后才支持。
Authenticate users with Netlify Identity | Netlify Docs
reverentgeek/vuepress-authentication-tutorial: Tutorial on how to add authentication and personalization to a VuePress application【关于 VuePress 使用 okta 认证的教程,可以参考一下。】
JAMstack 是一种前端 Web 开发方法(构建用户与之交互的内容和界面)。它允许开发人员快速创建并有效地为用户提供静态网站。
在 JAMstack Web 应用程序中,会预先构建尽可能多的 HTML 并存储在内容交付网络 (CDN) 中。不同于在服务器端运行一个单一的后端应用程序来生成动态内容,应用程序的动态组件基于 API。理想情况下,这会带来更快的用户体验和更简单的开发人员体验。
资料:
CDN 加速:
国内可以考虑又拍云 CDN 加速。
评论和阅读量功能使用了以下服务:
除此之外,本站通过使用 Exif.js 获取图片的 EXIF 元信息,在满足要求的照片后将会显示其拍摄的具体参数,欢迎体验。
本站的几乎所有前端库使用了 jsDelivr 的 CDN 加速,原因是 BootCDN 服务不稳定(曾在 2018 年 10 月出现长时间的访问异常),而 Cloudflare 在国内某些地区访问速度慢。使用 jsDelivr 可以兼顾国内和国外的访问速度。
由于本站的代码采用了 HTML5,CSS3 和 ES6 标准,可能不被部分较旧的浏览器所支持,因此为了保障您的浏览体验,请务必升级您的浏览器至最新版本。
如果网站使用了自定义字体,同时开启 pjax 的话,如果持续在一个网站浏览,后续打开文章的时候,可以避免对于字体的重复下载从而改善访问速度。
HCLonely Blog - 百度分析和谷歌分析适配 pjax
但我想要的不是它们,因为在使用
hexo
中遇到过一些痛点:
- 某些文章不上传。比如你还没写完,不希望这篇文章上传,就只能写之前放在
_drafts
里,写完后再放在_posts
里面;又如想把某几篇文章下线,把这些文章移出文件夹又显得多余了。- 隐藏某些文章。可以通过url访问,但标签和全部列表里都不展示,我个人是希望有一个
show:boolean
的标签在markdown
文档顶部来控制的,虽然最终也能够找到hexo
的某个插件来实现这一点,但还是感觉很麻烦。- 希望把技术文章和生活文章分开。之前为了实现这一点,我用了非常扭曲的方法,以不同的文件夹分别构建网页,大概意思是…我有两个博客,虽然粗糙实现了这一点,但生活文章…依旧从没写过hhh…
Web 开放字体格式(WOFF) - CSS:层叠样式表 | MDN
WOFF(Web Open Font Format,Web 开放字体格式)是由 Mozilla 与 Type Supply、LettError 及其他组织协同开发的一种新的网页字体格式。
中文 WebFont 小指南 - 从入门到 sans-serif - 惶心博客【关于博客使用字体,写得很详细】
Bold
1 | <link rel='stylesheet' href='https://chinese-fonts-cdn.deno.dev/packages/lxgwwenkai/dist/LXGWWenKai-Bold/result.css' /> |
霞鹜文楷 免费前端开发在线使用部署字体 | 霞鹜文楷 | 中文网字计划
Regular:
1 | <link rel='stylesheet' href='https://chinese-fonts-cdn.deno.dev/packages/lxgwwenkai/dist/LXGWWenKai-Regular/result.css' /> |
霞鹜文楷 免费前端开发在线使用部署字体 | 霞鹜文楷 | 中文网字计划
Light:
1 | <link rel='stylesheet' href='https://chinese-fonts-cdn.deno.dev/packages/lxgwwenkai/dist/LXGWWenKai-Light/result.css' /> |
霞鹜文楷 免费前端开发在线使用部署字体 | 霞鹜文楷 | 中文网字计划
版本是霞鹜文楷 v1.233
(2022-04-01)
中国网字计划计划生成的 font-face:
1 | @font-face { |
如果用户本地安装的有 LXGW WenKai
这个字体,会优先使用本地的字体。但是会有一个缺点,就是 web 字体中其实对于字重是有调整的,比如我们引用的是 Bold
字体,但是我们在 font-family
中使用的是 LXGW WenKai
,但是实际上字重是加粗的。但是如果使用了本地的 LXGW WenKai
字体,那么字重就会变成普通的。
但是目前(2024-07-25)访问中国网字计划的 CSS 会有 HTTP 307 重定向,下载 CSS 的时候可能就会产生 100ms 到若干秒不等的延迟,可能导致速度慢,且屏幕中有字体切换的不好效果。另外网字计划使用 imagekit 的 CDN,速度有点慢。
截止 2024-07-25,网字计划没有提供 Screen 版本。
提供了多种选择:
Bold:
1 | <link href="https://cdn.bootcdn.net/ajax/libs/lxgw-wenkai-webfont/1.7.0/lxgwwenkai-bold.min.css" rel="stylesheet"> |
BootCDN 提供的 CSS:
1 | @font-face { |
可以看到,其中没有使用 local
来尝试使用用户本地的字体。
Screen版本
1 | <link href="https://cdn.bootcdn.net/ajax/libs/lxgw-wenkai-screen-webfont/1.7.0/lxgwwenkaiscreen.min.css" rel="stylesheet"> |
Screen 版本要使用 LXGW WenKai Screen
Bold:
1 | <link rel="stylesheet" href="https://cdn.staticfile.net/lxgw-wenkai-webfont/1.7.0/lxgwwenkai-bold.min.css"> |
Regular:
1 | <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.7.0/lxgwwenkai-regular.css"> |
Bold:
1 | <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.7.0/lxgwwenkai-bold.css"> |
资源首页:
lxgw-wenkai-webfont CDN by jsDelivr - A CDN for npm and GitHub
1 | <link href="https://lib.baomitu.com/lxgw-wenkai-webfont/1.7.0/lxgwwenkai-regular.min.css" rel="stylesheet"> |
baomitu.com
以及 75 CDN 首页貌似都没有怎么在维护,稳定性不一定可靠。Bold:
1 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lxgw-wenkai-webfont/1.7.0/lxgwwenkai-bold.min.css" integrity="sha512-vvNLgKr1GuMMeLpriJ+/ejMT+I5kDqiLlwhRimboPasEu3/EEX2diKUdIC9qwbEX7Kd9jdKh3kvTbVwRil1I6Q==" crossorigin="anonymous" referrerpolicy="no-referrer" /> |
这些 CDN 会免费为 npm 开源库提供 CDN 加速服务,而有一个 npm 的开源仓库就是专门把霞鹜文楷做成了 woff 字体分享出来。所以七牛云这些 CDN 就可以用到这些仓库,从而可以使用这个字体。
npm 上原始的仓库:
在这里可以看到这个仓库使用的字体版本,截止 2024-07-25,lxgw-wenkai
使用的是 v1.250
。
1 | @font-face { |
因为 Bold 字体的 font-weight
已经设置到 700
了,所以再尝试加粗就没有效果了。
用哪个更好?
2024-08-06 发现,jsdelivr.net 的响应中:
1 | cache-control: public, max-age=31536000, s-maxage=31536000, immutable |
给的缓存时间特别长,所以如果经常访问网站,缓存可以有很大作用。Chrome 会直接使用本地缓存。
不确定别的是不是都有这个。
另外,使用七牛 CDN 的时候,发现,大部分字体请求在 30ms 内,但是经常会同时发出 15 个请求,其中有几个请求的速度很慢,可能会慢到 200+,甚至500+ ms。
对文章进行相似度分析,把相似文章放到对应文章下边进行推荐。
urlname
要使用纯小写的路径,不然浏览器也会自动转换为纯小写的 URL,导致谷歌分析中提示【网页会自动重定向】,从而不会把对应文章收录到搜索引擎,影响 SEO。这个问题的根本原因可能是 sitemap 插件生成的 sitemap 有问题导致的,sitemap 中的 url 应该是全小写才对。当然也可能和主题有关系。如何去掉链接中的 index.html
(比如 http://localhost:4000/about/index.html
)
有的独立页面或者文章页面,在顶部导航或者别处有永久连接,其中可能会带有 index.html
,如果你希望 url 末尾不带有 index.html
这个结尾,可以修改主题配置 _config.yml
中的 pretty_urls
属性中的 trailing_index
和 trailing_html
。
文章链接,如何去掉末尾的 /
Can Hexo remove “/“ at the end of the url? · hexojs · Discussion #5320
1 | permalink: articles/:urlname.html |
最后带 /
说明当前访问的是一个文件夹,其中有一个 index.html
,但是浏览器中没有显示出来。
最后不带 /
说明是一个 HTML 文件,只不过浏览器地址栏省略了 .html
后缀。
如果正文中有如下内容:
1 | https://github.com/shyiko/mysql-binlog-connector-java(不维护) |
在 Typora 编辑器中,会把英文部分当作 URL,把括号和中文当作正文,你以为是没有问题的,但是经过 hexo 渲染之后,括号部分也会被当作 URL 的一部分,所以最好改成这种写法:
1 | [https://github.com/shyiko/mysql-binlog-connector-java](https://github.com/shyiko/mysql-binlog-connector-java)(不维护) |
官方介绍:
git 仓库很大,有 28MB。
1 | Peng@DESKTOP-6I6KS5U MINGW64 /d/development/chongyunjun-blog/public (main) |
可以直接使用 Vercel Cli 部署静态文件:
执行 vercel --prod
部署到生产环境。
1 | # 构建 production 版本 |
Vercel 单独查看 Build 时间:Vercel
vercel deploy
可以缩写为 vercel
。
1 | # 如果 prebuilt 的产物是 production 级别的,那么直接部署到生产环境 |
注意部署到生产环境时候,--prod
不能省路,不然会报错:
1 | Error: The "--prebuilt" option was used with the target environment "preview", but the prebuilt output found in ".vercel/output" was built with target environment "production". Please run `vercel --prebuilt --prod`. |
Removing HTML tag for Vercel · vercel · Discussion #1425
Configuring Projects with vercel.json
在项目根目录创建一个 vercel.json
文件(如果是直接部署 public 文件夹,那么在 public 文件夹里边创建)
写入下边的内容:
1 | { |
原理:
不添加这个属性的时候,构建完成的 output
文件夹中的 config.json
内容如下
1 | { |
添加了之后,构建出来的内容:
1 | { |
这样,不仅不带 html 的 url 可以正常访问,而且带 html 的 url 会被 308 重定向(308 Permanent Redirect
)。
作为对比,Netlify 允许同时使用带 .html
后缀和不带的 url 进行访问,且都会生成 200 OK
的响应。
更多关于 Netlify:
Post processing | Netlify Docs
How to make URLs pretty using Netlify - DEV Community
自 7.6.0 版本开始,
auto_excerpt
功能被移除,因为按照字数截断文章,必须先移除其中的 HTML 标签,这将导致图片、代码块显示错误;并且,它也并不属于 Hexo 主题应当负责的内容。我们推荐通过 `` 来精确控制 Read More 的位置;或者设置excerpt_description
然后为每篇文章指定description
。当然,也可以自行安装第三方插件:https://github.com/chekun/hexo-excerpt
https://github.com/ashisherc/hexo-auto-excerpt作出以上改动后,请执行
hexo clean
。
自从 Hexo v7.6.0 之后,插件自带的 auto_excerpt
功能被取消了,需要使用其他第三方插件。
或者在主题配置文件中开启 excerpt_description
之后,然后在文章的 front-matter 中使用 description
字段来表示摘要。
hexo-excerpt
插件(chekun/hexo-excerpt: Automatic excerpt generator for Hexo)在 Next 主题 v8.20 上貌似没有效果。
这个插件的原理:
This plugin runs through all your posts, if your post has more than the configured number of direct tags, then they will be the excerpt, otherwise the whole post will be used.
如果文章有超过指定数量的标签才会被当作摘要。
算啦,最后放弃了,还是使用 `` 标签自己指定吧。
Vercel 官方要求是
A 记录到
CNAME 记录到 ``
可以改为:
A记录:
CNAME:cname-china.vercel-dns.com
推一下 Vercel 加速节点 - 掘金【注意一下,是私人搭建的,可能存在隐私问题】
Vercel CDN:利用CNAME负载均衡实现的Vercel加速CDN
网站测速工具:网站测速,HTTP测速,CDN测速,网站速度诊断,API测速,多地区网站测速 - 炸了么
Google Analytics 和 Google Search Console 的区别:
kinsta-blog-zh/docs/google-search-console-vs-google-analytics.md at master · apachecn/kinsta-blog-zh
Google Search Console 深入分析幕后揭秘 | Google 搜索中心博客 | Google for Developers
谷歌分析GA和站长工具GSC的数据为什么老是对不上?-雨果网
用户停留时间 SEO入门课程 - 外贸商桥 - 专注外贸推广, 英文SEO, Google优化
unable to exclude specific folders or files when run ‘hexo clean’ · Issue #2436 · hexojs/hexo【维护团队答复不考虑,中间有人加了一个 after_clean 的功能,但是没有帮助。】
hexo不生成categories和tags的index页 | bomo的开发随笔
原因是要在 source 目录下自己创建tags 和 categories 目录以及对应的 index.md。按理说主题应该自己处理好的,但是不知道为什么next没有处理。
Google Analytics 4 的跟踪代码如下:
1
2
3
4
5
6
7
8
9 <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-HZ4RDGTX66"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-HZ4RDGTX66');
</script>第一行<script async src=”https://www.googletagmanager.com/gtag/js?id=G-HZ4RDGTX66″%3E%3C/script%3E,异步加载一段js,这段js是放在www.googletagmanager.com域名下的。
window.dataLayer = window.dataLayer || []:是dataLayer是数据层变量的初始化,完整的是var dataLayer = window.dataLayer = window.dataLayer || [] 然后你后面可以直接调用dataLayer.push。
function gtag(){dataLayer.push(arguments)};定义一个函数,方法
gtag(‘js’, new Date()):调用前面的函数,其中“js”是前面引入的那个js里面的一个已经定义的函数,
下面的“config”也是跟踪js里定义的函数,另一个定义函数为set。
Favicon.ico图标常见问题 - 沧海一滴 - 博客园
如果想给一篇文章搞一篇配套的创作备注(创作手记),也就是记录一下创作这篇文章的时候都用到了什么方法、工具、过程、经验。但是这部分内容又不太适合放到正文当中,是否有什么办法可以很好地管理呢?
目前找到几种方法:
方法1:
创作手记的文件名以下划线(_
)开头。Hexo 不会渲染下划线开头的文件。
any file or folder with a name that starts with an underscore under that folder would still be ignored.
方法2:
使用配置文件中的 skip_render
属性,这个属性可以指定哪些文件不渲染,原样保留。
示例:
1 | skip_render: |
方法3:基于 hexo-hide-posts 插件
这个插件可以做到文章不显示到首页,但是通过 url 可以访问到对应文章,也就是只有知道 url 的人才能访问文章。
这样可以让一般人看不到,但是知道的人可以自己看。只不过,这个 url 有可能还是出现在 sitemap 等文件中,并不能保证别人完全看不到。
如果我们想在文章开头搞一个链接,一键跳转到文章的某个章节,应该如何实现?
【有缺陷】方法1:
直接用 Markdown 的超链接语法,输入 [链接文字内容](#要链接到的标题)
这样点击之后就会直接跳转到本页的对应标题,同时浏览器的 URL 栏中会加上对应的标题。
注意事项:如果标题中的文字包含一些特殊字符,可能需要把特殊字符去掉,比如如果标题内容是 ORDER BY RAND() 是什么?
,那么你可能要写成 [ORDER BY RAND() 是什么?](#ORDER-BY-RAND-是什么?)
2024-08-04 发现这个方法有缺陷,当文章显示在首页的时候,摘要中的部分,URL 没有正确转换,会导致这个页内跳转到超链接是在首页 URL 的后边加上 #标题
,这显然是不对的。
如何自己搭建busuanzi不蒜子平台,搭建静态博客的访问量统计 | 张洪Heo
FiniCounter: 静态网站访问量统计工具 | Finisky Garden
免费网站统计工具对比:统计鸟比百度统计、CNZZ、51La好在哪里? - 黄聪 - 博客园
Umami【自建网站统计】
使用umami统计网站流量 - 一枝梅的博客 - 专注于java开发的小站
当 url 中包含中文的时候,访问会 404。
查看了一下 Build 日志,有如下内容:
1 | Warning: Override path "categories/数据库/MySQL/index.html" was not detected as an output path |
然后看了一下对应的 Build 日志中的 Static Assets,里边确实没有这些资源文件,难道是这些文件就没有上传上去?
但是本地 的 .vercel/output
中是有这些文件的。
最后发现,可能是 vercel-cli 的 BUG
使用
1 | vercel build |
或者
1 | vercel build --prod |
这种分两步构建和部署的就会有问题。
如果直接
1 | vercel |
或者
1 | vercel --prod |
就没有问题。
如果你发布了一篇文章,已经被 Google 收录,但是你想要修改这篇文章的 URL,但是你的旧 URL 可能还会出现在搜索结果中,用户如果访问了你的旧 URL,就会报错 404 Not Found,所以为了用户的体验,在修改 URL 之后要保证之前的 URL 可以跳转到新的 URL。
Vercel 可以做到这一点。
在你的项目根目录创建一个 vercel.json
文件,里边写入如下内容:
1 | { |
其中 source
就是原来的地址,destination
就是新的地址,注意这个地址都是相对于域名根目录来说的。比如 source
的 /me
对应的是 example.com/me
这个 URL。permanent
为 true
代表这是一个 HTTP 308 重定向。
更多规则可以参考 Vercel 的官方文档:
Configuring Projects with vercel.json
LeetCode 994. Rotting Oranges。
高效实现 Map 计数器。
一道笔试题。
LeetCode 260. Single Number III
剑指Offer 67. 把字符串转换成整数。
聚簇索引。