Модуль:Aggregator/doc

Материал из Поле цифровой дидактики

Это страница документации Модуль:Aggregator.

Module:Aggregator

Модуль Aggregator — учебный Lua-модуль для курса «Программирование» в MediaWiki/Scribunto. Он показывает, как страница вики может рассматриваться как источник данных для анализа.

Назначение

Модуль поддерживает 5 базовых режимов:

Режим Что делает
args считает количество переданных аргументов
chars считает длину исходного вики-текста страницы в байтах
words считает количество слов в исходном вики-тексте страницы
links считает количество wikilinks вида ...
headings считает количество заголовков вида == ... ==

Базовый вызов

{{#invoke:Aggregator|main|mode=args|a=Lua|b=SMW|c=NetLogo}}

Результат: количество переданных аргументов.

Примеры

Вики-текст Назначение
{{#invoke:Aggregator|main|mode=args|a=1|b=2|c=3}} Подсчёт аргументов
{{#invoke:Aggregator|main|mode=chars|title=Lua/Tutorial}} Подсчёт длины страницы
{{#invoke:Aggregator|main|mode=words|title=Lua/Tutorial}} Подсчёт слов
{{#invoke:Aggregator|main|mode=links|title=Lua/Tutorial}} Подсчёт wiki-ссылок
{{#invoke:Aggregator|main|mode=headings|title=Lua/Tutorial}} Подсчёт заголовков

Отдельные функции

Можно вызывать функции напрямую:

{{#invoke:Aggregator|args|x=1|y=2}}
{{#invoke:Aggregator|words|title=Lua/Tutorial}}
{{#invoke:Aggregator|links|title=Lua/Tutorial}}

Ограничения

  • Модуль анализирует исходный вики-текст, а не визуально отрендеренный HTML.
  • Подсчёт символов выполняется как длина строки в байтах.
  • При большом числе вызовов на одной странице возможны ограничения MediaWiki по ресурсоёмкости.

Remix-задания

Студент может создать модуль вида:

  • Module:Ivanov_Aggregator
  • Module:Student/Ivanov/Aggregator

и добавить новые режимы:

Новый режим Идея
templates считать шаблоны Шаблон:...
categories считать категории
files считать вхождения файлов
sentences считать предложения
externallinks считать внешние ссылки

Учебный смысл

Этот модуль показывает переход:

  1. от подсчёта аргументов
  2. к анализу страницы
  3. к созданию собственной метрики текста
  4. к remix-программированию внутри wiki-страниц