Wpis to strona wiki z metadanymi. Piszesz zwykły markdown, a serwer składa z niego stronę z gotowymi blokami, wersję markdown dla modeli AI, dane strukturalne i feedy. Lint sprawdza wpis przed publikacją.
Treść wpisu żyje w wiki, a osobny wiersz metadanych trzyma adres (slug), opis, autora, tagi, język, powiązanie z tłumaczeniem, okładkę i datę weryfikacji. Strona wiki bez tych metadanych nie jest wpisem. Opublikowany wpis jest dostępny bez logowania pod /blog/{slug}.
Zwykły markdown wystarcza na wyróżnienia, TL;DR, cytat z autorem, obrazek z podpisem, kod z przyciskiem kopiowania, FAQ, kroki, tabelę porównawczą, wykresy z tabeli, diagramy Mermaid i okno terminala. HTML bloków generuje serwer, a treść autora jest sanityzowana, więc własne skrypty, klasy i identyfikatory nie trafią na stronę.
Każdy wpis ma wersję markdown pod adresem /blog/{slug}.md, a lista bloga pod /blog/index.md. Ten sam dokument dostaje klient, który prosi o Accept: text/markdown. Źródłem każdej grafiki jest tekst, więc model widzi dane wykresu i opis diagramu, nie tylko obrazek.
Strona wpisu niesie BlogPosting i BreadcrumbList w formacie JSON-LD. Z bloków FAQ, kroków i wideo serwer dokłada FAQPage, HowTo i VideoObject, a wersje językowe wpisów są powiązane w mapie strony.
Blog ma feedy /blog/feed.xml (Atom), /blog/rss.xml (RSS) i /blog/feed.json (JSON Feed) z pełną treścią 20 najnowszych wpisów, a czytniki znajdują je w nagłówku strony. Plik /llms.txt zawiera na żywo listę najnowszych wpisów z adresami markdown.
Lint sprawdza opis, blok TL;DR, tekst alternatywny obrazków, kolejność nagłówków, opisowe teksty linków, datę weryfikacji i tłumaczenie. Wynik to lista problemów z numerem linii i poziomem (błąd, ostrzeżenie, informacja) oraz ocena 0-100. Ten sam wynik daje narzędzie MCP lint_blog_post, REST API i komenda monolynx blog lint.
Publikacja to osobna operacja: najpierw lint, potem wpis staje się publiczny. Wpis z błędami lintu zostaje prywatny, a odmowa wymienia reguły do poprawy; parametr force publikuje mimo błędów. Cofnięcie publikacji zdejmuje wpis i jego wersję markdown z sieci, a slug i data zostają, więc ponowna publikacja wraca pod ten sam adres.
Publikować, cofać publikację i zmieniać metadane wpisu może tylko konto z uprawnieniem do edycji bloga. Uprawnienie należy do konta, nie do roli w projekcie, jest domyślnie wyłączone, a nadaje je i odbiera wyłącznie superuser na stronie edycji konta; właściciel ani admin projektu go nie nada. Ta sama reguła obowiązuje w panelu, MCP, REST API i CLI, także przy oznaczaniu strony wiki jako publicznej. Konto bez uprawnienia dostaje odmowę (403 w REST API), nic nie jest zapisywane, a narzędzia zapisu bloga nie pojawiają się na jego liście narzędzi MCP. Czytanie wpisów i lint wymagają tylko prawa odczytu wiki.
Przycisk „Podgląd wpisu” na stronie wiki otwiera szkic w wyglądzie publicznego bloga, zanim zaznaczysz „strona publiczna”. Podgląd widzi tylko zalogowany użytkownik z prawem odczytu wiki, a jego adres ma nagłówek noindex i nie trafia do mapy strony ani do feedów.
Skill /monolynx:blog-post prowadzi wpis od briefu przez szkic i lint do podglądu, a publikuje dopiero po Twojej jawnej zgodzie. Publiczny przewodnik /blog-authoring.md opisuje składnię bloków, reguły lintu i operacje connectorów, więc wpis w tym formacie napisze też model bez pluginu.
Grupa komend monolynx blog (list, get, meta, lint, publish, unpublish) działa na tych samych operacjach co narzędzia MCP, więc wpisy obsłużysz ze skryptu i z CI.
Utwórz prywatną stronę wiki z treścią w markdownie i blokami wpisu. Podgląd szkicu pokaże ją w wyglądzie bloga.
Podaj opis, język, tagi i datę weryfikacji. Pierwszy zapis metadanych zamienia stronę wiki we wpis.
Popraw błędy z listy, aż nie zostanie żaden poziomu „błąd”. Ostrzeżenia nie blokują publikacji.
Wpis trafia pod /blog/{slug} razem z wersją markdown, danymi strukturalnymi i feedami.
Agent AI przechodzi te same kroki connectorami, a publikację wykonuje dopiero po Twojej zgodzie. Konto, na którym pracuje agent, potrzebuje uprawnienia do edycji bloga.
Blog jest zbudowany tak, żeby agent AI mógł go i pisać, i czytać. Agent ustawia metadane wpisu, sprawdza go lintem, publikuje i cofa publikację - 6 narzędzi MCP.
Dostępne narzędzia MCP
list_blog_posts
Lista wpisów bloga z metadanymi, także szkice; filtr published albo draft
get_blog_post
Wpis bloga: metadane, adresy publiczne i treść markdown
set_blog_post_meta
Metadane wpisu: slug, opis, autor, tagi, język, tłumaczenie, okładka, data weryfikacji; wymaga uprawnienia do edycji bloga
lint_blog_post
Lint wpisu pod AI: lista problemów z linią i poziomem oraz ocena 0-100
publish_blog_post
Publikacja wpisu po lincie: odmowa przy błędach, chyba że force; zwraca adresy i ocenę lintu; wymaga uprawnienia do edycji bloga
unpublish_blog_post
Cofnięcie publikacji: adres wpisu i jego .md dają 404, data i slug zostają; wymaga uprawnienia do edycji bloga
Śledzenie błędów
Zarządzanie projektami
Monitorowanie URL
Monitoring zadań cron
Dokumentacja i wyszukiwanie RAG
Graf zależności
Analityka pracy i eksport PDF
Rozliczenia cross-project i załączniki
Osobiste planowanie cross-project
Obserwowalność pracy agentów AI
Praca z terminala
Darmowy, open source, self-hosted. Zainstaluj na swojej infrastrukturze w kilka minut.