国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開源好用的所見即所得(WYSIWYG)編輯器:Editor.js

這篇具有很好參考價值的文章主要介紹了開源好用的所見即所得(WYSIWYG)編輯器:Editor.js。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


今天介紹一個開源好用的Web所見即所得(WYSIWYG)編輯器: Editor.js

Editor.js 是一個基于 Web 的所見即所得富文本編輯器,它由CodeX團隊開發(fā)。源代碼托管于Github:https://github.com/codex-team/editor.js

特點

它有兩個顯著的特點,一個是基于區(qū)塊(block-styled)的編輯模式,另一個是可以輸出干凈的數據。

基于區(qū)塊

基于區(qū)塊官網是這樣解釋的:

Editor.js工作區(qū)由單獨的區(qū)塊組成:段落、標題、圖像、列表、引號等。它們中的每一個都是由 Plugin 提供的獨立元素(或更復雜的結構)并由 Editor’s Core 連結。

干凈的數據

Editor.js 輸出干凈的json數據而不是 HTML 標記,雖然對瀏覽器來說,HTML 是更直觀的,但對服務器來說,json更精簡更關注內容本身,易于重復使用,存儲和傳輸。

對于控件本身也更易于實現,比如在文本“加粗”和“常規(guī)”來回切換,基于json的更改一個屬性,總要比基于HTML反復添加和刪除標記更簡單吧?

界面與交互

在編輯區(qū)域,Editor.js提供了區(qū)塊工具欄(Block Tools),內聯工具欄(Inline Tools)和區(qū)塊編輯欄(Block Tunes)

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

他們分別通過 加號 + 按鈕,選中區(qū)塊內容和菜單(六個點和尚按鈕)來訪問??

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

插件

每個區(qū)塊都通過插件提供支持,官方提供了常用的插件,當然也可以自己寫插件。

官方提供的插件如下圖,在sample中,都以cdn方式引入了這些插件,也可以通過npm安裝。

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

標題和文本

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

序列化后的數據如下圖所示,

{
    "id" : "zcKCF1S7X8",
    "type" : "header",
    "data" : {
        "text" : "Editor.js",
        "level" : 1
    }
},
{
    "id" : "b6ji-DvaKb",
    "type" : "paragraph",
    "data" : {
        "text" : "支持文本,標題,列表,代辦,表格,圖片,鏈接,代碼片段,引用片段等等"
    }
},

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

{
    "id" : "SSBSguGvP7",
    "type" : "list",
    "data" : {
        "style" : "ordered",
        "items" : [
            {
                "content" : "支持普通文本,<i>斜體文本</i>,<b>加粗</b>",
                "items" : []
            },
            {
                "content" : "支持<mark class=\"cdx-marker\">文本高亮</mark>、<a href=\"https://baidu.com\">文本鏈接</a>、<code class=\"inline-code\">代碼片段</code><mark class=\"cdx-marker\"></mark>",
                "items" : []
            }
        ]
    }
},

圖片

圖片支持Base64編碼,和url兩種方式上傳圖片

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

{
    "id" : "VYsWoLL7yj",
    "type" : "image",
    "data" : {
        "url" : "data:image/png;base64, ...",
        "caption" : "codex2x.png",
        "withBorder" : false,
        "withBackground" : false,
        "stretched" : false
    }
}

列表

支持有序和無序列表,列表支持嵌套

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

無序列表:

{
            "id" : "i_cVQxn3Tb",
            "type" : "list",
            "data" : {
                "style" : "unordered",
                "items" : [
                    {
                        "content" : " 香蕉??",
                        "items" : []
                    },
                    {
                        "content" : " 蘋果??",
                        "items" : []
                    },
                    {
                        "content" : " 葡萄??  ",
                        "items" : []
                    }
                ]
            }
        },

有序列表:

        {
            "id" : "nOTdryosj2",
            "type" : "list",
            "data" : {
                "style" : "ordered",
                "items" : [
                    {
                        "content" : "洗手心",
                        "items" : []
                    },
                    {
                        "content" : "搓手背",
                        "items" : []
                    },
                    {
                        "content" : "洗指縫",
                        "items" : []
                    }
                ]
            }
        },

嵌套列表:

        {
            "id" : "LJjzlmGa-3",
            "type" : "list",
            "data" : {
                "style" : "unordered",
                "items" : [
                    {
                        "content" : "序章",
                        "items" : []
                    },
                    {
                        "content" : "第一章",
                        "items" : [
                            {
                                "content" : "第一節(jié)",
                                "items" : [
                                    {
                                        "content" : "a)",
                                        "items" : []
                                    },
                                    {
                                        "content" : "b)",
                                        "items" : []
                                    },
                                    {
                                        "content" : "c)",
                                        "items" : []
                                    }
                                ]
                            },
                            {
                                "content" : "第二節(jié)",
                                "items" : []
                            }
                        ]
                    }
                ]
            }
        },

