Для приложения (*), которое я разрабатываю, мне нужна смесь динамически генерируемых и статических страниц. Было бы здорово использовать вики, чтобы при первом доступе к динамической странице она становилась статической страницей, которую пользователь мог аннотировать так же, как и любую другую статическую вики-страницу.
Другими словами, я хочу переопределить все, что выводит сообщение «Эта тема еще не существует» (или что-то еще) с чем-то, что а) генерирует новый контент в формате вики и сохраняет его в базе данных, затем б) анализирует и отображает этот текст.
Да, и это должно быть рекурсивно - созданная страница может иметь ссылки на более динамически генерируемые страницы и т. Д.
Я создам динамическую страницу на основе ее имени (включая информацию о категории / пространстве имен до некоторой произвольной глубины).
И последнее: было бы неплохо (но не обязательно) создать некоторые динамические страницы заранее с помощью пакетного сценария (в основном для повышения производительности, поскольку для создания этих страниц может потребоваться некоторое время).
Так что мой вопрос в том, какое программное обеспечение вики легче всего изменить / написать плагин для этого?
(*) Представьте себе анализатор coredump (например, gdb), где вам представлен список дампов (возможно, хранящихся на некотором удаленном компьютере). Вы нажимаете на дамп, он дает вам список потоков. Вы нажимаете на поток, он дает вам стек. Вы нажимаете на кадр стека, он показывает вам память. Вы нажимаете слово памяти, и оно отображает страницу памяти по этому адресу и т. Д.
Когда вы перемещаетесь по дампу, вы добавляете заметки о том, что вы обнаружили о проблеме, чтобы помочь вам позже или поделиться с коллегами, которые также могут просматривать дамп.
Через несколько месяцев дамп мог исчезнуть с удаленного компьютера (занимает много места для архивирования всех этих дампов), но теперь вы столкнулись с подобной проблемой. Вы вводите одно из имен функций из трассировки стека в своем недавнем дампе в поле поиска вики и извлекаете сохраненную информацию о предыдущем вхождении.
Обновление: спасибо за все ответы. Я действительно могу пойти с MediaWiki. Похоже, я могу создать расширение ArticleViewHeader , которое затем может вызвать doEdit , чтобы создать страницу, если она еще не существует. Существует расширение VirtualPage , которое, похоже, делает нечто подобное.