zoukankan      html  css  js  c++  java
  • tinymce与prism代码高亮实现及汉化的配置

    简单介绍:TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,由JavaScript写成。它对IE6+和Firefox1.5+都有着非常良好的支持。功能方强大,并且功能配置灵活简单。另一特点是加载速度非常快的。最重要的是,TinyMCE是一个根据LGPL license发布的自由软件,你可以把它用于商业应用,好了不多说,想了解更多自行百度,我们进入正题。

    一、编辑页配置

    1.首先我们需要引用网页样式控制文件及脚本语言编辑文件(其中前两个是tinymce脚本文件,后两个是prism高亮文件)

    1 <script type="text/javascript" src="tinymce.min.js"></script>
    2 <script type="text/javascript" src="jquery.tinymce.min.js"></script>
    3 <link href="prism.css" rel="stylesheet" />
    4 <script src="prism.js"></script>

    2.在body中设计好我们的文本

    1 <textarea name="content" style="100%"></textarea>

    3.在js中进行文本的初始化

    (1)tinymce.init配置并初始化tinymce

    (2)selector: "textarea"根据你的选择器来指定,我这里是textarea,可以绑定id(#···)或class(.····)

    (3)plugins填写要使用的插件名称

    (4)toolbar设置工具栏指定显示插件,这里我展示了三个工具栏

    (5)menubar禁用菜单栏模板

    (6)toolbar_items_size工具栏标签大小设置为小

    (7)style_formats初始化的默认样式,这个根据自己喜好调节

    (8)templates模板,toolbar3中的template选中标题后自动追加值content到文本框

    (9)language:'zh_CN'语言本身默认英文,这里指定语言为中文

     1 <script type="text/javascript">
     2     tinymce.init({
     3         selector: "textarea",
     4         plugins: [
     5             "advlist autolink autosave link image lists charmap print preview hr anchor pagebreak spellchecker",
     6             "searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
     7             "table contextmenu directionality emoticons template textcolor paste fullpage textcolor codesample"
     8         ],
     9  
    10         toolbar1: "undo redo | cut copy paste | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | styleselect formatselect fontselect fontsizeselect",
    11         toolbar2: " searchreplace | bullist numlist | outdent indent blockquote | link unlink anchor image media code codesample | inserttime preview | forecolor backcolor",
    12         toolbar3: "table | hr removeformat | subscript superscript | charmap emoticons | print fullscreen | ltr rtl | spellchecker | visualchars visualblocks nonbreaking template pagebreak restoredraft",
    13  
    14         menubar: false,
    15         toolbar_items_size: 'small',
    16  
    17         style_formats: [
    18             {title: 'Bold text', inline: 'b'},
    19             {title: 'Red text', inline: 'span', styles: {color: '#ff0000'}},
    20             {title: 'Red header', block: 'h1', styles: {color: '#ff0000'}},
    21             {title: 'Example 1', inline: 'span', classes: 'example1'},
    22             {title: 'Example 2', inline: 'span', classes: 'example2'},
    23             {title: 'Table styles'},
    24             {title: 'Table row 1', selector: 'tr', classes: 'tablerow1'}
    25         ],
    26  
    27         templates: [
    28             {title: 'Test template 1', content: 'Test 1'},
    29             {title: 'Test template 2', content: 'Test 2'}
    30         ],
    31         language:'zh_CN'
    32     });</script>

    另外当我们用codesample进行插入会产生class=“language-**”标签,这个一眼看去和prism高亮显示插件是迎合的,也表示官方的支持。所以我们使用prism作为代码高亮插件。

    (4)赋值及设置值操作

    1 var context=tinyMCE.activeEditor.getContent();//进行值得获取
    2  
    3 tinyMCE.activeEditor.setContent("你的数据");//进行值得获取

    二、展示页相关配置

    1、引用网页样式控制文件及脚本语言编辑文件(两个高亮显示脚本)

    1 <link href="prism.css" rel="stylesheet" />
    2 <script src="prism.js"></script>

    2、你的编辑器保存的值取出显示到页面就可以了。

    源码demo:https://download.csdn.net/download/silverbutter/10557703

  • 相关阅读:
    Linux系统中日志级别详情
    android测试和iOS测试的区别
    React Router的Route的使用
    React中this.props的主要属性
    2019 年 React 学习路线图(转)
    Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.4.1:clean (default-clean) on project
    Maven笔记
    优化Android Studio/Gradle构建(转)
    Java相关查询记录
    自己电脑组一个Wifi热点
  • 原文地址:https://www.cnblogs.com/jiyuwu/p/9363977.html
Copyright © 2011-2022 走看看