2008-10-13 12 views
3

Pour une application (*) que je développe, j'ai besoin d'un mélange de pages statiques et dynamiques. Il serait cool d'utiliser un wiki de telle sorte qu'une fois qu'une page dynamique a été accédée pour la première fois, elle devienne une page statique qui peut être annotée par un utilisateur comme n'importe quelle autre page wiki statique. En d'autres termes, je veux remplacer ce qui sort du message "Ce sujet n'existe pas encore" (ou autre) avec quelque chose qui a) génère le nouveau contenu au format wiki et le stocke dans la base de données puis b) analyse et affiche ce texte. Oh et cela devrait être récursif - la page créée peut avoir des liens vers des pages plus dynamiquement générées et ainsi de suite.Quel wiki va me permettre de créer dynamiquement une page quand on clique sur son lien?

Je vais générer la page dynamique en fonction de son nom (y compris les informations de catégorie/espace de noms à une profondeur arbitraire). Une dernière chose - il serait également bien (mais pas indispensable) de faire la création de certaines pages dynamiques en amont par un script batch (principalement pour les performances car ce sont des pages qui peuvent prendre du temps à générer).

Donc, ma question est quel logiciel wiki serait le plus facile à modifier/écrire un plugin pour faire cela? (*) Imaginez un analyseur coredump (pensez gdb) où vous êtes présenté avec une liste de vidages (peut-être stockés sur une machine distante). Vous cliquez sur un cliché, il vous donne une liste de threads. Vous cliquez sur un fil, il vous donne la pile. Vous cliquez sur un cadre de pile, il vous montre la mémoire. Vous cliquez sur un mot de la mémoire et il affiche la page de la mémoire à cette adresse et ainsi de suite. Lorsque vous naviguez dans l'image, vous ajoutez des notes sur ce que vous avez découvert à propos du problème pour vous aider plus tard ou pour partager avec vos collègues qui pourraient également regarder la décharge.

Quelques mois plus tard, le vidage a peut-être disparu de la machine distante (il faut beaucoup d'espace pour archiver toutes ces vidages) mais vous rencontrez maintenant un problème similaire. Vous entrez l'un des noms de fonctions d'une trace de pile dans votre vidage récent dans la boîte de recherche wiki et vous récupérez les informations enregistrées sur l'occurrence précédente.

Mise à jour: merci pour toutes les réponses. Je peux aller avec MediaWiki. Il semble que je peux créer un ArticleViewHeader extension qui peut alors appeler doEdit pour créer la page si elle n'existe pas encore. Il y a un VirtualPage extension qui semble faire quelque chose de similaire.

Répondre

0

La réponse directe à votre question est la suivante: Presque tout wiki OpenSource devrait être facilement modifiable - choisissez celui (wiki ou langue) que vous connaissez le mieux.

Je sais que jspwiki fournit cette fonctionnalité hors de la boîte si j'ai bien compris votre question. Il est actuellement dans l'incubateur Apaches. Vérifiez un JspWiki's Sandbox.

1

Perspective est encore un autre. C'est un wiki basé sur .Net.

1

Tiddlywiki est l'un des meilleurs wiki.Voici comment créer un tiddly programatically

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

Cela va créer une nouvelle tiddly avec le titre de nom bonjour et quelque chose contenu à ap ...

si vous voulez ouvrir le tiddler en mode d'édition après avoir ajouté ci-dessus texte ajouter ce code

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

Espérons que ça aide.

également tiddlywiki accepte querystring

Exemple: http://www.tiddlywiki.com/#open:HelloThere ouvert: le titre Ouvre la tiddler avec le titre spécifié début: sécurité Bascule en mode sécurisé recherche: texte Effectuer une recherche pour le texte spécifié tag: texte affiche tiddlers étiquetés avec l'étiquette spécifiée newTiddler: titre Ouvre une nouvelle tiddler avec le titre spécifié dans le mode édition de newJournal: titleFormat Ouvre une nouvelle tiddler avec spécifié DateFormatString: #newJournal: « AAAA MMM DD »

Questions connexes