Hexo批处理文件

第一次建站,想把以前写过的markdown笔记上传到博客上,但是这些笔记散落在Github的若干repository上,我不想仅仅复制到\source_posts下,我希望原来的博客路径不变,每次更改github的笔记博客也会变。找了很多办法,都不方便,如将markdown文件渲染成html在用iframe嵌入博客中。
对于VScode中的Markdown Preview Enhanced插件的import功能是我最想要的。可以直接在markdown里插入任意位置markdown,十分方便,但Hexo我没找到插件支持。
本人目前网页技术小白,只好另辟蹊径。

最后写了一个matlab复制脚本,可以时间将其他路径中的markdown笔记复制到目标路径下。这样我可以批量复制所有笔记,每次更新也不用复制粘贴,直接运行脚本就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
%% 用于导入其他文件夹中的md文件
%% 设置需要更新的路径(repo的路径)
srcpath=[
"F:\github\Cpp-Notes";
];
% 排除不想复制的文件夹
exincludedir=[
".";
"..";
];
dstpath="F:\github\blog\source\_posts\test";%目标文件夹
%% 遍历所有路径
checkdir(dir(srcpath),1,exincludedir,dstpath);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
%% 检查路径下所有文件
% pathlist :文件夹列表
% n:第n个文件
function checkdir(pathlist,n,exincludedir,dstpath)
for ii=n:length(pathlist)
ptmp=pathlist(ii);
%% 排除
if(sum(ptmp.name==exincludedir))
continue;
end
nextptmp=[ptmp.folder,'\',ptmp.name];%子路径
if(isfolder(nextptmp))%是文件夹
nextptmp=[ptmp.folder,'\',ptmp.name];%子路径
checkdir(dir(nextptmp),1,exincludedir,dstpath);
end
%后缀
[~,~,abc]=fileparts(ptmp.name);
% copy
if(abc==".md")
srcp=[ptmp.folder,'\',ptmp.name];
if isfolder(dstpath)~=1
mkdir(dstpath)
end
copyfile(srcp,dstpath);
end
end

end

笔记Front-matter模板

1
2
3
4
5
6
7
8
9
10
11
---
title: Hexo批处理文件
mathjax: true
date: 2020-11-16 15:43:55
tags:
- 建站
- 奇技淫巧
categories:
- Hexo
- Matlab
---