Clean Clipper Aan Chrome toevoegen – gratis

Voor wie

Documentatie naar Markdown zonder opruimen

Documentatie migreren betekent meestal: HTML omzetten en daarna langer bezig zijn met weghalen wat de omzetter heeft bewaard. Dat weghalen is waar Clean Clipper om heen is gebouwd, en het is ook het deel dat gemeten is: nul achtergebleven HTML-tags over 512 pagina’s, en taallabels die op de code-fences blijven staan.

Waarom een migratie uitloopt

De omzetting zelf is het probleem niet: kopjes worden kopjes en lijsten worden lijsten. Het probleem is wat er meekomt. De navigatieboom in het zijmenu, de versiekiezer, de balk met “feedback geven” en de inhoudsopgave rechts staan in dezelfde container als de tekst, dus ze belanden in elk bestand. Bij dertig pagina’s is dat dertig keer hetzelfde handwerk.

Daarnaast verliest de inhoud juist wat haar technisch maakt. Code-fences komen kaal binnen, parametertabellen breken op de cel waarin een voorbeeld staat, en losse div- en span-resten blijven midden in de tekst staan. Wie dat achteraf met zoek-en-vervang opruimt, sloopt vroeg of laat iets wat wel inhoud was.

En een migratie gebeurt nooit één keer. Er is een proefronde op tien pagina’s, daarna het echte werk, en daarna nog een ronde omdat de bron intussen is bijgewerkt. Dat werkt alleen als dezelfde pagina twee keer hetzelfde bestand oplevert: dan is de tweede ronde een diff en zie je in één oogopslag wat er inhoudelijk veranderd is. Levert je omzetter elke keer iets anders op, dan is elke ronde weer volledig handwerk.

Wat er overkomt

Kopstructuur en tabel komen mee, de versiekiezer nietdocs.geostandaarden.nl/api/API-Strategie
## 3.2 Paginering

Een collectie wordt gepagineerd teruggegeven. De cliënt volgt de link met
relatie `next` tot die ontbreekt.

| Parameter | Type | Verplicht |
| --- | --- | --- |
| `limit` | integer | nee |
| `cursor` | string | nee |

### 3.2.1 Foutsituaties

Een set documentatie overzetten

De volgorde is hier belangrijker dan de instellingen: eerst tien pagina’s als proef, dan pas de rest. Wat je in de proefronde ontdekt, verandert meestal de bestandsnaam.

  1. Open Opties met een rechtermuisklik op het icoon en zet de bestemming op de map waarin de nieuwe documentatie komt te staan – bij voorkeur meteen de repository, zodat elke ronde in versiebeheer zichtbaar is.
  2. Zet het sjabloon voor de bestandsnaam op {domain}-{title}. Bij documentatie van meerdere producten of versies botsen de titels; het domein ervoor houdt ze uit elkaar zonder dat je iets hoeft te bedenken.
  3. Laat source en extraction in de frontmatter aan staan en zet author uit. source is waar de pagina vandaan kwam en dus waar je bij een tweede ronde opnieuw moet zijn; extraction laat zien welke pagina’s afwijkend zijn binnengekomen.
  4. Zet wat een klik op het icoon doet op “opslaan in map” en controleer Alt+Shift+M. Bij dertig pagina’s achter elkaar is elke handeling die je overhoudt er dertig.
  5. Doe eerst tien pagina’s als proef en bekijk ze in een editor. Let op drie dingen: de kopniveaus, de tabellen met een voorbeeld in een cel, en of tabbladen open stonden. Wat je hier vindt, geldt voor de hele set.
  6. Loop daarna de resterende pagina’s langs. Klap onderweg tabs en accordeons open voordat je ophaalt – dat is de enige stap die je met geen enkele instelling kunt automatiseren.
  7. Haal bij een tweede ronde dezelfde pagina’s opnieuw op in een aparte map en vergelijk de twee mappen met een diff. Wat verschilt, is wat de bron heeft gewijzigd.

Instellingen voor een migratie

Deze waarden gaan uit van een set die in versiebeheer terechtkomt en die je meer dan één keer zult ophalen.

