Wie man die Herbie CMS Webseite und das Blog erstellen kann

Hallo liebe Leser! Ich habe wirklich gedacht, dass das Herbie Flat File CMS noch einfacher als GRAV CMS ist, doch dem ist es leider nicht so und man muss beim Herbie CMS HTML und PHP können. In diesem Falle hat man die freie Hand, eigene Herbie Webseite nach Lust und Laune zu erstellen.

Einiges versteh ich schon oder wie man Herbie Plugins installieren kann. Aber wie man ein Blog erstellen kann, darüber finde ich in der Dokumentation hier im Blog noch nichts. Man muss im Verzeichnis /site/pages eine Datei namens 3-blog.md erstellen und sie hat diesen Inhalt.

---
title: Blog
layout: blog.html
nocache: 1
---

{# See layouts/blog.html #}

Dann braucht man eine Layout-Datei und diese heisst in meinem Falle blog.html. Diese Datei wird aber nicht Haus aus an Bord sein und ich habe hier auf der Herbie Webseite ähnlich wie auf der offiziellen Webseite. So kann ich schon mal besser einiges nachvollziehen und es mir dauerhaft ansehen. Daher hoffe ich, dass ich diese Dokumentation hier auf der Webseite behalten darf und so könnt ihr euch direkt hier im Blog gerne informieren.

Also so ist der Inhalt der Datei blog.html.

{% extends "main.html" %}

{% block content %}

<div class="content-container">
<div class="container">
    <div class="pure-g">
        <div class="pure-u-1 pure-u-md-2-3">
            <nav class="breadcrumb">
                {{ menu_breadcrumb({homeurl:'', homelabel: '<i class="fa fa-home"></i>', delim: ' / '}) }}
            </nav>
            <div class="content">

                {% if page is post %}

                    {{ githublink() }}

                    <h1> {{ page.title }}</h1>
                    <div class="blog-meta">
                        {{ page.date|strftime("%e. %B %Y") }}
                        {{ include('@widget/blog/links.html', {page: page}) }}
                    </div>
                    {{ content(0) }}

                    {{ disqus('herbiecmsdeblog') }}

                {% else %}

                    {% set items = site.posts.filterItems %}
                    {% set filteredBy = site.posts.filteredBy %}

                    {% if filteredBy %}
                        <div class="posts-filteredby">
                            <span>{{ filteredBy.label }} <strong>{{ filteredBy.value }}</strong>.</span>
                        </div>
                    {% else %}
                        {{ githublink() }}
                    {% endif %}

                    <div class="posts">
                    {% for item in items %}
                        <section class="post">
                            <header class="post-header">
                                <h2 class="post-title">{{ link(item.route, item.title) }}</h2>
                            </header>
                            <div class="blog-meta">
                                {{ item.date|strftime("%e. %B %Y") }}
                            </div>
                            {% if item.image %}
                                <div class="post-image">
                                    <a href="{{ url(item.route) }}"><img class="pure-img" src="{{ item.image|imagine('t560x260') }}" alt="" /></a>
                                </div>
                            {% endif %}
                            <div class="post-description">
                                <p>{{ item.excerpt }}</p>
                            </div>
                        </section>
                    {% else %}
                        <section class="post">
                            <header class="post-header">
                                <h2 class="post-title">Blog</h2>
                            </header>
                            <div class="post-description">
                                <p>Es sind noch keine Blogposts erfasst.</p>
                            </div>
                        </section>
                    {% endfor %}
                    </div>

                {% endif %}

            </div>
        </div>
        <div class="pure-u-1 pure-u-md-1-3">
            <div class="sidebar">
                {{ include('includes/simplesearch.html') }}
                {{ include('@widget/blog/recent_posts.html', {title: 'Letzte Artikel', showDate:false}) }}
                {{ include('@widget/blog/categories.html', {title: 'Kategorien', showCount:true}) }}
                {{ include('@widget/blog/tags.html', {title: 'Tags', showCount:true}) }}
                {{ include('@widget/blog/archives.html', {title: 'Archiv', showCount:true}) }}
            </div>
        </div>
    </div>
</div>
</div>
{% endblock %}

Hoffentlich wird dieser PHP Code im Frontend richtig dargestellt, was ich hiernach mal sichten kann. Also wenn ihr ein Herbie Blog braucht, hat diese Datei blog.html im Verzeichnis /site/layouts/default so auszusehen. Dabei werden die Widgtes mit abgedeckt und wahrscheinlich muss man noch die Widgets einfügen. Nun weiss ich nicht an welcher Stelle und in welchen Dateien.

Ich weiss auch nicht, was alles von Haus aus installiert wird, wenn man dieses Herbie CMS von GitHub herunterlädt oder mit dem Composer installiert.

Ich habe nämlich das Projekt mit dem Composer installiert, doch dann war es im Frontend unter /start-website/web und ich wollte es unter /cms/herbie/web haben, so habe ich es innerhalb des FTP-Accounts gerne verschoben. Zumindest kann man sich dann die Blog-URL schneller merken oder..

Offizielle Blog-Installations-Anleitung fehlt leider und man muss hierbei wirklich PHP und HTML drauf haben. Vorher kann man schon mal die Webseite installieren und alles erkunden. Ins Backend geht es unter /adminpanel und ihr müsst in der Datei /site/config/main.yml diesen Inhalte haben:

cache:
    page:
        enable: false
    data:
        enable: false

display_load_time: true
theme: default
nice_urls: true
twig:
    debug: true
plugins:
    #path: /web/www/getherbie/plugins/
    enable:
        - adminpanel
        - random
        - simplecontact
        - xmlsitemap
        - feed
        - simplesearch
        - lipsum
        - test
        - googlemaps
        - disqus
        - highlightjs
        - imagine
        - grid
        - video
        - redirect
        - smartypants
        - menu
        - mathjax
    config:
        simplesearch:
            use_page_cache: true
        disqus:
            twig: true
        highlightjs:
            style: zenburn
        adminpanel:
            password: "md5codiert" und ohne Anführungszeichen

Dann muss man dieses MD5codierte Passwort auch in der Datei adminpanel.yml eingeben. Dort ist es zuoberst, wenn ihr das wissen wollt. Das alles muss stehen, bevor man sich unter /adminpanel mit dem Passwort einloggen kann.

Also nun hoffe ich, dass ich schon etwas verraten habe, wie man was machen kann und ich muss noch selbst einschlägige Erfahrungen mit dem Flat File CMS namens Herbie sammeln.

by Alexander Liebrecht

comments powered by Disqus