This repository has been archived by the owner on Sep 20, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathscripts.js
127 lines (124 loc) · 3.57 KB
/
scripts.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<script>
// Expects <picture><source media="(media_query)" srcset="big"><img src="small"></picture>
void function stupid_picture_polyfill() {
var pics = document.querySelectorAll('.fullres > picture > source + img');
if (pics.length === 0) return;
if ('currentSrc' in pics[0] || !'matchMedia' in window) return;
for (var i=0; i < pics.length; i++) {
var pic = pics[i], source = pic.previousElementSibling;
var mq = source.getAttribute('media');
var newsrc = source.getAttribute('srcset');
if (newsrc && window.matchMedia(mq).matches) {
pic.src = newsrc;
}
}
}();
</script>
{/block:IfFullresPhotoPosts}
{block:IfNotHideNotesLink}
<script>
void function xhr_tumblr_notes() {
function addNotes(url, container) {
var request = new XMLHttpRequest();
request.onload = function(){
var html = '<hr>
' + this.responseText;
container.insertAdjacentHTML('beforeend', html);
}
request.open('GET', url, true);
request.send();
}
var link = document.querySelector('.notes-link');
if (link) {
var container = document.querySelector('.notes-container');
link.addEventListener('click', function(event){
event.preventDefault();
addNotes(link.href, container);
var span = document.createElement('span');
span.className = 'notes-count';
span.textContent = link.textContent;
link.parentElement.replaceChild(span, link);
});
}
}();
</script>
{/block:IfNotHideNotesLink}
<script>
void function attach_tumblr_lightbox() {
function viewportW() {
var a = document.documentElement.clientWidth;
var b = window.innerWidth;
return a < b ? b : a;
}
function getImgInfo(link) {
return {
'width': link.getAttribute('data-width'),
'height': link.getAttribute('data-height'),
'low_res': link.getAttribute('data-lowres'),
'high_res': link.href
}
}
function callLightbox(event) {
if (viewportW() < 600) {
return;
}
var set = [], thisIndex = 1;
var thisLink = event.currentTarget;
var links = thisLink.parentElement.querySelectorAll('a');
for (var i=0; i<links.length; i++) {
if (links[i] === thisLink) {
thisIndex = i + 1;
}
set.push(getImgInfo(links[i]));
}
if (Tumblr.Lightbox && set.length > 0) {
event.preventDefault();
Tumblr.Lightbox.init(set, thisIndex);
}
}
// Init
var imgLinks = document.querySelectorAll('.UseTumblrLightbox > a');
for (var i=0, l=imgLinks.length; i<l; i++) {
imgLinks[i].addEventListener('click', callLightbox);
}
}();
</script>
{block:IfAddCollapseButtonsToQuotes}
<script>
void function toggle_those_blockquotes() {
function makeBtn(para, quote) {
var btn = document.createElement('button');
btn.type = 'button';
btn.className = 'quote-toggle';
btn.innerHTML = '<span>Toggle quote</span>';
btn.addEventListener('click', function(event){
var btn = event.currentTarget;
btn.classList.toggle('hidden');
quote.classList.toggle('hidden');
});
para.appendChild(btn);
}
function process(para, quote) {
// mark short quotes
if (quote.textContent.length < 80) {
para.className += ' short';
}
// looking for the <p><a>someone</a>:</p> pattern.
var link = para.querySelector('a:last-of-type');
if (link !== null && /[a-z0-9-]+/.test(link.textContent.trim())) {
var nxt = link.nextSibling;
var end = para.lastChild;
if (nxt !== end) return;
if (end.textContent.trim() === ':') {
para.className += ' quote-meta';
link.className += ' quote-author';
makeBtn(para, quote);
}
}
}
var quotes = document.querySelectorAll('.maintext p + blockquote');
for (var i=0, l=quotes.length; i<l; i++) {
process(quotes[i].previousElementSibling, quotes[i]);
}
}();
</script>