summary history branches tags files
config-dark.toml
###############################################################################
##
## Global, site-wide configuration settings
##
###############################################################################

# A friendly name for the generated site.
#
# This is accessible in all templates.
#site_name = ""

# The URL where this generated site is hosted.
#
# This is accessible in all templates.
#site_url = ""

# A description of the generated site.
#
# This is accessible in all templates.
#site_description = ""

# URL where the repositories can be cloned from.
#
# Use the "%REPO%" variable to substitute the repository name.
#
# This can also be set per-repository.
#clone_url = "https://github.com/your_user/%REPO%"

# Which branch to use for generating history.
#
# Itsy-Gitsy currently only supports traversing the history of a single branch,
# which is the one named here.  Common options are "master" and "main".
# Defaults to "master" if not specified.
#
# Note that this probably should not contain any remote prefix, like "origin/",
# though it may.  Also note that the "default branch" is only a concept for
# remote repositories; local repositories do not have the concept, hence this
# must be explicitly specified.
#
# This can also be set per-repository.
#branch = "master"

# List of directories, each of which contains Git repositories to
# index.
#
# For each directory listed here, Itsy-Gitsy imports all of the
# immediate subdirectories as repositories.  Each repository is
# imported with its name set to the name of the subdirectory it is in.
#
# Every repository imported in this way has the global setting from
# this file applied.  It is not possible to apply per-repository
# settings for bulk-imported repositories.  Repositories that require
# specific configuration can be explicitly specified later in this
# file.
#recursive_repo_dirs = []

# List of files potentially containing repository documentation.
#
# Each repository root is searched for these files, in order.  The
# first matching file is provided to the templates as a `readme`
# variable, with the file contents.  Markdown files are rendered as
# HTML if the feature is enabled.
#
# This can also be set per-repository.
readme_files = ["README.md", "README"]

# List of files to copy to the site's `global_assets` directory.
#
# The files in this list are copied unmodified, and with the same name, to the
# configured `global_asset` output directory.  Use for including global,
# site-wide resources, such as stylesheets, images, and icons.
#
# Currently does NOT support globbing or directories.  Each file must be listed
# individually.
#
# Use "%TEMPLATE%" variable to substitute the path to the current
# template folder.
#
# Use "%REPO%" variable to substitute the path to the currently
# processing repository (only sensible when used as a per-repo
# configuration).
#
# This can also be set per-repository, in which case the `repo_assets` output
# directory is used.
asset_files = ["%TEMPLATE%/style.css"]

# Whether to split history output into pages
#
# If non-zero and a `history` template is specified, the history
# output is generated several times, each with the `history` variable
# in the template engine containing the next `paginate_history` number
# of entries.
#
# A `page` variable is available in the template, which contains the
# current, next, previous, and total number of pages.
#
# Use the "%PAGE%" variable in the `history` output variable to
# substitute the page number into the produced filename.
paginate_history = 50

# Whether to split branches output into pages
#
# If non-zero and a `branches` template is specified, the branches
# output is generated several times, each with the `branches` variable
# in the template engine containing the next `paginate_branches`
# number of entries.
#
# A `page` variable is available in the template, which contains the
# current, next, previous, and total number of pages.
#
# Use the "%PAGE%" variable in the `branches` output variable to
# substitute the page number into the produced filename.
paginate_branches = 50

# Whether to split tags output into pages
#
# If non-zero and a `tags` template is specified, the tags output is
# generated several times, each with the `tags` variable in the
# template engine containing the next `paginate_tags` number of
# entries.
#
# A `page` variable is available in the template, which contains the
# current, next, previous, and total number of pages.
#
# Use the "%PAGE%" variable in the `tags` output variable to
# substitute the page number into the produced filename.
paginate_tags = 50

# Whether to render Markdown files in repos into HTML.
#
# Rendering Markdown can make site generation take more time.  It has potential
# security implications, as user-generated input (files in the repo) are
# formatted into HTML and served unescaped.  Use with caution.
#
# This can also be set per-repository.
render_markdown = true

