[Tool] 博客园的 SyntaxHighlighter 代码高亮

最新版本请移步↘

Open Live Writer 插件更新

 

零 资源

SyntaxHighlighter下载:http://alexgorbatchev.com/SyntaxHighlighter/download/

SyntaxHighlighter配置:http://alexgorbatchev.com/SyntaxHighlighter/manual/configuration/

dll下载链接:Memento.OLW.dll 更新至 Memento.OLW_V1.0.0.0.7z

一 前言

 

从前:

1、博客园要使用 SyntaxHighlighter 插件来高亮代码,需要先在文件里上传 *.js…、*.css…,然后在设置里引用这些 js 和 css 文件,接着在 js 里执行 SyntaxHighlighter.all(); ,最后方可在 pre 标签内使用;

<pre class="brush:js;"></pre>

2、想要高亮段代码,还要切换到 html 源码里去修改标签,设置 class;

3、复制一段代码也是相当的繁杂,好像要用到 clipboard.swf,没怎么去研究过;

现在:

1、博客园已经默认支持 SyntaxHighlighter 插件,可以从博客中加载的 blog-common.js 中找到(如下图),所以我们不需要再上传那些 js、css 文件,也不需要在设置里引用这些文件,只需要最后一步就可以使用了;

image

2、封装成插件,只需点点点就可以搞定了;

3、支持双击复制代码,而且不是像博客园原装的高亮代码,点击复制代码logo后进入复制状态后,无法切换回来的那样,SyntaxHighlighter 双击会进入 textarea 编辑全选状态,此时就可以 Ctrl+C 复制代码,然后离开 textarea 焦点,即可切换会代码高亮样式;

二 正文

实现起来很简单,结构就是下面一句话的事儿:

<pre class='{0}'>{1}</pre>

只要在 {0} 处加入高亮属性设置,在 {1} 处加入要高亮的代码(需要将 < 转义成 &lt;)就可以了。

其中,

属性设置可以参考两个地方:官网Configuration滴答的雨,所有属性设置最后通过“key:value; key:value; …”的形式组合放置于 {0} 处,例如:

<pre class="brush: xml;html-script: false;quick-code: true;smart-tabs: true;auto-links: false;toolbar: false;gutter; true;light: false;ruler: false;pad-line-numbers: 2;collapse: false;tab-size: 4;first-line: 1;">&lt;pre class='{0}'&gt;{1}&lt;/pre&gt;</pre>
而 {1} 处的高亮代码,可以直接从剪贴板获得,亦或者直接在插件窗口内编辑均可;
最后将组合拼接完成的(如上面代码)赋值给 前面文章中提到的 content,发布后就可以看到代码高亮效果了。

三 截图和效果

1、整体界面:
image
 
2、支持的语言包括:
image
 
3、其他设置
image
 
4、发布博客园后显示效果如下:
// 插入代码
private void btnInsert_Click(object sender, EventArgs e)
{
    try
    {
        m_Settings.Brush = cmbBrush.Text;
        m_Settings.SyntaxHighlighterTitle = txtTitle.Text;
        m_Settings.FirstLine = int.Parse(txtFirstLine.Text);
        m_Settings.Hightlight = txtHightlight.Text;
        m_Settings.Collapse = chbCollapse.Checked;
        m_Settings.Theme = cmbTheme.Text;
        m_Settings.Save();

        string code = txtCode.Text;
        code = code.Replace("<", "<");// 转义<符号
        code = string.Format(CommonHelper.SyntaxHighlighterStructure, GetSettingStr(), code);
        m_Settings.PostBlogContent = code;
        m_Settings.PreviewContent = code;
        m_Settings.Save();

        if (Closed != null)
        {
            Closed(DialogResult.OK);
        }
    }
    catch (Exception ex)
    {
        CommonHelper.ShowError(ex);
    }
}

四 最后说明

1、如果选择“折叠代码”时,必须选择“toolbar”,因为折叠标题是在工具栏处,如果不显示工具栏也就不显示折叠标题,最后在界面上是什么都显示不出来的;

2、有些属性设置博客园并不支持,比如“ruler”,其他的有兴趣自己去尝试吧;

3、浏览器兼容问题,本人使用的是猎豹浏览器,其中包括极速模式和IE兼容模式,

当使用IE兼容模式时,双击代码想要复制代码时,出现如下情景:此时换行符还在,不影响粘贴到其他地方去

image(不正常)

当切换到极速模式时,又是正常的,如下:

image(正常)

对于 textarea 里的换行问题还真是不懂,搞了半天也没弄明白为啥,有大神知道的还望不吝赐教。

经过测试得知,在IE浏览器中将文档模式切换到7、8、9,均正常,其他模式下则不正常;

在猎豹浏览中需要切换到极速模式,或者在F12中切换文档模式到7、8、9才有效,F12中切换浏览器模式则无效;

4、此外,双击进入 textarea 编辑全选模式时,要保证 textarea 中的行高和前面行号的行高一致,还需要设置一下样式;

