Бюрократы, Администраторы интерфейса, Администраторы (Semantic MediaWiki), Кураторы (Semantic MediaWiki), Editors (Semantic MediaWiki), Скрывающие, Администраторы, trusted
69 314
правок
мНет описания правки |
мНет описания правки |
||
Строка 5: | Строка 5: | ||
end | end | ||
-- | |||
function | -- Convert local links [[link|text]] and URL [link text] to plain text. | ||
local i, j = | -- See original function in module PM. | ||
local function remove_links( wiki_str ) | |||
local str = wiki_str | |||
-- remove local links | |||
i = mw.ustring.find(str,'[[',1,true) | |||
j = mw.ustring.find(str,']]',i,true) | |||
while i ~= nil do | |||
local link_text = mw.ustring.sub(str, i+2, j-1) | |||
local k = mw.ustring.find(link_text, '|', 1, true) | |||
if k ~= nil then | |||
link_text = mw.ustring.sub(link_text, k+1) | |||
end | |||
str = mw.ustring.sub(str, 1, i-1) .. link_text .. mw.ustring.sub(str, j+2, -1) | |||
i = mw.ustring.find(str,'[[',1,true) | |||
j = mw.ustring.find(str,']]',i,true) | |||
end | |||
-- remove URL | |||
i = mw.ustring.find(str,'[http',1,true) | |||
j = mw.ustring.find(str,']',i,true) | |||
while i ~= nil do | |||
local link_text = mw.ustring.sub(str, i+1, j-1) | |||
local k = mw.ustring.find(link_text, ' ', 1, true) | |||
if k ~= nil then | |||
link_text = mw.ustring.sub(link_text, k+1) | |||
end | |||
str = mw.ustring.sub(str, 1, i-1) .. link_text .. mw.ustring.sub(str, j+1, -1) | |||
i = mw.ustring.find(str,'[http',1,true) | |||
j = mw.ustring.find(str,']',i,true) | |||
end | |||
return | return str | ||
end | end | ||
-- Create short description | -- Create short description | ||
Строка 28: | Строка 57: | ||
result = mw.ustring.sub(result, 1, i-1) | result = mw.ustring.sub(result, 1, i-1) | ||
end | end | ||
-- convert | -- convert all links to plain text | ||
result = | result = remove_links(result) | ||
-- take only first 100 characters; string.sub() uses bytes instead of chars | -- take only first 100 characters; string.sub() uses bytes instead of chars | ||
if mw.ustring.len(result) > 100 then | if mw.ustring.len(result) > 100 then |