Knockout-based templating