Markdown based web site framework.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci
bin
content
demo-content
docs
mdweb
requirements
sites
tests
themes
.dockerignore
.gitattributes
.gitignore
.landscape.yaml
Dockerfile
Dockerfile.test
LICENSE.txt
README.md
VERSIONS.md
prospector.txt
prospector.yml
requirements.txt
wsgi.py

README.md

Markdown based web site framework Code Health CircleCI

Demo

MDWeb is painstakingly designed to be as minimalistic as possible while taking less than 5 minutes to setup and less than a minute to add content.

This project was borne out of my frustration with maintaining websites and adding content. I'm a firm believer in the ethos that CMS is an evil that should be rid from this world. I spent years fighting horrific battles with enemies such as Drupal, Wordpress and Joomla. The things I saw during those dark days can not be unseen.

After years of battle, this weary web developmer built himself a tiny oasis. This is MDWeb, I hope you find respite in it.

You can see a live demo of MDWeb here: http://mdweb.lapinlabs.com/

Requirements

  • Python 2.7 or 3.x
  • Pip
  • Virtualenv (optional, highly recommended)

Forking for your own site

The suggested method for using MDWeb and also tracking any udpates you make for your own site is to fork the MDWeb repository. Any changes you make will be commited to your personally forked repository and you'll be able to pull down upstream changes by following the procedure outlined here How to update a GitHub forked repository?

Quickstart

For more ways to run MDWeb see Setup and Basic Usage.

  1. Fork the Github repository.
  2. Clone your forked repository on your local machine.
  3. Go into the directory
$ cd mdweb
  1. Setup a virtual environment and activate
$ virtualenv env
$ source ./env/bin/activate
  1. Install requirements
$ pip install -r requirements/development.txt
  1. (Optional) Copy sites/MySite.py to sites/<<NameOfYourSite>>.py. Inside the copied file rename the class to match the file name - for example if you call the file JoesSite.py the class should be named JoesSite. If you choose not to copy to a new file continue to the next step using sites/MySite.py.
$ cp sites/MySite.py sites/JoesSite.py
$ nano sites/JoesSite.py
# Edit the class name and config as described above
  1. (Optional) Create a new theme for your site in the themes directory. If you add a new theme remember to update the THEME config value in the next step.
  2. Update the config attributes in the site class, specifically THEME and CONTENT_PATH (I suggest using the provided, empty, content directory). The demo-content directory is provided with example content to get you started. Add your content to the content directory defined.
  3. Run the application. The dev_server script has one required parameter which is the site class name. If you copied the site file in step 6 the site name will be the name you used in that step (JoesSite) otherwise it will be the default site name MySite.
$ ./bin/dev_server JoesSite

Now visit http://127.0.0.1:5000 and you should see your site.

Documentation

  • Setup - How to get MDWeb running locally or in Docker either in development or production environments
  • Basic Usage - How to use MDWeb to host your site
  • Development - How to build themes and plugins for MDWeb
  • Reference - API and core framework reference
  • Contributing - How to report bugs and contribute to the development of MDWeb

License

MIT © Chad Rempp

Credits

Some portions of MDWeb uses other F/OSS content. Below is a sourced list of content used in MDWeb.