The content of emails is generated based on template strings defined
in git_multimail.py
. You can customize these template strings
without changing the script itself, by defining a Python wrapper
around it. The python wrapper should import git_multimail
and then
override the git_multimail.*
strings like this:
import sys # needed for sys.argv # Import and customize git_multimail: import git_multimail git_multimail.REVISION_INTRO_TEMPLATE = """...""" git_multimail.COMBINED_INTRO_TEMPLATE = git_multimail.REVISION_INTRO_TEMPLATE # start git_multimail itself: git_multimail.main(sys.argv[1:])
The template strings can use any value already used in the existing templates (read the source code).
If multimailhook.commitEmailFormat
is set to HTML, then
git-multimail will generate HTML emails for commit notifications. The
log and diff will be formatted automatically by git-multimail. By
default, any HTML special character in the templates will be escaped.
To use HTML formatting in the introduction of the email, set
multimailhook.htmlInIntro
to true
. Then, the template can
contain any HTML tags, that will be sent as-is in the email. For
example, to add some formatting and a link to the online commit, use
a format like:
git_multimail.REVISION_INTRO_TEMPLATE = """\ <span style="color:#808080">This is an automated email from the git hooks/post-receive script.</span><br /><br /> <strong>%(pusher)s</strong> pushed a commit to %(refname_type)s %(short_refname)s in repository %(repo_shortname)s.<br /> <a href="https://github.com/git-multimail/git-multimail/commit/%(newrev)s">View on GitHub</a>. """
Note that the values expanded from %(variable)s
in the format
strings will still be escaped.
For a less flexible but easier to set up way to add a link to commit
emails, see multimailhook.commitBrowseURL
.
Similarly, one can set multimailhook.htmlInFooter
and override any
of the *_FOOTER*
template strings.