Clean Web Clipper Añadir a Chrome – gratis

Para quién es · ·

Guarda documentación con el código intacto

Clean Web Clipper lee el lenguaje del marcado de la propia página –la clase del bloque, el elemento padre o lo que dejó el resaltador– y lo escribe en el bloque de Markdown. En un corpus técnico de nueve páginas la etiqueta sobrevivió en 73 de 156 bloques, frente a 20 y 0 de los dos motores comparados.

De dónde salen estas cifras: la medición, con las versiones de los motores y las fechas

¿Por qué hay que limpiar la documentación capturada?

La documentación técnica es sobre todo código, y es justo la parte que se cae por el camino. Capturas una página de referencia y en la nota aparece un bloque desnudo, sin js ni python, con todo el texto en gris. Para recuperar el resaltado hay que abrir cada bloque y escribir la etiqueta a mano, y una página de referencia trae quince o veinte.

El segundo golpe llega con las tablas. Las tablas de parámetros y de códigos de respuesta suelen llevar código dentro de una celda, y un conversor genérico las aplasta en una línea o las pierde enteras. Lo que queda es una nota que hay que leer con la página original abierta al lado, que era exactamente lo que querías evitar.

El tercer problema aparece meses después. La documentación se versiona: la página que leíste para la 3.x redirige a la 4.x, el ejemplo cambió y ya no hay forma de saber cuál era el bueno. Una nota sin la dirección de origen ni la fecha de publicación no resuelve esa duda; con las dos en el frontmatter, y con el campo extraction indicando si el texto salió del DOM renderizado o de los datos estructurados, la nota se sostiene sola.

Los ajustes del clic en el icono: cinco acciones a elegir, entre ellas «Poner en una carpeta», para capturar sin abrir ninguna ventana
La ventana de captura en modo oscuro con una página de referencia de MDN en Markdown, con su tabla de datos y un bloque de código intactos
La página de documentación de MDN detrás de la ventana de captura, todavía con su navegación, su barra lateral y su demo interactiva
Añadir a Chrome – gratisGratis del todo: sin cuenta y sin límite de páginas.For Chrome on a computer

Mira qué llega a la nota

El bloque conserva su etiqueta de lenguajees.react.dev/learn/thinking-in-react
La API de JSON devuelve unos datos con este aspecto:

```js
[
  { category: "Fruits", price: "$1", stocked: true, name: "Apple" },
  { category: "Vegetables", price: "$2", stocked: true, name: "Spinach" }
]
```

## Paso 1: Divide la interfaz en una jerarquía de componentes

Captura documentación paso a paso

Cinco minutos de ajustes iniciales y a partir de ahí una página de referencia se guarda con un atajo. Clean Web Clipper es una extensión Manifest V3 para Chrome, y la única dirección con la que puede comunicarse es nuestra propia dirección de estadísticas, nunca los sitios que lees.

  1. Instala la extensión y abre sus ajustes. Lo primero que decide todo lo demás es la línea «qué hace el clic en el icono»: vista previa, portapapeles, descarga .md, carpeta en el disco o vault de Obsidian. Para documentación deja «vista previa» al principio, hasta que confíes en el resultado.
  2. En «carpeta de destino» pulsa el botón de elegir carpeta y señala la carpeta donde vives con tus notas técnicas. El navegador pide confirmación una sola vez y recuerda el permiso; fuera de esa carpeta la extensión no lee ni escribe nada.
  3. Escribe la subcarpeta Docs y la plantilla de nombre {domain}-{title}. El dominio delante agrupa por origen al ordenar por nombre, que en documentación es más útil que ordenar por fecha, porque lo que buscas es «lo de MDN» o «lo de Python».
  4. Pon las imágenes en «omitir» como valor general. En documentación las capturas de pantalla de la interfaz aportan poco a una nota de referencia, y como los archivos binarios no se descargan, un enlace de imagen roto es ruido garantizado a medio plazo.
  5. Crea una regla por sitio para el dominio de documentación que más uses –por ejemplo developer.mozilla.org– y dale su propia subcarpeta y su propio ajuste de imágenes. La regla se aplica sola cuando la dirección coincide con el patrón.
  6. Comprueba el atajo en chrome://extensions/shortcuts. Alt+Shift+M viene puesto de fábrica, pero si otra extensión ya lo ocupa la casilla aparece vacía y el atajo no dispara nada; asígnalo ahí.
  7. Captura una página de referencia con varios bloques de código y ábrela en la vista de lectura antes de guardarla. Si el bloque sale marcado como js o python, la página declara el lenguaje y todas las demás de ese sitio se comportarán igual.

