Slovník metadat vm:

Vlastní pojmy pro archivní JSON-LD export webu Vojty Maura.

Tento slovník vysvětluje všech 23 vlastních polí a třídu vm:Link používanou exportérem export-site-json.mjs ve verzi 1.0.0. U každého pojmu uvádí význam, místo použití, datový typ a příklad. Příklady jsou ilustrativní.

Jmenný prostor je https://vojtamaur.cz/ns/. Prefix vm: zkracuje jeho adresu: například vm:slug znamená https://vojtamaur.cz/ns/slug. Názvy rozlišují velká a malá písmena.

JSON-LD export obsahuje vlastní kontext přímo v souboru, takže tuto stránku ke zpracování nepotřebuje stahovat. Stránka dokumentuje význam místních pojmů. Zkrácená ukázka kontextu:

{
  "@context": {
    "@version": 1.1,
    "@vocab": "https://schema.org/",
    "vm": {
      "@id": "https://vojtamaur.cz/ns/",
      "@prefix": true
    },
    "vm:sourceMetadata": {
      "@id": "vm:sourceMetadata",
      "@type": "@json"
    }
  }
}

@prefix: true umožňuje použít vm jako prefix. Standardní pojmy, například BlogPosting, headline a articleBody, se rozvíjejí podle Schema.org. Jejich význam tento slovník nepředefinovává.

Export jako celek

vm:exportVersion

Verze formátu a implementace JSON-LD exportéru. Pomáhá určit, jak číst tento soubor.

Použití
Kořenový objekt Collection
Typ v JSON
řetězec
Identifikátor
https://vojtamaur.cz/ns/exportVersion

Příklad hodnoty

"1.0.0"

Není to verze JSON-LD, webu ani jednotlivého článku.

Samostatný popis pojmu →

vm:generatedAt

Okamžik vytvoření JSON exportu, zaznamenaný exportérem.

Použití
Kořenový objekt Collection
Typ v JSON
řetězec s časem v ISO 8601, UTC
Identifikátor
https://vojtamaur.cz/ns/generatedAt

Příklad hodnoty

"2026-09-11T09:00:00.000Z"

Není to datum vydání ani změny článků. Kontext exportu ponechává hodnotu jako řetězec, nepřiřazuje jí datový typ xsd:dateTime.

Samostatný popis pojmu →

vm:sourceIndexPath

Cesta ke vstupnímu ALL_POSTS.txt, obvykle relativní vůči kořeni projektu. Index určuje výběr článků a jejich zdrojová metadata.

Použití
Kořenový objekt Collection
Typ v JSON
řetězec: cesta
Identifikátor
https://vojtamaur.cz/ns/sourceIndexPath

Příklad hodnoty

"dist/ALL_POSTS.txt"

Používá lomítka /. Při volbě buildu mimo projekt může obsahovat ..; u buildu na jiném Windows disku bude absolutní. Není to veřejná URL.

Samostatný popis pojmu →

vm:sourceIndexSha256

SHA-256 přesných bajtů vstupního ALL_POSTS.txt, včetně případného BOM a původních konců řádků.

Použití
Kořenový objekt Collection
Typ v JSON
řetězec: 64 malých hexadecimálních znaků
Identifikátor
https://vojtamaur.cz/ns/sourceIndexSha256

Příklad hodnoty

"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

Ukázkový hash je ilustrativní. Hodnota se týká vstupního indexu, nikoli výsledného JSON souboru.

Samostatný popis pojmu →

vm:sourceGeneratedAt

Hodnota řádku Generated: ze vstupního ALL_POSTS.txt. Pokud tento řádek chybí, export obsahuje prázdný řetězec.

Použití
Kořenový objekt Collection
Typ v JSON
řetězec
Identifikátor
https://vojtamaur.cz/ns/sourceGeneratedAt

Příklad hodnoty

"2026-09-10T08:42:49.334Z"

Popisuje vznik textového indexu. Exportér ji nepřepočítává ani nezaručuje shodu se stářím všech souborů buildu.

