---
title: See blogi on markdown-failide kaust
slug: why-this-blog-has-no-cms
locale: et
description: LiteTMS-i blogil puudub CMS. Iga postitus on toote varamus asuv markdown-fail, mida kontrollitakse CI-s ning serveeritakse HTML-i, toore markdowni ja RSS-ina.
date: 2026-07-15
updated: 2026-07-15
category: technology
tags: markdown, blog, aieo, engineering
author: LiteTMS Team
draft: false
---

Selle blogi taga ei ole sisuhaldussüsteemi ega ka andmebaasi. Iga postitus on markdown-fail, mis on salvestatud samasse koodivaramusse kus LiteTMS-i kood, seega käib postituse avaldamine täpselt samamoodi nagu uue funktsiooni väljalaskmine: tehakse commit ja deploy.

Tahtsime teha asju teisiti kui enamik ettevõtete blogisid, ning see postitus näitab teile kogu mehhanismi, sealhulgas just selle lehe lähtekoodi, mida praegu loete.

## Lahendus, mida kasutavad kõik teised

Tavaline ettevõtte blogi töötab täismõõtmelisel sisuhaldussüsteemil. Andmebaas, administraatoripaneel, kasutajakontod, pluginad ja kujundusteema, mis hakkab iga muudatuse peale tõrkuma. Kogu see masinavärk on loodud selleks, et toimetajate tiim saaks sisu avaldada koodi puutumata.

Meil ei ole toimetajate tiimi ja veedame niikuinii terve päeva koodirepositooriumis. Seetõttu jätsime selle masinavärgi vahele. Iga täiendav süsteem vajab turvapaiku, varukoopiaid ja kaitset. Tekstifailide kaust seda ei vaja.

## Kuidas postituse fail välja näeb

Siin on lühendatud näide selle sama postituse päisest ja sellele järgnevast sisust:

```markdown
---
title: This blog is a folder of markdown files
slug: why-this-blog-has-no-cms
locale: en
description: There is no CMS behind the LiteTMS blog. Every post is...
date: 2026-07-15
category: technology
tags: markdown, blog, aieo, engineering
draft: false
---

The first paragraph answers the title on its own, because that is
the part search snippets and AI assistants quote.

## A section heading

Plain markdown body. Nothing exotic.

## FAQ

### Does this sample show the FAQ convention?

Yes. Each ### line is a literal question, answered right below it.
```

Ülaltoodud plokk on lihtne võtme ja väärtuse paaride loend. Selle all on tavaline markdown, mida renderdab standardne markdowni teek. Üks fail keele kohta: sellest postitusest on olemas samanimeline `.en.md` fail ja `.pl.md` fail, kusjuures poolakeelne versioon on kirjutatud vahetult emakeeles, mitte masintõlgitud.

Näite lõpus olev `## FAQ` jaotis on tegelik standard, mitte kaunistus. Iga küsimus on selline, mida inimene otsingumootorisse sisestaks, ning kompileerimisskript teisendab need paarid struktureeritud andmeteks, mida otsingumootorid saavad rikkalike tulemustena kuvada. Lehe allosas on selle kohta töötav näide.

## Validaator toimetaja asemel

Enne avaldamist loeb ehitusskript iga postituse faili ja kontrollib seda skeemi alusel. Kirjeldus peab jääma 80 ja 170 tähemärgi vahele. Kategooria peab olema üks viiest lubatud väärtusest. Kuupäev peab olema reaalne kalendrikuupäev ja slug peab vastama failinimele.

Seejärel kirjutab skript üheainsa indeksifaili kõigi postituste metaandmetega ja sait loeb ainult seda faili. Nimekirjalehe kuvamine võtab viiesaja postituse puhul täpselt sama palju ressursse kui viie puhul.

Sama skript käivitatakse CI-s igal push-käsul. Kui postitus ei vasta nõuetele või keegi unustas indeksi uuesti genereerida, siis ehitamine ebaõnnestub ja midagi ei avaldata. Vigane sisu ei saa toodangukeskkonda jõuda, sest sinna ei saadeta kunagi midagi, mida validaator ei ole heaks kiitnud.

## Ausalt öeldes: miks just markdown

Markdown jäi peale puhtpraktilistel põhjustel. Markdown-fail on loetav igas tekstiredaktoris, spetsiaalsete tööriistadega või ilma. Selle erinevusi saab võrrelda rida-realt, seega vaadatakse postitus läbi täpselt nagu kood: näete selgelt, millist lauset muudeti. Lisaks on see tehisintellekti assistentidele kõige soodsam formaat sisu töötlemiseks, mis muutub iga kuuga üha olulisemaks.

Viimase punkti tõttu pakutakse iga postitust siin kolmel viisil. Leht, mida praegu loete, on HTML-versioon. Kui lisate brauseris aadressi lõppu `.md`, saate algse lähtefaili bait-baidilt sellisena, nagu see commititi, serveerituna puhta markdownina. Samuti on igal keelel oma RSS-voog lugejatele ja uudisteagregaatoritele.

Aadressil [/blog/index.md](/blog/index.md) on ka masinloetav kataloog kõigist avaldatud postitustest ning veebisaidi `llms.txt` suunab tehisintellekti roomajad otse sinna. Miski sellest ei muutu otsingumootorites duubelsisuks, sest toorfailidel on noindex-päis ja kanooniline link tagasi HTML-lehele.

## Mida see teile lugejana annab

Mitte miski siin ei ole toote funktsioon. See on otsus selle kohta, kuidas me oma sisu avaldame, ja see sobib kokku [esimeses postituses](/en/blog/welcome-to-the-litetms-blog) antud lubadusega: ei mingeid väljamõeldud numbreid ning tekst, mida saate otse allikast kontrollida. Ka TMS ise on üles ehitatud samale eelistusele: lihtne ja kontrollitav loogika. Kui soovite süsteemiga tutvuda, on [registreerimine tasuta](/en/register).

## FAQ

### Kas ma saan lugeda LiteTMS-i blogipostitust puhta markdownina?

Jah. Lisage mis tahes postituse aadressi lõppu `.md` ja veebisait suunab teid algse lähtefaili juurde, mida kuvatakse puhta markdownina. Avaldatud postituste täielik nimekiri asub aadressil /blog/index.md.

### Miks LiteTMS-i blogi ei kasuta sisuhaldussüsteemi?

Sest CMS oleks teine süsteem, mida tuleb turvata ja uuendada, ning ainsad siinsed autorid töötavad juba nagunii toote repositooriumis. Markdown-failid koos CI-validaatoriga teevad sama töö ära märksa väiksema hoolduskoormusega.

### Kas tehisintellekti assistentidele kirjutamine teeb postitused inimeste jaoks halvemaks?

Ei. Struktuur, mida assistendid eelistavad, st otsene sissejuhatav lõik, kirjeldavad pealkirjad ja konkreetsed küsimused koos lühikeste vastustega, on täpselt sama struktuur, mis teeb artikli hõlpsasti sirvitavaks. Toores markdown on eraldi formaat, seega jääb artikkel, mida loete, tavaliseks artikliks.