InstellingWaardeWaarom juist deze
BestemmingDe doelmap in de repositoryElke ronde is dan een commit, en verschillen zijn zichtbaar zonder extra werk
Bestandsnaam`{domain}-{title}`Documentatie van meerdere producten of versies botst op titels; domeinen niet
Frontmatter`source` en `extraction` aan, `author` uit`source` is waar je bij de volgende ronde weer moet zijn; `extraction` laat afwijkende pagina’s zien
Klik op het icoonOpslaan in mapBij dertig pagina’s achter elkaar telt elke handeling dertig keer
AfbeeldingenAls link bewarenDiagrammen wil je bij de import zelf plaatsen; de link houdt in elk geval bij welk beeld erbij hoorde
Regel per sitePer product een submapEen set die tijdens het ophalen wordt geordend, hoef je achteraf niet te sorteren
SelectieAlleen bij deelpagina’sVoor een migratie wil je juist de hele pagina, inclusief kopstructuur
Een waarschuwingsblok wordt een blockquote, tabs komen achter elkaareen installatiehandleiding met tabbladen
## Installeren

> **Let op:** twee hoofdversies tegelijk overslaan wordt niet ondersteund.

npm

```bash
npm install voorbeeld-cli --save-dev
```

pnpm

```bash
pnpm add -D voorbeeld-cli
```

Beide tabbladen stonden in de DOM en verborgen met CSS, dus beide komen mee.
Een tabblad dat pas bij een klik wordt geladen, had hier ontbroken.

Drie stappen in een migratie

De proefronde die de bestandsnaam bepaalt

Je haalt tien pagina’s op met {title} als naam en ziet dat drie ervan “Aan de slag” heten, want ze horen bij drie verschillende producten. Je zet het sjabloon om naar {domain}-{title} en haalt die tien opnieuw op.

Dat is precies waarom een proefronde eerst gaat. Bij dertig bestanden is hernoemen nog te doen; bij driehonderd, met interne verwijzingen die al naar die namen wijzen, is het een aparte klus geworden.

Een installatiehandleiding met tabbladen

De pagina toont de installatiestappen in tabbladen voor npm en pnpm, en daarboven een waarschuwingsblok. Beide tabbladen staan in de DOM en zijn met CSS verborgen, dus ze komen allebei mee, achter elkaar, met hun code-fences en taallabels. Het waarschuwingsblok wordt een blockquote.

Bij een site die het tweede tabblad pas na een klik inlaadt, gaat dat niet vanzelf: dan haal je de pagina twee keer op, één keer per tabblad, of je klapt eerst alles open. Dat is de enige stap in de hele migratie die je met de hand moet doen.

De tweede ronde als diff

Twee maanden na de eerste import is de brondocumentatie bijgewerkt. Je haalt dezelfde pagina’s opnieuw op, in een aparte map, met precies dezelfde instellingen. Dezelfde pagina levert hetzelfde bestand op, dus een diff tussen de twee mappen toont alleen wat de bron heeft veranderd.

Wat je dan overhoudt, is een lijst inhoudelijke wijzigingen in plaats van een lijst opmaakverschillen. Dat is het verschil tussen een tweede ronde van een uur en een tweede ronde van een week.

Tegenover de gebruikelijke manieren

Documentatie naar Markdown krijgen kan op vijf manieren, en ze worden alle vijf gebruikt. Dit is wat ze opleveren en wat ze kosten.

Hoe het nu gaatWat je krijgtWat het kost
Een generieke HTML-naar-Markdown-omzetterAlles, netjes omgezetInclusief zijmenu, versiekiezer en losse tags; het opschonen is het echte werk
De export van het bron-CMSDe inhoud zoals het systeem hem bewaartVaak eigen markup en shortcodes, en de export bestaat niet altijd
Kopiëren en plakken per paginaWat je op het scherm zietFences komen kaal binnen en tabellen vallen uit elkaar
Een crawler op de documentatiesiteDe hele set in één keerOok alles wat je niet wilde, en het schoonmaakwerk is er niet minder om
Clean ClipperMarkdown zonder meubilair, met gelabelde fencesEén pagina tegelijk, geen crawler, en tabs moet je zelf openklappen

Als de omzetting tegenvalt

De helft van een tabblad ontbreekt

Sites doen dit op twee manieren. Rendert de site alle tabbladen en verbergt ze met CSS, dan komen ze allemaal mee, achter elkaar. Laadt de site een tabblad pas in na een klik, dan staat het tot dat moment niet in de DOM en komt het niet mee. Klap alles open voordat je ophaalt, of haal per tabblad een clip op.

