|
@@ -41,12 +41,22 @@ var _Dot = {
|
|
|
this.text = vn.attrs.text || '';
|
|
|
this.rendered_text = markdown.render(this.text);
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- this.summary = this.text.match('([^ ]*[ ]{0,1}){1,6}')[0];
|
|
|
- this.summary = this.summary.trim().replace(/_([^_]+)$/g, "_$1_");
|
|
|
- this.summary = this.summary.replace(/\[([^\]]+)$/g, "$1");
|
|
|
- this.summary = markdown.renderInline(this.summary) + " …";
|
|
|
+ if(this.dottype == "preface"){
|
|
|
+ this.summary = this.rendered_text;
|
|
|
+ }else{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ this.summary = this.text.replace(/!\[[^\]]+\]\([^\)]+\)/g, "");
|
|
|
+
|
|
|
+ this.summary = this.summary.match('([^ ]*[ ]{0,1}){1,6}')[0];
|
|
|
+
|
|
|
+ this.summary = this.summary.trim().replace(/_([^_]+)$/g, "_$1_");
|
|
|
+
|
|
|
+ this.summary = this.summary.replace(/\[([^\]]+)$/g, "$1");
|
|
|
+
|
|
|
+ this.summary = markdown.renderInline(this.summary) + " …";
|
|
|
+ }
|
|
|
|
|
|
},
|
|
|
oninit(vn){
|
|
@@ -89,73 +99,15 @@ var _Dot = {
|
|
|
this.setupTitle(vn);
|
|
|
}
|
|
|
},
|
|
|
- view(vn){
|
|
|
- if (this.active && this.opened) {
|
|
|
-
|
|
|
-
|
|
|
- var dot_content = [
|
|
|
-
|
|
|
- this.links.to.length
|
|
|
- ? m('nav', {'class':'links to'}, this.links.to.map(id => {
|
|
|
-
|
|
|
- if(typeof _dbs.data_byid[_dbs.lang][id] !== 'undefined'){
|
|
|
- var obj = _dbs.data_byid[_dbs.lang][id];
|
|
|
-
|
|
|
- return m(_Dot, {
|
|
|
- "id":id,
|
|
|
- 'text':obj.text,
|
|
|
- 'dottype':obj.dottype,
|
|
|
- 'type':obj.type,
|
|
|
-
|
|
|
- 'parents':vn.state.parents.concat([vn.state.id]),
|
|
|
-
|
|
|
- 'active':vn.state.parents.indexOf(id) == -1 ? true:false
|
|
|
- });
|
|
|
- }
|
|
|
- })
|
|
|
- )
|
|
|
- : null,
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- m('span', {'class':'title'}, m.trust(this.title)),
|
|
|
-
|
|
|
- m('section', {
|
|
|
- 'class':'text',
|
|
|
- onmouseover(e){
|
|
|
- e.preventDefault();
|
|
|
- if(e.target.nodeName == "A" ){
|
|
|
-
|
|
|
-
|
|
|
- var id = e.target.getAttribute("href");
|
|
|
-
|
|
|
- vn.dom.querySelector('nav.links>div[uid="'+id+'"]').classList.add('highlight');
|
|
|
- }else{
|
|
|
-
|
|
|
- for (link of vn.dom.querySelectorAll('nav.links>div.dot')) {
|
|
|
- link.classList.remove('highlight');
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- onclick(e){
|
|
|
- e.preventDefault();
|
|
|
- if(e.target.nodeName == "A" ){
|
|
|
-
|
|
|
-
|
|
|
- var id = e.target.getAttribute("href");
|
|
|
-
|
|
|
- vn.dom.querySelector('nav.links>div[uid="'+id+'"]>.summary').click();
|
|
|
- }
|
|
|
- }
|
|
|
- }, m.trust(this.rendered_text)),
|
|
|
-
|
|
|
- this.links.from.length
|
|
|
- ? m('nav', {'class':'links from'}, this.links.from.map(id => {
|
|
|
+ setOpenedContent(vn){
|
|
|
+ this.dot_content = [
|
|
|
+
|
|
|
+ this.links.to.length
|
|
|
+ ? m('nav', {'class':'links to'}, this.links.to.map(id => {
|
|
|
+
|
|
|
+ if(typeof _dbs.data_byid[_dbs.lang][id] !== 'undefined'){
|
|
|
var obj = _dbs.data_byid[_dbs.lang][id];
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
return m(_Dot, {
|
|
|
"id":id,
|
|
|
'text':obj.text,
|
|
@@ -166,41 +118,100 @@ var _Dot = {
|
|
|
|
|
|
'active':vn.state.parents.indexOf(id) == -1 ? true:false
|
|
|
});
|
|
|
- })
|
|
|
- )
|
|
|
- : null,
|
|
|
- ];
|
|
|
- }else{
|
|
|
-
|
|
|
- var dot_content = [
|
|
|
-
|
|
|
-
|
|
|
- m('span', {
|
|
|
- 'class':'title',
|
|
|
- onclick(e){
|
|
|
-
|
|
|
- vn.state.opened = true;
|
|
|
}
|
|
|
- }, m.trust(this.title)),
|
|
|
- m('p', {
|
|
|
- 'class':'summary',
|
|
|
- onclick(e){
|
|
|
-
|
|
|
- vn.state.opened = true;
|
|
|
+ })
|
|
|
+ )
|
|
|
+ : null,
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ m('span', {'class':'title'}, m.trust(this.title)),
|
|
|
+
|
|
|
+ m('section', {
|
|
|
+ 'class':'text',
|
|
|
+ onmouseover(e){
|
|
|
+ e.preventDefault();
|
|
|
+ if(e.target.nodeName == "A" ){
|
|
|
+
|
|
|
+
|
|
|
+ var id = e.target.getAttribute("href");
|
|
|
+
|
|
|
+ vn.dom.querySelector('nav.links>div[uid="'+id+'"]').classList.add('highlight');
|
|
|
+ }else{
|
|
|
+
|
|
|
+ for (link of vn.dom.querySelectorAll('nav.links>div.dot')) {
|
|
|
+ link.classList.remove('highlight');
|
|
|
}
|
|
|
- }, m.trust(this.summary))
|
|
|
- ];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onclick(e){
|
|
|
+ e.preventDefault();
|
|
|
+ if(e.target.nodeName == "A" ){
|
|
|
+
|
|
|
+
|
|
|
+ var id = e.target.getAttribute("href");
|
|
|
+
|
|
|
+ vn.dom.querySelector('nav.links>div[uid="'+id+'"]>.summary').click();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, m.trust(this.rendered_text)),
|
|
|
+
|
|
|
+ this.links.from.length
|
|
|
+ ? m('nav', {'class':'links from'}, this.links.from.map(id => {
|
|
|
+ var obj = _dbs.data_byid[_dbs.lang][id];
|
|
|
+
|
|
|
+
|
|
|
+ return m(_Dot, {
|
|
|
+ "id":id,
|
|
|
+ 'text':obj.text,
|
|
|
+ 'dottype':obj.dottype,
|
|
|
+ 'type':obj.type,
|
|
|
+
|
|
|
+ 'parents':vn.state.parents.concat([vn.state.id]),
|
|
|
+
|
|
|
+ 'active':vn.state.parents.indexOf(id) == -1 ? true:false
|
|
|
+ });
|
|
|
+ })
|
|
|
+ )
|
|
|
+ : null,
|
|
|
+ ];
|
|
|
+ },
|
|
|
+ setPreviewContent(vn){
|
|
|
+ this.dot_content = [
|
|
|
+
|
|
|
+
|
|
|
+ m('span', {
|
|
|
+ 'class':'title',
|
|
|
+ onclick(e){
|
|
|
+
|
|
|
+ vn.state.opened = true;
|
|
|
+ }
|
|
|
+ }, m.trust(this.title)),
|
|
|
+ m('p', {
|
|
|
+ 'class':'summary',
|
|
|
+ onclick(e){
|
|
|
+
|
|
|
+ vn.state.opened = true;
|
|
|
+ }
|
|
|
+ }, m.trust(this.summary))
|
|
|
+ ];
|
|
|
+ },
|
|
|
+ view(vn){
|
|
|
+ if (this.active && this.opened) {
|
|
|
+
|
|
|
+ this.setOpenedContent(vn);
|
|
|
+ }else{
|
|
|
+
|
|
|
+ this.setPreviewContent(vn);
|
|
|
}
|
|
|
|
|
|
return m('div',{
|
|
|
'uid':this.id,
|
|
|
'class':`dot ${this.dottype}`,
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
},
|
|
|
- dot_content
|
|
|
+ this.dot_content
|
|
|
);
|
|
|
},
|
|
|
onupdate(vn){
|