Basic,
\
redcarpet content.md | # 1. Parse markdown
mustache - data.yaml.mustache | # 2. Save as unescaped HTML in proxy template
mustache - layout.mustache | # 3. Fill in page layout
tidy # 4. Fix indentation
With custom code highlighting,
cat settings.yaml data.yaml | ruby builder.rb - content.md layout.mustache