Elige los ajustes para documentación

Esta es la configuración con la que una página de referencia queda utilizable sin retoques. Cada valor resuelve un problema concreto de la documentación técnica, no una preferencia general.

AjusteValorPor qué así para documentación
Clic en el iconoVista previaLa documentación varía mucho de un sitio a otro; ver la captura antes de guardarla evita descubrir dos semanas después que ese sitio pierde los bloques
Carpeta y subcarpetaTu vault → DocsUna sola carpeta para todo lo técnico hace que la búsqueda por nombre de función devuelva algo
Plantilla de nombre{domain}-{title}La referencia se busca por origen, no por fecha: developer.mozilla.org-Array.prototype.map se encuentra escribiendo map
ImágenesOmitirNo se descargan archivos binarios: un enlace de imagen a un sitio que se rediseña es un hueco futuro en la nota
Frontmattertitle, source, published, extractionCon source vuelves a la versión exacta y con extraction sabes si el cuerpo salió del DOM o de los datos estructurados
Regla por sitiodeveloper.mozilla.orgDocs/MDNCada fuente de documentación en su carpeta evita que un README y una referencia del navegador acaben mezclados
Atajo de tecladoAlt+Shift+MCapturar sin soltar el teclado es la diferencia entre guardar la página y dejarla en una pestaña abierta
Caso difícil: una tabla de parámetros con código dentro de la celda, y un bloque que la página no etiquetadeveloper.mozilla.org/es/docs/Web/API/fetch
| Parámetro | Tipo | Descripción |
| --- | --- | --- |
| `resource` | `string` \| `Request` | La dirección que se quiere recuperar, o un objeto `Request` ya construido |
| `options` | `object` | Admite `method`, `headers`, `body`, `mode`, `credentials`, `cache` |

```js
const respuesta = await fetch("/api/datos", { method: "POST" });
```

```
$ npx serve ./public
```

El segundo bloque sale sin etiqueta a propósito: la página no declara
ningún lenguaje para él, y poner una equivocada rompería el resaltado
en lugar de arreglarlo.

Mira tres sesiones de trabajo

Los tres casos de abajo usan el mismo atajo por tres motivos distintos: llevarse una guía de varios capítulos al editor sin veinte pestañas abiertas, quedarse solo con la respuesta de un foro que de verdad funciona y comparar la misma referencia antes y después de una versión mayor. Ninguno es un caso raro, y cada captura cuesta una pulsación.

Llevarte una guía larga al editor

Estás siguiendo un tutorial de varios capítulos y no quieres tener veinte pestañas abiertas. Abres el primer capítulo, pulsas Alt+Shift+M y repites capítulo a capítulo: la extensión no rastrea, así que cada página la decides tú, y eso es exactamente lo que quieres cuando la mitad de los capítulos no te interesan.

Al terminar tienes seis archivos en Docs, nombrados por dominio y título, con los bloques de código etiquetados. Abres la carpeta en el editor y buscas por el nombre de la función; el frontmatter conserva la dirección de cada capítulo por si hay que volver al original a comprobar una nota al pie.

Guardar solo la respuesta que funciona

Encuentras en un foro técnico la respuesta que resuelve tu problema, entre otras nueve que no. Seleccionas el bloque de código y el párrafo que lo explica, y capturas la selección: el interruptor de la parte superior de la ventana indica en todo momento si estás viendo la página entera o solo lo seleccionado.

Se guarda un archivo con esos dos elementos y el frontmatter completo, incluida la dirección del hilo. La etiqueta de lenguaje viaja con el bloque seleccionado, así que el fragmento sale resaltado en la nota igual que salía en el foro.

