Какая вики позволит мне динамически создавать страницу при нажатии на ссылку?

Для приложения (*), которое я разрабатываю, мне нужна смесь динамически генерируемых и статических страниц. Было бы здорово использовать вики, чтобы при первом обращении к динамической странице она становилась статической страницей, которую пользователь мог бы аннотировать так же, как любую другую статическую страницу вики.

Другими словами, я хочу переопределить все, что выводит сообщение «Эта тема еще не существует» (или что-то еще), чем-то, что: а) генерирует новый контент в формате вики и сохраняет его в базе данных, затем б) анализирует и отображает этот текст .

Да, и это должно быть рекурсивно - созданная страница может иметь ссылки на более динамически генерируемые страницы и так далее.

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

И последнее: было бы неплохо (но не обязательно) заранее создать некоторые динамические страницы с помощью пакетного сценария (в основном для повышения производительности, поскольку создание этих страниц может занять некоторое время).

Итак, мой вопрос: какое программное обеспечение вики было бы проще всего изменить / написать плагин для этого?

(*) Представьте себе анализатор дампа памяти (подумайте о gdb), где вам предоставляется список дампов (возможно, хранящихся на каком-то удаленном компьютере). Вы нажимаете на дамп, он дает вам список потоков. Вы нажимаете на поток, он дает вам стек. Вы нажимаете на кадр стека, он показывает вам память. Вы нажимаете на слово памяти, и оно отображает страницу памяти по этому адресу и так далее.

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

Несколько месяцев спустя дамп мог исчезнуть с удаленной машины (для архивации всех этих дампов требуется много места), но теперь вы сталкиваетесь с аналогичной проблемой. Вы вводите одно из имен функций из трассировки стека в вашем недавнем дампе в поле поиска вики и извлекаете сохраненную информацию о предыдущем вхождении.

Обновление: спасибо за все ответы. Я действительно могу пойти с MediaWiki. Похоже, я могу создать расширение ArticleViewHeader, которое затем может вызывать doEdit, чтобы создать страницу, если она еще не существует. Существует расширение VirtualPage, которое, похоже, делает нечто подобное.


person Dave Griffiths    schedule 13.10.2008    source источник


Ответы (6)


Я видел это с помощью pmwiki.

person Ryan Guest    schedule 13.10.2008

Мне очень интересна tiddlyWiki

person Chobicus    schedule 13.10.2008

Trac также делает это.

person Epaga    schedule 13.10.2008

Perspective - это еще одно. Это вики с открытым исходным кодом .Net.

person Richard Dorman    schedule 15.10.2008

Tiddlywiki - одна из лучших вики. Вот как создать аккуратный программный

var t=store.createTiddler("Hello") 
if (!t) return false; 
var txt=t.text+"something to apdsdsddpend"; 
var who=config.options.txtUserName; 
var when=new Date(); 
store.saveTiddler(t.title,t.title,txt,who,when,t.tags,t.fields); 

Это создаст новый тиддли с именем title hello и содержимым, которое нужно приложить ...

если вы хотите открыть тиддлер в режиме редактирования после добавления текста выше, добавьте этот код

     var title = notetitle; 
     story.displayTiddler(null, title); 
     config.commands.editTiddler.handler(null, null, title);

Надеюсь, поможет.

Также tiddywiki принимает строку запроса

Пример: http://www.tiddlywiki.com/#open:HelloThere open: title Открывается тиддлер с указанным заголовком start: safe Переключает в безопасный режим search: text Выполняет поиск указанного текстового тега: text Отображает тиддлер с указанным тегом newTiddler: title Открывает новый тиддлер с указанным заголовком в режиме редактирования newJournal: titleFormat Открывает новый тиддлер с указанной DateFormatString: #newJournal: «ГГГГ МММ ДД»

person testere    schedule 25.06.2011

Прямой ответ на ваш вопрос: практически любую вики-страницу с открытым исходным кодом следует легко изменять - выберите тот (вики-сайт или язык), с которым вы наиболее знакомы.

Я знаю, что jspwiki предоставляет эту функцию прямо из коробки, если я правильно понял ваш вопрос. В настоящее время он находится в инкубаторе Apache. Проверьте Песочницу JspWiki.

person Olaf Kock    schedule 13.10.2008