# Whether render files with syntax highlighting, as HTML.
#
# Applying syntax highlighting is CPU-intensive, and greatly increases site
# generation time.  It has potential security implications, as user-generated
# input (files in the repo) are formatted into HTML and served unescaped.  Use
# with caution.
#
# This can also be set per-repository.
syntax_highlight = true

# Which theme to use for syntax highlighting colors.
#
# The default themes from Syntect are available, namely:
#
# - `base16-ocean.light`
# - `base16-ocean.dark`
# - `base16-eighties.dark`
# - `base16-mocha.dark`
# - `InspiredGitHub`
# - `Solarized (dark)`
# - `Solarized (light)`
#
syntax_highlight_theme = "base16-ocean.dark"

# Limits maximum number of history items (i.e. git log) to parse.
#
# After the limit is reached, no more history items will be processed or stored
# in memory, and no more commits will be output to disk.  For large
# repositories, this can increase processing speed and decrease memory and disk
# usage.
#
# This can also be set per-repository.
#limit_history    = 500

# Limits maximum number of commits to output.
#
# When the limit is reached, no more commits are written to disk.  Similar to
# `limit_history`, but the entire git log is still read into RAM and provided
# to the templates.
#
# This can also be set per-repository.
#limit_commits    = 500

# Limits maximum number of branches to parse.
#
# When the limit is reached, no more branches are parsed in memory or provided
# to the `branch` template.
#
# Since branch order is unsorted and non-deterministic, the most sensible
# values for this are very large, or 0 (to disable branches).
#
# This can also be set per-repository.
#limit_branches   = 500

# Limits maximum number of tags to parse.
#
# When the limit is reached, no more tags are parsed in memory or provided to
# the `tag` template.
#
# Since tag order is unsorted and non-deterministic, the most sensible values
# for this are very large, or 0 (to disable tags).
#
# This can also be set per-repository.
#limit_tags       = 500

# Limits directory depth to traverse when parsing files.
#
# Limits the number of directories traversed when enumerating files in the
# `all_files` entry, which is passed as part of the repository to each
# template.  This can help reduce RAM usage, and potentially disk usage, for
# repositories with a very large number of files or directories.
#
# Set to 0 to disable both `all_files` and `root_files`, i.e. do not parse any
# file listing.  If set to 1 or greater, only applies to `all_files`.
#
# This can also be set per-repository.
#limit_tree_depth = 20

# Limits size of files in repo with content previews.
#
# Only non-binary files smaller than this limit will have their contents
# provided to the `file` template.  Large files are still processed, but do not
# include the text contents.
#
# This can also be set per-repository.
#limit_file_size  = 2097152

# Limits size of a single produced repository.
#
# Limits the size of a generated repository preview.  This is a low-precision
# limit, terminating generation wherever it happens to be, and may lead to many
# dead links in the final output.
#
# This limit is not strict: generation is terminated after the first file that
# exceeds this limit.  The output size might somewhat overflow this limit.
# Also, static repository assets specified in this configuration are NOT
# included in this limit.
#
# This is intended merely as a safety mechanism to prevent massive run-away
# disk usage.
#
# This can also be set per-repository.
#limit_repo_size  = 52428800

# Limits total size of all output.
#
# Limits the size of the total run: the sum of all repositories.  This is a
# low-precision limit, terminating generation wherever it happens to be, and
# may lead to many dead links or entirely missing repositories.
#
# This limit is not strict: generation is terminated after the first file that
# exceeds this limit.  The output size might somewhat overflow this limit.
# Also, static repository assets specified in this configuration are NOT
# included in this limit.
#
# This is intended merely as a safety mechanism to prevent massive run-away
# disk usage.
#
# This can also be set per-repository.
#limit_total_size = 524288000

# Limits number of contextual elements available to templates.
#
# By default, if this limit is not set, all repository elements
# (history, branches, tags, commits) are provided in full to all
# repository templates, so every page can see all repo metadata.
#
# For parallel output generation, one copy of the repo metadata is
# made per CPU core.  All of this must be loaded into RAM, which means
# large repositories can be very slow to process, or exhaust memory.
#
# This setting limits all elements, *except* those directly relevant
# to the page being rendered.  For example, all elements except
# `branches` are limited in the `branches` template, all elements
# except `tags` are limited in the `tags` template, and so on.
#
# This is critically important for very large repositories, to prevent
# them from consuming all memory and destroying all things.
#
# This can also be set per-repository.
#limit_context = 200

