成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

前言

大家好, 我是徐小夕, 之前和大家分享了一個(gè)在線文檔編輯器PowerNice, 它可以輕松幫我們編寫(xiě)文檔并一鍵導(dǎo)出多種格式比如html,pdf, md, png圖片等, 如下:

最近為了讓編輯器滿足更多場(chǎng)景需求, 我開(kāi)發(fā)了桌面端軟件版本——powernice-electron, 支持mac 和 window。

接下來(lái)我來(lái)對(duì)powernice 技術(shù)實(shí)現(xiàn)和功能做一個(gè)介紹。

背景

作為一名技術(shù)工作者, 我們經(jīng)常會(huì)遇到編寫(xiě)技術(shù)文檔, 技術(shù)分享等需求, 網(wǎng)上也有很多現(xiàn)成的文檔管理工具, 出于好奇心, 我拉著朋友一起實(shí)現(xiàn)了一個(gè), 用來(lái)自給自足. 接下來(lái)就來(lái)介紹一下輕量級(jí)且靈活方便的文檔編輯工具—— 「powerNice」。

「powerNice」 提供兩種方式來(lái)編寫(xiě)文章/文檔, 即程序員最喜歡的 markdown, 也可以使用非技術(shù)人員最容易上手的富文本編輯器。

Demo演示

圖片

技術(shù)選型

實(shí)現(xiàn) 「powerNice」 在線文檔編輯器我們采用如下核心技術(shù)棧:

  • React
  • Ant Design
  • Dva
  • For-editor
  • Braft-editor
  • Nodejs
  • 瀏覽器指紋識(shí)別技術(shù)

功能盤(pán)點(diǎn)

1、多模式編輯

多模式編輯主要是指我們可以用富文本和md編輯器來(lái)編輯我們的文章, 我們采用最熟悉的 React 來(lái)實(shí)現(xiàn), 效果如下:

2、多主題

目前支持2套主題, 淺色和深色, 主要從用戶體驗(yàn)的角度方便用戶夜間寫(xiě)作. 效果如下:

深色:

淺色:


3、支持一鍵導(dǎo)入導(dǎo)出

為了提高我們的寫(xiě)作效率以及對(duì)文章的多路復(fù)用, 我們提供了一鍵導(dǎo)入導(dǎo)出文件等功能, 具體如下:

  • 導(dǎo)出 Markdown
  • 導(dǎo)出 PDF
  • 基于文章導(dǎo)出海報(bào)圖
  • 導(dǎo)入 Markdown 文件
  • 下載文章 html 內(nèi)容

使用截圖如下:

下載的html內(nèi)容預(yù)覽如下:

還原度還是非常高的~

4、多模式預(yù)覽

多模式預(yù)覽主要是右側(cè)的預(yù)覽區(qū), 我們支持手機(jī)端預(yù)覽和pc端預(yù)覽, 如下圖:

圖片

圖片

5、字?jǐn)?shù)行數(shù)統(tǒng)計(jì)

字?jǐn)?shù)行數(shù)統(tǒng)計(jì)主要是幫助作者做內(nèi)容統(tǒng)計(jì), 這塊實(shí)現(xiàn)不是很難, 我們看看預(yù)覽效果:

6、文章管理

文章管理主要是管理用戶編寫(xiě)的內(nèi)容, 這里因?yàn)槲覀冏龅氖蔷€上工具, 用戶識(shí)別主要采用瀏覽器指紋識(shí)別技術(shù)來(lái)區(qū)分用戶, 用戶可以輕松在編輯器文章列表中切換文章進(jìn)行編輯, 效果如下:

圖片


核心技術(shù)實(shí)現(xiàn)

1、導(dǎo)入導(dǎo)出多類(lèi)型文件

「導(dǎo)入md/html文件」導(dǎo)入md文件我們主要利用ant的upload組件和FileReader API, 具體實(shí)現(xiàn)如下:

{
  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的原理也很簡(jiǎn)單, 我們拿到渲染后的html字符串, 利用html模版將其包裝成完整的html, 最后再存儲(chǔ)為File對(duì)象, 利用file-saver實(shí)現(xiàn)下載.  思路如下:

核心代碼如下:

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、基于瀏覽器指紋識(shí)別技術(shù)的用戶識(shí)別

瀏覽器指紋這塊知識(shí)點(diǎn)涉及的比較多, 筆者這里簡(jiǎn)單介紹一下canvas指紋。

「Canvas指紋」是利用系統(tǒng)之間, 字體渲染引擎, 抗鋸齒、次像素渲染等處理方式的差異而實(shí)現(xiàn)的一種指紋識(shí)別技術(shù). 我們使用canvas將同樣的文字轉(zhuǎn)成圖片, 即便使用Canvas繪制相同的元素,但由于上述的差別得到的結(jié)果也是不同的。

所以我們可以利用以上技術(shù), 對(duì)不同用戶瀏覽器進(jìn)行識(shí)別, 從而區(qū)分用戶(雖然存在概率事件), 實(shí)現(xiàn)無(wú)需登錄就能保存對(duì)應(yīng)內(nèi)容的目的. 基本實(shí)現(xiàn)代碼如下:

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
}

大家也可以參考此方法來(lái)設(shè)計(jì)自己的指紋識(shí)別方案。

責(zé)任編輯:姜華 來(lái)源: 趣談前端
相關(guān)推薦

2022-07-04 08:30:52

powerNice富文本編輯器

2010-03-23 09:54:35

好壓壓縮

2011-08-08 17:51:14

注冊(cè)表編輯器注冊(cè)表

2009-05-15 17:42:34

ApacheWeb開(kāi)發(fā)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

訓(xùn)練模型架構(gòu)

2019-04-04 14:05:20

consolejs前端

2019-07-10 10:20:36

前端用戶體驗(yàn)javascript

2021-12-02 06:58:01

微軟桌面助手

2009-02-24 08:21:22

Windows 7桌面亮麗

2012-09-25 09:28:36

程序員代碼代碼整潔

2020-05-07 10:18:06

JavaScript前端技術(shù)

2022-06-05 23:28:50

TypeScripinfer類(lèi)型

2024-04-26 07:54:07

ZustandReact狀態(tài)管理庫(kù)

2009-06-18 15:51:52

SSL VPN負(fù)載均衡Array

2019-07-08 11:05:05

Windows

2021-07-24 13:16:31

Android 代碼操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩在线三级 | 免费看黄色片 | 青青草精品 | 视频一区在线观看 | 狠狠操操| 伊人一二三 | 亚欧精品一区 | 欧美成年人网站 | 成人一区二区三区在线观看 | 亚洲天天干 | 久久亚洲视频网 | 国产精品福利在线观看 | www.47久久青青 | 午夜tv免费观看 | 亚洲精品在线视频 | 国产区一区 | 一区网站 | 成人欧美一区二区三区色青冈 | 一区二区不卡高清 | 国产欧美日韩一区二区三区在线 | 国产欧美精品一区二区三区 | 国产一区二区三区色淫影院 | 欧美午夜视频 | 精品欧美一区二区精品久久 | 欧美一区二区三区在线 | 羞羞视频免费观 | 亚洲一区二区日韩 | 久久久久久中文字幕 | 天天操天天干天天爽 | 先锋av资源网 | 日本三级黄视频 | 九九一级片 | 亚洲精品一区在线 | 自拍视频国产 | 精品一区二区免费视频 | 黄片毛片 | 午夜精品久久久久久久99黑人 | 国产福利观看 | 欧美精品在线播放 | 成人免费视频网站在线观看 | 国产婷婷色综合av蜜臀av |