一款功能强大的markdown编辑器tui.editor使用示例详解

yizhihongxing

一款功能强大的markdown编辑器tui.editor使用示例详解

什么是tui.editor

tui.editor 是一款基于浏览器端的 JavaScript markdown 编辑器,其主要功能包括:

  • 良好的 markdown 编辑体验
  • 自动同步预览功能
  • 可自定义的 markdown 样式
  • 全屏编辑模式
  • 支持替换和搜索功能等

快速入门

  1. 创建一个 HTML 文件,并将 tui.editor 引入:

```html

```

  1. 在 HTML 文件中创建一个 div,用作 tui.editor 的容器:

```html

```

  1. 初始化 tui.editor:

javascript
const editor = new tui.Editor({
el: document.querySelector('#editSection'),
initialEditType: 'wysiwyg',
previewStyle: 'vertical',
});

在该代码中,#editSection 是 tui.editor 的容器,initialEditType 设置编辑器的初始编辑模式(支持 markdownwysiwyg),previewStyle 设置预览的样式(支持 tabvertical),更多配置请参考官方文档。

  1. 运行 HTML 文件即可在浏览器中使用 tui.editor。

示例说明

示例一:自定义 markdown 样式

tui.editor 提供了一个样式配置项 viewerHtmlSanitizerOption,可以通过它来自定义预览区域中的 markdown 样式。

const editor = new tui.Editor({
  // ...其他配置
  viewerHtmlSanitizerOption: {
    allowedTags: [
      'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote', 'pre', 'a',
      'ul', 'ol', 'li', 'br', 'hr', 'img', 'strong', 'em', 'del', 'ins',
      'table', 'thead', 'tbody', 'tr', 'th', 'td', 'code'
    ],
    allowedAttributes: {
      a: ['href', 'target', 'title'],
      img: ['src', 'alt', 'title'],
      pre: ['class'],
      code: ['class'],
    },
  },
});

在上述代码中,我们设置了允许的 HTML 标签和属性,同时也可以通过 class 属性来控制预览区域的样式。

示例二:使用自定义 markdown 解析器

tui.editor 内置的 markdown 解析器是 marked,但是我们也可以使用自定义的解析器。

import { Parser } from 'my-markdown-parser';

const customParser = new Parser();

const editor = new tui.Editor({
  // ...其他配置
  exts: [
    {
      name: 'customMarkdown',
      constructor: function() {
        //
      },
      events: {
        previewBeforeHook: function() {
          const markdown = editor.getMarkdown();
          return customParser.parse(markdown);
        },
      },
    },
  ],
});

在上述代码中,我们引入了自定义的 markdown 解析器 my-markdown-parser,并在 tui.editor 的 exts 配置项中添加了一个新的扩展,其中 previewBeforeHook 事件会在预览区域更新前触发,我们通过该事件将 markdown 解析后的 HTML 代码返回给预览区域。

结语

以上为 tui.editor 的入门指南和两个示例说明,tui.editor 提供了很多实用的功能,而这里仅仅是刚刚入门,希望读者可以通过实际使用和探索,更好地发掘其强大的功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一款功能强大的markdown编辑器tui.editor使用示例详解 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • 简述AngularJS相关的一些编程思想

    讲解AngularJS相关的编程思想,首先需要知道一些AngularJS的核心概念。 核心概念 双向数据绑定 AngularJS最大的特点之一便是双向数据绑定,如果把在DOM(input/input/select)中输入的数据称为Model,把显示在页面中的数据称为View,那么在AngularJS中这两个数据之间便可以直接进行双向绑定。当Model改变时V…

    css 2023年6月9日
    00
  • JavaScript webpack模块打包器如何优化前端性能

    JavaScript webpack模块打包器可以通过优化打包的方式来提升前端性能,下面是一些可以实施的优化方法: 1.代码分离 JavaScript将整个代码库打包到一个文件中会导致加载速度变慢,代码分离允许将代码分成多个文件,这些文件仅在需要时才会被加载。Webpack提供了很多方便的代码分离机制,包括手动和自动分离。 手动分离: // a.js imp…

    css 2023年6月9日
    00
  • 七个基于JavaScript实现的情人节表白特效

    【标题一:七个基于JavaScript实现的情人节表白特效】 一、概述 情人节表白特效是许多情侣表达爱意的常用方式。而基于JavaScript实现的情人节表白特效,可以给表白增加更灵活、个性化的元素。本篇文章将为读者介绍七种基于JavaScript实现的情人节表白特效,包括背景闪烁、爱心雨、心形文字等效果。 二、特效攻略 1. 背景闪烁 背景闪烁特效通过改变…

    css 2023年6月10日
    00
  • 利用CSS控制SELECT中的OPTION是否不允许选

    实现这个需求主要涉及到CSS的伪类选择器和属性设置。 首先,我们需要明确的是,SELECT元素是由浏览器渲染的,因此我们需要针对其中的OPTION元素进行样式控制。 要实现禁止某些选项被选择,可以使用CSS的pointer-events属性。将pointer-events属性的值设置为none可以禁用元素的交互,包括鼠标事件和键盘事件。这样一来,即使用户点击…

    css 2023年6月9日
    00
  • vue-cli常用设置总结

    vue-cli常用设置总结 什么是vue-cli Vue CLI是一个基于Vue.js进行快速开发的完整系统,它可以帮助我们快速搭建Vue项目框架和实现一些常见的开发任务。在vue-cli中,主要支持了以下功能: 项目初始化 开发模式构建 生产模式构建 单元测试和端到端测试 插件集成与扩展 安装vue-cli 在使用vue-cli之前,我们需要先安装node…

    css 2023年6月9日
    00
  • 纯CSS3实现3D旋转书本效果

    下面是详细讲解”纯CSS3实现3D旋转书本效果”的完整攻略: 1. 相关概念介绍 要实现3D旋转书本的效果,首先需要了解以下几个概念: transform-style: 用于定义子元素如何在3D空间中定位。其属性值有flat和preserve-3d。 transform-origin: 用于设置元素变化的基点。默认值是50% 50% 0。 transform…

    css 2023年6月10日
    00
  • css firefox火狐浏览器下的兼容性问题

    CSS在Firefox中的兼容性问题主要包括以下几个方面: 盒模型的计算方法问题 Firefox与IE的盒模型计算方法有所不同。在标准模式下,Firefox采用的是W3C标准的盒模型,即元素的宽度是指content的宽度加上padding和border的宽度,而IE则采用的是IE盒模型,在IE盒模型中,元素的宽度是指content、padding和borde…

    css 2023年6月9日
    00
  • css-sprite使用详解

    CSS Sprite使用详解 CSS Sprite是一种将多个小图片合并成一张大图片的技术,通过CSS的background-position属性来控制显示的位置,从而减少HTTP请求次数,提高页面加载速度。本攻略将详细讲解CSS Sprite的使用方法,包括制作Sprite图、CSS代码的编写、应用Sprite图的方法等,并提供两个示例说明。 1. 制作S…

    css 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部