注意:使用本软件前,需先在博客园后台设置默认编辑器为markdown
废话少说,先上界面图片:
10月25日,我发布了博客园文章编辑器的4.0版本,得到了很多朋友的支持,
(后来我自己发现了一些问题,于是偷偷发了博客园文章编辑器的4.0.1版本,也没通知大家,不过好在有自动升级功能)
当时有很多朋友问我,这个工具支持不支持markdown,
我觉得写markdown的人还是挺多的,
调查了博客园确实支持markdown编辑器,
而且我开发了markdown的编辑器,对于那些使用HTML富文本编辑器的用户来说,也很容易上手,没太大改变,
还能使他们通过我的编辑器学习一点markdown的语法知识,何乐而不为呢?!
说实话,我确实低估了开发这个东西的难度
本打算到github上随便拉一个来,
嵌到nwjs里去就可以了,
然而看了几个高分项目,都不合我意。
(不过,说真心话还是要感谢这些项目,我写这个工具参考了很多这些开源项目的源码)
我觉得这个项目最主要的难点是:
好在这些难点我都克服了
现在你看到的东西,就是这一阵子断断续续努力的成果
这里罗列的是所有的我觉得重要的功能
开源地址:https://gitee.com/xland/cnblogs
下载地址:https://gitee.com/xland/cnblogs/releases
强烈希望大家能给个star;
这让我知道你在用;
这让我有动力继续做一些对大家有用的东西;
第一段代码是用于控制滚动条同步滚动的:
var editorScroll = function () {
setTimeout(function () {
if (rightScrolling) {
return;
}
var scrollInfo = editor.getScrollInfo();
var lineNumber = editor.lineAtHeight(scrollInfo.top, 'local');
var range = editor.getRange({ line: 0, ch: null }, { line: lineNumber, ch: null });
var parser = new DOMParser();
var doc = parser.parseFromString(marked(range), 'text/html');
var topLineIndex = doc.body.querySelectorAll('p, h1, h2, h3, h4, h5, h6, li, pre, blockquote, hr, table').length;
var eles = document.getElementById("right").querySelectorAll('p, h1, h2, h3, h4, h5, h6, li, pre, blockquote, hr, table');
var scTop = eles[topLineIndex].offsetTop;
$(".right").scrollTop(scTop);
}, 800)
}
editor.on("scroll", editorScroll);
第二段代码,是用于插入markdown特有语法符号的
var wrapWidth = function (start, end) {
if (!end) {
end = start;
}
var arr = editor.doc.getSelections();
var result = [];
arr.forEach(item => {
var tempArr = item.split('\n');
for (var i = 0; i < tempArr.length; i++) {
if (tempArr[i]) {
tempArr[i] = start + tempArr[i] + end;
}
}
result.push(tempArr.join('\n'));
})
editor.doc.replaceSelections(result);
};