iblog语法高亮示例
--------------------------------------------------------------------------------------
iblog 是一款 Sublime Text 2 博客插件,目前只支持cnblog。
项目地址:https://github.com/iskeeter/iblog
--------------------------------------------------------------------------------------
使用以下语法指定代码所使用的语言:
```python
# 代码写在这里
```
下面是语法高亮示例:
```python
class PublishCommand(sublime_plugin.TextCommand):
def run(self, edit):
if self.view.is_dirty():
sublime.error_message(u'【错误】请先保存在发布!')
return
self.header_region = _get_header_region(self.view)
if not self.header_region:
sublime.error_message(u'【错误】请填写头部的博客信息!可按<Shift+F8>插入博客信息模板')
return
# status: 0-没有执行,1-正在执行,2-执行成功并停止,3-执行失败停止
self.status = 0
self.file_name = self.view.file_name()
header_str = self.view.substr(self.header_region)
self.blog_info = _parse_blog_info(header_str)
# self.action: 1--新建,2--更新
if not self.blog_info['blog_id']:
self.action = 1
else:
self.action = 2
global blog_settings
if not blog_settings:
settings = _load_setting()
blog_settings = {
'login_name': settings.get('login_name'),
'login_password': settings.get('login_password'),
'xml_rpc_url': settings.get('xml_rpc_url'),
}
file_type = check_file_type(self.file_name)
content = ''
if file_type == F_MD:
region = sublime.Region(0, len(self.view))
content = self._markdown2html(self.view.substr(region))
else:
body_region = sublime.Region(self.header_region.end(), len(self.view))
content = header_str + _plain2html(self.view.substr(body_region))
self.post = { 'title': self.blog_info['title'],
'description': content,
'link': '',
'author': blog_settings['login_name'],
'categories': self.blog_info['categories'],
'mt_keywords': ''
}
content = None
self.server = xmlrpclib.ServerProxy(blog_settings['xml_rpc_url'], allow_none=True)
self._pulish_async()
```
输出后的效果:
class PublishCommand(sublime_plugin.TextCommand):
def run(self, edit):
if self.view.is_dirty():
sublime.error_message(u'【错误】请先保存在发布!')
return
self.header_region = _get_header_region(self.view)
if not self.header_region:
sublime.error_message(u'【错误】请填写头部的博客信息!可按<Shift+F8>插入博客信息模板')
return
# status: 0-没有执行,1-正在执行,2-执行成功并停止,3-执行失败停止
self.status = 0
self.file_name = self.view.file_name()
header_str = self.view.substr(self.header_region)
self.blog_info = _parse_blog_info(header_str)
# self.action: 1--新建,2--更新
if not self.blog_info['blog_id']:
self.action = 1
else:
self.action = 2
global blog_settings
if not blog_settings:
settings = _load_setting()
blog_settings = {
'login_name': settings.get('login_name'),
'login_password': settings.get('login_password'),
'xml_rpc_url': settings.get('xml_rpc_url'),
}
file_type = check_file_type(self.file_name)
content = ''
if file_type == F_MD:
region = sublime.Region(0, len(self.view))
content = self._markdown2html(self.view.substr(region))
else:
body_region = sublime.Region(self.header_region.end(), len(self.view))
content = header_str + _plain2html(self.view.substr(body_region))
self.post = { 'title': self.blog_info['title'],
'description': content,
'link': '',
'author': blog_settings['login_name'],
'categories': self.blog_info['categories'],
'mt_keywords': ''
}
content = None
self.server = xmlrpclib.ServerProxy(blog_settings['xml_rpc_url'], allow_none=True)
self._pulish_async()
iblog语法高亮示例的更多相关文章
- 一个C#语法高亮插件
语法高亮对程序员阅读代码来说有着不小的帮助,虽然VisualStudio本身支持C#语法高亮,但也只是对关键字.类名.字符串等少数元素加了标记,而我们代码中主题:变量.函数.属性.事件等都没有进行高亮 ...
- phpBB论坛 代码 语法高亮 模块 Codebox Plus
phpBB代码语法高亮模块 Codebox Plus Code-By.Org (https://www.phpbb.com/customise/db/mod/codebox_plus/) (https ...
- Mycil命令行MySQL语法高亮和自动补全工具
MyCli 是MySQL,MariaDB和Percona的命令行界面,具有自动完成和语法高亮的功能. 其效果如图: 那么我们应该怎么安装它呢,这里附上windows的安装方法. 在命令行下输入 pip ...
- 重拾《 两周自制脚本语言 》- Eclipse插件实现语法高亮
源码库: program-in-chinese/stone-editor-eclipse 参考: FAQ How do I write an editor for my own language? D ...
- django如何语法高亮模块
首先,django的语法高亮必须配合markdown模块使用. 注意事项: 确保在渲染文本时添加了 markdown.extensions.codehilite 拓展 确保安装了 Pygments. ...
- ace -- 语法高亮
Creating a Syntax Highlighter for Ace 给ace创建一个语法高亮 Creating a new syntax highlighter for Ace is extr ...
- 前端代码编辑器ace 语法高亮
代码编辑器codemirror和ace,都有接触过,主要是简单的api使用下.现在项目选用的ace.主要结合官网的文档,加入些自己的理解.官方原文链接https://ace.c9.io/#nav=hi ...
- 轻量级jQuery语法高亮代码高亮插件jQuery Litelighter。
<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>jQ ...
- vim python配置 安装pep8自动检查插件,语法高亮
pep8 http://www.vim.org/scripts/script.php?script_id=2914 语法高亮 http://www.vim.org/scripts/script.php ...
随机推荐
- Android使用MVP时应该注意的问题
生命周期:因为Presenter是View创建的,我们需要确保完全地理解View的生命周期,特别是因为它将最有可能去处理状态更新和异步数据.举个例子,每一个Presenter应该在View destr ...
- 对象(类)的封装方式(面向对象的js基本知识)
上一个月一直忙于项目,没写过笔记,今天稍微空下来了一点 前几天在写项目的时候关于怎么去封装每一个组件的时候思考到几种方式,这里总结一下: 1.构造函数方式(类似java写类的方式):把所有的属性和方法 ...
- 转:鏖战双十一-阿里直播平台面临的技术挑战(webSocket, 敏感词过滤等很不错)
转自:http://www.infoq.com/cn/articles/alibaba-broadcast-platform-technology-challenges 鏖战双十一-阿里直播平台面临的 ...
- AI-->从新建文档开始说起,串联相关色彩知识
相关概念:AI.PS.矢量图形 AI: Adobe Illustrator 是Adobe公司出品的一款用于矢量图形设计的软件. 矢量图形:用通俗的大白话讲与分辨率无关,可以任意的放大缩小而不会失真图 ...
- Javascript中对象类型的参数传递
function setName(obj){ obj.name = 'Niccholas'; console.log(obj.name); //Niccholas obj = new Object() ...
- backbone.Collection源码笔记
Backbone.Collection backbone的Collection(集合),用来存储多个model,并且可以多这些model进行数组一样的操作,比如添加,修改,删除,排序,插入,根据索引取 ...
- .net导出Word的一种方法
由于ActiveX控件只支持IE(好像FF可以通过安装插件支持),所以js导出word的方式就比较局限 可是如果当页面经过js修改以后,.net是无法获取到的,所以要通过js获取到最新的html并传给 ...
- iOS 获取设备的ip地址
导入以下头文件 #include <ifaddrs.h> #include <arpa/inet.h> 通过下面方法即可获取ip地址+ (NSString *)getIpA ...
- 关于offsetWidth,clientWidth,与jquery的width()方法
offsetWidth包括了边框的宽度, clientWidth只是元素的宽度, 当元素的"display"属性为“none”的时候,用offsetWidth(clientWidt ...
- FreeBSD修改root密码错误passwd: pam_chau(www.111cn.net)thtok(): error in service module from:http://www.111cn.net/sys/freebsd/66713.htm
在FreeBSD中修改帐号密码有时候会出现一些错误,针对passwd: pam_chauthtok(): error in service module这样的错误提示,简单整理了以下解决方案:错误提示 ...