Sedan vår ursprungliga Ghost Theme Creation Tutorial Series publicerades i slutet av 2013, a massa av nya ändringar har gått igenom API-teman. Det finns några nya krav på teman, några saker som är borttagna och en stor stor stapel nya hjälpare, kontext, mallar och tilläggsfunktioner.
I den här handledningen tar vi "UberTheme", det tema som slutfördes i lektion sex i serien, uppdaterar den för att uppfylla gällande krav och innehåller några av de senaste tilläggen till Ghost.
Vi kommer inte att genomföra varje ny funktion i vårt tema eftersom det finns för många för att passa i en handledning, men vi kommer att gå över många av dessa fantastiska nya funktioner precis samma.
Teman kräver nu en "package.json" -fil för att definiera namnet på temat. Den här filen kan också innehålla versionsnummer för temat.
Skapa en fil med namnet "package.json" i root-mappen på ditt UberTheme och lägg till följande kod inuti:
"namn": "UberTheme", "version": "1.0.1"
För tillfället använder teman bara dessa två fält, men när Ghost-ekosystemet växer kommer ytterligare fält att läggas till för att avslöja utvecklarinformation och hjälpa till med uppgraderingar och kompatibilitetshantering.
Mer information finns i Ghost Developer Docs.
När du laddar CSS, JS eller bilder från temat "assets" -mapp, ska du nu använda tillgång
hjälpare. Detta hjälper till med cachning, säkerställande av korrekta laddningsbanor och att se till att teman är enhetligt strukturerad så att människor kan räkna med att hitta en lämpligt använd "tillgång" -mapp i vilket som helst tema.
Öppna UberThemes "default.hbs" -fil för redigering och leta upp linjerna 12 till 14:
! Skript
Redigera dem för att använda tillgång
hjälpen enligt följande:
! Skript
Läs mer i Ghost dev docs.
Vi har faktiskt inte använt något av följande i UberTheme, så du behöver inte redigera temat på grund av deprecation. Men i något av dina andra Ghost-temaprojekt, se till att du inte längre använder dessa funktioner:
Den här hjälpen brukade vara något som skulle kunna användas i paginationsmallar. Använd nu PAGE_URL
istället.
Den här hjälpen är borttagen och matar nu bara ut en tom sträng. Dubbelkänn dina författarsektioner och se till att den inte används.
arkiv-mall
och sida
Dessa klasser brukade utföras om de använde Body_class
hjälpar, men är inte längre på plats.
post-mall
KlassDe post-mall
klassen brukade utföras via Body_class
hjälpar på sidor, men visas nu bara på inlägg.
Ghost har ett antal "sammanhang" du kanske befinner dig i när du navigerar runt en blogg. Till exempel när du läser ett enda inlägg är du i "post" -kontexten. Det finns nu flera nyskapade kontext som visar olika typer av innehåll. Nedan kommer vi att täcka de nya kontexten "författare", "sida", "tagg" och "hem".
Förutom dessa nya sammanhang finns det också flera nya mallar som du kan lägga till i ditt tema för finare nivåer av kontroll över presentation. Observera att om du lägger till nya mallar till ditt tema måste du starta om Ghost för att de ska hämtas av systemet och bli operativa.
Ghost stöder nu statiska sidor såväl som inlägg, vilket gör det perfekt på många sätt för att bygga en typisk femsidig småföretagssida. För att skapa en statisk sida lägger du först till en vanlig post och klickar sedan på den lilla redskap ikonen i nedre högra hörnet av redigeringsgränssnittet. Markera sedan rutan i sidfältet Inställningar Vänd denna post till en statisk sida.
Lägg till en "page.hbs" -mall till ditt tema för att styra statisk sidaformatering, eller låta den falla tillbaka med hjälp av "post.hbs" -mallen.
I UberTheme duplicerar du den existerande "post.hbs" -mallen och byter namn på den till "page.hbs". Vi kommer att ta bort markeringen från den här mallen som de inte verkligen behöver, dvs datumet, taggarna, delningsfältet, författarinfo och paginering.
Leta reda på element på rad 7 och radera det:
Ta bort hela vägen från rad 12:
#if tags... ner till linje 38, strax innan stängningen
märka:
/omTa sedan bort från vad som nu är linje 14, till rad 18:
#if paginationpaginering/omDina sidor ska nu visas med bara sidtitel och innehåll:
Mallar för specifika sidor kan också skapas med filnamnssyntaxen "sidan - slug. Hbs", t.ex. ”page-kontakt-us.hbs”.
Läs mer i Ghost Developer Docs.
Författarsida / Innehållsförteckning och anpassad författarmall
Nu när Ghost stöder flera användare är det möjligt att se en lista över alla inlägg som en viss författare har skrivit. För att ge enkel tillgång till dessa listor av författarstolpar måste du lägga till författarskrivning i ditt temas postvisning.
Först lägger vi till en författarskrivning till UberTheme genom att redigera filen "index.hbs" och lägger till följande kod strax innan
innehåll
märka:Skriven av author
Du vill också göra samma tillägg i filen "post.hbs".
Från ditt temaprojekts "LÄSER" -mapp, redigera du också filen "layout.less" och lägg till den här stilen för att kursivera författarens text:
.författare font-style: italic;Du borde nu ha en författarskrivning högst upp i dina inlägg, så här:
Du märker att författarnamnet är automatiskt länkat. Den här länken går till en bild av alla inlägg som skrivits av författaren i fråga. Som standard använder den här listan med författarinställningar "index.hbs" -mallen, men du kan också anpassa presentationen med en mall som heter "author.hbs".
För författarens specifika mallar använd filnamnssyntaxen "author - slug. Hbs", t.ex. ”Author-kezz.hbs”.
Återigen finns det mer i detta i Ghost-utvecklarens dokument.
Tag sidor / taggtext och anpassade etikettmallar
När du använder
taggar
hjälpar för att visa taggar i samband med inlägg, kommer varje tag nu att länka till en sida som visar alla inlägg som bär samma tagg.Skapa en "tag.hbs" mallfil om du vill anpassa ditt temas etikettsida-visning eller alternativt låta det falla tillbaka till filen "index.hbs".
För att lägga till en taggsida till UberTheme, duplicera "index.hbs" mallen och byt namn på den till "tag.hbs". Direkt efter öppningen
tagg lägg till den här koden:
#märka/märkaInlägg taggade: name
Detta lägger till en rubrik på dina sidor med etikettinformation som visar namnet på den aktuella taggen.
I din "layout.less" -fil, efter de
.article_uber
väljars stil, lägg till den här koden:.tag_heading font-size: 2rem; vaddering: 0 0 2rem 0; text-align: center; marginal-botten: 0.25rem;När du går till en taggssida bör du nu ha en rubrikavsnitt för det så här:
För att skapa olika mallar för specifika taggar, använd namnet för synkronisering av filnamn - slug. Hbs ". Det här kan vara bra för saker som att skapa bildgallerier ur inlägg taggade "galleri", till exempel, med en mall som heter "tag-gallery.hbs".
Hemkontext / Hemmall
Du kanske vill ha en annan mall för din hemsida än vad du gör för efterföljande listor av inlägg som folk sida genom. Du kan till exempel ha en stor omslagsbild eller ett bildspel på din hemsida som du inte vill att besökare måste bläddra förbi igen på nästa sida av inlägg.
För att anpassa din startsida, skapa en mall som heter "home.hbs".
Läs mer i Ghost Developer Docs.
Anpassade felsidor
Om du vill kontrollera den exakta presentationen av felsidor kan du nu skapa en mall med namnet "error.hbs".
Läs mer i (kan du gissa?) Ghost developer docs!
Nya hjälpare
Ghost har infört flera nya hjälpare; typ av malltaggar som hjälper dig att visa vissa typer av innehåll i ditt tema.
navigation Helper
Det är nu möjligt att skapa grundläggande navigationsmenyer i Ghost, genom att gå till Inställningar> Navigation i adminområdet.
För att få en nav-meny att visas i ditt UberTheme, öppna "header.hbs" -filen från "partials" -mappen och lägg till den här koden före den sista stängnings-div-taggen:
Från projektets "LÄSER" mapp, öppna "layout.less" och leta reda på
.header_uber
klass. På den, på rad 33, ändrapadding-botten
värde från:padding-bottom: 3 * @golden + 0em;... till:
padding-bottom: 1.5 * @golden + 0em;Lägg sedan till följande kod för att ställa in din nya navigationsmeny:
ul.nav list-style-type: none; margin-top: 1.5 * @golden + 0em; vaddering: 0; display: flex; rättfärdiga innehåll: center; gränstopp: 0,0625rem solid ljus (@ color_03, 33%); gränsbotten: 0,0625rem solid ljus (@ color_03, 33%); bakgrundsfärg: ljusare (@ color_03, 42%); li margin: 0 0.25em; vaddering: 0,75em 1em; en text-decoration: none;Notera: Vi använder flexbox här för snabb och enkel menyimplementering, men om du behöver stödja äldre webbläsare kanske du vill använda ett annat tillvägagångssätt.
Ditt tema ska nu ha en navigeringsmeny som ser ut så här:
Läs mer om navigering i ... du vet.
image Helper
Ghost ger nu möjligheten att lägga till en utvald bild på alla inlägg. Om du vill lägga till en bild klickar du på den lilla kugghjulsikonen längst ner till höger om granskningsgränssnittet, och klickar sedan på Lägg till postbild fyrkant på toppen av sidofältet som dyker upp. Alternativt dra och släpp en bild på den.
För att skriva ut postens bild använder du
bild
hjälpare. I UberTheme öppnar du filen "index.hbs" och hittar deninnehåll
tagg på rad 12:innehållDirekt ovanför lägger du till ett bildelement med hjälp av
bild
hjälpar isrc
attribut. Vi använder också postens titel ialt
attribut, och linda den med en#if image ... if
kolla för att se till att det finns en bild som ska visas:#if image / if contentDu borde nu kunna se något tillfogat postbild direkt under posttiteln i ditt tema, som så:
Fortsätt, docs.
#has Helper
Den nya
#has
hjälpen kan du kontrollera om ett inlägg har en viss författare som sin författare och / eller har vissa taggar associerade med den. Detta gör att du kan göra saker som att skapa olika typer av presentationer för olika författare, eller när det gäller taggar, ställer du in olika typer av inlägg som liknar Tumblr-teman eller WordPress-postformat.Du kan till exempel ha alla inlägg taggade "foto" som presenteras med en speciell bildlayout, alla inlägg taggade "video" presenteras på egen väg och andra inlägg som faller tillbaka till standardmarkeringen:
#has tag = "photo" Särskild bildpostpresentation här else #has tag = "video" Särskild videopostpresentation här else Återgå till standardpresentation / har / hasDokument.
#is Helper
Hittills har vi gått igenom många av de nya "kontexten" inom en Ghost-plats, som "post", "författare", "sida", "tagg" och "hem". De
#är
hjälpen ger dig möjlighet att styra utmatningen i en mall beroende på vilket sammanhang mallen används i.I stället för att skapa en annan "tag.hbs" -mall som vi gjorde ovan kan du till exempel lägga till följande i din "index.hbs" -fil istället:
#is "tag" #tag/ tag isInlägg taggade: name
De
#is "tag"
linjekontroller för att se om det aktuella sammanhanget är "tagg", det vill säga att betraktaren tittar på en lista med inlägg under en viss tagg, och först då kommer det att mata ut taggrubriken.Läs mer.
#prev_post och #next_post hjälpare
Om du vill kan du nu lägga till en Nästa inlägg och a Tidigare inlägg länk för att tillåta läsare att gå direkt från att läsa ett inlägg till ett annat. Dessa länkar ska läggas till i mallen "post.hbs".
Ett exempel på hur dessa länkar kan implementeras (från Ghost docs-sidan) är följande:
#postatitel
innehåll#prev_post title / prev_post #next_post title / next_post / postÖvergripande mallar
Alla mallar som vi har täckt hittills motsvarar vissa sammanhang, men det finns några som kan användas för att styra utmatningen från vissa hjälpare, t.ex..
navigering
ochpaginering
. Som standard hanterar Ghost utmatningen av dessa hjälpare automatiskt, men du har möjlighet att definiera din egen produktion inom ditt tema.Navigationsmall
Standardmarkeringsutmatningen av
navigering
hjälpen är:#foreach navigation
- märka
/för varjeFör att använda din egen navigeringsmarkering istället, skapa en fil med namnet "navigation.hbs" och placera den i din partials-katalog.
Läs mer i dokumenten.
Paginationsmall
Möjligheten att skapa en anpassad mall för
paginering
hjälpar är inte egentligen nya, men det är något vi inte täckte tidigare i serien och är sålunda värt att nämna här. Standardenpaginering
kod i Ghost är:Åsidosätta den här koden med din egen genom att skapa en mall som heter "pagination.hbs" i ditt temas "partials" -mapp.
Mer här i dokumenten.
Extra egenskaper
Förutom nya sammanhang, mallar och hjälpare har Ghost också några fler saker till blandningen.
Utvalda inlägg
Om du vill markera ett specifikt inlägg som "Utvalda" finns det nu två sätt i admingränssnittet.
Från administratörsutrymmet som listar alla dina inlägg klickar du på den lilla stjärnan i det övre vänstra högra hörnet av fönstret för förhandsgranskning.
Från insidan av postredigeraren klickar du på den lilla kugghjulsikonen längst ned till höger på skärmen och markerar sedan rutan märkt Funktion detta inlägg.
I ditt tema, om du vill använda olika markeringar för utvalda inlägg, kontrollera om ett inlägg presenteras med
#if featured
#foreach inlägg #if featured annan / if / foreachUtvalda inlägg bär också klassen
skiss
så att du kan rikta dem till olika styling i din CSS. För att denna klass ska matas ut, inkluderaPost_class
hjälpen på dina inlägg.Till exempel i UberThemes "index.hbs", "post.hbs" och "page.hbs" -filer ändras den här raden:
... till:
Som standard är inlägg inte placerade över andra inlägg, de är i deras vanliga position baserat på när de publicerades. Men om du vill ha presenterade inlägg visas först måste du ha två inläggsslingor: en för utvalda inlägg och en för vanliga inlägg.
#for featured #if featured ! - Visa presenterade inlägg här - if / foreach #foreach inlägg #unless featured ! - Visa vanliga inlägg här - / unless / foreachAlla sjunger nu: Läs mer i dokumenten.
Anpassade Favicons
För att ställa in ett anpassat favicon, placera din "favicon.ico" -fil i mappen "tillgångar" och ladda den i
avsnitt av ditt tema med
asset "/favicon.ico"Läs mer på Wikipedia (skojar, prova Ghost docs).
Avslutar
Det är en hel del ny kraft som läggs till i Ghost Theme Development, med en uppsjö av nya möjligheter till kreativ temat utveckling!
För att sammanfatta har vi:
- "Package.json" -filen och
tillgång
hjälparanvändning krävs nu- Navigation läggs till, med möjlighet att anpassa sin HTML-utmatning
- Utvalda bilder tillagda
- Nya hjälpare att tillåta många fler alternativ i markup
- Statiska sidor och anpassade mallar för dem
- Tag sidor och anpassade mallar till dem
- Författarsidor och anpassade mallar för dem
- Startsidans mall
- Anpassad felmall
- Utvalda inlägg
- Anpassningsbara favicons
Även med allt vi har täckt här finns det fortfarande fler nya hjälpare och funktioner tillgängliga i Ghost, liksom mer detaljer på alla ovanstående, så var noga med att ha en bra läsning på themes.ghost.org för att få alla insatserna och outs.
Bifogad till den här handledningen hittar du en källfilhämtning där du kan få det uppdaterade temat, liksom den redigerade "layout.less" -filen. Använd UberTheme som din testa lekplats för att bekanta dig med allt nytt i Ghost, sedan komma dit och göra några fantastiska teman!
Envato Market
Glöm inte att kolla Ghost-kategorin på Envato Market!