summaryrefslogtreecommitdiffstats
path: root/public/js
diff options
context:
space:
mode:
authorAndrew Boyarshin <andrew.boyarshin@gmail.com>2017-02-14 08:13:59 +0700
committerLunny Xiao <xiaolunwen@gmail.com>2017-02-14 09:13:59 +0800
commitdc8248f8a49e4801e119008a32b28cd2ad6e1a57 (patch)
treef3749cdfb1b4766e6f9d7d601f2de7654b747087 /public/js
parent5cc275b1defc56d54bec23d1a5740c3fadcff2b0 (diff)
downloadgitea-dc8248f8a49e4801e119008a32b28cd2ad6e1a57.tar.gz
gitea-dc8248f8a49e4801e119008a32b28cd2ad6e1a57.zip
Markdown rendering overhaul (#186)
* Markdown rendering overhaul Cleaned up and squashed commits into single one. Signed-off-by: Andrew Boyarshin <boyarshinand@gmail.com> * Fix markdown API, add markdown module and API tests, improve code coverage Signed-off-by: Andrew Boyarshin <boyarshinand@gmail.com>
Diffstat (limited to 'public/js')
-rw-r--r--public/js/index.js2
-rw-r--r--public/js/libs/autolink.js12
2 files changed, 14 insertions, 0 deletions
diff --git a/public/js/index.js b/public/js/index.js
index e700da29f8..2e0e26f55c 100644
--- a/public/js/index.js
+++ b/public/js/index.js
@@ -613,6 +613,7 @@ function initWikiForm() {
function (data) {
preview.innerHTML = '<div class="markdown">' + data + '</div>';
emojify.run($('.editor-preview')[0]);
+ $('.editor-preview').autolink();
}
);
}, 0);
@@ -1388,6 +1389,7 @@ $(document).ready(function () {
node.append('<a class="anchor" href="#' + name + '"><span class="octicon octicon-link"></span></a>');
});
});
+ $('.markdown').autolink();
buttonsClickOnEnter();
searchUsers();
diff --git a/public/js/libs/autolink.js b/public/js/libs/autolink.js
new file mode 100644
index 0000000000..a5d1e3a6ef
--- /dev/null
+++ b/public/js/libs/autolink.js
@@ -0,0 +1,12 @@
+jQuery.fn.autolink = function() {
+ return this.find('*').contents().filter(function () { return this.nodeType === 3; }).each(function() {
+ var re = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-]*)?\??(?:[\-\+:=&;%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g;
+ $(this).each(function() {
+ $(this).replaceWith(
+ $("<span />").html(
+ this.nodeValue.replace(re, "<a href='$1'>$1</a>")
+ )
+ );
+ });
+ });
+}; \ No newline at end of file