首页 > 代码库 > [Tool] Open Live Writer 插件更新

[Tool] Open Live Writer 插件更新

一、更新内容

    • cnblog 页签中增加 LuaMatlab 语法高亮;(SyntaxHighlight 页签中尚未添加)
    • 增加折叠区域插件,见效果展示;
    • 增加 bat 执行文件,直接拷贝插件所需 dll 文件到指定位置;
    • 增减 OLWPlugins.css 样式文件和 OLWPlugins.js 脚本文件; 
    • 测试 Win10/7 32/64 位系统安装使用情况;
    • 优化部分使用体验;

二、更新说明

  • 应 @我要改名叫嘟嘟 和 @船长J.K 两位的需求,尝试了一下 Wilco.SyntaxHighlighter 的扩展开发,实现 Lua 和 Matlab 两种语法高亮。由于博主不擅长这两种语言,测试不一定到位,如果两位或者其他人使用过程中有何问题都可以留言反馈,博主再尽力修改完善,先在此谢过。
  • 折叠区域插件,先前在文章 插入折叠区域功能 中已有开发,不过那次是针对 WLW,这次移植到 OLW 上来,并优化了部分使用体验。
  • 同时,FoldRegion 插件属于自己为了方便浏览开发的,所以需要加入自定义的 css 样式和 js 脚本文件。使用该插件时需要在“博客园后台管理”->“设置”->“页首html代码”中添加这两个文件的引用,文件下载参考最后的资源下载,引用代码参考如下:
<link type="text/css" rel="stylesheet" href="http://files.cnblogs.com/files/memento/OLWPlugins.css" /><script type="text/javascript" src="http://files.cnblogs.com/files/memento/OLWPlugins.js"></script>
  • 上一篇文章许多人反应说不知道插件放到哪里,Plugins 文件夹没有找到等问题,为了方便使用,博主在压缩包里增加一个 bat 文件,DeployDLL.bat,解压缩后直接执行即可拷贝插件所需要的 dll 到指定位置了。
  • 博主通过 Hyper-V 分别模拟了 Win10/7 32/64位几种不同的环境进行插件测试,均可以使用,如果有问题请留言讨论。 注意,Open Live Writer 软件本身建议基于 .NET 4.5.2 环境,详情参考 OpenLiveWriter.SDK.nuspec
  • 对了,再啰嗦一句,从网上下载下来的 dll,windows 系统有时候会默认为锁定状态,需要在属性中进行解锁后再使用。

三、效果展示

  • cnblog(模拟博客园推荐使用的插入代码)

技术分享(图一)博客园网页端插入代码工具弹窗

技术分享

(图二)插件模拟弹窗

技术分享
  1 /// <summary>  2 /// 构造函数  3 /// </summary>  4 /// <param name="settings">插件配置</param>  5 /// <param name="content">文本内容</param>  6 public CNBlogs(Settings settings, string content)  7 {  8     InitializeComponent();  9  10     try 11     { 12         m_Settings = settings; 13         m_Content = content; 14         m_HtmlParser = new HtmlParser(); 15  16         chbCollapse.CheckedChanged += ChbCollapse_CheckedChanged; 17         chbTAB.CheckedChanged += chbTAB_CheckedChanged; 18         chbShowLineNum.CheckedChanged += ChbShowLineNum_CheckedChanged; 19  20         Load += CNBlogs_Load; 21         txtTAB.KeyPress += CommonHelper.NumberImput_KeyPress; 22     } 23     catch (Exception ex) 24     { 25         CommonHelper.ShowError(ex); 26     } 27 }
CNBlog
/// <summary>/// 构造函数/// </summary>/// <param name="settings">插件配置</param>/// <param name="content">文本内容</param>public CNBlogs(Settings settings, string content){    InitializeComponent();    try    {        m_Settings = settings;        m_Content = content;        m_HtmlParser = new HtmlParser();        chbCollapse.CheckedChanged += ChbCollapse_CheckedChanged;        chbTAB.CheckedChanged += chbTAB_CheckedChanged;        chbShowLineNum.CheckedChanged += ChbShowLineNum_CheckedChanged;        Load += CNBlogs_Load;        txtTAB.KeyPress += CommonHelper.NumberImput_KeyPress;    }    catch (Exception ex)    {        CommonHelper.ShowError(ex);    }}
技术分享
  1 -- 文件名为 module.lua  2 -- 定义一个名为 module 的模块  3 module = {}  4   5 -- 定义一个常量  6 module.constant = "这是一个常量"  7   8 -- 定义一个函数  9 function module.func1() 10     io.write("这是一个公有函数!\n") 11 end 12  13 local function func2() 14     print("这是一个私有函数!") 15 end 16  17 function module.func3() 18     func2() 19 end 20  21 return module
Lua
技术分享
  1 x = [0:0.01:10];  2 y = sin(x);  3 plot(x, y), xlabel(‘x‘), ylabel(‘Sin(x)‘), title(‘Sin(x) Graph‘),  4 grid on, axis equal
Matlab
  • SyntaxHighlighter(利用博客园已植入的 SyntaxHighlighter 高亮脚本)

技术分享

(图三)SyntaxHighlighter 主界面

技术分享

(图四)SyntaxHighlighter 插件详细设置

/// <summary>/// 构造函数/// </summary>/// <param name="settings">插件配置</param>/// <param name="content">文本内容</param>public CNBlogs(Settings settings, string content){	InitializeComponent();	try	{		m_Settings = settings;		m_Content = content;		m_HtmlParser = new HtmlParser();        chbCollapse.CheckedChanged += ChbCollapse_CheckedChanged;        chbTAB.CheckedChanged += chbTAB_CheckedChanged;        chbShowLineNum.CheckedChanged += ChbShowLineNum_CheckedChanged;        Load += CNBlogs_Load;        txtTAB.KeyPress += CommonHelper.NumberImput_KeyPress;    }	catch (Exception ex)	{		CommonHelper.ShowError(ex);	}}
/// <summary>/// 构造函数/// </summary>/// <param name="settings">插件配置</param>/// <param name="content">文本内容</param>public CNBlogs(Settings settings, string content){	InitializeComponent();	try	{		m_Settings = settings;		m_Content = content;		m_HtmlParser = new HtmlParser();        chbCollapse.CheckedChanged += ChbCollapse_CheckedChanged;        chbTAB.CheckedChanged += chbTAB_CheckedChanged;        chbShowLineNum.CheckedChanged += ChbShowLineNum_CheckedChanged;        Load += CNBlogs_Load;        txtTAB.KeyPress += CommonHelper.NumberImput_KeyPress;    }	catch (Exception ex)	{		CommonHelper.ShowError(ex);	}}
  • FoldRegion(折叠区域插件,优化浏览体验)

技术分享

(图五)FoldRegion 主界面

● 标题展开
1a
2b
3c
4d
5e
6f
7g
8h
9i
10j
11k
返回顶部收缩

 

四、资源下载

  1. 插件下载:Memento.OLW_V1.0.0.0.7z
  2. 工程源码:OLW Plugin Coding
  3. 其他资源:
    • Open Live Writer 官网
    • Open Live Writer Github
    • SyntaxHighlighter 下载:http://alexgorbatchev.com/SyntaxHighlighter/download/
    • SyntaxHighlighter 配置:http://alexgorbatchev.com/SyntaxHighlighter/manual/configuration/

[Tool] Open Live Writer 插件更新