Herbie is a simple Flat-File CMS- und Blogsystem based on human readable text files

Overview

Packagist GitHub (pre-)release License PHP from Packagist

🚗 Herbie

Herbie is a simple Flat-File CMS- und Blogsystem based on human readable text files.

About Herbie

With Herbie you are able to create a fully functional website or blog in a short amount of time and with little effort.

Herbie is based on proven libraries and concepts:

Herbie supports the following PHP Standards Recommendations:

  • PSR-2 Coding Style Guide
  • PSR-3 Logger Interface
  • PSR-4 Autoloading Standard
  • PSR-7 HTTP Message Interface
  • PSR-11 Container Interface
  • PSR-15 HTTP Handlers
  • PSR-16 Simple Cache
  • PSR-17 HTTP Factories

Install

The easiest way to install Herbie is via Composer. To do this, execute the following statement in your terminal:

$ composer create-project getherbie/start-website:dev-master myproject

Composer creates your website in the myproject folder and installs all dependent libraries.

Go to the web directory and start PHPs built-in web server.

$ cd myproject/web
$ php -S localhost:8888 index.php

Now, open http://localhost:8888 in your browser. You should then see your first Herbie website.

More Information

More information see https://herbie.tebe.ch.

Comments
  • Bugfix: blogs always get rendered at the beginning of the segment

    Bugfix: blogs always get rendered at the beginning of the segment

    Hi Thomas, lass Dich nicht von mir nerven, ich bastel gerade fieberhaft an einem neuen Projekt und da fällt mir halt ab und zu was auf. Wenn die blocke nicht in einer Variablen gespeichert sondern direkt über den Ausgabepuffer ausgegeben werden, ordnen die sich immer an erster Stelle im Segment an.

    Warum auch immer...

    Ansonsten macht mir die neue Version echt viel Spass!

    Viele Grüße, Andreas

    opened by Netzweberei 7
  • Enable self-contained blocks aka widgets

    Enable self-contained blocks aka widgets

    Hi Thomas, was hältst Du von dieser Änderung? Damit könnte man Blocks einzeln einbinden und ihnen ein eigenes Template mitgeben. Mein Anwendungsfall wäre: Der Kunde, der seine Seite nicht übers Web, sondern nur über seinen ownCloud- o. Dropbox-Ordner editiert, bekommt eine Mail mit dem neuen Block (zB Slider, Formular etc) als zip-Datei und baut ihn einfach per drag&drop in seine Seite ein.

    Viele Grüße Andreas

    opened by Netzweberei 4
  • Update Assets-constructor

    Update Assets-constructor

    local assetsUrl should begin with single slash, if document-root points directly into web-dir

    Hi Thomas, dies sollte die Fehlermeldung von antondachauer beseitigen, aber vielleicht gehts auch eleganter. Viele Grüße, Andreas

    P.S. Mein Herbie-Fork hat einige Änderungen, die eigentlich nur in meiner Installation Sinn machen und normale Installationen abschiessen würden. Du müsstest also punktuell nur diesen pull-request mergen!

    opened by Netzweberei 4
  • Pfad zu CSS-File wird nicht korrekt ausgeliefert

    Pfad zu CSS-File wird nicht korrekt ausgeliefert

    Hallo,

    ich habe gerade wie in der Anleitung herbie installiert. Alles läuft, bis auf eine kleine, wichtige Kleinigkeit: Für das CSS-File in "site/assets/default/css/styles.css" wird folgender HTML-Code zum Einbinden generiert: ""

    Das sorgt dafür, dass der Browser (zumindest bei mir) die Datei nicht findet.

    Danke Anton

    opened by ghost 4
  • 3 Fragen zum Herbie Flat File CMS

    3 Fragen zum Herbie Flat File CMS

    Hallo Entwickler,

    eine ganze Weile war ich im eigenen Herbie Blog nicht mehr und erst heute alles wieder uptodate gebracht. Ich sehe, dass hier auf Github in den Rahmen eher weniger los ist oder wie schaut es bei euch mit der aktuellen Weiterentwicklung des Herbie CMS aus?

    Gerne würde ich neue Plugins ausprobieren und mir eine Technik in Herbie aneignen. Das Admin Panel ist noch nicht optimal, sodass ich mit dem externen Markdown Pad Editor bloggen muss.

    Frage II:

    Die Favicon-Integration funktioniert irgendwie bei mir nicht.

    Ich habe alle Favicons mit verschiedenen Formaten nach Verzeichnis /web hochgeladen, weil es bei mir zugleich Root ist. Und den HMTL-Code für die Scripte habe ich in der main.html untergebracht, wo ich etwas mit <head>....</head> gesehen habe. So setze ich es in der Regel um.

    Frage III:

    Wie kann ich das Github Symbol rechts neben meinen Blogposts entfernen, denn es leitet falsch weiter und meine Webseite ist nicht in Github zu bearbeiten.

    Dann hoffe ich auf eure Antworten und Danke für dieses geniale Flat File CMS 👍

    opened by ghost 3
  • Hotfix/wrong url generated if empty

    Hotfix/wrong url generated if empty

    Hi Thomas,

    der letzte PR für heute :-) Bei mir am Mac/MAMP bekomme ich immer wieder "leere" Links, zB im adminpanel bei Klick auf "Frontend".

    Viele Grüße Andreas

    opened by Netzweberei 3
  • "blocks" löschen/überschreiben die Inhalts-Segmente der Eltern-Seite

    Hi Thomas, sobald man Unterseiten mit Hilfe des blocke-shortcodes anzeigen lässt, gehen in der Folge alle bereits geladenen Segmente der Eltern-Seite verloren. Es bleiben nur noch die Segmente des letzten gefundenen Blocks erhalten.

    Nach dem Aufruf in herbei/plugins/twig/classes/Twig.php#148:

    $segment->string = Hook::trigger(Hook::FILTER, 'renderContent', $segment->string, $page->getData());

    ist alles weg :-( Ich sitze jetzt schon eine ganze Weile drüber, kann aber die Ursache nicht finden.

    Viele Grüße, Andreas

    opened by Netzweberei 3
  • ParsedownExtra.php

    ParsedownExtra.php

    Hallo,

    wir betreiben seit einigen Jahren mit Herbie eine Website auf Uberspace.de.

    Nachdem "kürzlich aus Sicherheitsgründen eine veraltete PHP-Version aus allen uberspaces entfernt" wurde, liefert die Seite nur noch einen 500 Internal Server Error. Laut Uberspace "kann es gut sein, dass [das CMS] jetzt auf veraltete Funktionen zugreifen will und das eben den Fehler verursacht".

    Das Apache Errorlog sagt: PHP message: PHP Notice: Trying to access array offset on value of type null in /var/www/virtual/xxx/xxx/vendor/getherbie/herbie/src/plugins/markdown/vendor/ParsedownExtra.php on line 241

    Das PHP Errorlog sagt: "[20-Jun-2022 21:48:40] WARNING: [pool www] child 6936 said into stderr: "NOTICE: PHP message: PHP Notice: Trying to access array offset on value of type null in /var/www/virtual/xxx/xxxx/vendor/getherbie/herbie/src/plugins/markdown/vendor/ParsedownExtra.php on line 241"

    Die /vendor/getherbie/herbie/composer.json sagt: "require": { "php": ">=5.6.0", "symfony/yaml": "2.7.*" },

    Derzeit sind PHP 7.4, 8.0 und 8.1 auf dem Server verfügbar, PHP 7.4 ist standardmäßig installiert - sollte also passen.

    Was kann ich tun, um die Installation wieder zum Laufen zu bringen?

    Danke im voraus! Ursula

    PS: Übrigens ganz großes Lob für dieses geniale, kleine CMS!

    bug 
    opened by kissmedve 2
  • Wie kann ich Herbie CMS upgraden

    Wie kann ich Herbie CMS upgraden

    Hallo Entwickler,

    ich würde gerne Herbie upgraden, sehe aber in den Codes, dass sich etwas verändert hat. Ich habe noch die Version 1.0 und nun steht mir ein Upgrade bevor.

    Mit Composer Update klappt es nicht, weil wohl mein Herbie System irgendwelche Voraussetzungen nicht erfüllen kann.

    Wie kann ich es nun anstellen?

    Danke im Vorfeld, Alexander

    opened by ghost 2
  • adminpanel not working

    adminpanel not working

    did : composer require getherbie/plugin-adminpanel

    did: plugins: enable:

    • adminpanel

    did: plugins: config: adminpanel: show_raw_data: true password: "md5encoded" layouts: default.html: ...

    debian 8, nginx 1.8.0

    opened by smpcasgit 2
  • Autor-Verlinkung in Blogpost mit Leerzeichen statt

    Autor-Verlinkung in Blogpost mit Leerzeichen statt "-"

    Hallo, habe noch ein Problem festgestellt. Wenn ich als Autor einen Namen mit Leerzeichen wie zb. "Hans Peter" eingebe, wird die URL zur Autorenseite mit Leerzeichen statt "-" generiert (also "blog/author/hans peter", müsste aber "blog/author/hans-peter", damit die angelegte Seite gefunden und angezeigt wird.

    opened by ghost 2
  • 2.x Roadmap/Todos

    2.x Roadmap/Todos

    Todo list for the upcoming 2.x release.

    Nice-to-have

    • [x] Implement PSR-14 Event Dispatcher https://www.php-fig.org/psr/psr-14/
    • [x] Add aliases to system info twig function
    • [x] Rename example folder to website
    • [x] Rename src folder to system
    • [x] Rename sysplugins folder to plugins
    • [x] LowerCamelCase member vars in Page class. This is already done, since all of this is possible: page.content_type, page.contentType, page.getContentType()
    • [x] Consistent naming for methods (applications instead of app, eventFilters for events, etc.)
    • [x] Integrate GitHub atom feed into the homepage of the website
    • [ ] Implement a better (and simpler) page tree class
    • [x] Implement a query builder class for filtering, sorting und limiting of iterable data structures
    • [x] Add readme to all system plugins (https://github.com/getherbie/herbie/tree/2.x/plugins)

    Suggestions

    • [x] Group twig filters, functions and tests logically to make it more clear for the user (i.e. nav_sitemap, nav_breadcrumb, etc.)
    • [x] Replace InterceptingFilters with PSR14- EventListeners, because the latter are strongly typed
    • [x] Remove PageItem and use Page only. Lazy load content and segments.
    • [x] Replace access via magic getters with real getters (we have it already), since the latter is faster and more explicit.
    • [x] Add timestamp to css and js assets to force browsers to refresh cached css and js files
    • [ ] Reformat whole code base within Phpstrom according PSR-12 definitions
    • [x] Add support for PHP 8.2
    • [x] Drop support for PHP 7.4 (end-of-life)
    • ~~camelCase all page properties~~ Reason: recommended coding convention for twig is snake_case
    • ~~camelCase all twig filter, functions and globals including attributes~~ Reason: recommended coding convention for twig is snake_case

    Issues

    • [x] Add parent IDs to page and pageItem
    • [x] Add parent route to page and pageItem
    • [x] Plugin simplecontact: Success page after sending form doesn't work (index.php/contact:success), make it 2.x compatible, update readme.md
    • [x] Plugin simplesearch: Make it 2.x compatible, update readme.md
    • [x] Slightly refactor Event Handler and send any class to listener
    • [ ] CSS and JS asset Twig functions doesn't work over inherited Twig templates
    • [x] Consistent handling for Twig globals as for filters, functions, and tests
    • [ ] Consistent handling for console commands as for the other extensions methods
    • [ ] Whitelist classes to be injected into plugin
    • [ ] Consider all http methods for route middlewares (not only GET)
    • [x] Move twig "body_class" function from "twig plus" to "twig core" plugin and rename it to "css_classes"
    • [x] Move twig "snippet" function from "twig_plus" to "twig_core" plugin
    • [x] Move twig "page_title" function from "twig_plus" to "twig_core" plugin
    • [x] Group menu twig functions to make it more clear for the user (i.e. menu_sitemap, menu_breadcrumb, etc.)
    • [x] Rename twig "filter" filter due to a naming conflict with twig's own "filter" filter
    • [x] Remove twig filters, functions and tests from "twig_plus" plugin that are not generic like pages_filtered() or pages_recent()

    Not necessary

    • [x] ~~Update ServerRequest in Container with current Request including needed arguments like route, routeParams or page~~ Route with params can be retrieved by UrlManager

    Won't fix or unsolvable

    • robots.txt doesn't work with internal PHP server (example link http://localhost:9999/robots.txt). Reason: Seems to be an issue with the PHP web server itself.
    • sitemap.xml doesn't work with internal php server (example link http://localhost:9999/sitemap.xml). Reason: Seems to be an issue with the PHP web server itself.
    • Prefix all twig filters, functions and tests with herbie_, h_ or similar (to prevent naming conflicts and better distinguish twig-owned filters, functions and tests). Reason: Makes filters, function or tests too clumsy.
    • Evaluate and include illuminate collections in twig templates. Reason: Collections are indeed very useful, but in Twig not as practical as thought.
    2.x 
    opened by tbreuss 1
Releases(v1.1.0)
Owner
HERBIE
Create Your Website With Simple Flat Files
HERBIE
Pico is a stupidly simple, blazing fast, flat file CMS.

Pico is a stupidly simple, blazing fast, flat file CMS.

null 3.6k Jan 5, 2023
Pico is a stupidly simple, blazing fast, flat file CMS.

Pico is a stupidly simple, blazing fast, flat file CMS.

null 15 Jul 30, 2022
Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS

Grav Grav is a Fast, Simple, and Flexible, file-based Web-platform. There is Zero installation required. Just extract the ZIP archive, and you are alr

Grav 13.6k Jan 4, 2023
True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

null 4 Oct 28, 2022
FlatPress is a lightweight, easy-to-set-up flat-file blogging engine.

[flatpress.org] [Support forum] [Wiki] [GitHub] [Mastodon] [Twitter] [Changelog] [Contributors] Welcome to FlatPress! FlatPress is a lightweight, easy

FlatPress 143 Dec 22, 2022
HTMLy is an open source Databaseless Blogging Platform or Flat-File Blog prioritizes simplicity and speed written in PHP

HTMLy is an open source Databaseless Blogging Platform or Flat-File Blog prioritizes simplicity and speed written in PHP. HTMLy can be referred to as Flat-File CMS either since it will also manage your content.

Dan 858 Jan 6, 2023
Mecha is a flat-file content management system for minimalists.

Mecha CMS Mecha is a flat-file content management system for minimalists. Front-End The default layout uses only Serif and Mono fonts. Different opera

Mecha 133 Jan 1, 2023
Feindura - Flat File Content Management System

feindura - Flat File Content Management System Copyright (C) Fabian Vogelsteller [frozeman.de] published under the GNU General Public License version

Fabian Vogelsteller 39 Dec 30, 2022
Statamic 3 - the flat-first, Laravel + Git powered CMS designed for building beautiful, easy to manage websites

Statamic 3 - the flat-first, Laravel + Git powered CMS designed for building beautiful, easy to manage websites

Statamic 600 Jan 4, 2023
Baicloud CMS is a lightweight content management system (CMS) based on PHP and MySQL and running on Linux, windows and other platforms

BaiCloud-cms About BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the

null 5 Aug 15, 2022
Doptor CMS is a Laravel 5 based CMS

Introduction Doptor CMS is a Laravel 5 based CMS. Find out more about Doptor by reading below. ;) About Doptor CMS Doptor is an Integrated and well-de

DOPTOR 4 Sep 11, 2022
Bismuth CMS is a ready-made Website CMS based on Yii 2 Advance Template

Bismuth CMS is a ready-made Website CMS based on Yii 2 Advance Template, it's the simplest and easy to set up CMS you may come across.

Hamadas Telebrain 1 Feb 11, 2022
Edit richt text content in Craft CMS using Article by Imperavi.

Article Editor About the plugin This plugin brings the powerful Article Editor from Imperavi to Craft CMS, allowing you to make create beautiful rich

Creativeorange 6 Mar 30, 2022
Amila Laravel CMS - Free, open-source Simple Bootstrap Laravel CMS

Simple Bootstrap Laravel CMS. Support Laravel 8.x Can integrate into any existing Laravel project. Only add few database tables with prefixes, not affect your existing database tables. Support Laravel 7.x & Laravel 6.x & Laravel 5.x & MySql & PostgreSql - Amila Laravel CMS

Alex Zeng 96 Sep 6, 2022
Simple PHP shop CMS based on Laravel 5.1

LaraShop LaraShop is a simple SHOP CMS based on Laravel framework. Temporarily available at russian language, in planned english. Screenshots Features

ZENLIX 73 Dec 20, 2021
REDAXO, a PHP-based CMS since 2004. Both simple and flexible.

?? Deutsch Content Management since 2004. Both simple and flexible. REDAXO provides you an easy-to-learn website framework. It lets you create content

REDAXO CMS c/o Yakamara Media GmbH & Co. KG 302 Jan 8, 2023
Flextype is an open-source Hybrid Content Management System with the freedom of a headless CMS and with the full functionality of a traditional CMS

Flextype is an open-source Hybrid Content Management System with the freedom of a headless CMS and with the full functionality of a traditional CMS. Building this Content Management System, we focused on simplicity. To achieve this, we implemented a simple but powerful API's.

Flextype 524 Dec 30, 2022
PHPVibe Open source video CMS / Video Sharing CMS / Youtube Api v3 / Video Embeds

PHPVibe Video CMS Free Video Sharing CMS The modern choice of design inspired by Youtube and a social videos sharing module that may just cut it for y

MediaVibe 71 Dec 18, 2022
NukeViet 132 Nov 27, 2022