annotate examples/scripts.js @ 2491:c7b397a38422 default tip

Make it work with newer pygments
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sun, 10 Mar 2019 19:33:33 +0100
parents 9c9c0c032ae8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
691
9c9c0c032ae8 add scripts.js by default
sheep@ghostwheel
parents: 690
diff changeset
1 function hatta_dates() {
488
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
2 /* Scan whole document for UTC dates and replace them with localtime versions */
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
3 var parse_date = function (text) {
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
4 var m = /^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})Z$/.exec(text);
649
34e510ed6fba fix the date js
sheep@ghostwheel
parents: 489
diff changeset
5 return new Date(Date.UTC(+m[1], +m[2]-1, +m[3], +m[4], +m[5], +m[6]));
488
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
6 }
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
7 var format_date = function (d) {
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
8 var p = function(n) {return ('00'+n).slice(-2); };
690
db1f9a8dd6b5 fix the example javascript scripts
sheep@ghostwheel
parents: 649
diff changeset
9 var tz = -d.getTimezoneOffset()/60;
db1f9a8dd6b5 fix the example javascript scripts
sheep@ghostwheel
parents: 649
diff changeset
10 if (tz>=0) { tz = "+"+tz; }
649
34e510ed6fba fix the date js
sheep@ghostwheel
parents: 489
diff changeset
11 return ""+d.getFullYear()+"-"+p(d.getMonth()+1)+"-"+p(d.getDate())+" "+p(d.getHours())+":"+p(d.getMinutes())+" GMT"+tz;
488
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
12 }
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
13 var nodes = document.getElementsByTagName('abbr');
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
14 for (var i=0; i<nodes.length; ++i) {
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
15 var node = nodes[i];
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
16 if (node.className === 'date') {
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
17 var d = parse_date(node.getAttribute('title'));
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
18 if (d) {
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
19 node.textContent = format_date(d);
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
20 }
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
21 }
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
22 }
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
23 }
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
24
691
9c9c0c032ae8 add scripts.js by default
sheep@ghostwheel
parents: 690
diff changeset
25 function hatta_editor() {
489
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
26 var textBox = document.getElementById('editortext');
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
27 if (textBox) {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
28 var jumpLine = 0+document.location.hash.substring(1);
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
29 var textLines = textBox.textContent.match(/(.*\n)/g);
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
30 var scrolledText = '';
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
31 for (var i = 0; i < textLines.length && i < jumpLine; ++i) {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
32 scrolledText += textLines[i];
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
33 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
34 textBox.focus();
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
35 if (textBox.setSelectionRange) {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
36 textBox.setSelectionRange(scrolledText.length, scrolledText.length);
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
37 } else if (textBox.createTextRange) {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
38 var range = textBox.createTextRange();
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
39 range.collapse(true);
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
40 range.moveEnd('character', scrolledText.length);
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
41 range.moveStart('character', scrolledText.length);
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
42 range.select();
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
43 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
44 var scrollPre = document.createElement('pre');
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
45 textBox.parentNode.appendChild(scrollPre);
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
46 var style = window.getComputedStyle(textBox, '');
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
47 scrollPre.style.font = style.font;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
48 scrollPre.style.border = style.border;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
49 scrollPre.style.outline = style.outline;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
50 scrollPre.style.lineHeight = style.lineHeight;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
51 scrollPre.style.letterSpacing = style.letterSpacing;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
52 scrollPre.style.fontFamily = style.fontFamily;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
53 scrollPre.style.fontSize = style.fontSize;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
54 scrollPre.style.padding = 0;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
55 scrollPre.style.overflow = 'scroll';
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
56 try { scrollPre.style.whiteSpace = "-moz-pre-wrap" } catch(e) {};
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
57 try { scrollPre.style.whiteSpace = "-o-pre-wrap" } catch(e) {};
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
58 try { scrollPre.style.whiteSpace = "-pre-wrap" } catch(e) {};
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
59 try { scrollPre.style.whiteSpace = "pre-wrap" } catch(e) {};
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
60 scrollPre.textContent = scrolledText;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
61 textBox.scrollTop = scrollPre.scrollHeight;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
62 scrollPre.parentNode.removeChild(scrollPre);
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
63 } else {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
64 var baseUrl = '';
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
65 var tags = document.getElementsByTagName('link');
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
66 for (var i = 0; i < tags.length; ++i) {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
67 var tag = tags[i];
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
68 if (tag.getAttribute('type')==='application/wiki') {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
69 baseUrl = tag.getAttribute('href');
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
70 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
71 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
72 if (baseUrl==='') {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
73 return;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
74 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
75 var tagList = ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'pre', 'ul', 'div'];
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
76 for (var j = 0; j < tagList.length; ++j) {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
77 var tags = document.getElementsByTagName(tagList[j]);
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
78 for (var i = 0; i < tags.length; ++i) {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
79 var tag = tags[i];
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
80 if (tag.id && tag.id.match(/^line_\d+$/)) {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
81 tag.ondblclick = function () {
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
82 var url = baseUrl+'#'+this.id.replace('line_', '');
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
83 document.location.href = url;
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
84 };
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
85 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
86 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
87 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
88 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
89 }
ae0c6bfd4372 move js_editor to external javascript file, get rid of js_editor option
sheep@ghostwheel
parents: 488
diff changeset
90
488
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
91 window.onload = function () {
691
9c9c0c032ae8 add scripts.js by default
sheep@ghostwheel
parents: 690
diff changeset
92 hatta_dates();
9c9c0c032ae8 add scripts.js by default
sheep@ghostwheel
parents: 690
diff changeset
93 hatta_editor();
488
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
94 }
eb6c3163e69c example javascript for converting dates to localtime
sheep@ghostwheel
parents:
diff changeset
95