【发布时间】:2015-11-18 07:34:32
【问题描述】:
我正在尝试让我的 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 并将 pre 代码块直接添加到 html 一切正常。
我在这里做错了吗?任何帮助表示赞赏...
更新 1:我无法编辑 ascii 艺术。
更新 2:我收到的艺术作品是一个降价文件:
+--------+ +-------+ +-------+
| | --+ ditaa + | |
| Text | +-------+ |diagram|
|Document| |!magic!| | |
| | | | | |
+---+----+ +-------+ +-------+
markdown 转换为 HTML 后,这是我拥有的字符串:
<pre><code>+--------+ +-------+ +-------+
| | --+ ditaa + | |
| Text | +-------+ |diagram|
|Document| |!magic!| | |
| | | | | |
+---+----+ +-------+ +-------+
</code></pre>
我仍在使用 JSX-loader 将 HTML 转换为 JSX。流程是markdown -> html -> jsx
【问题讨论】:
-
您是如何接收 ASCII 艺术的?作为内置换行符的单个字符串?
-
我将它们作为降价文件接收并使用降价加载器将其转换为 HTML。生成的 HTML 是我用来提问的那个。
-
您能否将收到的特定字符串添加到您的问题中,这样我可以建议一个可行的转换。
-
完成,期待您的见解。
-
我不熟悉 jsx-loader 但我认为问题是 JSX 忽略了标签周围的换行符。但是变量内的换行符被保留。你能自己了解
<pre><code>中的 ASCII 码和硬代码吗?
标签: javascript reactjs react-jsx ascii-art