Какая вики позволит мне динамически создавать страницу при нажатии на ссылку? - PullRequest
3 голосов
/ 13 октября 2008

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

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

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

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

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

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

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

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

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

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

Ответы [ 6 ]

2 голосов
/ 13 октября 2008

Я видел, как это было сделано с pmwiki .

1 голос
/ 26 июня 2011

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); 

Это создаст новый tiddly с названием title hello и содержимым чего-то для ap ...

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

     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 Выполняет поиск указанного текста tag: text Отображает тиддлеры, отмеченные указанным тегом newTiddler: title Открывает новый тиддлер с указанным заголовком при редактировании. Режим newJournal: titleFormat Открывает новый тидлер с указанным DateFormatString: #newJournal: "ГГГГ МММ ДД"

1 голос
/ 15 октября 2008

Перспектива - еще одна. Это вики с открытым исходным кодом .Net на основе.

1 голос
/ 13 октября 2008

Trac делает то же самое.

1 голос
/ 13 октября 2008

Я нахожу tiddlyWiki довольно интересно

0 голосов
/ 13 октября 2008

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

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

...