The following outlines a possible way of implementing an annotation-based approach to maintaining cookbook content with TWiki. Something like this could come in handy if we decide we need to use an annotation approach on some or all cookbook topics, now or in the future. I don't know whether something along these lines already exists for TWiki, that should be investigated before implementing anything described below.
Cookbook content topics would be marked as only being editable by members of
SchematicsEditorsGroup. This is a standard Twiki capability (see
TWikiAccessControl). Each content topic would contain a link which, when clicked, would generate a new topic to allow an annotation to be entered. This link would need to invoke a custom script, but it needn't be complicated: it would generate a new topic with a unique name, insert an
%INCLUDE% for the new topic at the bottom of the original content page, and invoke the TWiki edit page for the new topic.
The contributor would enter his annotation in this new topic, and save it, at which point the text of that annotation would appear at the bottom of the original content topic.
The script which generates new annotation topics should also be able to mark such topics as only editable by their creator or SchematicsEditors, so that no-one other than that would be able to change the annotation.
Editors would use cut and paste to integrate annotations onto the original topic page, and delete the include statements for annotations once they're integrated.
If necessary, after integration, deletion of the actual annotation topics could be done by a script which looks for unreferenced topics and deletes them. A date cutoff could also be used so that unreferenced topics are kept around for some period of time.
The annotation topics should probably be generated and maintained in a separate TWiki "web", e.g. called Annotation, to avoid cluttering up the list of Cookbook topics, and so that scripts can more reliably identify annotation topics.
--
AntonVanStraaten - 19 Apr 2004