]> gitweb.ps.run Git - ps-cgit/blobdiff - cgitrc.5.txt
filter: add lua support
[ps-cgit] / cgitrc.5.txt
index 6437ef4959ab7cada050e5a7f380302e0ec1002d..78f33c8308e6379a9e643da006c660b122f571bd 100644 (file)
@@ -39,7 +39,8 @@ agefile::
        to specify the date and time of the youngest commit in the repository.
        The first line in the file is used as input to the "parse_date"
        function in libgit. Recommended timestamp-format is "yyyy-mm-dd
-       hh:mm:ss". Default value: "info/web/last-modified".
+       hh:mm:ss". You may want to generate this file from a post-receive
+       hook. Default value: "info/web/last-modified".
 
 branch-sort::
        Flag which, when set to "age", enables date ordering in the branch ref
@@ -50,32 +51,40 @@ cache-root::
        Path used to store the cgit cache entries. Default value:
        "/var/cache/cgit". See also: "MACRO EXPANSION".
 
+cache-static-ttl::
+       Number which specifies the time-to-live, in minutes, for the cached
+       version of repository pages accessed with a fixed SHA1. Negative
+       values have infinite ttl. Default value: -1".
+
 cache-dynamic-ttl::
        Number which specifies the time-to-live, in minutes, for the cached
-       version of repository pages accessed without a fixed SHA1. Default
-       value: "5".
+       version of repository pages accessed without a fixed SHA1. Negative
+       values have infinite ttl. Default value: "5".
 
 cache-repo-ttl::
        Number which specifies the time-to-live, in minutes, for the cached
-       version of the repository summary page. Default value: "5".
+       version of the repository summary page. Negative values have infinite
+       ttl. Default value: "5".
 
 cache-root-ttl::
        Number which specifies the time-to-live, in minutes, for the cached
-       version of the repository index page. Default value: "5".
+       version of the repository index page. Negative values have infinite
+       ttl. Default value: "5".
 
 cache-scanrc-ttl::
        Number which specifies the time-to-live, in minutes, for the result
-       of scanning a path for git repositories. Default value: "15".
+       of scanning a path for git repositories. Negative values have infinite
+       ttl. Default value: "15".
+
+cache-about-ttl::
+       Number which specifies the time-to-live, in minutes, for the cached
+       version of the repository about page. Negative values have infinite
+       ttl. Default value: "15".
 
 cache-size::
        The maximum number of entries in the cgit cache. Default value: "0"
        (i.e. caching is disabled).
 
-cache-static-ttl::
-       Number which specifies the time-to-live, in minutes, for the cached
-       version of repository pages accessed with a fixed SHA1. Default value:
-       "5".
-
 case-sensitive-sort::
        Sort items in the repo list case sensitively. Default value: "1".
        See also: repository-sort, section-sort.
@@ -124,8 +133,9 @@ enable-filter-overrides::
 
 enable-http-clone::
        If set to "1", cgit will act as an dumb HTTP endpoint for git clones.
-       If you use an alternate way of serving git repositories, you may wish
-       to disable this. Default value: "1".
+       You can add "http://$HTTP_HOST$SCRIPT_NAME/$CGIT_REPO_URL" to clone-url
+       to expose this feature. If you use an alternate way of serving git
+       repositories, you may wish to disable this. Default value: "1".
 
 enable-index-links::
        Flag which, when set to "1", will make cgit generate extra links for
@@ -167,14 +177,14 @@ enable-git-config::
        "scan-path", and must be defined prior, to augment repo-specific
        settings. The keys gitweb.owner, gitweb.category, and gitweb.description
        will map to the cgit keys repo.owner, repo.section, and repo.desc,
-       respectivly. All git config keys that begin with "cgit." will be mapped
+       respectively. All git config keys that begin with "cgit." will be mapped
        to the corresponding "repo." key in cgit. Default value: "0". See also:
        scan-path, section-from-path.
 
 favicon::
-       Url used as link to a shortcut icon for cgit. If specified, it is
-       suggested to use the value "/favicon.ico" since certain browsers will
-       ignore other values. Default value: none.
+       Url used as link to a shortcut icon for cgit. It is suggested to use
+       the value "/favicon.ico" since certain browsers will ignore other
+       values. Default value: "/favicon.ico".
 
 footer::
        The content of the file specified with this option will be included
@@ -275,7 +285,7 @@ nocache::
        value: "0".
 
 noplainemail::
