搭建一个自己的博客
Bintou
开源的看看代码就知道了。
下面看的是它的旧版。我从footer那里的链接点进去是旧版所以猜测老师用的是旧版的Next。
https://github.com/iissnan/hexo-theme-next/blob/master/layout/_partials/header.swig#L43
这里就是生成url的地方。
{% for name, path in theme.menu %}
这里的theme.menu
就是主题的config。https://github.com/iissnan/hexo-theme-next/blob/master/_config.yml#L94
name是键, path 就是值,然后经过模板的这么一个函数和pipe就成了渲染出来的url。
url_for(path.split('||')[0]) | trim
config文件中也有注释的。我不太了解swig的trim。还有为什么他要先url_for 然后再trim而不是先trim。所以我才会说
0x709394 估计是yaml哪里多了个空格。
但是如果trim了的话是不应该有%20
。老师可以试试在模板里面log看看是什么原因吧。
图片的话首页确实可以显示,但是点到文章里面就不行了 https://lbwang.github.io/2020/04/07/sidh/ 路径在那堆日期后面的相对路径了。
0x709394
折腾了一个上午,似乎都不成功:
1、插入图片那里,我按帖子装了asset-folders,但是现实不成功。hexo g有这个输出:update link as:-->/.io//ec.jpg ,ec.jpg只是我测试用的图片。这个link显然不对啊!
2、还有,支持LaTex那里,按hexo-renderer-markdown-it-plus 去做,也不行。不知道为何。想用hexo-renderer-markdown-it-plus的原因,就是hexo-math的LaTex语法好奇怪。不知道在theme那里需要设置什么。我用的是next。next支持mathjax和katex的。
有空帮忙看看。
- 已编辑
0x709394 这样都能访问到图片:http://lbwang.github.io/2020/04/09/csidh/ec.jpg ,但是就是显示不出来,见鬼了!
看了这个帖子 . 似乎可行。需要修改一个index.js 文件。
Bintou hexo g有这个输出:update link as:-->/.io//ec.jpg ,ec.jpg
这个应该不是 hexo-asset-image 的输出来的。除了安装,图片也应该放在assert folder
也就是跟md文件同名的文件夹里面。在 site config 里打开之后每次hexo new
都会自动创建。用不到的话可以删掉。然后markdown的路径也按照README写的那样应该就好了。
我记得之前是要改,但是某个版本更新了之后不改也行了现在。毕竟直接手改node_modules
不是什么好习惯。
LaTex 具体什么问题我也不清楚。hexo-math 和 markdown-it-katex 是不能同时装的。排查的话首先看一下public有没有引入到 katex 的 CSS。 如果有的话,看看是不是因为 markdown 中 LaTex 的一些转义的坑或者是markdown-it-plus 的config 的问题吧。可以copy一份现成的然后再去调整(控制变量)。如无意外应该是这样的。
刚好前不久重整了下自己的GitHub page博客,分享一下。
这次我用了GitHub action,主分支放所有的md文件,再开一个分支放hexo的所有配置,让action去自动build+deploy博客,我只需要写好md推上去就行了。
这样的好处有几个(发这个评论时只凑出三个23333):
- 不想氪金又没得白嫖GitHub会员的情况下,可以让自己的博客源文件闭源
- 基本不用担心迁移的问题,因为只需要维护md文件,甚至可以直接在GitHub网页上写博客
- 博客项目看起来更清晰
另外,我还在action里监控着我这个私有仓库的star事件,点一下star就可以发布博客。目前还有很多有趣的骚操作在酝酿中,没具体做出来就不说了,不知道可行性有多大。
或许可以搞一个通用的action来简化所有操作?进一步的,或许可以搞个东西来自动生成定制化的action.yml,方便各种群体?第二个是写评论时想到的,因为突然想起我物理系的朋友听完我这个博客方案懵掉了哈哈哈,这个东西可以直接前端js生成就好了,就酱~
- 已编辑
重开一条评论,对于hexo,我一直有个问题没能解决。我写文章都是:post下所有的md文件所用到的图片都放在post/images里面,而网上的hexo图片方案都是要xxx.md的图片放到xxx文件夹,这对我很不方便呀。同时,我一般是相对路径引用图片。对于这两个问题,有什么解决办法吗?
我现在是自己写个小插件处理图片路径到博客的根目录,然后build完后把整个images移动到根目录。
- 已编辑
重开一条评论,对于hexo,我一直有个问题没能解决。我写文章都是:post下所有的md文件所用到的图片都放在post/images里面,而网上的hexo图片方案都是要xxx.md的图片放到xxx文件夹,这对我很不方便呀。同时,我一般是相对路径引用图片。对于这两个问题,有什么解决办法吗?
我现在是自己写个小插件处理图片路径到博客的根目录,然后build完后把整个images移动到根目录。
Error 不记得在哪里看到的,好像是有人拿 issue 做博客评论,然后有讨论这是否构成滥用,然后咨询了 GitHub 之后回复是只要符合 GitHub Terms of Service - GitHub Help 就可以做。
不清楚私有仓库和 Actions 是否有违反规则,大致翻了一遍,似乎没有相关的说法。
https://help.github.com/en/github/site-policy/github-additional-product-terms#a-actions-usage
挖矿之类的肯定不可以。。。 而且私有库有时间限制。
Error 我现在是自己写个小插件处理图片路径到博客的根目录,然后build完后把整个images移动到根目录。
想要把图片放到根目录的话放到source
下就会输出到根目录
- 已编辑
0x709394 和 MikyMing 的方案并不符合我的需求,可能我没说清楚,是这样的:
我的posts
下放着所有的md文章,posts/images
放着所有的图片,md里引用图片是相对路径引用,这样是为了方便我本地阅读我的笔记。也就是说,我既想保持我本地的笔记库无需大改动,又可以发布到hexo博客。
这样,如果把images
放到source
下,那么就会变成./post
放md,./images
放图片,这样文件会比较乱了,md里引用图片路径还得全部改成../images/xxx.jpg
。
还有一点,使用/images/xxx.jpg
是不行的,会导致我本地阅读器找不到图片。我后来发现,使用images/xxx.jpg
后,hexo生成的html是引用根目录,而./images/xxx.jpg
却不行。现在我的小插件就是把路径全部处理成images/xxx.jpg
。
Error 先吐槽一下,老哥你一段话就一个句号中间一直逗号还和路径混着读着有点累。。。
Error 使用images/xxx.jpg后,hexo生成的html是引用根目录
不是这样的。是当前网页的相对路径,首页的时候是相对根目录,不同网页是不一样的。所以才会说
0x709394 直接用markdown会有路径问题
想要本地跟网页路径同时没问题就麻烦咯。 网页的话Web Server都会有root可以设置。对于本地的markdown编辑器,/
那就是磁盘根目录了。应该你现在这样改路径的方式算是比较好的方案了吧。
图片其实真不建议放本地了。图片这样的二进制文件如果用Git管理,随着图片多起来,.git
目录会变得很大。而且因为Git版本管理的特殊性,你删了它,.git
也不会小,于是乎这个repo越来越占空间。我尝试用git-lfs
解决这个问题,确实很有效。但是静态托管的网站对lfs的支持都不是很完善而且私有仓库的LFS的流量和容量都有限额(免费)
分享一个自己给 Hexo 博客做 SEO 的记录 https://rapiz.me/2020/blog-seo/
博客自己写了两三年了一直没在意搜索引擎收录,最近开始关心这一块,想办法提高在搜索结果中的出现频率和排名。
因为是自己写的主题,所以我需要从 0 开始加 <meta> 标签。如果用的是成熟的博客主题,可能已经包含 <meta>, 就不需要这一点优化了。