Използвам Jekyll с Pygments за конвертиране на Markdown в статични html страници. Съдържанието е подготвено за страници на GitHub. За да покажа примерни кодове (команди на shell в този пример), добавям следния раздел към файловете:
{% highlight sh %}
$ ls -1a
.
..
README
{% endhighlight %}
Параметърът sh
се отнася до обвивката, която конфигурира лексера. Можете също да изберете други лексери като console
за маркиране на текста.
Забелязах, че някои основни команди като ls
не са маркирани от лексера на обвивката. Това може да се види и в изходния код на лексера. Следващият откъс показва дефиницията на ключовите думи на shell lexer (намерен в класа BashLexer).
...
'basic': [
(r'\b(if|fi|else|while|do|done|for|then|return|function|case|'
r'select|continue|until|esac|elif)\s*\b',
Keyword),
(r'\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|'
r'complete|declare|dirs|disown|echo|enable|eval|exec|exit|'
r'export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|'
r'local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|'
r'shopt|source|suspend|test|time|times|trap|true|type|typeset|'
r'ulimit|umask|unalias|unset|wait)\s*\b(?!\.)',
Name.Builtin),
(r'#.*\n', Comment),
(r'\\[\w\W]', String.Escape),
(r'(\b\w+)(\s*)(=)', bygroups(Name.Variable, Text, Operator)),
(r'[\[\]{}()=]', Operator),
(r'<<-?\s*(\'?)\\?(\w+)[\w\W]+?\2', String),
(r'&&|\|\|', Operator),
],
...
Има ли начин да разширите списъка с ключови думи или вместо това можете да препоръчате друг лексер?
ls -1a
от това, което съм пробвал и трябва да е лесен за интегриране. - person Thomas Klemm   schedule 21.10.2012