summaryrefslogtreecommitdiff
path: root/public/js/extra.js
diff options
context:
space:
mode:
authorWu Cheng-Han2016-10-19 22:10:33 +0800
committerWu Cheng-Han2016-10-19 22:10:33 +0800
commit5640de8c77ed861947bd34748889b5dbaccf08c1 (patch)
treea662897eb1157359a97e623aaee4e29a275fdd4f /public/js/extra.js
parent866c10d9428c0a23b92ccab441c113a33d463962 (diff)
Update to make history not depends on extra
Diffstat (limited to 'public/js/extra.js')
-rw-r--r--public/js/extra.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/public/js/extra.js b/public/js/extra.js
index 436721a3..4e325446 100644
--- a/public/js/extra.js
+++ b/public/js/extra.js
@@ -101,6 +101,41 @@ function renderFilename(view) {
return filename;
}
+// render tags
+function renderTags(view) {
+ var tags = [];
+ var rawtags = [];
+ if (md && md.meta && md.meta.tags && (typeof md.meta.tags == "string" || typeof md.meta.tags == "number")) {
+ var metaTags = ('' + md.meta.tags).split(',');
+ for (var i = 0; i < metaTags.length; i++) {
+ var text = metaTags[i].trim();
+ if (text) rawtags.push(text);
+ }
+ } else {
+ view.find('h6').each(function (key, value) {
+ if (/^tags/gmi.test($(value).text())) {
+ var codes = $(value).find("code");
+ for (var i = 0; i < codes.length; i++) {
+ var text = codes[i].innerHTML.trim();
+ if (text) rawtags.push(text);
+ }
+ }
+ });
+ }
+ for (var i = 0; i < rawtags.length; i++) {
+ var found = false;
+ for (var j = 0; j < tags.length; j++) {
+ if (tags[j] == rawtags[i]) {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ tags.push(rawtags[i]);
+ }
+ return tags;
+}
+
function slugifyWithUTF8(text) {
var newText = S(text.toLowerCase()).trim().stripTags().dasherize().s;
newText = newText.replace(/([\!\"\#\$\%\&\'\(\)\*\+\,\.\/\:\;\<\=\>\?\@\[\\\]\^\`\{\|\}\~])/g, '');
@@ -1076,6 +1111,7 @@ module.exports = {
renderTOC: renderTOC,
renderTitle: renderTitle,
renderFilename: renderFilename,
+ renderTags: renderTags,
generateToc: generateToc,
smoothHashScroll: smoothHashScroll,
scrollToHash: scrollToHash,