local s = [[ //comentário de linha única --comentário de linha única estilo Lua funciona em Prisma funcao soma(a,b) retorne a+b; fim imprima('olá mundo.'); imprima(soma(1,2) ); ]] --[[ Comentário multilinha estilo Lua também funciona em Prisma ]] local color = inclua'colorize'; local tab = color.colorize(s); local str = '<pre>'; para i,v em ipares(tab) inicio str = str .. v; fim str = str .. '\n</pre>'; //agora só fazer algo com a str html, usar em cgi web, por exemplo. //esta área de código foi feita usando a lib colorize.pris a partir do programa minidoc //um gerador de documentação, muito básico e simples, mas que funciona, feito em Prisma-1.0.107
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
local s = [[ //comentário de linha única --comentário de linha única estilo Lua funciona em Prisma funcao soma(a,b) retorne a+b; fim imprima('olá mundo.'); imprima(soma(1,2) ); ]] --[[ Comentário multilinha estilo Lua também funciona em Prisma ]] local color = inclua'colorize'; local tab = color.colorize(s); local str = '<pre>'; para i,v em ipares(tab) inicio str = str .. v; fim str = str .. '\n</pre>'; //agora só fazer algo com a str html, usar em cgi web, por exemplo. //esta área de código foi feita usando a lib colorize.pris a partir do programa minidoc //um gerador de documentação, muito básico e simples, mas que funciona, feito em Prisma-1.0.107
Função hl.colorize(txt, list) - recebe uma string txt e retorna uma string com destaque palavras em html de acordo com as configurações da tabela list.
Função hl.colorize_md(txt, list) - mesma função, praticamente, mas com escape para caracteres markdown.
*A saída pode ser lida por um leitor de pdf compatível, como o okular, por exemplo.Função hl.colorize_str(txt, list) - coloriza o fonte Prisma e já retorna uma string preparada para embutir no html.
Para customizar as definições da área de código (como cor da fonte, cor de fundo, tamanho etc.) veja o exemplo acima, a tabela hl.lista_prisma e modifique o quanto quiser!
Obs.: A string retornada já está preparada com a tag <pre> com contagem de números de linhas e highlighting.
local cl = inclua'colorize'; local s = [[ imprima("olá mundo"); para i=1, 10 inicio imprima(i); fim ]] local txt = cl.colorize_str(s); txt = '<html><head><title>Teste colorize</title></head><body>\n<h1>Teste colorize</h1>\n' .. txt .. '</body></html>\n'; local a, err = es.abra('teste_colorize.html', 'escrita'); se nao a entao erro(err); fim a:escreva(txt); a:feche();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
local cl = inclua'colorize'; local s = [[ imprima("olá mundo"); para i=1, 10 inicio imprima(i); fim ]] local txt = cl.colorize_str(s); txt = '<html><head><title>Teste colorize</title></head><body>\n<h1>Teste colorize</h1>\n' .. txt .. '</body></html>\n'; local a, err = es.abra('teste_colorize.html', 'escrita'); se nao a entao erro(err); fim a:escreva(txt); a:feche();
(tabela) - variável tabela com as definições de estilo para a colorização dos fontes Prisma.
Obs.: é possível alterar os valores desta tabela e customizar o estilo de seu highlighting. basta analisar e modificar aquilo que quiser nela.hl.lista_prisma = { //estilo padrão da área código: // pad 2, cor texto: preto, cor fundo: branco; tamanho fonte: 16pixels //altura linha: 16px; borda de 1px cor: #d5d5d5; rolagem: auto; altura máxima 400px; area_codigo = {estilo=' padding:2; font-size: 16px; line-height: 16px; border: 1px solid #d5d5d5; overflow: auto; max-height: 400px; '; num_linhas = { cor_letra = 'black'; //na contagem de linhas essa cor é o padrão dos números. cor_letra_par = 'black'; cor_fundo = '#ffffff'; //padrão cor de fundo (branco); (impar); cor_fundo_par = '#ddd'; //cor par, alternância de cores (impar, par); }; }; comentario={ ['//']='color:green'; ['/*'] = 'color:green'; ['--'] = 'color:grey'; ['--[[']='color:grey'; }; strings = { ['"'] = 'color:blue'; //strings ['\''] = 'color:blue'; //strings ['[['] = 'color:blue';//string mult linha }; numeros = { estilo='color:red'; }; simbolos = { estilo='font-weight:bold;'; '[',']','{','}','(',')', '+','-','/','*','%','>','<','=','.',';','#','?',':', '^','~','&','|','\\' }; comandos = { estilo='font-weight:bold;color:#b50546'; //defina o estilo html aqui.{ "e", "quebre", "inicio", "início", "senao", "senão", "senaose","senãose", "fim", "falso", "para", "funcao","função", "vapara", "se", "em", "local", "nulo", "nao","não", "ou", "repita", "retorne", "entao","então", "verdadeiro", "ate","até", "enquanto", "..", "...", "==", ">=", "<=", "<>","<<", ">>", "::", "<eof>", "<numero>", "<nome>", "<string>","este", "vapara" }; base = { estilo='color:#b50546'; "erro", "compile", "convnumero", "cod", "string", "pchame", "U", "V", "convstring", "mat", "S", "T", "N", "_VERSAO", "proximo", "F", "B", "_INFO", "contador", "corotina", "tabela", "tipo", "modulo", "carregue", "prismadir", "imprimaf", "Tab", "executestring", "Bool", "args", "igual", "executearquivo", "debug", "defmetatabela", "poe", "desempacote", "bit32", "escolha", "inclua", "tente", "leia", "Num", "ipares", "obt", "coletelixo", "Thre", "pares", "Func", "obtmetatabela", "car", "sis", "es", "carreguearquivo", "pacote", "_G", "imprima", "def", "Classe", "xpchame", "Udat", "utf8", "Val", "selecione", "Str", "tamanho" }; es={ estilo='color:#b50546'; "tipo", "saida", "erro", "escreva", "abra", "linhas", "leia", "tmparquivo", "feche", "leitura", "escrita", "entrada", "pabra", "esvazie" }; mat={ estilo='color:#b50546'; "log", "log10", "arcoseno", "pi", "exp", "senoh", "separe", "minimo", "arredondeabaixo", "arredonde", "arcotangente", "aleatorio", "seno", "arcocosseno", "frexp", "absoluto", "arredondeacima", "arcotangente2", "corte", "raiz", "tangenteh", "maximo", "xaleatorio", "cossenoh", "raizquad", "ldexp", "elevado", "infinito", "hipot", "emGrau", "raizcubica", "tangente", "cosseno", "cmodulo", "xrandonico", "randonico", "emRadianos" }; sis={ estilo='color:#b50546'; "durma", "execute", "tamanho", "obtvarambiente", "data", "tempo", "defvarambiente", "diftempo", "saia", "nome", "nome_arquivo", "deflocal", "nometmp", "relogio", "renomeie", "caminho_absoluto", "remova", "delvarambiente" }; string={ estilo='color:#b50546'; "separe", "capte", "inverta", "car", "cod", "base64", "substring", "minuscula", "byte", "tamanho", "hex", "dec_hex", "corte", "compile", "procure", "entrecar", "formate", "junte", "apare", "maiuscula", "troque", "dec_base64", "sub", "nconcat", "analise" }; tabela={ estilo='color:red'; "empacote", "ordene", "maxn", "concat", "insira", "remova", "desempacote" }; corotina={ estilo='color:#b50546'; "estado", "exec", "yield", "wrap", "executando", "crie" }; utf8 = { estilo='color:#b50546'; "largindex", "offset", "ncasecmp", "tamanho", "remova", "fold", "titulo", "insira", "cod", "inverta", "troque", "corte", "maiuscula", "cods", "separe", "charpattern", "capte", "procure", "larg", "proximo", "carpos", "car", "escape", "pontocod", "minuscula", "byte" }; bit32={ estilo='color:#b50546'; "rrotate", "bou", "bteste", "arshift", "be", "lrotate", "lshift", "bnao", "rshift", "bxou", "extract", "replace" }; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
hl.lista_prisma = { //estilo padrão da área código: // pad 2, cor texto: preto, cor fundo: branco; tamanho fonte: 16pixels //altura linha: 16px; borda de 1px cor: #d5d5d5; rolagem: auto; altura máxima 400px; area_codigo = {estilo=' padding:2; font-size: 16px; line-height: 16px; border: 1px solid #d5d5d5; overflow: auto; max-height: 400px; '; num_linhas = { cor_letra = 'black'; //na contagem de linhas essa cor é o padrão dos números. cor_letra_par = 'black'; cor_fundo = '#ffffff'; //padrão cor de fundo (branco); (impar); cor_fundo_par = '#ddd'; //cor par, alternância de cores (impar, par); }; }; comentario={ ['//']='color:green'; ['/*'] = 'color:green'; ['--'] = 'color:grey'; ['--[[']='color:grey'; }; strings = { ['"'] = 'color:blue'; //strings ['\''] = 'color:blue'; //strings ['[['] = 'color:blue';//string mult linha }; numeros = { estilo='color:red'; }; simbolos = { estilo='font-weight:bold;'; '[',']','{','}','(',')', '+','-','/','*','%','>','<','=','.',';','#','?',':', '^','~','&','|','\\' }; comandos = { estilo='font-weight:bold;color:#b50546'; //defina o estilo html aqui.{ "e", "quebre", "inicio", "início", "senao", "senão", "senaose","senãose", "fim", "falso", "para", "funcao","função", "vapara", "se", "em", "local", "nulo", "nao","não", "ou", "repita", "retorne", "entao","então", "verdadeiro", "ate","até", "enquanto", "..", "...", "==", ">=", "<=", "<>","<<", ">>", "::", "<eof>", "<numero>", "<nome>", "<string>","este", "vapara" }; base = { estilo='color:#b50546'; "erro", "compile", "convnumero", "cod", "string", "pchame", "U", "V", "convstring", "mat", "S", "T", "N", "_VERSAO", "proximo", "F", "B", "_INFO", "contador", "corotina", "tabela", "tipo", "modulo", "carregue", "prismadir", "imprimaf", "Tab", "executestring", "Bool", "args", "igual", "executearquivo", "debug", "defmetatabela", "poe", "desempacote", "bit32", "escolha", "inclua", "tente", "leia", "Num", "ipares", "obt", "coletelixo", "Thre", "pares", "Func", "obtmetatabela", "car", "sis", "es", "carreguearquivo", "pacote", "_G", "imprima", "def", "Classe", "xpchame", "Udat", "utf8", "Val", "selecione", "Str", "tamanho" }; es={ estilo='color:#b50546'; "tipo", "saida", "erro", "escreva", "abra", "linhas", "leia", "tmparquivo", "feche", "leitura", "escrita", "entrada", "pabra", "esvazie" }; mat={ estilo='color:#b50546'; "log", "log10", "arcoseno", "pi", "exp", "senoh", "separe", "minimo", "arredondeabaixo", "arredonde", "arcotangente", "aleatorio", "seno", "arcocosseno", "frexp", "absoluto", "arredondeacima", "arcotangente2", "corte", "raiz", "tangenteh", "maximo", "xaleatorio", "cossenoh", "raizquad", "ldexp", "elevado", "infinito", "hipot", "emGrau", "raizcubica", "tangente", "cosseno", "cmodulo", "xrandonico", "randonico", "emRadianos" }; sis={ estilo='color:#b50546'; "durma", "execute", "tamanho", "obtvarambiente", "data", "tempo", "defvarambiente", "diftempo", "saia", "nome", "nome_arquivo", "deflocal", "nometmp", "relogio", "renomeie", "caminho_absoluto", "remova", "delvarambiente" }; string={ estilo='color:#b50546'; "separe", "capte", "inverta", "car", "cod", "base64", "substring", "minuscula", "byte", "tamanho", "hex", "dec_hex", "corte", "compile", "procure", "entrecar", "formate", "junte", "apare", "maiuscula", "troque", "dec_base64", "sub", "nconcat", "analise" }; tabela={ estilo='color:red'; "empacote", "ordene", "maxn", "concat", "insira", "remova", "desempacote" }; corotina={ estilo='color:#b50546'; "estado", "exec", "yield", "wrap", "executando", "crie" }; utf8 = { estilo='color:#b50546'; "largindex", "offset", "ncasecmp", "tamanho", "remova", "fold", "titulo", "insira", "cod", "inverta", "troque", "corte", "maiuscula", "cods", "separe", "charpattern", "capte", "procure", "larg", "proximo", "carpos", "car", "escape", "pontocod", "minuscula", "byte" }; bit32={ estilo='color:#b50546'; "rrotate", "bou", "bteste", "arshift", "be", "lrotate", "lshift", "bnao", "rshift", "bxou", "extract", "replace" }; }