我想在我的Angularjs应用程序中引入降价型功能,但我不会使用(或提供)Markdown引入的全套命令。我想只是一些使用花括号来表示特殊内容的基本功能。
例如:{ https://google.com }
将成为<a href="https://google.com">https://google.com</a>
并在预览窗格中显示为链接。
我看了这个视频(https://www.youtube.com/watch?v=nKJDHnXaKTY)给了我一些想法,但是它使用了我真不想使用的Showdown。
有人能给我任何指示吗?我假设一个指令将是这里的方式,但我需要使用正则表达式吗?
答案 0 :(得分:0)
你必须建立一个解析器。
这样的事情可能会给你一个开始:
假设您要转换分数:1/2将 1 / 2
/**
* Usage finds {#}|{#} and converts to math notation
**/
function transformFracs() {
//Grab digits with in {} recording only the numbers
var regex = /{(\d+)}\|{(\d+)}/;
//Cache for performance!
var div = $(this);
//Replace using html fraction notaion
var afterReplace = div.html().replace(regex,
"<sup>$1</sup>" +
"⁄" +
"<sub>$2</sub>")
//Replace content of original div
div.html(afterReplace);
}
$(".editable").blur(transformFracs);
我希望this会有所启动
答案 1 :(得分:0)
您可以创建一个指令并修改compile函数中的外部html。 Plunker
app.directive('markDown', function() {
return {
restrict: 'A',
replace: true,
link: function(scope, element, attrs) {
},
compile: function(tElement, tAttrs, transclude) {
tElement[0].outerHTML = tElement[0].innerText + "<a href='#'>Go crazy</a>";
console.log(tElement);
}
};
});