Pour ceux qui utiliserait le code mis dans les exemples, sachez qu'à partir de la version 0.10, le contenu du fichier lists/all.js qui s'écrivait :

function(head, row, req, info) {
  // !json templates.all
  // !code vendor/couchapp/path.js
  // !code vendor/couchapp/template.js
 
  return respondWith(req, {
    html : function() {
      if (head) {
        return template(templates.all.head, {
          assets : assetPath(),
        });
      } else if (row) {
        return template(templates.all.row, {
          fav: row.value,
        });
      } else {
        return template(templates.all.tail, {
            assets : assetPath(),
        });
      }
    },
  })
};

s'écrit désormais :

function(head, req) {
  // !json templates.all
  // !code vendor/couchapp/path.js
  // !code vendor/couchapp/date.js
  // !code vendor/couchapp/template.js
  // !json myfav
 
  provides("html", function() {
      
      send(template(templates.all.head, {
          assets : assetPath(),
          title : myfav.title,
       }));
      
      var row, key;
      while (row = getRow()) {
        key = row.key;
        var fav = row.value;
        send(template(templates.all.row, {
            url: fav.url,
            title: fav.title,
            description: fav.description,                      
        }));
      }
      
      return template(templates.all.tail, {
            assets : assetPath(),
      });
  });
};

et bien sur templates/all/row.html devient :

<dt><a href="<%= url %>"><%= title %></a></dt>
<dd><%= description %></dd>

Au passage, il m'a fallu récupérer la nouvelle version de vendor/couchapp/path.js.

Pour ceux que ça intéresse, le code est disponible ici : http://bitbucket.org/nsteinmetz/mycouchfav/.

Pour ceux qui veulent voir le rendu :

Voilà, c'était histoire de me remotiver dans cette prise en main de CouchDB/CouchApp - peut-être que la prochaine fois, on verra un formulaire de soumission de favoris... ;-)