Clean Clipper Přidat do Chromu – zdarma

Pro koho to je

Dokumentaci do Markdownu i s kódem

Clean Clipper přečte jazyk bloku přímo ze stránky – z třídy ohrazení, z rodičovského prvku nebo ze značek, které za sebou nechal zvýrazňovač – a zapíše ho do ohrazení. Na technickém korpusu tak značka přežila v 73 blocích ze 156, proti 20 a 0 u dvou porovnávaných nástrojů.

Proč je vložený kód k ničemu

Dokumentace je z větší části kód a většina clipperů zahodí právě ten. Blok vyjde jako holé ohrazení bez značky jazyka, takže v Obsidianu, ve VS Code i na GitHubu zůstane šedý. Doplnit python nebo js ručně u třiceti bloků je přesně ta práce, které jste se klikáním na ikonu chtěli vyhnout.

Druhá polovina problému jsou tabulky. Srovnání parametrů, ve kterém má buňka seznam nebo krátkou ukázku kódu, obecné převodníky složí do jediného řádku – a poznámka je nepoužitelná zrovna v místě, kvůli kterému jste ji ukládali. K tomu se do textu přimíchá postranní navigace dokumentace a přepínač verzí, které vypadají jako obsah, ale obsah nejsou.

Za pár měsíců se to vymstí potřetí. Úryvek putuje do firemní wiki nebo do popisu pull requestu a stojí tam šedý, protože ohrazení nenese jazyk. A když dvě poznámky popisují tutéž funkci ze dvou verzí referenční příručky, ani jedna neřekne, o kterou verzi šlo: číslo verze bylo v adrese a adresa se při kopírování ztrácí jako první. Poznámka pak na nic neodpovídá, jen vás pošle zpátky na stránku, ze které vznikla.

Co se změní

Skutečný výstup: blok si nechal značku jazykadocs.python.org/cs/3/tutorial/datastructures.html
Seznam se dá používat jako zásobník, kde se poslední přidaná
položka odebírá jako první:

```python
zasobnik = [3, 4, 5]
zasobnik.append(6)
zasobnik.pop()
```

## 5.1.2. Použití seznamu jako fronty

Jak uložit stránku dokumentace

Šest úkonů, z nichž první čtyři jsou jednorázové nastavení. Potom stojí každá další stránka dokumentace jeden stisk kláves.

  1. Otevřete nastavení a v položce cílové složky vyberte adresář, kam mají poznámky padat. Může to být složka přímo v pracovním stromu projektu, třeba docs/vystrizky. Prohlížeč se na přístup zeptá jednou a povolení si zapamatuje.
  2. Šablonu názvu přepněte na {domain}-{title}. U dokumentace je doména užitečnější polovina jména souboru: na první pohled prozradí, jestli úryvek pochází z oficiální reference, nebo z příspěvku ve fóru.
  3. Obrázky přepněte na „vynechat“. Ilustrace ve vývojářské dokumentaci bývají diagramy, které jako odkaz na cizí web stejně nepomůžou, a soubor zůstane bez řádků s obrázky.
  4. Založte pravidlo pro referenci, do které se díváte nejčastěji: zadejte vzor adresy a vyberte podsložku. Příručky se pak ukládají odděleně od všeho ostatního, aniž byste na to při ukládání museli myslet.
  5. Na stránce dokumentace stiskněte Alt+Shift+M. Pokud potřebujete jen jednu funkci místo celé referenční stránky, označte ten úsek předem; přepínač v horní části okna ukazuje, jestli před sebou máte výběr, nebo celou stránku.
  6. V okně projděte ohrazení. Stojí-li za zpětnými apostrofy python, js nebo bash, stránka jazyk označila; nestojí-li tam nic, neoznačila ho a doplníte ho jednou ručně, ještě než se soubor zapíše.

Hotové nastavení pro dokumentaci

Tyhle hodnoty jsou stavěné na dohledávání, ne na archivaci: u referenčních stránek datum skoro nic neříká, zato původ říká hodně. Kdo sype blogové zápisky a referenci do jedné složky, hledá potom dvakrát.

