Заглавная
Случайная
Войти
Настройки
О Валленланд Вики
Отказ от ответственности
Валленланд Вики
Найти
Редактирование:
Модуль:Вложенные кавычки
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
-- -- Re-implement [[Template:Вложенные кавычки]] in Lua -- Replaces «» to „“ without touching links -- require( 'strict' ) local getArgs local p = {} local function isEmpty( str ) return str == nil or str == '' end local function protectLinks( str ) local links, head = {}, 0 while true do local s, e, link = str:find( '(%[%[.-%]%])', head ) if not link then return str, links elseif link:find( '[[', 3, true ) then head = s + 2 else -- If the alt text contains '[', it can have one final ']'. if link:match( '^[^|]*|.-%[', 3 ) and str:sub( e + 1, e + 1 ) == ']' then link = link .. ']' end table.insert( links, link ) local placeholder = mw.ustring.char( 0xF0000 + #links ) str = str:gsub( link:gsub( '[$%%()*+%-.?[%]^]', '%%%0' ), placeholder ) head = str:find( placeholder ) + 1 end end end local function unprotectLinks( str, links ) for i, link in ipairs( links ) do str = str:gsub( mw.ustring.char( 0xF0000 + i ), link:gsub( '%%', '%%%%' ), 1 ) end return str end local function replace( str ) if isEmpty( str ) then return '' end str = mw.ustring.gsub( str, '«(.[^«»]-)»', '„%1“' ) return str end function p._main( text ) if isEmpty( text ) then return '' end local links = {} text, links = protectLinks( text ) if #links == 0 then return replace( text ) end -- Replace visible link text while keeping links intact for i, link in ipairs( links ) do local linkTarget = mw.text.trim( link, '%[%]' ) local linkText = '' local pipePos = link:find( '|', 1, true ) if pipePos ~= nil then local parts = mw.text.split( linkTarget, '|' ) linkTarget = parts[ 1 ] linkText = replace( parts[ 2 ] ) else linkText = replace( linkTarget ) end links[ i ] = string.format( '[[%s|%s]]', linkTarget, linkText ) end text = replace( text ) text = unprotectLinks( text, links ) return text end function p.main( frame ) getArgs = require( 'Module:Arguments' ).getArgs local args = getArgs( frame ) return p._main( args[ 1 ] ) end return p
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «Валленланд Вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Валленланд Вики:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Шаблон, используемый на этой странице:
Модуль:Вложенные кавычки/doc
(
править
)