支持OneNote for Window10代码高亮工具

您所在的位置:网站首页 bilibiliworld有什么 支持OneNote for Window10代码高亮工具

支持OneNote for Window10代码高亮工具

2023-01-09 13:35| 来源: 网络整理| 查看: 265

支持OneNote for Window10代码高亮工具

如果有同学使用过OneNote,就会发现OneNote原本是不支持代码高亮的,OneNote目前有两个常见的版本,一个是Office自带的OneNote(下面简称为OneNoteOffice),这个OneNote是支持装高亮插件的,一个就是OneNote for Window10(下面简称为OneNote10),这个OneNote是不支持装插件的,两个版本的颜值对比: 所以由于个人的习惯,我更习惯OneNote10的排布方式,OneNoteOffice虽然功能更强,但是排布上面看起来有点花里胡哨,而且我曾经由于代码高亮问题做过妥协,准备安装一个插件尝试一下能不能接受,结果就是插件也装不上去(可能是我菜吧):

后面寻求了一下OneNote10有没有现成的高亮代码软件,发现有一个叫做珍宝菜单的,然后发现有点小贵,勉强可以接受,但是付费机制有点坑爹,一台电脑要买一个激活码,这样买下去不得破产: 本着程序员刻(shi)苦(zai)钻(shi)研(qiong)的精神我开始了代码高亮的研究:

研究C#有没有现成的库可以实现代码高亮,期间还去研究珍宝插件的实现机制,结果核心算法是C++实在让人裂开;

网上在线代码高亮,研究了一下复制后存在于剪切板的html代码,灵机一动我可不可以自己拼一串Html代码出来,就这样勤勤恳恳的研究了好几天,发现我那学了一半的js还是太菜了,失败告终;

第二次尝试虽然失败了,但是也让我关注到了js代码高亮库SyntaxHighlighter,所以我想我只要能模拟打开网页以及全部复制的操作不就行了,经过第二次的尝试,让我知道通过浏览器直接实现比较困难(菜是原罪),所以回到我自己熟悉的领域,WPF有没有办法内嵌一个网页呢? 实际上有两种方案: 第一种是使用自带WebBriwser; 第二种是使用CefSharp包调用Chrom内核; 本着面向谷歌编程的原则,我选择了第二种方案。

经过一波三折我最终敲定了以WPF+CefSharp+静态html的方式来实现代码高亮的方案: 由于本人对js停留在一知半解的水平,所以采取的是js方法加C#修改html文本方式实现的: C#代码:

/// /// 粘贴到剪切板 /// /// private void Paste(object obj) { string text = Clipboard.GetText(); if (string.IsNullOrWhiteSpace(text)) { return; } else { CodeText = text; Render(); } } private void Copy(object obj) { var mainFrame = _chromWebBrowser.GetBrowser().MainFrame; mainFrame.SelectAll(); mainFrame.Copy(); } /// /// 更改Html文件,重新加载渲染网页 /// private void Render() { if (_chromWebBrowser == null) return; var htmlLineList = File.ReadAllLines(_htmlPath, Encoding.UTF8).ToList(); string gutterStatus = GutterStatus ? "true" : "false"; for (int i = 0; i htmlLineList[i] = Regex.Replace(current, "scripts.+.js", [email protected]"scripts/shBrush{CodeLanguage}.js"); } else if (current.Contains("CShape代碼調用方法")) { htmlLineList[i + 1] = $"HeightLight('{CodeStyle}','{FontFamily}',{(int)FontSize},{gutterStatus});"; } else if (current.Contains("pre") && current.Contains("code_pre")) { htmlLineList[i] = $"


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3