我正在使用python markdown模块来允许对文本输入进行一些markdown格式化.

有一件事我搞不懂:

如果我使用换行符后跟一个或多个减号"-",但不使用其他符号,则最后一行将显示为<h2>,或者作为其他样式的补充.有时发生在无序列表的末尾.

这对我来说是意想不到的,我在文档中找不到任何关于它的东西.这样对吗?

import markdown
  

print(markdown.markdown("Why is this h2 and not p? \n-"))

# <h2>Why is this h2 and not p?</h2>

推荐答案

这是一张setext heading美元的.

Setext标题由一行或多行文本组成,而不是 被一个空行打断,其中第一行没有 超过3个空格的缩进,后跟一个setext标题 划下划线.文本的行数必须是这样的,如果不是跟随它们 通过setext标题下划线,它们将被解释为 段落:它们不能解释为代码栏、ATX标题、 块引用、主题中断、列表项或HTML块.

Setext标题下划线是=个字符的序列或一个序列 -个字符,缩进不超过3个空格 尾随空格或制表符的数量.如果包含单个-的行可以 被解释为空列表项,则应解释为此 方式,而不是作为setext标题下划线.

中使用=个字符,则标题为1级标题 Setext标题下划线,如果有-个字符,则为2级标题 使用.标题的内容是分析 前面的文本行作为CommonMark内联内容.

例如:

Foo *bar*
=========

Foo *bar*
---------
<h1>Foo <em>bar</em></h1>
<h2>Foo <em>bar</em></h2>
Foo *bar
baz*
====
<h1>Foo <em>bar
baz</em></h1>

而且,与您的情况一样,下划线可以是任何长度(尽管So的解析器不同意):

Foo
-------------------------

Foo
=
<h2>Foo</h2>
<h1>Foo</h1>

Python相关问答推荐

为什么自定义pytree aux_data对于jnp.数组来说在.jit()之后跟踪,而对于np.数组来说则不是?

在Python中,如何初始化集合列表脚本的输出

流畅的模式,采用Escc方法

在Python中是否可以输入使用任意大小参数列表的第一个元素的函数

如何从不同长度的HTML表格中抓取准确的字段?

如何处理必须存在于环境中但无法安装的Python项目依赖项?

如果AST请求默认受csref保护,那么在Django中使用@ system_decorator(csref_protect)的目的是什么?

Python:记录而不是在文件中写入询问在多文件项目中记录的最佳实践

Twilio:CallInstance对象没有来自_的属性'

阅读Polars Python中管道的函数定义

Python Hashicorp Vault库hvac创建新的秘密版本,但从先前版本中删除了密钥

Python:在类对象内的字典中更改所有键的索引,而不是仅更改一个键

Select 用a和i标签包裹的复选框?

将两只Pandas rame乘以指数

PMMLPipeline._ fit()需要2到3个位置参数,但给出了4个位置参数

如何从在虚拟Python环境中运行的脚本中运行需要宿主Python环境的Shell脚本?

我们可以为Flask模型中的id字段主键设置默认uuid吗

给定高度约束的旋转角解析求解

dask无groupby(ddf. agg([min,max])?''''

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?