我正在努力让我的React应用程序正确地渲染ASCII艺术。
在执行jsx-transformer之后,我的艺术品失去了格式,并在浏览器中呈现出奇怪的样子。
我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"></script>
</head>
<body>
<div id="content"></div>
<script type="text/jsx">
var App = React.createClass({
render: function() {
return (
<pre>
<code>
+--------+ +-------+ +-------+
| | + ditaa + | |
| Text | +-------+ |diagram|
|Document| |!magic!| | |
| | | | | |
+---+----+ +-------+ +-------+
</code>
</pre>
);
}
});
var element = document.getElementById('content');
React.render(React.createElement(App), element);
</script>
</body>
</html>
输出:
如果我移除react并直接在html中添加pre代码块,一切都能正常工作。
我在这里做错了什么吗?感谢任何帮助...
更新1: 我不能编辑ASCII艺术。
更新2:我将这个艺术品作为markdown文件收到:
+--------+ +-------+ +-------+
| | --+ ditaa + | |
| Text | +-------+ |diagram|
|Document| |!magic!| | |
| | | | | |
+---+----+ +-------+ +-------+
在将Markdown转换为HTML后,这就是我拥有的字符串:
<pre><code>+--------+ +-------+ +-------+
| | --+ ditaa + | |
| Text | +-------+ |diagram|
|Document| |!magic!| | |
| | | | | |
+---+----+ +-------+ +-------+
</code></pre>
我仍然使用JSX-loader将HTML转换为JSX。流程是markdown -> html -> jsx。
dangerouslySetInnerHTML
。 - Ed Ballot