summaryrefslogtreecommitdiffstats
path: root/g2h
diff options
context:
space:
mode:
authorChristoph Schlosser <christoph@linux.com>2025-08-24 12:53:59 +0200
committerChristoph Schlosser <christoph@linux.com>2025-08-24 12:53:59 +0200
commit782a350e1f56292176ac8471195c889e47b2b841 (patch)
tree441c689e1a638472fb1e090f2f0888c2ecd54372 /g2h
parent978703ebc86060555da3df4c376e37d16aecce29 (diff)
downloadgit2hugo-782a350e1f56292176ac8471195c889e47b2b841.tar.gz
g2h:Add branches, tags and project name to overview page
Diffstat (limited to 'g2h')
-rw-r--r--g2h/cli.py12
-rw-r--r--g2h/gen.py6
-rw-r--r--g2h/git.py6
3 files changed, 21 insertions, 3 deletions
diff --git a/g2h/cli.py b/g2h/cli.py
index 1979045..301203c 100644
--- a/g2h/cli.py
+++ b/g2h/cli.py
@@ -1,4 +1,6 @@
import argparse
+import os
+
from .git import Git
from .gen import Generator
@@ -6,16 +8,24 @@ def parse_args():
parser = argparse.ArgumentParser(
prog='g2h',
description='Convert a git repository into markdown files Hugo can understand.')
+ # TODO: Defaults for these two values should be $PWD.
parser.add_argument('repo_path', help='Path to the root of git repository')
parser.add_argument('out_dir', help='Path to where the generated files should be stored')
+ parser.add_argument('--name', help='Name of the project. Default: directory name of repo')
return parser.parse_args()
def main():
args = parse_args()
git = Git(args.repo_path)
+
+ branches = git.get_branches()
+ # TODO: Fix this for repo_path=(.|~)
+ project_name = args.name if args.name is not None else os.path.basename(args.repo_path)
+ tags = git.get_tags()
+
gen = Generator(args.out_dir)
- gen.render_overview(git.get_all_commits())
+ gen.render_overview(project_name, branches, tags)
if __name__ == '__main__':
main()
diff --git a/g2h/gen.py b/g2h/gen.py
index 4884072..02162e8 100644
--- a/g2h/gen.py
+++ b/g2h/gen.py
@@ -15,8 +15,10 @@ class Generator:
with open(out_file, 'w', encoding='utf-8') as f:
f.write(content)
- def render_overview(self, commits):
+ def render_overview(self, name, branches, tags):
context = {
- 'commits': commits
+ 'branches': branches,
+ 'tags': tags,
+ 'title': name
}
self._render('overview.md', context, '_index.md')
diff --git a/g2h/git.py b/g2h/git.py
index e6984c4..9f3bba8 100644
--- a/g2h/git.py
+++ b/g2h/git.py
@@ -9,3 +9,9 @@ class Git:
def get_all_commits(self):
return list(self.repo.iter_commits())
+
+ def get_branches(self):
+ return sorted(self.repo.branches, key=lambda b: b.commit.committed_date, reverse=True)
+
+ def get_tags(self):
+ return sorted(self.repo.tags, key=lambda b: b.commit.committed_date, reverse=True)