Blog — tehnička referenca
Ova stranica opisuje označavanje, pohranu podataka, upravljačke plohe i sučelja paketa. Za uvod vidi Pregled, za prvu objavu Brzi početak.
Blok metapodataka stranice
Stranica postaje objava tako da nosi blok <wk:blog>. Blok ništa ne prikazuje; opisuje stranicu na kojoj stoji i putuje s njom kada se stranica kopira.
| Svojstvo | Značenje | Vrijednosti |
|---|---|---|
type | vrsta zapisa | post, page |
format | oblik teksta stranice | dokuwiki, markdown |
blog | naziv bloga kojemu objava pripada | slobodno |
status | stanje objave | draft, pending, scheduled, published |
publish | vrijeme planirane objave | ISO 8601 |
created | vrijeme nastanka | ISO 8601 |
author | prikazano ime autora | slobodno |
slug | kratki naziv za poveznice | slobodno |
comments | stanje komentara | enabled, closed, disabled |
image | slika objave | ID medija |
tags | oznake, odvojene zarezom | slobodno |
Dvije vrijednosti stoje kao podelement umjesto kao svojstvo jer redovito prelaze preko više redaka: <excerpt> za najavu i dva opisa za tražilice i društvene mreže.
Popisi
Označavanje zahtijeva zatvarajuću oznaku; postavke stoje unutar nje, po jedna u retku. Jednoredni oblik ne djeluje i ostaje tekst na stranici.
<blog list> blog wk limit 10 tpl wk </blog>
<blog> i <wk:blog> izgledaju slično, a čine suprotno: <blog> popisuje objave, <wk:blog> opisuje stranicu na kojoj stoji. U kućnom obliku popis se zato zove bloglist.
| Vrsta | Učinak |
|---|---|
list | objave bloga, kao najave |
pagination | listanje popisa na istoj stranici |
related | objave s najviše zajedničkih oznaka |
recentcomments | najnoviji komentari |
newform | obrazac „stvori novu objavu“ |
tagcloud | oblak oznaka |
tagsearch | popis pogodaka za jednu oznaku |
<blog archive> ne stoji ni u jednom popisu dopuštenih vrijednosti u kodu i pada u zadanu granu: stvara običan popis i o tome ne javlja. U zalihi stranica ove instalacije to se označavanje nigdje ne koristi.
Skupovi predložaka
Skup predložaka određuje izgled popisa. Isporučeni su default, wk, wkbizway i wkbizwayteaser. Postavka tpl u popisu bira skup; bez nje vrijedi default.
Vremensko planiranje
Objava sa status=“scheduled” i vremenom publish u budućnosti ostaje nevidljiva dok to vrijeme ne nastupi. Prebacivanje obavlja zadaća održavanja wikija: upisuje stanje u blok stranice i pritom stvara običnu inačicu. Nema zasebne usluge planiranja ni procesa koji trajno radi — bez prometa na wikiju ni raspored ne napreduje.
Više blogova
Blogovi se razlikuju samo po nazivu u postavci blog. Drugi blog nastaje time što objave nose drugi naziv, a popis pita za taj naziv. Nema upravljanja blogovima, nema stvaranja ni brisanja; blog postoji točno onoliko dugo koliko ga neka stranica imenuje.
Pohrana podataka
Stranica je istina, baza podataka je iz nje izvedeni indeks. Nalazi se u datoteci data/meta/wkblog.sqlite3 i vodi tablice entries, comments, tags, subscriptions, optin i opts.
Što ponovno indeksiranje obnavlja, a što ostavlja na miru
Ponovno indeksiranje iznova gradi projekciju iz stranica. Obnavlja se sve što stoji u bloku: naslov, stanje, raspored, blog, oznake, najava. Ostaje netaknuto sve što nema odgovarajući zapis na stranici: komentari, pretplate, zapisi potvrde i stanje raspodjele. To su činjenice o događajima izvan wikija; ponovno indeksiranje ih ne može ni izvesti ni uništiti.
Kopiranje stranice u drugi wiki drugi je slučaj: onamo putuje samo stranica, dakle samo blok. Komentari, pretplate i stanje raspodjele ostaju.
Stanje raspodjele
Šest praznih dopuštenih stupaca u entries bilježi da je i kada objava podijeljena na društvenoj mreži. Uredništvo to upisuje ručno; nema automatske objave na mrežu. Namjerno nije dio bloka: stanje raspodjele nije autorska tvrdnja stranice, nego nalaz o nečemu što se dogodilo izvan wikija.
Ispad filtriranja pristupa ne izgleda kao pogreška
Osam rutina filtrira javne popise prema razini pristupa stranice. Ako to filtriranje otkaže — primjerice zato što funkcije baze nakon selidbe nisu prijavljene — nema poruke o pogrešci. Pojavljuje se previše objava.
To je najneugodniji oblik ispada: u pogonu se ne razlikuje od ispravnosti. Provjera koja čeka iznimku čeka uzalud.
Instalacija bi zato trajno trebala držati:
- barem jednu objavljenu objavu koja anonimno nije čitljiva,
- očekivani broj anonimno vidljivih objava, utvrđen unaprijed.
Provjerava se javni popis, ne popis u upravljanju: potonji ionako stoji iza provjere ovlasti, a ispad se pokazuje samo ondje gdje broji anonimni posjetitelj. Sama zabrana pripada kontroli pristupa wikija i nikada se ne isporučuje s paketom.
Nema ugrađenog SQL-a
Sav pristup bazi ide preko imenovanih rutina s vezanim parametrima. Svaka rutina par je datoteke .sql i manifesta; naziv tablice ondje stoji u čistom tekstu, ne u PHP kodu. Tko želi promijeniti upit, mijenja datoteku rutine. Vidi SQLite Data Studio.
Komentari
Tri stanja
enabled— komentari su mogućiclosed— postojeći komentari ostaju vidljivi, novi nisu mogućidisabled— na ovoj stranici nema komentara
Kada je provjera uključena, novi komentar najprije je skriven i postaje vidljiv tek nakon odobrenja. Zaslon za upravljanje vodi komentare koji čekaju i prikazuje njihov broj kao značku na radnoj plohi.
Avatari i što s njima napušta poslužitelj
Zadano se avatari ne dohvaćaju s tuđih poslužitelja. Ako se uključi vanjska usluga, za svaki prikazani komentar kuću napušta zahtjev s kontrolnim zbrojem adrese. To je svjesna odluka, a ne zadana postavka.
Zaslon za upravljanje
Zaslon se nalazi na ?do=admin&page=wkblog.
Pregled odgovara na urednička pitanja
Šest brojki: objavljeno, skice, čeka provjeru, zakazano, komentari na provjeri i stanje SEO njege. Svaka brojka vodi u odgovarajuće filtriran popis.
Popis objava filtrira po stanju
Uz naslov i blog popis filtrira i po stanju objave. Filtar ostaje sačuvan pri listanju.
Skupne radnje mijenjaju stranicu, ne indeks
Stanje, blog i stanje komentara stoje u bloku stranice. Skupna radnja nad njima zato zapisuje stranicu uobičajenim putem spremanja: provjerava ovlasti, poštuje bravu za uređivanje i stvara stvarnu inačicu. Tek se potom osvježava indeks. Kada je objava preskočena, poruka zasebno navodi razlog — upravo se uređuje, nema ovlasti, stranica više ne postoji — jer tek razlog kaže što učiniti.
Oznaka „istaknuto“ izuzeta je: ona je pogonsko stanje baze i dosljedno ne stvara inačicu.
Uklapanje u radnu plohu
Paket ne crta vlastitu radnu plohu. Svoje dijelove predaje onoj koja već postoji: navigaciju kao prikaz u primarnoj bočnoj traci, zaostatak provjere i trenutačno mjesto kao podatke statusne trake, značku s brojem komentara koji čekaju i dvije naredbe. Vidi wkfluentui.
wkidentity ponovno indeksiranje, naknadna ugradnja prenosivih blokova i skupno brisanje komentara traže drugi čimbenik dokazan za sjednicu. Bez wkidentity paket se ponaša nepromijenjeno.
Postavke
Postavke se nalaze u upravitelju postavki wikija pod nazivom paketa. Uređuju zadano stanje novih komentara, zadani blog, zadane oznake, obvezu provjere komentara, postavljanje datuma u obrascu za uređivanje i primanje povratnih poveznica. Neispravna vrijednost ne preuzima se; tada vrijedi zadana.
Sučelje za programe
Paket nudi plohu za daljinski poziv wikija. Stvara objave, čita ih, mijenja stanje i održava oznake. Svaki poziv prolazi istu provjeru ovlasti kao i korisničko sučelje i pri pisanju stvara istu inačicu; nema puta koji zaobilazi stranicu.
Ponašanje u posebnim slučajevima
- Stranica bez bloka nije objava, čak i ako u bazi postoji redak.
- Obrisana stranica gubi svoj redak pri sljedećem pristupu zapisu.
- Nepoznata vrsta u popisu vraća se na
listi o tome javlja. - Ako baza nedostaje, plohe se isključuju umjesto da sruše stranicu.
Odnos prema prethodnom paketu
Paket je razvojna grana BlogTNG-a. Grananje je bilo mehaničko, daljnji razvoj nije: prenosivi blok metapodataka, drugi oblik teksta, zaslon za upravljanje, vremensko planiranje i ploha za daljinski poziv kućni su dodaci. Stara adresa kanala ostaje dostupna radi podudarnosti.