国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

推薦!PowerNice Web版+桌面端軟件,讓文檔編輯更簡單

開源 開發工具
「powerNice」 提供兩種方式來編寫文章/文檔, 即程序員最喜歡的 markdown, 也可以使用非技術人員最容易上手的富文本編輯器.

前言?

大家好, 我是徐小夕, 之前和大家分享了一個在線文檔編輯器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套主題, 淺色和深色, 主要從用戶體驗的角度方便用戶夜間寫作. 效果如下:

(1)深色。

圖片

(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 HTMLElement
const 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
}


責任編輯:姜華 來源: 趣談前端
相關推薦

2023-07-04 21:59:46

文檔編輯器PowerNice

2010-03-23 09:54:35

好壓壓縮

2011-08-08 17:51:14

注冊表編輯器注冊表

2009-05-15 17:42:34

ApacheWeb開發Apache Slin

2024-02-19 07:51:52

WebargsPythonWeb

2012-06-20 13:36:42

Surface平板

2011-06-15 09:53:05

思杰虛擬化

2025-01-21 10:45:00

訓練模型架構

2019-04-04 14:05:20

consolejs前端

2019-07-10 10:20:36

前端用戶體驗javascript

2021-12-02 06:58:01

微軟桌面助手

2009-02-24 08:21:22

Windows 7桌面亮麗

2022-06-05 23:28:50

TypeScripinfer類型

2020-05-07 10:18:06

JavaScript前端技術

2012-09-25 09:28:36

程序員代碼代碼整潔

2024-04-26 07:54:07

ZustandReact狀態管理庫

2009-06-18 15:51:52

SSL VPN負載均衡Array

2019-07-08 11:05:05

Windows

2021-07-24 13:16:31

Android 代碼操作系統
點贊
收藏

51CTO技術棧公眾號

