[Share Experiences] deepin优雅地创作和分享技术博客
Experiences and Insight 679 views · 15 replies
Tofloor
poster avatar
木一明
deepin
2021-12-08 07:11
Author

1. 闲言碎语

好记性不如烂笔头。我们很多人喜欢写技术博客,构建知识库,然后把它们分享到网络平台,比如自建博客,主流博客平台,又或者记录在自己的笔记软件。

以下是我个人观点:

写技术博客,博文格式首选markdown。写makrdown,博文内容所见即所得比预览或者人脑渲染更爽。

博客发布平台,首选比较干净整洁的博客园。其他比如CSDN,简书,开源中国。很多人喜欢多平台一起发布,也没啥问题。

把博客当作代码,托管在github/gitee。把博客当作知识库,放在个人博客网站,笔记软件,导图软件,都是主流选择。

实际上我也想这么做,还没有付出更多的实际行动。

有人说,使用windowns系列操作系统+写作或者笔记软件来写,或者在线写不香吗?或者离线写好,同步软件同步,粘贴到在线平台不香吗?

实话说,挺香。

选择【创作】【保存】【同步】【分享】的组合方式很多,但是我还是喜欢找到适合自己的舒服的方式。

用typora写好了,右键分享一下,就能发布到博客,也挺香

我个人的组合方式:deepin+typora+cnblogs+wiznote

当然typora已经收费,wiznote已经发布Linux版本。更多更好的替代,都在排着队......

===================================================================

着重和正式强调:不要拿博客平台当图床用,后果自负!!!

===================================================================

2. 正式入题

之前也写过一篇比较全面的博客《Deepin15和20使用命令行快捷键鼠标右键发布博客至博客园和为知笔记》

在上面这篇博客中,你能在deepin上,用快捷键,用命令行,用右键三种姿势,来分享你的博客。

但是今天,我把代码改了改,2.0版本出来了。最重要的就是,能够上传图片了,香不香?

2.1 python3+xmrpc.client实现代码

以下是主要代码:


上面的代码,保存到一个路径下:/home/liwl/.liwl/deepin/scripts/send_to_cnblogs.py

注意赋予一个执行权限:chmod +x /home/liwl/.liwl/deepin/scripts/send_to_cnblogs.py

2.2 deepin创建右键发送

创建一个desktop文件:

sudo vim /usr/share/deepin/dde-file-manager/oem-menuextensions/deepin-send.desktop

内容如下:

[Desktop Entry]
Type=Application
Name=发布文档到
Actions=SendTocnblogs;SendTonsccwx;SendTowiznote
X-DFM-MenuTypes=SingleFile
MimeType=text/markdown

[Desktop Action SendTocnblogs]
Name=博客园
Exec=python3 /home/liwl/.liwl/deepin/scripts/send_to_cnblogs.py --file %U
Icon=send-to

2.3 Typora配置上传图片

如下图配置即可

需要注意的是,【上传服务设定】-【命令】要写脚本绝对路径和参数,如下:

python3 /home/liwl/.liwl/deepin/scripts/send_to_cnblogs.py --upload

下面这张图,就是我截图之后,粘贴在typora,自动上传的哦

597042-20211208145600288-763541364.png

3. 原理分析

其实也没啥原理,主要是以前没有注意到

简单理解:xmlrpc是一个协议,python实现了这个协议接口

python2的协议接口为:xmlrpclib,python3的协议接口包为:xmlrpc.client

博客园允许你使用这个协议来使用他们提供的接口,而且有个前提,你需要在自己的博客设置里面启用这个功能

Typora又恰好提供了使用命令或者脚本的方式来获取图片的url

所以,一切都是那么顺其自然,挺幸运

本篇博客就是在deepin系统下,写完了以后,右键发送到博客园的呢,右键

截图_选择区域_20211208152213.png

发送成功后,deepin上方有如下提示:

597042-20211208150659157-1026108972.png

Reply Favorite View the author
All Replies
木一明
deepin
2021-12-08 07:30
#1

post_name = os.path.basename(blog_file).split('.')[0] #修复博客名称有.md后缀问题

Reply View the author
babyfengfjx
deepin testing team
2021-12-08 07:42
#2

好牛皮!

以前是使用公司自己的代码仓库做图床,大佬的方式真心6!joy

Reply View the author
木一明
deepin
2021-12-08 07:49
#3
babyfengfjx

好牛皮!

以前是使用公司自己的代码仓库做图床,大佬的方式真心6!joy

可别乱搞shamed

Reply View the author
神末shenmo
Moderator
2021-12-08 07:57
#4

安利下小书匠,图片.png

Reply View the author
木一明
deepin
2021-12-08 08:00
#5
神末shenmo

安利下小书匠,图片.png

