Django-CKeditor代码高亮
习惯使用Django-CKeditor实现博客后台的富文本输入,但发现少个代码高亮功能,几经查找,发现其有内置的代码块功能:codesnippet,用此插件就可以实现代码高亮功能,且自带不少常见主题,原理为通过highlight.js实现。 1. 参考配置参数,调出代码按钮 CKEDITOR_CONFIGS = { 'default': { "skin": "moono-lisa", "toolbar_Basic": [["Source", "-", "Bold", "Italic"]], "toolbar_Full": [ ["Styles", "Format", "Bold", "Italic", "Underline", "Strike"], ["Blockquote", "Link", "Unlink"], ["Image", "Table", "HorizontalRule"], ["NumberedList", "BulletedList", "JustifyLeft", "JustifyCenter", "JustifyRight", "JustifyBlock"], ["TextColor", "BGColor", ], ["CodeSnippet", "Source"], ], "toolbar": "Full", "height": 500, "width": 860, "filebrowserWindowWidth": 940, "filebrowserWindowHeight": 725, 'extraPlugins': 'codesnippet', 'tabSpaces': 4, 'allowedContent': True, # 配置后台语法高亮主题 'codeSnippet_theme': 'monokai', # 配置后台显示支持语言,格式:{语言标识: 显示名称} 'codeSnippet_languages': { 'bash': 'Bash', 'css': 'CSS', 'html': 'HTML', 'ini': 'INI', 'javascript': 'JavaScript', 'json': 'JSON', 'nginx': 'Nginx', 'python': 'Python', 'sql': 'SQL', }, } } 2. 前台使用 <!-- django-ckeditor 自带的highlight版本比较低,推荐用highlightjs官网最新的js --> <!-- 喜欢的高亮主题 --> <link href="{% static 'blog/css/atom-one-dark.min.css' %}" rel="stylesheet"> <!-- highlight.js文件 --> <script src="{% static 'blog/js/highlight.min.js' %}"></script> <!-- 调用highlight --> <script>hljs.highlightAll();</script> 3. 补充 部分超长代码不会自动换行问题,可以在.css文件中添加white-space: pre-wrap; 可实现正常显示自动换行。 .hljs { border-radius: 0.5rem; # 代码框圆角 white-space: pre-wrap; # 代码超长自动换行 }