Github Markdown中代码块内的上标

11
<sup></sup> 标签用于上标。使用反引号可以创建代码块。我的问题是,当我尝试在代码块中创建上标时,它会打印出<sup></sup>标签而不是格式化标签之间的文本。
如何在反引号之间正确格式化上标文本? 解决方案后编辑 期望输出: A2 而不是 A<sup>2</sup>
3个回答

13
这是不可能的,除非您使用原始的HTML。 规则明确说明:

使用代码范围时,和号和尖括号会自动编码为HTML实体,这使得包含示例HTML标签变得容易。

换句话说,在代码范围内无法使用HTML格式化文本。事实上,代码范围是纯粹、未格式化的文本。任何文本出现为上标都意味着它不是纯粹的未格式化文本。因此,这是设计上不可能实现的。
然而,规则也说明
Markdown并不是HTML的替代品,甚至与之相距甚远。它的语法非常简单,仅对应一小部分HTML标签。它的目的不是为了创建一个更容易插入HTML标签的语法。在我看来,HTML标签已经很容易插入了。Markdown的目的是使撰写、编辑和阅读散文变得容易。HTML是一种发布格式,而Markdown是一种撰写格式。因此,Markdown的格式语法只涉及可以用纯文本传达的问题。
对于任何未被Markdown语法覆盖的标记,只需使用HTML本身即可。...
因此,如果您确实需要将代码中的某些文本设置为上标,则可以使用原始的HTML代码(请务必根据需要手动转义)。
<code>A code span with <sup>superscript</sup> text and escaped characters: "&lt;&amp;&gt;".</code>

这将呈现为:

带有上标文本和转义字符"<&>"的代码跨度。


感谢提供与Markdown规则相关章节的链接。在使用原始HTML或利用Unicode字符之间,哪个选项更好呢? - Aaron
1
使用Unicode“字符将取决于您的操作系统和配置”,以及您的文件编码和编辑器。但是,原始HTML应该可以在大多数任何系统上工作。原始HTML也更为典型,如果其他人稍后需要查看/编辑您的工作,他们可能会感到惊讶和/或不确定如何使用Unicode字符。 - Waylan

3

这是预期行为

Markdown会在代码块外部包裹<pre><code>标签。

你可以在代码块中使用Unicode上标和下标字符

class SomeClass¹ {
}

输入这些字符将取决于您的操作系统和配置。我喜欢在我的Linux机器上使用组合键序列。作为最后的手段,您应该能够从类似上面提到的维基百科页面中复制并粘贴它们。

¹一些有趣的注释,例如引用MDN关于<pre><code>标记的内容。


0
如果你幸运的话,你想要上标(或下标)的字符可能在Unicode中有专门的代码点。这些将在代码块内起作用,就像你的问题中演示的那样,在反引号中包含。例如:
Water (chemical formula H₂O) is transparent, tasteless and odourless.

我在这个Gist中列出了上标和下标的Unicode字符。你可以从那里复制粘贴任何你需要的字符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接