--------------------------------------------------------------------------------------

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语法高亮示例的更多相关文章

  1. 一个C#语法高亮插件

    语法高亮对程序员阅读代码来说有着不小的帮助,虽然VisualStudio本身支持C#语法高亮,但也只是对关键字.类名.字符串等少数元素加了标记,而我们代码中主题:变量.函数.属性.事件等都没有进行高亮 ...

  2. phpBB论坛 代码 语法高亮 模块 Codebox Plus

    phpBB代码语法高亮模块 Codebox Plus Code-By.Org (https://www.phpbb.com/customise/db/mod/codebox_plus/) (https ...

  3. Mycil命令行MySQL语法高亮和自动补全工具

    MyCli 是MySQL,MariaDB和Percona的命令行界面,具有自动完成和语法高亮的功能. 其效果如图: 那么我们应该怎么安装它呢,这里附上windows的安装方法. 在命令行下输入 pip ...

  4. 重拾《 两周自制脚本语言 》- Eclipse插件实现语法高亮

    源码库: program-in-chinese/stone-editor-eclipse 参考: FAQ How do I write an editor for my own language? D ...

  5. django如何语法高亮模块

    首先,django的语法高亮必须配合markdown模块使用. 注意事项: 确保在渲染文本时添加了 markdown.extensions.codehilite 拓展 确保安装了 Pygments. ...

  6. ace -- 语法高亮

    Creating a Syntax Highlighter for Ace 给ace创建一个语法高亮 Creating a new syntax highlighter for Ace is extr ...

  7. 前端代码编辑器ace 语法高亮

    代码编辑器codemirror和ace,都有接触过,主要是简单的api使用下.现在项目选用的ace.主要结合官网的文档,加入些自己的理解.官方原文链接https://ace.c9.io/#nav=hi ...

  8. 轻量级jQuery语法高亮代码高亮插件jQuery Litelighter。

    <!DOCTYPE html><html><head><meta charset="UTF-8" /><title>jQ ...

  9. vim python配置 安装pep8自动检查插件,语法高亮

    pep8 http://www.vim.org/scripts/script.php?script_id=2914 语法高亮 http://www.vim.org/scripts/script.php ...

随机推荐

  1. 【Java/Android性能优3】Android性能调优工具TraceView使用介绍

    本文转自:http://blog.csdn.net/innost/article/details/9008691 在软件开发过程中,想必很多读者都遇到过系统性能问题.而解决系统性能问题的几个主要步骤是 ...

  2. 【Android 界面效果27】利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果

    本文主要介绍如何利用ViewPager.Fragment.PagerTabStrip实现多页面滑动效果.即google play首页.新浪微博消息(at.评论.私信.广播)页面的效果.ViewPage ...

  3. leetcode 题解: Length of Last Word

    leetcode: Given a string s consists of upper/lower-case alphabets and empty space characters ' ', re ...

  4. ubuntu server 系统,更换阿里云源(用户更新源)

    Ubuntu安装完毕后,默认使用的是官方的源,在国内访问速度很慢,这里介绍更换为阿里云的源方法. 步骤如下: 1.备份源配置文件 sudo cp /etc/apt/sources.list /etc/ ...

  5. 配置多个Log4net实例

    应用场景: 控制软件工程拆分为多个子项目,在开发阶段希望每个子项目的日志是单独的.同时又希望日志统一集中定义在Tools(Tools为工具类项目,生成Tools.dll)下,而不是分散在各个子项目中. ...

  6. IOS学习网站

    http://www.cocoachina.com http://onevcat.com/#blog http://objccn.io http://blog.devtang.com http://b ...

  7. VB.NET 小程序 3

    Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ...

  8. Mybatis源码解析(一)(2015年06月11日)

    一.简介 先看看Mybatis的源码结构图,Mybatis3.2.7版本包含的包共计19个,其他版本可能会少. 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为 ...

  9. js里正则表达式详解

    详细内容请点击 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/ ...

  10. AndroidTestCase简单使用

    1.根据需求创建TestCase类,实现测试用例.此类需继承AndroidTestCase类 public class TestCase extends AndroidTestCase { @Over ...