• Typora发布文章到博客园


    Typora-发布文章到博客园

    发布文件到博客园,需要先对博客园进行设置:

    1. 允许MetaWeblog API 客户端访问

    进入帐户中心, 点击博客设置

    image-20220617165209966

    滑动滚动条到最底部,点击其它设置,开启“允许 MetaWeblog 博客客户端访问”:

    image-20220617165321640

    注意上面的MetaWeblog访问地址:https://rpc.cnblogs.com/metaweblog/yongdaimi, 可以先记录下来,这个我们后面会用到。

    注意:看清自己的地址,不要把我的地址直接拷过去。

    2. 准备上传脚本

    cnblogsImage.py

    import xmlrpc.client
    import ssl
    import os
    import json
    import sys
    ssl._create_default_https_context = ssl._create_unverified_context
    
    rootPath = os.path.abspath(os.path.dirname(__file__))
    with open(os.path.join(rootPath,"cnblogs.json"),"rb") as f:
        config = json.loads(f.read())
    
    
    def uploadImage(images):
        for image in images:
            with open(image,"rb") as f:
                imageData = f.read()
    
            baseName = os.path.basename(image)
            suffix = baseName.split(".")[-1]
            file = dict(
                bits = imageData,
                name = baseName,
                type = f"image/{suffix}"
            )
            proxy = xmlrpc.client.ServerProxy(config["url"])
            s = proxy.metaWeblog.newMediaObject('', config['username'], config['password'],file)
            print(s["url"])
    
    if __name__ == '__main__':
        uploadImage(sys.argv[1:])
    
    

    拷贝上述代码到一个单独的python文件,将文件重命名为:cnblogsImage.py

    cnblogsArticle.py

    import xmlrpc.client
    import ssl
    import os
    import json
    import sys
    ssl._create_default_https_context = ssl._create_unverified_context
    
    rootPath = os.path.abspath(os.path.dirname(__file__))
    with open(os.path.join(rootPath,"cnblogs.json"),"rb") as f:
        config = json.loads(f.read())
    
    def uploadArticle(articles):
        for article in articles:
            with open(article,"r",encoding="utf8") as f:
                data = f.read()
    
            title = os.path.basename(article)[:-3]
            post = dict(
                dateCreated = xmlrpc.client.DateTime(),
                description = data,
                title = title,
                categories = ['[Markdown]'],
            )
            proxy = xmlrpc.client.ServerProxy(config["url"])
            s = proxy.metaWeblog.newPost('', config['username'], config['password'],post,True)
            # 输出文章连接
            userName = config["url"].split("/")[-1]
            print(f"https://www.cnblogs.com/{userName}/p/{s}.html")
    
    if __name__ == '__main__':
        uploadArticle(sys.argv[1:])
    
    

    拷贝上述代码到一个单独的python文件,将文件重命名为:cnblogsArticle.py

    cnblogs.json

    {
    	"url": "https://rpc.cnblogs.com/metaweblog/yongdaimi",
    	"username": "zhangsan",
    	"password": "123456"
    }
    

    拷贝上述代码到一个单独的json文件,将文件重命名为:cnblogs.json, 接着:

    • 修改url的内容为之前保存的MetaWeblog访问地址;
    • 将username修改为你的博客园的用户名;
    • 将password修改为你的博客园的密码;

    ---------------------------------------------------------------------------------- 2022-06-29 更新 ------------------------------------------------------------------------------------------ 

    博客园已更新访问策略,目前只能使用令牌登录(Token) 登录, 创建访问令牌后填在原来密码的地方,即可正常使用,访问令牌的获取方式在其它设置项中:

    image-20220629102726160

    image-20220629102830826

    点击上方的复制按钮,用访问令牌来替换cnblogs.json文件中的password项的值,上述操作全部做完之后,将以上三个文件放置到一个指定的地方,比如我放置在:E:\opt\Typora\command 目录下:

    image-20220617170718911

    位置可随便指定。

    3. 配置图片上传

    打开Typora, 依次点击“文件”-“偏好设置”-“图像”,修改红框所示位置:

    image-20220617170915769

    在命令处输入上传图片时需要执行的python脚本的位置。比如我的放在:

    E:/opt/Typora/command/cnblogsImage.py
    

    修改完毕后可以点击“验证图片上传选项”按钮,看是否能够成功上传图片:

    image-20220617171052893

    出现上图提示则代表可以顺利上传图片。

    4. 配置文章发布

    依次点击“文件”-“偏好设置”-“导出”,先添加一个导出选项:

    image-20220617171428458

    选择“自定义”:

    image-20220617171515700

    在弹出的对话框中选择确定,这里可以给新添加的导出项配置一个名称,比如我的已配置成“Cnblogs", 接下来需要设置导出指令:

    python E:/opt/Typora/command/cnblogsArticle.py ${currentPath}
    

    image-20220617171832676

    注意:

    我已经在系统环境变量里配置好的python解释器的路径,所以我可以把命令直接写成"python xxx" 这种形式,没有配置的话必须显式指明python解释器的实际路径,如:E:/sys/Python/python.exe E:/opt/Typora/command/cnblogsArticle.py ${currentPath}

    ${currentPath} 表示的是当前待发布文章的文件路径。

    5. 验证发布

    在导出时选择刚才配置的导出项:

    image-20220617172448101

    出现这个就代表文章发布成功了:

    image-20220617172531857

    到博客园首页看下:

    image-20220617172759534

    6. 不足之处

    有一个不足的地方就是没有办法设置分类,通过博客园网站发布的文章是可以设置分类的,方便后期查找,这种方式的话目前只能在发布完成之后手动分类了。

    参考链接

    1. Typora实现多平台发布文章
  • 相关阅读:
    判断添加用户名的唯一性
    显示用户登录用户名
    security安全框架,用户登录安全认证与退出
    mybatis分页助手分页
    javaWeb删除一条及多条数据
    javaWeb手动分页步骤
    自定义格式日期
    iOS开发UI篇—懒加载
    IOS-添加分段控件SegmentControl
    iOS设计模式——Category
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/16386543.html
Copyright © 2020-2023  润新知