Saber qué cambió entre dos versiones de una referencia

Capturas hoy la página de un método que estás usando. Tres meses después el proyecto sube de versión mayor y quieres saber qué se movió: capturas otra vez la misma dirección. Como el nombre coincide, la extensión añade un sufijo numérico en lugar de pisar la captura anterior.

Ahora tienes dos archivos de texto de la misma página en dos momentos, y cualquier herramienta de comparación te enseña qué párrafos y qué firmas cambiaron. La extensión no compara nada por su cuenta ni vigila la página: lo que aporta es que las dos copias sean comparables línea por línea.

Compara con las otras formas de guardar documentación

Todas estas vías funcionan; la cuestión es qué se pierde por el camino. La última fila es esta extensión, con su coste dicho igual de claro que el de las demás.

Cómo se hace ahoraQué obtienesQué cuesta
Copiar y pegar en el editorEl texto y, con suerte, la estructura de encabezadosLos bloques llegan sin etiqueta de lenguaje y las tablas con código dentro se deshacen; se pierden la dirección de origen y la fecha
Imprimir a PDFLa página tal como se ve, con su maquetaciónEl código no se puede copiar con fiabilidad, el archivo no se busca bien y arrastra menú, barra lateral y pie
Guardar la página completa (HTML)Todo, incluidos los recursosUna carpeta por página, HTML que no se lee en un editor de texto y un resultado que depende de que el navegador siga abriéndolo igual
MarcadorUn enlace, en un segundoNo hay texto: cuando el sitio se rehace o la versión cambia, el marcador apunta a otra cosa
Captura de pantallaPrueba visual de lo que visteEl código no se puede pegar ni buscar, y una referencia larga son quince imágenes
Clean Web ClipperMarkdown con el código etiquetado, las tablas enteras y el origen en el frontmatterUna página cada vez, sin rastreo; las imágenes quedan como enlaces o se omiten, y si la página no declara el lenguaje el bloque sale sin etiqueta

¿Qué hacer cuando la captura no sale bien?

Cuando la captura de documentación con Clean Web Clipper no sale bien, casi siempre es una de cuatro cosas: un bloque sin etiqueta porque la página no la declara, una referencia de API marcada como «sin artículo», media página que no se había cargado todavía o un atajo de teclado ocupado por otra extensión. Cada caso tiene abajo una causa concreta que se puede comprobar, y ninguno significa que la captura fallara en silencio.

¿Por qué el bloque de código sale sin etiqueta de lenguaje?

Porque esa página no la declara. La etiqueta se lee del marcado del sitio –la clase que dejó el resaltador o el elemento padre del bloque–, no del contenido del código. Un sitio que resalta con un script sin dejar rastro en el DOM, o que sirve el ejemplo dentro de una imagen, no da nada que leer. En el corpus técnico la etiqueta sobrevivió en 73 de 156 bloques: la diferencia hasta 156 son, en su mayoría, páginas que no la declaran.

¿Por qué una referencia de API sale marcada como «sin artículo»?

Porque es un índice, no un artículo. La extensión revisa el Markdown terminado y, si más de una cuarta parte del texto está dentro de etiquetas de enlace, informa de «sin artículo» en lugar de entregarte trescientos enlaces. Las páginas de índice de una API –listas de métodos, mapas del sitio, árboles de módulos– caen justo ahí. Abre la página del método concreto y captúrala.

¿Por qué falta la mitad de la página en un sitio de documentación?

Casi siempre porque esa mitad todavía no estaba en la página. La extensión lee el DOM en el momento en que pulsas, así que los ejemplos que viven en pestañas cerradas, las secciones plegadas y lo que se carga al bajar no existen para ella.

La solución es mecánica: despliega lo que quieras conservar, cambia a la pestaña de ejemplos que te interesa, baja hasta el final y entonces captura. Si aun así falta el cuerpo entero y el campo extraction dice jsonld-articlebody, lo que ha ocurrido es que la página nunca terminó de renderizarse y el texto se leyó de sus datos estructurados.

¿Por qué no hace nada Alt+Shift+M?

