secuencia de comandos de sincronización _Vnote a paso hexo [Bo]

 

1, comandos por lotes para md2hexo plazo

 

1
2
3
4
5
6
7
cd /home/john/文档/vnote_notebooks/vnote
conda activate py35
python md2hexo.py $(ls -I _v_recycle_bin)   

变更部分比对
gitk:验证只有文件头部被修改
或者:meld .

2, en la [Bo] artículo migrate a la carpeta _POST

 

1
2
3
4
5
6
7
8
9
10
11
12
13
删除原内容
rm ~/my_hexo/source/_posts/*
rm ~/my_hexo/source/images/*

切换到临时目录
cd ~/my_tmp
rm md_file_loc.txt tmp_png/* tmp_png_choose.txt tmp_png.txt
所有含有[博]的md文件绝对路径写到md_file_loc.txt
find ~/文档/vnote_notebooks/vnote/ -path ~/文档/vnote_notebooks/vnote/_v_recycle_bin -prune -o  -name "*\[博\].md" -print > md_file_loc.txt
md文件名含有扩号的需要转义
sed -i 's/(/\\(/g;s/)/\\)/g'   md_file_loc.txt
将md文件copy到surce/_post文件夹
awk  -v  to="/home/john/my_hexo/source/_posts/" '{cmd="cp  "$0" "to ; system(cmd)}'  md_file_loc.txt

3, la imagen copiada MD (con copia a la fuente / images /)

 

1
2
3
4
5
6
7
8
9
所有图片文件绝对路径写到tmp_png.txt
find ~/文档/vnote_notebooks/vnote/ -path ~/文档/vnote_notebooks/vnote/_v_recycle_bin -prune -o  -regex ".*\.jpg\|.*\.png" -print > tmp_png.txt
所有图片cp到my_tmp/tmp_png中
mkdir tmp_png
awk  -v  to="/home/john/my_tmp/tmp_png/" '{cmd="cp  "$0" "to ; system(cmd)}'  tmp_png.txt
从md中提取md涉及的文件名
awk -F / -v patten="'[0-9_]+\.png'"  -v mdPath="/home/john/my_hexo/source/_posts/" '{cmd= "grep -o -E " patten " " mdPath $NF;system(cmd)}' md_file_loc.txt  > tmp_png_choose.txt
将涉及到的文件copy到source/images中
awk -v from="./tmp_png/" -v to="/home/john/my_hexo/source/images/" '{cmd="mv "from $1 " " to ;system(cmd)}' tmp_png_choose.txt

4, cada md ruta del archivo modificado (MD Alternativamente _posts / debajo / imágenes es / imágenes)

 

1
2
3
4
image的路径替换
awk -F / -v newPath="/home/john/my_hexo/source/_posts/" -v sedCmd="'s//images/\\\\/images/g'"  '{cmd= "sed -i "  sedCmd " " newPath $NF;system(cmd) }' md_file_loc.txt
image后尺寸控制的替换(hexo不支持尺寸控制)
awk -F / -v newPath="/home/john/my_hexo/source/_posts/" -v sedCmd="'s/ =[0-9]\+x)/)/g'"  '{cmd= "sed -i "  sedCmd " " newPath $NF;system(cmd) }' md_file_loc.txt

5, publicado en el servidor

 

1
cd ~/my_hexo;hexo g && hexo deploy

6, campo de contraseña suplemento

Necesidad de encriptar documentos añadir campos de contraseña

7, después de la integración de la escritura

Desde el inicio de la segunda etapa (el primer paso y lanzamiento independiente de pertenencia formato vNote de acabado)

propósito escritura, formato de archivo vNote md, copia unificado a la ruta del archivo hexo (archivo + archivos md imagen)
$ 1: directorio de notas vNote, tales como: / Documents / vnote_notebooks / vNote
$ 2: hexo la ubicación de la carpeta de origen, como por ejemplo: / my_hexo / fuente (borra el contenido de esta carpeta _posts / e imágenes / bajo)
$ 3: * [blog] .md

Comando: ./ xx.sh ~ / Documentos / vnote_notebooks / vNote ~ / my_hexo / fuente "* [blog] .md"

 

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
29
30
31
32
33
34
35
36
# 删除hexo已有的文章和附件
echo "删除hexo博客下的文件夹_posts,images"
rm ~/my_hexo/source/_posts/*
rm ~/my_hexo/source/images/*

# 创建临时目录
echo "创建临时目录"
mkdir -p ~/tmp_hexo/tmp_png/;cd ~/tmp_hexo

# 需发布到hexo文件路径写到md_file_loc.txt中,并且生成copy命令列表
echo "生成hexo的文件copy命令"
find ~/文档/vnote_notebooks/vnote/ -path ~/文档/vnote_notebooks/vnote/_v_recycle_bin -prune -o  -name "*\[博\].md" -print | grep -v total > md_file_loc.txt
sed -i 's/(/\\(/g;s/)/\\)/g'   md_file_loc.txt
awk  -v  to="/home/john/my_hexo/source/_posts/" '{cmd="cp  "$0" "to ; system(cmd)}'  md_file_loc.txt

# 将hexo文件中的图片地址,提取到md_file_loc.txt中
echo "hexo文件中的图片地址,提取到md_file_loc.txt中"
find ~/文档/vnote_notebooks/vnote/ -path ~/文档/vnote_notebooks/vnote/_v_recycle_bin -prune -o  -regex ".*\.jpg\|.*\.png" -print | grep -v total > tmp_png.txt
awk  -v  to="/home/john/my_tmp/tmp_png/" '{cmd="cp  "$0" "to ; system(cmd)}'  tmp_png.txt
awk -F / -v patten="'[0-9_]+\.png'"  -v mdPath="/home/john/my_hexo/source/_posts/" '{cmd= "grep -o -E " patten " " mdPath $NF;system(cmd)}' md_file_loc.txt  | grep -v total > tmp_png_choose.txt
awk -v from="./tmp_png/" -v to="/home/john/my_hexo/source/images/" '{cmd="mv "from $1 " " to ;system(cmd)}' tmp_png_choose.txt

# 替换文件路径(vnote图片位于/images下,而hexo图片位置为images)
echo "替换文件路径"
awk -F / -v newPath="/home/john/my_hexo/source/_posts/" -v sedCmd="'s//images/\\\\/images/g'"  '{cmd= "sed -i "  sedCmd " " newPath $NF;system(cmd) }' md_file_loc.txt
awk -F / -v newPath="/home/john/my_hexo/source/_posts/" -v sedCmd="'s/ =[0-9]\+x)/)/g'"  '{cmd= "sed -i "  sedCmd " " newPath $NF;system(cmd) }' md_file_loc.txt

# 删除临时目录
echo "删除临时目录"
rm md_file_loc.txt  tmp_png.txt tmp_png_choose.txt
rm -rf tmp_png/*

# 发布到hexo
echo "发布到hexo"
cd ~/my_hexo;hexo g && hexo deploy
echo "完成"

8, terminando el guión en forma de parámetros (github)

Guión Dirección: GitHub: https://github.com/yuanjh6/scripts

VNote basa automatizado publicación del
artículo vNote en la calificación (archivo .md), con copia a hexo / fuente / _posts /,
imágenes md artículo que cumple con las condiciones implicadas, con copia al hexo / fuente / images /
Uso:

 

1
./vnote2hexo.sh ~/文档/vnote_notebooks/vnote ~/my_hexo/source "*发布*.md"

大概执行路径:
find
vnote笔记本路径:~/文档/vnote_notebooks/vnote
找出其中文明名符合:”发布.md”
的md文件,将其copy到
hexo的source文件夹(路径):~/my_hexo/source/_posts/(后面的_posts脚本写死的)
同时,符合条件的md文件里面的.png,.jpeg等文件会复制到
hexo的source文件夹(路径):~/my_hexo/source/images/(后面的images脚本写死的)
代码行数不多,但是较难看懂,主要是awk语法使用较多,其中很多涉及多次转义的字符
参考本博客博文:脚本_vnote同步到hexo步骤[博](自行搜索)

发布了238 篇原创文章 · 获赞 144 · 访问量 86万+

Supongo que te gusta

Origin blog.csdn.net/u011331731/article/details/105189733
Recomendado
Clasificación