23487309c8
dang this hurt my brain. need to figure out a better way |
||
---|---|---|
assets | ||
docker | ||
documentation | ||
ISSUES | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
LICENSE | ||
main.scm | ||
Makefile | ||
README.md |
repo2html
A command-line tool that generates a static HTML representation of a Git repository.
Page contents
- Features
- Requirements
- Usage
- Installation
- Configuration
- Creating a Git forge on your web server
- Alternative Git-to-HTML tools
- Existing Git forges
- Existing Git forge software
- Todos
Features
- Static html files
- Customizable templates
- Can be used as a standalone command-line tool, or in a Git hook
- Built-in, plaintext issue support
- Image support
- Markdown files are rendered as HTML
- No resident background process
Requirements
- Chicken Scheme
- The following Chicken Scheme eggs:
- Git
Usage
repo2html <destination> <template-directory>
Run repo2html
inside the root directory of a Git repository or a bare Git
repository.
<destination>
is the path to the directory that you want the HTML files to be generated in.<template-directory>
is the path to the directory that contains adefault.html
file. Refer toassets/templates/default.html
for an exampledefault.html
file.
The HTML that's generated represents the state of the HEAD
commit, not the
current state of the work tree.
Installation
This section guides you through installing the required dependencies, compiling
a binary, and then installing the binary. By default, repo2html
installs
into the /usr/local/bin
directory.
- Ensure you're in the
repo2html
git repository. - As root, run
make dependencies
to install the required Chicken Scheme eggs. - Run
make
to compile a staticrepo2html
binary in the current directory. - As root, run
make install
to copy therepo2html
binary into the/usr/local/bin
directory.
Note: If you want to use main.scm
as the repo2html
executable, instead
of compiling a static binary file, then run
cp main.scm /usr/local/bin/repo2html
as root.
Configuration
You can repo2html
by changing the following items:
Templates
You can customize repo2html
by editing the assets/templates/default.html
,
and then specifying the path to the default.html
file as the second
command-line argument when running repo2html
.
For example, if you placed a default.html
file in ~/bin
, and you serve HTML
files from /var/www/git
, then you run repo2html /var/www/git ~/bin
.
Environment variables
You can provide a generic description by setting the REPO2HTML_DESCRIPTION
environment variable, or by adding a description in a description
file in the
root directory of your Git repository.
Creating a Git forge on your web server
Refer to
Create a Git forge with repo2html
to learn how use repo2html
in a post-receive
hook to auto-generate HTML
representations of bare Git repositories on a remote web server after you git push
to them.
Alternative Git-to-HTML tools
Existing Git forges
Existing Git forge software
Todos
- documentation/feature: use post-update rather than post-receive hook for simplicity
- documentation: also describe use with post-commit hook
- documentation: describe readme, license, and issues behaviours
- feature: multi-page or collapse-able files list
- feature: branches and releases (tags)
- feature: diffs for each commit
- feature: clickable line numbers in source files
- feature: display binary files as output from binary-file analysis tools
like
hexdump
,xxd
,dumpelf
,elfls
,readelf
, etc.? - feature: syntax highlighting?
- feature: markdown-render git log text
- feature: other mechanisms for header id application like uniqueness checking, sequential numbering
- feature: remotes, upstream identification, and tracking branch status