|
1 | | -(function() { |
2 | | - var print = { |
3 | | - date: function(date) { |
| 1 | +(function () { |
| 2 | + 'use strict'; |
| 3 | + var print, renderData, articles, tagFilter, storedHash; |
| 4 | + print = { |
| 5 | + date: function (date) { |
4 | 6 | if (!date) { |
5 | 7 | return ''; |
6 | | - } else { |
7 | | - return '<span class="date">' + date + '</span>'; |
8 | 8 | } |
| 9 | + return '<span class="date">' + date + '</span>'; |
9 | 10 | }, |
10 | | - tags: function(tags) { |
| 11 | + tags: function (tags) { |
11 | 12 | if (!tags) { |
12 | 13 | return ''; |
13 | | - } else { |
14 | | - return tags.split(" ").map(function(tag) { |
15 | | - var trans = { translated: "번역", movie: "동영상" }; |
16 | | - return '<a href="#' + tag + '" class="tag tag-' + tag + '">' + (trans[tag] || tag) + '</a>'; |
17 | | - }).join(" "); |
18 | 14 | } |
| 15 | + return tags.split(" ").map(function (tag) { |
| 16 | + var trans = { translated: "번역", movie: "동영상" }; |
| 17 | + return '<a href="#' + tag + '" class="tag tag-' + tag + '">' + (trans[tag] || tag) + '</a>'; |
| 18 | + }).join(" "); |
19 | 19 | }, |
20 | | - author: function(author) { |
| 20 | + author: function (author) { |
21 | 21 | if (!author) { |
22 | 22 | return ''; |
23 | | - } else { |
24 | | - return '<span class="author">by ' + author + '</span>'; |
25 | 23 | } |
| 24 | + return '<span class="author">by ' + author + '</span>'; |
26 | 25 | } |
27 | 26 | }; |
28 | | - |
29 | | - var renderData = function(links) { |
30 | | - for (var i = 0, l = links.length; i < l; i ++) { |
31 | | - var link = links[i]; |
32 | | - var li = link.parentElement; |
| 27 | + renderData = function (links) { |
| 28 | + var i, l, link, li; |
| 29 | + for (i = 0, l = links.length; i < l; i += 1) { |
| 30 | + link = links[i]; |
| 31 | + li = link.parentElement; |
33 | 32 | li.innerHTML = [ |
34 | 33 | print.date(link.dataset.date), |
35 | 34 | print.tags(link.dataset.tags), |
|
38 | 37 | ].join(" "); |
39 | 38 | } |
40 | 39 | }; |
41 | | - |
42 | | - var articles = document.getElementsByClassName("article"); |
43 | | - renderData(articles); |
44 | | - |
45 | | - var tagFilter = function(tagName) { |
46 | | - var tagLinks = document.getElementById("tags").children; |
47 | | - var tags = []; |
48 | | - for (var i = 0, l = tagLinks.length; i < l; i ++) { |
49 | | - var tagLink = tagLinks[i]; |
| 40 | + articles = document.getElementsByClassName("article"); |
| 41 | + tagFilter = function (tagName) { |
| 42 | + var tagLinks, tags, i, l, tagLink, article, li, articleTags; |
| 43 | + tagLinks = document.getElementById("tags").children; |
| 44 | + tags = []; |
| 45 | + for (i = 0, l = tagLinks.length; i < l; i += 1) { |
| 46 | + tagLink = tagLinks[i]; |
50 | 47 | tags.push(tagLink.dataset.name); |
51 | 48 | } |
52 | 49 | tagName = tagName.slice(1); |
53 | 50 | if (tags.indexOf(tagName) > -1) { |
54 | | - console.log("eisxt"); |
55 | | - for (var i = 0, l = tagLinks.length; i < l; i ++) { |
56 | | - var tagLink = tagLinks[i]; |
57 | | - if (tagName == tagLink.dataset.name) { |
| 51 | + for (i = 0, l = tagLinks.length; i < l; i += 1) { |
| 52 | + tagLink = tagLinks[i]; |
| 53 | + if (tagName === tagLink.dataset.name) { |
58 | 54 | tagLink.className = "tag tag-" + tagLink.dataset.name; |
59 | 55 | } else { |
60 | 56 | tagLink.className = "tag tag-disable"; |
61 | 57 | } |
62 | 58 | } |
63 | | - for (var i = 0, l = articles.length; i < l; i ++) { |
64 | | - var article = articles[i]; |
65 | | - var li = article.parentElement; |
66 | | - var articleTags = article.dataset.tags; |
| 59 | + for (i = 0, l = articles.length; i < l; i += 1) { |
| 60 | + article = articles[i]; |
| 61 | + li = article.parentElement; |
| 62 | + articleTags = article.dataset.tags; |
67 | 63 | li.hidden = !(articleTags && articleTags.split(" ").indexOf(tagName) > -1); |
68 | 64 | } |
69 | 65 | } else { |
70 | | - console.log("no"); |
71 | | - for (var i = 0, l = tagLinks.length; i < l; i ++) { |
72 | | - var tagLink = tagLinks[i]; |
| 66 | + for (i = 0, l = tagLinks.length; i < l; i += 1) { |
| 67 | + tagLink = tagLinks[i]; |
73 | 68 | tagLink.className = "tag tag-" + tagLink.dataset.name; |
74 | 69 | } |
75 | | - for (var i = 0, l = articles.length; i < l; i ++) { |
76 | | - var article = articles[i]; |
77 | | - var li = article.parentElement; |
| 70 | + for (i = 0, l = articles.length; i < l; i += 1) { |
| 71 | + article = articles[i]; |
| 72 | + li = article.parentElement; |
78 | 73 | li.hidden = false; |
79 | 74 | } |
80 | 75 | } |
81 | 76 | }; |
82 | 77 |
|
83 | | - if ("onhashchange" in window) { // event supported? |
| 78 | + if (window.hasOwnProperty("onhashchange")) { // event supported? |
84 | 79 | window.onhashchange = function () { |
85 | 80 | tagFilter(window.location.hash); |
86 | | - } |
| 81 | + }; |
87 | 82 | } else { // event not supported: |
88 | | - var storedHash = window.location.hash; |
| 83 | + storedHash = window.location.hash; |
89 | 84 | window.setInterval(function () { |
90 | | - if (window.location.hash != storedHash) { |
| 85 | + if (window.location.hash !== storedHash) { |
91 | 86 | storedHash = window.location.hash; |
92 | 87 | tagFilter(storedHash); |
93 | 88 | } |
94 | 89 | }, 100); |
95 | 90 | } |
| 91 | + renderData(articles); |
96 | 92 | tagFilter(window.location.hash); |
97 | 93 | })(); |
0 commit comments