Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

✏️ Grav lehtede redigeerimine esiküljelt: paigaldamine ja juurdepääsuõigused

✏️ Grav lehtede redigeerimine esiküljelt: paigaldamine ja juurdepääsuõigused

Sisuhaldur logib adminpaneeli sisse, leiab 50 lehekülje seast ühe, avab redaktori, parandab pealkirja, salvestab, naaseb saidile ja värskendab vahekaarti. Kuus klikki ühe muudatuse jaoks. Grav CMS-il on sellele lihtne lahendus: Editable with ContentTools pistikprogramm manustab WYSIWYG-redaktori otse saidi lehele. Avate lehe, klõpsate „edit", parandate teksti ja salvestate selle tagasi Markdown-faili, ilma et peaksite adminpaneeli sisenema.

Pistikprogrammi pole alates 2022. aastast uuendatud (autor lõpetas toe ametlikult), kuid see töötab stabiilselt Grav 1.7 peal ja katab põhistsenaariumi lihtsate Markdown-lehtede redigeerimiseks ilma dünaamilise loogikata. Paigaldamine võtab viis minutit ja pärast seda muutub teksti redigeerimine esiküljel palju lihtsamaks.

Allpool on täielik juhend alates paigaldamisest kuni juurdepääsuõigusteni, koos piirangute ja alternatiivi (Fred) lahtiseletamisega.

💡 Kiirülevaade:

  • Paigaldage pistikprogramm GPM-i või zip-arhiivi kaudu ja kopeerige seadistus.
  • Seadistage git-sync, et muudatused hoidlasse salvestada (valikuline).
  • Märgistage redigeeritavad alad editable lühikoodiga, kasutades unikaalseid nimesid.
  • Andke esikülje kasutajatele site.editable õigused.
  • Ühendage admini ja esikülje sessioonid sättega session.split: false.
  • Pidage meeles piirangut: ainult puhas Markdown, ei Twig-i ega dünaamilist sisu.

Paigaldamine: GPM-i kaudu või käsitsi

Pistikprogramm paigaldatakse Grav Package Manageri kaudu, mis on standardmeetod mis tahes lisamooduli jaoks Gravis:

1bin/gpm install editable-contenttools

Käivitage käsk saidi juurkaustast (sealt, kus asub bin/). GPM laadib alla uusima versiooni ja pakib selle lahti kausta /user/plugins/editable-contenttools.

Teise võimalusena saate paigaldada käsitsi: laadige GitHubist alla zip-arhiiv, pakkige see lahti kausta /user/plugins/ ja nimetage kaust ümber editable-contenttools (ilma -master järelliiteta). Struktuur peaks välja nägema selline: /user/plugins/editable-contenttools/editable-contenttools.php.

Kopeerige seadistus turvalisse asukohta

Pärast paigaldamist kopeerige kindlasti seadistusfail kasutajakataloogi:

1cp user/plugins/editable-contenttools/editable-contenttools.yaml user/config/plugins/editable-contenttools.yaml

See samm on oluline: kui sätted jäävad pistikprogrammi kausta, lähtestatakse need GPM-i kaudu uuendamisel. Alternatiivne lähenemine on paigaldada läbi Grav Admin paneeli (Plugins → Add), sel juhul loob süsteem seadistuse automaatselt kausta user/config/plugins/ ja käsitsi kopeerimine pole vajalik.

Seadistamine: kolm seadistusvalikut

Fail editable-contenttools.yaml sisaldab kolme parameetrit:

1enabled: true
2git-sync: false
3git-sync-mode: foreground

enabled aktiveerib pistikprogrammi. Ilma enabled: true-ta redaktor esiküljel ei ilmu, isegi kui õigused on antud. Vaikeväärtus on true.

git-sync käivitab pärast iga salvestamist sünkroniseerimise Git-hoidlaga. See töötab ainult siis, kui Git Sync pistikprogramm on paigaldatud. Kui teie sait elab Git-is ja soovite iga muudatuse ajalukku jäädvustada, seadke see väärtusele true. Vastasel juhul jätke see väärtusele false.

git-sync-mode määrab, kas oodata sünkroniseerimise lõpuleviimist enne juhitavuse kasutajale tagasi andmist. foreground tähendab, et nupp „Save" vabaneb alles pärast commit-i ja push-i lõppemist. background töötab asünkroonselt, kuid mõnedel Linuxi serveritel võib taustaprotsessidega probleeme esineda. Enamiku stsenaariumide jaoks piisab valikust foreground.

Redigeeritavate alade märgistamine: [editable] lühikood

Näide [redigeeritavast] lühikoodist Grav lehe Markdown failis

Pistikprogramm ei muuda kogu lehte automaatselt redigeeritavaks. Te määrate, milliseid plokke saab redigeerida, kasutades [editable] lühikoodi:

1[editable]
2## Section heading
3
4Text that can be edited from the frontend.
5[/editable]

Leht võib sisaldada suvalist arvu selliseid alasid. Igal alal peab olema kordumatu nimi; vastasel juhul ei tea ContentTools, kuhu muudatusi salvestada.

