前言

上次写了脚本将本地的 Markdown 文章迁移到 WordPress 之后,就想将其写成一个项目开源出来。在经过了一段时间的缝缝补补之后,loadmd_to_wordpress 诞生了,虽然功能还不算完善,但是我觉得还能凑合用hhh

在此期间,我所在的深圳大学信息网络安全协会正在招新,我负责新生赛靶场的搭建。由于搭建靶场的机器要连接校园网,并且机器只有命令行环境,所以为了方便,我写了个脚本来“一键登录校园网”。后来想到机电的学弟学妹玩开发板的时候,经常会有在命令行环境连校园网的需求,于是我就写了 login_szu_network 项目,目前还不太完善,欢迎来提 issue 或者 pr

loadmd_to_wordpress

项目地址:loadmd_to_wordpress

该项目用于将本地的 markdown 文件快速迁移至 wordpress 系统

项目说明

该项目支持 python 3.10 及以上版本

目录结构

loadmd_plugin
 - loadmd_plugin.php    # 插件入口
 - setting_page.php     # 设置页面
 - webshell.php         # 实现了上传功能的 webshell
utils
 - argsparser.py        # 负责解析命令行参数
 - extensions.py        # 文本处理扩展
.gitignore
config.json             # 客户端配置示例
License
loadmd.py               # 客户端入口
README.md
requirement.txt

配置文件说明

path

接受 3 种参数:

  1. 存放了 markdown 与引用图片的文件夹, 如: “D://blog_01/”
  2. markdown 单文件, 如: “D://blog_02.md”
  3. 使用数组包含多个 1/2 类型参数, 如: [“D://blog_01/”, “D://blog_02.md”]

webshell

address

在 “md 上传助手” 中配置的 webshell 访问入口

password

在 “md 上传助手” 中配置的 webshell 访问密码

img_src

markdown 访问引用图片时的 URL 前缀

如: 当该配置项为 “https://www.example.com/myimg/” 时

脚本将会把 ![img](img_01.jpg) 替换为

![img](https://www.example.com/myimg/img_01.jpg)

target

服务器存放文章引用的图片的绝对路径

support

img_type

支持的图片格式

languages

代码高亮中支持的语言(不支持的语言将会统一使用纯文本的高亮)

客户端参数说明

-h, --help          获取帮助
-c, --config        指定配置文件位置
-p, --path          强制指定 markdown 文件/文件夹路径(会覆盖 config 的配置)
-ow, --over-write   为 true 时强制覆写重名文件, 为 false 时强制不覆写重名文件
--sniffer           添加此参数时开启 "嗅探模式"
(嗅探模式: 仅对单文件 path 生效, 自动探查 md 引用的本地图片路径并进行改写、上传)

快速开始

step1. 使用 python3.10+ 版本, 并安装脚本所需库

pip install -r requirements.txt

step2. 将 loadmd_plugin 文件夹打包为 zip 文件并将其安装至 wordpress

step3. 在 wordpress 后台为 md 上传助手 配置必要参数

step4. 编辑 config.json 中的配置项

example

{
  "path": "D:\\markdown_folder",
  "webshell": {
    "address": "https://www.example.com/my_webshell",
    "password": "admin123"
  },
  "img_src": "http://www.example.com/wp-content/uploads/myimgs/",
  "target": "/www/wwwroot/my_wordpress/wp-content/uploads/myimgs/",
  "support": {
    "img_type": ["jpg", "png", "gif", "jpeg", "webp"],
    "languages": ["html", "css", "javascript", "http", "bash"]
  }
}

step5. 使用下面的命令来运行 markdown 转换脚本

python loadmd.py -c config.json

脚本将会在 md 文件相同的路径下生成对应的 html 文件

未来计划

  • 添加功能: 引入时间戳防止重放攻击
  • 插件添加 “导出 config.json” 功能
  • 插件添加 “check webshell_address” 功能, 检查地址是否可用
  • 添加功能: 客户端在导出 html 时自动上传至 wordpress 并创建文章草稿

login_szu_network

项目地址:login_szu_network

一个用于在命令行环境下登陆深大校园网的脚本

效果展示:

img

使用说明

目前该项目仅支持 linux 系统

下载项目

git clone https://github.com/Caterpie771881/login_szu_network.git

给脚本赋予执行权限

cd login_szu_network
chmod +x login_szu_network.sh

使用 bash 执行脚本

bash login_szu_network.sh

更加跨平台的选择

什么? 你说你包不用 linux 的?

没关系, 跨平台的 python 版脚本供您选择, 只要您的操作系统支持 python, 都能使用该项目快乐上网

配置 python 环境

根据自己的操作系统使用对应的配置方式, 这里不展开

下载项目

git clone https://github.com/Caterpie771881/login_szu_network.git

执行脚本

python login_szu_network/login_szu_network.py

先有鸡还是先有蛋

“想要上网就得先下载这个脚本,但是要下载这个脚本就得先上网”

我知道你很急, 但是你先别急

对于这个哲学问题, 有几个解决办法:

  1. 使用U盘等介质将本项目拷贝到机器上
  2. 如果你使用 ssh 连接到机器上, 那应该可以 ctrl-C ctrl-V 将文件内容拷贝过去
  3. 使用 scp、curl 等远程传输方式将本项目传输到目标主机
  4. 手动将精简版脚本 lite.sh 写入机器(不推荐, 容易敲错)

以防有人不知道怎么做:

# 这里假设主机上没有 vi/nano 等文本编辑器
touch lite.sh
echo 'curl -s "https://drcom.szu.edu.cn/" -X POST \'>>lite.sh
echo '-H "Content-Type:application/x-www-form-urlencoded" \'>>lite.sh
echo '--data-raw "DDDDD=$1&upass=$2&0MKKey=123456"'>>lite.sh
# 使用方式
chmod +x lite.sh
bash lite.sh 这里填您的账号 这里填您的密码