# Gitiles - A simple JGit repository browser

Gitiles is a simple repository browser for Git repositories, built on JGit. Its
guiding principle is simplicity: it has no formal access controls, no write
access, no fancy Javascript, etc.

Gitiles automatically renders `*.md` Markdown files into HTML for simplified
documentation. Refer to the [Markdown documentation](/Documentation/markdown.md)
for details.

## Configuration

Gitiles is configurable in a git-style configuration file named
`gitiles.config`. Refer to the [configuration documentation](/Documentation/config.md)
for details.

## Contributing to Gitiles

Please refer to the [Developer Guide](/Documentation/developer-guide.md).