Samostatný popis pojmu →

vm:articleCount

Počet záznamů v hasPart. Každá jazyková verze článku se počítá samostatně.

Použití
Kořenový objekt Collection
Typ v JSON
celé číslo
Identifikátor
https://vojtamaur.cz/ns/articleCount

Příklad hodnoty

164

Například 82 článků s českou i anglickou verzí dává 164 záznamů. Počet se mění s obsahem buildu.

Samostatný popis pojmu →

vm:notes

Poznámky exportéru k rozsahu exportu a interpretaci textu, médií, dat, jazyků, pořadí a kontrolních součtů.

Použití
Kořenový objekt Collection
Typ v JSON
pole řetězců
Identifikátor
https://vojtamaur.cz/ns/notes

Příklad hodnoty

[
  "Article order is recorded explicitly as vm:position because JSON-LD arrays do not imply RDF ordering."
]

Samostatný popis pojmu →

vm:declaredBuildSha256

Hash deklarovaný souborem BUILD_SHA256.txt ve vybraném buildu. V tomto projektu má identifikovat soubor SHA256SUMS.txt.

Použití
Kořenový objekt Collection; nepovinné pole
Typ v JSON
řetězec: 64 malých hexadecimálních znaků
Identifikátor
https://vojtamaur.cz/ns/declaredBuildSha256

Příklad hodnoty

"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

Pole chybí, pokud BUILD_SHA256.txt není přítomen. Exportér údaj pouze přečte; neověřuje manifest, shodu všech souborů ani OpenPGP podpis. Ukázkový hash je ilustrativní.

Samostatný popis pojmu →

Články

vm:slug

Identifikátor článku převzatý z pole SLUG v indexu. Česká a anglická verze používají stejný slug.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
řetězec
Identifikátor
https://vojtamaur.cz/ns/slug

Příklad hodnoty

"metawebovy-clanek"

Neobsahuje jazykový prefix en/. Spolu s inLanguage identifikuje konkrétní jazykovou verzi.

Samostatný popis pojmu →

vm:position

Pořadí jazykové verze článku ve vstupním indexu a ve výsledném hasPart.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
kladné celé číslo od 1
Identifikátor
https://vojtamaur.cz/ns/position

Příklad hodnoty

1

Slouží k obnovení pořadí i po zpracování jako RDF, kde běžné JSON-LD pole samo o sobě pořadí nezaručuje. Není to trvalé ID článku.

Samostatný popis pojmu →

vm:sourcePath

Původní hodnota SOURCE z ALL_POSTS.txt, obvykle cesta ke zdrojovému MDX souboru vztažená ke kořeni projektu.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
řetězec: cesta zaznamenaná v indexu
Identifikátor
https://vojtamaur.cz/ns/sourcePath

Příklad hodnoty

"src/content/posts/metawebovy-clanek.mdx"

Exportér aktuální MDX nečte ani nehashuje. Cesta tedy nepotvrzuje, že současný zdrojový soubor odpovídá vybranému buildu.

Samostatný popis pojmu →

vm:builtHtmlPath

Cesta ke skutečně načtenému HTML souboru vztažená ke kořeni vybraného buildu, s lomítky /.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
řetězec: relativní cesta
Identifikátor
https://vojtamaur.cz/ns/builtHtmlPath

Příklad hodnoty

"en/metawebovy-clanek/index.html"

U plochého USB buildu může mít tvar en/metawebovy-clanek.html. Na rozdíl od sourcePath a sourceIndexPath se nevztahuje ke kořeni projektu.

Samostatný popis pojmu →

vm:builtHtmlSha256

SHA-256 přesných bajtů celého HTML souboru, ze kterého byl tento záznam vytvořen.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
řetězec: 64 malých hexadecimálních znaků
Identifikátor
https://vojtamaur.cz/ns/builtHtmlSha256

Příklad hodnoty

"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"

Nehashuje pouze articleBody ani vm:articleHtml. Ukázkový hash je ilustrativní.

Samostatný popis pojmu →