Porque el atajo está ocupado. Chrome no avisa de los conflictos: asigna la combinación a la primera extensión que la reclama y deja vacías las demás. Abre chrome://extensions/shortcuts, busca Clean Web Clipper y comprueba si la casilla tiene algo escrito. Mientras tanto, el clic en el icono hace exactamente lo mismo, y en las páginas que el navegador protege –chrome://, la propia tienda de extensiones– no se ejecuta ninguna de las dos cosas.

¿Qué no hace Clean Web Clipper?

Clean Web Clipper no rastrea un sitio de documentación entero: captura la página que tienes delante y no sigue enlaces por su cuenta. No adivina el lenguaje cuando la página no lo declara; entonces el bloque sale sin etiqueta, porque una equivocada es peor que ninguna. No descarga imágenes ni diagramas: quedan como enlaces al original. Y no se ejecuta en páginas que el navegador protege, como chrome:// o la tienda de extensiones.

Añadir a Chrome – gratisGratis del todo: sin cuenta y sin límite de páginas.For Chrome on a computer

Mira qué detecta y qué convierte

¿Qué lenguajes detecta?
Los que declara la propia página. Clean Web Clipper no adivina el lenguaje a partir del código: lee la clase que dejó el resaltador del sitio, así que la etiqueta es tan correcta como la página de origen.
¿Funciona con documentación que se renderiza en JavaScript?
Sí. La extensión lee el DOM una vez renderizada la página, así que los sitios de documentación de una sola página se capturan tal como los ves.
¿Puedo quitar las imágenes de la documentación?
Sí. Pon las imágenes en «omitir» en los ajustes, de forma global o como regla para un sitio concreto.
¿Y el código en línea, el que va entre comillas invertidas?
Se conserva como código en línea de Markdown. Los nombres de función y de atributo siguen distinguiéndose del texto normal en la nota.
¿Puedo capturar solo un bloque de código?
Sí. Selecciónalo en la página antes de capturar y solo se guarda la selección, con su etiqueta de lenguaje incluida.

Consulta los casos límite: sangría, carpetas, pestañas y permisos

¿Se conserva la sangría dentro del bloque?
Sí, tal cual. La sangría y las líneas en blanco del interior del bloque se copian sin normalizar, así que un ejemplo de Python o de YAML se pega y funciona sin recolocar nada.
¿Puedo mandar cada sitio de documentación a su propia carpeta?
Sí, con las reglas por sitio. Un patrón de dirección recibe su subcarpeta, su ajuste de imágenes y su propio frontmatter, y la regla se aplica sola cuando capturas en ese dominio.
¿Qué significa extraction: jsonld-articlebody en una página de documentación?
Que la página no llegó a mostrar su contenido en el DOM y el cuerpo se leyó de sus datos estructurados. Ocurre en sitios que se dibujan por completo con JavaScript. El texto es el mismo, pero conviene mirar la captura: los bloques de código pueden llegar sin etiqueta, porque esa etiqueta vive en el marcado que nunca se renderizó.
¿Captura los ejemplos de las pestañas que no están abiertas?
No. Se captura lo que hay en la página en ese momento. Si la documentación ofrece el mismo ejemplo en varios lenguajes en pestañas, abre la que quieras guardar antes de capturar; para conservar dos, captura dos veces.
¿Necesita permiso sobre todos los sitios que visito?
No. La extensión no pide ningún permiso sobre los sitios que visitas: el acceso a una página se concede con tu clic en el icono o con el atajo, y solo para esa pestaña y esa acción. Por eso no puede leer una página que no le hayas señalado. El texto y el título de la página nunca salen de tu equipo, y tampoco la dirección completa de una página capturada sin problemas. A nuestra propia dirección de estadísticas van, salvo que lo desactives en los ajustes: el dominio a secas de una captura correcta (wiki.tuempresa.com, no la página), la dirección de una página que no se pudo convertir, los nombres de las pantallas de la extensión que abres, la acción que haces con una captura (copiar, archivo, carpeta, vault de Obsidian, imprimir, chat de IA – sin la dirección de la página) y un número de instalación aleatorio. Las direcciones de la red local – localhost, nombres .local, 10.x, 192.168.x – no se envían nunca.