Siden vår opprinnelige Ghost-temaopplæringsveiledningsserie ble publisert i slutten av 2013, a mye av nye endringer har gått gjennom API-temaet. Det er noen nye krav til temaer, noen få ting som er utdatert, og en stor stor stabel med nye hjelpere, sammenhenger, maler og tilleggsfunksjoner.
I denne opplæringen tar vi "UberTheme", temaet som ble fullført i leksjon seks i serien, oppdaterer den for å overholde gjeldende krav, og inkluderer noen av de nyeste tilleggene til Ghost.
Vi vil ikke implementere hver Ny funksjon i vårt tema, da det er for mange til å passe inn i en opplæring, men vi skal gå over mange av disse flotte nye funksjonene akkurat det samme.
Temaer krever nå en "package.json" -fil for å definere navnet på temaet. Denne filen kan også inneholde versjonens nummer på temaet.
I rotmappen til ditt UberTheme lager du en fil med navnet "package.json" og legger til følgende kode inne:
"navn": "UberTheme", "versjon": "1.0.1"
I øyeblikket bruker temaene bare disse to feltene, men etter hvert som Ghost-økosystemet vokser, vil det bli lagt til flere felt for å avsløre utviklerinformasjon og hjelp med oppgraderinger og kompatibilitetsstyring..
Mer informasjon finner du i Ghost Developer Docs.
Når du laster inn CSS, JS eller bilder fra temaets "assets" -mappe, bør du nå bruke ressurs
hjelper. Dette hjelper med å cache, sikre korrekte lasteveier, og sørge for at temaene er jevnt strukturert, slik at folk kan regne med å finne en passende brukt "eiendomsmappe" i et hvilket som helst tema.
Åpne UberThemes "default.hbs" -fil for redigering og finn linjer 12 til 14:
! Skript
Rediger dem for å bruke ressurs
hjelper som følger:
! Skript
Les mer i Ghost dev docs.
Vi brukte egentlig ikke noe av følgende i UberTheme, slik at du ikke trenger å gjøre noen endringer i temaet på grunn av avskrivning. Men i noen av dine andre Ghost-temaprosjekter, vær sikker på at du ikke lenger bruker disse funksjonene:
Denne hjelperen pleide å være noe som kunne benyttes i paginasjonsmaler. Bruk nå PAGE_URL
i stedet.
Denne hjelperen er fjernet og utsender nå bare en tom streng. Dobbeltklikk på forfatterseksjonene dine og sørg for at den ikke er brukt.
arkiv-mal
og side
Disse klassene pleide å bli utført hvis du bruker Body_class
hjelper, men er ikke lenger på plass.
post-mal
KlasseDe post-mal
Klassen pleide å bli sendt ut via Body_class
hjelper på sider, men nå vises bare på innlegg.
Ghost har en rekke "sammenhenger" du kan finne deg selv når du navigerer rundt en blogg. For eksempel, når du leser et enkelt innlegg, er du i "innlegg" -kontekst. Det er nå flere nylig tilførte sammenhenger som viser ulike typer innhold. Nedenfor skal vi dekke de nye "forfatter", "side", "tag" og "hjemme" sammenhenger.
I tillegg til disse nye sammenhengen er det også flere nye maler du kan legge til temaet ditt for finere nivåer av kontroll over presentasjon. Merk at hvis du legger til nye maler i temaet ditt, må du starte Ghost på nytt for at de skal hentes av systemet og bli operativ.
Ghost støtter nå statiske sider samt innlegg, noe som gjør det perfekt på mange måter for å bygge en typisk nettside for fem sider. For å opprette en statisk side må du først legge til et vanlig innlegg og deretter klikke på det lille utstyr ikonet nederst til høyre i redigeringsgrensesnittet. Deretter merker du av i boksen i sidelinjen med innstillinger som er merket Vend dette innlegget til en statisk side.
Legg til en "page.hbs" mal til temaet ditt for å kontrollere statisk sidestyling, eller la den falle tilbake ved å bruke "post.hbs" mal.
I UberTheme dupliserer du den eksisterende "post.hbs" -malen og omdøper den til "page.hbs". Vi skal fjerne merkingen fra denne malen som sidene egentlig ikke trenger, det vil si datoen som er lagt ut, kodene, delingslinjen, forfatterinformasjonen og paginasjonen.
Finn element på linje 7 og slette det:
Slett nå helt fra linje 12:
#if tags... ned til linje 38, like før avslutningen
stikkord:
/hvisSlett så også fra hva som nå er linje 14, til linje 18:
#if paginationPaginering/hvisDine sider skal nå vises med bare tittel og innhold på siden:
Maler for bestemte sider kan også opprettes med filnavnet syntaks "side - slug. Hbs", f.eks. “side-kontakt-us.hbs”.
Les mer i Ghost-utviklerens dokumenter.
Forfatter Side / Kontekst og egendefinert forfattermal
Nå som Ghost støtter flere brukere, er det mulig å se en liste over alle innleggene som en bestemt forfatter har skrevet. For å gi enkel tilgang til disse lister over forfatterposter må du legge til forfatterattribusjon i temaets innleggsvisning.
Først legger vi til en forfatterattribusjon til UberTheme ved å redigere filen "index.hbs" og legge til følgende kode like før
innhold
stikkord:Skrevet av forfatter
Du vil også gjøre det samme tillegget i filen "post.hbs".
Fra temaprosjektets "LESS" -mappe, rediger du også "layout.less" -filen og legg til denne stylingen for å kursivere forfatterteksten:
.forfatter font-style: italic;Du bør nå ha en forfatterattribusjon øverst på innleggene dine, slik som dette:
Du vil legge merke til at forfatternavnet automatisk er koblet til; Denne koblingen går til en visning av alle innleggene som er skrevet av forfatteren i spørsmålet. Denne listen over forfatterposter bruker som standard "index.hbs" -malen, men du kan også tilpasse presentasjonen med en mal som heter "author.hbs".
For forfatterspesifikke maler bruker du filnavnetes syntaks "forfatter - slug. Hbs", f.eks. “forfatter-kezz.hbs”.
Igjen, mer kan bli funnet på dette i Ghost Developer Docs.
Merk sidene / tagtekst og tilpassede tagmaler
Når du bruker
koder
hjelper til å vise koder knyttet til innlegg, vil hver kode nå lenke til en side som viser alle innlegg som har samme tag.Opprett en "tag.hbs" malfil hvis du vil tilpasse temaets tagsidevisning eller alternativt la den falle tilbake til "index.hbs" -filen.
For å legge til en taggside til UberTheme, dupliser "index.hbs" -malen og omdøpe den til "tag.hbs". Rett etter åpningen
tag legg til denne koden:
#stikkord/stikkordInnlegg merket: name
Dette vil legge til en overskrift på etikettene for etikettoppføringer som viser navnet på gjeldende tagg.
I din "layout.less" -fil, etter de
.article_uber
velg stil, legg til denne koden:.tag_heading font-size: 2rem; polstring: 0 0 2rem 0; tekst-align: center; margin-bunn: 0.25rem;Når du går til en etikettoversiktsside, bør du nå ha en overskriftsavdeling for den slik:
For å lage forskjellige maler for bestemte koder, bruk filnavnet syntaks "tag - slug. Hbs". Dette kan være bra for ting som å lage bildegallerier ut av innlegg merket "galleri", for eksempel, ved hjelp av en mal som heter "tag-gallery.hbs".
Hjem Kontekst / Hjemmeside
Du kan ønske å ha en annen mal for hjemmesiden din enn du gjør for etterfølgende lister over innlegg som folk side gjennom. For eksempel kan du ha et stort bilde eller en lysbildefremvisning på hjemmesiden din, slik at du ikke vil at besøkende må rulle forbi igjen på neste innleggside.
For å tilpasse startsiden din, opprett en mal som heter "home.hbs".
Les mer i Ghost-utviklerens dokumenter.
Egendefinerte feil sider
Hvis du vil kontrollere den eksakte presentasjonen av feilsider, kan du nå ved å opprette en mal som heter "error.hbs".
Les mer i (kan du gjette?) Ghost utvikler docs!
Nye hjelpere
Ghost har introdusert flere nye hjelpere; slags maletiketter som hjelper deg med å utføre bestemte typer innhold i temaet ditt.
navigasjon Hjelper
Det er nå mulig å lage grunnleggende navigasjonsmenyer i Ghost, ved å gå til Innstillinger> Navigasjon i administrasjonsområdet.
For å opprette en nav-meny i UberTheme, åpne "header.hbs" -filen fra "partials" -mappen og legg til denne koden før den siste lukkede div-taggen:
Fra prosjektets "LESS" mappe, åpne "layout.less" og finn
.header_uber
klasse. På den, på linje 33, endrepadding-bottom
verdi fra:polstring-bunn: 3 * @golden + 0em;… til:
polstring-bunn: 1,5 * @golden + 0em;Deretter legger du til følgende kode for å stile din nye navigasjonsmeny:
ul.nav listestil-type: none; margin-topp: 1,5 * @golden + 0em; polstring: 0; display: flex; begrunn-innhold: center; border-top: 0,0625rem solid lys (@ color_03, 33%); grensebunn: 0,0625rem solid lys (@ color_03, 33%); bakgrunnsfarge: lysere (@ color_03, 42%); li margin: 0 0.25em; polstring: 0.75em 1em; en tekst-dekorasjon: ingen;Merk: Vi bruker flexbox her for rask og enkel menyimplementering, men hvis du trenger å støtte eldre nettlesere, kan du ønske å bruke en annen tilnærming.
Ditt tema bør nå ha en navigasjonsmeny som ser slik ut:
Les mer om navigasjon i ... du vet.
image Hjelper
Ghost gir nå muligheten til å legge til et kjennetegnet bilde til et innlegg. For å legge til et bilde, klikk på det lille tannhjulikonet nederst til høyre i grensesnittet for redigering av innlegg, og klikk deretter på Legg til postbilde firkanten øverst på sidefeltet som dukker opp. Du kan også dra og slippe et bilde på det.
For å sende ut postens bilde, bruk
bilde
hjelper. I UberTheme, åpne opp "index.hbs" filen og finninnhold
tag på linje 12:innholdRett over det, legg til et bildeelement ved hjelp av
bilde
hjelper isrc
Egenskap. Vi bruker også postens tittel ialt
attributt, og pakk det med en#if image ... if
sjekk for å sikre at det er et bilde som skal vises:#if image / if contentDu bør nå kunne se et hvilket som helst lagt innleggsbilde rett under posttittelen i temaet ditt, slik som:
Fortsett, docs.
#has Hjelper
Den nye
#has
hjelper deg å sjekke om et innlegg har en bestemt forfatter som sin forfatter, og / eller har visse koder knyttet til den. Dette gjør at du kan gjøre ting som å skape ulike typer presentasjoner for forskjellige forfattere, eller når det gjelder koder, sette opp forskjellige typer innlegg som ligner Tumblr-temaer eller WordPress-postformater.For eksempel kan du ha alle innlegg merket "bilde" presentert med et spesielt bildeoppsett, alle innlegg merket "video" presentert på egen måte og andre innlegg som faller tilbake til standardoppslaget:
#has tag = "photo" Spesiell presentasjon av fotopost her else #has tag = "video" Spesiell presentasjon av videoinnlegg her else Gå tilbake til standard presentasjon / har / hasDokumenter.
#is Hjelper
Så langt har vi gått gjennom mange av de nye "sammenhengene" innenfor et Ghost-område, for eksempel "innlegg", "forfatter", "side", "tag" og "hjemme". De
#er
hjelper gir deg muligheten til å kontrollere utdata i en mal, avhengig av hvilken kontekst malen brukes i.For eksempel, i stedet for å lage en annen "tag.hbs" mal som vi gjorde ovenfor, kan du legge til følgende i "index.hbs" -filen din i stedet:
#is "tag" #tag/ tag isInnlegg merket: name
De
#is "tag"
linjekontroller for å se om den nåværende konteksten er «tag», det vil si at betrakteren ser på en liste over innlegg under en bestemt tag, og først da vil den sende ut tagg-overskriften.Les mer.
#prev_post og #next_post hjelpere
Hvis du vil, kan du legge til en Neste innlegg og a Forrige innlegg lenke for å tillate leserne å gå rett fra å lese ett innlegg til et annet. Disse koblingene skal legges til i "post.hbs" -malen.
Et eksempel på hvordan disse koblingene kan implementeres, (fra Ghost docs-siden), er som følger:
#posttittel
innhold#prev_post title / prev_post #next_post title / next_post / postOverordnede maler
Alle maler vi har dekket så langt, samsvarer med visse sammenhenger, men det er noen som kan brukes til å kontrollere utdataene fra enkelte hjelpere, f.eks..
navigasjon
ogPaginering
. Som standard håndterer Ghost utgangene til disse hjelpene automatisk, men du har muligheten til å definere din egen produksjon innenfor temaet ditt.Navigasjonsmall
Standard markup utdata av
navigasjon
hjelper er:#foreach navigasjon
- merkelapp
/for hverFor å bruke din egen navigasjonsmarkering i stedet, opprett en fil kalt "navigation.hbs" og legg den i partikkatalogen av temaet ditt.
Les mer i dokumentene.
Paginasjonsmal
Muligheten til å lage en egendefinert mal for
Paginering
Hjelperen er egentlig ikke ny, men det er noe vi ikke dekker tidligere i serien, og er dermed verdt å nevne her. StandarenPaginering
kode i Ghost er:Overstyr denne koden med din egen ved å opprette en mal med navnet "pagination.hbs" i temaet "partials" -mappen.
Mer her i dokumentene.
Ekstra funksjoner
I tillegg til nye sammenhenger, maler og hjelpere har Ghost også noen få ting lagt til i blandingen.
Utvalgte innlegg
Hvis du vil markere et bestemt innlegg som «Utvalgt», er det nå to måter i administrasjonsgrensesnittet.
Fra administrasjonsområdet som viser alle innleggene dine, klikker du på den lille stjernen øverst i venstre hjørne av vinduet for forhåndsvisning.
Fra innsiden av postredigeringsprogrammet klikker du på det lille girikonet nederst til høyre på skjermen, og merker av i boksen merket Funksjon dette innlegget.
I temaet ditt, hvis du vil bruke forskjellige oppslag for utvalgte innlegg, sjekk om et innlegg er omtalt med
#if featured
#foreach posts #if featured ellers / if / foreachUtvalgte innlegg bærer også klassen
kjennetegnet
slik at du kan målrette dem mot forskjellige styling i CSS. For at denne klassen skal bli utført, inkluderePost_class
hjelper på innleggene dine.For eksempel i UberThemes "index.hbs", "post.hbs" og "page.hbs" -filer endres denne linjen:
… til:
Vanlige innlegg er som standard ikke plassert over andre innlegg, de er i sin vanlige posisjon basert på når de ble publisert. Men hvis du ønsker å ha omtalt innlegg vises først, må du ha to innleggsløyfer: ett for utvalgte innlegg og ett for vanlige innlegg.
#for featured #if featured ! - Vis utvalgte innlegg her - if / foreach #foreach innlegg #unless featured ! - Vis vanlige innlegg her - / unless / foreachAlle sang sammen nå: Les mer i dokumentene.
Tilpassede Favicons
Hvis du vil angi et egendefinert favicon, plasserer du favicon.ico-filen i mappen "eiendeler" og laster den inn i
delen av temaet ditt med
asset "/favicon.ico"Les mer på Wikipedia (tuller, prøv Ghost docs).
Wrapping Up
Det er en hel del ny kraft lagt til i Ghost-temautvikling, med en mengde nye muligheter for kreativ temautvikling!
For å oppsummere har vi:
- "Package.json" -filen og
ressurs
hjelpesperre er nå nødvendig- Navigasjon lagt til, med muligheten til å tilpasse HTML-utgangen
- Utvalgte bilder lagt til
- Nye hjelpere til å tillate mange flere alternativer i markup
- Statiske sider og tilpassede maler for dem
- Merk sidene og egendefinerte maler for dem
- Forfattersider og tilpassede maler for dem
- Hjemmeside mal
- Tilpasset feilmal
- Utvalgte innlegg
- Tilpassbare favikoner
Selv med alt vi har dekket her, er det fortsatt flere nye hjelpere og funksjoner tilgjengelig i Ghost, så vel som mer detaljert på alt ovenfor, så vær sikker på at du har en god lesning på themes.ghost.org for å få alle insene og outs.
Vedlagt denne opplæringen finner du en kildefilnedlastning der du kan få det oppdaterte temaet, samt den redigerte "layout.less" -filen. Bruk UberTheme som din teste lekeplass for å bli kjent med alt nytt i Ghost, så kom deg ut og lag noen fantastiske temaer!
Envato Market
Ikke glem å sjekke Ghost-kategorien på Envato Market!