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>
This commit is contained in:
Andrew Boyarshin 2017-02-14 08:13:59 +07:00 committed by Lunny Xiao
parent 5cc275b1de
commit dc8248f8a4
13 changed files with 1374 additions and 187 deletions

View file

@ -602,7 +602,7 @@ footer .ui.language .menu {
list-style-type: lower-roman;
}
.markdown:not(code) li > p {
margin-top: 16px;
margin-top: 0;
}
.markdown:not(code) dl {
padding: 0;
@ -841,6 +841,11 @@ footer .ui.language .menu {
background: #f8f8f8;
border-top: 0;
}
.markdown:not(code) .ui.list .list,
.markdown:not(code) ol.ui.list ol,
.markdown:not(code) ul.ui.list ul {
padding-left: 2em;
}
.home {
padding-bottom: 80px;
}

View file

@ -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();

View file

@ -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>")
)
);
});
});
};

View file

@ -205,7 +205,7 @@
}
li>p {
margin-top:16px;
margin-top:0;
}
dl {
@ -486,4 +486,8 @@
font-weight:bold;
background:#f8f8f8;border-top:0;
}
.ui.list .list, ol.ui.list ol, ul.ui.list ul {
padding-left: 2em;
}
}