Init Markdown support.
This commit is contained in:
parent
0b2f252c42
commit
65ff905a7c
30
js/md.js
30
js/md.js
|
@ -48,7 +48,7 @@ var markdown_parser = function(str){
|
|||
return '<h'+level+'>'+header.trim()+'</h'+level+'>';
|
||||
}],
|
||||
// images
|
||||
['/\\!\\[([^\\[]+)\\]\\(([^\\(]+)\\)/g', '<img src=\"\\2\" alt=\"\\1\" />'],
|
||||
// ['/\\!\\[([^\\[]+)\\]\\(([^\\(]+)\\)/g', '<img src=\"\\2\" alt=\"\\1\" />'],
|
||||
// link
|
||||
['/\\[([^\\[]+)\\]\\(([^\\(]+)\\)/g', '<a href=\"\\2\">\\1</a>'],
|
||||
// bold
|
||||
|
@ -60,25 +60,25 @@ var markdown_parser = function(str){
|
|||
// quote
|
||||
['/\\:\\"(.*?)\\"\\:/g', '<q>\\1</q>'],
|
||||
// unordered list
|
||||
['/\\n\\*(.*)/g', function(item){
|
||||
return '<ul>\n<li>'+item.trim()+'</li>\n</ul>';
|
||||
}],
|
||||
// ['/\\n\\*(.*)/g', function(item){
|
||||
// return '<ul>\n<li>'+item.trim()+'</li>\n</ul>';
|
||||
// }],
|
||||
// ordered list
|
||||
['/\\n[0-9]+\\.(.*)/g', function(item){
|
||||
return '<ol>\n<li>'+item.trim()+'</li>\n</ol>';
|
||||
}],
|
||||
// ['/\\n[0-9]+\\.(.*)/g', function(item){
|
||||
// return '<ol>\n<li>'+item.trim()+'</li>\n</ol>';
|
||||
// }],
|
||||
// blockquote
|
||||
['/\\n\\>(.*)/g', function(str){
|
||||
return '<blockquote>'+str.trim()+'</blockquote>';
|
||||
}],
|
||||
// paragraphs
|
||||
['/\\n[^\\n]+\\n/g', function(line){
|
||||
line = line.trim();
|
||||
if(line[0] === '<'){
|
||||
return line;
|
||||
}
|
||||
return '\n<p>'+line+'</p>\n';
|
||||
}]
|
||||
// paragraphs
|
||||
// ['/\\n[^\\n]+\\n/g', function(line){
|
||||
// line = line.trim();
|
||||
// if(line[0] === '<'){
|
||||
// return line;
|
||||
// }
|
||||
// return '\n<p>'+line+'</p>\n';
|
||||
// }]
|
||||
], fixes = [
|
||||
['/<\\/ul>\n<ul>/g', '\n'],
|
||||
['/<\\/ol>\n<ol>/g', '\n'],
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit fe4bedeb349ed867feba7cb3c996a97f726d2083
|
||||
Subproject commit e66cae5fd3e74c5839804e560332e5690709931a
|
|
@ -25,7 +25,7 @@ AvatarContainer {
|
|||
anchors.margins: 12
|
||||
wrapMode: Label.Wrap
|
||||
linkColor: isNotice ? Material.accent : sentByMe ? Material.accent : "white"
|
||||
textFormat: Text.StyledText
|
||||
textFormat: contentType === "text/html" ? Text.RichText : Text.StyledText
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -195,13 +195,34 @@ Item {
|
|||
|
||||
var type = "m.text"
|
||||
var PREFIX_ME = '/me '
|
||||
var PREFIX_RAINBOW = '/rainbow'
|
||||
if (text.indexOf(PREFIX_ME) === 0) {
|
||||
text = text.substr(PREFIX_ME.length)
|
||||
type = "m.emote"
|
||||
}
|
||||
if (text.indexOf(PREFIX_RAINBOW) === 0) {
|
||||
text = text.substr(PREFIX_RAINBOW.length)
|
||||
}
|
||||
|
||||
// var parsedText = Markdown.markdown_parser(text)
|
||||
currentRoom.postMessage(type, text)
|
||||
var result = parse(text)
|
||||
var parsedText = result[0]
|
||||
var isMarkdown = result [1]
|
||||
|
||||
if (isMarkdown) currentRoom.postHtmlMessage(text, parsedText, type)
|
||||
else currentRoom.postMessage(type, text)
|
||||
}
|
||||
|
||||
function parse(text) {
|
||||
if (!testHTML(text)) {
|
||||
var parsedText = Markdown.markdown_parser(text)
|
||||
if (testHTML(parsedText)) return [parsedText, true]
|
||||
}
|
||||
return [text, false]
|
||||
}
|
||||
|
||||
function testHTML(text) {
|
||||
var re = new RegExp("(<([^>]+)>)")
|
||||
return re.test(text)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue