如何在摊牌中将单行换行符视为<br>?
How to treat single line breaks as <br> in showdown?
如何使用摊牌 GitHub 风格处理换行符?
我试过一个扩展程序,可以做类似的事情:
return text.replace(/[ ]*\n/g, "<br />\n")
它在某些情况下有效,但会破坏列表。
好吧,所以我想出了一个扩展来做到这一点。
/**
* Showdown extension for GFM newlines.
*
* In very clear cases, let newlines become <br/> tags.
*
* This implementation is adopted from showdown-ghost.
*
*/
(function () {
var newline = function () {
return [{
type: 'lang',
filter: function(text) {
return text.replace(/^( *(\d+\. {1,4}|[\w\<\'\">\-*+])[^\n]*)\n{1}(?!\n| *\d+\. {1,4}| *[-*+] +|#|$)/gm, function(e) {
return e.trim() + " \n";
})
}
}];
};
if (window.showdown) {
window.showdown.extensions.newline = newline;
}
})();
虽然正则表达式未经过 100% 测试并且在极少数情况下可能会失败,但这对我来说效果很好,所以请考虑一下自己。
感谢这个伟大的扩展。这对我的一个项目很有帮助。
看起来这种定义扩展的方式是deprecated now。由于他们没有更新文档,但我使用 prettify 扩展作为模板将您编写的扩展更新为摊牌中编写扩展的新方式:
(function (extension) {
'use strict';
if (typeof showdown !== 'undefined') {
extension(showdown);
} else if (typeof define === 'function' && define.amd) {
define(['showdown'], extension);
} else if (typeof exports === 'object') {
module.exports = extension(require('showdown'));
} else {
throw Error('Could not find showdown library');
}
}(function(showdown){
'use strict';
showdown.extension('newline', function() {
return [{
type: 'lang',
filter: function(text) {
return text.replace(/^( *(\d+\. {1,4}|[\w\<\'\">\-*+])[^\n]*)\n{1}(?!\n| *\d+\. {1,4}| *[-*+] +|#|$)/gm, function(e) {
return e.trim() + " \n";
});
}
}];
})
}));
也许对未来的读者有所帮助。 Showdown 现在可以选择这样做。
converter.setOption('simpleLineBreaks', true);
如何使用摊牌 GitHub 风格处理换行符?
我试过一个扩展程序,可以做类似的事情:
return text.replace(/[ ]*\n/g, "<br />\n")
它在某些情况下有效,但会破坏列表。
好吧,所以我想出了一个扩展来做到这一点。
/**
* Showdown extension for GFM newlines.
*
* In very clear cases, let newlines become <br/> tags.
*
* This implementation is adopted from showdown-ghost.
*
*/
(function () {
var newline = function () {
return [{
type: 'lang',
filter: function(text) {
return text.replace(/^( *(\d+\. {1,4}|[\w\<\'\">\-*+])[^\n]*)\n{1}(?!\n| *\d+\. {1,4}| *[-*+] +|#|$)/gm, function(e) {
return e.trim() + " \n";
})
}
}];
};
if (window.showdown) {
window.showdown.extensions.newline = newline;
}
})();
虽然正则表达式未经过 100% 测试并且在极少数情况下可能会失败,但这对我来说效果很好,所以请考虑一下自己。
感谢这个伟大的扩展。这对我的一个项目很有帮助。
看起来这种定义扩展的方式是deprecated now。由于他们没有更新文档,但我使用 prettify 扩展作为模板将您编写的扩展更新为摊牌中编写扩展的新方式:
(function (extension) {
'use strict';
if (typeof showdown !== 'undefined') {
extension(showdown);
} else if (typeof define === 'function' && define.amd) {
define(['showdown'], extension);
} else if (typeof exports === 'object') {
module.exports = extension(require('showdown'));
} else {
throw Error('Could not find showdown library');
}
}(function(showdown){
'use strict';
showdown.extension('newline', function() {
return [{
type: 'lang',
filter: function(text) {
return text.replace(/^( *(\d+\. {1,4}|[\w\<\'\">\-*+])[^\n]*)\n{1}(?!\n| *\d+\. {1,4}| *[-*+] +|#|$)/gm, function(e) {
return e.trim() + " \n";
});
}
}];
})
}));
也许对未来的读者有所帮助。 Showdown 现在可以选择这样做。
converter.setOption('simpleLineBreaks', true);