Получить только имя страницы из URL подстраницы в MediaWiki - PullRequest
0 голосов
/ 01 октября 2018

Я установил поддержку Lua и модуль Module: String в MediaWiki и пытаюсь получить только вторую половину ссылки в шаблоне.

template: Icon

{{Icon|Icon.png|mypage/Mysubpage}} возвращает ссылку на подстраницу, показывая только «Mysubpage», а не полную ссылку «mypage / mysubpage»

Обычный шаблон выглядит так:

[[File:{{{1}}}|{{{size|64px}}}|link={{{2}}}|{{{2}}}]]<br>{{#ifeq:{{#pos:{{lc:{{{2|}}}}}|http}}|0|[{{{2}}}]|[[{{{2}}}]]}}

Но теперь, когда яЯ добавляю подстраницы, значки показывают полный путь ссылки рядом с ними.

Я пытался заменить {{{2}}} на:

{{#invoke:String|sub|{{{2}}}| {{#invoke:String|find|{{{2}}}|/|1}}+1 |{{#invoke:String|len|{{{2}}} }} }}

, но это не похожена работу.

Как мне этого добиться?

Спасибо!

1 Ответ

0 голосов
/ 02 октября 2018

Если у вас установлено расширение ParserFunctions , может пригодиться волшебное слово {{#titleparts}}.

документы говорят:

Эта функция разделяет заголовок страницы на сегменты на основе слешей, а затем возвращает некоторые из этих сегментов в качестве выходных данных.

{{#titleparts: pagename | number of segments to return | first segment to return }}

Если число сегментов для возвращаемого параметра не указано,по умолчанию он равен 0, что возвращает все сегменты из первого сегмента для возврата (включены).

Отрицательные значения принимаются для обоих значений… Отрицательные значения для первого сегментаreturn переводится как «начинать с этого сегмента, считая справа»:

{{#titleparts: Talk:Foo/bar/baz/quok | | -1 }}quok Возвращает последний сегмент.

Поскольку вы ищете только последний сегмент, вы хотите {{#titleparts: {{{2}}} | | -1 }}.Это будет работать независимо от того, используется шаблон на подстранице или нет.

...