git.s-ol.nu mmm / ba-wip
ba-wip

Tree @ba-wip (Download .tar.gz)

mmm

mmm is not the www, because it runs on MoonScript.

live version at mmm.s-ol.nu.

What?

This repo is roughly split into three parts:

  • mmm.dom, mmm.component: polymorphic Lua/Moonscript modules for web development.
    [code: mmm - docs]
  • mmmfs: the CMS/FS powering mmm.s-ol.nu.
    [code: mmm/mmmfs - article]
  • the page contents: includes my portfolio, blog, experiments...
    authored using a mix of Moonscript, Markdown and HTML, thanks to the power of mmmfs.
    [data: root, but you might want to read a bit about mmmfs before you jump in.]

Building & Viewing

mmm is built using tup.
You can build the static content with:

$ tup init
$ tup

Next you can render a sqlite3 mmmfs database using

$ moon build/render_all.moon db.sqlite3

Then, run some kind of HTTP server from within out, e.g. with python 3 installed:

$ cd root
$ python -m http.server

You can then view the website in your browser. The example above will provide it at http://localhost:8000.

During development you may want to automatically rebuild the project as files are changed. You can do this with the following command:

$ tup monitor -f -a

Dependencies

Required dependencies:

For unit tests:

  • busted: luarocks install busted

Not required but recommended:

  • lua-sqlite3: luarocks install sqlite3 (for SQLite3 backend)
  • lua-cjson: luarocks install lua-cjson 2.1.0-1 (for server-side JSON support)
  • discount: luarocks install discount (requires libmarkdown2, for Markdown support)

Live Reloading (during development)

entr is useful for reloading the dev server when code outside the root changes:

$ ls build/**.moon mmm/**.moon | entr -r moon build/server.moon fs