import os from .page import Page def redact_email(email): if email is None or len(email) == 0: return '' if '@' not in email: return email[0] + '...' + email[-1] local, domain = email.split('@') redacted_local = local[0] + '...' + local[-1] if len(local) > 0 else '' redacted_domain = domain.replace('.', '...') return redacted_local + '@' + redacted_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) }