Markdown 标记文件(名称):为;index.md";-强制性的
它显然至少很流行,但mkdocs目录中的“主”文件必须称为index.md吗?如果我引用了其他地方的文件夹中的文件(不是该文件继承权的一部分),该怎么办?我问,因为我对链接到其他地方的文件有一个小问题。我在网上找到的关于这方面的文档很少。选择文件名“index.md”是因为它是配置了多少(大多数)web服务器。通常,URL有两种形式(与本讨论相关)。它们要么指向目录,要么指向文件Markdown 标记文件(名称):为;index.md";-强制性的,markdown,mkdocs,Markdown,Mkdocs,它显然至少很流行,但mkdocs目录中的“主”文件必须称为index.md吗?如果我引用了其他地方的文件夹中的文件(不是该文件继承权的一部分),该怎么办?我问,因为我对链接到其他地方的文件有一个小问题。我在网上找到的关于这方面的文档很少。选择文件名“index.md”是因为它是配置了多少(大多数)web服务器。通常,URL有两种形式(与本讨论相关)。它们要么指向目录,要么指向文件 /path/to/a/directory/ /path/to/a/directory/with_a_file.ht
/path/to/a/directory/
/path/to/a/directory/with_a_file.html
index.html
文件提供服务。换句话说,当请求/path/to/a/directory/
时,服务器将返回文件/path/to/a/directory/index.html
MkDocs没有用不同的命名约定来重新创造这种行为,而是简单地借用了相同的行为。当您使用MkdDocs“构建”站点时,位于/index.md
的文件将构建为/index.html
,并将由位于/
的服务器提供服务。现在,您可以重新配置服务器,以便在请求目录时提供不同的服务,但现有系统已经存在多年了,这样做几乎没有意义
因此,如果要在文档中创建指向目录中某个页面的链接,请直接链接到该页面:/path/to/some/page.html
。但是,如果要链接到目录中的“主页”,请链接到目录本身:/path/to/a/directory/
,并且将提供位于/path/to/a/directory/index.html的页面
您需要注意的唯一附加注意事项是,MkDocs使这变得更加容易。您不需要知道文件将构建到什么路径。如果链接到Markdown文件,MkDocs将做“正确的事情”,并重写链接以指向构建的HTML文件。因此,链接到some/page.md
,它将为您重写到some/page.html
或some/page/
的链接,具体取决于您如何配置使用\u目录\u URL
设置。请注意,当use\u directory\u url
设置为true
(默认设置)时,MkDocs使用了“索引”技巧,将每个文件作为索引文件放在自己的目录中,这样就不会使用任何文件扩展名。但是,只要您在内部使用.md
链接,链接就会正确生成
重读您的问题后,我突然想到,您可能正试图链接到MkDocs站点之外的文档。但是,不清楚您指的是托管在同一站点上的文档还是托管在其他站点上的文档。所以我将涵盖这两个方面
对于托管在其他站点上的文档,只需包含整个地址,包括主机。就我个人而言,我经常会进入浏览器中的页面,然后在地址栏中选择地址,并将整个内容复制到我的文档中。例如,上面指向MkdDocs文档的链接是http://www.mkdocs.org/user-guide/writing-your-docs/#linking-文档
,所以我将整个内容作为链接URL复制到了这个答案中
如果您要求链接到同一主机内的其他文档,则这取决于您的配置。例如,如果您在http://example.com/foo/
您想从您的MkDocs站点链接到该站点,该站点由http://example.com/bar/
然后您可以像使用外部站点一样使用完整链接,或者,您可以使用我在回答您的问题时解释的相对URL:。也许通过更好地了解“索引”页面的工作方式,您将能够更好地构建相对链接
另一方面,如果您希望链接到文档根目录之外的文件,那么您不能。我看到的任何web服务器都配置为引发错误作为安全预防措施,并且不会提供服务器根目录之外的任何文件。如果您想为文件提供服务,但无法将其从服务器根目录以外的位置删除,则需要复制该文件,或在文件系统中创建指向该文件的操作系统级链接。也就是说,根据服务器的配置方式,操作系统级链接可能会成功,也可能不会成功。然而,这将是另一个问题的主题。我承认我没有读过所有这些……但听起来答案是“不”。对吗?如果你是在谈论上一段提到的情况,那么是的,答案是“不”。