vm:sourceMetadata

Všechna původní metadata z hlavičky záznamu v ALL_POSTS.txt, zachovaná jako slovník řetězců.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
objekt JSON; v JSON-LD literál @json
Identifikátor
https://vojtamaur.cz/ns/sourceMetadata

Příklad hodnoty

{
  "TITLE": "Metawebový článek",
  "SLUG": "metawebovy-clanek",
  "URL": "https://vojtamaur.cz/en/metawebovy-clanek/",
  "LANGUAGE": "en",
  "SECTION": "volna-tvorba",
  "DATE": "2026-04-01",
  "SOURCE": "src/content/posts/metawebovy-clanek.mdx",
  "BUILT_HTML": "dist/en/metawebovy-clanek/index.html"
}

TITLE může zůstat česky i u anglického záznamu. Pole headline oproti tomu pochází z vykresleného nadpisu. Vnitřní klíče tohoto JSON literálu se nerozvíjejí do pojmů Schema.org ani vm:.

Samostatný popis pojmu →

vm:renderedMetadata

Texty prvků .post-meta uvnitř článku po sjednocení bílých znaků, v pořadí nalezeném v HTML.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
pole řetězců; může být prázdné
Identifikátor
https://vojtamaur.cz/ns/renderedMetadata

Příklad hodnoty

[
  "duben 2026"
]

Podle sekce mohou obsahovat datum, místo výstavy nebo další údaje. Jde o čitelné popisky, nikoli o nově strukturované datum nebo místo.

Samostatný popis pojmu →

vm:articleHtml

Vnitřní HTML prvního článku vybraného pomocí main article, serializované po načtení knihovnou Cheerio. Zahrnuje nadpis, viditelná metadata i obsah článku.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
řetězec s HTML
Identifikátor
https://vojtamaur.cz/ns/articleHtml

Příklad hodnoty

"<div class=\"post-header\"><h1>Ukázka</h1></div><div class=\"post-body\"><p>Text článku.</p></div>"

Není to samostatná stránka ani přesná bajtová kopie vstupního souboru. Relativní odkazy se vztahují k vm:builtHtmlPath v daném buildu. HTML není sanitizované; při jeho dalším zobrazování je nutné zacházet s ním jako s obsahem původní stránky.

Samostatný popis pojmu →

vm:robots

Obsahy atributu content u značek meta s name=robots v načteném HTML, spojené čárkou. Pokud nejsou přítomné, hodnota je prázdná.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
řetězec
Identifikátor
https://vojtamaur.cz/ns/robots

Příklad hodnoty

"index,follow,max-image-preview:large"

Zachycuje značky v HTML; nezahrnuje HTTP hlavičku X-Robots-Tag ani pravidla robots.txt.

Samostatný popis pojmu →

vm:languageStatus

Stav odvozený z jazyka v indexu a ze značky robots podle konvence tohoto webu.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
řetězec: original, english-route nebo incomplete-czech-fallback
Identifikátor
https://vojtamaur.cz/ns/languageStatus

Příklad hodnoty

"english-route"

original: záznam má LANGUAGE=cs. incomplete-czech-fallback: záznam má LANGUAGE=en a robots obsahuje slovo noindex. english-route: ostatní záznamy s LANGUAGE=en.

Není to nezávislé ověření úplnosti ani kvality překladu. Anglická verze může obsahovat český ALT text, citace či nepřeložené pasáže.

Samostatný popis pojmu →

Odkazy nalezené v prvcích a[href] uvnitř článku, v pořadí HTML. Opakované odkazy se zachovávají.

Použití
Objekt BlogPosting v hasPart
Typ v JSON
pole objektů vm:Link; může být prázdné
Identifikátor
https://vojtamaur.cz/ns/links

Příklad hodnoty

[
  {
    "@type": "vm:Link",
    "url": "https://vojtamaur.cz/koncepty/",
    "name": "Koncepty",
    "vm:originalHref": "/koncepty/"
  }
]

