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

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

開發 前端
最近為了讓編輯器滿足更多場景需求, 我開發了桌面端軟件版本——powernice-electron, 支持mac 和 window。

前言

大家好, 我是徐小夕, 之前和大家分享了一個在線文檔編輯器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 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
}

大家也可以參考此方法來設計自己的指紋識別方案。

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

2022-07-04 08:30:52

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

程序員代碼代碼整潔

2009-06-18 15:51:52

SSL VPN負載均衡Array

2024-04-26 07:54:07

ZustandReact狀態管理庫

2019-07-08 11:05:05

Windows

2021-07-24 13:16:31

Android 代碼操作系統
點贊
收藏

51CTO技術棧公眾號

yourporn在线观看视频| 91精品国产麻豆国产在线观看 | 成人在线观看视频app| 青青草成人在线观看| 国产成人精品一区二区在线| 羞羞电影在线观看www| 亚洲大片在线观看| 激情五月开心婷婷| 精品无人区卡一卡二卡三乱码免费卡| 91老司机在线| 欧美顶级毛片在线播放| 中文一区二区视频| 日本精品600av| 欧洲精品在线观看| 欧美hdfree性xxxx| 国产精品免费看片| 欧美视频第一区| 国产精品123区| 亚洲.欧美.日本.国产综合在线| 你懂的网址国产 欧美| 国产成人一区二区在线| 91视频亚洲| 亚洲欧美另类人妖| 人人澡人人添人人爽一区二区| 欧美影院一区二区三区| а√最新版地址在线天堂| 亚洲三级电影全部在线观看高清| 日韩视频在线免费看| 99精品视频一区| 国产69精品久久久久999小说| 美国三级日本三级久久99| 免费亚洲精品视频| 欧美午夜国产| 久久99精品久久久久久水蜜桃| 亚洲调教视频在线观看| 亚洲一区二区伦理| 国产免费黄色一级片| 91色乱码一区二区三区| 欧美成人三级视频网站| 亚洲精品在线影院| 亚洲欧洲在线观看| 日本综合视频| 久久av.com| 久久丝袜视频| 国产精欧美一区二区三区| 色综合中文网| 51国偷自产一区二区三区的来源| 黄色欧美成人| 青娱乐国产91| 国产伦精品一区二区三区免费视频| 激情中国色综合| 欧美乱妇高清无乱码| 给我免费播放日韩视频| 国产精品成人播放| 欧美日一区二区在线观看 | 26uuu亚洲电影| 欧美亚洲国产一区在线观看网站 | 欧美日韩电影在线| 日本免费中文字幕在线| 日韩小视频在线观看专区| 黄视频免费在线看| 亚洲香蕉成视频在线观看| 日本欧美在线| 欧美专区国产专区| 国产精品a级| 亚洲最新免费视频| 久久久久久99精品| 国内福利写真片视频在线| 欧洲国内综合视频| 在线观看网站免费入口在线观看国内| 久久久www成人免费精品| 日本欧美韩国国产| 国产成人av一区二区三区| 美女一区二区三区在线观看| 乱妇乱女熟妇熟女网站| 亚洲一区二区影院| 自拍视频在线免费观看| 亚洲男人的天堂网站| 久久av国产紧身裤| 国产一区二区精品在线| 国产999精品久久久久久绿帽| 成人网18入口| 日韩亚洲国产中文字幕欧美| 国产视频一区二| 91gao视频| 99久久婷婷国产综合精品电影 | 美日韩在线视频| 欧美最新另类人妖| 奇米视频888战线精品播放| 久久精品视频在线看| 欧美在线一卡| 亚洲视频免费一区| 日韩情爱电影在线观看| 伊人久久婷婷色综合98网| 欧美激情一区在线| 里番在线观看网站| 午夜精品福利电影| 日韩国产欧美一区二区三区| 先锋影音资源综合在线播放av| 欧美日本一道本在线视频| 美女精品视频在线| 欧洲精品亚洲精品| 最新日韩在线视频| 深夜福利视频一区二区| 91精品国产综合久久久久久蜜臀| 国模一区二区三区白浆| 天海翼一区二区三区免费| 亚洲美女激情视频| 亚洲国产精品成人| 成人在线观看黄| 91精品国产免费| 久9久9色综合| www.浪潮av.com| 精品国产一区a| 亚洲精品在线观看91| 国产又大又黄又粗的视频| 精品亚洲自拍| 欧美日韩日本视频| 第四色在线一区二区| 日韩高清av| 欧美日韩午夜剧场| 精品精品国产毛片在线看| 亚洲欧洲一二三| 精品国产户外野外| 动漫3d精品一区二区三区乱码| 中文字幕人成一区| 8v天堂国产在线一区二区| 成人无号精品一区二区三区| 1024精品视频| 日韩av在线看| 亚洲永久视频| 国产在线观看精品一区| 国产91在线播放精品91| 99久久久精品| 韩国成人动漫| 亚洲日本精品| 日韩精品专区在线影院重磅| 欧美激情91| 亚洲s色大片在线观看| 日本国产高清不卡| 国产欧美日韩综合| 久久91视频| 国产爆乳无码一区二区麻豆 | 欧美激情在线免费| 网站一区二区三区| 欧美成人高清视频| 99国产精品99久久久久久| 在线天堂中文资源最新版| 日韩欧美一区二区在线观看| 欧美日韩成人在线| 亚洲精品一二| 香港伦理在线| 久久久av水蜜桃| 在线观看91av| 国产日韩欧美在线播放不卡| 国产在线视频网址| 国内视频一区| 欧美精品aⅴ在线视频| 亚洲一区二区毛片| 毛片网站在线看| 国产高清免费在线| 在线观看黄色av| 亚洲综合色激情五月| 精品国产乱码久久久久久天美| 国产一区二区三区四区二区 | 亚洲天堂2020| 成人午夜激情视频| 18岁网站在线观看| 久久不射影院| 国产小视频免费在线网址| 精品蜜桃一区二区三区| 久久综合伊人77777| 中文字幕精品影院| 国产剧情一区二区三区| 亚州福利视频| 中文字幕欧美人妻精品一区| 蜜桃麻豆av在线| 自拍在线观看| 国产91精品青草社区| 久久影视一区二区| 91免费精品国偷自产在线在线| www成人免费视频| 成人h视频在线观看播放| 欧美日韩免费视频| 天堂在线亚洲视频| 福利视频一区| 91黑丝在线| 国产综合第一页| 伊人青青综合网站| 亚洲视频 欧洲视频| 欧美激情 亚洲a∨综合| av日韩国产| 黄色手机在线视频| 9a蜜桃久久久久久免费| 日韩精品在线免费播放| 国产精品美女久久久久久久久| 永久91嫩草亚洲精品人人| 182在线视频观看| 亚洲欧美自拍另类日韩| 国产精华一区二区三区|