如何在语义上标记诗歌文本?
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
(除非你引用一首诗)。
空格/换行符:pre
或 br
您可以使用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>
但不要对所有诗歌都使用这些,这真的取决于页面是否正确使用。
杂项。 &琐事
某人proposedpoetry
元素(→ 拒绝)
某人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】:我查找了相同的信息,但同样没有找到任何明确的“最佳实践”——所以我想我只需要找出我自己的方法。 <p>
标记作为节标记确实有意义,根据规范,行除以 <br>
s ——但我发现这种标记样式不能提供足够的灵活性。
具体来说,我想控制缩进。例如,如果一条线对于文本列的宽度来说太宽了,它不应该只是中断:它的延续应该缩进。只有(据我所知)每行都是它自己的块元素时,才能实现这种悬挂缩进。因此,在我的情况下,我将每个诗行都设置为 <p>
和一个类(比如“诗行”)。然后我可以使用以下 CSS:
.poetry-line
text-indent: -2em;
margin-left: 2em;
在另一个例子中,我发布的这首诗每隔一行缩进一次,在节的末尾有一些不规则的地方。我无法在每行之间仅使用<br>
s 来实现此效果。我必须为“缩进线”创建一个新类并手动应用它。
我只是分享我的经验。我想我的建议是你为每一行使用一个块级元素,用于格式化。这可能是<p>
,或者我猜你可以使用 CSS 将<span>
的“显示”设置为“阻止”。在任何情况下,我认为,规范中在行间使用<br>
s 的示例不适用于大多数诗歌:每一行都需要成为自己的元素。
【讨论】:
我最终得出了与@davidtheclark 相同的结论。我不认为使用带有 s 的标签可以正确处理缩进。
中断后缩进的问题已被问到here。显然,至少从 2012 年开始,CSS 3 一直在为这个用例提议 a keywordeach-line
,以便与 text-indent
一起使用。例如,您会说text-indent: -2em each-line;
。但截至 2021 年,no browser has implemented it。有人介意对开源软件做出简单的贡献吗?
也问here。以上是关于如何在语义上标记诗歌文本?的主要内容,如果未能解决你的问题,请参考以下文章