昨天给博客加了一个下载MarkDown文件的功能,原本是很简单的一件事,但是中间涉及到了很多麻烦东西,所以就决定简单记录以下。
起因➴
这件事的起因是前两天我写的一篇文章意外火了一遍,引来了一大波PV,又有很多人转了这篇文章,还有人问我要MarkDown源文件。受到Jerry Qu的小站的启发,决定做一个MarkDown文件下载的功能。
捋一下过程➴
Hexo修改部分➴
本文介绍修改方法仅使用于Yilia主题,其他主题请参考原理,自行寻找食用方法
修改\layout_partial\post\nav.ejs,我找了好久才发现加在这里最合适,由于技术比较渣,暂时只能做到这样了,以后会继续进步的。
在<% if (post.next){ %> … <% } %>
和</nav>
之间添加
1 | <% if (theme.mdhost){ %> |
在Yilia主题的_config.yml
中添加
1 | mdhost: #MarkDown文件下载地址,如:http://md.xxwhite.com/ |
这样点击下面的按钮的时候,就会调到同名的txt文件了。
比如这篇文章,点击获取MarkDown文件,就会跳转到页面http://md.xxwhite.xom/2018/add-download-markdown.txt
MarkDown文件➴
MarkDown文件我是传到了网易云的对象存储服务中,如果要是把文件传到相同位置,那就更简单了(我接下来就是打算要这么做的,不闲着蛋疼去薅羊毛了)
首先是要把MarKDown文件转码为ANSI,UTF-8会乱码,不是自己搭的服务,请求头没办法改,接下来要改后缀为.txt,.md默认Content-Type为application/octet-stream,会自动变成下载。
我使用一个批处理自动化完成这个东西
1 | cd D:\MonoLogueChi\Documents\Hexo\blog-md\ |
这个用到了iconv.exe这个东西,可以在这里下载 iconv.7z
后面再加上自动上传就可以啦,很简单的一步式操作。
1 | tool.bat -putfile D:\MonoLogueChi\Documents\Hexo\blog-md <你的桶名称> -replace true |
写在后面的➴
目前技术比较渣,暂时只能写到这样了,如果有什么更好的想法发话,欢迎在下面的评论区一起讨论。
- 本文作者: MonoLogueChi
- 本文链接: https://blog.xxwhite.com/2018/add-download-markdown.html
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!