Todo

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

{
            "id" : "Hitrs4RqXw",
            "type" : "checklist",
            "data" : {
                "items" : [
                    {
                        "text" : "滿意??",
                        "checked" : true
                    },
                    {
                        "text" : "一般??",
                        "checked" : false
                    },
                    {
                        "text" : "不滿意??",
                        "checked" : false
                    }
                ]
            }
        },

表格

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

不代表頭:

{
    "id" : "xPAQ6AkUiK",
    "type" : "paragraph",
    "data" : {
        "text" : "<b>不帶表頭</b>"
    }
},
{
    "id" : "_MMoOqlgXs",
    "type" : "table",
    "data" : {
        "withHeadings" : false,
        "content" : [
            [
                "<b>重要緊急</b>",
                "<b>重要不緊急</b>"
            ],
            [
                "吃飯睡覺",
                "訂生日蛋糕"
            ],
            [
                "<b>不重要但緊急</b>",
                "<b>不重要不緊急</b>"
            ],
            [
                "上班前定好鬧鐘",
                "總結這一周的工作"
            ]
        ]
    }
},

帶表頭:

{
    "id" : "fvfQSljMK8",
    "type" : "table",
    "data" : {
        "withHeadings" : true,
        "content" : [
            [
                "星期一",
                "星期二",
                "星期三",
                "星期四",
                "星期五"
            ],
            [
                "a",
                "b",
                "c",
                "d",
                "e"
            ]
        ]
    }
},

使用

安裝

頁面中引用Editor.js Core庫,可通過npm安裝。也可以編譯項目,然后引入編譯后的js文件。

yarn add @editorjs/editorjs

<script src="lib/editorjs/editorjs.umd.js"></script>

創(chuàng)建編輯器實例

在頁面創(chuàng)建編輯器


import EditorJS from '@editorjs/editorjs';


const editor = new EditorJS({
  /**
   * Id of Element that should contain Editor instance
   */
  holder: 'editorjs'
});

這是一個最小化的示例。你會發(fā)現沒有那些默認的工具。因此需要在配置中指定工具。

配置工具

可以通過傳入配置對象創(chuàng)建編輯器實例。以下是示例

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

holder指定編輯器的容器元素。


window.editor = new window.EditorJS({
    /**
        * Wrapper of Editor
        */
    holder: 'editorjs',

配置工具

配置完成后,區(qū)塊工具欄將呈現一個較為完整的工具列表。

    /**
        * Tools list
        */
    tools: {
        paragraph: {
            config: {
                placeholder: "Enter something"
            }
        },

        header: {
            class: Header,
            inlineToolbar: ['link'],
            config: {
                placeholder: 'Header'
            },
            shortcut: 'CMD+SHIFT+H'
        },

        /**
            * Or pass class directly without any configuration
            */
        image: ImageTool,

        list: {
            class: NestedList,
            inlineToolbar: true,
            shortcut: 'CMD+SHIFT+L'
        },

        checklist: {
            class: Checklist,
            inlineToolbar: true,
        },

        quote: {
            class: Quote,
            inlineToolbar: true,
            config: {
                quotePlaceholder: 'Enter a quote',
                captionPlaceholder: 'Quote\'s author',
            },
            shortcut: 'CMD+SHIFT+O'
        },


        marker: {
            class: Marker,
            shortcut: 'CMD+SHIFT+M'
        },

        code: {
            class: CodeTool,
            shortcut: 'CMD+SHIFT+C'
        },

        delimiter: Delimiter,

        inlineCode: {
            class: InlineCode,
            shortcut: 'CMD+SHIFT+C'
        },

        linkTool: LinkTool,

        embed: Embed,

        table: {
            class: Table,
            inlineToolbar: true,
            shortcut: 'CMD+ALT+T'
        },

    },
    

    /**
        * Initial Editor data
        */
    data: obj,
    onReady: function () {
        saveButton.click();
    },
});

本地化

可以通過傳入i18n配置對象來設置編輯器的本地化。以下是一個較為完整的中文化示例:


i18n: {
    messages: {
        "ui": {
            "blockTunes": {
                "toggler": {
                    "Click to tune": "點擊轉換",
                    "or drag to move": "拖動調整"
                },
            },
            "inlineToolbar": {
                "converter": {
                    "Convert to": "轉換成"
                }
            },
            "toolbar": {
                "toolbox": {
                    "Add": "添加",
                    "Filter": "過濾",
                    "Nothing found": "無內容"
                },
                "popover": {
                    "Filter": "過濾",
                    "Nothing found": "無內容"
                }
            }
        },
        "toolNames": {
            "Text": "段落",
            "Heading": "標題",
            "List": "列表",
            "Warning": "警告",
            "Checklist": "清單",
            "Quote": "引用",
            "Code": "代碼",
            "Delimiter": "分割線",
            "Raw HTML": "HTML片段",
            "Table": "表格",
            "Link": "鏈接",
            "Marker": "突出顯示",
            "Bold": "加粗",
            "Italic": "傾斜",
            "InlineCode": "代碼片段",
            "Image": "圖片"
        },
        "tools": {
            "link": {
                "Add a link": "添加鏈接"
            },
            "stub": {
                'The block can not be displayed correctly.': '該模塊不能放置在這里'
            },
            "image": {
                "Caption": "圖片說明",
                "Select an Image": "選擇圖片",
                "With border": "添加邊框",
                "Stretch image": "拉伸圖像",
                "With background": "添加背景",
            },
            "code": {
                "Enter a code": "輸入代碼",
            },
            "linkTool": {
                "Link": "請輸入鏈接地址",
                "Couldn't fetch the link data": "獲取鏈接數據失敗",
                "Couldn't get this link data, try the other one": "該鏈接不能訪問,請修改",
                "Wrong response format from the server": "錯誤響應",
            },
            "header": {
                "Header": "標題",
                "Heading 2": "二級標題",
                "Heading 3": "三級標題",
                "Heading 4": "四級標題",
                "Heading 5": "五級標題",
            },
            "paragraph": {
                "Enter something": "請輸入筆記內容",
            },
            "list": {
                "Ordered": "有序列表",
                "Unordered": "無序列表",
            },
            "table": {
                "Heading": "標題",
                "Add column to left": "在左側插入列",
                "Add column to right": "在右側插入列",
                "Delete column": "刪除列",
                "Add row above": "在上方插入行",
                "Add row below": "在下方插入行",
                "Delete row": "刪除行",
                "With headings": "有標題",
                "Without headings": "無標題",
            },
            "quote": {
                "Align Left": "左對齊",
                "Align Center": "居中對齊",
            }
        },
        "blockTunes": {
            "delete": {
                "Delete": "刪除",
                'Click to delete': "點擊刪除"
            },
            "moveUp": {
                "Move up": "向上移"
            },
            "moveDown": {
                "Move down": "向下移"
            },
            "filter": {
                "Filter": "過濾"
            }
        },
    }
}

自定義樣式

varaiables.css中包含了大部分的樣式變量,更改這些變量可以實現自定義樣式。

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

如通過重寫 .root樣式選擇器可以實現自定義的背景色, 重寫.ce-popover 改變彈出框樣式等。

:root {
    --color-bg-main: #F0F0F0;
    --color-border-light: #E8E8EB;
    --color-text-main: #000;
    --selectionColor: #e1f2ff;
}


.ce-popover {
    --border-radius: 6px;
    --width: 200px;
    --max-height: 270px;
    --padding: 6px;
    --offset-from-target: 8px;
    --color-border: #e8e8eb;
    --color-shadow: rgba(13,20,33,0.13);
    --color-background: white;
    --color-text-primary: black;
    --color-text-secondary: #707684;
    --color-border-icon: rgb(201 201 204 / 48%);
    --color-border-icon-disabled: #EFF0F1;
    --color-text-icon-active: #388AE5;
    --color-background-icon-active: rgba(56, 138, 229, 0.1);
    --color-background-item-focus: rgba(34, 186, 255, 0.08);
    --color-shadow-item-focus: rgba(7, 161, 227, 0.08);
    --color-background-item-hover: #eff2f5;
    --color-background-item-confirm: #E24A4A;
    --color-background-item-confirm-hover: #CE4343;
}
.dark-mode {
  --color-border-light: rgba(255, 255, 255,.08);
  --color-bg-main: #1c1e24;
  --color-text-main: #737886;
}

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端

editor 開源,JavaScript,Web,編輯器,javascript,html,json,前端
– 完 –文章來源地址http://www.zghlxwxcb.cn/news/detail-849625.html

