Site Generator

Static site generator which turns Markdown into HTML.


Primary repository:
Github repository:


The best way to install it is via Composer. Just add nexendrie/site-generator to your dependencies.


Just run ./vendor/bin/generate-site. The script will go through all .md files in your project's root folder (and all its subfolders) and create html pages from them and place them under public folder. Both sources and output folders can be changed:

./vendor/bin/generate-site --source=doc --output=public

Alternative usage

Alternatively, you can write your own script. Example:

require __DIR__ . "/vendor/autoload.php";

$source = "./sources";
$output = "./docs";
$generator = new Nexendrie\SiteGenerator\Generator($source, $output);

Advanced usage

Site generator with every source file also looks for a meta file (file with same name but extension neon). You can set there some additional information for it there, like page's title.

title: My page

It is possible to normalize the meta info and modify the generated page based on some meta info. Just add meta normalizer to Generator via method addMetaNormalizer. The method accepts a callback. The normalizer will receive 3 parameters: meta info (as array), html code (in string) and name of currently processed file (as string).

Additional assets

If your page needs additional assets (CSS stylesheets, JavaScript), just list them in the page's meta file and they will be copied to the output folder and the generated page will include them.

    - style.css
    - script.js

If you mention a local image in your page, the file will be copied to output folder.