javascript - 如何将代码存储在 prism 的 javascript 变量中
问题描述
我正在尝试在我的网站上显示一些代码。我正在使用运行良好的 prism,但是,我最终将不得不将我试图呈现的代码存储在 mongodb 数据库中。现在我无法弄清楚如何将代码保存为变量codeSnippet
并呈现它。我该怎么做呢?
它应该是什么样子
class DispalyCodeExample extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
componentDidMount() {
Prism.highlightAll();
}
render() {
return (
<pre>
<code className="language-javascript">
{`
let animals = {
cow: 'moo',
mouse: 'squeak'
}
let mouse = 'cow';
let x = animals[mouse];
`}
</code>
</pre>
);
}
}
我的尝试不起作用 - 由于我的 codeSnippet 变量
class DispalyCodeExample extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
componentDidMount() {
Prism.highlightAll();
}
render() {
const codeSnippet = {
let animals = {
cow: 'moo',
mouse: 'squeak'
}
let mouse = 'cow';
let x = animals[mouse];
};
return (
<pre>
<code className="language-javascript">
{codeSnippet}
</code>
</pre>
);
}
}
解决方案
我会对base64
整个类进行编码,然后将其存储在MongoDB中。当您准备好在网页上显示时,base64
解码您的源代码块。这样,所有的源代码都不会变成HTML 字符。所有变量和函数都将被保留。
推荐阅读
- javascript - rxjs6 不会在管道中的 promise 内传递值
- html - 为什么多行跨度会改变相邻 div 的宽度?
- ruby - 如何使用多行字符串 here-doc 使用可枚举或循环块进行插值
- matlab - 是否可以在 Matlab simulink 中找到用于多输入单输出传递函数的模块?
- angular - 如何处理需要定制组件的客户项目
- javascript - 如何在动态对象键名上添加其他键值?
- codeigniter - CodeIgniter 上传路径无效
- laravel - Laravel Auth 使用第三方认证
- java - 如何在java中调用顶级kotlin函数?
- asp.net - 允许外部应用程序使用 API