Loading Pulleyblank/editor-kanbun.html +81 −7 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 安岡孝一, July 14, 2018.</title> <title>CoNLL-U SVG Editor for 漢文 by 安岡孝一, July 15, 2018.</title> <script src="conllusvgview.js"></script> <script src="conllusvgedit.js"></script> <script src="conllusvgload.js"></script> <script> conllusvg.kanbun=new Object(); conllusvg.kanbun.checkURL=function(textid){ conllusvg.kanbun.checkURL=function(textid,pushid){ var h=location.href; var i=h.indexOf("#"); if(i>0&&h.length-i>0) conllusvg.loadRemote(textid,h.slice(i+1)); if(i>0&&h.length-i>0){ h=h.slice(i+1); conllusvg.loadRemote(textid,h); if(h.indexOf("/api/v4/projects/")<0) return; if(h.indexOf("/repository/files/")<0) return; i=h.indexOf("/raw?ref="); if(i<0) return; conllusvg.kanbun.gitlabURL=h.substring(0,i)+"?branch="+h.slice(i+9); h=h.substring(0,i); conllusvg.kanbun.gitlabFile=h.slice(h.lastIndexOf("/")+1); if(pushid==null) return; i=document.getElementById(pushid); i.style.visibility="visible"; } } conllusvg.kanbun.mecabUD=function(textid,t){ var c=conllusvg.main[textid]; Loading @@ -37,7 +53,6 @@ conllusvg.kanbun.consultCHISE=function(textid,z){ } conllusvg.kanbun.saveLocal=function(textid){ var c=conllusvg.main[textid]; var tx=document.getElementById(textid); var k,s; conllusvg.clearSVG(textid); conllusvg.renum(textid); Loading @@ -57,6 +72,64 @@ conllusvg.kanbun.saveLocal=function(textid){ conllusvg.view(c.svg,textid); conllusvg.saveLocal(textid); } conllusvg.kanbun.pushGitlab=function(textid){ var c=conllusvg.main[textid]; var tx=document.getElementById(textid); var i,k,s; conllusvg.clearSVG(textid); conllusvg.renum(textid); conllusvg.esrap(textid); conllusvg.parse(textid); conllusvg.makeNodes(textid); s="\n"; for(k=c.nodes.length-1;k>=0;k--){ if(c.nodes[k].id!=1) s=c.nodes[k].form+s; else{ s="# text = "+c.nodes[k].form+s+c.nodes[k].id; conllusvg.insertTextline(textid,c.nodes[k].textlineid,1,s); s="\n"; } } conllusvg.view(c.svg,textid); s=conllusvg.kanbun.gitlabURL+"&commit_message=API+editor-kanbun+"+conllusvg.kanbun.gitlabFile+"&content="; if(tx.value==null) s=s+encodeURIComponent(tx.textContent); else s=s+encodeURIComponent(tx.value); i=document.cookie.indexOf("conllusvg.kanbun.privateToken="); k=""; if(i>=0){ k=document.cookie.slice(i+30); i=k.indexOf(";"); if(i>=0) k=k.substring(0,i); } if(k=="") k=prompt("Gitlab private token:",""); if(k>"") conllusvg.kanbun.privateToken=k; else{ alert("push Gitlab failed"); return; } conllusvg.kanbun.request=new XMLHttpRequest(); conllusvg.kanbun.request.addEventListener("load",conllusvg.kanbun.onLoad); conllusvg.kanbun.request.open("PUT",s); conllusvg.kanbun.request.setRequestHeader("Private-Token",k); conllusvg.kanbun.request.send(); } conllusvg.kanbun.onLoad=function(e){ if(conllusvg.kanbun.request.status==200){ alert("push Gitlab succeeded"); document.cookie="conllusvg.kanbun.privateToken="+conllusvg.kanbun.privateToken+";secure"; } else{ alert("push Gitlab failed: status "+conllusvg.kanbun.request.status); document.cookie="conllusvg.kanbun.privateToken=;max-age=0"; } conllusvg.kanbun.request.removeEventListener("load",conllusvg.kanbun.onLoad); } conllusvg.kanbun.connectForm=function(textid,z){ var c=conllusvg.main[textid]; var ix=c.event.index; Loading Loading @@ -121,13 +194,14 @@ conllusvg.kanbun.divideForm=function(textid,z){ </head> <body> <table noborder><tr><td nowrap> <input type="text" value="漢文" onchange="conllusvg.kanbun.mecabUD('conllu',this)" /> <input type="button" value="load CoNLL-U" onclick="conllusvg.loadLocal('conllu')" /> <input type="button" value="save CoNLL-U" onclick="conllusvg.kanbun.saveLocal('conllu')" /> <input type="text" value="漢文" onchange="conllusvg.kanbun.mecabUD('conllu',this)" /> <input type="button" value="push Gitlab" id="gitlab" onclick="conllusvg.kanbun.pushGitlab('conllu')" style="visibility:hidden" /> </td></tr></table> <textarea cols="120" rows="10" id="conllu" onchange="conllusvg.reparse('conllu')"> </textarea> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" onload="conllusvg.edit(this,'conllu','deprel','upos','xpos');conllusvg.kanbun.checkURL('conllu')"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" onload="conllusvg.edit(this,'conllu','deprel','upos','xpos');conllusvg.kanbun.checkURL('conllu','gitlab')"> </svg> <select size=6 id="deprel" style="position:absolute; visibility:hidden"> <option>acl</option> Loading Loading
Pulleyblank/editor-kanbun.html +81 −7 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 安岡孝一, July 14, 2018.</title> <title>CoNLL-U SVG Editor for 漢文 by 安岡孝一, July 15, 2018.</title> <script src="conllusvgview.js"></script> <script src="conllusvgedit.js"></script> <script src="conllusvgload.js"></script> <script> conllusvg.kanbun=new Object(); conllusvg.kanbun.checkURL=function(textid){ conllusvg.kanbun.checkURL=function(textid,pushid){ var h=location.href; var i=h.indexOf("#"); if(i>0&&h.length-i>0) conllusvg.loadRemote(textid,h.slice(i+1)); if(i>0&&h.length-i>0){ h=h.slice(i+1); conllusvg.loadRemote(textid,h); if(h.indexOf("/api/v4/projects/")<0) return; if(h.indexOf("/repository/files/")<0) return; i=h.indexOf("/raw?ref="); if(i<0) return; conllusvg.kanbun.gitlabURL=h.substring(0,i)+"?branch="+h.slice(i+9); h=h.substring(0,i); conllusvg.kanbun.gitlabFile=h.slice(h.lastIndexOf("/")+1); if(pushid==null) return; i=document.getElementById(pushid); i.style.visibility="visible"; } } conllusvg.kanbun.mecabUD=function(textid,t){ var c=conllusvg.main[textid]; Loading @@ -37,7 +53,6 @@ conllusvg.kanbun.consultCHISE=function(textid,z){ } conllusvg.kanbun.saveLocal=function(textid){ var c=conllusvg.main[textid]; var tx=document.getElementById(textid); var k,s; conllusvg.clearSVG(textid); conllusvg.renum(textid); Loading @@ -57,6 +72,64 @@ conllusvg.kanbun.saveLocal=function(textid){ conllusvg.view(c.svg,textid); conllusvg.saveLocal(textid); } conllusvg.kanbun.pushGitlab=function(textid){ var c=conllusvg.main[textid]; var tx=document.getElementById(textid); var i,k,s; conllusvg.clearSVG(textid); conllusvg.renum(textid); conllusvg.esrap(textid); conllusvg.parse(textid); conllusvg.makeNodes(textid); s="\n"; for(k=c.nodes.length-1;k>=0;k--){ if(c.nodes[k].id!=1) s=c.nodes[k].form+s; else{ s="# text = "+c.nodes[k].form+s+c.nodes[k].id; conllusvg.insertTextline(textid,c.nodes[k].textlineid,1,s); s="\n"; } } conllusvg.view(c.svg,textid); s=conllusvg.kanbun.gitlabURL+"&commit_message=API+editor-kanbun+"+conllusvg.kanbun.gitlabFile+"&content="; if(tx.value==null) s=s+encodeURIComponent(tx.textContent); else s=s+encodeURIComponent(tx.value); i=document.cookie.indexOf("conllusvg.kanbun.privateToken="); k=""; if(i>=0){ k=document.cookie.slice(i+30); i=k.indexOf(";"); if(i>=0) k=k.substring(0,i); } if(k=="") k=prompt("Gitlab private token:",""); if(k>"") conllusvg.kanbun.privateToken=k; else{ alert("push Gitlab failed"); return; } conllusvg.kanbun.request=new XMLHttpRequest(); conllusvg.kanbun.request.addEventListener("load",conllusvg.kanbun.onLoad); conllusvg.kanbun.request.open("PUT",s); conllusvg.kanbun.request.setRequestHeader("Private-Token",k); conllusvg.kanbun.request.send(); } conllusvg.kanbun.onLoad=function(e){ if(conllusvg.kanbun.request.status==200){ alert("push Gitlab succeeded"); document.cookie="conllusvg.kanbun.privateToken="+conllusvg.kanbun.privateToken+";secure"; } else{ alert("push Gitlab failed: status "+conllusvg.kanbun.request.status); document.cookie="conllusvg.kanbun.privateToken=;max-age=0"; } conllusvg.kanbun.request.removeEventListener("load",conllusvg.kanbun.onLoad); } conllusvg.kanbun.connectForm=function(textid,z){ var c=conllusvg.main[textid]; var ix=c.event.index; Loading Loading @@ -121,13 +194,14 @@ conllusvg.kanbun.divideForm=function(textid,z){ </head> <body> <table noborder><tr><td nowrap> <input type="text" value="漢文" onchange="conllusvg.kanbun.mecabUD('conllu',this)" /> <input type="button" value="load CoNLL-U" onclick="conllusvg.loadLocal('conllu')" /> <input type="button" value="save CoNLL-U" onclick="conllusvg.kanbun.saveLocal('conllu')" /> <input type="text" value="漢文" onchange="conllusvg.kanbun.mecabUD('conllu',this)" /> <input type="button" value="push Gitlab" id="gitlab" onclick="conllusvg.kanbun.pushGitlab('conllu')" style="visibility:hidden" /> </td></tr></table> <textarea cols="120" rows="10" id="conllu" onchange="conllusvg.reparse('conllu')"> </textarea> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" onload="conllusvg.edit(this,'conllu','deprel','upos','xpos');conllusvg.kanbun.checkURL('conllu')"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" onload="conllusvg.edit(this,'conllu','deprel','upos','xpos');conllusvg.kanbun.checkURL('conllu','gitlab')"> </svg> <select size=6 id="deprel" style="position:absolute; visibility:hidden"> <option>acl</option> Loading