colorize.pris

Adalberto

nov 2023


Converte um texto para html e coloriza as palavras para destaque. (semelhante aos editores de codigo fonte) mais...

Funções:

  1. hl.colorize
  2. hl.colorize_md
  3. hl.colorize_str

Variáveis:

  1. hl.lista_prisma

colorize.pris

Converte um texto para html e coloriza as palavras para destaque. (semelhante aos editores de codigo fonte)
* Esta biblioteca converte um texto fonte Prisma gerando um html com as palavras chaves destacadas.

Veja o exemplo de saída abaixo:

📋
 Exemplo:
  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ções:

Voltar ao início

funcao hl.colorize(txt, list)

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.

Parâmetros:

txt(string) - é o texto com o código fonte Prisma para ser convertido para md com destaque (highlighting);
list(tabela) - é a tabela contendo as definições e palavras chave Prisma, use hl.lista_prisma;

Retornos:

t(tabela) - retorna uma tabela contendo todo o texto html com destaque da linguagem Prisma.
Voltar ao início

funcao hl.colorize_md(txt, 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.

Parâmetros:

txt(string) - é o texto com o código fonte Prisma para ser convertido para md com destaque (highlighting);
list(tabela) - é a tabela contendo as definições e palavras chave Prisma, use hl.lista_prisma;

Retornos:

t(tabela) - retorna uma tabela contendo todo o texto html com destaque da linguagem Prisma.
Voltar ao início

funcao hl.colorize_str(txt, list)

Função hl.colorize_str(txt, list) - coloriza o fonte Prisma e já retorna uma string preparada para embutir no html.

Parâmetros:

txt(string) - é o texto com o código fonte Prisma para ser convertido para md com destaque (highlighting);
list(tabela) - é a tabela contendo as definições e palavras chave Prisma, use hl.lista_prisma;

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!

Retornos:

(string) - retorna uma string já com tag <pre> totalmente configurada para embutir no corpo html.

Obs.: A string retornada já está preparada com a tag <pre> com contagem de números de linhas e highlighting.

Veja o exemplo abaixo:

📋
 
  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();

Variáveis

Voltar ao início

hl.lista_prisma = { //estilo padrão da área código:

(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.

Veja:

📋
 lista_prisma
  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"
   };
	
}