# Limit number of diffs and diff statistics.
#
# By default, if this limit is not set, every history item contains
# statistics (files changes, additions, and deletions), and every
# commit item contains a diff.  These are all held in memory and
# passed to each repository template.
#
# While parsing history, and if this limit is reached, subsequent
# history and commit items will not have diffs and statistics
# included.
#
# This is critically important for very large repositories, to prevent
# them from consuming all memory and destroying all things.
#
# This can also be set per-repository.
#limit_diffs = 200



###############################################################################
##
## Subsection specifying which files to use as templates.
##
## The individual templates are relative to the `path` directory.  Each
## template is a single file using the Tera template engine's format for text
## substitution.
##
## All except `path` are optional.  If not specified, the associated outputs
## will not be generated.
##
###############################################################################
[gitsy_templates]

# Path to a folder containing Tera templates.
#
# All files with a .html extension found under this directory, and its
# immediate children directories, are imported into the Tera template engine.
path = "templates/default_dark/"

# Template responsible for the list of repositories.
#
# This template is evaluated with the list of all configured repositories.  It
# is intended for providing an overview of the available repositories, but the
# full details of each repository are also included.
#
# This template executes one time.
repo_list    = "repos.html"

# Template responsible for summarizing a single repository.
#
# This template is evaluated with a single parsed repository, with all repo
# data (commits, branches, etc) available.
#
# This template executes one time per repository.
repo_summary = "summary.html"

# Template responsible for displaying the commit history.
#
# This template is evaluated with the same data as `repo_summary`.  If
# the `paginate_history` setting is non-zero, this may be called
# several times with the `history` template variable reduced to the
# requested page size, and with a `page` template variable provided to
# identify the current, previous, and next pages.
#
# This template executes at least one time per repository, or several
# times if paginated.
history      = "history.html"

# Template responsible for displaying a single commit.
#
# Called once per parsed commit, with both the whole repository and the current
# commit available to the template.
#
# This template executes many times.
commit       = "commit.html"

# Template responsible for displaying the repo branches.
#
# This template is evaluated with the same data as `repo_summary`.  If
# the `paginate_branches` setting is non-zero, this may be called
# several times with the `branches` template variable reduced to the
# requested page size, and with a `page` template variable provided to
# identify the current, previous, and next pages.
#
# This template executes at least one time per repository, or several
# times if paginated.
branches     = "branches.html"

# Template responsible for displaying a single branch.
#
# Called once per parsed branch, with both the whole repository and the current
# branch available to the template.
#
# This template executes many times.
branch       = "branch.html"

# Template responsible for displaying the repo tags.
#
# This template is evaluated with the same data as `repo_summary`.  If
# the `paginate_tags` setting is non-zero, this may be called several
# times with the `tags` template variable reduced to the requested
# page size, and with a `page` template variable provided to identify
# the current, previous, and next pages.
#
# This template executes at least one time per repository, or several
# times if paginated.
tags         = "tags.html"

# Template responsible for displaying a single tag.
#
# Called once per parsed tag, with both the whole repository and the current
# tag available to the template.
#
# This template executes many times.
tag          = "tag.html"

# Template responsible for displaying file tree.
#
# Called with the same variables as the `summary` page, this simply gives an
# alternative locate to list the files in the root of the repository.
#
# This template executes once per repository.
files        = "files.html"

# Template responsible for displaying a single file.
#
# Called once per parsed file, with both the whole repository and the current
# file available to the template.
#
# This template executes many times.
file         = "file.html"

# Template responsible for displaying a single directory.
#
# Called once per parsed directory, with both the whole repository and the
# current directory available to the template.
#
# This template executes many times.
dir          = "dir.html"

# Template responsible for displaying a site-wide error.
#
# Intended for 404 (page not found) errors.  If used, you must configure your
# webserver to redirect HTTP errors to the generated error page.
#
# This template executes one time.
error        = "404.html"



