1
0
Fork 0
repo2html/msgfmt

46 lines
1.4 KiB
Plaintext
Raw Normal View History

#!/bin/bash
#
# Formats a Git commit message
#
# Copyright (C) 2012 Mike Gerwitz
#
# This file is part of repo2html.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
# format the commit message, stopping at the diff (if any)
awk '/^diff --git/ { exit } { print }' \
| sed ':a;N;$!ba;
# escaping
s/</\&lt;/g;
s/>/\&gt;/g;
s/\&/\&amp;/g;
# unfortunately, non-greedy matches make it difficult to exclude punctuation
# at the end of a link, so we will not be handling it here (since links
# should always be in the footer as references (ideally), this should not
# happen
s#[fh]ttps\?://[^]\n )]\+#<a href="&">&</a>#g;
# paragraphs
s#\n\[[0-9]\+\]#</p><p>&#g;
s#\n\n#</p>&<p>#g;
# basic formatting
s/---/\&mdash;/g;
s#``#\&ldquo;#g;
s#'\'\''#\&rdquo;#g;
'