blob: 65727e5939af2754dc86052479f6bfa09498cac6 [file] [log] [blame] [view]
# Configuration
The `gitiles.config` file supporting the site contains several configuration
options.
[TOC]
## Core configuration
### Site Title
The title of the site. Default: `Gitiles`.
```
[gitiles]
siteTitle = Acme Inc. Git Browser
```
### URLs
`canonicalHostName`.
Default: `null`, determine the hostname from the local host.
`baseGitUrl` the base URL for git repositories.
`gerritUrl`, URL prefix to linkify Gerrit `Change-Id` headers in commit
messages. If you are using the Gerrit Gitiles plugin, this is set based on
Gerrit's configuration.
Default: `null`, do not link `Change-Id`.
```
[gitiles]
canonicalHostName = gitiles.example.org
gerritUrl = https://gerrit.example.org/r/
baseGitUrl = git://git.example.org/
```
### Repositories export
Set `exportAll` to instruct jGit to export all repositories, ignoring the check
for existence of `git-daemon-export-ok` file at the root of the repository.
Default: `false`, repositories need to be explicitly marked for export.
```
[gitiles]
exportAll = true
```
### Custom templating
The web views are defined via Soy templates, you inject your own version which
will be passed to the renderer. See `.soy` files in the source code for
available templates
```
[gitiles]
customTemplates = path/to/somefile.soy
customTemplates = path/to/another.soy
```
### Custom styling
It's possible to inject custom styles within the template. To do this add
the following to `gitiles.config`:
```
[gitiles]
customTemplates = path/to/afile.soy
[template]
customVariant=aVariant
```
Where `customVariant` is the variable defined in the default
templates themselves. Then you can define `afile.soy` as follows:
```
{namespace gitiles}
{deltemplate gitiles.customHeadTagPart variant="'aVariant'"}
<link rel="stylesheet" type="text/css" href="/static/file.css" />
{/deltemplate}
```
It is also possible to define a `<style>` tag there if desired.
### Fixed time zone
By default dates are formatted including the local user time zone as that
matches git tools. Some users/administrators may prefer normalizing to a
particular timezone so times are directly comparable without doing timezone
arithmetic.
Setting `fixedTimeZone` to a valid Java TimeZone ID causes all dates in the UI
to be implicitly converted to this timezone, and the now-redundant timezone
offset to be dropped from the output.
```
[gitiles]
fixedTimeZone = UTC
```
### Cross-Origin Resource Sharing (CORS)
Gitiles sets the `Access-Control-Allow-Origin` header to the
HTTP origin of the client if the client's domain matches a regular
expression defined in `allowOriginRegex`.
```
[gitiles]
allowOriginRegex = http://localhost
```
By default `allowOriginRegex` is unset, denying all cross-origin requests.
### Gitweb redirector
Redirect requests to old gitweb URLs after having migrated to Gitiles. Matching
URLs will be redirected permanently to their Gitiles equivalent.
Default: `true`.
```
[gitiles]
redirectGitweb = false
```
## Markdown
### Disabling markdown
Markdown can be completely disabled by setting render to false.
```
[markdown]
render = false
```
### Markdown size
Markdown files are limited by default to 5 MiB of input text
per file. This limit is configurable, but should not be raised
beyond available memory.
```
[markdown]
inputLimit = 5M
```
### Image size
Referenced [images are inlined](#Images) as base64 encoded URIs.
The image limit places an upper bound on the byte size of input.
```
[markdown]
imageLimit = 256K
```
### Extensions
The following extensions can be enabled/disabled in the markdown
section:
* `githubFlavor`: enable extensions that mirror GitHub Flavor
Markdown behavior. Default is true.
* `autolink`: automatically convert plain URLs and email
addresses into links. Default follows `githubFlavor`.
* `blocknote`: Gitiles style note/promo/aside blocks to raise
awareness to important content. Default false.
* `ghthematicbreak`: accept `--` for `<hr>`, like GitHub Flavor
Markdown. Default follows `githubFlavor`.
* `multicolumn`: Gitiles extension to layout content in a 12 cell
grid, delinated by section headers. Default false.
* `namedanchor`: Gitiles extension to extract named anchors using
`#{id}` syntax. Default false.
* `safehtml`: Gitiles extension to accept very limited HTML; for
security reasons all other HTML is dropped regardless of this
setting. Default follows `githubFlavor`.
* `smartquote`: Gitiles extension to convert single and double quote
ASCII characters to Unicode smart quotes when in prose. Default
false.
* `strikethrough`: strikethrough text with GitHub Flavor Markdown
style `~~`. Default follows `githubFlavor`.
* `tables`: format tables with GitHub Flavor Markdown. Default
follows `githubFlavor`.
* `toc`: Gitiles extension to replace `[TOC]` in a paragraph by itself
with a server-side generated table of contents extracted from section
headers. Default true.
### IFrames
IFrame support requires `markdown.safehtml` to be true.
IFrame source URLs can be whitelisted by providing a list of allowed
URLs. URLs ending with a `/` are treated as prefixes, allowing any source
URL beginning with that prefix.
```
[markdown]
allowiframe = https://google.com/
```
URLs not ending with a `/` are treated as exact matches, and only those
source URLs will be allowed.
```
[markdown]
allowiframe = https://example.com
allowiframe = https://example.org
```
If the list has a single entry with the value `true`, all source URLs
will be allowed.
```
[markdown]
allowiframe = true
```
## Google Analytics
[Google Analytics](https://www.google.com/analytics/) can be
enabled on every rendered markdown page by adding the Property ID
to the configuration file:
```
[google]
analyticsId = UA-XXXX-Y
```