Anonymous avatar Anonymous committed e93519a Merge

Merge

Comments (0)

Files changed (6)

_attachments/benoitc.html

             <h1>Benoît Chesneau</h1>
             <p><a href="/">Mon introspection numérique.</a></p>
         </header>
-        <section class="about">
+        <section id="maincontent" class="about">
             <p><img
         src="http://www.gravatar.com/avatar/f04edc7cb2099745e5413c754d3d22f5?s=200"
         alt="Benoît Chesneau (benoitc)">Je me définis comme un artisan
-        web. J'écris des sites ou services sur le web depuis 1995 en  
-        <a href="http//www.w3c.org">standards</a> et utilise exclusivement des technologies
+        web. J'écris des sites ou services sur le web depuis 1995 en me
+        basant sur des   <a href="http//www.w3c.org">standards</a> et utilise exclusivement des technologies
         opensources. Mes dernières lubies sont le <a
             href="http://www.w3.org/2001/sw/">web sémantique</a> et les
         <a href="http://www.w3.org/2008/09/msnws/"> réseaux sociaux.</a></p>
 
         <p>J'ai 33 ans et j'habite en <a
-            href="http://maps.google.fr/maps?f=q&source=s_q&hl=fr&geocode=&q=Rue+Henri+Pauquet,+60100+Creil,+France&sll=47.15984,2.988281&sspn=16.323118,26.147461&ie=UTF8&z=16&iwloc=addr">France</a>.</p>
-        <br />
+            href="http://maps.google.fr/maps?f=q&amp;source=s_q&amp;hl=fr&amp;geocode=&amp;q=Rue+Henri+Pauquet,+60100+Creil,+France&amp;sll=47.15984,2.988281&amp;sspn=16.323118,26.147461&amp;ie=UTF8&amp;z=16&amp;iwloc=addr">France</a>.</p>
+        <br>
         <p>Depuis quelques mois je travaille en priorité sur deux
         projets : <a href="http://friendpaste.com">Friendpaste</a>, un
         outil de collaboration de texte et de code et <a
         permettant de maintenir simplement un site web. J'accepte aussi
         des contrats de développements ou conseil à travers <a
             href="http://e-engura.com">ma société</a>. N'hésitez pas à
-        me contacter.
+        me contacter.</p>
         
         <p>Utilisant et vivant de l'opensource, il est normal que je
         donne du code ou autre aide en retour. Vous trouverez une partie
             <li><a href="http://www.ohloh.net/accounts/benoitc">Mon
                 profil Ohloh</a></li>
             <li><a
-                href="http://openports.se/search.php?stype=maintainer&so=beno%EEt+chesneau">ports
-                maintenues sur OpenBSD</a></li>
-        </ul>
+                href="http://openports.se/search.php?stype=maintainer&amp;so=beno%EEt+chesneau">ports
+                maintenus sur OpenBSD</a></li>
+        </ul></p>
 
         <h3>Sur le Web</h3>
         <ul>
             href="http://groups.google.com/group/couchapp?hl=en">couchapp</a>.
         <a href="http://nginx.net/">nginx</a> étant utilisé en tant que
         proxy. Le tout est hébergé sur <a
-            href="http://www.openbsd.org">OpenBSD</a>.
+            href="http://www.openbsd.org">OpenBSD</a>.</p>
         </section>
-    </ul>
 
         <footer id="main-footer">
-            <p>2009 (c) <a href="<%= assets %>/benoitc.html">Benoît Chesneau</a> - <a rel="license" href="http://creativecommons.org/licenses/by/2.0/fr/">Certains droits reservés</a>.</p>
+            <p>2009 (c) <a href="benoitc.html">Benoît Chesneau</a> - <a rel="license" href="http://creativecommons.org/licenses/by/2.0/fr/">Certains droits reservés</a>.</p>
         </footer> 
     </div>
 </body>

_attachments/js/blog.js

     /* comments */
     function author(author) {
         if (!author) return '';
-        if (!author.url) return '<span class="author">by ' + safe(author.name) + '</span>';
-        return '<span class="author">by <a href="'+author.url+'">' 
+        if (!author.url) return '<span class="author">par ' + safe(author.name) + '</span>';
+        return '<span class="author">par <a href="'+author.url+'">' 
         + safe(author.name) + '</a></span>';      
     };
 
+    function gravatar(c) {
+        if (!c.commenter.gravatar) return '';
+        return '<img class="gravatar" src="http://www.gravatar.com/avatar/'+c.commenter.gravatar+'.jpg?s=40&d=identicon"/>';
+    };
+
     this.commentListing = function(c) {
         var date = new Date().setRFC3339(c.created_at);
         var date_html = new Date().setRFC3339(c.created_at).toLocaleString();
             + '</p>'
             + '</div>'
             +'<p class="comment-meta">'
-            +'<img class="gravatar" src="http://www.gravatar.com/avatar/'+c.commenter.gravatar+'.jpg?s=40&d=identicon"/>'
+            + gravatar(c)
             + author(c.commenter) + ', '
             + '<time title="GMT" datetime="'+c.created_at
             + '" title="'+date_title+'" class="caps">'+date_html+ '</p>'

lib/helpers/couchapp.js

   if (!buf.length) {
     return "";
   }
-  return "?" + buf.join("&");
+  return "?" + buf.join("&amp;");
 }
 
 function concatArgs(array, args) {

lib/templates/post.html

             <%= doc.html %>
             <% if (labels) { %>
             <footer>
-            <p>Cette entrée a été marquée <%= labels %> — Suivez un un des libellés pour obtenir d'autres articles ou essais en relation.</p>
+            <p>Cette entrée a été marquée <%= labels %> — Suivez un des libellés pour obtenir d'autres articles ou essais en relation.</p>
             </footer>
             <% } %>
         </article>
                     <br>
                     <label for="commenter-url">URL (optionnel)</label>
                     <br>
-                    <input name="commenter-url" type="text">
+                    <input name="commenter-url" type="text" value="">
                     <br>
                     <label for="commenter-email">Courriel</label>
                     <small>(pour <a href="http://gravatar.com">Gravatar</a>)</small>

validate_doc_update.js

     require(newDoc.html, "Comments require an html body.");
     require(newDoc.comment, "Comments require a comment field.");
     require(newDoc.commenter && newDoc.commenter.name, 'Comments require a name');
-    if (newDoc.commenter && newDoc.commenter.url) {*/
-      require(newDoc.commenter.url.match(/^https?:\/\/[^.]*\..*/), "Commenter URL is not valid.");      
+    if (newDoc.commenter && newDoc.commenter.url) {
+      require(newDoc.commenter.url.match(/^https?:\/\/[^.]*\..*/), "Commenter URL is not valid.");
     }
   }
   return true;

views/comments/map.js

 function(doc) {
   // !code lib.helpers.md5
   if (doc.doc_type == "comment") {
-    doc.commenter.gravatar = hex_md5(doc.commenter.email);
+    if (doc.commenter && doc.commenter.email) {
+        doc.commenter.gravatar = hex_md5(doc.commenter.email);
+    } else {
+        doc.commenter.gravatar = '';
+    }
     emit([doc.post_id, doc.created_at], doc);
   }  
 };
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.