ChatGPT解决这个技术问题 Extra ChatGPT

如何在我的网站上启用 iOS 5 Safari 阅读器?

iOS 5 中 Mobile Safari 的阅读器功能如何工作?如何在我的网站上启用它。如何告诉它我页面上的哪些内容是触发此功能的文章?

有关 Firefox 中阅读器视图的一些信息,请参阅 stackoverflow.com/questions/30730300/…

M
Mathias Bynens

此处发布的许多答案都包含虚假信息。以下是一些更正/澄清:

元素可以很好地用作包装器; Safari 阅读器可以识别它。我的网站就是一个例子。您选择哪个包装元素并不重要,只要有一个,除了 或

。你可以使用

;或为此目的在语义上不正确的元素,例如
e
eriklinde

我已经在我的 iPhone 上测试了 100 种左右的变体,以确定是什么触发了这种难以捉摸的阅读器状态。我的结论如下:

以下是我发现的影响:

在您想要触发“阅读器”的文章中包含大约 200 个或更多单词(或 1000 个字符,包括空格)似乎是必要的

当我的字数少于 170 时,阅读器永远不会被触发;虽然它有时会在我有 180 或 190 个单词时触发。

某些元素内的文本,例如

      (通常不用于包含故事)将不计入 200 个单词(但是,如果由于其他原因触发阅读器,它们将显示在阅读器中)

      将 200 个单词包装在块元素中,例如

      似乎是必要的(也就是说,如果有任何网站还没有这种情况,我会感到惊讶)

      为了全面披露,以下是我发现没有影响的内容:

      是否使用标题

      是否将文本包装在

      中或让它自由流动

      标点符号(即删除所有句号、逗号等没有影响)


a
alessandrio

似乎它所基于的算法正在寻找 p-Tags 并且它计算像“。”这样的分隔符。在内部文本中。点数最多的部分 (div) 获得焦点。

见:http://lab.arc90.com/experiments/readability/

似乎是 Reader-mode 的基础,至少 Safari 在 Acknowledgements 中将其属性,请参阅:

file:///C:/Program%20Files/Safari/Safari.resources/Help/Acknowledgments.html

Arc90 ( Readability ) 版权所有 © Arc90 Inc. Readability 根据 Apache 许可证 2.0 版获得许可。


C
Community

这个问题 (How to disable Safari Reader in a web page) 有更多详细信息。复制到这里:

我很想知道更多关于什么触发了 Safari 中的 Reader 选项以及什么不触发。我不打算实施任何会禁用它的东西,但作为一项技术练习感到好奇。到目前为止,我通过一些基本的游戏学到了什么: 你至少需要一个 H 标签 它不仅仅取决于字符数,而是 P 标签的数量和长度 可能会寻找句子中断 '。和其他标准 Safari 将提供“阅读器”,如果,带有 H 标签,以及以下内容:1 P 标签,2417 个字符 4 个 P 标签,1527 个字符 5 个 P 标签,1150 个字符 6 个 P 标签,862 个字符 如果减去 1 个字符从以上任何一项中,“阅读器”选项都不可用。我应该注意到 H 标签的字符数起到了一定的作用,但遗憾的是,当我确定上述结果时并没有意识到这一点。假设 H 标记有 20 多个字符,并且在上面的结果中是固定的。其他一些有趣的事情: P 标签的设置会将它们从计数中删除 设置显示为无,然后在 230 毫秒后使用 Javascript 显示它们也避免了 Reader 选项如果有人可以完全确定这一点,我会很感兴趣。


不正确。 Reader 工作不需要标题元素。示例:mathiasbynens.be/demo/safari-reader-test-3 在此处阅读更多信息:mathiasbynens.be/notes/safari-reader
S
Smartmarkey

Firefox 和 Chrome 都有类似的插件,名为 iReader。这是它的带有源代码的项目。

http://code.google.com/p/ireader-extension/

阅读代码以获取更多信息。


j
jonsca

我正在为此苦苦挣扎。我终于把我故事中的<ul>标记去掉了,还有中提琴!它开始工作了。

我没有在身体周围放任何包装纸,但可能是偶然做的。


y
yrn1

HTML5 文章标签不会在我的测试中触发它。它似乎也不适用于离线内容(即保存在本地计算机上的页面)。

似乎触发它的是一个 div 块,其中包含很多 p 和很多文本。


我在我的网站上使用 <article> 并且 Reader 在那里工作,例如 mathiasbynens.be/notes/html5-levels,但不适用于较小的文章,例如 mathiasbynens.be/notes/document-head <article> 的使用似乎与它没有任何关系。
任何包装器元素都可以——<div><article><section>……甚至像 <nav><aside><span> 这样奇怪的东西也能正常工作。在此处阅读更多信息:mathiasbynens.be/notes/safari-reader
u
user139195

p标签理论听起来不错。我认为它还可以检测其他元素。我们的一个有 6 段的页面没有触发阅读器,但是有 4 段和一个 img 标签的页面触发了阅读器。

它也很聪明,可以检测多页文章。在 nytimes.com 或 nymag.com 上的多页文章中尝试一下。也有兴趣知道它是如何检测到这一点的。


M
Marc

尽管可能令人惊讶,但它确实没有关注 HTML5 文章标签,特别令人失望的是 Safari 5 完全支持 CSS 中的文章、部分、导航等——它们现在可以像 div 一样设置样式,并且行为与任何块级元素相同。

我专门设置了一个带有文章标签和几个内部部分标签的网站,为语义 HTML5 标签做准备,正是为了这样的目的,所以我真的希望 Safari 5 将它用于阅读器。没有这样的运气 - 可能应该为此提交一个错误,因为它很有意义。它实际上完全忽略了页面上的大多数 h2 级别子标题,每个都标记为一个部分,只显示符合前面提到的标准的单个 div。

具有讽刺意味的是,同一站点的旧版本既没有文章、部分也没有分隔 div 标记,可以识别整个正文以在阅读器中显示。


<article> 是 Safari Reader 识别的有效包装器,并且工作正常。有关一些示例,请参阅我对此答案的评论:stackoverflow.com/questions/2997918/…
我可能不清楚;我的意思是
的处理方式与普通的
没有任何不同;我希望如果 Reader 看到一个
标签,它会将内容视为一个块,除非内容符合其其他要求,否则它不会。对我来说,结果是因为我的
包含多个
阅读器只抓取一个包含的
A
Allen

请参阅Article Publishing Guidelines

以下是有关如何读取和解析的 API:Readability Developer APIs。已经有一个项目可以参考:ruby-readability

简史:自 Apple 的 Safari 5 浏览器嵌入名为 Readability 的代码库以来,Safari 阅读器的功能,而 Readability 最初是一个简单的、基于 Javascript 的阅读工具,可将任何网页变成可自定义的阅读视图。它由位于纽约市的设计和技术商店 Arc90(作为 Arc90 Lab 实验)于 2009 年初发布。它还嵌入了 Amazon Kindle 和流行的 iPad 应用程序,如 Flipboard 和 Reeder。


s
sashaeve

我正在研究用于从类似于 Safari 阅读器功能的信息“垃圾”中清理网站的算法。它不如可读性好,但有一些很酷的东西。

您可以在 smartbrowser.codeplex.com 项目页面了解更多信息。