热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Typora发布文章到博客园

目录Typora发布文章到博客园1.导出脚本cnblogs.json(配置文件)cnblogsImage.py(上传图片)cnblogsArticle.py(上传文章)2.Topo

文章目录[隐藏]

  • Typora发布文章到博客园
    • 1.导出脚本
      • cnblogs.json(配置文件)
      • cnblogsImage.py(上传图片)
      • cnblogsArticle.py(上传文章)
    • 2.Topora、博客配置
      • 1.博客配置
      • 2.发布文章
      • 3.发布图片
    • 3.使用
      • 1.上传本地图片
      • 2.发布文章
    • 4.FAQ
      • 文件名不规范


目录

  • Typora发布文章到博客园
    • 1.导出脚本
      • cnblogs.json(配置文件)
      • cnblogsImage.py(上传图片)
      • cnblogsArticle.py(上传文章)
    • 2.Topora、博客配置
      • 1.博客配置
      • 2.发布文章
      • 3.发布图片
    • 3.使用
      • 1.上传本地图片
      • 2.发布文章
    • 4.FAQ
      • 文件名不规范

Typora发布文章到博客园

1.导出脚本

image-20220608104915796

cnblogs.json(配置文件)

url 是MetaWeblog访问地址: https://rpc.cnblogs.com/metaweblog/wh984763176

注意:现在用户用户命名已经不能访问,需要创建个人令牌,令牌作为密码

{
  "url": "https://rpc.cnblogs.com/metaweblog/wh984763176",
  "username": "984763176@qq.com",
  "password": "8FA8E7601A47A1F0273C4DB79B520C08F662A12754C2E376F741B9E"
}

image-20220626022220678

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:])

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(article):
    # 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")

# 遍历上传
def uploadArticles(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")

# 参考文章:https://www.cnblogs.com/Hellowshuo/p/15646255.html
# /Users/didi/mine/software/idea/code/python_study/learn_py/typora2blog/cnblogsArticle.py ${currentPath}
if __name__ == '__main__':
    # uploadArticlePath = "/Users/didi/mine/工作/个人笔记/02个人笔记/99-学习/spark大佬总结.md"
    uploadArticlePath = sys.argv[1:] #参数是个数组
    print(uploadArticlePath)
    # 遍历上传
    uploadArticles(uploadArticlePath)

2.Topora、博客配置

1.博客配置

打开博客园个人博客->设置->其他设置->☑️允许 MetaWeblog 博客客户端访问

2.发布文章

打开Typora->偏好设置->导出->点击➕号自定义发布接口 ->发布至博客园->配置执行命令

执行命令

/Library/Frameworks/Python.framework/Versions/3.8/bin/python3 /Users/didi/mine/software/idea/code/python_study/learn_py/typora2blog/cnblogsArticle.py ${currentPath}

image-20220608103214855

3.发布图片

打开Typora->偏好设置->图像

配置执行命令 ->验证下

/Library/Frameworks/Python.framework/Versions/3.8/bin/python3 /Users/didi/mine/software/idea/code/python_study/learn_py/typora2blog/cnblogsImage.py

本地图片路径配置

image-20220608104434102

上传图片配置

image-20220608103411275

3.使用

1.上传本地图片

1)原来:本地文章的图片是本地的相对路径

image-20220608104508675

2)点击上传图片

image-20220608104538605

3)图片上传成功后,路径变为图床路径

image-20220608104625230

2.发布文章

1.选择文章->文件->导出->发布至博客园

image-20220608104752993

发布成功

image-20220607205435995

4.FAQ

文件名不规范

本地文件名如Hive学习(12)【参数调优】.md会找不到,改为Hive-参数调优.md就可以了,不知道为啥

参考:typora实现多平台发布文章

https://www.52pojie.cn/thread-1556163-1-1.html


推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
author-avatar
你说Dan_795
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有