使用GitHub API获取呈现的HTML维基页面

3
我正在尝试构建一个Web应用程序,获取GitHub Repo wiki的内容并显示渲染后的HTML。
我已经知道如何对标准Repo执行此操作。
https://api.github.com/repos/[org]/[repo]/contents/[file]

我还需要发送这个头部:Accept": "application/vnd.github.v3.html以获取HTML版本。

问题在于,如果仓库是一个Wiki,我就无法获取任何文件的内容。
这是我得到的: Postman: API response 有没有一种方法可以使用API(或其他方法,我只想获取Wiki页面的HTML渲染内容)来实现它?
1个回答

1
我认为我找到了一个可行的解决方案:
使用JavaScript中的new DOMParser()对象,我可以获取页面并使用以下代码获取markdown内容:
function getPage(name, repo, file) {
    fetch(`https://github.com/${name}/${repo}/${file}`, {mode: 'cors'})
        .then(data => data.text())
        .then(data => {
            const parser = new DOMParser();
            const dataEl = parser.parseFromString(data, "text/html");
            const el = dataEl.querySelector(".wiki-body > .markdown-body")
            $.html(".content", el.innerHTML)
        })
}
getPage("arguiot", "Glottologist", "wiki")

它还能用吗? - Xaalek
我相信它应该仍然可以工作。 - Arthur Guiot
那么如果我在一个 div 中调用该函数,它应该可以正常工作,对吗? - Xaalek
是的。只需使用jQuery在您的页面中放置.content元素即可。或者只需调整原始代码。 - Arthur Guiot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接