这个6了,这个简直就是降维打击了,哈哈

Reply View the author
神末shenmo
Moderator
2021-12-08 08:10
#6
It has been deleted!
神末shenmo
Moderator
2021-12-08 08:12
#7
木一明

这个6了,这个简直就是降维打击了,哈哈

不是说你的方案不好哈

我提的小书匠对标的是typora,这玩意要收费了,而且配置难度其实比小书匠高一点

我用的是gitee+hugo方案,目前发布的方法是我写了一个脚本一键推送

图床我现在是gitee图床,也没什么特别的原因,也许是为了刷commit显得我似乎很努力在开发什么东西(

Reply View the author
木一明
deepin
2021-12-08 08:16
#8
神末shenmo

不是说你的方案不好哈

我提的小书匠对标的是typora,这玩意要收费了,而且配置难度其实比小书匠高一点

我用的是gitee+hugo方案,目前发布的方法是我写了一个脚本一键推送

图床我现在是gitee图床,也没什么特别的原因,也许是为了刷commit显得我似乎很努力在开发什么东西(

对,选择太多,姿势舒服就行

Reply View the author
sammy-621
Moderator
2021-12-14 10:58
#9

blog地址给下?

Reply View the author
木一明
deepin
2021-12-14 11:35
#10
sammy-621

blog地址给下?

Reply View the author
sammy-621
Moderator
2021-12-15 01:50
#11

没学过Python,按贴子方法操作后,在Typora里测试,一直提示我账号有问题,但我账号真的没问题。可能是我看不懂错误提示。楼主帮忙看下?

我的账号信息cnblogs.json如下:
image.png

Typora报错信息如下:

Traceback (most recent call last):
File "/home/sammy/.sammy/deepin/scripts/send_to_cnblogs.py", line 132, in 
sammy_cnblogs = CnblogsAPI('/home/sammy/.sammy/deepin/scripts/cnblogs.json')
File "/home/sammy/.sammy/deepin/scripts/send_to_cnblogs.py", line 33, in __init__
self.__user_info = self.__cnblogs_api.blogger.getUsersBlogs('',self.__user,self.__password)
File "/usr/lib/python3.7/xmlrpc/client.py", line 1112, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python3.7/xmlrpc/client.py", line 1452, in __request
verbose=self.__verbose
File "/usr/lib/python3.7/xmlrpc/client.py", line 1154, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python3.7/xmlrpc/client.py", line 1170, in single_request
return self.parse_response(resp)
File "/usr/lib/python3.7/xmlrpc/client.py", line 1336, in parse_response
p.feed(data)
File "/usr/lib/python3.7/xmlrpc/client.py", line 439, in feed
self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 34, column 33
Reply View the author
木一明
deepin
2021-12-15 02:08
#12
sammy-621

没学过Python,按贴子方法操作后,在Typora里测试,一直提示我账号有问题,但我账号真的没问题。可能是我看不懂错误提示。楼主帮忙看下?

我的账号信息cnblogs.json如下:
image.png

Typora报错信息如下:

Traceback (most recent call last):
File "/home/sammy/.sammy/deepin/scripts/send_to_cnblogs.py", line 132, in 
sammy_cnblogs = CnblogsAPI('/home/sammy/.sammy/deepin/scripts/cnblogs.json')
File "/home/sammy/.sammy/deepin/scripts/send_to_cnblogs.py", line 33, in __init__
self.__user_info = self.__cnblogs_api.blogger.getUsersBlogs('',self.__user,self.__password)
File "/usr/lib/python3.7/xmlrpc/client.py", line 1112, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python3.7/xmlrpc/client.py", line 1452, in __request
verbose=self.__verbose
File "/usr/lib/python3.7/xmlrpc/client.py", line 1154, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python3.7/xmlrpc/client.py", line 1170, in single_request
return self.parse_response(resp)
File "/usr/lib/python3.7/xmlrpc/client.py", line 1336, in parse_response
p.feed(data)
File "/usr/lib/python3.7/xmlrpc/client.py", line 439, in feed
self._parser.Parse(data, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 34, column 33

url有问题哈,这个url是需要在个人博客里面开通的一个接口

image.png

Reply View the author
sammy-621
Moderator
2021-12-15 02:45
#13
木一明

url有问题哈,这个url是需要在个人博客里面开通的一个接口

image.png

Reply View the author
木一明
deepin
2021-12-15 02:48
#14
sammy-621

对的。搞定了吧?爽不爽?

Reply View the author
sammy-621
Moderator
2021-12-15 02:52
#15
木一明

对的。搞定了吧?爽不爽?

applaud

Reply View the author
niu0518
deepin
2021-12-16 01:23
#16

大佬牛皮

joy

Reply View the author
Use Markdown Editor
Loading