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 }