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?分支=主



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate、Spring和SLF4J绑定   java如何准确地导航导航地图。天花板入口()工作?   从excel文件导入数据时发生java异常   java如何将地图转换为url查询字符串?   java HSQLDB在数据库中插入值   java将元素从JTextField添加到ArrayList   java如何使用SetDataSource从名称中有空格的MP3文件中获取唱片集艺术   java排序ArrayList<ArrayList<String>>作为行字段   java在拼写检查器中更新正确的拼写   哪里可以找到JavaAPI类图?   spring boot如何在自动生成的swagger java类中屏蔽任何参数   java使用哪种设计模式(我需要类似中介模式的东西)?   java为什么JTextfield没有出现在这个实例中?   如何在Java中向当前日期添加一个月?   安卓如何使java类可序列化,从而扩展不可序列化的