Not blocking the PR with this, but just wanted to weigh in:

Seconded.  Separation of presentation and logic is good.  Knockout lets you shoot yourself in the foot by having these hairy long HTML attributes containing javascript code.  Is there a way to make the model have another collapse observable so it's something like 

```"attr: {href: '#' + id}, css: {'collapsed': reallyCollapse}"```