欧美不卡视频一区发布| 999在线观看精品免费不卡网站| 91大神在线资源观看无广告| 精品无人区一区二区三区| 欧美激情一二三| 亚洲女人天堂av| 欧美一区二区福利在线| 欧美性极品xxxx娇小| 综合自拍亚洲综合图不卡区| jlzzjlzz亚洲日本少妇| 久久99国产精品免费| 在线免费观看欧美| 欧美一区网站| 91成人免费| 欧美日韩精品一本二本三本 | 免费观看精品视频| 玖玖精品在线视频| 一区二区在线观看网站| 久久国产精品精品国产色婷婷| 亚洲三级视频网站| 国产欧美亚洲一区| 人妻少妇被粗大爽9797pw| 2021久久精品国产99国产精品| 不卡一区在线观看| 97视频在线观看视频免费视频 | 免费在线成人av| 国产视频亚洲精品| 中文天堂av| 香蕉乱码成人久久天堂爱免费| 中文字幕av一区二区三区四区| www.日本在线播放| 亚洲午夜激情免费视频| 国产综合色视频| 第四色男人最爱上成人网| www.在线观看av| 久久国产精品久久精品| 欧美极品aⅴ影院| 牲欧美videos精品| 黄色高清在线观看| 成人综合色站| 精品精品欲导航| 国产乱对白刺激视频不卡| 影音成人av| wwwwxxxx日韩| 国产精品久久久久久久久久久新郎| 欧美色播在线播放| 久久久久网站| 国产精品传媒麻豆hd| 色综合天天色综合| 国产精品毛片a∨一区二区三区|国| 91久久精品国产91性色tv| 日韩在线卡一卡二| 视频欧美精品| 成人频在线观看| 欧美在线一二三区| 深夜福利91大全| 中文字幕一区二区三区精华液| 日韩欧美一区二区三区免费看| wwwxxx在线观看| 影音先锋欧美在线| 超在线视频97| 欧美日韩免费在线| 秋霞电影一区二区| 日韩精品三级| 黄色大片在线看| 正在播放久久| 日本sm极度另类视频| 欧美久久久久久久久中文字幕| 久久国产精品第一页| 欧洲一区在线| av一本在线| 福利视频一二区| 成人国产精品免费视频| 亚洲第一精品福利| 中文子幕无线码一区tr| 激情视频一区| 电影一区二区三区久久免费观看| 在线视频你懂| 亚洲精品天堂成人片av在线播放 | 99热一区二区| 国产精品乱码一区二区三区| 亚洲欧美日韩一区二区三区在线| 国产日韩高清在线| 国语对白精品一区二区| 欧美18—19sex性hd| 国产黄色高清在线| 欧美日韩在线观看一区| 欧美国产日韩在线| 51午夜精品国产| 国产人成亚洲第一网站在线播放| 日韩美女一区二区三区在线观看| 天堂√8在线中文| 特黄国产免费播放| 成人短视频在线看| 国产欧美日韩免费| 亚洲毛片在线观看| 蜜臀av午夜一区二区三区 | 久久一区二区三区欧美亚洲| 日韩在线观看av| 在线免费亚洲电影| 99国产精品一区| 一本久道久久综合婷婷鲸鱼| ccyy激情综合| 美女尤物在线视频| 嫩草嫩草嫩草嫩草| 欧洲精品在线播放| 成人综合色站| 日本久久精品视频| 国产香蕉精品视频一区二区三区| 黑人巨大精品欧美一区二区一视频| av网站免费线看精品| 亚洲在线日韩| 日韩免费久久| 福利电影一区| 韩日精品一区二区| 免费网站看v片在线a| www.男人的天堂| 国产精品免费入口| 欧美日韩精品免费在线观看视频| 欧美最近摘花xxxx摘花| 亚洲无限av看| 欧美一区二区三区免费| 亚洲在线视频一区| xnxx国产精品| 国精产品一区一区三区mba视频| 国内精品嫩模av私拍在线观看| 亚洲精品3区| 国产精品色婷婷在线观看| 九色porny丨国产首页在线| 77导航福利在线| 黄页大全在线免费观看| 美女一区二区三区视频| 国产高清www| 亚洲欧洲一区二区| 国产一级二级三级精品| 国产精品99一区| 久久久女女女女999久久| 亚洲性av网站| 日韩成人在线观看| 欧美日韩日日夜夜| 欧美午夜丰满在线18影院| 国产精品久久午夜| 国产亚洲精久久久久久| 99久久婷婷国产综合精品电影| 精品综合免费视频观看| 日本中文字幕不卡| 日韩电影在线观看电影| 免费在线亚洲欧美| 中文亚洲欧美| 亚洲欧美日韩国产综合精品二区| 黑丝一区二区三区| 日本精品免费在线观看| 91久久精品美女高潮| 国产精品精品国产| 欧美一区二区.| 26uuu日韩精品一区二区| 久久久噜久噜久久综合| 欧美日韩爱爱视频| 欧美xxxx14xxxxx性爽| 日日骚久久av| 久久视频中文字幕| 欧美日韩xxxxx| 91国产一区在线| 欧美一级高清免费播放| 日本欧美黄网站| 国产精品流白浆视频| 成人乱人伦精品视频在线观看| 成人xxxxx| 亚洲一区二区在线播放| 99国产超薄肉色丝袜交足的后果| 成人黄色生活片| 国产精品一区二区久久国产| 国产精品女主播| 亚洲影视九九影院在线观看| 亚洲最大福利视频| 国产欧美日韩亚洲| 免费观看国产成人| 亚洲在线不卡| 国产毛片视频网站| 中文字幕在线观看第三页| 99热在线观看| 中文字幕电影在线| 91大神在线网站| 国产福利在线免费观看| 女海盗2成人h版中文字幕| 另类中文字幕国产精品| 麻豆精品在线| 亚洲最大在线| 欧美精品播放| 日本视频免费一区| www.亚洲免费av| 亚洲男同1069视频| 91官网在线免费观看| 欧美一级专区免费大片| 日韩av最新在线| 久久深夜福利免费观看| 97精品视频在线播放| 5566av亚洲| 亚洲成人av动漫| 乱人伦xxxx国语对白|