Zahrnuje pouze URL, které exportér dokáže rozvinout do podporovaných schémat http, https, mailto, tel, gemini nebo gopher. Nejde o všechny možné síťové odkazy uvnitř HTML, skriptů a médií.

Samostatný popis pojmu →

Média a odkazy

vm:element

Název původního HTML prvku, ze kterého vznikl záznam média.

Použití
Objekty v associatedMedia a image
Typ v JSON
řetězec: img, iframe, video, audio, object nebo embed
Identifikátor
https://vojtamaur.cz/ns/element

Příklad hodnoty

"iframe"

Není to MIME typ. Druh média popisuje standardní @type, například ImageObject nebo VideoObject.

Samostatný popis pojmu →

vm:originalSource

Zdroj média před převodem na absolutní URL: první neprázdná hodnota atributu src, atributu data nebo src prvního vnořeného source[src], v tomto pořadí.

Použití
Objekty v associatedMedia a image
Typ v JSON
řetězec
Identifikátor
https://vojtamaur.cz/ns/originalSource

Příklad hodnoty

"/images/ukazka.jpg"

Hodnota pochází z HTML parseru, takže entity již mohou být dekódované. Výsledná absolutní adresa je v contentUrl, u iframe v embedUrl.

Samostatný popis pojmu →

vm:altText

Hodnota atributu alt obrázku. Chybějící i prázdný atribut se exportují jako prázdný řetězec.

Použití
Objekt ImageObject vytvořený z img
Typ v JSON
řetězec; může být prázdný
Identifikátor
https://vojtamaur.cz/ns/altText

Příklad hodnoty

"Pohled na instalaci v galerii"

ALT se nepřekládá automaticky a může být česky i v anglickém záznamu. Viditelný figcaption se ukládá odděleně do standardního pole caption.

Samostatný popis pojmu →

vm:originalHref

Původní atribut href odkazu načtený HTML parserem, před převodem na absolutní veřejnou URL.

Použití
Objekt vm:Link
Typ v JSON
řetězec
Identifikátor
https://vojtamaur.cz/ns/originalHref

Příklad hodnoty

"/koncepty/"

Výsledná adresa je ve standardním poli url. Původní hodnota může být relativní cesta, fragment i absolutní URL.

Samostatný popis pojmu →

Jeden výskyt odkazu v článku. Popisuje samotný odkaz, nikoli typ cílového dokumentu nebo osoby.

Použití
Hodnota @type u položky vm:links
Typ v JSON
vlastní třída; instance je objekt JSON
Identifikátor
https://vojtamaur.cz/ns/Link

Příklad objektu

{
  "@type": "vm:Link",
  "url": "https://vojtamaur.cz/koncepty/",
  "name": "Koncepty",
  "vm:originalHref": "/koncepty/"
}

url je rozvinutá adresa. name je text odkazu se sjednocenými bílými znaky a může být prázdný, například u obrázkového odkazu. vm:originalHref zachovává původní atribut.

Samostatný popis pojmu →

Standardní pojmy a souvislosti

Kořen exportu je Collection a články jsou objekty BlogPosting v poli hasPart. České a anglické verze propojují translationOfWork a workTranslation.

articleBody obsahuje text z hotového HTML, včetně nezkrácených bloků kódu. Média jsou popsaná standardními typy ImageObject, VideoObject, AudioObject a MediaObject. Všechna nalezená podporovaná média jsou v associatedMedia; obrázky jsou zároveň uvedené v image.

datePublished přebírá datum z indexu. U části starších článků je první den měsíce pouze technickou hodnotou z migrace, nikoli doloženým přesným dnem publikace.

Identifikátor pojmu https://vojtamaur.cz/ns/slug a odkaz na odstavec https://vojtamaur.cz/ns/#slug jsou různé adresy. Tento web poskytuje také samostatné popisy známých pojmů, například /ns/slug/. Stávající identifikátory v exportu se tím nemění.

Význam již použitých identifikátorů má zůstat stálý. Při rozšíření exportu je potřeba doplnit i tento slovník; významově odlišný údaj má dostat nový název.