function highlightRange(range) {
var newNode = document.createElement('mark2');
range.surroundContents(newNode);
}
// Function to get the Selected Text
function getSelectedText() {
var selectedText = '';
selectedText = window.getSelection();
console.log(selectedText);
// window.getSelection
if (window.getSelection) {
selectedText = window.getSelection();
for(var i = 0; i < selectedText.rangeCount; i++) {
highlightRange(selectedText.getRangeAt(i));
}
}
// document.getSelection
else if (document.getSelection) {
selectedText = document.getSelection();
}
// document.selection
else if (document.selection) {
selectedText = document.selection.createRange().text;
} else return;
// To write the selected text into the textarea
if (document.getElementsByTagName("title")[1] !=null){
var papertitle = document.getElementsByTagName("title")[1].textContent;
}else{
var papertitle = url;
}
// document.testform.selectedtext.value += selectedText +"\n";
if (document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value == ""){
document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value += "====== "+papertitle+" ====== \r\n [["+url+"|" + papertitle + "]] [[?do=highlight2wiki&ur="+url+"|✍Highlight]]--"+timestamp+"\r\n\n";
document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value += "{{tag> }}\r\n\n"; //add tag syntax
}
let selectedTextString = document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value;
document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value += selectedTextString + selectedText + "\n\n";
}
function markjs(){
let selectedText = window.getSelection();
selectedTextString = selectedText.toString();
var instance = new Mark(document.getElementById("wanttext"));
var lines = selectedTextString.split('\n'); // lines is an array of strings
for (var j = 0; j < lines.length; j++) {
instance.mark(lines[j], {
"element": "mark2",
"acrossElements": true,
"separateWordSearch": false,
"diacritics": false});
document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value += lines[j] + "\n\n";
}
}
function loadmarkjs(){
var textArea = document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value;
var lines = textArea.split('\n\n'); // lines is an array of strings
var instance2 = new Mark(document.getElementById("wanttext"));
// Loop through all lines
for (var j = 0; j < lines.length; j++) {
// highlight(lines[j]);
console.log(lines[j]);
instance2.mark(lines[j], {
"element": "mark2",
"acrossElements": true,
"separateWordSearch": false,
"diacritics": false});
}
}
function loadmarkjsfr(){
var textArea = document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value;
var lines = textArea.split('\n\n'); // lines is an array of strings
var instance2 = new Mark(document.getElementById("wanttext"));
// Loop through all lines
for (var j = 0; j < lines.length; j++) {
// highlight(lines[j]);
console.log(lines[j]);
instance2.mark(lines[j], {
"element": "markfr",
"acrossElements": true,
"separateWordSearch": false,
"diacritics": false});
}
}
function highlight_2(){
let selectedText = window.getSelection();
selectedText = selectedText.toString();
console.log(selectedText);
highlight(selectedText);
}
function highlight(text) {
//document.documentElement.innerHTML = document.documentElement.innerHTML.replace(new RegExp(text + '(?!([^<]+)?<)', 'gi'),'$&');;
var inputText = document.getElementById("wanttext");
var innerHTML = inputText.innerHTML;
var index = innerHTML.indexOf(text);
console.log(index);
if (index >= 0) {
innerHTML = innerHTML.substring(0,index) + "" + innerHTML.substring(index,index+text.length) + "" + innerHTML.substring(index + text.length);
inputText.innerHTML = innerHTML;
}
}
function loadhighlight(){ // load the hightlight text from dokuwiki textarea
var textArea = document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value;
var lines = textArea.split('\n\n'); // lines is an array of strings
// Loop through all lines
for (var j = 0; j < lines.length; j++) {
highlight(lines[j]);
console.log(lines[j]);
//document.testform.selectedtext.value += lines[j];
}
}
function loadhighlightrevision(){
var textArea = document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value;
var lines = textArea.split('\n\n'); // lines is an array of strings
// Loop through all lines
for (var j = 0; j < lines.length; j++) {
highlight2(lines[j]);
console.log(lines[j]);
//document.testform.selectedtext.value += lines[j];
}
}
function highlight2(text) {
// hightlight for revision
//document.documentElement.innerHTML = document.documentElement.innerHTML.replace(new RegExp(text + '(?!([^<]+)?<)', 'gi'),'$&');;
var inputText = document.getElementById("wanttext");
var innerHTML = inputText.innerHTML;
var index = innerHTML.indexOf(text);
console.log(index);
if (index >= 0) {
innerHTML = innerHTML.substring(0,index) + "" + innerHTML.substring(index,index+text.length) + "" + innerHTML.substring(index + text.length);
inputText.innerHTML = innerHTML;
}
}
function edittag(){
var newtagselection = window.getSelection();
var newtagcomponent = newtagselection.toString();
newtagcomponent =newtagcomponent.trim();
if(newtagcomponent.match(/\s/)){
newtagcomponent = "\""+newtagcomponent+"\"";
}
console.log(newtagcomponent.toString());
var textArea = document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value;
var newtextArea;
if(textArea.match(/\{{tag>(.+?)\}}/i)!=null){
console.log("not null");
var textareamatch = textArea.match(/\{{tag>(.+?)\}}/i);
console.log(textareamatch[1]+" "+ newtagcomponent.toString());
newtextArea = textArea.replace(/\{{tag>(.*)\}}/i,"{{tag>"+textareamatch[1]+" "+ newtagcomponent.toString()+"}}");
console.log(newtextArea);
document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value = newtextArea;
}else{
console.log("null");
document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value += "{{tag>" + newtagcomponent.toString() + "}}\r\n\n";
}
}
function loadH2WFunc(){
jQuery('#wanttext *').removeAttr('height width sizes style alt sizes');
jQuery('#wanttext *').removeClass();
jQuery('#wanttext link').remove();
jQuery('#wanttext textarea').remove();
jQuery('#wanttext input').remove();
jQuery('#wanttext button').remove();
//add host root to img src
url_hostns =stripTrailingSlash(url_host);
jQuery('#wanttext img').each(function(key,value) {
if(jQuery(this).attr('src')!=null){
if (jQuery(this).attr('src').includes('http')){
//console.log('completed url:'+jQuery(this).attr('src'));
}else{
//console.log('image src link broken:'+jQuery(this).attr('src'));
var scrurl= url_hostns + jQuery(this).attr('src');
jQuery(this).attr('src', scrurl);
//console.log('addedhostroot:'+jQuery(this).attr('src'));
}
//convert data-src to src
if(jQuery(this).attr('data-src')!=null){
//console.log('datasrc:'+jQuery(this).attr('data-src'));
jQuery(this).attr('src', jQuery(this).attr('data-src'));
//console.log('src change to '+ jQuery(this).attr('src'));
}
}
});
jQuery('#wanttext *').each(function(key,value) {
if(jQuery(this).attr('href')!=null){
if (jQuery(this).attr('href').includes('http')){
//console.log('link complete url:'+jQuery(this).attr('href'));
}else{
//console.log('link broken:'+jQuery(this).attr('href'));
var scrurl= url_hostns + jQuery(this).attr('href');
jQuery(this).attr('href', scrurl);
//console.log('link hostroot added:'+jQuery(this).attr('href'));
}
}
});
if (document.getElementsByTagName("title")[1] !=null){
var papertitle = document.getElementsByTagName("title")[1].textContent;
}else{
var papertitle = url;
}
if (document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value == ""){
document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value += "====== "+papertitle+" ====== \r\n [["+url+"|" + papertitle + "]] [[?do=highlight2wiki&ur="+url+"|✍Highlight]]--"+timestamp+"\r\n\n";
document.getElementById("edtop").contentWindow.document.getElementsByTagName("textarea")[0].value += "{{tag> }}\r\n\n"; //add tag syntax
}
jQuery('#wanttext').append(' ');
}
function cleanorphantext(){
jQuery('wanttext').contents().filter(function(){return this.nodeType != 1;}).remove();
alert('orphan text cleared');
}
function HLdarkmode(){
jQuery('div').toggleClass("dark-mode");
}
function stripTrailingSlash(str){
if(str.charAt(str.length-1) == "/"){ str = str.substr(0, str.length - 1);}
return str
}