Questo algoritmo che consiglio dipende dal mantenimento del modello di dati per le operazioni nel database e dall'utilizzo di quel modello per generare le interfacce e i collegamenti nella modalità lettura del documento, piuttosto che consentire l'accesso diretto modifica del documento principale. Un approccio basato sul collegamento nella vista renderizzata (non in modifica) consente a qualcuno di partecipare al flusso di lavoro dei commenti senza consentire loro di modificare direttamente il documento principale; puoi semplicemente utilizzare le aree di testo oi campi di inserimento nel popover o un nuovo modulo basato su pagine per queste interazioni. Ho utilizzato questo approccio per le revisioni a livello di dipartimento.
Fare clic su un paragrafo potrebbe non essere un comportamento ovvio per i nuovi utenti. Quando si genera l'id per un componente degno di commenti (che si tratti di paragrafi, voci di elenco, blockquote o simili), considerare l'aggiunta di un collegamento in apice alla fine con un'etichetta o un'icona chiara che invita a fare clic per l'interazione. Quindi, fai clic su una finestra con il modulo o apri una nuova pagina (in base alle preferenze di accessibilità) per accettare quell'input, adattato all'ID generato. Dovrai indicizzare quel commento memorizzato dall'ID documento e dall'ID componente corrispondente.
Per il rendering dei commenti, quando un componente ha un nuovo commento, puoi aggiungere un nuovo link "vedi commenti" seguendo il link originale "commenta qui"; di nuovo, questo collegamento aggiunto può far apparire una finestra con la finestra di dialogo (dato che potrebbe essere uno o più contributori) con chiave per quel componente, o collegare a commenti in stile endnote visualizzati convenzionalmente sotto il documento. Credito extra per l'aggiunta di controlli di disposizione all'interno del gruppo di commenti di ciascun componente che tiene traccia di come hai utilizzato o respinto i suggerimenti!
Come fai a mantenere tutto questo interfacciamento di revisione separato dal contenuto del documento pulito stesso? Per i sorgenti HTML, manterrei solo l'attributo id / name sui componenti stessi e aggiungo i link di revisione in fase di visualizzazione basandoci su come camminare nell'albero dei documenti e applicare i collegamenti nel DOM prima della rappresentazione. Di solito ho un sorgente basato su XML, quindi uso un modello XSLT per riconoscere questi nodi e aggiungere il markup durante la conversione nell'albero dei risultati HTML. In entrambi i casi, la tua fonte originale rimane priva del markup di commenti / recensioni eccetto quando è in una vista in cui intendi consentire la creazione di commenti. Puoi disattivare questo passaggio aggiunto quando la revisione è terminata o quando il commento è chiuso.