Generate a file index for GitHub/GitLab Pages
curl https://raw.githubusercontent.com/jayanta525/apindex-v2/master/install.sh | bash
This is a program that generates index.html
files in each directory on your server that render the file tree. This is useful for static web servers that need support for file listing. One example of this is Github Pages.
It can also be used to reduce the server load for servers that serve static content, as the server does not need to generate the index each time it is accessed. Basically permanent cache.
The file icons are also embedded into the index.html
file so there is no need for aditional HTTP requests.
The install script can be used with CI/CD with the required dependencies.
name: Build and Deploy
on:
push:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-18.04
steps:
- name: Checkout ποΈ
uses: actions/checkout@v2.3.1
with:
persist-credentials: false
- name: Install and Build π§
run: |
sudo apt-get update
sudo apt-get install curl git -y
curl https://raw.githubusercontent.com/jayanta525/apindex-v2/master/sudo-install.sh | bash
apindex .
- name: Deploy π
uses: JamesIves/github-pages-deploy-action@4.1.3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: gh-pages
FOLDER: .
image: ubuntu:bionic
pages:
script:
- rm -rf .git*
- apt-get update
- apt-get install curl git -y
- curl https://raw.githubusercontent.com/jayanta525/apindex/master/install.sh | bash
- apindex .
- mkdir .public
- cp -r * .public
- mv .public public
artifacts:
paths:
- public
only:
- master
This openwrt kmod download archive is hosted on GitHub/ GitLab Pages and its generated with apindex.
Just run:
apindex <path-to-directory>
The index header server path is based on your current working directory. So if you run the script from /home/parent
on the directory /home/parent/child
like this:
cd /home/parent
apindex child/.
The index is generated as Index of /child.
If you want it to be absolute to the child directory, then you run apindex from there.
cd /home/parent/child
apindex .
This renders Index of /.
See share/icons.xml
and the files under share/img/*
.