【问题标题】:Turning a string into html using MarkupString使用 MarkupString 将字符串转换为 html
【发布时间】:2021-06-24 19:11:16
【问题描述】:

我正在尝试从 github 存储库中获取 README.md 文件的内容并将其输出显示在网页上(使用剃须刀),这是我的代码:

@using System.Net.Http.Headers;
@using Newtonsoft.Json;

@page "/"

<h1>Hello, world!</h1>

Welcome to your new app.

<SurveyPrompt Title="How is Blazor working for you?" />

<span>
    @((MarkupString)content)
</span>


@code{

    public string content { get; set; }

    protected override async Task OnInitializedAsync() {
        const string url = "https://api.github.com/repos/angrymonkeydocs/amd-css/contents/README.md";
        HttpClient client = new();

        //client.DefaultRequestHeaders.Add("User-Agent", "AngryMonkeyDocs");

        client.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("AngryMonkeyDocs", "1"));
        string responseString = await client.GetStringAsync(url);
        dynamic json = JsonConvert.DeserializeObject(responseString);
        string jsonContent = json["content"];

        content = Base64Decode(jsonContent);
        
    }


    private static string Base64Decode(string base64EncodedData)
    {
        var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
        return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
    }
}

结果如下:

这里是网页地址:https://github.com/angrymonkeydocs/amd-css#readme

我不明白为什么我得到以下结果而不是像网页一样

【问题讨论】:

  • API 以 markdown 语言返回 raw content。但是markdown需要转换成HTML才能在浏览器中显示。
  • GitHub API 似乎有一个endpoint 可以将 Markdown 转换为 HTML。

标签: c# html razor github-api rest


【解决方案1】:

.md 文件是一个降价文件。它不是 HTML。 Github 在显示时获取降价并将其格式化为 HTML。您可以使用 markdig 之类的方式自行将其转换为 HTML。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多