Browse Source

gues type from id, classe added to dots on connecction mode (remians nested dots and text mode)

Bachir Soussi Chiadmi 6 years ago
parent
commit
2ce27b3245

+ 1 - 13
assets/dist/main.css

@@ -820,22 +820,10 @@ main#content.mode-connections h2.title, main#content.mode-connections h4.filet {
   margin: 0 0 0 70px; }
 
 .dot {
+  margin: 0 0 0 70px;
   position: relative;
   border: 1px solid white;
   width: 500px; }
-  .dot > span.id {
-    display: inline-block;
-    width: 50px;
-    text-align: right;
-    opacity: 0;
-    transition: opacity 0.4s ease-in-out; }
-  .dot > span.bullet {
-    display: inline-block;
-    width: 40px;
-    text-align: center;
-    vertical-align: top;
-    font-size: 15px;
-    font-kerning: none; }
   .dot > p.summary {
     display: inline-block;
     vertical-align: top;

File diff suppressed because it is too large
+ 0 - 0
assets/dist/main.js


File diff suppressed because it is too large
+ 0 - 0
assets/dist/main.js.map


+ 30 - 30
assets/jsondb/spinoza-ethica-fr-appuhn.json

@@ -15,38 +15,38 @@
 			},
 			{
 				"id":"1d1",
-				"title":"",
-				"text": "I. J'entends par cause de soi ce dont l'essence enveloppe l'existence ; autrement dit, ce dont la nature ne peut être conçue sinon comme existante.",
+				"title":"I.",
+				"text": "J'entends par cause de soi ce dont l'essence enveloppe l'existence ; autrement dit, ce dont la nature ne peut être conçue sinon comme existante.",
 				"childs": []
 			},
 			{
 				"id": "1d2",
-				"title": "",
-				"text": "II. Cette chose est dite finie en son genre, qui peut être limitée par une autre de même nature. Par exemple un corps est dit fini, parce que nous en concevons toujours un autre plus grand. De même une pensée est limitée par une autre pensée. Mais un corps n'est pas limité par une pensée, ni une pensée par un corps.",
+				"title": "II.",
+				"text": "Cette chose est dite finie en son genre, qui peut être limitée par une autre de même nature. Par exemple un corps est dit fini, parce que nous en concevons toujours un autre plus grand. De même une pensée est limitée par une autre pensée. Mais un corps n'est pas limité par une pensée, ni une pensée par un corps.",
 				"childs": []
 			},
 			{
 				"id": "1d3",
-				"title": "",
-				"text": "III. J'entends par substance ce qui est en soi et est conçu par soi : c'est-à-dire ce dont le concept n'a pas besoin du concept d'une autre chose, duquel il doive être formé.",
+				"title": "III.",
+				"text": "J'entends par substance ce qui est en soi et est conçu par soi : c'est-à-dire ce dont le concept n'a pas besoin du concept d'une autre chose, duquel il doive être formé.",
 				"childs": []
 			},
 			{
 				"id": "1d4",
-				"title": "",
-				"text": "IV. J'entends par attribut ce que l'entendement perçoit d'une substance comme constituant son essence.",
+				"title": "IV.",
+				"text": "J'entends par attribut ce que l'entendement perçoit d'une substance comme constituant son essence.",
 				"childs": []
 			},
 			{
 				"id": "1d5",
-				"title": "",
-				"text": "V. J'entends par mode les affections d'une substance, autrement dit ce qui est dans une autre chose, par le moyen de laquelle il est aussi conçu.",
+				"title": "V.",
+				"text": "J'entends par mode les affections d'une substance, autrement dit ce qui est dans une autre chose, par le moyen de laquelle il est aussi conçu.",
 				"childs": []
 			},
 			{
 				"id": "1d6",
-				"title": "",
-				"text": "VI. J'entends par Dieu un être absolument infini, c'est-à-dire une substance constituée par une infinité d'attributs dont chacun exprime une essence éternelle et infinie.",
+				"title": "VI.",
+				"text": "J'entends par Dieu un être absolument infini, c'est-à-dire une substance constituée par une infinité d'attributs dont chacun exprime une essence éternelle et infinie.",
 				"childs": [
 					{
 						"id": "1d6e",
@@ -57,14 +57,14 @@
 			},
 			{
 				"id": "1d7",
-				"title": "",
-				"text": "VII. Cette chose est dite^[Je traduis _dicitur_ au lieu de dicetur] libre qui existe par la seule nécessité de sa nature et est déterminée par soi seule à agir : cette chose est dite nécessaire ou plutôt contrainte qui est déterminée par une autre à exister et à produire quelque effet dans une condition certaine et déterminée.",
+				"title": "VII.",
+				"text": "Cette chose est dite^[Je traduis _dicitur_ au lieu de dicetur] libre qui existe par la seule nécessité de sa nature et est déterminée par soi seule à agir : cette chose est dite nécessaire ou plutôt contrainte qui est déterminée par une autre à exister et à produire quelque effet dans une condition certaine et déterminée.",
 				"childs": []
 			},
 			{
 				"id": "1d8",
-				"title": "",
-				"text": "VIII. J'entends par éternité l'existence elle-même en tant qu'elle est conçue comme suivant nécessairement de la seule définition d'une chose éternelle.",
+				"title": "VIII.",
+				"text": "J'entends par éternité l'existence elle-même en tant qu'elle est conçue comme suivant nécessairement de la seule définition d'une chose éternelle.",
 				"childs": [
 					{
 						"id": "1d8e",
@@ -79,44 +79,44 @@
 			},
 			{
 				"id": "1a1",
-				"title": "",
-				"text": "I. Tout ce qui est, est ou bien en soi, ou bien en autre chose.",
+				"title": "I.",
+				"text": "Tout ce qui est, est ou bien en soi, ou bien en autre chose.",
 				"childs": []
 			},
 			{
 				"id": "1a2",
-				"title": "",
-				"text": "II. Ce qui ne peut être conçu par le moyen d'une autre chose, doit être conçu par soi.",
+				"title": "II.",
+				"text": "Ce qui ne peut être conçu par le moyen d'une autre chose, doit être conçu par soi.",
 				"childs": []
 			},
 			{
 				"id": "1a3",
-				"title": "",
-				"text": "III. D'une cause déterminée que l'on suppose donnée, suit nécessairement un effet, et au contraire si nulle cause déterminée n'est donnée, il est impossible qu'un effet suive.",
+				"title": "III.",
+				"text": "D'une cause déterminée que l'on suppose donnée, suit nécessairement un effet, et au contraire si nulle cause déterminée n'est donnée, il est impossible qu'un effet suive.",
 				"childs": []
 			},
 			{
 				"id": "1a4",
-				"title": "",
-				"text": "IV. La connaissance de l'effet dépend de la connaissance de la cause et l'enveloppe.",
+				"title": "IV.",
+				"text": "La connaissance de l'effet dépend de la connaissance de la cause et l'enveloppe.",
 				"childs": []
 			},
 			{
 				"id": "1a5",
-				"title": "",
-				"text": "V. Les choses qui n'ont rien de commun l'une avec l'autre ne se peuvent non plus connaître l'une par l'autre ; autrement dit, le concept de l'une n'enveloppe pas le concept de l'autre.",
+				"title": "V.",
+				"text": "Les choses qui n'ont rien de commun l'une avec l'autre ne se peuvent non plus connaître l'une par l'autre ; autrement dit, le concept de l'une n'enveloppe pas le concept de l'autre.",
 				"childs": []
 			},
 			{
 				"id": "1a6",
-				"title": "",
-				"text": "VI. Une idée vraie doit s'accorder avec l'objet dont elle est l'idée.",
+				"title": "VI.",
+				"text": "Une idée vraie doit s'accorder avec l'objet dont elle est l'idée.",
 				"childs": []
 			},
 			{
 				"id": "1a7",
-				"title": "",
-				"text": "VII. Toute chose qui peut être conçue comme non existante, son essence n'enveloppe pas l'existence.",
+				"title": "VII.",
+				"text": "Toute chose qui peut être conçue comme non existante, son essence n'enveloppe pas l'existence.",
 				"childs": []
 			},
 			{

+ 2 - 2
assets/main.js

@@ -39,7 +39,7 @@ function init(){
   _dbs.load(function(){
 		console.log('init dbs callback');
 	  console.log("Init _dbs.data", _dbs.data);
-    // console.log("Init _dbs.data_byid", _dbs.data_byid);
+    console.log("Init _dbs.data_byid", _dbs.data_byid);
     // console.log("Init _dbs.data_strct", _dbs.data_strct);
     m.route.prefix("");
 		m.route(document.body, "/fr/text", {
@@ -49,7 +49,7 @@ function init(){
 					return m(Layout, vn.attrs, m(_ModeText, vn.attrs));
 				}
 			},
-			"/:lang/conexions": {
+			"/:lang/connections": {
 				render(vn){
 					return m(Layout, vn.attrs, m(_ModeConnections, vn.attrs));
 				}

+ 18 - 18
assets/main.scss

@@ -280,7 +280,7 @@ main#content.mode-connections{
   }
 }
 .dot{
-
+  margin:0 0 0 $margin_left;
   position: relative;
   // overflow-x: visible;
   // overflow-y: auto;
@@ -288,23 +288,23 @@ main#content.mode-connections{
   // transform: translate3d(0,0,0);
   // transition: transform 0.2s ease-in-out;
   width: $dot_w;
-  >span.id{
-    display: inline-block;
-    // position: absolute;
-    // left:-3.5em;
-    width: $margin_left - ($bullet_w/2); text-align: right;
-    opacity:0;
-    // transform: translate3d(0, 0, 0);
-    // transition: transform 0.2s ease-in-out,opacity 0.4s ease-in-out;
-    transition: opacity 0.4s ease-in-out;
-  }
-  >span.bullet{
-    display: inline-block;
-    width:$bullet_w; text-align: center;
-    vertical-align: top;
-    font-size: 15px;
-    font-kerning: none;
-  }
+  // >span.id{
+  //   display: inline-block;
+  //   // position: absolute;
+  //   // left:-3.5em;
+  //   width: $margin_left - ($bullet_w/2); text-align: right;
+  //   opacity:0;
+  //   // transform: translate3d(0, 0, 0);
+  //   // transition: transform 0.2s ease-in-out,opacity 0.4s ease-in-out;
+  //   transition: opacity 0.4s ease-in-out;
+  // }
+  // >span.bullet{
+  //   display: inline-block;
+  //   width:$bullet_w; text-align: center;
+  //   vertical-align: top;
+  //   font-size: 15px;
+  //   font-kerning: none;
+  // }
   >p.summary{
     display: inline-block;
     vertical-align: top;

+ 96 - 8
assets/modules/ModeConnections.js

@@ -17,7 +17,9 @@ var _Ui = require('./ui.js');
 // /_____/\____/\__/
 var _Dot = {
   id:null,
+  dottype:null,
   type:'',
+  title:'',
   text:'',
   summary:'',
   active:true,
@@ -25,6 +27,76 @@ var _Dot = {
   links:null,
   parents:[],
   lang:_dbs.lang,
+  setupDotType(vn){
+    // var rx_id = /^(\d)(app|agd|\d\d|pr|ad|ap|c|p|d|a)(cd|sc|\d\d|d|c|a|l|p|\d)?(e|\d|sc)?(d|c|a|sc)?$/;
+    // var m = this.id.match(rx_id);
+    // if(m){
+    //   switch(true){
+    //     case /^\d{2}$/.test(m[2]):
+    //       switch(true){
+    //         case /^cd$/.test(m[3])    : this.dottype = 'corollaire-demo'; break;
+    //         case /^sc$/.test(m[3])    : this.dottype = 'scolie'; break;
+    //         case /^d$/.test(m[3])     : this.dottype = 'demonstration'; break;
+    //         case /^c$/.test(m[3])     :
+    //           switch(true){
+    //             case /^sc$/.test(m[4]): this.dottype = 'scolie'; break;
+    //             case /^d$/.test(m[4]) : this.dottype = 'demonstration'; break;
+    //             case /^d$/.test(m[5]) : this.dottype = 'demonstration'; break;
+    //             case /^sc$/.test(m[5]): this.dottype = 'scolie'; break;
+    //             case /^\d$/.test(m[4]): this.dottype = 'corollaire'; break;
+    //             case !m[4]            : this.dottype = 'corollaire'; break;
+    //           }
+    //           break;
+    //         case /^a$/.test(m[3])     : this.dottype = 'axiom'; break;
+    //         case /^l$/.test(m[3])     :
+    //           switch(true){
+    //             case /^d$/.test(m[5]) : this.dottype = 'demonstration'; break;
+    //             case /^sc$/.test(m[5]): this.dottype = 'scolie'; break;
+    //             case !m[5]            : this.dottype = 'lemme'; break;
+    //           }
+    //           break;
+    //         case /^p$/.test(m[3])     : this.dottype = 'postulat'; break;
+    //         case /^\d$/.test(m[3])    : this.dottype = '??'; break;
+    //         case /^\d{2}$/.test(m[3]) : this.dottype = '??'; break;
+    //         case !m[3]                : this.dottype = 'proposition'; break;
+    //       }
+    //       break;
+    //     case /^app|ap$/.test(m[2])    : this.dottype = 'appendice'; break;
+    //     case /^agd$/.test(m[2])       : this.dottype = 'def-gen-affect'; break;
+    //     case /^pr$/.test(m[2])        : this.dottype = 'preface'; break;
+    //     case /^ad$/.test(m[2])        :
+    //       switch(true){
+    //         case /^e$/.test(m[4])     :this.dottype = 'explication'; break;
+    //         case !m[4]                :this.dottype = 'def-affect'; break;
+    //       }
+    //       break;
+    //     case /^c$/.test(m[2])         : this.dottype = 'chapitre'; break;
+    //     case /^p$/.test(m[2])         : this.dottype = 'postulat'; break;
+    //     case /^d$/.test(m[2])         :
+    //       switch(true){
+    //         case /^e$/.test(m[4])     : this.dottype = 'explication'; break;
+    //         case !m[4]                : this.dottype = 'definition'; break;
+    //       }
+    //       break;
+    //     case /^a$/.test(m[2])         : this.dottype = 'axiom'; break;
+    //   }
+    //   // }
+    // }
+    // console.log(`${this.id} -> ${this.dottype}`,m);
+    //
+    // // TODO: fix false ids
+    // // we have app and ap for appendice (1app | 4ap)
+    // // 213def ??
+    // // 209cd demo ou corollaire-demo ??
+    // // 210csc scolie ou corollaire-scolie ??
+    // // 213l1d demo ??
+  },
+  setupTitle(vn){
+    this.title = vn.attrs.title;
+    if(!this.title){
+      this.title = this.type;
+    }
+  },
   setuptext(vn){
     // console.log('setuptext', vn);
 
@@ -43,9 +115,15 @@ var _Dot = {
   oninit(vn){
     this.id = vn.attrs.id;
     this.type = vn.attrs.type;
-    this.title = vn.attrs.title || "title";
+    // this.title = vn.attrs.title || "title";
+    // this.setupDotType(vn);
+    this.dottype = vn.attrs.dottype;
+
+    this.setupTitle(vn);
     this.setuptext(vn);
 
+    console.log(`${this.id} -> ${this.dottype}`);
+
     if(typeof vn.attrs.active !== 'undefined')
       this.active = vn.attrs.active;
 
@@ -80,6 +158,7 @@ var _Dot = {
       // console.log('_Dot view '+this.id+' parents :',this.parents);
       var dot_content = [
         // links to
+        // TODO: add dottype class to nested dots
         this.links.to.length
           ? m('nav', {'class':'links to'}, this.links.to.map(id => {
               // console.log(id);
@@ -98,9 +177,11 @@ var _Dot = {
           )
           : null,
         // id
-        m('span', {'class':'id'}, this.id), // this.type+' '+
+        // m('span', {'class':'id'}, this.id), // this.type+' '+
         // bullet
-        m('span', {'class':'bullet'}, m.trust('⚫')),
+        // m('span', {'class':'bullet'}, m.trust('⚫')),
+        // Title
+        m('span', {'class':'title'}, m.trust(this.title)),
         // full text
         m('section', {
           'class':'text',
@@ -134,6 +215,7 @@ var _Dot = {
         this.links.from.length
           ? m('nav', {'class':'links from'}, this.links.from.map(id => {
               // retrun a dot
+              // TODO: add dottype class to nested dots
               return m(_Dot, {
                 "id":id,
                 'text':_dbs.data_byid[_dbs.lang][id].text,
@@ -150,8 +232,9 @@ var _Dot = {
     }else{
       // preview dot
       var dot_content = [
-          m('span', {'class':'id'}, this.id), // this.type+' '+
-          m('span', {'class':'bullet'}, m.trust('•')),
+          // m('span', {'class':'id'}, this.id), // this.type+' '+
+          // m('span', {'class':'bullet'}, m.trust('•')),
+          m('span', {'class':'title'}, m.trust(this.title)),
           m('p', {
             'class':'summary',
             onclick(e){
@@ -164,7 +247,7 @@ var _Dot = {
 
     return m('div',{
         'uid':this.id,
-        'class':'dot'
+        'class':`dot ${this.dottype}`
       },
       dot_content
     );
@@ -211,6 +294,7 @@ var _Child = {
   id:null,
   part:null,
   type:null,
+  dottype:null,
   // nested:false,
   text:'',
   oninit(vn){
@@ -220,6 +304,7 @@ var _Child = {
     // vn.state.part = vn.state.slug.match(/^(\d)(.+)/)[1];
     this.text = vn.attrs.text;
     // this.nested = vn.attrs.nested || false;
+    this.dottype = vn.attrs.dottype;
   },
   onbeforeupdate(vn, old){
     // this.nested = vn.attrs.nested || false;
@@ -227,7 +312,7 @@ var _Child = {
     this.text = vn.attrs.text;
   },
   view(vn){
-    return m(_Dot, {"id":this.id, 'text':this.text, 'type':this.type});
+    return m(_Dot, {"id":this.id, 'text':this.text, 'type':this.type, 'dottype':this.dottype});
   }
 };
 
@@ -241,6 +326,7 @@ var _Enonce = {
   id:null,
   title:null,
   text:null,
+  dottype:null,
   // nested:false,
   childs:[],
   oninit(vn){
@@ -251,6 +337,7 @@ var _Enonce = {
     this.text = vn.attrs.text;
     this.childs = vn.attrs.childs || [];
     // this.nested = vn.attrs.nested || false;
+    this.dottype = vn.attrs.dottype;
   },
   onbeforeupdate(vn, old) {
     // console.log(vn.attrs.childs);
@@ -259,12 +346,13 @@ var _Enonce = {
     this.childs = vn.attrs.childs || [];
     // this.nested = vn.attrs.nested || false;
     // if(vn.attrs.id == '1d1') console.log('_Enonce UPDATE, text :', vn.attrs.text);
+    this.dottype = vn.attrs.dottype;
   },
   view(vn){
     // if(vn.attrs.id == '1d1') console.log('_Enonce VIEW, text :', vn.attrs.text);
     return [
       // create dot
-      m(_Dot, {"id":this.id, 'text':this.text,'type':this.title}),
+      m(_Dot, {"id":this.id, 'text':this.text,'type':this.title, 'dottype':this.dottype}),
       // addd children
       this.childs.map(c => { return m(_Child, c); })
     ]

+ 1 - 1
assets/modules/ModeText.js

@@ -278,7 +278,7 @@ var _Part = {
         m("h1", {'class':'part-title', 'part':this.id}, m.trust(markdown.renderInline(this.title))),
         // create text node
         this.enonces.map(e => {
-          console.log(e.title +" - "+ e.type);
+          // console.log(e.title +" - "+ e.type);
           // var title = e.title || '';
           switch (e.type) {
             case "title":

+ 103 - 0
assets/modules/dbs.js

@@ -52,6 +52,7 @@ module.exports = {
         case 3:
           // console.log('loading');
         break;
+        break;
         case 4:
           if (xobj.status === 200) {
               this.onJSONLoaded(lc, xobj.responseText, callback);
@@ -77,17 +78,32 @@ module.exports = {
 
   },
   parseByID(callback){
+    // loop through laguages
     for(l in this.data){
       // console.log('l', l);
       this.data_byid[l] = {};
+      // loop through parts
       for (p in this.data[l]) {
         if(this.data[l][p].type !== "intro"){
           // console.log(this.data[l][p]);
+          // loop through enonces
           for (e in this.data[l][p].enonces) {
             // console.log('e',e);
+            if(this.data[l][p].enonces[e].id){
+              // guess the type from the id
+              // console.log(this.data[l][p].enonces[e].id);
+              this.data[l][p].enonces[e].dottype = this.setupType(this.data[l][p].enonces[e].id);
+            }
+            // records childs in flat array by ids
             this.data_byid[l][this.data[l][p].enonces[e].id] = this.data[l][p].enonces[e];
+            // loop through childs
             for (c in this.data[l][p].enonces[e].childs){
               // console.log(_db[p][e][c]);
+              if(this.data[l][p].enonces[e].childs[c].id){
+                // guess the type from the id
+                this.data[l][p].enonces[e].childs[c].dottype = this.setupType(this.data[l][p].enonces[e].childs[c].id);
+              }
+              // records childs in flat array by ids
               this.data_byid[l][this.data[l][p].enonces[e].childs[c].id] = this.data[l][p].enonces[e].childs[c];
             }
           }
@@ -97,6 +113,93 @@ module.exports = {
     // console.log('this.data_byid', this.data_byid);
     this.parseStrct(callback);
   },
+  setupType(id){
+    // console.log('setupType',id);
+    var rx_id = /^(\d)(app|agd|\d\d|pr|ad|ap|c|p|d|a)(cd|sc|\d\d|d|c|a|l|p|\d)?(e|\d|sc)?(d|c|a|sc)?$/;
+    var m = id.match(rx_id);
+    if(m){
+      switch(true){
+        case /^\d{2}$/.test(m[2]):
+          switch(true){
+            case /^cd$/.test(m[3])    : return 'corollaire-demo';
+            case /^cd$/.test(m[3])    : return 'corollaire-demo';
+            case /^sc$/.test(m[3])    : return 'scolie';
+            case /^sc$/.test(m[3])    : return 'scolie';
+            case /^d$/.test(m[3])     : return 'demonstration';
+            case /^d$/.test(m[3])     : return 'demonstration';
+            case /^c$/.test(m[3])     :
+              switch(true){
+                case /^sc$/.test(m[4]): return 'scolie';
+                case /^sc$/.test(m[4]): return 'scolie';
+                case /^d$/.test(m[4]) : return 'demonstration';
+                case /^d$/.test(m[4]) : return 'demonstration';
+                case /^d$/.test(m[5]) : return 'demonstration';
+                case /^d$/.test(m[5]) : return 'demonstration';
+                case /^sc$/.test(m[5]): return 'scolie';
+                case /^sc$/.test(m[5]): return 'scolie';
+                case /^\d$/.test(m[4]): return 'corollaire';
+                case /^\d$/.test(m[4]): return 'corollaire';
+                case !m[4]            : return 'corollaire';
+                case !m[4]            : return 'corollaire';
+              }
+            case /^a$/.test(m[3])     : return 'axiom';
+            case /^a$/.test(m[3])     : return 'axiom';
+            case /^l$/.test(m[3])     :
+              switch(true){
+                case /^d$/.test(m[5]) : return 'demonstration';
+                case /^d$/.test(m[5]) : return 'demonstration';
+                case /^sc$/.test(m[5]): return 'scolie';
+                case /^sc$/.test(m[5]): return 'scolie';
+                case !m[5]            : return 'lemme';
+                case !m[5]            : return 'lemme';
+              }
+            case /^p$/.test(m[3])     : return 'postulat';
+            case /^p$/.test(m[3])     : return 'postulat';
+            case /^\d$/.test(m[3])    : return '??';
+            case /^\d$/.test(m[3])    : return '??';
+            case /^\d{2}$/.test(m[3]) : return '??';
+            case /^\d{2}$/.test(m[3]) : return '??';
+            case !m[3]                : return 'proposition';
+            case !m[3]                : return 'proposition';
+          }
+        case /^app|ap$/.test(m[2])    : return 'appendice';
+        case /^app|ap$/.test(m[2])    : return 'appendice';
+        case /^agd$/.test(m[2])       : return 'def-gen-affect';
+        case /^agd$/.test(m[2])       : return 'def-gen-affect';
+        case /^pr$/.test(m[2])        : return 'preface';
+        case /^pr$/.test(m[2])        : return 'preface';
+        case /^ad$/.test(m[2])        :
+          switch(true){
+            case /^e$/.test(m[4])     :return 'explication';
+            case /^e$/.test(m[4])     :return 'explication';
+            case !m[4]                :return 'def-affect';
+            case !m[4]                :return 'def-affect';
+          }
+        case /^c$/.test(m[2])         : return 'chapitre';
+        case /^c$/.test(m[2])         : return 'chapitre';
+        case /^p$/.test(m[2])         : return 'postulat';
+        case /^p$/.test(m[2])         : return 'postulat';
+        case /^d$/.test(m[2])         :
+          switch(true){
+            case /^e$/.test(m[4])     : return 'explication';
+            case /^e$/.test(m[4])     : return 'explication';
+            case !m[4]                : return 'definition';
+            case !m[4]                : return 'definition';
+          }
+        case /^a$/.test(m[2])         : return 'axiom';
+        case /^a$/.test(m[2])         : return 'axiom';
+      }
+      // }
+    }
+    // console.log(`${this.id} -> ${this.dottype}`,m);
+
+    // TODO: fix false ids
+    // we have app and ap for appendice (1app | 4ap)
+    // 213def ??
+    // 209cd demo ou corollaire-demo ??
+    // 210csc scolie ou corollaire-scolie ??
+    // 213l1d demo ??
+  },
   parseStrct(callback){
 
     var id, item, obj, links_match, link, tid;

+ 2 - 2
assets/modules/header.js

@@ -77,10 +77,10 @@ var _RouteMenu = {
           onupdate : m.route.link
         }, _i18n.t("Text"))),
         m('li', m('a', {
-          'href':`/${lang}/conexions${path[3]}`,
+          'href':`/${lang}/connections${path[3]}`,
           oncreate : m.route.link,
           onupdate : m.route.link
-        }, _i18n.t("Conexions"))),
+        }, _i18n.t("Connections"))),
       ])
     ]);
   }

+ 2 - 2
assets/modules/i18n.js

@@ -45,8 +45,8 @@ module.exports = {
       'bra':'Texto',
       'lat':'Illud'
     },
-    'Conexions':{
-      'en':'Conexions',
+    'Connections':{
+      'en':'Connections',
       'fr':'Connections',
       'bra':'Conexões',
       'lat':'Hospites'

+ 1 - 1
assets/modules/ui.js

@@ -64,7 +64,7 @@ module.exports = {
           console.log('new sticky', stkd_part.innerHTML);
           // clone only once
           clone = stkd_part.cloneNode(true);
-          // stkd_wrapper.innerHTML = '';
+          stkd_wrapper.innerHTML = '';
           // fill stkd_wrapper
           stkd_wrapper.appendChild(clone);
           last_stkd_part = stkd_part;

Some files were not shown because too many files changed in this diff