summaryrefslogtreecommitdiffstats
path: root/public/js
diff options
context:
space:
mode:
authorslene <vslene@gmail.com>2014-03-20 17:25:48 +0800
committerslene <vslene@gmail.com>2014-03-20 17:25:48 +0800
commitc3532718a79f102f4e19c11868a2c618b482eb6a (patch)
treec7593d04b0346ebc6af4daf073c200b4b02234a2 /public/js
parent8ef71343dfef8914e9383e159915baa6a341eeef (diff)
downloadgitea-c3532718a79f102f4e19c11868a2c618b482eb6a.tar.gz
gitea-c3532718a79f102f4e19c11868a2c618b482eb6a.zip
add anchor
Diffstat (limited to 'public/js')
-rw-r--r--public/js/app.js21
1 files changed, 20 insertions, 1 deletions
diff --git a/public/js/app.js b/public/js/app.js
index 30296bc337..f3e8d6d1d2 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -66,9 +66,28 @@ var Gogits = {
// render markdown
Gogits.renderMarkdown = function () {
- var $pre = $('.markdown').find('pre > code').parent();
+ var $md = $('.markdown');
+ var $pre = $md.find('pre > code').parent();
$pre.addClass("prettyprint");
prettyPrint();
+
+ // Set anchor.
+ var headers = {};
+ $md.find('h1, h2, h3, h4, h5, h6').each(function () {
+ var node = $(this);
+ var val = encodeURIComponent(node.text().toLowerCase().replace(/[^\w\- ]/g, '').replace(/[ ]/g, '-'));
+ var name = val;
+ if(headers[val] > 0){
+ name = val + '-' + headers[val];
+ }
+ if(headers[val] == undefined){
+ headers[val] = 1;
+ }else{
+ headers[val] += 1;
+ }
+ node = node.wrap('<div id="' + name + '" class="anchor-wrap" ></div>');
+ node.append('<a class="anchor" href="#' + name + '"><span class="octicon octicon-link"></span></a>');
+ });
}
})(jQuery);