############################################################################### ## ## 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"