|
|
(не показано 6 промежуточных версий 3 участников) |
Строка 1: |
Строка 1: |
− | '''ListFeed''' — расширение MediaWiki, позволяющее генерировать простые [[Изображение:Rss14.png]] [[RSS]]-ленты из стандартных списков [[mediawikiwiki:MediaWiki|MediaWiki]] (нумерованных «#» и маркированных «*»). | + | '''ListFeed''' — расширение MediaWiki, позволяющее генерировать простые [[File:Rss14.png]] [[RSS]]-ленты из стандартных списков [[mediawikiwiki:MediaWiki|MediaWiki]] (нумерованных «#» и маркированных «*»). |
| | | |
| Инструкции по установке и исходные коды можно увидеть на '''[http://yourcmc.ru/wiki/ListFeed_(MediaWiki) домашней странице расширения]'''. | | Инструкции по установке и исходные коды можно увидеть на '''[http://yourcmc.ru/wiki/ListFeed_(MediaWiki) домашней странице расширения]'''. |
Строка 5: |
Строка 5: |
| С помощью этого расширения практически любой список можно превратить в RSS-ленту. | | С помощью этого расширения практически любой список можно превратить в RSS-ленту. |
| | | |
− | Расширение добавляет два новых тега — '''<tt><listfeed></tt>''' и '''<tt><endlistfeed /></tt>''', а также функцию парсера '''<tt><nowiki>{{#listfeedurl:Feed Name}}</nowiki></tt>''', которая возвращает URL RSS-ленты, сгенерированной расширением из списка с заданным именем. Расширение позволяет легко превратить любой маркированный или нумерованный Wiki-список в RSS-ленты, которая автоматически обновляется при обновлении статьи. | + | Расширение добавляет два новых тега — '''<tt><listfeed></tt>''' и '''<tt><endlistfeed /></tt>''', а также функцию парсера '''<tt><nowiki>{{#listfeedurl:Feed Name}}</nowiki></tt>''', которая возвращает URL RSS-ленты, сгенерированной расширением из списка с заданным именем. Расширение позволяет легко превратить любой маркированный или нумерованный Wiki-список в RSS-ленты, которая автоматически обновляется при обновлении статьи. |
| | | |
| Каждый элемент списка становится отдельной записью ленты. | | Каждый элемент списка становится отдельной записью ленты. |
| * Заголовком записи становится первая строка текста элемента списка. | | * Заголовком записи становится первая строка текста элемента списка. |
− | * Текстом записи — всё остальное, если оно присутствует, и просто весь текст элемента списка, если нет. | + | * Текстом записи — всё остальное, если оно присутствует, и просто весь текст элемента списка, если нет. |
| * Дата записи разбирается в соответствии с заданным регулярным выражением (см. ниже) и вырезается из заголовка. | | * Дата записи разбирается в соответствии с заданным регулярным выражением (см. ниже) и вырезается из заголовка. |
| * Ссылкой записи становится первая ссылка в тексте, за исключением даты, так как в дате может присутствовать ссылка на автора, например, если используются стандартные подписи (<nowiki>~~~~</nowiki>). Если ссылок в тексте нет, используется ссылка на статью с уникальным якорем (anchor) для идентификации записи. | | * Ссылкой записи становится первая ссылка в тексте, за исключением даты, так как в дате может присутствовать ссылка на автора, например, если используются стандартные подписи (<nowiki>~~~~</nowiki>). Если ссылок в тексте нет, используется ссылка на статью с уникальным якорем (anchor) для идентификации записи. |
| * Автором записи становится первая ссылка в пространство имён <nowiki>[[Участник:]]</nowiki> из текста элемента списка, либо автор последней ревизии статьи. | | * Автором записи становится первая ссылка в пространство имён <nowiki>[[Участник:]]</nowiki> из текста элемента списка, либо автор последней ревизии статьи. |
| | | |
− | Ленты идентифицируются по именам (<tt><listfeed '''name=<nowiki>"ИМЯ_ЛЕНТЫ"</nowiki>'''></tt>) и помещаются в один каталог, поэтому в пределах одной Wiki-системы две ленты с одинаковыми именами будут перезаписывать друг друга при каждом обновлении страницы. Описанием ленты служит любой Wiki-код, заключённый в тег <tt><listfeed></tt> — он преобразуется в HTML и включается в RSS-элемент <tt><about></tt>. | + | Ленты идентифицируются по именам (<tt><listfeed '''name=<nowiki>"ИМЯ_ЛЕНТЫ"</nowiki>'''></tt>) и помещаются в один каталог, поэтому в пределах одной Wiki-системы две ленты с одинаковыми именами будут перезаписывать друг друга при каждом обновлении страницы. Описанием ленты служит любой Wiki-код, заключённый в тег <tt><listfeed></tt> — он преобразуется в HTML и включается в RSS-элемент <tt><about></tt>. |
| | | |
| Чтобы начать использовать ListFeed, добавьте тег <tt><listfeed></tt> перед вашим списком: | | Чтобы начать использовать ListFeed, добавьте тег <tt><listfeed></tt> перед вашим списком: |
Строка 45: |
Строка 45: |
| %C век (2 цифры), может использоваться вместе с %y, по умолчанию выбирается текущий век, если выделенный год и текущий год лежат в одной половине века, и предыдущий/следующий, если в разных | | %C век (2 цифры), может использоваться вместе с %y, по умолчанию выбирается текущий век, если выделенный год и текущий год лежат в одной половине века, и предыдущий/следующий, если в разных |
| %m месяц (2 цифры, от 01 до 12) | | %m месяц (2 цифры, от 01 до 12) |
− | %b / %B имя месяца — либо полное (Январь, Января, January), либо сокращённое (Янв, Jan) | + | %b / %B имя месяца — либо полное (Январь, Января, January), либо сокращённое (Янв, Jan) |
| %d день месяца (2 цифры) | | %d день месяца (2 цифры) |
| %e день месяца (1 или 2 цифры) | | %e день месяца (1 или 2 цифры) |
Строка 51: |
Строка 51: |
| %M минуты | | %M минуты |
| %S секунды | | %S секунды |
− | %s UNIX время — количество секунд, прошедших с начала Эпохи UNIX (1970-01-01 00:00:00) | + | %s UNIX время — количество секунд, прошедших с начала Эпохи UNIX (1970-01-01 00:00:00) |
| %% символ % | | %% символ % |
| </tab> | | </tab> |
Строка 80: |
Строка 80: |
| * [[Участник:EvgeniaUdalova|Евгения Удалова]] 09:00, 5 октября 2009: Опрос ДМС 2009 завершён! Результаты можно посмотреть [[Опрос_ДМС_2009| здесь]]. | | * [[Участник:EvgeniaUdalova|Евгения Удалова]] 09:00, 5 октября 2009: Опрос ДМС 2009 завершён! Результаты можно посмотреть [[Опрос_ДМС_2009| здесь]]. |
| * [[Участник:MaksTsepkov|Макс Цепков]] 05:38, 26 сентября 2009 (UTC) Чтобы долго не искать - ссылки на блоги и rss: | | * [[Участник:MaksTsepkov|Макс Цепков]] 05:38, 26 сентября 2009 (UTC) Чтобы долго не искать - ссылки на блоги и rss: |
− | *: [[Блог:Володя Рахтеенко]] | + | *: [[Blog:Володя Рахтеенко]] |
− | *: [[Блог:TechTools/Новости наших Wiki-систем: Блоги, черновики, интеграция с Subversion]] [[FeedOnFeeds]] | + | *: [[Blog:TechTools/Новости наших Wiki-систем: Блоги, черновики, интеграция с Subversion]] [[FeedOnFeeds]] |
| *: [[Служебная:Wikilog]] - общая лента блогов и замечание: когда ищите по wiki из панели слева, поиск в блогах отключен, надо включать галочку на результатах поиска. | | *: [[Служебная:Wikilog]] - общая лента блогов и замечание: когда ищите по wiki из панели слева, поиск в блогах отключен, надо включать галочку на результатах поиска. |
| <endlistfeed /></pre> | | <endlistfeed /></pre> |
| | | |
− | | + | [[Категория:Справка]] |
− | | + | |
− | [[Категория:{{SITENAME}}:Справка]] | + | |
| {{replicate-from-custiswiki-to-lib}} | | {{replicate-from-custiswiki-to-lib}} |
| + | {{replicate-from-custiswiki-to-4intranet}} |
Текущая версия на 18:02, 27 августа 2012
ListFeed — расширение MediaWiki, позволяющее генерировать простые RSS-ленты из стандартных списков MediaWiki (нумерованных «#» и маркированных «*»).
Инструкции по установке и исходные коды можно увидеть на домашней странице расширения.
С помощью этого расширения практически любой список можно превратить в RSS-ленту.
Расширение добавляет два новых тега — <listfeed> и <endlistfeed />, а также функцию парсера {{#listfeedurl:Feed Name}}, которая возвращает URL RSS-ленты, сгенерированной расширением из списка с заданным именем. Расширение позволяет легко превратить любой маркированный или нумерованный Wiki-список в RSS-ленты, которая автоматически обновляется при обновлении статьи.
Каждый элемент списка становится отдельной записью ленты.
- Заголовком записи становится первая строка текста элемента списка.
- Текстом записи — всё остальное, если оно присутствует, и просто весь текст элемента списка, если нет.
- Дата записи разбирается в соответствии с заданным регулярным выражением (см. ниже) и вырезается из заголовка.
- Ссылкой записи становится первая ссылка в тексте, за исключением даты, так как в дате может присутствовать ссылка на автора, например, если используются стандартные подписи (~~~~). Если ссылок в тексте нет, используется ссылка на статью с уникальным якорем (anchor) для идентификации записи.
- Автором записи становится первая ссылка в пространство имён [[Участник:]] из текста элемента списка, либо автор последней ревизии статьи.
Ленты идентифицируются по именам (<listfeed name="ИМЯ_ЛЕНТЫ">) и помещаются в один каталог, поэтому в пределах одной Wiki-системы две ленты с одинаковыми именами будут перезаписывать друг друга при каждом обновлении страницы. Описанием ленты служит любой Wiki-код, заключённый в тег <listfeed> — он преобразуется в HTML и включается в RSS-элемент <about>.
Чтобы начать использовать ListFeed, добавьте тег <listfeed> перед вашим списком:
<listfeed name="ИМЯ_ЛЕНТЫ" [ОПЦИИ]>
ОПИСАНИЕ_ЛЕНТЫ
</listfeed>
И тег <endlistfeed> после списка:
<endlistfeed />
Чтобы вставить ссылку на ленту в текст статьи, нужно использовать функцию парсера:
{{#listfeedurl:ИМЯ_ЛЕНТЫ}}
На данный момент доступны две опции, связанные с разбором дат элементов ленты.
Опция date
<listfeed date="ВЫРАЖЕНИЕ">.
Рядом с каждым элементом вашего списка, скорее всего, будет стоять дата. Однако, в каком она формате? Для установки формата с помощью специального регулярного выражения для разбора дат и служит эта опция. По умолчанию выбирается выражение для разбора стандартных подписей (~~~~):
^(?:[^:]+|<[^<>]*>)*%H:%M(?::%S)?,\s*%d\s+%b\s+%Y(?:\s*\(UTC\))?(?:\s*:?)
ВЫРАЖЕНИЕ похоже на обычные Perl-совместимые регулярные выражения, однако, кроме стандартных инструкций, включаемых в регулярные выражения, оно также может содержать большинство strftime(3)-подобных подстановок (см. ниже полный список поддерживаемых подстановок) и, таким образом, является как бы «обратной функцией» к strftime(3).
На данный момент поддерживаются следующие подстановки strftime:
%Y | год (4 цифры) |
%y | год (2 цифры) |
%C | век (2 цифры), может использоваться вместе с %y, по умолчанию выбирается текущий век, если выделенный год и текущий год лежат в одной половине века, и предыдущий/следующий, если в разных |
%m | месяц (2 цифры, от 01 до 12) |
%b / %B | имя месяца — либо полное (Январь, Января, January), либо сокращённое (Янв, Jan) |
%d | день месяца (2 цифры) |
%e | день месяца (1 или 2 цифры) |
%H / %h | часы |
%M | минуты |
%S | секунды |
%s | UNIX время — количество секунд, прошедших с начала Эпохи UNIX (1970-01-01 00:00:00) |
%% | символ % |
Прочие подстановки strftime признаны либо слишком специальными, либо производными от вышеупомянутых и поэтому отдельно не поддерживаются.
Опция headingdate
<listfeed headingdate="ВЫРАЖЕНИЕ">.
Даты, или их части, также могут быть заданы в заголовках между элементами. Предположим статью со следующим текстом:
<listfeed name="News of extension" date="^%b %d:\s*" headingdate="%Y" />
= 2010 news =
* Jan 13: New version of ListFeed.
* Jan 01: Happy New Year!
= 2009 news =
* Dec 17: ...
* ...
<endlistfeed />
В данном случае даты не могут быть взяты целиком из каждого элемента, однако, год каждой даты со всей очевидностью присутствует в заголовке, поэтому и требуется разбирать его тоже. Для приведённого примера, выражение headingdate="%Y" абсолютно корректно.
Пример
<listfeed name="Новости CustisWiki">
Новости CustisWiki - важные статьи, голосования, новости системы
</listfeed>
* [[Участник:EvgeniaUdalova|Евгения Удалова]] 09:00, 5 октября 2009: Опрос ДМС 2009 завершён! Результаты можно посмотреть [[Опрос_ДМС_2009| здесь]].
* [[Участник:MaksTsepkov|Макс Цепков]] 05:38, 26 сентября 2009 (UTC) Чтобы долго не искать - ссылки на блоги и rss:
*: [[Blog:Володя Рахтеенко]]
*: [[Blog:TechTools/Новости наших Wiki-систем: Блоги, черновики, интеграция с Subversion]] [[FeedOnFeeds]]
*: [[Служебная:Wikilog]] - общая лента блогов и замечание: когда ищите по wiki из панели слева, поиск в блогах отключен, надо включать галочку на результатах поиска.
<endlistfeed />
Репликация: База Знаний «Заказных Информ Систем» → «ListFeed (расширение MediaWiki)»
Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».