Редактирование:
Модуль:Вложенные кавычки
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш 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
(
править
)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Тёмная тема
Вклад
Создать учётную запись
Войти
Пространства имён
Модуль
Обсуждение
English
Просмотры
Читать
Править код
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Получить короткий URL