code: function FooterView(vm, app, key, opts) {
  	function filtItem(name) {
  		var upper = name[0].toUpperCase() + name.slice(1);
  
  		return el("li", [
  			el("a", {class: opts.filter == name ? "selected" : null, href: "#/"+name}, upper),
  		]);
  	}
  
  	return () => {
  		var notDone = app.items.filter(item => !item.done).length;
  
  		return el("footer#footer", [
  			el("span#todo-count", [
  				el("strong", notDone),
  				" item" + (notDone == 1 ? "" : "s") + " left"
  			]),
  			el("ul#filters", ["all","active","completed"].map(
  				filtItem
  			)),
  			app.items.length > notDone && el("button#clear-completed", {onclick: app.clearDone}, "Clear completed")
  		])
  	}
  }
docs: TODO: set filters directly, rather than relying on routes