适用于离线使用的 MDN JavaScript 文档

63
我正在尝试使MDN的Javascript参考文档可以离线浏览(仅限个人使用)。
我不是该网站的所有者或开发人员,只能访问其生成的输出。
我的第一个想法是在页面中注入HTML5 appcache.manifest;使用manifestR,我已经生成了页面资产列表。
然后我尝试使用file:///协议指向我的本地清单文件,使用http://协议,最后使用代表文件内容的base64字符串data:text/cache-manifest,)。但是似乎没有任何作用。
在进行了一些谷歌搜索之后,我偶然发现了他们的公共FTP。还没有完全爬取它。但是仍然没有找到任何有关js文档的提及。
我考虑使用浏览器的“另存为”命令保存HTML页面;但与其单独保存每个页面,我宁愿开发一个基于JavaScript的爬虫。
我该在哪里找到MDN文档的离线版本?或者说,我如何在离线时浏览MDN文档?

目前还没有MDN文档的离线版本,你可以停止对FTP服务器的爬取 - 你在那里找不到它。将文档导出以供离线使用是下一个MDN版本的计划,但我不确定它的进展如何。 - Wladimir Palant
正如@WladimirPalant所提到的,这是计划中的。请参见:原始建议相关错误 - Benjamin Oakes
1
MDN离线副本。https://github.com/mozilla/kuma/ - Vasiliy Toporov
1
@Vasily:这个项目看起来很不错,但是似乎安装相当复杂,仅仅为了使用文档作为参考。你知道是否有计划提供一个只读版本的HTML文件,而不需要整个Wiki后端? - user4815162342
6个回答

67

请到 https://mdn-downloads.s3-us-west-2.amazonaws.com/developer.mozilla.org.tar.gz 下载。

“关于 MDN” 中的“下载内容”部分提供了上述链接(用于 tarball 下载),以及其他获取 MDN 内容的方法,包括单个页面和通过第三方工具。

而其他人:请不要使用 wget 等工具镜像,这会给网站带来不必要的压力并阻碍其他用户。至少确保正确处理 https://developer.mozilla.org/robots.txt(请求进行缓慢访问)。例如,wget 就无法正确处理这一点(http://savannah.gnu.org/bugs/?30999)。


11
值得注意的是,这个tarball包含了MDN维基源代码的全部内容,包括所有的语言环境、用户页面、讨论页和所有其他内容。在我的电脑上解压后,它变成了一个大约5GB大小的巨大文件夹。虽然不是什么大问题,但它比我预期的要大得多。 - Max Cantor
只需使用 wget --limit-rate=200k --continue https://developer.mozilla.org/media/developer.mozilla.org.tar.gz 命令即可下载,该命令还可以让您恢复下载。目前文件在解压缩前大小为7G。 - Orwellophile
1
我已经下载了它,但是资源还引用了很多CDN资源。因此它仍然无法离线工作。 - Does

43
JavaScript文档以及MDN的大部分Web参考页面都可以在DevDocs上找到。
该应用程序是开源的,可以离线运行: https://github.com/Thibaut/devdocs 它易于设置,并且不需要爬取MDN。

7
我为什么不知道这件事?这应该被标记为正确答案。使用 IndexedDB 进行离线存储?!这太元了,我都要哭了。感谢你构建如此惊人的工具! - samson

7

4
Zeal 是 Linux 和 Windows 系统下的 Dash 替代品,甚至还有可用的 IDE 插件。 - lightonphiri
1
很遗憾,目前这个Javascript文档只包含API文档! - Anwar

6
这看起来相当有前途:https://github.com/rgarcia/dochub 这是一个全能文档站点,可以安装在您自己的电脑上(需要node),包含来自许多标准Web参考资料的数据,其中包括MDN。它包含一个屏幕抓取组件,从MDN中提取信息,并且更新得相当快(至少比上面提到的wget镜像命令要快得多)。我还没有确认抓取的文档是否完整,但乍一看它们看起来非常好。

这对我来说非常完美 - 我需要的所有网页开发参考资料都可以离线使用... - Allan Nienhuis
2
这个项目看起来已经死了。 - Adonis K. Kakoulidis
同意。项目页面上有几个未解决的bug,看起来是因为屏幕抓取程序已经无法工作了。但是,我认为被采纳的答案更好,反正我认为在十个月前我回答时tarball并不存在。 - user4815162342

2

DevDocs提供了519个不同的文档,全部来自MDN并使用Ruby scraper和JavaScript应用程序开发而成。这将有助于任何遇到此问题的人。它还是GitHub上的开源项目


1

8
这是由于MDN没有明确如何离线浏览而导致的服务器负荷压力。 - Camilo Martin
它发送无限的请求。这样能够获取所有内容吗? - Vinay
页面未找到(404)。 - Vitaly Zdanevich

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