return {
	["html"] = {
		value_process = function(source)
			if (type(source) == "string") then
				return source:gsub("\n", "\n<br />")
			else
				return source
			end
		end,
		extension = ".html",
		index = [=[
<!doctype html>
<html>
<head>
<title>Index</title>
</head>
<body>
<ul>
{{!children indexnode}}
</ul>
</body>
</html>
]=],
		indexnode = [=[
<li><a href="{{path}}">{{id}} - {{title}}</a></li>
]=],
		root = [=[
<!doctype html>
<html>
<head>
<title>{{id}}</title>
<style type="text/css">
body {
	font-family: monospace;
	padding: 0;
	margin: 0;

	background-color: black;
	color: white;
}

.child {
	border-top-style: groove;
	border-bottom-style: groove;
	border-width: 2px;
	border-color: gray;

	padding: 4px;
	margin: 0;
}

.def {
	color: #B81F11;
	font-weight: bold;
}

.returns {
	color: #FFE318;
	font-weight: bold;
}

.title {
	color: gray;
}

.desc {
	font-style: italic;
}

.id {
	font-style: italic;
}

.status {
	font-weight: bold;
}

.s-needs-testing:after {
	content: "Needs Testing";
	color: #FFE318;
}

.s-incomplete:after {
	content: "Incomplete";
	color: #B81F11;
}

.s-production:after {
	content: "Production";
	color: #089708;
}
</style>
</head>

<body>
<div id="root">

<div id="properties">
<h1 class="title">{{title}}</h1>
<h2>ID: <span class="id">{{id}}</span></h2>

<br />
{{#version <h3>version $$</h3>|}}
{{#status <h3>Status: <span class="status s-$$"> </span></h3>|}}
<br />

<p class="desc">{{desc}}</p>

<h3>TODO</h3>
<ul class="todos">
{{#todo <li>$$</li>|no todos}}
</ul>
</div>

<div id="children">
{{!children child}}
</div>

</div>
</body>
</html>
]=],
		child = [=[
<div class="child {{type}}" id="{{id}}">
<h2 class="title">{{title}}</h2>
<p><span class="returns">{{returns}}</span> <span class="def">{{root.id}}.{{id}}{{def|()}}</span></p>
<p class="desc">{{desc|No description provided.}}</p>
</div>
]=]
	}
}