module syntaxhighlighter avec coloration de l'actionscript
En tentant d'installer ce module drupal , j'ai rencontré quelques problèmes , dûs certainement à un upgrade de version, soit du module drupal (v 6) , soit de syntaxhightlighter...bref c'était plus très raccord.. En fait suite à l'installation , j'avais une erreur lors du paramétrage du module : warning: ksort() expects parameter 1 to be array, null given in /sites/all/modules/syntaxhighlighter/syntaxhighlighter.admin.inc on line 21. Idem ligne 34 .. Dans le fichier syntaxhighlighter.admin.inc , on voit que ce fichier d'admin scrute le répertoire /syntaxhighligher/Scripts et /syntaxhighligher/Styles ... Or une fois que le js syntaxhighlighter est installé , ces répertoires existent, mais en minuscule !! En rectifiant dans le fichier pour pointer sur des répertoires en minuscule, l'administration permet ensuite de lister les languages de programmation utilisant syntaxhightlighter et les thèmes/styles utilisables..Ouf !! Le plus étrange c'est que les répertoires sont bien spécifiés en minuscules dans le fichier syntaxhightlighter.module... N'oubliez pas de publier vos articles en FullHTML , sinon, le module ne fonctionne pas. Le problème pour moi, c'est que la version actuelle de syntaxhighlighter ne prend pas en compte la coloration de l'actionscript .. dommage ! En cherchant un peu , on trouve quelqu'un qui s'est donné la peine de créer le scripts js ainsi que le CSS associé pour AS3 , qu'on peut ensuite rajouter respectivement au répertoire /scripts/ et /styles/ . C'est Mark Walters qui le fournit à cette adresse : http://yourpalmark.com/2009/02/17/as3-syntax-highlighting-with-syntaxhighlighter-20/ Pour faire marcher le syntaxhighlighter, écrire ses articles en FullHtml est obligatoire. Ensuite, on choisi la balise sur laquelle on veut appliquer l'effet (par défaut la balise <pre≶ sera utilisée dans la configuration du module) . Ensuite, dans vos articles, spécifiez dans la class de la balise pre quel type de "brush" ou language vous appliquez cela. Pour actionscript, si jamais vous utilisez les thèmes fournis au lieu de celui de Mark, vous allez perdre certaine coloration syntaxique (sur les mots clés package, class, function). Pour remédier au problème , changez le css du style que vous avez choisi en rajoutant celles nécéssaires car Mark a rajouté deux types d'éléments pas présents dans la distribution actuelle :
.syntaxhighlighter .definition,.syntaxhighlighter .function
{
color: #fff;
font-weight: bold;
}
Du coup, ces mot clés auront la coloration que vous aurez choisi :
package {
import com.adobe.utils.XMLUtil;
private static const RSS_URL:String;
}
quelques exemples :
Javascript
SyntaxHighlighter.brushes.CSharp = function()
{
var keywords = 'abstract as base bool break byte case catch char checked class const ' +
'continue decimal default delegate do double else enum event explicit ' +
'extern false finally fixed float for foreach get goto if implicit in int ' +
'interface internal is lock long namespace new null object operator out ' +
'override params private protected public readonly ref return sbyte sealed set ' +
'short sizeof stackalloc static string struct switch this throw true try ' +
'typeof uint ulong unchecked unsafe ushort using virtual void while';
function fixComments(match, regexInfo)
{
var css = (match[0].indexOf("///") == 0)
? 'color1'
: 'comments'
;
return [new SyntaxHighlighter.Match(match[0], match.index, css)];
}
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, func : fixComments }, // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings
{ regex: /^\s*#.*/gm, css: 'preprocessor' }, // preprocessor tags like #region and #endregion
{ regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' } // c# keyword
];
this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
};
SyntaxHighlighter.brushes.CSharp.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.CSharp.aliases = ['c#', 'c-sharp', 'csharp'];
sympa non ? Un peu de SQl :
DELIMITER $$
DROP FUNCTION IF EXISTS `mybase`.`myfunction` $$
CREATE DEFINER=`anything`@`%` FUNCTION `mybase`.`myfucntion`( my_FAM varchar(4),my_PDT char(2) ) RETURNS varchar(255)
DETERMINISTIC
begin
DECLARE Result varchar(255) default null;
DECLARE my_HN varchar(32);
DECLARE i,j integer;
set @my_HH = time_format( now(),'%H');
set @i=1;
set @j=0;
while @i > 0 DO
if @j > 9 then
set @my_HH = @my_HH+1;
set @j=0;
end if;
set @my_HN=concat(yymmdd(null),'_',left(my_FAM,2),my_PDT,'_',@my_HH,@j,'A0');
set @j = @j +1;
END WHILE;
return @Result;
end $$
DELIMITER ;
