解析:设置文字中断

时间:2018-08-22 00:45:27

标签: php parsedown

默认情况下,Parsedown会忽略所有空行。
如果您没有以安全模式运行它或将标记转义,则可以在任何需要空行的地方添加<br>。否则(安全模式或标记已转义),没有令人愉快的出路。

根据开发人员的说法:"It's not a very big change"包括此类功能。乍一看,该分步指南似乎可以正常工作。但是,进一步研究,在某些情况下会提供错误的HTML。例如:

输入:

# Test Cases


| header 1 | header 2 |
| -------- | -------- |
| cell 1.1 | cell 1.2 |
| cell 2.1 | cell 2.2 |



    <?php
    // code snippet
    echo 'Hello World!";
    ?>


- list 1
 - list 2
  - list 3


# End of Test

输出:

<h1>Test Cases</h1>
<p><br />
<br />
| header 1 | header 2 |<br />
| -------- | -------- |<br />
| cell 1.1 | cell 1.2 |<br />
| cell 2.1 | cell 2.2 |<br />
<br />
<br />
<br />
&lt;?php<br />
// code snippet<br />
echo 'Hello World!";<br />
?&gt;<br />
<br />
</p>
<ul>
<li>list 1</li>
<li>list 2</li>
<li>
<p>list 3<br />
<br />
</p>
<h1>End of Test</h1>
</li>
</ul>

错误的简要说明:

  • 没有表格标签的HTML
  • 不带代码标签的HTML
  • 列表标签混乱

有什么办法解决吗?


注释
setLiteralBreaks(false)设置为Parsedown可以提供正确的HTML输出(当然,没有空行):

<h1>Test Cases</h1>
<table>
<thead>
<tr>
<th>header 1</th>
<th>header 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>cell 1.1</td>
<td>cell 1.2</td>
</tr>
<tr>
<td>cell 2.1</td>
<td>cell 2.2</td>
</tr>
</tbody>
</table>
<pre><code>&lt;?php
// code snippet
echo 'Hello World!";
?&gt;</code></pre>
<ul>
<li>list 1</li>
<li>list 2</li>
<li>list 3</li>
</ul>
<h1>End of Test</h1>

0 个答案:

没有答案