博客园默认的

.syntaxhighlighter textarea 的行高为 line-height:1.1em!important

.syntaxhighlighter .line 的行高为 line-height:1.8em!important

其中 textarea 自然就是双击后的编辑全选状态,line 则是高亮状态下的,包括前面的行高,这两个行高默认不一样,本人就纳闷儿了,这样双击后导致的一个效果就是:

image

左右完全不对称啊,完全不符合本人审美观念…

还是在博客园“页面定制CSS代码”加上一句行高的样式定义吧:

.syntaxhighlighter .line{
  white-space: pre!important;
  line-height: 1.5em!important;
}
.syntaxhighlighter textarea{
  line-height: 1.5em!important;
}

 

说明:请将压缩包里的两个 dll 拷贝到 C:\Users\用户文件夹\AppData\Local\OpenLiveWriter\app-0.6.0.0\Plugins 目录下即可;

转载于:https://www.cnblogs.com/memento/p/5314257.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML5电脑游戏代码博客园是一个专门分享和讨论HTML5电脑游戏代码的博客平台。在这个博客园中,我们可以找到各种不同类型的HTML5电脑游戏代码,并与其他开发者进行交流和分享经验。 HTML5是一种用于构建网页和应用程序的技术标准,它包括HTML、CSS和JavaScript等语言。通过HTML5,我们可以创建各种不同类型的游戏,包括拼图游戏、射击游戏、角色扮演游戏等。 在博客园中,我们可以找到一些优秀的HTML5电脑游戏代码示例,这些示例提供了游戏的源代码和演示链接,让我们可以直接在浏览器中体验这些游戏。此外,博客园中还有一些文章和教程,介绍了如何使用HTML5技术开发游戏,包括游戏的基本原理和开发工具的使用等。 通过参与博客园中的讨论,我们可以与其他开发者交流心得和问题,互相学习和进步。这个平台不仅仅是一个代码分享的地方,更是一个互动和共同成长的社区。无论是初学者还是有经验的开发者,都可以在这里找到学习和提升的机会。 总之,HTML5电脑游戏代码博客园是一个提供优秀HTML5游戏代码和交流分享的平台,通过参与其中,我们可以学习和分享HTML5游戏开发的经验,提升自己的技术水平。 ### 回答2: HTML5是一种用于开发网页内容和应用的标准技术,而电脑游戏是一种受欢迎的娱乐方式。在博客园上,我们可以找到一些关于HTML5电脑游戏代码的分享和讨论。 HTML5提供了一些功能强大的API和工具,使得开发者可以用它来创建各种类型的电脑游戏。其中一种常见的方式是使用Canvas元素来绘制游戏场景和图形。开发者可以通过JavaScript来操作这些图形,并实现游戏中的各种交互和逻辑。 在博客园上,我们可以找到一些编写HTML5电脑游戏的示例代码,以及一些关于如何使用不同游戏引擎和框架的教程。有些博客主可能会分享一些自己开发的小型游戏,同时还提供了源代码和详细的讲解,以帮助其他人学习和理解游戏开发的过程。 通过在博客园上分享HTML5电脑游戏代码,我们可以促进知识和经验的交流,让更多的人受益于这些优秀的项目和资源。同时,其他开发者可以在评论区或者通过私信的方式提出问题和交流意见,促进更进一步的学习和改进。 综上所述,博客园是一个很好的平台,可以找到一些关于HTML5电脑游戏代码的分享和讨论。通过在这个平台上的交流,我们可以相互学习和提高,推动HTML5游戏开发的进步。 ### 回答3: HTML5电脑游戏代码是指使用HTML5技术开发的电脑游戏的源代码。HTML5是一种用于创建和呈现网页内容的标准技术,它包括HTML、CSS和JavaScript等语言,可以在各种设备上运行,包括电脑。 博客园是一个知名的社区型博客平台,提供了用户自主发表博客文章的功能。在博客园上,用户可以分享自己的技术心得、游戏开发经验等内容。 如果要在博客园上分享HTML5电脑游戏代码,可以按照以下步骤进行: 1. 进入博客园官网,并登录自己的账号。 2. 点击页面上的“写新博客”或类似的按钮,开始撰写新的博客文章。 3. 在文章编辑页中,选择合适的标题和分类,以及补充必要的标签以方便他人搜索。 4. 在文章的正文部分,将HTML5电脑游戏的代码粘贴进去。 5. 根据需要,在代码附近提供详细的说明和解释,帮助读者理解代码的作用和使用方法。 6. 检查一遍文章内容,确保格式和代码的展示正确无误。 7. 点击保存或发布按钮,将博客文章保存并发布到自己的博客空间。 通过在博客园上分享HTML5游戏代码,可以让其他游戏开发者或对此感兴趣的读者学习和参考代码,互相交流和分享经验。同时,博客园也提供了评论功能,读者可以留下问题或反馈,进一步促进交流和讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值