Clean Clipper Añadir a Chrome – gratis

Para quién es

Guarda documentación con el código intacto

Clean 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. Al pegar la nota en Obsidian, VS Code o GitHub el resaltado ya funciona, sin tocar nada. 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.

Dónde se pierde el código

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.

Qué cambia al capturar

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

Cómo capturar 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. Los pasos son los mismos en Chrome, Edge, Brave, Vivaldi y Opera: es una extensión Manifest V3 sin permisos de host.

  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.

Ajustes recomendados 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 → `Docs`Una 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
Frontmatter`title`, `source`, `published`, `extraction`Con `source` vuelves a la versión exacta y con `extraction` sabes si el cuerpo salió del DOM o de los datos estructurados
Regla por sitio`developer.mozilla.org` → `Docs/MDN`Cada 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.

Tres casos reales

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.

Frente a 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 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

Cuando la captura no sale bien

¿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 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.

Lo que no hace

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

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

Preguntas

¿Qué lenguajes detecta?
Los que declara la propia página. Clean 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.
¿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 permisos de host: 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.