java快捷输入命令_Deepin15和20使用命令行快捷键鼠标右键发布博客至博客园和为知笔记...

> 本博客具备很强的推广性,不限于博主使用的这些操作系统和博客平台

[TOC]

1. 引言

​在win10系统上,本人比较喜欢用为知笔记创作markdown博客,并通过其“分享到博客”的功能,发布博客到博客园。最近比较喜欢用Deepin系统作为主力操作系统,平时自己一些学习和实践的内容,很希望通过博客的方法发布出去,并保存在个人笔记中。

​但是为知笔记的Linux客户端劝退了我,同时又不希望使用博客园自带编辑器。因此花了点时间,做了一个替代方案,就是这篇博客的主要内容了。

​主要的思路分为两步:创作,发布。通过什么方式创作,和怎样发布。

2. 创作

在Linux下创建markdown文档,是非常容易的。比如在deepin系统,你可以通过以下三种方式:

vim编辑器

typora编辑器

vscode编辑器

vim 是自带编辑器,不比多说,适用于习惯vim操作的用户,比如我自己。创建markdown时,只要使用markdown语法就可以了。网上有很多vim支持markdown语法或者markdown(实时预览)的插件,估计配置比较复杂吧,我本人也不推荐配置vim实时预览markdown的方式。比较推荐浏览器插件打开本地.md文件进行预览的方式。推荐一个markdown priview plus的谷歌插件,但是样式不太好,可以自己加载别的样式。

vscode编辑器能够很好地支持vim插件,支持markdown及其预览的插件。也是非常不错的选择。

最后我选择了typora编辑器。它即可预览你所创作的文档,可选多种样式,能够支持侧边栏和大纲,像极了一款本地笔记本。如果配上就坚果云的同步,图库等,更像一款云笔记了。具体的功能这里不多说,有兴趣的同学可以自己去摸索。

> 本篇就是通过typora编辑创作。让人专注于内容编排。唯一不足的可能就是不支持vim编辑器。

综上,选择创作的方式,目的是创建一篇markdown格式的文档,这很容易实现。

重要的是创作完成之后,该如何发布出去。且看下文。

3. 发布

本篇博客主要想介绍3种发布方式,2种发布对象,涉及deepin系统的两个操作系统版本。

3.1 发布对象

博客园,为知笔记是我比较喜欢的组合。也许网友们有更多的其他选择,比如CSDN,开源中国,51CTO,掘金,简书,个人博客等。比较方面有有道云笔记,印象笔记,onenote,蚂蚁笔记等。

其实看懂了这篇博客,很容易主动学习和动手操作,应用到别的平台。希望大家有所收获。

> 很多东西我自己有很多都是现学现卖的,面向搜索引擎的编程......

确定了发布对象,就需要了解如何不登录就可以发布了。这要得益于这些平台开放API功能。

3.1.1 博客园的开放API

API在哪里

要使用博客园的API发布自己的博客,需要在自己博客里面设置允许这样的操作。

具体的设置地方,在自己博客后台管理-设置-最后几行,有允许MetaWeblog博客客户端访问的勾选项。

同时也可以看到MetaWeblog的访问地址(因人而异),点击这个url,就可以看到提供的api接口了。

如何使用API

Deepin系统调用这些API很方便,因为Deepin自带了Python3。

Python3如果需要使用这些API,需要import一个库,xmlrpc.client库。如果系统没有这个库,可以先安装。

sudo apt-get install python3-pip

sudo pip3 install xmlrpc.client

如果Python3 能够导入这个xmlrpc.client的话,基本上就成功一大半了。

下面的工作,就是编程了,可以先参考这篇CSDN博客

编写发布程序

已经万事具备了 ,只需要创建发布脚步。下面是我的代码,我把它命名为send_to_cnblogs.py

#!/usr/bin/python3

# 本脚本发送博客至www.cnblogs.com

import sys

import xmlrpc.client

class MyCnblogsAPI():

def __init__(self):

self.cnblogs_api = xmlrpc.client.ServerProxy("https://rpc.cnblogs.com/metaweblog/你的博客地址")

self.user = '博客园登录用户名'

self.password = '博客园登录用户密码'

self.blogid = self.__get_user_info()[0].get('blogid')

def __get_user_info(self):

return self.cnblogs_api.blogger.getUsersBlogs('',self.user,self.password)

def get_all_blogs(self):

"""

获取全部文章

"""

blog_id_title = {}

allblogs = self.cnblogs_api.metaWeblog.getRecentPosts(self.blogid,self.user,self.password,0)

for b in allblogs:

blog_id_title.update({b.get('title'):b.get('postid')})

return blog_id_title

def get_post_id(self,post_name):

"""

通过指定的博客名字获取对应的postid

"""

return self.get_all_blogs().get(post_name)

def edit_post(self,blog_path):

"""

重新编辑和发布

"""

post_name = blog_path.split('/')[-1].split('.')[0]

post_id = self.get_post_id(post_name)

with open(blog_path,'r') as blog:

blog_content = blog.read()

post_info = {

'title':post_name,

'description':blog_content,

'categories':['[]','[Markdown]'],#默认不发布到博客园首页候选区,默认markdown

}

if post_id:

print("文章已经存在,更新!")

self.cnblogs_api.metaWeblog.editPost(post_id,self.user,self.password,post_info,True)

else:

print("没有这篇文章,新建!")

self.cnblogs_api.metaWeblog.newPost(self.blogid,self.user,self.password,post_info,True)

if __name__ == "__main__":

if len(sys.argv) != 2:

print("未指定文章")

sys.exit(0)

markdown_file = str(sys.argv[1:][0])#这部分未做更加详细的解析,请留意

my_blog = MyCnblogsAPI()

my_blog.edit_post(markdown_file)

上面的代码主要实现了通过参数指定要发布markdown文件,发布该markdown文件内容到博客园的功能。

这个使用,只要在终端执行python3 send_to_cnblogs.py xxx.md就可把xxx发不到博客园了。

3.1.2 为知笔记的开放API

API在哪里

为知笔记的API地址在这里

官方很贴心地给出了优秀的示例代码,按照他们给的代码,很容易实现对自己为知笔记的操作。

如何使用API

该API是需要用js实现交互的。本人js零基础,只能面向搜索引擎编程了。

首先阅读一下为知笔记API快速入手(实际上我们只是发布文章,也不需要太过复杂的功能),从快速入手的代码,很容易就上手了。

> 没上手也没关系,我的代码改改就行。要改的很少很少,主要是环境部署.....

编写发布程序

Deepin也很容易使用nodejs,如果没有安装,命令行执行安装就行。

在Deepin 15.11 上,执行sudo apt-get install node npm

在Deepin V20上,执行sudo apt-get install nodejs npm

暂时不需要关注node的版本

下来看看我的代码段,我命名为send_to_wiz.js

//注意:如果下面三个包没有的话,deepin命令行执行npm install xxx即可。有包管理器就是方便。

var fs = require("fs")

var program = require("commander")

var linerByLine = require("n-readlines")

const axios = require('axios');

const AS_URL = 'https://as.wiz.cn';

//这里主要是通过命令行指定文件,因为要集成到deepin的文件管理器右键。它的右键实际就是用文件名做参数,调用你的命令。

program

.option('-f, --file

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[Deepin15和20使用命令行快捷键鼠标右键发布博客至博客园和为知笔记]http://www.zyiz.net/tech/detail-131625.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值