NastaveníHodnotaProč právě tak
Kliknutí na ikonuokno s náhledemU kódu se vyplatí podívat se na ohrazení dřív, než se soubor zapíše
Šablona názvu`{domain}-{title}`Doména oddělí oficiální referenci od příspěvku ve fóru; datum u dokumentace nic neřekne
Cílová složkaadresář v projektu, třeba `docs/vystrizky`Poznámka leží vedle kódu, který vysvětluje, a cestuje s repozitářem
Obrázky`vynechat`Diagramy zůstanou jako odkaz na cizí web nepoužitelné a jen nadělají řádky navíc
Frontmatter`title`, `source`Adresa u verzované dokumentace drží, kterou verzi poznámka popisuje
Pravidlo pro webvzor `docs.python.org` → podsložka `Reference`Příručky nepatří do stejné složky jako náhodné nálezy
Klávesová zkratka`Alt+Shift+M`Při čtení dokumentace se pořád přepíná mezi editorem a prohlížečem; ruka zůstane na klávesnici
Bez třídy na stránce zůstane ohrazení bez značkydocs.python.org/cs/3/tutorial/errors.html
Výjimku vyvoláte příkazem `raise`:

```
raise NameError("Ahoj")
```

```python
try:
    raise NameError("Ahoj")
except NameError:
    print("Proletělo to")
```

Tři cesty jedním dnem

Posoudit neznámou knihovnu

Zvažujete, jestli knihovna zapadne do projektu, a čtete kvůli tomu úvodní stránku, konfiguraci a stránku o omezeních. Tři stránky, třikrát Alt+Shift+M, tři soubory v podsložce Reference – se šablonou {domain}-{title} v názvu, takže se všechny tři seřadí vedle sebe.

Večer leží rozhodnutí v editoru místo v patnácti otevřených panelech. Ukázky kódu mají značku jazyka, tabulka voleb má své řádky a adresa zdroje v každém frontmatteru říká, kterou verzi dokumentace jste četli – číslo verze bývá v cestě adresy, a tou se do poznámky dostane.

Zachytit řešení, které přišlo z fóra

Řešení otravného problému nestojí v oficiální dokumentaci, ale v příspěvku se čtyřiceti odpověďmi. Označíte tu jedinou odpověď, která funguje, a uložíte výběr: do souboru jde blok kódu i se značkou jazyka, ne celé vlákno a ne postranní seznam podobných dotazů.

Protože pravidlo pro tenhle web míří do jiné podsložky než reference, je při pozdějším dohledávání hned vidět, že řešení pochází od cizího člověka, ne od autorů knihovny. Přesně ten rozdíl musíte umět obhájit v code review.

Přenést ukázku do README

Do README má přijít příklad z oficiální reference. Kliknutí na ikonu přepnete pro tenhle jeden případ na schránku, uložíte výběr s příkladem a vložíte ho rovnou do souboru, aniž by se ukládala poznámka.

