原创博客地址:脚本_vnote同步到hexo步骤[博]
1,批量跑md2hexo命令
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,关于[博]文章迁移到_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,md相关图片复制(复制到source/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,修改各md文件中路径(_posts/下的md替换/images为/images)
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,发布到服务器
1
|
cd ~/my_hexo;hexo g && hexo deploy
|
6,补充password字段
需要加密的文档添加password字段
7,整合后脚本
从第二步开始(第一步和发布无关,属于vnote格式自整理)
脚本目的,将vnote格式的md文件,统一copy到hexo文件路径(md文件+图片文件)
$1:vnote笔记目录,比如:/文档/vnote_notebooks/vnote
$2:hexo的source文件夹位置,比如:/my_hexo/source(会删除此文件夹下的_posts/和images/下的内容)
$3:*[博客].md
命令:./xx.sh ~/文档/vnote_notebooks/vnote ~/my_hexo/source “*[博客].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,整理为参数的脚本形式(github)
脚本地址:github:https://github.com/yuanjh6/scripts
基于vnote的自动发布
将vnote中的符合条件的文章(.md文件),复制到hexo/source/_posts/,
符合条件的md文章里面涉及的图片,复制到hexo/source/images/
使用方法:
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步骤[博](自行搜索)
脚本_vnote同步到hexo步骤[博]相关推荐
- 使用Hexo搭建博客步骤详解
简介 hexo -- 简单.快速.强大的Node.js静态博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. 特性 风一般的速度 Hexo ...
- 使用 goodsync 软件将指定目录的文档单向同步到 hexo 博客
使用 goodsync 软件将指定目录的文档单向同步到 hexo 博客 我的所有笔记保存在 "我的文档" 目录, 我的笔记类型有 .md, .pdf, .docx 等等, 包括私人 ...
- python博客下载本地文件_Linux CentOS6安装Git、Node.js及Hexo静态博客安装和使用方法...
有些时候,我们有听到或者看到某个技术很希望自己也能尝试一下,即便我们没有项目需求,但接触过后以后还可以跟别人吹嘘这个技术我玩过,具体能否玩的精通都无所谓,至少我们可以体验到其中的乐趣.这不,这几天有接 ...
- Hexo Next 博客添加相册瀑布流
原文:https://rebootcat.com/2020/09/19/nextphotowall/ 前言 一直没有时间来整理下博客搭建的一些事情,现在补上一篇,给 Hexo Next 博客添加一个相 ...
- hexo+GitHub博客搭建实战
我的个人博客链接:wangwlj.com 想要搭建类似的博客吗? 如果是,那就赶快点进来吧-- 手把手教学,现在开始!! PS: 将会在个人博客持续更新,本文链接:hexo+GitHub博客搭建实战. ...
- Github+Hexo+matery博客搭建
文章目录 前言 主题介绍 一.博客环境搭建 1. 下载Git和Node.js 1.1 Node.js的安装与配置 1.2 Git的安装与配置 二.Github注册以及Github Pages创建 三. ...
- Hexo+GitHub 博客部署 个人踩坑记录(一)
Hexo+GitHub 博客部署 个人踩坑记录(一) 前言 博客的作用 编程学习本身是持续性的学习行为,说明所学习的内容是在持续地增加.这要求我们要学会阶段性总结自己所学的东西,复习并巩固.所以写文章 ...
- Hexo 个人博客 SEO 优化(3):改造你的博客,提升搜索引擎排名
Hexo 个人博客 SEO 优化三篇系列文章终于完成了 Hexo 个人博客 SEO 优化(1):搜索引擎原理介绍 Hexo 个人博客 SEO 优化(2):站内优化 Hexo 个人博客 SEO 优化(3 ...
- SQLServer2000同步复制技术实现步骤
SQLServer2000同步复制技术实现步骤<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:off ...
最新文章
- 字节跳动内部 MySQL 学习笔记火了,完整版开放下载!
- mysql8解压版安装没有密码_MySQL8解压版安装
- 产品经理必备的14大效率工具
- 计算机组成原lta,计算机组成原理实验三运算器
- HDU - 3530 Subsequence(单调队列+思维)
- 计算机部分选择怎么操作,计算机基础试题选择题部分
- oraclr 和mysql的不同_Mysql和Oracle中的不同
- Vue源码学习: 关于对Array的数据侦听
- 长沙戴维营教育iOS开发面试题周刊
- docker给php装swoole,制作php+swoole的Docker环境
- 196.删除重复的电子邮箱
- Java基础知识——JavaIO
- cyj等于什么英语单词_英语解题方法指导及例题分析
- 第六周:整数转罗马数字
- FileOutputStream、OutputStreamWriter、BufferedWriter的区别和用法
- SWUSTOJ #77 计算员工周工资
- 什么是编码?什么是解码?为什么要编码.解码?
- S3C6410 中的 cascaded irqdomain 之 gpio
- 二进制枚举子集的方法
- 关于PL2303用于STC单片机下载的讨论
热门文章
- 关于微信小程序使用获取用户信息getUserProfile的问题:TypeError: wx.getUserProfile is not a function
- css实现图片虚化_什么? CSS 阴影竟然还有这种骚操作 ?
- 索引sql server_SQL Server索引与统计顾问的困境或麻烦
- aws rds监控慢sql_AWS RDS SQL Server中的高级Windows身份验证配置
- phpstorm设置xdebug调试
- 可对Python运行原理进行可视化分析的工具
- Python 密文转换为明文
- 近期将要学习的内容(flag)
- 最小公倍数最大公约数
- WIndow Document