【问题标题】:Azure DevOps: How to show wiki pages in own application without the devops main menu?Azure DevOps:如何在没有 devops 主菜单的情况下在自己的应用程序中显示 wiki 页面?
【发布时间】:2019-08-19 20:53:14
【问题描述】:

我想在带有浏览器控件的 WPF 视图中展示我为我的项目创建的 Azure DevOps Wiki。我使用了以下网址:

https://dev.azure.com/xxx/xxx/_wiki/wikis/KIS.wiki?wikiVersion=GBwikiMaster&pagePath=%2FNew%20Features&pageId=1

是否可以只显示 Wiki,而不显示左侧的 DevOps 主菜单(Overview、Summary、Dashboards、Wiki、Repos、Pipelines 等)?

【问题讨论】:

    标签: url azure-devops wiki


    【解决方案1】:

    是否可以只显示 Wiki,而不打开 DevOps 主菜单 左侧(Overview、Summary、Dashboards、Wiki、Repos、Pipelines、 等等)

    从这个链接可以看出,这是代表整个页面的链接,包含左侧面板和右侧显示的内容。如果您想将此链接用作 WPF 视图的一部分,它可能不会仅显示在 wiki 中。

    但是有一个变通方法,因为 WPF 支持 Markdown 语言,你可以使用下面的 api 来获取它的 markdown 脚本:

    https://dev.azure.com/{org name}/{project name}/_apis/wiki/wikis/{wiki name}/pages/%2F10
    

    然后,将这些用于您的 WPF 脚本。

    更新:

    要使用此 API,您需要先将凭据传递给脚本。要提供凭证,您可以链接一个用 C# 编写的.cs 文件。

    在此 .cs 文件中,使用以下 C# 脚本与您的组织建立连接:

    var url = new Uri("https://dev.azure.com//{org}");
    VssCredentials cre = new VssCredentials(new Microsoft.VisualStudio.Services.Common.VssBasicCredential(string.Empty, "{PAT token}"));
    var connection = new VssConnection(url, cre);
    var workitemClient = connection.GetClient<xxxxHttpClient>();
    

    【讨论】:

    • 这很有趣,谢谢!你知道我如何提供凭据吗?
    • 你用的是哪个HttpClient,用的是什么方法?使用 GitHttpClient 和 GetItemsAsync() 我必须提供存储库和路径,但我没有在“Repos”/“Files”下看到 wiki 内容,所以我认为正确的方法是使用你的 url。但那是哪种客户端方法呢?再次感谢。
    • 由于是获取wiki的内容,所以我使用的方法是Get。我使用的 HttpClient 是 WikiHttpClient。对于一些命名空间和类,你可以参考这个文档:docs.microsoft.com/en-us/dotnet/api/…
    • 事情进展如何?你对此还有什么疑惑吗?不要犹豫,让我们知道。
    • 我现在可以下载一个降价页面,但我还没有看到如何获取整个结构并在页面之间导航。另外,要在 WPF 中呈现 markdown,我们需要库,对,我猜 WPF 不支持 markdown?
    【解决方案2】:

    只是想分享一下我们最终为我们的 WPF“WikiView”用户控件设计的内容:

    • 我们使用 WikiHttpClient 的 GetPageAsync() 来获取所有页面的内容 (page.Page.Content) 并使用 page.Page.GitItemPath 中的路径名将 markdown (*.md) 文件保存到本地
    • 我们使用 GitHttpClient 从 wiki 存储库中的“附件”文件夹中获取所有图像
    • Markdig 将 Markdown 转换为 html(并手动将绝对链接地址固定为相对链接地址)
    • wiki 页面的列表框(目录)
    • 用于显示 html 的 CefSharp 浏览器控件(WPF BrowserControl 显示的图像太小)

    如果感兴趣,我会提供一些代码。

    【讨论】:

      【解决方案3】:

      鉴于 wiki 实际上是 markdown,您可以随时下载源代码并使用 markdown 查看器。例如。 VsCode 降价预览。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-26
        • 1970-01-01
        • 2021-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多