TinyMCE生成的HTML内容在前端如何实现代码高亮?

前端开发   发布日期:2023年05月27日   浏览次数:621

利用编辑器处理完成后生成的HTML代码需要放在前端显示,而且格式和样式能与编辑器显示的保持一致才是应用的关键。本文主要讲TinyMCE生成的HTML内容在前端如何实现代码高亮,最主要实现代码高亮插件是prism.js的引用,及工具条的复制功能。这个示例里面包含了JS文件及代码高亮的样式css文件,在我分享的代码里还多放了几种样式,可以自己调用,从九品源码分享的百度云下载即可。

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>tinyMCE前端显示效果</title>
  6. <script src="js/jquery.min.js"></script>
  7. <script src="js/prism.js"></script>
  8. <link href="css/prism-Okaidia.css" rel="stylesheet" type="text/css" /><!--代码高亮样式 -->
  9. <link href="css/prism-toolbar.css" rel="stylesheet" type="text/css" /><!--复制工具条 -->
  10. <style>
  11. pre[class*="language-"].line-numbers {
  12. position: relative;
  13. padding-left: 3.8em;
  14. counter-reset: linenumber;
  15. }
  16. pre[class*="language-"].line-numbers > code {
  17. position: relative;
  18. white-space: inherit;
  19. }
  20. .line-numbers .line-numbers-rows {
  21. position: absolute;
  22. pointer-events: none;
  23. top: 0;
  24. font-size: 100%;
  25. left: -3.8em;
  26. width: 3em; /* works for line-numbers below 1000 lines */
  27. letter-spacing: -1px;
  28. border-right: 1px solid #999;
  29. -webkit-user-select: none;
  30. -moz-user-select: none;
  31. -ms-user-select: none;
  32. user-select: none;
  33. }
  34. .line-numbers-rows > span {
  35. display: block;
  36. counter-increment: linenumber;
  37. }
  38. .line-numbers-rows > span:before {
  39. content: counter(linenumber);
  40. color: #999;
  41. display: block;
  42. padding-right: 0.8em;
  43. text-align: right;
  44. }
  45. blockquote {
  46. border-left: 3px solid #ccc;
  47. margin-left: 1.8rem;
  48. padding: 0.1rem 1rem 0.1rem 1rem;
  49. background:#F4F4F4;
  50. line-height:2.2
  51. }
  52. ol li{
  53. line-height:2;
  54. margin-left: 0.7rem;
  55. text-indent:none;
  56. }
  57. pre{
  58. line-height:1.5!important;
  59. font-size:13px!important;
  60. }
  61. </style>
  62. </head>
  63. <body>
  64. <p style="text-align: justify; text-indent: 2em; line-height: 2.2;">学习到这里是因为自己写了一个TinyMCE纯文本粘贴插件,用于给编辑器做纯文本粘贴开启关闭的功能切换,希望点击按钮后一直被选中表示当前为纯文本粘贴状态,再次点击取消。</p>
  65. <pre class="language-plsql"><code>select MAX(id) AS maxid from dangxiao_zichan_guzi_2_cg_5 where zhangtao</code></pre>
  66. <ol style="list-style-type: lower-alpha;">
  67. <li style="text-align: justify; line-height: 2.2;">学习到这里是因为自己写了,九品源码,www.19jp.com</li>
  68. <li style="text-align: justify; line-height: 2.2;">一个TinyMCE纯文本粘贴插件,</li>
  69. <li style="text-align: justify; line-height: 2.2;">用于给编辑器做纯文本粘贴开启关闭的功能切换,希望点击按钮后一直被选中表示当前为纯文本粘贴状态,再次点击取消。</li>
  70. </ol>
  71. <pre class="language-javascript"><code>tinymce.PluginManager.add('change_text_paste', function(editor) {
  72. editor.ui.registry.addToggleButton('change_text_paste', {
  73. icon: 'paste-text',
  74. tooltip:"切换粘贴模式",
  75. return {
  76. getMetadata: function () {
  77. return {
  78. name: "切换纯文本粘贴模式",//插件名称
  79. url: "https://www.19jp.com", //作者网址
  80. };
  81. }
  82. };
  83. });</code></pre>
  84. <p style="text-align: justify; text-indent: 2em; line-height: 2.2;">学习到这里是因为自己写了一个TinyMCE纯文本粘贴插件,用于给编辑器做纯文本粘贴开启关闭的功能切换,希望点击按钮后一直被选中表示当前为纯文本粘贴状态,再次点击取消。</p>
  85. <p style="text-align: justify; text-indent: 2em; line-height: 2.2;"><strong>TinyMCE纯文本粘贴插件优化实现了:</strong></p>
  86. <blockquote>
  87. <p style="text-align: justify; line-height: 2.2;">1、随时开启关闭纯文本粘贴功能;</p>
  88. <p style="text-align: justify; line-height: 2.2;">2、按钮点击后有选中效果带有背景颜色;</p>
  89. <p style="text-align: justify; line-height: 2.2;">3、有弹窗提示当前切换的状态且3秒后关闭;</p>
  90. </blockquote>
  91. <script type="text/javascript">
  92. $('pre').addClass("line-numbers").css("white-space", "pre-wrap");
  93. $('pre').attr("data-prismjs-copy","复制");
  94. $('pre').attr("data-prismjs-copy-error","按Ctrl+C复制");
  95. $('pre').attr("data-prismjs-copy-success","复制成功");
  96. </script>
  97. </body>
  98. </html>

链接:https://pan.baidu.com/s/1Lk0YHh6rD-T3wvDSA7Ns6g?pwd=9h2s

提取码:9h2s

以上就是TinyMCE生成的HTML内容在前端如何实现代码高亮?的详细内容,更多关于TinyMCE生成的HTML内容在前端如何实现代码高亮?的资料请关注九品源码其它相关文章!