如何在语义上标记诗歌文本?

Posted

技术标签:

【中文标题】如何在语义上标记诗歌文本?【英文标题】:How to semantically tag poem text? 【发布时间】:2013-01-21 23:24:44 【问题描述】:

用什么写诗?

pre blockquote code 还有别的吗?

【问题讨论】:

这似乎是一个礼仪问题,比什么都重要…… 这可能很有趣:w3.org/html/wg/wiki/PoeticSemantics。另请参阅:w3.org/html/wg/drafts/html/master/grouping-content.html 【参考方案1】:

不要使用code(除非计算机代码是诗歌的一部分)。不要使用blockquote(除非你引用一首诗)。

空格/换行符:prebr

您可以使用pre element。该规范给出了一个(信息丰富的)示例:

下面显示了一首当代诗歌,它使用 pre 元素来保留其不寻常的格式,这构成了诗歌本身的内在部分。

<pre>                maxling

it is with a          heart
               heavy

that i admit loss of a feline
        so           loved

a friend lost to the
        unknown
                                (night)

~cdr 11dec07</pre>

但是,如果诗歌包含“更多”而不仅仅是有意义的换行符(例如,在本例中,水平空格是有意义的),我只会使用 pre 元素。

如果你有一首简单的诗,我会选择br element:

br 元素只能用于实际上是内容一部分的换行符,如诗歌或地址。

容器:p

对于大多数诗歌,p element 是正确的候选者(当然,几个 p 元素)。该规范有一个(信息丰富的)示例:

<p>There was once an example from Femley,<br>
Whose markup was of dubious quality.<br>
The validator complained,<br>
So the author was pained,<br>
To move the error from the markup to the rhyming.</p>

Also:

例如,地址也是一个段落,就像是表格、署名或诗节的一部分。

结构:(article, figure)

根据上下文(内容、页面结构……),分段元素可能是合适的(大多数情况下为article)。

还取决于上下文,figure element 可能是合适的:

这里,一首诗的一部分用figure标记。

<figure>
 <p>'Twas brillig, and the slithy toves<br>
 Did gyre and gimble in the wabe;<br>
 All mimsy were the borogoves,<br>
 And the mome raths outgrabe.</p>
 <figcaption><cite>Jabberwocky</cite> (first verse). Lewis Carroll, 1832-98</figcaption>
</figure>

但不要对所有诗歌都使用这些,这真的取决于页面是否正确使用。

杂项。 &琐事

某人proposed poetry 元素(→ 拒绝) 某人proposed 诗歌的微格式 w3.org wiki 中的讨论:Explicit Markup to Semantically Express Poetic Forms (感谢链接,steveax) 另见:on the mailing list Webmasters SE 上的类似问题:How to mark up a poem in HTML for SEO

【讨论】:

【参考方案2】:

我查找了相同的信息,但同样没有找到任何明确的“最佳实践”——所以我想我只需要找出我自己的方法。 &lt;p&gt; 标记作为节标记确实有意义,根据规范,行除以 &lt;br&gt;s ——但我发现这种标记样式不能提供足够的灵活性。

具体来说,我想控制缩进。例如,如果一条线对于文本列的宽度来说太宽了,它不应该只是中断:它的延续应该缩进。只有(据我所知)每行都是它自己的块元素时,才能实现这种悬挂缩进。因此,在我的情况下,我将每个诗行都设置为 &lt;p&gt; 和一个类(比如“诗行”)。然后我可以使用以下 CSS:

.poetry-line 
    text-indent: -2em;
    margin-left: 2em;

在另一个例子中,我发布的这首诗每隔一行缩进一次,在节的末尾有一些不规则的地方。我无法在每行之间仅使用&lt;br&gt;s 来实现此效果。我必须为“缩进线”创建一个新类并手动应用它。

我只是分享我的经验。我想我的建议是你为每一行使用一个块级元素,用于格式化。这可能是&lt;p&gt;,或者我猜你可以使用 CSS 将&lt;span&gt; 的“显示”设置为“阻止”。在任何情况下,我认为,规范中在行间使用&lt;br&gt;s 的示例不适用于大多数诗歌:每一行都需要成为自己的元素。

【讨论】:

我最终得出了与@davidtheclark 相同的结论。我不认为使用带有 s 的

标签可以正确处理缩进。

中断后缩进的问题已被问到here。显然,至少从 2012 年开始,CSS 3 一直在为这个用例提议 a keyword each-line,以便与 text-indent 一起使用。例如,您会说text-indent: -2em each-line;。但截至 2021 年,no browser has implemented it。有人介意对开源软件做出简单的贡献吗? 也问here。

以上是关于如何在语义上标记诗歌文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在鼠标焦点上标记 DatePicker 和 Timepicker 中的所有文本

Plotly:如何在甘特图上标记条形?

用户在地图上标记点时如何获取经纬度值?

如何在一腾讯地图上标记我的所有收藏点?

如何在单个图形上标记多个图形的 x 和 y 轴 [重复]

高德地图上如何标记多个地