NB: This project is not developed anymore, only maintained to keep compiling with recent DMD releases. It can be still useful as an example/reference of doing some basic web with D + vibe.d.
PoC blog implementation in D + vibe.d
Based on http://vibed.org
Goals / Features
- stand-alone binary with minimal external dependencies
- simple deployment under dedicated posix user
- straightforward code, minimal to none configurability - fork instead
- basic features include publishing posts, tags and RESTful API for data model
-version=MoodWithPygmentizedoes out of the box code highlighting if
- no database needed, articles can be edited as simple Markdown files
- fork this repository
main.dto use valid paths to SSL certificates
- (optional) tweak Diet templates / CSS / code as you see fit
dub build(optionally enable
MoodWithPygmentizeversion in project file)
- (optional/recommended) modify
nginx.includeto use valid domain name / certificates and include it into your
mood.storage implements in-memory immutable cache for post data. It saves new posts to
the filesystem in a hard-coded layout and reloads them when mood process starts.
mood.api defines data model used by rest of the application. It is exposed via RESTful
API thus allowing any custom client programs to fetch the data from blog. This is the only
part of Mood that has direct access to
mood.rendering contains set of functions that build data representation in requested format
based on supplied arguments. Naturally, HTML page rendering (both live and offline) is the main
mood.util contains various tools that author found missing in vibe.d while writing this project.
mood.config defines some funamental hard-coded configuration options like administrator password
or filesystem paths used. Everything else is configured by simply changing the code.
mood.application is the entry point for all web page routes. It uses
mood.api to get the blog data
mood.rendering to actually build the response.