colar no local, destaque de sintaxe
-
08-07-2019 - |
Pergunta
Estou ficando um host e eu tenho projetos com teammats. Eu pensei que ser uma boa idéia ter o meu próprio site pasta que não tem prazo de validade na pasta (eu sei http: // pastie. org / existe) e outras coisas. eu queria saber. O que é um simples destaque lib eu posso usar no código? Eu ficaria apenas com C / C ++.
Solução
A questão é marcado "php" mas você "seria de apenas usando C / C ++"?
solução A PHP é GeSHi .
Outras dicas
Construindo um marcador para apenas um idioma (livre de contexto, com lexemes regulares, como C ++) é realmente muito fácil, porque você basicamente pode envolver todos os seus lexemas em uma grande expressão regular:
$cpplex = '/
(?<string>"(?:\\\\"|.)*?")|
(?<char>\'(?:\\\\\'|.)*?\')|
(?<comment>\\/\\/.*?\n|\\/\*.*?\*\\/)|
(?<preprocessor>#\w+(?:\\\\\n|[^\\\\])*?\n)| # This one is not perfect!
(?<number>
(?: # Integer followed by optional fractional part.
(?:0(?:
x[0-9a-f]+|[0-7]*)|\d+)
(?:\.\d*)?(?:e[+-]\d+)?)
|(?: # Just the fractional part.
(?:\.\d*)(?:e[+-]\d+)?))|
(?<keyword>asm|auto|break|case…)| # TODO Complete. Include ciso646!
(?<identifier>\\w(?:\\w|\\d)*)
/xs';
$matches = preg_match_all($cpplex, $input, $matches, PREG_OFFSET_CAPTURE);
foreach ($matches as $match) {
// TODO: determine which group was matched.
// Don't forget lexemes that are *not* part of the expression:
// i.e. whitespaces and operators. These are between the matches.
echo "<span class=\"$keyword\">$token</span>";
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow