-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
58 lines (48 loc) · 1.62 KB
/
Copy pathscript.js
File metadata and controls
58 lines (48 loc) · 1.62 KB
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
var tagPicker = document.getElementById("tag-picker")
if (tagPicker) {
var titleTag = snack.qwery("section.articles h1")[0]
var origTitle = titleTag.innerHTML.trim()
var showAll = snack.qwery("section.articles h1 a")[0]
var articleList = snack.qwery("section.articles ul.articles")[0]
var articles = snack.qwery("li", articleList)
var activeTag
function filterArticles(el) {
var tag = el.getAttribute("href").split("#")[1]
if (tag === "_") return
snack.each(articles, function(article) {
var link = snack.qwery("a", article)[0]
var tags = link.getAttribute("data-tags").split(",")
if (activeTag) activeTag.removeAttribute("class")
activeTag = el
activeTag.setAttribute("class", "active")
showAll.removeAttribute("style")
articleList.setAttribute("class", "filtered")
article.removeAttribute("class", "selected")
snack.each(tags, function(tagged) {
if (tagged.trim() && tagged.trim() === tag) {
article.setAttribute("class", "selected")
return
}
})
})
}
var params = {
node: tagPicker,
event: "click",
delegate: function(node) {
return snack.qwery("li.tag a", node)
}
}
snack.listener(params, function(ev) {
filterArticles(this)
})
snack.listener({ node: showAll, event: "click" }, function() {
this.setAttribute("style", "display:none")
articleList.removeAttribute("class")
})
var hashTag = document.location.hash.split("#")[1]
if (hashTag) {
var link = snack.qwery("section.tags a[href='#" + hashTag + "']")[0]
if (link) filterArticles(link)
}
}