Docfx 3.0.0 如何获取 Index.html 上的目录
Docfx 3.0.0 How to get the TOC on the Index.html
此题与相同。但是 OP 回答了他自己的问题,但对我没有帮助。
我正在尝试创建类似于 Docfx 站点的文档:
但是,当我构建项目时,我得到如下所示的 index.html:
我的配置是这样的:
- 在 Visual Studio 2017 年为项目安装 docfx.console 作为 nuget 包。
- docfx版本为2.58.0.
- 我正在 Visual Studio 中构建项目,它会生成 docfx 输出。
我的文件夹配置是:
+MyApp.sln
|-MyApp
MyApp.csproj
docfx.json
toc.yml
index.md
|-_site
|- api
index.md
toc.yml
|-articles
intro.md
toc.md
我可以看到所有文件都在生成,但是 TOC 没有放到 index.html 上。 Docfx tutorial 不是很有用,因为它还没有升级到最新版本。比如docfx init
没有运行,我就得用docfx new conceptual
。我试过:
- 运行
docfx new conceptual
来自与 docfx.json 相同目录中的命令提示符
- 运行
docfx build
来自与 docfx.json 相同目录中的命令提示符
- 运行
docfx serve _site --port 8182
来自同一目录。但是,完成后,我的浏览器会告诉我检查我的代理设置。
在我尝试做的所有事情中,我可能在一个地方升级了我的 docfx 版本,但在 Visual Studio 中没有,因为当 运行ning docfx serve
我得到以下内容根目录小路:
但我不确定如何还原或是否需要还原。
我肯定处于锁定的安全环境中,我怀疑这与它有关。有谁知道我可以如何更改哪些文件(如果有的话)以使 TOC 与 index.html 位于同一页面上?如果需要的话,我不介意手写这个,如果我只需要在配置文件中做一次的话。
我能做到这一点的唯一方法:
将articles/toc.md改为articles/toc.yml:
- name: Home
href: ../index.md (or wherever index.md relative to articles/ is)
- name: Intro
href: intro.md
将此添加到 docfx.json > 构建 > 内容 > 文件(包含文章的那个):
"**/*.yml",
从 toc.yml 中取出对 home 的引用(在根目录):
- name: Articles
href: articles/
- name: API
href: api/
我不是很清楚你的文件结构,但就是这个意思。
对我来说,有效的方法是更改根 toc.yml。具有类似 /index.md 文件名的 href 不起作用,但它可以用于文件夹。
错误:
根 toc.yml
- name: Articles
href: articles/index.md
- name: API
href: api/index.md
好:
根 toc.yml
- name: Articles
href: articles/
- name: API
href: api/
topicHref: api/some.md
终于找到问题了。对我来说,问题是文件夹配置。我必须将我的 docfx.json
、toc.yml
和 index.md
移动到我的 .sln 文件所在的顶层,因为它正在访问多个 .csproj
文件。我没有意识到顶级 toc.yml
只能访问其当前位置下的文件夹。
此外,顶级 toc.yml
只会在页面顶部创建菜单项。较低级别的目录文件将在页面左侧创建目录。
深入研究教程才弄明白这一点。
此题与
我正在尝试创建类似于 Docfx 站点的文档:
但是,当我构建项目时,我得到如下所示的 index.html:
我的配置是这样的:
- 在 Visual Studio 2017 年为项目安装 docfx.console 作为 nuget 包。
- docfx版本为2.58.0.
- 我正在 Visual Studio 中构建项目,它会生成 docfx 输出。
我的文件夹配置是:
+MyApp.sln
|-MyApp
MyApp.csproj
docfx.json
toc.yml
index.md
|-_site
|- api
index.md
toc.yml
|-articles
intro.md
toc.md
我可以看到所有文件都在生成,但是 TOC 没有放到 index.html 上。 Docfx tutorial 不是很有用,因为它还没有升级到最新版本。比如docfx init
没有运行,我就得用docfx new conceptual
。我试过:
- 运行
docfx new conceptual
来自与 docfx.json 相同目录中的命令提示符
- 运行
docfx build
来自与 docfx.json 相同目录中的命令提示符
- 运行
docfx serve _site --port 8182
来自同一目录。但是,完成后,我的浏览器会告诉我检查我的代理设置。
在我尝试做的所有事情中,我可能在一个地方升级了我的 docfx 版本,但在 Visual Studio 中没有,因为当 运行ning docfx serve
我得到以下内容根目录小路:
我肯定处于锁定的安全环境中,我怀疑这与它有关。有谁知道我可以如何更改哪些文件(如果有的话)以使 TOC 与 index.html 位于同一页面上?如果需要的话,我不介意手写这个,如果我只需要在配置文件中做一次的话。
我能做到这一点的唯一方法:
将articles/toc.md改为articles/toc.yml:
- name: Home
href: ../index.md (or wherever index.md relative to articles/ is)
- name: Intro
href: intro.md
将此添加到 docfx.json > 构建 > 内容 > 文件(包含文章的那个):
"**/*.yml",
从 toc.yml 中取出对 home 的引用(在根目录):
- name: Articles
href: articles/
- name: API
href: api/
我不是很清楚你的文件结构,但就是这个意思。
对我来说,有效的方法是更改根 toc.yml。具有类似 /index.md 文件名的 href 不起作用,但它可以用于文件夹。
错误: 根 toc.yml
- name: Articles
href: articles/index.md
- name: API
href: api/index.md
好: 根 toc.yml
- name: Articles
href: articles/
- name: API
href: api/
topicHref: api/some.md
终于找到问题了。对我来说,问题是文件夹配置。我必须将我的 docfx.json
、toc.yml
和 index.md
移动到我的 .sln 文件所在的顶层,因为它正在访问多个 .csproj
文件。我没有意识到顶级 toc.yml
只能访问其当前位置下的文件夹。
此外,顶级 toc.yml
只会在页面顶部创建菜单项。较低级别的目录文件将在页面左侧创建目录。
深入研究教程才弄明白这一点。