Módulo:Texto simples

Origem: Wikipédia, a enciclopédia livre.
Documentação do módulo[ver] [editar] [histórico] [purgar]
Implementa {{Texto simples}}. Desenvolvido para produzir descrições curtas a partir de texto que pode ter marcação ou outras coisas que precisam ser removidas de descrições curtas.

Uso[editar código-fonte]

Código
'''[[Foo|hah]]'''<sup>e</sup> <span style="color:red">is</span> '''''[[gah]]'''''<nowiki>?</nowiki>
hahe is gah?
Usando módulo
{{#invoke:Texto simples|main|1='''[[Foo|hah]]'''<sup>e</sup> <span style="color:red">is</span> '''''[[gah]]'''''<nowiki>?</nowiki>}}
hahe is gah

--converte texto com wikilinks em texto simples, por exemplo, "[[foo|gah]] é [[bar]]" para "gah é bar"
--remove qualquer coisa incluída em marcações (tags) que não esteja aninhada, marcadores de faixa de mediawiki (referências, etc.), arquivos, marcações em itálico e negrito
require[[strict]]
local p = {}

function p.main(frame)
	local text = frame.args[1]
	local encode = require('Módulo:Yesno')(frame.args.encode)
	return p._main(text, encode)
end

function p._main(text, encode)
	if not text then return end
	text = mw.text.killMarkers(text)
		:gsub('&nbsp;', ' ') --substitui os espaços "nbsp" por espaços regulares
		:gsub('<br ?/?>', ', ') --substitui o "br" por vírgulas
		:gsub('<span.->(.-)</span>', '%1') --remove os "spans" enquanto mantém o texto dentro
		:gsub('<i.->(.-)</i>', '%1') --remove o itálico enquanto mantém o texto dentro
		:gsub('<b.->(.-)</b>', '%1') --remove o negrito enquanto mantém o texto dentro
		:gsub('<em.->(.-)</em>', '%1') --remove a ênfase enquanto mantém o texto dentro
		:gsub('<strong.->(.-)</strong>', '%1') --remove os "strongs" enquanto mantém o texto dentro
		:gsub('<sub.->(.-)</sub>', '%1') --remove a marcação de subscrito; mantém o conteúdo
		:gsub('<sup.->(.-)</sup>', '%1') --remove a marcação de sobrescrito; mantém o conteúdo
		:gsub('<u.->(.-)</u>', '%1') --remove a marcação de sublinhado; mantém o conteúdo
		:gsub('<.->.-<.->', '') --remove as marcações (tags) restantes e o texto interno
		:gsub('<.->', '') --remove qualquer outra marcação de tag
		:gsub('%[%[%s*[Ff][Ii][Ll][Ee]%s*:.-%]%]', '') --remove os arquivos
		:gsub('%[%[%s*[Ff][Ii][Cc][Hh][Ee][Ii][Rr][Oo]%s*:.-%]%]', '') --remove os arquivos
		:gsub('%[%[%s*[Ii][Mm][Aa][Gg][Ee]%s*:.-%]%]', '') --remove o uso de imagem:
		:gsub('%[%[%s*[Ii][Mm][Aa][Gg][Ee][Mm]%s*:.-%]%]', '') --remove o uso de imagem:
		:gsub('%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:.-%]%]', '') --remove categorias
		:gsub('%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa]%s*:.-%]%]', '') --remove categorias
		:gsub('%[%[[^%]]-|', '') --remove texto de ligação (link) canalizado
		:gsub('([^%[])%[[^%[%]][^%]]-%s', '%1') --remove texto de ligação (link) externa
		:gsub('^%[[^%[%]][^%]]-%s', '') --remove texto de ligação (link) externa
		:gsub('[%[%]]', '') --em seguida, retira o "[" e o "]" restante
		:gsub("'''''", "") --remove marcações de negrito e itálico
		:gsub("'''?", "") --sem remover '''' fornece a saída correta para texto em negrito entre aspas
		:gsub('----+', '') --remove linhas "----" 
		:gsub("^%s+", "") --remove os espaços iniciais
		:gsub("%s+$", "") --e os espaços finais (à direita)
		:gsub("%s+", " ") --remove os espaços redundantes
	if encode then
		return mw.text.encode(text)
	else
		return text
	end
end

return p