KeTCindy向けhighlight.jsのカスタマイズ

Last modified: 2019 年 01 月 21 日 13 時

カスタマイズ

highlight.jsは、Webページでプログラムコードを強調&色付け表示させるためのJavaScriptです。ここでは、KeTCindy向けの設定を書き残しておきます。KeTCindyについては、こちら

カスタマイズ方法で書いたように、src/languagesフォルダを辿って、ketcindy.jsファイルを新たに作って、次のように書き込みます:

/*
Language: KeTCindy
Author: Atsushi Yano 
Origin: scilab.js
Description: KeTCindy combines a plugin to Cinderella with free mathematical software (R, Maxima, ...) to produce high-quality LATEX graphics.
Category: scientific
*/

function(hljs) {
    
    var COMMON_CONTAINS = [
        hljs.C_NUMBER_MODE,
        {
            className: 'string',
            begin: '\'|\"', end: '\'|\"',
            contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
        }
    ];
    
    return {
        aliases: ['ketcindy'],
        lexemes: /%?\w+/,
        keywords: {
            keyword: 'forall if repeat while and not or xor '+
                'Setcolor Setscaling Setpen Ptsize Setpt Setunitlen Addax Windispg Ketinit',
            literal: 'pi',
            built_in: 'createvar removevar regional isinteger isreal iscomplex iseven isodd '+
                'islist ismatrix isnumbervector isnumbermatrix isstring isgeometric ispoint '+
                'isline iscircle isconic ismass issunisspringisbouncerisundefined text '+
                'length substring indexof tokenize replace parse parseCSV format print '+
                'println add sub mult div pow abs round floor ceil re im conjugate '+
                'mod sqrt exp log sin cos tan arcsin arccos arctan arctan2 arctan2 '+
                'random randomnormal randombool randomint seedrandom ' +
                'Addax Addpackage Changework Deffun Definecolor Defvar Drwxy Fontsize Ketinit '+
                'Ptsize Setax Setcolor Setfiles Setparent Setmarklen Setorigin Setpen Setpt '+
                'Setscaling Setunitlen Setwindow Usegraphics '+
                'AddGraph Anglemark Arrowdata Arrowhead Bezier Beziersmooth Beziersym Bowdata '+
                'Bspline Changestyle Circledata CRspline Deqplot Dotfilldata Drawsegmark '+
                'Drawpoint Drwpt Ellipseplot Enclosing Expr Fourierseries Framedata Hatchdata '+
                'Htickmark Hyperbolaplot Implicitplot Invert Joincrvs Letter Letterrot Lineplot '+
                'Listplot Mkbeziercrv Mkbezierptcrv Mkcircles Mksegments Ospline Ovaldata '+
                'Parabolaplot Paramark Paramplot Polarplot Partcrv Periodfun Plotdata Pointdata '+
                'Polygonplot Putintersect PutonCurve PutonLine PutonSeg Putpoint Reflectdata '+
                'Reflectpoint Rotatedata Rotatepoint Rulerscale Scaledata Scalepoint Segmark '+
                'Shade Tangentplot Translatedata Translatepoint Vtickmark '+
                'ChangeTablestyle Findcell Putcell PutcoL PutcoLexpr Putrow Putrowexpr Tabledata '+
                'Tabledatalight Tgrid Tlistplot '+
                'Crossprod Derivative Dotprod Extractdata Findarea Findlength Integrate '+
                'Intersectcrvs IntersectcrvsPp Inversefun Nearestpt Nearestptcrv Numptcrv '+
                'ParamonCurve Pointoncrv Ptcrv Ptstart ReadOutData Viewtex Workprocess '+
                'WriteOutData '+
                'Assign BBdata Cindyname Colorcode Dqq Factorial Norm Figpdf Help Helpkey '+
                'Indexall Op Isptselected Ptselected Slider Sprintf Strsplit Texcom Textformat '+
                'Windispg '+
                'Boxplot Rfun CalcbyR Histplot PlotdataR PlotdiscR Readcsv Readlines Scatterplot '+
                'CalcbyM Mxbatch Mxfun Mxtex '+
                'Asirfun CalcbyA '+
                'CalcbyF Frfun '+
                'Mkobjcmd Mkobjcrvcmd Mkobjnrm Mkobjplatecmd Mkobjpolycmd Mkobjsymbcmd '+
                'Mkobjthickcmd Mkviewobj '+
                'Dispmat Tab2list Writecsv '+
                'Setpata Settitle '+
                'Ketinit3d Isangle Start3d Startsurf '+
                'Bezier3d Changestyle3d Concatobj Crvsfparadata Datalist2d Datalist3d Dist3d '+
                'Drawpoint3d Embed ExeccmdC Intersectcrvsf IntersectsgpL Invparapt Mkbezierptcrv3d '+
                'Nohiddenbyfaces Parapt Partcrv3d Perpplane Perppt Phparadata Pointdata3d '+
                'Putaxes3d PutonCurve3d Putonseg3d Putpoint3d Readobj Reflectdata3d Reflectpoint3d '+
                'Rotatedata3d Rotatepoint Scaledata3d Scalepoint3d Sf3data Sfbdparadata '+
                'Skeletonparadata Spacecurve Spaceline Translatedata3d Translatepoint3d '+
                'VertexEdgeFace Wireparadata Xyzax3data Xyzcoord'
        },
        illegal: '("|#|/\\*|\\s+/\\w+)',
        contains: [
            {
                className: 'function',
                beginKeywords: 'function', end: '$',
                contains: [
                    hljs.UNDERSCORE_TITLE_MODE,
                    {
                        className: 'params',
                        begin: '\\(', end: '\\)'
                    }
                ]
            },
            {
                begin: '[a-zA-Z_][a-zA-Z_0-9]*(\'+[\\.\']*|[\\.\']+)', end: '',
                relevance: 0
            },
            {
                begin: '\\[', end: '\\]\'*[\\.\']*',
                relevance: 0,
                contains: COMMON_CONTAINS
            },
            hljs.COMMENT('//', '$')
        ].concat(COMMON_CONTAINS)
    };
}

[このページのトップへ]