2016-04-28 6 views
2

Gibt es eine Möglichkeit, R Syntaxhervorhebung in Konfluenz zu erhalten? Ich habe versucht, allgemeine Konfiguration> Code-Makro> neue Sprache hinzufügen, aber ich habe keine Ahnung, wie Sie eine benutzerdefinierte Pinsel-Syntax für R hochladen. Hat jemand bereits dies getan oder gibt es eine Möglichkeit, dass ich es für R bekommen?R Syntaxhervorhebung für Confluence

+0

Hallo, scheint dies ein generelles Problem zu sein, einen Blick auf den Antworten hier hava: https://answers.atlassian.com/questions/56081/how-do-you-create-a-custom -Syntax-Hervorhebung-Option-für-die-Konfluenz-Code-Block-Makro – ppasler

Antwort

4

Zum Hinzufügen einer Syntax-Highlighting "Pinsel" Javascript-Datei Ich fand den folgenden Prozess, um gut zu funktionieren.

holen Sie sich die neueste Syntax aus: http://alexgorbatchev.com/SyntaxHighlighter/

z.B. 3.0.83 ab 2016-05

entpacken und eine index.html Datei erstellen, die es gerne verwendet:

<!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> 

im

<pre></pre> 

möchten Sie vielleicht einige R-Code hinzufügen . Um eine R Pinsel erstellen Sie könnten von einigen der Bürsten in der CSS-Ordner gehen möchten:

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 

es braucht nur ein paar Zeilen Code und reguläre Ausdrücke Setup die Schlüsselwörter und Kommentar, variable und andere Regeln. Wenn Sie Ihre shBrushR.js-Datei erstellt haben (oder im Internet suchen, z. B. https://gist.github.com/yihui/1804862) und damit zufrieden sind, können Sie sie über allgemeine Konfiguration> configure hochladen> code macro> neue Sprache hinzufügen (und hoffentlich die resultierende js-Datei hinzufügen) zu dieser Antwort, um dies zu einer vollständigen Lösung zu machen - Entschuldigung, ich weiß nicht, ich selbst, so kann ich nicht viel mit diesem Teil helfen)

Siehe die unten R-Bürste (aus dem obigen Link) als ein Beispiel:

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