【问题标题】:Highlight R Code Syntax in Wordpress在 Wordpress 中突出显示 R 代码语法
【发布时间】:2018-01-26 09:34:23
【问题描述】:

我想在 wordpress 博客中突出显示 R 语法,使其看起来与 RStudio 中的相似。我找到了wp-synthax-plugin,它能够高亮R代码如下:

但是,我认为颜色过于极端,我正在寻找更类似于基本 RStudio 的颜色。代码应突出显示如下:

问题:是否有用于生成此类代码的 wordpress 插件,或者是否有办法自己自定义颜色?

【问题讨论】:

  • @chinsoon12 我已经看过这篇博文,但不幸的是它也产生了非常丰富多彩的代码。
  • 我在 shBrushR.js 中修剪 this.regexList 中的元素数量将减少标记为着色的单词数量。即你可以只为 cmets 和常量保留 css
  • @chinsoon12 感谢您的 cmets!我是 wordpress 新手。您能否详细说明“在 shBrushR.js 中修剪 this.regexList 中的元素数量”是什么意思?
  • 我在我的博客 (rud.is/b) 上使用 prism,它具有高度可定制的语法 CSS。我使用了您提到的相同语法。 Prism 是轻量级的并且更加健壮,当出现问题时会进行更新——包括安全问题——并且还可以让您组织 R 代码。不幸的是,这也是一个离题的问题,很可能(最终)被关闭。

标签: r wordpress syntax syntax-highlighting


【解决方案1】:

原创 shBrushR.js

/**
*  Author: Yihui Xie
*  URL: http://yihui.name/en/2010/09/syntaxhighlighter-brush-for-the-r-language
*  License: GPL-2 | GPL-3
*/
SyntaxHighlighter.brushes.R = function() {
    var keywords = 'if else repeat while function for in next break TRUE FALSE NULL Inf NaN NA NA_integer_ NA_real_ NA_complex_ NA_character_';
    var constants = 'LETTERS letters month.abb month.name pi';
    this.regexList = [
    { regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' },
    { regex: SyntaxHighlighter.regexLib.singleQuotedString,    css: 'string' },
    { regex: SyntaxHighlighter.regexLib.doubleQuotedString,    css: 'string' },
    { regex: new RegExp(this.getKeywords(keywords), 'gm'),      css: 'keyword' },
    { regex: new RegExp(this.getKeywords(constants), 'gm'),    css: 'constants' },
    { regex: /[\w._]+[ \t]*(?=\()/gm,               css: 'functions' },
    ];
};
SyntaxHighlighter.brushes.R.prototype  = new SyntaxHighlighter.Highlighter(); SyntaxHighlighter.brushes.R.aliases = ['r', 's', 'splus']; 

建议更改以减少突出显示以回复 OP 的评论:

/**
*  Author: Yihui Xie
*  URL: http://yihui.name/en/2010/09/syntaxhighlighter-brush-for-the-r-language
*  License: GPL-2 | GPL-3
*/
SyntaxHighlighter.brushes.R = function() {
    var keywords = 'if else repeat while function for in next break TRUE FALSE NULL Inf NaN NA NA_integer_ NA_real_ NA_complex_ NA_character_';
    var constants = 'LETTERS letters month.abb month.name pi';
    this.regexList = [
    { regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' },
    { regex: new RegExp(this.getKeywords(constants), 'gm'),    css: 'constants' },
    ];
};
SyntaxHighlighter.brushes.R.prototype  = new SyntaxHighlighter.Highlighter(); SyntaxHighlighter.brushes.R.aliases = ['r', 's', 'splus']; 

【讨论】:

  • 感谢代码!我会这样实现它。
  • 可能选择此作为答案还为时过早。你先试试看它是否有效。
猜你喜欢
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 2014-10-21
相关资源
最近更新 更多