diff options
| author | Christoph Schlosser <christoph@linux.com> | 2025-09-19 19:21:11 +0200 |
|---|---|---|
| committer | Christoph Schlosser <christoph@linux.com> | 2025-09-19 19:21:11 +0200 |
| commit | a3324b7e71ec48daab81981e7d85967a590d4f79 (patch) | |
| tree | def4a8d901d9a56047a0e63f5f3d93803c93ee87 /src/g2h/commit_page.py | |
| parent | bd403e6ab18d5cc7818e86d43c3ca0b15c5e53a1 (diff) | |
| download | git2hugo-a3324b7e71ec48daab81981e7d85967a590d4f79.tar.gz | |
g2h: Add utility script
Also move the sources into the more conventional src/g2h dir
Diffstat (limited to 'src/g2h/commit_page.py')
| -rw-r--r-- | src/g2h/commit_page.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/g2h/commit_page.py b/src/g2h/commit_page.py new file mode 100644 index 0000000..84374e6 --- /dev/null +++ b/src/g2h/commit_page.py @@ -0,0 +1,36 @@ +import os + +from .page import Page + +def _redact_local_segment(local_segment): + if len(local_segment) == 0: + return '' + if len(local_segment) < 6: + return local_segment[0] + '...' + return local_segment[:2] + '...' + +def redact_email(email): + if email is None or len(email) == 0: + return '' + + if '@' not in email: + return _redact_local_segment(email) + + local, domain = email.split('@') + redacted_local = _redact_local_segment(local) + + return redacted_local + '@' + domain + +class CommitPage(Page): + def __init__(self, out_dir, name, commit, content_subdir): + super(CommitPage, self).__init__('commit.md', out_dir, os.path.join(commit.hexsha, '_index.md'), name, content_subdir) + self.commit = commit + + def context(self): + return { + 'commit': self.commit, + 'title': self.name + ': ' + self.commit.hexsha, + 'redacted_email': redact_email(self.commit.author.email), + 'content_subdir': self.content_subdir, + 'this_commit': self.commit + } |