Nime parameeter: kohustuslik unikaalsus

Vaikimisi määrab pistikprogramm nimed automaatselt (region-0, region-1 ja nii edasi), kuid parem on määrata tähenduslikud nimed käsitsi:

1[editable name="hero-block"]
2## Main heading
3
4Text that can be edited.
5[/editable]

Esimesel salvestamisel läbi front-endi lisab plugin lühikoodile automaatselt name parameetri, kui see puudus. Praktikas on lihtsam määrata nimed kohe märgendamise käigus, sest see lihtsustab silumist (näete brauseri arendajatööriistades, millist plokki parajasti muudate).

Pärast lehe märgendamist ja salvestamist külastage saiti kasutajana, kellel on site.editable õigus, klõpsake vasakul asuvat pliiatsiikooni ja muutke teksti nagu tavalises tekstiredaktoris. Hoidke umbes kolm sekundit Shift-klahvi all, et kõik muudetavad piirkonnad esile tõsta.

Saate seda proovida plugina demosaidil (salvestamine on keelatud, Grav 1.7.46).

Juurdepääsuõigused: front-end ja back-end

Selleks, et kasutaja näeks pliiatsiikooni, vajab ta muutmisõigusi. Reeglid erinevad front-end kasutajate (sisuhaldurid) ja back-end kasutajate (administraatorid) puhul.

Front-end kasutajad

Kasutaja peab saama sisse logida Grav Logini või Private Gravi plugina kaudu. Seejärel lisage konto faili (user/accounts/username.yaml) järgmine:

1access:
2 site:
3 login: 'true'
4 editable: 'true'

Ilma site.editable õiguseta pliiatsiikooni ei kuvata, isegi kui kasutaja on sisse logitud ja tal on muid õigusi.

Back-end kasutajad (administraatorid)

Vaikimisi hoiab Grav adminni ja front-endi sessioonid lahus. Selleks, et administraator saaks lehti otse saidil muuta (adminpaneeli sisenemata), määrake failis system.yaml (või adminpaneeli kaudu Configuration → System) järgmine:

1session:
2 split: false

See ühendab sessioonid: adminpaneeli sisselogimine annab automaatselt juurdepääsu ka front-end redaktorile. Administraator vajab oma konto failis ka admin.super või admin.pages õigust.

Kui ikoon pärast sisselogimist ei ilmu, kontrollige adminni vahemälu seadeid:

1admin:
2 super: 'true'
3 login: 'true'
4 cache: 'false'

Parameeter cache: false keelab adminni vahemälu ja võib lahendada nähtamatu ikooni probleemi.

Piirangud: mida plugin ei suuda

Plugin töötab eranditult tavalise Markdown'iga. See on arhitektuuriline piirang, mitte viga: ContentTools muudab brauseris HTML-i ja plugin teisendab HTML-i tagasi Markdown'iks. Selle protsessi käigus rikutakse igasugune dünaamiline märgendus. Ärge muutke sisu ContentToolsi kaudu, kui see:

  • on kokku pandud Twigi mallide abil (näiteks modulaarsed lehed: alamplokid lisab ülemleht dünaamiliselt ja plugin ei näe nende lähtekoodi);
  • on süstitud teiste pluginate poolt (Page Inject ja sarnased pluginad lisavad sisu teistelt lehtedelt, mis on ühesuunaline protsess);
  • muutub brauseris JavaScripti abil (liugurid, akordionid ja muud interaktiivsed elemendid teisendatakse staatiliseks HTML-iks);
  • sisaldab Gravi Markdown'i erimärgendeid (pildid parameetritega ?lightbox ja ?resize saavad HTML → Markdown teisenduse käigus kahjustada, sest töötlusparameetrid kaovad).

Ohutusreeglid on lihtsad:

  • Hoidke pildid ja keerukad lühikoodid muudetavatest aladest väljas.
  • Hoidke alad väikesed: nende arv on piiramatu ja 10 väikest plokki on parem kui üks suur riskidega plokk.
  • Testige postituse koopial või testkeskkonnas, enne kui annate juurdepääsu toimetajatele.
  • Kui märkate Markdown'i vorminduses erinevusi pliiatsiikooniga ja ilma selleta versiooni vahel, viige see fragment [editable] alast välja.

Alternatiiv: Fredi plugin

Kui Editable with ContentTools funktsionaalsusest ei piisa, vaata Fredi, uuemat front-end redaktorit Gravile, mis põhineb samuti ContentToolsil. Peamised erinevused:

  • Piltide üleslaadimine dialoogi kaudu (koos pööramise ja lihtsa töötlusega).
  • Sisu automaatne mähkimine onPageProcessed sündmuse kaudu, mis nõuab vähem käsitsi shortcode-märgendust.
  • Aktiivne arendus: autor võtab GitHubis vastu probleemiteateid ja jätkab funktsioonide lisamist.

Paigaldamine repositooriumi kloonimisega kausta /user/plugins/fred:

1cd user/plugins
2git clone https://github.com/BugHunter2k/grav-plugin-fred.git fred

