use*_*618 4 syntax-highlighting
这段代码工作正常:
<head>
<script src='.../prism/prism.js'></script>
<link href='../prism/prism.css' rel='stylesheet' type='text/css'>
</head>
<pre>
<c?de class="language-html">
<span>one</span>
</c?de>
</pre>
Run Code Online (Sandbox Code Playgroud)
但是,如果您连接到 textarea,则没有任何效果。
<textarea name="text" class="language-html">
<span>one</span>
</textarea>
Run Code Online (Sandbox Code Playgroud)
为什么?应该纠正什么才能奏效?
小智 8
PrismJs 指定它只使用<pre>和<code>标签,所以 a<textarea>不起作用。
因此,它只适用于
<code>元素,因为标记没有<code>元素的代码在语义上是无效的。 https://prismjs.com/index.html
但是,有一个名为 PrismJs live 的副项目,您可以将其附加到 textareas https://live.prismjs.com/ - 它由Lea Verou 制作,目前正在进行中。
网站上提供了完整和最新的说明,但基本上您需要prismjs-live.js在.css之后prism.js和prism-live.css标准之后prism包含。
使用 Javascript 库调用,您还需要包含要加载的语言,例如, prismjs-live.js?load=php,javascript
<head>
<meta charset="UTF-8">
<title>Prism Live: Lightweight, extensible, powerful web-based code editor</title>
<link rel="stylesheet" href="./prism.css">
<link rel="stylesheet" href="./prism-live.css">
<textarea aria-label="Enter your response here" rows="5" class="prism-live"></textarea>
<script src="./prism.js" charset="utf-8"></script>
<script src="./prism-live.js?load=python,javascript" charset="utf-8"></script>
</head>
Run Code Online (Sandbox Code Playgroud)