2009-09-05 6 views
13

En un sistema de administración de contenido, los moderadores deben aprobar los cambios a los artículos existentes. Actualmente, el sistema muestra la versión anterior y la versión revisada del texto en texto sin formato. Es un dolor encontrar las diferencias reales.Buscando un componente diff basado en la web

En GoogleDocs, hay una función 'Comparar revisiones' que destaca las diferencias entre dos documentos.

¿Hay un componente gratuito que haga lo mismo?

Si no es así, ¿podría escribir tal componente en JavaScript o en el lado del servidor?

Todas las herramientas de diferencia habituales son aplicaciones de escritorio.

+0

encontrará algunos punteros en http: //stackoverflow.com/questions/206205/stackoverflow-diff-system –

Respuesta

10

John Resig escribió una en JavaScript que se ve interesante.

Here it is.

+0

Muy agradable. – Sampson

+0

Si es lo suficientemente bueno para el Sr. Resig, es lo suficientemente bueno para mí. Pequeño y utilizable en el cliente independientemente de lo que haya en el servidor. Gracias. –

3

jsdifflib parece una interesante biblioteca del lado del cliente basada en JavaScript. Me inclinaría fuertemente hacia una implementación del lado del cliente si proporcionara las características que necesita. ¿Por qué gravar sus servidores con lógica de presentación cuando ya le está entregando los datos al cliente?

+0

Después de implementar esto, me di cuenta de que si el artículo es 100k con pequeños cambios, el usuario debe descargar 200k de texto o solo 100k. Por lo tanto, si tiene grandes piezas de contenido, puede ser mejor hacer la difusión en el servidor. –

+0

Sí, ese es el otro lado. –

3

Prueba la herramienta Pretty Diff. Se basa en jsdifflib, pero se mejora para resaltar las diferencias de caracteres y se reconstruye para aumentar la velocidad. También compara el código minificado con el código no modificado. Está escrito completamente en JavaScript y admite JavaScript, CSS y entrada XML/XHTML.

http://prettydiff.com/

1

Mira la biblioteca de JavaScript diff wikEd diff. Se usa en Wikipedia en el gadget wikEdDiff para el propósito exacto de comparar revisiones de artículos. La biblioteca libre (de dominio público) puede detectar y resaltar movimientos de bloque, funciona en el nivel de palabra/carácter y escupe un texto muy bien formateado con inserciones, eliminaciones, bloques movidos y sus posiciones originales marcadas. Vea el demo en línea para jugar con la configuración.

0

El Diff, Match and Patch Library está disponible con una API idéntica en JavaScript, Java, C#, Python y otros idiomas. (Parece que ha sido y aún puede ser el único used in Google Docs.)

Hay un online demo de la salida HTML de las opciones difamantes.

Dada la API idéntica disponible en ambos idiomas cliente- y del lado del servidor, debería ser más fácil hacer un interruptor entre ellos si decide que desea ...

Cuestiones relacionadas