MarkdownMaster CMS is a flat-file framework designed to render HTML content from simple markdown files and HTML templates capable of running entirely client-side, (though for best results, should be paired with the server-side component).
The idea of this is similar to Jekyll, but has the benefit of not requiring any pre-compiling for files to be served. All content processing is handled within the browser.
For SEO and bot support, there is a small PHP-based server-side component which will return generated HTML output, similar to that of the client-side application. This is unnecessary for normal users, but is required to ensure that crawlers can access the site data.
Because there is no database, registry, or administration of pages, deploying new pages is as simple as just uploading Markdown files to your server. This can be done via automated sync applications such as NextCloud or just uploading via SFTP or your web hosting interface. No building or scripts needed for deployment!
The client-side javascript rendering in this project is originally based from Chris Diana's CMS.js.
First-party professional support for this code, along with server hosting and technology consultation is available from Ohio-local eVAL Agency.
Aside from business support, you can also help support this project by donating to me directly.
- Zero dependencies
- Abstract content types
- Custom templates
- Search, filtering, tagging and sorting
- Apache
, Nginx, Mail-in-a-box, and Nextcloud support(todo) - Small footprint
- Remarkable embedded
- Crawler and SEO support for most content
- Automatic sitemap.xml generation
Check out a live working site!
- Setup Apache or any web environment with PHP 8.2.
- Download the full latest release which includes themes and example content. (Alternatively the app package just contains the app, backend, and plugins.)
- Upload and extract the tarball to your web root.
- Copy / rename
config.example.php
toconfig.php
and configure to your liking.- Notably
host
andtheme
are important.
- Notably
- Copy / rename
.htaccess.example
to.htaccess
and configure if necessary.- Default setup for top-level directory, require SSL, and no
www.
prefix.
- Default setup for top-level directory, require SSL, and no
- Edit theme markup in themes/(themename)/index.html, CSS, and markdown content.
Documentation is available on the official MarkdownMaster CMS website, compiled from docs/ and other various sources within this project.
Javascript API documentation is also available for interfacing with low-level functions within this framework.
MarkdownMaster CMS pulls the listing of files from either the server's automatic directory index or from the server-side helper application (for faster loading and better bot/crawler support). This provides meta information of all pages in the application.
When browsing to a file, the source markdown is downloaded from the server and rendered into HTML with Remarkable, (by default; this can be swapped out if necessary).
For bots anw crawlers, the server-side component is capable of generating HTML from the same markdown files. Not all features are supported in this rendering, but is sufficient for SEO and indexing purposes.
- Chris Diana maintainer of original version of CMS.js