Mijn admonitions zijn blockquotes geworden

Markdown kent geen standaardsyntaxis voor waarschuwingen, notities en tips, dus wordt de inhoud een blockquote met de kop vet erin. De tekst blijft dus volledig behouden en de vorm niet. Gebruikt je doelsysteem een eigen syntaxis voor callouts, dan is dat een zoek-en-vervang over de blockquotes – één patroon, over de hele set.

Kruisverwijzingen wijzen nog naar de oude site

Dat klopt en dat is met opzet: links blijven staan als links naar de oorspronkelijke pagina en worden niet omgeschreven naar je nieuwe bestandsstructuur. Die structuur kent de extensie niet, en gokken zou stille kapotte links opleveren. Het omschrijven doe je bij de import, en dan zie je meteen welke doelen nog niet bestaan.

Er staat jsonld-articlebody bij een paar pagina’s

Die pagina’s hadden hun tekst niet uitgerenderd maar wel in gestructureerde data staan, en daar is toen uit gelezen. In een migratie is dat een signaal om juist die bestanden na te kijken: de versie in de gestructureerde data is soms korter dan wat op het scherm stond, en soms juist vollediger.

Wat het niet doet

Er zit geen crawler en geen batchverwerking in: je haalt de pagina’s op die je zelf bezoekt, één tegelijk. Admonitions en callouts worden blockquotes, want Markdown kent er geen standaardsyntaxis voor. Tabs, accordeons en andere onderdelen die pas na een klik inhoud tonen, komen alleen mee als ze op dat moment open staan. En afbeeldingen en diagrammen blijven links naar de oorspronkelijke site.

Aan Chrome toevoegen – gratisVolledig gratis, zonder account en zonder limiet.

Vragen

Hoe trouw blijft de kopstructuur?
De kopniveaus blijven zoals ze in de artikeltekst staan. Lege kopjes – een veelvoorkomend restant van navigatieblokken – vervallen.
En admonitions en callouts?
Die worden blockquotes. Markdown kent geen standaardsyntaxis voor admonitions, dus de inhoud blijft en de opmaak niet.
Kan het een hele documentatiesite aan?
Nee. Er zit geen crawler in en geen batchverwerking: je haalt één pagina tegelijk op, de pagina’s die je echt wilt.
Wat gebeurt er met inhoud in tabs of accordeons?
Wat op dat moment open staat komt mee. Wat pas na een klik wordt geladen, staat niet in de DOM en komt dus niet in de clip.
Blijven anker- en kruisverwijzingen werken?
Links blijven staan als links naar de oorspronkelijke pagina. Ze worden niet omgeschreven naar je nieuwe bestandsstructuur; dat doe je bij de import.
Levert dezelfde pagina twee keer hetzelfde bestand op?
Ja, bij gelijke instellingen en een ongewijzigde bron. Daardoor is een tweede ronde een diff: wat verschilt, is wat de bron heeft gewijzigd, en niet wat de omzetter deze keer anders deed.
Hoeveel opruimwerk blijft er over?
In de meting geen achtergebleven markup: nul HTML-tags over 512 pagina’s. Wat wel kan blijven staan, is een blok dat de site zelf in de artikelcontainer heeft gezet – een colofon of een feedbackregel – en dat haal je als tekstregel weg.
Blijven taallabels op code-fences staan?
Als de pagina ze meegeeft wel. Op het technische corpus bleef het label staan in 73 van de 156 fences, tegen 20 en 0 bij de twee vergeleken engines. Waar de site geen class achterliet, komt de fence kaal binnen in plaats van met een gegokt label.
Wat gebeurt er met voetnoten en verwijzingen?
Verwijzingen worden [^1]-voetnoten met hun definities achter in het bestand, dus ze verwijzen binnen de notitie nog. Bij lange specificatiepagina’s met honderden verwijzingen kost dat wat extra tijd bij het ophalen, omdat de noten worden verzameld voordat de opschoning hun ankers weghaalt.
Kan ik pagina’s achter een interne login overzetten?
Ja, als je zelf bent ingelogd. De extensie leest de gerenderde pagina van jouw sessie en logt zelf nergens in; ze doet geen enkel netwerkverzoek, dus er gaat ook niets van een interne wiki naar buiten.