From 7ad3663438dc3e0b13d9069bb6d1c0c0ae56bede Mon Sep 17 00:00:00 2001 From: Maxime Girardet Date: Sat, 08 Feb 2025 20:43:18 +0000 Subject: [PATCH] merge: Automatically generate the project changelog See merge request opensavvy/playgrounds/baseline!39 --- docs/website/.gitlab-ci.yml | 1 + docs/website/generate-news.sh | 20 ++++++++++++++++++++ docs/website/mkdocs.yml | 18 +++++++++++++++++- docs/website/docs/news/index.md | 1 + docs/website/docs/news/tags.md | 1 + 5 file(s) changed, 40 insertion(s)(+), 1 deletion(s)(-) diff --git a/docs/website/.gitlab-ci.yml b/docs/website/.gitlab-ci.yml --- a/docs/website/.gitlab-ci.yml +++ b/docs/website/.gitlab-ci.yml @@ -11,6 +11,7 @@ script: - pwd + - ./generate-news.sh - mkdocs build --site-dir ../../docs-website after_script: diff --git a/docs/website/generate-news.sh b/docs/website/generate-news.sh new file mode 100644 --- /dev/null +++ b/docs/website/generate-news.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +mkdir -p docs/news/posts/releases + +for tag in $(git tag --list -n1 | cut -d' ' -f1); do + echo "Found tag $tag" + tag_file="docs/news/posts/releases/release-$tag.md" + + git for-each-ref \ + --format="---%ndate:%n created: %(taggerdate:short)%nslug: v$tag%ntags: [New version]%n---%n%n# $tag • %(subject)%n%n%(contents:body)" \ + "refs/tags/$tag" \ + | sed 's/%n/\n/g' \ + | sed -r "s~\#([0-9]+)~[#\1]($CI_PROJECT_URL/-/issues/\1)~g" \ + | sed -r "s~([0-9a-f]{4,40})([,\)])~[#\1]($CI_PROJECT_URL/-/commit/\1)\2~g" \ + | sed -r "s~!([0-9]+)~[!\1]($CI_PROJECT_URL/-/merge_requests/\1)~g" \ + >"$tag_file" + + echo -e "\n\n" >>"$tag_file" + echo -e "\n\n***\n\n[Browse the documentation for this version]($CI_PROJECT_URL/-/jobs/artifacts/$tag/browse/docs-website?job=mkdocs) • [View release in GitLab]($CI_PROJECT_URL/-/releases/$tag)" >>"$tag_file" +done diff --git a/docs/website/mkdocs.yml b/docs/website/mkdocs.yml --- a/docs/website/mkdocs.yml +++ b/docs/website/mkdocs.yml @@ -60,9 +60,21 @@ name: "Dark theme (click to switch to system)" plugins: - - social + # - social # https://github.com/squidfunk/mkdocs-material/issues/7818 - search - privacy + - blog: + post_excerpt: optional + authors: false + blog_dir: news + - tags: + tag_file: news/tags.md + - rss: + match_path: 'news/posts/.*' + date_from_meta: + as_creation: date.created + as_update: date.updated + use_git: false markdown_extensions: - admonition @@ -90,3 +102,7 @@ - Module1: [] - Module2: [] + + - News: + - news/index.md + - news/tags.md diff --git a/docs/website/docs/news/index.md b/docs/website/docs/news/index.md new file mode 100644 --- /dev/null +++ b/docs/website/docs/news/index.md @@ -0,0 +1,1 @@ +# News diff --git a/docs/website/docs/news/tags.md b/docs/website/docs/news/tags.md new file mode 100644 --- /dev/null +++ b/docs/website/docs/news/tags.md @@ -0,0 +1,1 @@ +# News by category -- tangled.sh