Featuring posts on your Ghost homepage

After waking up really early today I wanted give my Ghost blog homepage an overhaul. Because I don’t have a simple solution to exclude posts based on a specific tag, I wanted to give non-WOD posts more room at the top of the page.

Fortunately with Ghost 0.4 you can feature a post and your theme can check for those featured post. My theme kopis-ghost-theme now includes code like this:


    {{! Display featured posts at the top }}
    {{#foreach posts}}
    {{#if featured}}
    <article class="{{post_class}} .featured">
        <header class="post-header">
            <span class="post-meta"><time datetime="{{date format='YYYY-MM-DD'}}">{{date format="DD MMM YYYY"}}</time> {{#if tags}}on {{tags}}{{/if}}</span>
            <h2 class="post-title"><img src="/assets/images/emoji/star.png" class="featured" title="featured post" alt="featured post" /><a href="{{url}}">{{{title}}}</a></h2>
        </header>
        <section class="post-social">
            <a href="{{url}}#disqus_thread">0 Antworten</a>
            <g:plusone href="{{url}}" size="small">
        </section>
        <section class="post-excerpt">
            <p>{{excerpt}}&hellip; <a href="{{url}}">weiterlesen</a></p>
        </section>
    </article>
    {{/if}}
    {{/foreach}}

    {{! Display regular posts }}
    {{#foreach posts}}
    {{#unless featured}}
    <article class="{{post_class}}">
        <header class="post-header">
            <span class="post-meta"><time datetime="{{date format='YYYY-MM-DD'}}">{{date format="DD MMM YYYY"}}</time> {{#if tags}}on {{tags}}{{/if}}</span>
            <h2 class="post-title"><a href="{{url}}">{{{title}}}</a></h2>
        </header>
        <section class="post-social">
            <a href="{{url}}#disqus_thread">0 Antworten</a>
            <g:plusone href="{{url}}" size="small">
        </section>
        <section class="post-excerpt">
            <p>{{excerpt}}&hellip; <a href="{{url}}">weiterlesen</a></p>
        </section>
    </article>
    {{/unless}}
    {{/foreach}}

With {#if featured}...{/if} you can check if the post is a featured post inside your foreach posts loop. You can then modify the CSS class, for example.

Unfortunately I have to loop over the posts twice: first to write out all featured posts, then to write out all regular posts. Done that way, the featured post will appear at the top of the page. There is no easy way – yet – to reorder the posts on a given page before going into the foreach posts loop. :unamused: If you’re good with CSS you can maybe reorder the posts on the client-side, but I’d much prefer to keep those things on my server before rendering the page.

Do you use a custom theme on your Ghost installation? Or do you keep the default casper installation?

Exclude posts from your Ghost frontpage

Today I tried to exclude posts tagged wod from my frontpage. The blogging software Ghost that I am using to run this blog recently released v0.4.2 which supports the new #has helper.

Unfortunately the new helper is not documented, so after reading some of the discussions on the pull requests and the issues I just tried to code the necessary part in my index.hbs file:


    {{! Don't output posts tagged 'wod' on frontpage }}
    {{#has tag="wod"}}
    {{else}}
      <OUTPUT POST AS USUAL>
    {{/has}}

Now all posts tagged wod were excluded from the listing on my frontpage. But when I clicked through the pagination, I noticed that instead of having 5 posts on all pages I got varying number of posts – the helper excluded the posts, but the pagination is not aware of this change in the list of posts to display.

Maybe I didn’t get the #has helper right, or maybe there is a better method to exclude posts before they hit the frontpage at all.

Do you exclude posts from your frontpage using Ghost? If so, I’d be more than happy if you leave a comment.

Mechanisches Keyboard von WASD

Ich bin großer Fan des MS ergonomic desktops, aber nach knapp 4 Jahren geben ein paar häufig genutzte Tasten wie die Leertaste oder die linke Shift/STRG langsam den Geist auf, die Beschriftung einiger Tasten wird schwächer… und beim Tippen knarrt die ganze Tastatur, als würde ich auf einer dünnen Plastikschachtel herumdrücken. :unamused:

Am 31.03. hab ich mir dann bei wasd keyboards eine mechanische Tastatur mit Cherry MX Brown Switches und 40A-R Blue O-Rings bestellt. Bei den Dämpfungsringen bin ich mir unsicher, die braunen Switches scheinen aber genau die richtigen zu sein: fühlbarer Anschlag, kein lautes Extra-Klicken bei Betätigung des Schalters. Das Keyboard ist um eine Metallplatte montiert, damit keine Verformung während der Nutzung auftritt – wer schonmal auf einer billigen Plastiktastatur getippt hat, der kann das nachvollziehen..

WASD bietet den netten Service, dass man sich sowohl Beschriftung als auch Farben selbst zusammenstellen kann. Ich habe die deutsche Standardbeschriftung gewählt und folgendes Farblayout:

Layout for my WASDKeyboard

Leider habe ich vergessen, eine Auswahl der anderen Switches und Dämpfungsringe mitzubestellen. Ich wollte eigentlich den Sound und den Anschlag der Switches einmal durchprobieren, falls ich noch etwas passenderes für mich finde. Das mechanische Keyboard hat ja auch den Vorteil, dass ich die Switches oder die Dämpfer später noch wechseln könnte. Bei WASD kann man alle Einzelteile nachbestellen, so dass ich z.B. das Farblayout wechseln könnte, wenn ich mich an meinem minimalen Layout sattgesehen habe.

Ich wollte unbedingt eine Tastatur ohne Ziffernblock, da ich die Extratasten so gut wie nie benutze und der Weg zur Maus damit nur weiter vergrößert wird als ohnehin schon.

Der Versand wird wohl etwas dauern, da die Tastatur aus den USA kommt. Ich habe wieder den Dienst Borderlinx genutzt, damit die den Zoll für mich abwickeln. Das Keyboard wird jetzt an eine US-Adresse in Ohio verschickt und trudelt dann hinterher direkt bei mir ein. Hat früher schon gut geklappt, ich bin gespannt, wie das diesmal abläuft.

Update Cool, das Keyboard ist schon da. Ich hatte mit einer längeren Lieferzeit gerechnet, der Weg von den USA nach Deutschland hat nur halb so lange gedauert wie der Weg in den USA selbst.

WASD Keyboard
WASD Keyboard - Verpackung
WASD Keyboard - Ausgepackt