cherry-markdown
cherry-markdown copied to clipboard
[Docs] 请问怎么增加/修改 Prism渲染的代码语言种类和样式?
Prerequisites
- [ ] There isn't an existing issue with the same question or request to avoid duplicates.
Issue Type
Question
Description of the Problem or Idea
Prism官方提供了数百种编程语言种类的渲染,但是cherry好像只提供了其中20多种常用的,其他的例如 asm汇编语言、nginx配置文件、properties配置文件…… 很多都没有,请问要怎么增加代码语言种类?还有prism相关的风格样式如何增加/修改?
另外顺便提个建议,希望在编写markdown时输入 ``` 标记后可以自动弹窗提供编程语言种类的选择,其他很多md编辑器都有这功能了,希望cherry也补上。
Further Information
No response
Contributing
None
感谢反馈,因为cherry会把prism构建到自己的包里,为了压缩包的大小,所以我们只引入了常用的几种语言。目前还没有机制去动态修改/配置 prism,临时解决方案可以通过 配置自定义代码块语法 来曲线救国,大概思路:
- 定义一堆自定义语言(如asm、nginx),让他们渲染出特定class的代码块
- 在自身业务里引入一个“完全体”的prism,并让它高亮特定class的代码块
针对第二个问题,确实是一个非常棒的建议,我们想象怎么支持哈(目前是在右侧预览区域支持了,见下图)
可以参考一下 muya,这个项目已经实现了所见即所得和提示选择代码语言的功能,但是它开发太慢了,等了几年还没有能用的正式版放出来,所以准备转cherry了。之前一直用的是vditor,也有自动提示代码语言和所见即所得的功能,但是它的代码太乱bug太多,所以想换了。cherry看着比较干净,大厂出品质量也有保证点。
关于prism,感觉当前在预览框选择切换代码类型的功能有点鸡肋,因为贴出来的每段代码只可能有1种类型,没必要转来转去,如果类型不对重新编辑源文件修改类型就行了,也没必要转来转去,弄个下拉框在那里反而显得有点碍事,可以改成文本直接显示代码类型就行了。
另外,建议把prism的整合弄成像mermaid那样的,正常构建不包含,需要时让用户自己选择导入需要的模块和配置,把选择权交给用户,这样就方便多了。像我们主要时内网使用,速度够快,不在乎那点代码量和流量,更关注的是功能是否满足需求。
谢谢~
感谢反馈,因为cherry会把prism构建到自己的包里,为了压缩包的大小,所以我们只引入了常用的几种语言。目前还没有机制去动态修改/配置 prism,临时解决方案可以通过 配置自定义代码块语法 来曲线救国,大概思路:
- 定义一堆自定义语言(如asm、nginx),让他们渲染出特定class的代码块
- 在自身业务里引入一个“完全体”的prism,并让它高亮特定class的代码块
针对第二个问题,确实是一个非常棒的建议,我们想象怎么支持哈(目前是在右侧预览区域支持了,见下图)
刚想起来,那个下拉框可以修改成切换这段代码的css风格样式(prism有多种css主题可以选择),旁边再用静态文本展示当前代码的语言种类,这样比较合理点。
另外再问下prism自定义模块配置的开发优先级可以提高一些吗?我们日常工作主要是编写一些配置文档、命令、代码,对不同种类code block的渲染需求比较多,那些流程图、时序图之类的使用较少(个人认为markdown中这类富文本组件用多了会引入很多不必要代码和分词,影响搜索结果准确性),当下正在寻找vditor的替代品,如果我们自行修改cherry源码做二开的话,一来不熟悉代码效率比较低,二来等后续主线版本更新了又要再重新维护一遍比较麻烦,最好是能集成在官方主线版本里,越早越好,这样我们可以尽快切换到cherry。谢谢~
额,要不先把你们常用的语言列一下,我们先无脑把他们包到cherry里,现快速满足你们的使用要求。后面我们再排期弄个包含prism完整模块的cherry版本出来
或者你们也可以自行修改prism的语言(然后构建一个版本自己用),然后PR给我们,这样就不担心无法更新cherry版本的情况了,在这里修改prism的语言配置
另外,关于切换代码块的主题,目前该功能也是支持的哈,在顶部工具栏里,如下图:
配置方式如下图:
额,要不先把你们常用的语言列一下,我们先无脑把他们包到cherry里,现快速满足你们的使用要求。后面我们再排期弄个包含prism完整模块的cherry版本出来
或者你们也可以自行修改prism的语言(然后构建一个版本自己用),然后PR给我们,这样就不担心无法更新cherry版本的情况了,在这里修改prism的语言配置
大佬,我收集整理了下我们单位内部可能会需要用的一些prism语法高亮和prism插件,麻烦看看能否无脑整合进cherry?后续再持续迭代,完善开放自定义配置项出来。谢谢额~
https://prismjs.com/
语法高亮:
- markup, html, xml, svg, mathml, ssml, atom, rss
- css
- clike
- javascript, js
- asciidoc, adoc
- aspnet
- asm6502
- awk, gawk
- bash, sh, shell
- batch
- c
- csharp, cs, dotnet
- cpp
- cmake
- css-extras
- csv
- dart
- django, jinja2
- dns-zone-file, dns-zone
- docker, dockerfile
- ftl
- git
- linker-script, ld
- go
- go-module, go-mod
- gradle
- http
- ini
- java
- javadoc
- javadoclike
- javastacktrace
- jsdoc
- js-extras
- json, webmanifest
- json5
- jsonp
- jsstacktrace
- js-templates
- latex, tex, context
- less
- makefile
- markdown, md
- markup-templating
- matlab
- mermaid
- mongodb
- nasm
- nginx
- nsis
- objectivec, objc
- perl
- php
- phpdoc
- php-extras
- plant-uml, plantuml
- plsql
- powershell
- properties
- python, py
- r
- jsx
- tsx
- regex
- ruby, rb
- rust
- sas
- sass
- scss
- scala
- scheme
- shell-session, sh-session, shellsession
- smali
- splunk-spl
- sql
- swift
- systemd
- textile
- uri, url
- vbnet
- vim
- visual-basic, vb, vba
- wasm
- wiki
- xml
- xml-doc
- yaml, yml
插件
- Line Numbers
- Command Line
- Copy to Clipboard Button
- Download Button
- Match braces
- Previewers
- Show Language
- Treeview
已补上这些语言,提交到dev分支了
已补上这些语言,提交到dev分支了
优秀
已发布