为了能到远方,脚下的每一步都不能少.|

顾子郤

园龄:11个月粉丝:5关注:2

博客上传脚本——博客园

致谢

本项目基于pycnblog,由dongfanger等贡献者完成开发。在此特别感谢原作者的杰出工作。同时,感谢所有为开源社区做出贡献的开发者们!

功能

目前,仅支持上传至博客园的随笔。

  • 默认“未发布”,可选择直接发布
  • 重复上传,则更新博客
  • 提供类别提示
  • 选择上传的类别。若选择的类别不存在,则会创建新类别

环境配置

  1. 克隆仓库

git clone git@github.com:Shane-shy/pycnblog.git

  1. 环境配置:需要pythonpip以及库函数pyyaml,库函数可以自动安装。三种情况命令行都会进行相应提示。

  2. 修改配置文件config.yaml

    • blog_url:在博客后台>设置,页面最下方的MetaWeblog访问地址
    • blog_id:blog_url的结尾部分
    • username:登录用户名,跟blog_id不一定是同一个,最好去用户设置内查看
    • password:在博客后台>设置,页面最下方的MetaWeblog访问令牌
  3. 相关补充文件

    • config.yaml
    # 注意引号
    blog_url: xxx
    blog_id: 'xxx'
    username: 'xxx'
    # MetaWeblog访问令牌
    password: 'xxx'
    # 是否生成图片替换后本地文件,默认False关闭
    gen_network_file: False
    # 上传后是否发布,默认未发布,设置True为发布
    publish: False
    # 图片自定义显示格式,默认不设置
    # 设置居中和宽度
    # img_format: "<center><img src="" style="width:100%;" /></center>"
    # 还原typora图片样式,居中,设置zoom,上传后无需再手动调整图片大小
    img_format: typora
    # 不设置
    #img_format: ""
    • linux_upload_markdown.sh
    #!/bin/bash
    # 设置getCategories.py的绝对路径
    PYTHON_CATEGORIES_PATH=""
    # 设置upload_markdown.py的绝对路径
    PYTHON_UPLOAD_PATH=""
    # &> /dev/null:重定向并丢弃,避免将检测结果输出在终端,
    # 检查是否安装了 Python
    if ! command -v python3 &> /dev/null;then
    echo "Python3 未安装,请安装 Python3。"
    exit 1
    fi
    # 检查是否安装了 pip
    if ! command -v pip3 &> /dev/null;then
    echo "pip3 未安装,请安装 pip3。"
    exit 1
    fi
    # 检查是否安装了所需的 Python 包
    REQUIRED_PKG="pyyaml"
    for PKG in $REQUIRED_PKG; do
    if ! pip3 show $PKG &> /dev/null; then
    echo "$PKG 未安装,正在安装..."
    pip3 install $PKG
    fi
    done
    # 检测是否配置了Python脚本路径
    if [ -z $PYTHON_UPLOAD_PATH ];then
    echo "未配置upload_markdown.py脚本路径"
    exit 0
    fi
    if [ -z $PYTHON_CATEGORIES_PATH ];then
    echo "未配置getCategories.py脚本路径"
    exit 0
    fi
    while true; do
    # read:按行读取,可以一次性读取多个值;参数p:读入字符串之前,打印的提示字符串;
    read -p "Please input file path: " filePath
    python "$PYTHON_CATEGORIES_PATH"
    read -p "Please input categories (separated by space): " category
    python "$PYTHON_UPLOAD_PATH" "$filePath" "$category"
    status=$?
    if [ $status -eq 0 ];then
    echo "Uploading success"
    break
    else
    echo "Uploading fail"
    fi
    done
    • mac_upload_markdown:应该与linux_upload_markdown.sh相同

使用方法

  • Linux:bash linux_upload_markdown.sh,根据提示执行之后操作。Please input file path:时,可以直接将文件拖入命令行,就能生成绝对路径。通过测试。
  • Macos:与Linux相同,通过测试。
  • Windows:本项目实际运行是python脚本,因此不存在操作系统限制。笔者能力有限,若希望实现Windows终端执行本脚本,请自行编写终端脚本文件。

常见问题

  1. 上传失败,留意终端报错信息。
  2. 图片无法上传、图片文件路径正确但程序无法找到。
    • 检查是否存在“空图像”,如![]()\<img src = "" />。若存在,请删除。
    • 检查图片路径是否存在括号嵌套问题,如![](())。使用正则表达式筛选括号嵌套问题难度大,笔者能力有限,没能实现,所以请修改图片名称或图片路径为非括号嵌套形式。

本文作者:顾子郤

本文链接:https://www.cnblogs.com/coder-shane/p/18210530

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   顾子郤  阅读(20)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起