###############################################################################
##
## Subsection specifying names of output files/directories.
##
## Each entry pairs with one of the entries in `gitsy_templates` above,
## specifying the directories and filenames for the rendered output, after the
## template engine has performed its substitutions.
##
## All outputs are relative to the `path` directory.
##
## There are currently two supported variables for paths:
##
## * "%REPO%" -- replaced with the name of the currently processing repository
## * "%ID%" -- replaced with the ID of the currently processing object
## * "%PAGE%" -- replaced with the current page number if output is paginated
##
## All except `path` are optional.  If not specified, sensible defaults will be
## used.
##
###############################################################################
[gitsy_outputs]
path = "rendered/"
repo_list     = "index.html"
repo_summary  = "%REPO%/index.html"
history       = "%REPO%/history%PAGE%.html"
commit        = "%REPO%/commit/%ID%.html"
branches      = "%REPO%/branches%PAGE%.html"
branch        = "%REPO%/branch/%ID%.html"
tags          = "%REPO%/tags%PAGE%.html"
tag           = "%REPO%/tag/%ID%.html"
files         = "%REPO%/files.html"
file          = "%REPO%/file/%ID%.html"
syntax_css    = "%REPO%/file/syntax.css"
dir           = "%REPO%/dir/%ID%.html"
error         = "404.html"

# Output directory for files specified in global `asset_files`.
#
# Each input file is copied to this directory unmodified.
global_assets = "assets/"

# Output directory for files specified in per-repo `asset_files`.
#
# Each input file is copied to this directory unmodified.
repo_assets   = "%REPO%/assets/"

# Directory to clone remote repositories into.
#
# Remote repositories must be cloned locally to parse.  They are cloned into
# subdirectories of `cloned_repos`, as bare git repos.  These are not deleted
# when Itsy-Gitsy finishes.  If the directories already exist when Itsy-Gitsy
# runs, all remote refs are fetched rather than recloning.
#
# Only non-authenticated HTTPS repositories are currently supported.
cloned_repos  = "cloned_repos/"


###############################################################################
##
## Subsection for arbitrary, global user data.
##
## These variables are available to every page template.  Add extra metadata
## that you want available site-wide here.
##
###############################################################################
[gitsy_extra]
generated_by = "Itsy-Gitsy"
generated_by_url = "https://git.trevorbentley.com/itsy-gitsy/"
#global_user_defined_var = "whatever"
#these_can_also_be_numbers = 5
#or_bools = true
#or_other_toml_types = {like_dicts = "yep, those too"}



###############################################################################
##
## Individual repository configurations.
##
###############################################################################

# The section name is used as the repository name if no `name` attribute is
# provided.
#[my_repository]

# Path to the Git repository.
#path = "/path/to/my_repository"

# Name of this repository, if different from the section name.
#name = "my_repository"

# A description of this repository.
#description = ""

# URL of website associated with this repository.
#website = ""

# Dictionary of arbitrary, user-defined attributes associated with the repo.
#
# Specifying as an inline-table requires all keys to be on one line.
#
# Available in all repo-specific page templates.
#
#attributes = { status = "active", type = "daemon" }

# Per-repository settings, same as the global versions described above:

#clone_url              = "https://github.com/your_user/%REPO%"
#branch                 = "master"
#render_markdown        = false
#syntax_highlighting    = false
#syntax_highlight_theme = "base16-ocean.dark"
#paginate_history       = 50
#paginate_branches      = 50
#paginate_tags          = 50
#limit_history          = 500
#limit_commits          = 500
#limit_branches         = 500
#limit_tags             = 500
#limit_tree_depth       = 20
#limit_file_size        = 2097152
#limit_repo_size        = 52428800
#limit_total_size       = 524288000
#limit_context          = 200
#limit_diffs            = 200
#asset_files            = ["%REPO%/LICENSE"]
#readme_files           = ["README.md", "README"]

# An alternative way to specify the user-defined attributes.
#
# This method allows keys to be on their own lines.
#
#[circadian.attributes]
#status = "active"
#type = "daemon"

# Remote HTTPS repositories can also be specified:
#
#[remote_repo]
#path = "https://github.com/my_user_name/remote_repo"