1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-03-21 21:07:19 +02:00
Carlos Alexandro Becker 6b645926a8
docs: improve docs (#5006)
closes https://github.com/orgs/goreleaser/discussions/5004

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
2024-07-17 10:56:36 -03:00

49 lines
1.6 KiB
Python

from __future__ import annotations
import posixpath
import re
from mkdocs.config.defaults import MkDocsConfig
from mkdocs.structure.files import File, Files
from mkdocs.structure.pages import Page
from re import Match
# very much stolen/based on https://github.com/squidfunk/mkdocs-material/blob/master/src/overrides/hooks/shortcodes.py
def on_page_markdown(markdown: str, *, page: Page, config: MkDocsConfig, files: Files):
# Replace callback
def replace(match: Match):
type, args = match.groups()
args = args.strip()
if type == "version": return _version_block(args)
elif type == "pro": return _pro_ad(page, files)
elif type == "templates": return _templates_ad()
# Otherwise, raise an error
raise RuntimeError(f"Unknown shortcode: {type}")
# Find and replace all external asset URLs in current page
return re.sub(
r"<!-- md:(\w+)(.*?) -->",
replace, markdown, flags = re.I | re.M
)
def _pro_ad(page: Page, files: Files):
return "".join([
f"<div class=\"admonition example\">",
f"<p class=\"admonition-title\">GoReleaser Pro</p>",
f"<p>One or more features are available only with <a href=\"/pro/\">GoReleaser Pro</a>.</p>",
f"</div>"
])
def _version_block(text: str):
return f"> Since :material-tag-outline: <a href=\"/blog/goreleaser-{text}\">{text}</a>."
def _templates_ad():
return "".join([
f"<div class=\"admonition tip\">",
f"<p class=\"admonition-title\">Tip</p>",
f"<p>Learn more about the <a href=\"/customization/templates/\">name template engine</a>.</p>",
f"</div>"
])