一、软件开发中大家都用什么文档编辑工具?
前言
大家好, 我是徐小夕, 之前和大家分享了一个在线文档编辑器PowerNice
, 它可以轻松帮我们编写文档并一键导出多种格式比如html
,pdf
, md
, png图片
等, 如下:
最近为了让编辑器满足更多场景需求, 我开发了桌面端软件版本——powernice-electron, 支持mac
和 window
, 大家感兴趣可以在文末获取.
接下来我来对powernice
技术实现和功能做一个介绍.
背景
作为一名技术工作者, 我们经常会遇到编写技术文档, 技术分享等需求, 网上也有很多现成的文档管理工具, 出于好奇心, 我拉着朋友一起实现了一个, 用来自给自足. 接下来就来介绍一下轻量级且灵活方便的文档编辑工具—— 「powerNice」.
「powerNice」 提供两种方式来编写文章/文档, 即程序员最喜欢的 markdown
, 也可以使用非技术人员最容易上手的富文本编辑器.
demo演示
技术选型
实现 「powerNice」 在线文档编辑器我们采用如下核心技术栈:
- React
- Ant Design
- Dva
- For-editor
- Braft-editor
- Nodejs
- 浏览器指纹识别技术
功能盘点
1.多模式编辑
多模式编辑主要是指我们可以用富文本和md
编辑器来编辑我们的文章, 我们采用最熟悉的 React
来实现, 效果如下:
2. 多主题 目前支持2套主题, 浅色和深色, 主要从用户体验的角度方便用户夜间写作. 效果如下:
- 深色
- 浅色
3. 支持一键导入导出 为了提高我们的写作效率以及对文章的多路复用, 我们提供了一键导入导出文件等功能, 具体如下:
- 导出
Markdown
- 导出
PDF
- 基于文章导出海报图
- 导入
Markdown
文件 - 下载文章
html
内容
使用截图如下:
下载的html内容预览如下:
还原度还是非常高的~ 4. 多模式预览 多模式预览主要是右侧的预览区, 我们支持手机端预览和pc
端预览, 如下图:
5. 字数行数统计 字数行数统计主要是帮助作者做内容统计, 这块实现不是很难, 我们看看预览效果:
6. 文章管理 文章管理主要是管理用户编写的内容, 这里因为我们做的是线上工具, 用户识别主要采用浏览器指纹识别技术来区分用户, 用户可以轻松在编辑器文章列表中切换文章进行编辑, 效果如下:
核心技术实现 1. 导入导出多类型文件
- 「导入md/html文件」 导入
md
文件我们主要利用ant
的upload
组件和FileReader
API, 具体实现如下:
{
name: 'file',
showUploadList: false,
beforeUpload(file: any): any {
const reader = new FileReader()
reader.onload = function(e: Event) {
const data = (e as any).target.result
if (editor === 'richText') {
// ...
} else {
// ...
}
}
reader.readAsText(file)
},
}
- 「下载html」 下载
html
的原理也很简单, 我们拿到渲染后的html
字符串, 利用html
模版将其包装成完整的html
, 最后再存储为File
对象, 利用file-saver
实现下载. 思路如下:
核心代码如下: const doc = document.querySelector('.for-markdown-preview') as HTMLElementconst html = createMDHtml(doc.innerHTML, article)file = new File([html], `${moment().format('YYYYMMDDHHmmss')}.html`, { type: 'text/html;charset=utf-8' })// 下载文件saveAs(file) 2. 基于浏览器指纹识别技术的用户识别 浏览器指纹这块知识点涉及的比较多, 笔者这里简单介绍一下canvas
指纹. ❝ 「Canvas指纹」是利用系统之间, 字体渲染引擎, 抗锯齿、次像素渲染等处理方式的差异而实现的一种指纹识别技术. 我们使用canvas将同样的文字转成图片, 即便使用Canvas绘制相同的元素,但由于上述的差别得到的结果也是不同的。 ❞ 所以我们可以利用以上技术, 对不同用户浏览器进行识别, 从而区分用户(虽然存在概率事件), 实现无需登录就能保存对应内容的目的. 基本实现代码如下:
createFingerprint = () => {
const canvas = document.getElementById('anchor-uuid') as HTMLCanvasElement
const context = canvas.getContext('2d') as CanvasRenderingContext2D
context.font = '18pt Arial'
context.textBaseline = 'top'
context.fillText('hello, user.', 2, 2)
const fingerprint = canvas.toDataURL('image/jpeg')
// hash
const secret = 'nice'
const hash = crypto.createHmac('sha256', secret)
.update(fingerprint)
.digest('hex')
return hash
}
大家也可以参考此方法来设计自己的指纹识别方案. 在线体验: 传送门 最后 目前笔者也在持续更新「H5」编辑器 H5-Dooring.
觉得有用 ?喜欢就收藏,顺便点个「赞」吧,你的支持是我最大的鼓励!持续分享H5游戏, webpack,node,gulp,css3,javascript,nodeJS,canvas数据可视化等前端知识和实战.
二、烧烤都用什么工具?
烧烤的工具有烤炉、木炭、铝箔纸、烤夹子、调料等。
1、烤炉
烤炉是以形成热空气来烘烤烹调食品的一种装置,一般为封闭或半封闭结构。烤炉又称烘炉、烤箱、焗炉,以开放形式用热空气加热的则称为烧烤。烤炉也可以用来泛指以热气体进行高温处理的装置。
2、木炭
烧烤要用碳来烤,市面上的碳有很多种,可以考虑用木炭,比较卫生干净些,烤出来也好吃。
3、铝箔纸
铝箔纸是指由铝箔衬纸与铝箔裱糊粘合而成的纸。质软容易变型,如纸一样,而且变形后不反弹。可以定性,保证遮光,不会掉落,不透光,无污染,价钱便宜.供高级卷烟、糖果等食品防潮和装饰包装用。
4、烤夹子
要准备好烧烤的夹子,用来夹木炭进去,拨木炭的,一般市场都有的卖的,可以跟烤炉一起买。
5、调料。
烧烤最重要的就是调料了,一般有的调料必备的是油盐孜然烧烤酱,叉烧汁,芝麻、蒜蓉、酱油等等。
三、雕刻墓碑都用什么工具?
如果您的量大,建议您购置一台墓碑雕刻机,可以24小时不停歇的为您生产,价格在4-7万之间!
四、贴壁布都用什么工具?
和墙纸工具差不多 但是要有阴角和阳角压轮 最重要的还有火枪 但是火枪的掌握得 得当 因为墙布相对墙纸要硬些 火枪一般在处理包边的时候用
五、炸串都用什么工具?
竹签、碗、盘子、平底锅。
炸串的做法,首先准备材料:里脊肉:200g、鸡蛋:2个、面包糠:一碗、生抽:少许、料酒:少许、姜末:少许、胡椒粉:少许、面粉:适量、生粉:适量。
1、里脊肉洗净,然后用生姜,姜末,胡椒粉腌制一会
2、腌过的肉用竹签串起来,手部留一定余地,然后撒上用面粉生粉各半的混合粉
3、鸡蛋打到碗里,然后肉串在碗里裹上一层鸡蛋液
4、面包糠放到碗里,然后肉串再裹上一层面包糠
5、起锅倒入适量的油烧热,然后肉串下锅炸
6、炸至金黄色即可。
六、联轴器找正都用什么工具?
联轴器里面一般都有减震圈或减震垫
电机轴的同心度在电机出厂前就已校核
只有在安装过程中若同心度不对则会出现轴偏心的情况,调整电机位置并用千分表校核可防止轴的偏心
若使用一段时间后中发现联轴器震动较大且有偏心,可检查联轴器内的减震圈/垫是否已失效,是的话则需要及时更换。
七、汽车抛光都用什么工具?
抛光剂主要分为浅色抛光剂和深色抛光剂,顾名思义也就是深色车用深色抛光剂,浅色车用浅色抛光剂。
抛光剂的另一作用,是作为打蜡前的强力清洗剂或叫“去污剂”。
给爱车“洗完脸”后,就要上一层还原剂,也叫“密封剂”,它的作用是还原车漆本来的面目。
首先,用去污力强的漆面清洗剂清洗整车,避免颗粒灰尘在研磨中造成新划痕;其次,对于涂面有粗粒、细微砂纸痕、流痕等缺陷,在抛光前先用600#至1000#水砂纸蘸水包于小橡胶衬块内,对其轻轻打磨至平整,注意不能磨穿漆层;再采用机用研磨机加上粗研磨膏,对水砂纸的痕迹进行粗磨,加研磨膏进行抛光细研磨;采用机械抛光机,加上镜面处理剂抛去粗研磨膏留下的痕印,达到漆膜镜面抛光的效果;研磨抛光结束后,擦净研磨抛光膏,立即用棉纱蘸上光油蜡把抛光部位全部擦一遍,再用干棉纱擦净多余的上光蜡,使漆面光亮似镜、艳丽夺目。
不过 抛光不宜多做,毕竟不像人的皮肤可以再生,车漆不可能再生,本来就不厚的车漆层,被一次两次打磨后,会变得越来越薄,自我保护能力也越来越差,最终导致不可逆转的老化。
因此,除非万不得已,抛光尽量不做或少做,并且经过一次抛光后,更加需要周到细致的保养。
至于为什么要用园垫子高速转呢?是因为转速过底的话抛的漆面会不均匀,从而影响漆面效果.转速太高或者太底都不可以.
八、学化妆都用什么工具?
、眉笔。先学化妆的时候不要急,一步一步慢慢来,首先就是要学会画眉毛,既然要画眉毛,那么眉笔肯定必不可少,选择功能强大的,至于会不会,以后慢慢学。
2、眼线笔和眼影。画完眼线之后用小号眼线刷沾上眼影粉来补眼线尾和睫毛根部,让眼线看起来更完美。浅橘色、香槟色、珠光白色的眼影可以遮盖黑眼圈的颜色,起到中和的作用。
3、睫毛刷。睫毛刷也是需要准备,长睫毛会让眼睛更有神,感觉会更好。
4、口红。面色红润用什么来体现,就是口红,当嘴唇苍白的时候,用口红就是一件比较重要的事情,当然,在所有化妆品里面,口红是最常见,也很好用。
5、粉底。最后就是粉底,先学会打粉,让自己的脸变白。俗话说,一白遮百丑,所以先买个粉底试试水,将自己脸上打匀,底妆白一点自然很好。
九、大家装车都用什么工具?
装车有几个关键工具:紧中轴的,紧飞轮的,砸太阳花的,截前叉上管的,截链器,线管钳,这种工具不常用,个人不建议购买(截链器除外)。
其他的就是各种型号的六角,扳手之类。
装车还需要固体和液体润滑油涂抹在关键位置。
十、跑暗线都用什么工具?
跑暗线通常会使用一些工具,比如常见的有:
1. Nmap:用于端口扫描和网络探测。
2. Metasploit:用于漏洞扫描和漏洞利用。
3. Aircrack-ng:用于无线网络破解和攻击。
4. Burp Suite:用于Web应用程序渗透测试和攻击。
5. Wireshark:用于捕获和分析网络流量。
6. Hydra:用于暴力破解密码。
7. John the Ripper:又是用于暴力破解密码。
8. Ettercap:用于中间人攻击。
9. Cain and Abel:用于网络嗅探和密码破解。
10. THC-Hydra:用于暴力破解网络服务的密码。
- 相关评论
- 我要评论
-