我已经用 Sandcastle 生成了我的项目的网站文档。这个网站使用框架,所以当我点击网站时,我在浏览器中的 URL 不会改变。
当我浏览使用 Sandcastle 生成的网站文档时,我希望在浏览器中更改 URL。为什么?因为我想从我的开发人员环境的其他部分链接到文档的具体子页面。
此外,我希望此链接永久有效。因此,当我从项目的新版本再次生成文档时,链接不会改变,因此我不需要将所有链接都更改为新的。
这可能吗?如何实现?
我已经用 Sandcastle 生成了我的项目的网站文档。这个网站使用框架,所以当我点击网站时,我在浏览器中的 URL 不会改变。
当我浏览使用 Sandcastle 生成的网站文档时,我希望在浏览器中更改 URL。为什么?因为我想从我的开发人员环境的其他部分链接到文档的具体子页面。
此外,我希望此链接永久有效。因此,当我从项目的新版本再次生成文档时,链接不会改变,因此我不需要将所有链接都更改为新的。
这可能吗?如何实现?
为了创建指向文档特定子页面的正确链接,您可以使用类似的请求:$DOCUMENTATION_ROOT$/Index.aspx?topic=html/$TOPIC_ID$.htm
例如http://www.ewoodruff.us/shfbdocs/Index.aspx?topic=html/8dcbb69b-7a1a-4049-8e6b-2bf344efbbc9.htm 而不是http://www.ewoodruff.us/shfbdocs/html/8dcbb69b- 7a1a-4049-8e6b-2bf344efbbc9.htm
如果您将以下代码添加到浏览器顶部,SplitScreen.js
则会“注入” TOC 框架并专注于您直接链接到的内容(使用 Vitaly Shibaev 展示的技巧)。
if (window==top) {
window.location = "/?topic=" + (window.location.pathname.substring(1));
}
此代码适用于文档放置在您网站的根目录中 - 如果您将其放在子文件夹中,则需要扩展“/?topic”并从路径名部分中删除子文件夹部分。
通过此更改,您可以使用“直接链接”。我还希望通过 Google 找到您的人获得更好的体验(获得他们搜索的内容和 TOC 栏)。
Vitaliy和mawtex解决了您问题的“如何链接到文档子页面”部分。
“使链接永久化,因此在重新生成文档时它们不会改变”部分问题会自动解决,因为默认情况下创建的 html 文件名基于主题名称的哈希值。即,如果您不更改正在记录的代码部分,那么它将使用相同的文件名。
您可以更改生成 html 文件名的方式,但所有给定的方法都基于成员名称或主题 ID 的哈希,因此如果代码没有更改,链接不应中断。
有关详细信息,请参阅 Sandcastle 帮助文件生成器的NamingMethod文档。