2016-04-28 165 views
2

有没有办法在汇合中获得R语法突出显示?我已经尝试了一般配置>配置代码宏>添加新的语言,但我不知道如何上传一个自定义画笔语法的R..has任何人都已经这样做,或者有一种方法,我可以得到它的R?R Confluence的语法高亮

+0

您好,这似乎是一个普遍的问题,在这里哈瓦看看答案:https://answers.atlassian.com/questions/56081/how-do-you-create-a-custom -syntax-高亮选项换的汇合码块宏 – ppasler

回答

4

为了添加一个语法高亮“刷”JavaScript文件,我发现以下过程很好地工作。

让自己从SyntaxHighlighter的最新: http://alexgorbatchev.com/SyntaxHighlighter/

例如3.0.83为2016-05

拆开包装并创建一个使用它像一个index.html文件:

<!DOCTYPE html> 
<html lang="de"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
<!-- Include required JS files --> 
<script type="text/javascript" src="js/shCore.js"></script> 

<!-- 
    At least one brush, here we choose JS. You need to include a brush for every 
    language you want to highlight 
--> 
<script type="text/javascript" src="css/shBrushRule.js"></script> 

<!-- Include *at least* the core style and default theme --> 
<link href="css/shCore.css" rel="stylesheet" type="text/css" /> 
<link href="css/shThemeDefault.css" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
<!-- You also need to add some content to highlight, but that is covered elsewhere. --> 
<pre class="brush: R"> 
add your R code here 
</pre> 

<!-- Finally, to actually run the highlighter, you need to include this JS on your page --> 
<script type="text/javascript"> 
    SyntaxHighlighter.all() 
</script> 
</body> 
</html> 

<pre></pre> 

你可能想添加一些R代码里面。要创建的R刷你可能想从一些在CSS文件夹中的画笔去:

shBrushAS3.js   shBrushDelphi.js  shBrushPerl.js  shBrushSass.js 
shBrushAppleScript.js shBrushDiff.js  shBrushPhp.js   shBrushScala.js shBrushBash.js  shBrushErlang.js  shBrushPlain.js  shBrushSql.js 
shBrushCSharp.js  shBrushGroovy.js  shBrushPowerShell.js shBrushTcl.js 
shBrushColdFusion.js shBrushJScript.js  shBrushPython.js  shBrushVb.js 
shBrushCpp.js   shBrushJava.js  shBrushRuby.js  shBrushXml.js 
shBrushCss.js   shBrushJavaFX.js  shBrushRule.js 

它只是需要的代码和正则表达式的几行来设置关键字和注释,变量和其他规则。当你在shBrushR.js文件中创建(或者在互联网上搜索到它,例如https://gist.github.com/yihui/1804862)并且很满意时,你可以通过常规配置>配置代码宏>添加新语言(并且希望添加生成的js文件这个答案使这一个完整的解决方案 - 对不起,我不知道R我自己,所以我不能帮助很多这部分)

请参阅下面的R刷(从上面的链接取得)为例:

/** 
* 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'];