Модуль:LawLink
Материал из Справочника наблюдателя
Описание модуля[]
Функция {{#invoke:LawLink|LL}}
предназначена для применения в шаблонах, используемых для построения ссылок на документы. Образец (шаблон {{ГК}} ):
{{#invoke:LawLink|LL |им=Гражданский кодекс Российской Федерации |род=Гражданского кодекса Российской Федерации |ссылка=НПА:Гражданский кодекс Российской Федерации }}
Имеется также универсальный шаблон {{Док:Настройка}} , который после включения в текст статьи позволяет строить ссылки на документы с использованием шаблона {{Док}} :
{{Док:Настройка |им=Гражданский кодекс Российской Федерации |род=Гражданского кодекса Российской Федерации |им.=ГК РФ |род.=ГК РФ |ссылка=НПА:Гражданский кодекс Российской Федерации }}
Вышеприведенный пример использования {{Док:Настройка}} обеспечит идентичные результаты работы шаблонов {{ГК}} и {{Док}} .
Код | Результат | Пояснение |
---|---|---|
{{Док|ст.|35|кодекса}} | ст. 35 кодекса | Ссылка на статью включает предшествующий и следующий за номером текст |
{{Док|ст.|35|+}} | ст. 35 Гражданского кодекса Российской Федерации | |+ вместо 3-го параметра (последующего текста) порождает наименование закона в родительном падеже |
{{Док|ст.|35|+.}} | ст. 35 ГК РФ | |+. вместо 3-го параметра (последующего текста) порождает сокращенную форму наименования закона в родительном падеже (если она определена) |
{{Док|ст.|35|кодекса|Lbl3501}} | ст. 35 кодекса | Дополнительно 4-м параметром может указываться метка (якорь) |
{{Док|ст.|35|+|!}} | ст. 35 Гражданского кодекса Российской Федерации | ...а |! вместо метки блокирует порождение ссылки. Такое осмысленно обычно в сочетании с |+ в качестве 3-го параметра (чтобы автоматически сформировать полное название закона) |
{{Док|!|35|соответствующая статья}} | соответствующая статья | |! вместо 1-го параметра (предшествующего номеру текста) означает, что в формируемый текст не будет включен и номер статьи |
{{Док|!|35|указанная норма|Lbl3501}} | указанная норма | Такой способ ссылки также может сочетаться с меткой (якорем) |
{{Док|это|Глава 1|кодекса}} | это Глава 1 кодекса | Если второй параметр (где обычно указывается номер статьи) начинается не с цифры, то считается, что это полное название структурной единицы нормативного акта |
{{Док|это|Глава 1|кодекса|Lbl111}} | это Глава 1 кодекса | При этом также могут использоваться якоря |
{{Док}} | Гражданский кодекс Российской Федерации | В отсутствие номера статьи формируется ссылка на закон в целом |
{{Док|+}} | Гражданского кодекса Российской Федерации | |+ — родительный падеж |
{{Док|Учим матчасть}} | Учим матчасть | вместо названия закона можно выдать произвольный текст |
{{Док|!}} | Гражданский кодекс Российской Федерации | |! блокирует собственно ссылку |
{{Док|+|!}} | Гражданского кодекса Российской Федерации | |+ и |! могут использоваться одновременно (в любом порядке) |
См. также[]
Шаблон | используется для ссылок на закон |
---|---|
{{152}} | — Федеральный закон от 27.07.2006 № 152−ФЗ «О персональных данных» |
{{ГК}} | — Гражданский кодекс Российской Федерации |
{{ГПК}} | — Гражданский процессуальный кодекс Российской Федерации |
{{АПК}} | — Арбитражный процессуальный кодекс Российской Федерации |
{{КАС}} | — Кодекс административного судопроизводства Российской Федерации |
{{КоАП}} | — Кодекс Российской Федерации об административных правонарушениях |
{{УПК}} | — Уголовно-процессуальный кодекс Российской Федерации |
{{УК}} | — Уголовный кодекс Российской Федерации |
{{СМИ}} | — Закон Российской Федерации от 27.12.1991 № 2124−I «О средствах массовой информации» |
{{ЗоПол}} | — Федеральный закон от 07.02.2011 № 3−ФЗ «О полиции» |
{{ФЗГ}} | — Федеральный закон от 12.06.2002 № 67−ФЗ «Об основных гарантиях избирательных прав и права на участие в референдуме граждан Российской Федерации» |
{{ФЗГ/doc}} | — общая документация для всех вышеперечисленных шаблонов |
- Шаблоны {{Док:Настройка}} , {{Док}} — используются для ссылок на произвольные нормативные акты
Вышеприведенная документация хранится отдельно ( править | история | скрыть ).
Задавайте категории на странице документации, а не здесь! Показать подстраницы
Задавайте категории на странице документации, а не здесь! Показать подстраницы
local p = {}
function p.LL(frame)
local params = frame:getParent().args
local configs = frame.args
local before, article, after, label = mw.text.trim(params[1] or ''), mw.text.trim(params[2] or ''),
mw.text.trim(params[3] or ''), mw.text.trim(params[4] or '')
local mode
local res = ''
if article == '' or article == '+' or article == '+.' or article == '.' or article == '!' then -- link to whole doc
if before == '!' then -- exclamation mark into second position (article)
before, article = article, before
end
if article ~= '!' then
res = '[[' .. configs['ссылка'] .. '|'
end
if before == '+' then
res = res .. configs['род']
elseif before == '+.' then
res = res .. ( configs['род.'] or configs['род'] )
elseif before == '' then
res = res .. configs['им']
elseif before == '.' then
res = res .. ( configs['им.'] or configs['им'] )
else
res = res .. before
end
if article ~= '!' then
res = res .. ']]'
end
else
if label ~= '!' then
res = '[[' .. configs['ссылка'] .. ':'
local x = mw.ustring.sub(article,1,1)
if x >= '0' and x <= '9' then
res = res .. (configs['статья'] or 'Статья ')
end
res = res .. article
if label ~= '' then
res = res .. '#' .. label
end
res = res .. '|'
end
local resar = {}
if before ~= '!' then
if before ~= '' then
table.insert(resar, before)
end
table.insert(resar, article)
end
if after == '+' then
table.insert(resar, configs['род'])
elseif after == '.' or after == '+.' then
table.insert(resar, configs['род.'] or configs['род'])
elseif after ~= '' then
table.insert(resar, after)
end
res = res .. table.concat(resar, ' ')
if label ~= '!' then
res = res .. ']]'
end
end
return res
end
return p