-       If set to "1" showing full author email adresses will be disabled.
+       If set to "1" showing full author email addresses will be disabled.
        Default value: "0".
 
 noheader::
@@ -547,6 +557,44 @@ config files, e.g. "repo.desc" becomes "desc".
 
 FILTER API
 ----------
+By default, filters are separate processes that are executed each time they
+are needed.  Alternative technologies may be used by prefixing the filter
+specification with the relevant string; available values are:
+
+'exec:'::
+       The default "one process per filter" mode.
+
+'lua:'::
+       Executes the script using a built-in Lua interpreter. The script is
+       loaded once per execution of cgit, and may be called multiple times
+       during cgit's lifetime, making it a good choice for repeated filters
+       such as the 'email filter'. It responds to three functions:
+
+       'filter_open(argument1, argument2, argument3, ...)'::
+               This is called upon activation of the filter for a particular
+               set of data.
+       'filter_write(buffer)'::
+               This is called whenever cgit writes data to the webpage.
+       'filter_close()'::
+               This is called when the current filtering operation is
+               completed.
+       
+       Additionally, cgit exposes to the Lua the following built-in functions:
+
+       'html(str)'::
+               Writes 'str' to the webpage.
+       'html_txt(str)'::
+               HTML escapes and writes 'str' to the webpage.
+       'html_attr(str)'::
+               HTML escapes for an attribute and writes "str' to the webpage.
+       'html_url_path(str)'::
+               URL escapes for a path and writes 'str' to the webpage.
+       'html_url_arg(str)'::
+               URL escapes for an argument and writes 'str' to the webpage.
+
+
+Parameters are provided to filters as follows.
+
 about filter::
        This filter is given a single parameter: the filename of the source
        file to filter. The filter can use the filename to determine (for
@@ -583,8 +631,8 @@ environment variable will be unset.
 
 MACRO EXPANSION
 ---------------
-The following cgitrc options supports a simple macro expansion feature,
-where tokens prefixed with "$" are replaced with the value of a similary
+The following cgitrc options support a simple macro expansion feature,
+where tokens prefixed with "$" are replaced with the value of a similarly
 named environment variable:
 
 - cache-root
@@ -611,7 +659,7 @@ EXAMPLE CGITRC FILE
 -------------------
 
 ....
-# Enable caching of up to 1000 output entriess
+# Enable caching of up to 1000 output entries
 cache-size=1000
 
 
@@ -622,6 +670,14 @@ clone-url=git://foo.org/$CGIT_REPO_URL git@foo.org:$CGIT_REPO_URL
 css=/css/cgit.css
 
 
+# Show owner on index page
+enable-index-owner=1
+
+
+# Allow http transport git clone
+enable-http-clone=1
+
+
 # Show extra links for each repository on the index page
 enable-index-links=1
 
@@ -638,6 +694,10 @@ enable-log-filecount=1
 enable-log-linecount=1
 
 
+# Sort branches by date
+branch-sort=age
+
+
 # Add a cgit favicon
 favicon=/favicon.ico
 
@@ -679,6 +739,47 @@ mimetype.png=image/png
 mimetype.svg=image/svg+xml
 
 
+# Highlight source code with python pygments-based highlighter
+source-filter=/var/www/cgit/filters/syntax-highlighting.py
+
+# Format markdown, restructuredtext, manpages, text files, and html files
+# through the right converters
+about-filter=/var/www/cgit/filters/about-formatting.sh
+
+##
+## Search for these files in the root of the default branch of repositories
+## for coming up with the about page:
+##
+readme=:README.md
+readme=:readme.md
+readme=:README.mkd
+readme=:readme.mkd
+readme=:README.rst
+readme=:readme.rst
+readme=:README.html
+readme=:readme.html
+readme=:README.htm
+readme=:readme.htm
+readme=:README.txt
+readme=:readme.txt
+readme=:README
+readme=:readme
+readme=:INSTALL.md
+readme=:install.md
+readme=:INSTALL.mkd
+readme=:install.mkd
+readme=:INSTALL.rst
+readme=:install.rst
+readme=:INSTALL.html
+readme=:install.html
+readme=:INSTALL.htm
+readme=:install.htm
+readme=:INSTALL.txt
+readme=:install.txt
+readme=:INSTALL
+readme=:install
+
+
 ##
 ## List of repositories.
 ## PS: Any repositories listed when section is unset will not be