Oppdatering Hva er nytt i Ghost Temaer

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.

Nye krav:

"Package.json" -filen

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.

Bruk av asset hjelperen

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.

Avviklet

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:

pageUrl Hjelper

Denne hjelperen pleide å være noe som kunne benyttes i paginasjonsmaler. Bruk nå PAGE_URL i stedet.

Author.email

Denne hjelperen er fjernet og utsender nå bare en tom streng. Dobbeltklikk på forfatterseksjonene dine og sørg for at den ikke er brukt.

klasser arkiv-mal og side

Disse klassene pleide å bli utført hvis du bruker Body_class hjelper, men er ikke lenger på plass.

På sider, post-mal Klasse

De post-mal Klassen pleide å bli sendt ut via Body_class hjelper på sider, men nå vises bare på innlegg.

Nye kontekster og maler

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.

Statiske sider / sideinnhold og tilpassede sidemaler

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:

  /hvis

Slett så også fra hva som nå er linje 14, til linje 18:

#if pagination 
Paginering
/hvis

Dine 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 

Innlegg merket: name

/stikkord

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, endre padding-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 finn innhold tag på linje 12:

innhold

Rett over det, legg til et bildeelement ved hjelp av bilde hjelper i src Egenskap. Vi bruker også postens tittel i alt attributt, og pakk det med en #if image ... if sjekk for å sikre at det er et bilde som skal vises:

#if image tittel / if content

Du 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 / has

Dokumenter.

#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 

Innlegg merket: name

/ tag is

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:

#post 

tittel

innhold
#prev_post title / prev_post #next_post title / next_post / post

Overordnede 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 og Paginering. 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 hver

For å 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. Standaren Paginering 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 / foreach

Utvalgte 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, inkludere Post_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 / foreach

Alle 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!