Add primary support for code highlightning

This commit is contained in:
Gregory Soutade
2012-11-13 18:33:38 +01:00
parent e14e184b1d
commit 44800ac42c
9 changed files with 285 additions and 9 deletions

View File

@@ -0,0 +1,70 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
<script type="text/javascript" src="../../utils/validate.js"></script>
<script type="text/javascript" src="../../utils/form_utils.js"></script>
<script type="text/javascript" src="jscripts/embed.js"></script>
<title>Dynastie Code</title>
</head>
<body id="content">
<form onsubmit="DynastieColorDialog.insert();return false;" action="#">
<table role="presentation" border="0" cellpadding="4" cellspacing="0">
<tr id="linklistrow">
<td><label for="linklist">Language</label></td>
<td id="linklistcontainer">
<select id="language">
<option value="bash">Bash</option>
<option value="c">C</option>
<option value="cpp">C++</option>
<option value="css">CSS</option>
<option value="cmake">CMAKE</option>
<option value="html">HTML</option>
<option value="ini">INI</option>
<option value="java">Java</option>
<option value="js">JavaScript</option>
<option value="lua">Lua</option>
<option value="cl">LISP</option>
<option value="make">MAKE</option>
<option value="ocaml">OCaml</option>
<option value="perl">PERL</option>
<option value="php">PHP</option>
<option value="python">Python</option>
<option value="rb">Ruby</option>
<option value="rst">REST</option>
<option value="sql">SQL</option>
<option value="xml">XML</option>
</select></td>
<td><label for="linklist">Style</label></td>
<td id="linklistcontainer">
<select id="colouring">
<option value="default">Default</option>
<option value="emacs">EMACS</option>
<option value="vim">VIM</option>
<option value="native">VIM native</option>
<option value="fruity">VIM Fruity</option>
<option value="friendly">VIM Friendly</option>
<option value="perldoc">Perl Doc</option>
<option value="vs">Visual Studio</option>
<option value="borland">Borland</option>
<option value="trac">Trac</option>
<option value="autumn">Autumn</option>
<option value="bw">BW</option>
<option value="colorful">Colorful</option>
<option value="manni">Manni</option>
<option value="monokai">Monokai</option>
<option value="murphy">Murphy</option>
<option value="pastie">Pastie</option>
<option value="rrt">RRT</option>
<option value="tango">Tango</option>
</select></td>
</tr>
</table>
<textarea name="code" cols="90" rows="40"></textarea>
<div class="mceActionPanel">
<input type="button" id="insert" name="insert" value="{#insert}" onclick="DynastieColorDialog.insert();" />
<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1 @@
editor_plugin_src.js

View File

@@ -0,0 +1,50 @@
/**
* editor_plugin_src.js
*
* Copyright 2012, Grégory Soutadé
* Released under LGPL License.
*
*/
(function() {
tinymce.create('tinymce.plugins.DynastieColor', {
init : function(ed, url) {
var t = this, css = tinymce.explode(ed.settings.content_css);
t.editor = ed;
// Force absolute CSS urls
tinymce.each(css, function(u, k) {
css[k] = ed.documentBaseURI.toAbsolute(u);
});
ed.addCommand('mceDynastieColor', function() {
ed.windowManager.open({
file : ed.getParam("plugin_dynastiecolor_pageurl", url + "/dynastiecolor.html"),
width : parseInt(ed.getParam("plugin_dynastiecolor_width", "700")),
height : parseInt(ed.getParam("plugin_dynastiecolor_height", "800")),
resizable : "yes",
scrollbars : "yes",
popup_css : css ? css.join(',') : ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css"),
}, {
base : ed.documentBaseURI.getURI()
});
});
ed.addButton('dynastiecolor', {title : 'Insert code', cmd : 'mceDynastieColor'});
},
getInfo : function() {
return {
longname : 'DynastieColor',
author : 'Grégory Soutadé',
authorurl : 'http://soutade.fr',
infourl : 'http://indefero.soutade.fr/p/dynastie',
version : tinymce.majorVersion + "." + tinymce.minorVersion
};
}
});
// Register plugin
tinymce.PluginManager.add('dynastiecolor', tinymce.plugins.DynastieColor);
})();

View File

@@ -0,0 +1,17 @@
tinyMCEPopup.requireLangPack();
var DynastieColorDialog = {
insert : function() {
// Insert the contents from the input into the document
val = document.forms[0].code.value;
if (val != '')
{
language = document.forms[0].language.value;
colouring = document.forms[0].colouring.value;
val = '<dyn:code language="' + language + '" colouring="' + colouring + '" xmlns:dyn="http://indefero.soutade.fr/p/dynastie"><pre>' + val + '</pre></dyn:code>';
tinyMCEPopup.editor.execCommand('mceInsertContent', false, val);
}
tinyMCEPopup.close();
}
};