git - 如何在 GitHub 页面上启用目录索引

标签 git github indexing server

我需要在 GH 页面上显示目录内容。

比较喜欢

  1. 自动,无需 index.html
  2. 用于自动生成 index.html 的工具或库
  3. 任何其他方法

因此,如果我的 GH Pages 存储库中有一个 FS:

http://github.com/[用户名]/[用户名].github.io/ :

script/
- app/
  - core/
    - init.js
- lib/
  - Element.animate.js
  - Object.overlay.js
- mod/
  - anim/
    - global/
      - carousel/
        - carousel.js
      - global.js
- ext/
  - cfgs.js
index.html

我希望每个目录 URL 像往常一样索引。

http://[用户名].github.io/script/ :

- app/
- lib/
- mod/
- ext/

http://[用户名].github.io/script/mod/anim/global/ :

- carousel/
- global.js

我唯一能想到的是偏好#2,编写或找到一个脚本来从 GitHub Repo 页面或我 FS 上的本地 Repo 自动生成 index.html。

最佳答案

如果您想要一个不需要任何更新的动态索引,我发现的唯一方法是使用 github contents api 在客户端生成它.

这是一个简单的示例,它创建指向项目顶级目录中文件的链接。如果要使用此方法支持子目录,则必须递归请求每个文件夹的内容。

<html>
  <body>
    <script>
      (async () => {
        const response = await fetch('https://api.github.com/repos/:user/:repo/contents/');
        const data = await response.json();
        let htmlString = '<ul>';
        
        for (let file of data) {
          htmlString += `<li><a href="${file.path}">${file.name}</a></li>`;
        }

        htmlString += '</ul>';
        document.getElementsByTagName('body')[0].innerHTML = htmlString;
      })()
    </script>
  <body>
</html>

Here's an example我用它为我拥有的平面 repo 创建了一个简单的目录。

关于git - 如何在 GitHub 页面上启用目录索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39048654/

相关文章:

ruby-on-rails - 使用 Remarkable 作为来自 Github 的 gem

mysql - 在包含 200 万条记录的表上添加索引是否会比包含 100 万条记录的同一张表慢两倍?

GitPython 通过 sha 获取树和 blob 对象

node.js - git ://and git+https://? 有什么不同

github - 如何使用 Jekyll 和 GitHub 添加适合移动设备的网站?

indexing - 如何在生产中有效地建立 "defragment"MongoDB 索引?

具有索引澄清的 MySQL 性能

Gitflow 和意外 merge 其他功能

git - 为什么 "git index"有这么多名字?

java - 相关的Java程序和Python程序是否应该共存于同一个git repo中?