blogger博客的(非常)简单的cli界面
EasyBlogger的Python项目详细描述
easyblogger
==
构建状态覆盖状态
从命令行将博客发送给blogger。
为什么不使用googlecl?
----
我试过了。不起作用。`` googlecl"太粗糙了,不容易编写脚本。例如:
1.无法更新帖子
2。不适用于博客和帖子ID。
3.还有其他人,这又有什么用呢?
---------
1.提供命令行工具,并在
blogger托管的博客上创建、更新或删除帖子。
2。文章内容可以通过管道导入,因此您可以使用自己喜欢的方式生成html标记。pandoc goody-这样您就可以用pandoc支持的任何输入格式编写文档了。更多pandoc goodness-支持pandoc过滤器,因此您可以使用https://github.com/raghur/mermaid filter>;``美人鱼过滤器`<;创建关系图。asciidoc支持-支持asciidoc作为源格式,并使用
``asciidoctor`&;``asciidoctor diagram`
6。您还可以将现有文章导出为您最喜欢的轻量级标记格式,如标记等,作为单独的文件。然后在真正的编辑器中编辑它们,并将它们发布回来!所有pandoc输出格式!< > 7。理解特别标记的注释-因此您只需将一个
文件交给它,它就会知道要做什么-非常适合从vim发布
代码::bash
它还安装
``easyblogger``脚本
~~~~~~
您在cygwin上,您只需安装windows dl并将
``pandoc.exe``放在路径
上的某个位置,即可对该工具进行访问,以管理博客。googleapi使用
oauth2.
>1。首先,获取您的blog id。您可以通过查看
源文件来查找blog id。例如,在我的博客上,我在顶部有以下几行:
…代码::html
<;link rel="alternate"type="application/atom+xml"title="漂亮的小道消息-atom"href="http://blog.rraghur.in/feeds/posts/default"/>;
<;link rel="alternate"type="application/rss+xml"title="漂亮的花边新闻-rss"href="http://blog.rraghur.in/feeds/posts/default?"alt=rss"/>;
<;link rel="service.post"type="application/atom+xml"title="妙趣横生-atom"href="http://www.blogger.com/feeds/7642453/posts/default"/>;
在最后一个链接上,数字"7642453"是blogid
2。在Linux上授权
**代码::bash
需要以根用户身份运行以下操作:首先查找您的博客ID
easyblogger--blog id<;yourblogid>;获取
您可能会看到一个chrome警告,它可以作为根目录运行,但您可以忽略这一点。一旦您授权,
` ` ~/.easyblogger.credentials``将使用OAuth2令牌在Windows上创建
**如果您的"path"变量具有python scripts文件夹,那么
应该只能在
命令窗口中运行"easyblogger--blogid<;id>;get`"。否则,打开一个"cmd"窗口,导航到
`<;python install folder>;\scripts``并运行
``python easyblogger--blogid<;yourblogid>;get``
>3。准备就绪!
就这样-你们都准备好了!
您需要重复如果您曾经
更改博客、撤消权限或身份验证令牌过期,请执行OAuth2授权过程。
----
1。在你的`~/.vimrc``
代码:vim
func!s:systemwrapper(cmd)
echom a:cmd
let output=system(a:cmd)
返回output
endfunction
func!blogsave(文件)
"要调试,请替换为
"exec"!easyblogger文件"。a:file
let output=s:systemwrapper("easyblogger文件")。a:文件)
echom output
endfunction
命令!blogsave调用blogsave(展开("%:p"))
>2。开始写一个post-创建一个标记文件(.md),在注释中使用frontmatter
。代码::标记
<;!--
id:
title:title
标签:[any,comma,separated,labels]
格式:markdown
发布:true
过滤器:<;过滤器路径>;
-->;
请注意,从EasyLogger 3.0开始,首选的frontmatter格式是从hugo借用的
。以前版本的frontmatter头文件已被弃用。但是,如果"easyblogger"使用旧键找到header
,则它将使用它们。虽然应该没有选择旧格式的原因,但如果出于任何原因需要使用这种格式,则必须在"get"子命令中指定"legacy frontmatter"标志。有关更多详细信息,请参阅frontmatter部分
*仍然支持传统frontmatter格式*,但我们鼓励您使用新格式**
:
postid:
title:title
labels:any,逗号,分隔,labels
格式:markdown
published:true
筛选器:<;筛选器路径>;
-->;
2。如果您喜欢使用"asciidoc",请使用以下注释
标题:
…代码::asciidoc
+++
id:
标题:标题
标签:[任意,逗号,分隔,标签]
格式:ascidoc
已发布:true
++
*仍支持传统的frontmatter格式***,但我们鼓励您使用新格式**
。代码::asciidoc
//
postid:
title:title
labels:any,comma,separated,labels
format:asciidoc
published:true
//
asciidoc不需要过滤器-它有一个更好的插件系统。
安装了"ascidoctor"和"ascidoctor图表"gems
>1。完成后,调用"`:blogsave`",您的日志将被发布
usage
----
getting posts
~~~~~~~~~~~~~
>1。获取默认输出的帖子ID、标题和URL列表。
…代码::bash
http://blog.rraghur.in/2013/08/从wordpresscom移到blogger.html
…
…
…
显示10行
2。按标签或搜索筛选;指定要返回的"max"结果。
…代码::bash
5
3.按其ID获取特定的帖子…代码::bash
通过它的url获取特定的帖子。代码::bash
#通过url获取特定文章
easyblogger--blogid 7642453 get-u https://blog.rraghur.in/2015/06/js-development-2015.html
5。控制打印出哪些字段。
…代码::bash
在(轻量级)标记中输出-非常适合更新。
-如果它是一个帖子,则将其打印到控制台。
…代码::bash
easyblogger--blogid 7642453 get-p 37283347577998671-d markdown
它还包含一个头,允许您编辑文件,并使用下面的file子命令更新文章写入文件(名称
源自标题)
…代码::bash
easyblogger--blogid 7642453 get-l vim-d markdown
-如果你想获得一篇文章作为一个文件,请指定"w"或"write files"。代码::bash
easyblogger--blogid 7642453 get-p 37283347577998671-d markdown--write files
-支持"pandoc"支持的所有标记格式
。代码::bash
每次指定"blogid"都很痛苦。您可以通过创建默认args文件` ~/.easyblogger``来设置默认的
blogid,如下所示:
。代码::bash
cat>;~/.easyblogger
--blogid
234567
代码::bash
easyblogger get
>您可以通过在
命令行上提供参数来覆盖文件中的参数
请在google的blogger dev
group上请求此功能-一旦/如果它可用,我将添加此功能。]
blog现在默认创建为草稿。您可以用
`--publish``标志覆盖它,该标志将直接发布博客(当前的
行为)
代码::bash
!
从任何html生成机制中导出
…代码::bash
pandoc-f markdown-easyblogger--blogid 6136696198547817747 post-t'hello from pandoc'-f-
"格式
arg
代码::bash
LaTex
easyblogger post-t"Hello from Pandoc"--format markdown-c"heading2"
<234234234234323
update posts
~~~~~~~~~~~~~~
update与修补程序请求一起工作-仅指定需要更改的内容
Blogger API不允许blog permalink更新-因此如果
您想要更改,您将需要删除并创建另一个帖子
(尽管您将可能会失去评论等-所以只有当你已经发布了它时才可行。代码::bash
easyblogger update-t'a new title'-l"new,labels"3295765957555899963
您还可以通过传入`--file``参数来更新内容。
在works中对其进行管道传输-也可以使用`--file`;就像这样
。编码::bash
pandoc-f markdown-easyblogger-update-t'hello from pandoc'-file-329576595755555899963
这是h1
这是h2
>一些段落文本
[eof]
>一些段落文本
[eof]
我写的`` easyblogger``脚本主要是为了让我可以从vim上写博客。如果您的
文件有格式正确的注释,那么"easyblogger"会根据元数据计算出要做什么(插入或更新)。
代码::bash
cat myblogpost.md
<;!--
标题:这是您的标题
PostID:
标签:A、B、C
格式:标记
发布:False
筛选器:<;已安装筛选器的路径>;
-->;
这是我的内容
上面的示例使用传统的FrontMatter格式。我们鼓励您使用新的格式,允许附加元数据。
代码::bash
easyblogger文件myblogpost.md
和"easyblogger"将用生成的post的"postd"
更新您的post文档。现在,如果您编辑文档并使用
同一命令再次发布,您的文章将被更新。
删除文章
~~~~~~~~~~~~~~~
要删除文章,您需要指定文章id
。代码::bash
easyblogger delete 234546720561632959
frontmatter
==
正如您所看到的,easyblogger依赖于一个注释头,其中带有特定的
键,用于获取有关post的元数据,并驱动
程序的行为。当"easyblogger"启动时,我已经想出了自己的一组
(最小)键。在2.x天的时间里,我为hugo project中定义的
frontmatter格式(以及blogger使用的一些特定
键)构建了支持,如果您想
从blogger迁移到hugo,这尤其有用。
header格式可以是toml或yaml。新的frontmatter键
是输入和输出的默认键。
output rules
----
当使用"get"写入输出文件时,easyblogger将在1中写入
头。文档格式-asciidoc:toml中的头,由
``++``2括起。传统头键-仅当命令行指定
``--legacy frontmatter``标志
输入规则
----
1时。用"`++``"括起来的头-解析为toml
2。以html注释或`//``编码的头-解析为yaml
3。如果doc是toml,如果未指定
,则默认格式应为"asciidoc"。如果doc是yaml,则如果未指定
,则默认格式应为"降价"。
否则,将需要新样式的hugo
兼容头。
frontmatter keys
~~~~~~~~~~~~~~~~~
-新样式(hugo)
……代码::toml
+++
title="proxy pac file for work"
id="293493242234"
标记=["rants","tips","utilities",]
别名=["http://niftybytes.blogspot.com/2018/04/proxy-pac-file-for-work\u 30.html",]
publishdate="2018-04-30t12:42:00+05:30"
草稿=假
date="2018-04-30t12:42:00+05:30"
lastmod="2018-04-30t12:47:37+05:30"
+++
-旧式(简易记录器)
:
<;!--
标签:[rants,tips,utilities]
postid:'8010087245053438499'
已发布:true
标题:用于工作的代理pac文件
-->;
将easyblogger用作库
使用easyblogger类
记住:
1.使用您自己的api客户端id(见下文)
2。包括一个属性和一个到easyblogger的链接-不是强制性的-但是要注意:)
https://code.google.com/api/console>;`\在api访问页面创建客户机id
和密钥,并请求blogger api
访问。一旦你获得了API访问授权,你就可以开始了。
只要用你的客户ID创建一个"easyblogger"构造函数,如果你是通过外壳集成的话,然后在命令行中使用`--client id``和`--secret``参数粘贴api密钥和client
id。您还可以将它们粘贴到`~/.easyblogger``文件中,以避免每次都指定
==
1。克隆回购协议
2。启动virtualenv-``virtualenv.dev`
3。激活它-``.dev\scripts\activate`
4。安装依赖项-``pip install-r requirements.txt`
5。`` pip install-e.```
>正在运行测试
~~~~~~~~~~~~~~~~
>1。退出任何virtualenvs
2。运行"tox"`
…|构建状态图像::https://travis-ci.org/raghur/easyblogger.svg?branch=master
:目标:https://travis ci.org/raghur/easyblogger
…|覆盖状态图像::https://coveralls.io/repos/github/raghur/easyblogger/badge.svg?branch=master
:目标:https://coveralls.io/github/raghur/easyblogger?分支=主
==
构建状态覆盖状态
从命令行将博客发送给blogger。
为什么不使用googlecl?
----
我试过了。不起作用。`` googlecl"太粗糙了,不容易编写脚本。例如:
1.无法更新帖子
2。不适用于博客和帖子ID。
3.还有其他人,这又有什么用呢?
---------
1.提供命令行工具,并在
blogger托管的博客上创建、更新或删除帖子。
2。文章内容可以通过管道导入,因此您可以使用自己喜欢的方式生成html标记。pandoc goody-这样您就可以用pandoc支持的任何输入格式编写文档了。更多pandoc goodness-支持pandoc过滤器,因此您可以使用https://github.com/raghur/mermaid filter>;``美人鱼过滤器`<;创建关系图。asciidoc支持-支持asciidoc作为源格式,并使用
``asciidoctor`&;``asciidoctor diagram`
6。您还可以将现有文章导出为您最喜欢的轻量级标记格式,如标记等,作为单独的文件。然后在真正的编辑器中编辑它们,并将它们发布回来!所有pandoc输出格式!< > 7。理解特别标记的注释-因此您只需将一个
文件交给它,它就会知道要做什么-非常适合从vim发布
代码::bash
它还安装
``easyblogger``脚本
``pandoc.exe``放在路径
oauth2.
>1。首先,获取您的blog id。您可以通过查看
源文件来查找blog id。例如,在我的博客上,我在顶部有以下几行:
…代码::html
<;link rel="alternate"type="application/atom+xml"title="漂亮的小道消息-atom"href="http://blog.rraghur.in/feeds/posts/default"/>;
<;link rel="alternate"type="application/rss+xml"title="漂亮的花边新闻-rss"href="http://blog.rraghur.in/feeds/posts/default?"alt=rss"/>;
<;link rel="service.post"type="application/atom+xml"title="妙趣横生-atom"href="http://www.blogger.com/feeds/7642453/posts/default"/>;
在最后一个链接上,数字"7642453"是blogid
2。在Linux上授权
**代码::bash
需要以根用户身份运行以下操作:首先查找您的博客ID
easyblogger--blog id<;yourblogid>;获取
您可能会看到一个chrome警告,它可以作为根目录运行,但您可以忽略这一点。一旦您授权,
` ` ~/.easyblogger.credentials``将使用OAuth2令牌在Windows上创建
**如果您的"path"变量具有python scripts文件夹,那么
应该只能在
命令窗口中运行"easyblogger--blogid<;id>;get`"。否则,打开一个"cmd"窗口,导航到
`<;python install folder>;\scripts``并运行
``python easyblogger--blogid<;yourblogid>;get``
>3。准备就绪!
就这样-你们都准备好了!
您需要重复如果您曾经
更改博客、撤消权限或身份验证令牌过期,请执行OAuth2授权过程。
1。在你的`~/.vimrc``
代码:vim
func!s:systemwrapper(cmd)
echom a:cmd
let output=system(a:cmd)
返回output
endfunction
func!blogsave(文件)
"要调试,请替换为
"exec"!easyblogger文件"。a:file
let output=s:systemwrapper("easyblogger文件")。a:文件)
echom output
endfunction
命令!blogsave调用blogsave(展开("%:p"))
>2。开始写一个post-创建一个标记文件(.md),在注释中使用frontmatter
。代码::标记
<;!--
id:
title:title
标签:[any,comma,separated,labels]
格式:markdown
发布:true
过滤器:<;过滤器路径>;
-->;
请注意,从EasyLogger 3.0开始,首选的frontmatter格式是从hugo借用的
。以前版本的frontmatter头文件已被弃用。但是,如果"easyblogger"使用旧键找到header
,则它将使用它们。虽然应该没有选择旧格式的原因,但如果出于任何原因需要使用这种格式,则必须在"get"子命令中指定"legacy frontmatter"标志。有关更多详细信息,请参阅frontmatter部分
*仍然支持传统frontmatter格式*,但我们鼓励您使用新格式**
:
title:title
labels:any,逗号,分隔,labels
格式:markdown
published:true
筛选器:<;筛选器路径>;
-->;
2。如果您喜欢使用"asciidoc",请使用以下注释
标题:
…代码::asciidoc
+++
id:
标题:标题
标签:[任意,逗号,分隔,标签]
格式:ascidoc
已发布:true
++
*仍支持传统的frontmatter格式***,但我们鼓励您使用新格式**
。代码::asciidoc
//
postid:
title:title
labels:any,comma,separated,labels
format:asciidoc
published:true
//
asciidoc不需要过滤器-它有一个更好的插件系统。
安装了"ascidoctor"和"ascidoctor图表"gems
>1。完成后,调用"`:blogsave`",您的日志将被发布
usage
----
getting posts
~~~~~~~~~~~~~
>1。获取默认输出的帖子ID、标题和URL列表。
…代码::bash
http://blog.rraghur.in/2013/08/从wordpresscom移到blogger.html
…
…
…
显示10行
2。按标签或搜索筛选;指定要返回的"max"结果。
…代码::bash
5
3.按其ID获取特定的帖子…代码::bash
通过它的url获取特定的帖子。代码::bash
#通过url获取特定文章
easyblogger--blogid 7642453 get-u https://blog.rraghur.in/2015/06/js-development-2015.html
5。控制打印出哪些字段。
…代码::bash
在(轻量级)标记中输出-非常适合更新。
-如果它是一个帖子,则将其打印到控制台。
…代码::bash
easyblogger--blogid 7642453 get-p 37283347577998671-d markdown
它还包含一个头,允许您编辑文件,并使用下面的file子命令更新文章写入文件(名称
源自标题)
…代码::bash
easyblogger--blogid 7642453 get-l vim-d markdown
-如果你想获得一篇文章作为一个文件,请指定"w"或"write files"。代码::bash
easyblogger--blogid 7642453 get-p 37283347577998671-d markdown--write files
-支持"pandoc"支持的所有标记格式
。代码::bash
每次指定"blogid"都很痛苦。您可以通过创建默认args文件` ~/.easyblogger``来设置默认的
blogid,如下所示:
。代码::bash
cat>;~/.easyblogger
--blogid
234567
代码::bash
easyblogger get
>您可以通过在
命令行上提供参数来覆盖文件中的参数
请在google的blogger dev
group上请求此功能-一旦/如果它可用,我将添加此功能。]
blog现在默认创建为草稿。您可以用
`--publish``标志覆盖它,该标志将直接发布博客(当前的
行为)
代码::bash
!
从任何html生成机制中导出
…代码::bash
pandoc-f markdown-easyblogger--blogid 6136696198547817747 post-t'hello from pandoc'-f-
"格式
arg
代码::bash
LaTex
easyblogger post-t"Hello from Pandoc"--format markdown-c"heading2"
<234234234234323
update posts
~~~~~~~~~~~~~~
update与修补程序请求一起工作-仅指定需要更改的内容
Blogger API不允许blog permalink更新-因此如果
您想要更改,您将需要删除并创建另一个帖子
(尽管您将可能会失去评论等-所以只有当你已经发布了它时才可行。代码::bash
easyblogger update-t'a new title'-l"new,labels"3295765957555899963
您还可以通过传入`--file``参数来更新内容。
在works中对其进行管道传输-也可以使用`--file`;就像这样
。编码::bash
pandoc-f markdown-easyblogger-update-t'hello from pandoc'-file-329576595755555899963
这是h1
这是h2
>一些段落文本
[eof]
>一些段落文本
[eof]
我写的`` easyblogger``脚本主要是为了让我可以从vim上写博客。如果您的
文件有格式正确的注释,那么"easyblogger"会根据元数据计算出要做什么(插入或更新)。
代码::bash
cat myblogpost.md
<;!--
标题:这是您的标题
PostID:
标签:A、B、C
格式:标记
发布:False
筛选器:<;已安装筛选器的路径>;
-->;
这是我的内容
上面的示例使用传统的FrontMatter格式。我们鼓励您使用新的格式,允许附加元数据。
代码::bash
easyblogger文件myblogpost.md
和"easyblogger"将用生成的post的"postd"
更新您的post文档。现在,如果您编辑文档并使用
同一命令再次发布,您的文章将被更新。
删除文章
~~~~~~~~~~~~~~~
要删除文章,您需要指定文章id
。代码::bash
easyblogger delete 234546720561632959
frontmatter
==
正如您所看到的,easyblogger依赖于一个注释头,其中带有特定的
键,用于获取有关post的元数据,并驱动
程序的行为。当"easyblogger"启动时,我已经想出了自己的一组
(最小)键。在2.x天的时间里,我为hugo project中定义的
frontmatter格式(以及blogger使用的一些特定
键)构建了支持,如果您想
从blogger迁移到hugo,这尤其有用。
header格式可以是toml或yaml。新的frontmatter键
是输入和输出的默认键。
output rules
----
当使用"get"写入输出文件时,easyblogger将在1中写入
头。文档格式-asciidoc:toml中的头,由
``++``2括起。传统头键-仅当命令行指定
``--legacy frontmatter``标志
输入规则
----
1时。用"`++``"括起来的头-解析为toml
2。以html注释或`//``编码的头-解析为yaml
3。如果doc是toml,如果未指定
,则默认格式应为"asciidoc"。如果doc是yaml,则如果未指定
,则默认格式应为"降价"。
否则,将需要新样式的hugo
兼容头。
frontmatter keys
~~~~~~~~~~~~~~~~~
-新样式(hugo)
……代码::toml
+++
title="proxy pac file for work"
id="293493242234"
标记=["rants","tips","utilities",]
别名=["http://niftybytes.blogspot.com/2018/04/proxy-pac-file-for-work\u 30.html",]
publishdate="2018-04-30t12:42:00+05:30"
草稿=假
date="2018-04-30t12:42:00+05:30"
lastmod="2018-04-30t12:47:37+05:30"
+++
-旧式(简易记录器)
:
<;!--
标签:[rants,tips,utilities]
postid:'8010087245053438499'
已发布:true
标题:用于工作的代理pac文件
-->;
将easyblogger用作库
使用easyblogger类
记住:
1.使用您自己的api客户端id(见下文)
2。包括一个属性和一个到easyblogger的链接-不是强制性的-但是要注意:)
https://code.google.com/api/console>;`\在api访问页面创建客户机id
和密钥,并请求blogger api
访问。一旦你获得了API访问授权,你就可以开始了。
只要用你的客户ID创建一个"easyblogger"构造函数,如果你是通过外壳集成的话,然后在命令行中使用`--client id``和`--secret``参数粘贴api密钥和client
id。您还可以将它们粘贴到`~/.easyblogger``文件中,以避免每次都指定
1。克隆回购协议
2。启动virtualenv-``virtualenv.dev`
3。激活它-``.dev\scripts\activate`
4。安装依赖项-``pip install-r requirements.txt`
5。`` pip install-e.```
>正在运行测试
~~~~~~~~~~~~~~~~
>1。退出任何virtualenvs
2。运行"tox"`
…|构建状态图像::https://travis-ci.org/raghur/easyblogger.svg?branch=master
:目标:https://travis ci.org/raghur/easyblogger
…|覆盖状态图像::https://coveralls.io/repos/github/raghur/easyblogger/badge.svg?branch=master
:目标:https://coveralls.io/github/raghur/easyblogger?分支=主