到了這里,關于開源好用的所見即所得(WYSIWYG)編輯器:Editor.js的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 6款常用且好用的Python編輯器推薦!

    用Python寫代碼的時候,最重要的就是選擇一款得心應手的編輯器,這樣不僅能夠讓工作更簡單、更高效,同時還可以提高我們的編碼體驗和效率,達到事半功倍的效果。本文為大家介紹常用Python編輯器,你鐘愛哪一個? 1、PyCharm PyCharm由著名軟件開發(fā)公司JetBrains開發(fā)。在涉及人

    2024年02月16日
    瀏覽(23)
  • 推薦幾款主流好用的markdown編輯器

    推薦幾款主流好用的markdown編輯器

    隨著技術的不斷發(fā)展和人們對效率的追求,Markdown 編輯器已經成為了許多人寫作的首選工具。Markdown 是一種輕量級的標記語言,使用簡單,方便快捷,且可以方便地轉換成各種格式的文件。在這篇文章中,我們將介紹幾款常用的 Markdown 編輯器,并分析它們的優(yōu)缺點。 1、VS

    2024年02月11日
    瀏覽(19)
  • 六個好用的在線代碼編輯器,你選哪個?

    六個好用的在線代碼編輯器,你選哪個?

    CodeSandbox CodeSandbox 是一個在線代碼編輯器,主要用于創(chuàng)建 Web 應用項目,其提供了多種模塊: CodeSandbox 為前端開發(fā)提供了完整的代碼編輯器體驗和沙盒環(huán)境。其包含了很多實用功能: Npm 支持:可以添加幾乎任何 npm 上可用的包; 支持 TypeScript、熱更新、GitHub 導出、靜態(tài)文件

    2024年02月04日
    瀏覽(26)
  • 手機上好用的python編輯器,手機python編輯器哪個好

    手機上好用的python編輯器,手機python編輯器哪個好

    本篇文章給大家談談手機軟件編輯器中文版python,以及手機上好用的python編輯器,希望對各位有所幫助,不要忘了收藏本站喔。 如果你是個對編程比較感興趣或者正走在這條康莊大道上的技術宅,那我強烈向你推薦以下神器,對于沒資金買電腦的人來說是一個福音,因為它實

    2024年04月14日
    瀏覽(29)
  • 手機上好用的python編輯器,手機能用的python編輯器

    手機上好用的python編輯器,手機能用的python編輯器

    大家好,本文將圍繞手機軟件編輯器中文版python展開說明,手機上好用的python編輯器是一個很多人都想弄明白的事情,想搞清楚手機能用的python編輯器需要先了解以下幾個事情。 前言 現在越來越多人學習python,很多小伙伴都富有激情的,利用碎片化的時間都要學習,小編不

    2024年01月16日
    瀏覽(19)
  • 什么樣的編輯器好用?或者適合電腦工作者的編輯器?

    電腦工作者和程序員所使用的文本編輯器通常需要具備高效率、易用性以及對代碼友好等特點,包括語法高亮、自動完成、多文件同時編輯、查找替換、版本控制集成等功能。以下是幾個廣受開發(fā)者歡迎且實用性較強的文本編輯器: Visual Studio Code (VS Code): 開源、免費,由

    2024年02月21日
    瀏覽(24)
  • 【無標題】PDF編輯軟件哪個好用?4款PDF編輯器分享!

    【無標題】PDF編輯軟件哪個好用?4款PDF編輯器分享!

    PDF編輯軟件哪個好用?在我們的日常辦公中,編輯PDF文件是非常方便的一項功能。通過編輯PDF,我們可以對文檔進行修改和調整,添加或刪除內容,以及進行格式和布局的更改。這樣,我們可以更好地符合我們的需求和要求。此外,還可以幫助我們改善文檔的可讀性和專業(yè)性

    2024年02月02日
    瀏覽(27)
  • Macos 有沒有好用的文本編輯器,試下 Notepad--

    Macos 有沒有好用的文本編輯器,試下 Notepad--

    macos 是挺好用的,國內用戶不少,許多用戶給我留言,說國產的Ndd可以支持mac os嗎?能夠帶來如npp一般的體驗嗎?我說當然可以啊,是許多人還慣性停留在“國產就是抄襲,國產就是爛”的陳舊慣性思維中。中國的希望應該是在80 90后這批人身上的,把國外軟件替換出去,那

    2024年02月15日
    瀏覽(24)
  • 安卓好用的python編輯器,安卓手機python編程軟件

    安卓好用的python編輯器,安卓手機python編程軟件

    本篇文章給大家談談安卓手機python編程軟件,以及安卓好用的python編輯器,希望對各位有所幫助,不要忘了收藏本站喔。 現在越來越多人學習python,很多小伙伴都富有激情的,利用碎片化的時間都要學習,大家都知道pyhton是簡單易學的,但是光握猜說不練,假把式,最好能編

    2024年02月10日
    瀏覽(24)
  • 利用三維內容編輯器制作VR交互課件,簡單好用易上手

    利用三維內容編輯器制作VR交互課件,簡單好用易上手

    隨著虛擬現實技術的不斷發(fā)展,越來越多的教育機構開始嘗試將其應用于教育教學中。然而,要實現這一目標并不容易,需要專業(yè)的技術支持和開發(fā)團隊。 為了解決這一問題, 廣州華銳互動 研發(fā)了 三維內容編輯器 ,它是一種基于虛擬現實技術的教育內容編輯器,可以幫助

    2024年02月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包