Commit f8f0feb3 authored by Koichi Yasuoka's avatar Koichi Yasuoka
Browse files

conllusvg.kanbun.checkLinks included

parent 3d1cc76b
Loading
Loading
Loading
Loading
+114 −1
Original line number Diff line number Diff line
<!DOCTYPE html><head><meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>CoNLL-U SVG Editor for 漢文 by 安岡孝一, August 1, 2018.</title>
<title>CoNLL-U SVG Editor for 漢文 by 安岡孝一, October 3, 2018.</title>
<script src="conllusvgview.js"></script>
<script src="conllusvgedit.js"></script>
<script src="conllusvgload.js"></script>
@@ -12,6 +12,7 @@ conllusvg.kanbun.checkURL=function(textid,pushid,statid){
  if(i>0&&h.length-i>0){
    h=h.slice(i+1);
    conllusvg.loadRemote(textid,h);
    conllusvg.kanbun.timer=setTimeout("clearTimeout(conllusvg.kanbun.timer);conllusvg.kanbun.checkLinks('"+textid+"')",1000);
    if(h.indexOf("/api/v4/projects/")<0)
      return;
    if(h.indexOf("/repository/files/")<0)
@@ -103,6 +104,7 @@ conllusvg.kanbun.saveLocal=function(textid){
    c.files.filename=k.slice(k.lastIndexOf("/")+1);
  }
  conllusvg.view(c.svg,textid);
  conllusvg.kanbun.checkLinks(textid);
  conllusvg.saveLocal(textid);
}
conllusvg.kanbun.pushGitLab=function(textid){
@@ -127,6 +129,7 @@ conllusvg.kanbun.pushGitLab=function(textid){
    }
  }
  conllusvg.view(c.svg,textid);
  conllusvg.kanbun.checkLinks(textid);
  s=conllusvg.kanbun.gitlabURL+"&commit_message=API+editor-kanbun+"+conllusvg.kanbun.gitlabFile+"&content=";
  if(tx.value==null)
    s=s+encodeURIComponent(tx.textContent);
@@ -240,6 +243,116 @@ conllusvg.kanbun.divideForm=function(textid,z){
    conllusvg.insertTextline(textid,c.nodes[ix+1].textlineid,3,t.slice(j));
  }
}
conllusvg.kanbun.checkLinks=function(textid){
  var c=conllusvg.main[textid];
  var t,f,d,p,x,k;
  for(t in c.links){
    if(c.links[t].svg!=null){
      d=c.links[t].deprel;
      f=c.links[t].from;
      p=0;
      if(p==0&&(d=="ccomp"||d=="csubj"||d=="advcl"||d=="acl")){
	p=1;
	for(x in c.links){
	  if(c.links[x].from==t){
	    p=0;
	    break;
	  }
	}
      }
      if(p==0&&d=="mark"){
	p=1;
	for(x in c.links){
	  if(t!=x&&c.links[x].from==f){
	    p=0;
	    break;
	  }
	}
      }
      if(p==0&&(d=="nsubj"||d=="obj"||d=="obl"||d=="amod"||d=="advmod")){
	for(x in c.links){
	  if(c.links[x].from==t){
	    k=c.links[x].deprel;
	    if(k=="nsubj"||k=="obj"||k=="obl"||k=="aux"){
	      p=1;
	      break;
	    }
	  }
	}
      }
      if(p==0&&d=="case"){
	for(x in c.links){
	  if(c.links[x].from==f){
	    k=c.links[x].deprel;
	    if(k=="nsubj"||k=="obj"||k=="obl"||k=="aux"||k=="advmod"){
	      p=1;
	      break;
	    }
	  }
	}
      }
      if(p==0&&d=="cc"){
	if(c.nodes[f].deprel!="conj")
	  p=1;
      }
      if(p==0&&d=="xcomp"){
	p=1;
	for(x in c.links){
	  if(c.links[x].from==f){
	    k=c.links[x].deprel;
	    if(k=="obj"||k=="expl"||k=="ccomp"){
	      p=0;
	      break;
	    }
	  }
	}
      }
      if(p==0&&(d=="nmod"||d=="clf"||d=="compound"||d=="flat")){
        k=c.nodes[t].upostag;
	if(k=="NOUN"||k=="PROPN"||k=="PRON"||k=="NUM"||k=="PART")
	  p=0;
	else
	  p=1;
      }
      if(p==0&&(d=="case"||d=="mark")){
        k=c.nodes[t].upostag;
	if(k=="ADP"||k=="SCONJ"||k=="PART")
	  p=0;
	else
	  p=1;
      }
      if(p==0&&d=="aux"){
	if(c.nodes[t].upostag!="AUX")
	  p=1;
      }
      if(p==0&&(d=="discourse"||d=="discourse:sp")){
        k=c.nodes[t].upostag;
	if(k=="PART"||k=="INTJ")
	  p=0;
	else
	  p=1;
      }
      if(p==0&&(d=="nmod"||d=="compound"||d=="flat")){
        k=c.nodes[f].upostag;
	if(k=="NOUN"||k=="PROPN"||k=="PRON"||k=="NUM"||k=="PART")
	  p=0;
	else
	  p=1;
      }
      if(p==0&&(d=="obj"||d=="iobj"||d=="ccomp"||d=="xcomp")){
        k=c.nodes[f].upostag;
	if(k=="VERB"||k=="AUX")
	  p=0;
	else
	  p=1;
      }
      if(p==1){
	c.links[t].svg.setAttribute("stroke","pink");
	c.links[t].svg.setAttribute("fill","pink");
      }
    }
  }
}
</script>
</head>
<body>