Vložené ohrazení dorazí jako ```js a GitHub ho obarví okamžitě. Adresu zdroje si vezmete z frontmatteru výstřižku, pokud pod ukázku chcete dát odkaz na referenci – řádek stojí v okně nad textem.

Proti obvyklým způsobům

Ostatní cesty nejsou špatné, jen řeší jinou úlohu – a u kódu neřeší zrovna tu část, na které záleží. Poslední řádek říká i to, co stojí tahle cesta.

ZpůsobCo z toho vyjdeCo to stojí
Označit a zkopírovat do editoruText dorazí, ohrazení dorazí holá, tabulky parametrů se složí do řádkuZnačku jazyka doťukat u každého ohrazení; adresa zdroje chybí úplně
Vytisknout stránku do PDFVzhled zůstane, kód se stane součástí sazby stránkyNedá se vložit, nedá se verzovat a hledání v editoru dovnitř nedosáhne
Založit záložkuOdkaz a názevS další verzí se stránka přepíše a záložka ukazuje na něco jiného
Jiná rozšíření pro MarkdownMarkdown, ale s výbavou stránky uvnitřNa stejném technickém korpusu přežila značka jazyka ve 20 ohrazeních ze 156, u dalšího nástroje v žádném
Clean ClipperMarkdown se značkami jazyka, zachovanými tabulkami a frontmatteremJedna stránka po druhé, žádné dávky; ohrazení, které stránka neoznačí, zůstane holé i tady

Když se něco pokazí

Proč za zpětnými apostrofy žádný jazyk nestojí?

Protože ho neuvádí sama stránka. Clean Clipper čte třídu, kterou u ohrazení nechal zvýrazňovač daného webu, a z kódu nehádá – na technickém korpusu takovou třídu neslo 73 ohrazení ze 156. U zbytku ohrazení zůstane holé a je to správná odpověď: vymyšlená značka přepne zvýraznění na nesprávný jazyk a je horší než žádná.

Proč rozšíření na úvodní stránce dokumentace hlásí „žádný článek“?

Protože tam žádný není. Rozcestník se skládá skoro jen z popisků odkazů a rozšíření měří hotový Markdown: sedí-li v odkazech víc než čtvrtina textu, výstřižek odmítne. Sestupte o úroveň níž na stránku se skutečným textem a projde to.

Dokumentace se dokresluje JavaScriptem – proč chybí půlka obsahu?

Ukládá se DOM v tom stavu, v jakém je ve chvíli kliknutí. Jednostránková dokumentace se proto uloží správně, ale záložky a rozbalovací bloky, které jsou zavřené, v DOM často vůbec neexistují. Rozbalte oddíl a přepněte na tu záložku, kterou potřebujete, teprve pak ukládejte.

Uložil jsem stránku podruhé – přepsal jsem si původní poznámku?

Ne. Při shodě jmen se hledá volné jméno s pomlčkou a číslem: vedle Filter.md vznikne Filter-2.md a starší soubor zůstane nedotčený. Pro srovnání dvou verzí reference je to výhodné, obě znění pak leží vedle sebe a postavíte je proti sobě nástrojem na diff ve svém editoru.

Co nedělá

Neprochází celý dokumentační web – ukládáte stránku, na které stojíte, jednu po druhé; žádný crawler tu není. Nestahuje obrázky ani jiné binární přílohy, takže diagramy zůstanou odkazy na původní web. Kód nespouští, nepřepisuje ani nepřeformátovává. A na stránkách, které prohlížeč chrání, jako chrome:// nebo samotný obchod s rozšířeními, neběží vůbec.

Přidat do Chromu – zdarmaZdarma a bez účtu. Žádný limit stránek.

Otázky

Jaké jazyky pozná?
Ty, které si stránka sama určí. Clean Clipper jazyk z kódu nehádá – čte třídu, kterou nechal zvýrazňovač daného webu, takže značka je přesně tak správná jako zdrojová stránka.
Funguje to na dokumentaci, která se vykresluje v JavaScriptu?
Ano. Rozšíření čte DOM až po vykreslení, takže jednostránkovou dokumentaci uloží tak, jak ji vidíte.
Přežije odsazení uvnitř bloku?
Ano. Obsah ohrazení se přenáší doslova, včetně odsazení a prázdných řádků, takže vložený Python nebo YAML se dá rovnou spustit.
Jde z vývojářské dokumentace vyhodit obrázky?
Ano – v nastavení přepněte obrázky na „vynechat“, buď globálně, nebo pravidlem pro jeden web.
Zvládne odpovědi ze Stack Overflow i s komentáři?
Tělo odpovědi ano, včetně bloků kódu. Komentáře pod odpovědí se berou jako výbava stránky a odříznou se; výjimkou je Reddit, kde se vlákno ukládá jako úsporný seznam se skóre.
Uloží se interní dokumentace za firemním přihlášením?
Ano. Rozšíření čte stránku, kterou už prohlížeč vykreslil pro vás, takže dokumentace za přihlášením se ukládá jako kterákoli jiná stránka. Žádné přihlašovací údaje nikam neputují.
Dá se uložit celá referenční příručka naráz?
Ne. Není tu crawler ani dávkový režim: ukládá se stránka, na které stojíte. Při přesunu do poznámek to znamená, že si vyberete stránky, které mají opravdu jít s vámi – a u většiny dokumentací je jich míň, než rozsah napovídá.
Co se stane se záložkami pro víc programovacích jazyků?
Uloží se to, co je ve chvíli výstřižku vykreslené. Zavřená záložka v DOM často vůbec není, takže se předem přepněte na jazyk, který potřebujete.
Zůstane inline kód inline kódem?
Ano. Krátké úseky zůstanou mezi zpětnými apostrofy, i uvnitř nadpisů, seznamů a buněk tabulky.
Můžu poznámku zapsat rovnou do repozitáře?
Ano. Cílovou složkou může být libovolný adresář na disku, i takový v pracovním stromu projektu. Soubor se tam objeví a dá se commitnout jako každý jiný.