Õigused seatakse sarnaselt: site.editor: true kasutajakonto failis (pane tähele: site.editor, mitte site.editable).

Nii Editable with ContentTools kui ka Fred lahendavad sama probleemi: annavad sisuhalduritele tööriista kiireteks muudatusteks ilma administraatori paneeli sisenemata. Esimene sobib, kui vajad lihtsat, tõestatud tööriista Markdown-lehtedele ilma eksperimentideta. Teine toimib, kui soovid rohkem automatiseerimist ja oled valmis aktiivse arenduse võimalikeks konarusteks.

Video: kuidas ContentTools töötab

Kaheminutiline demonstratsioon Gravi lehe redigeerimisest brauseris: autor näitab, kuidas redigeeritavad alad esile tõstetakse, muudatusi tehakse ja sisu Markdown-vormingusse tagasi salvestatakse. Hea viis näha pluginat töös enne paigaldamist.

⁉️🤔 Korduma kippuvad küsimused

Miks pliiatsiikoon pärast paigaldamist ei ilmu?

Kontrolli nelja asja. Esiteks, enabled: true plugina seadistuses (user/config/plugins/editable-contenttools.yaml). Teiseks, kasutajal peab olema site.editable õigus oma konto failis. Kolmandaks, taustasüsteemi kasutajate puhul peab session.split olema false failis system.yaml. Neljandaks, tühjenda Gravi vahemälu: bin/grav clear-cache. Tavaliselt on probleemiks kas õigused või jagatud sessioonid.

Kas ma saan redigeerida modulaarseid lehti?

Ei. Modulaarsed lehed pannakse kokku alamlehtedest Twig-mallide abil, mis on ühesuunaline protsess: plugin ei suuda tulemust osadeks „lahti võtta". Esivaates näed valmis HTML-i, kuid lähtekood (alamoodulite eraldi Markdown-failid) asub teistes kaustades ja plugin ei tea, kuhu muudatusi salvestada. Modulaarsete lehtede puhul kasuta tavalist Gravi administraatori liidest.

Mis juhtub, kui jätan pildi [editable] sisse?

Gravi Markdowni erisildid piltidele (parameetritega ?lightbox, ?resize, ?cropResize) saavad HTML-ist Markdowniks teisendamisel kahjustada. Pilt ise jääb paigale (<img> silt teisendatakse tavaliseks Markdowniks ![](url)), kuid töötlusparameetrid kaovad. Järeldus: hoia parameetritega pildid alati redigeeritavast alast väljas. Kui pilt on lihtne (ilma parameetriteta), võid selle tehniliselt sisse jätta, kuid praktikas on turvalisem viia kogu meedia [editable]-st välja.

Plugina autor on selle hüljanud. Kas seda on ohutu kasutada?

Autor teatas ametlikult toe lõpetamisest 2022. aastal ja viimane commit pärineb augustist 2024 (ühilduvusvärskendus Grav 1.7-le). Plugin on Grav 1.7 peal stabiilne ega mõjuta turvakriitilisi komponente: see töötab ainult Markdown-sisuga ja sellel puudub juurdepääs serveritoimingutele. Kui plaanid üleminekut Grav 2.0-le, kaalu Fredi vaatamist või oota ametlikku front-end redigeerimise lahendust (uusi lähenemisi, mis põhinevad TinyMCE-l ja Prosemirroril, arutatakse foorumis).

Mis vahe on Editable with SimpleMDE ja ContentTools versiooni vahel?

Editable with SimpleMDE kasutab sama lähenemist (front-end redigeerimine), kuid visuaalse redaktori asemel pakub see SimpleMDE Markdown-redaktorit koos reaalajas eelvaatega. See sobib neile, kes eelistavad märgendit käsitsi kirjutada ja soovivad tulemust näha redaktorist paremal, mitte WYSIWYG-režiimis. Mõlemad pluginad on samalt autorilt (bleutzinn) ja mõlemad on alates 2022. aastast hüljatud.

Kas Gravi front-end redaktorit tasub 2026. aastal paigaldada

Kui su sait töötab Grav 1.7 peal, koosneb lihtsatest Markdown-lehtedest ja sisuhaldurid on väsinud paari muudatuse jaoks administraatori paneeli sisenemisest, paigalda Editable with ContentTools. Viis minutit paigaldamiseks, minimaalne seadistamine ja redigeerimine muutub ühe klõpsu toiminguks. Ava leht, klõpsa pliiatsit, paranda tekst, salvesta. Ei mingit leheloendite otsimist ega sakkide vahetamist.

Uute projektide puhul või Grav 2.0-le üleminekut planeerides (väljalaset oodatakse 2026. aastal, kuigi täpset kuupäeva pole), kaalu Fredi: seda arendatakse aktiivsemalt ja see saab tõenäolisemalt ühilduvuse CMS-i teise versiooniga. Igal juhul säästab front-end redigeerimine igal muudatusel kümneid klikke ja minuteid aega, mis on eriti märgatav sage sisu uuendamisega saitidel. Proovi seda testkeskkonnas ja otsusta, kui palju see lähenemine sinu töövoogu kiirendab.