1
0
mirror of https://github.com/venthur/blag.git synced 2025-11-26 05:02:58 +00:00

Compare commits

..

11 Commits

Author SHA1 Message Date
38a91e0abc Update workflow
- change to `gitea.com` for used actons
- bump checkout 4 -> 5
- bump setup-python 5 -> 6
- bump python version 3.11 -> 3.12
- only run actions on version tag.

update changelog
- fix history
- add section for this update.
2025-09-10 17:07:28 -07:00
d304d08638 Merge branch 'v2.4.2' into main 2025-09-10 16:49:43 -07:00
49810998f7 Merge branch v2.3.3 into v2.4.2 2025-09-10 16:48:37 -07:00
1fa08afc6d Bump versionfile, update changelog 2025-09-10 16:41:10 -07:00
38a506649c fix workflow finally.... ;-; 2024-10-26 02:19:11 -07:00
7ab8da8dcd bs commit to fix an issue with actions caused by an issue with the server 2024-10-26 01:35:40 -07:00
636f635fea fix workflow 2024-10-26 01:04:21 -07:00
243f889725 Update workflow, bump version, update changelog 2024-10-26 00:59:25 -07:00
8f90987c09 Update to gitea actions. 2024-10-26 00:46:36 -07:00
d4fb67577d Merge commit 'e631b17fb15f161e3c89959e794d8fc5feadd7f8' on branch master into main. 2024-10-26 00:38:12 -07:00
4cc23cea5f add strikethru and footnotes functionality 2024-09-05 21:05:02 -07:00
12 changed files with 152 additions and 204 deletions

View File

@@ -0,0 +1,36 @@
name: CI/CD Pipeline
on:
push:
tags:
- "v**"
jobs:
job1:
runs-on: ubuntu-latest
steps:
- uses: https://gitea.com/actions/checkout@v5
- uses: https://gitea.com/actions/setup-python@v6
with:
python-version: "3.12"
- run: |
make venv
- run: |
make lint
- run: |
make mypy
- run: |
make test
- run: |
make test-release
-
name: Push to docker pypi registry.
env:
TWINE_USERNAME: ${{ secrets.REGISTRY_USERNAME }}
TWINE_PASSWORD: ${{ secrets.REGISTRY_TOKEN }}
TWINE_REPOSITORY_URL: "https://gitea.raer.me/api/packages/freyjagp/pypi"
run: |
venv/bin/python3 -m twine upload --verbose dist/*

View File

@@ -1,15 +0,0 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
groups:
all:
patterns:
- "*"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

View File

@@ -1,75 +0,0 @@
on:
- push
- pull_request
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- run: |
make venv
- run: |
make test
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.x"
- run: |
make venv
- run: |
make lint
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.x"
- run: |
make venv
- run: |
make mypy
test-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.x"
- run: |
make venv
- run: |
make test-release

View File

@@ -1,10 +1,32 @@
# Changelog # Changelog
## [2.4.3(Unreleased)] --
Update workflow
- change to `gitea.com` for used actons
- bump checkout 4 -> 5
- bump setup-python 5 -> 6
- bump python version 3.11 -> 3.12
## [2.4.2] -- 2025-09-10
- Merged original dev's work on v2.3.x into my fork.
## [2.4.1] -- 2024-10-26
* Merged original dev's work on v2.3.x into my fork.
* update gitea workflow to hopefully build/push any updates made to my fork of blag.
## [2.4.0] -- 2024-09-05
* added strikethru and footnotes to blag renders.
## [unreleased] --
## [unreleased] -- ## [unreleased] --
* Added Python 3.14 compatibility
* Removed requirements.txt and requirements-dev.txt * Removed requirements.txt and requirements-dev.txt
* Added footnotes extension for markdown
## [2.3.3] -- 2025-04-27 ## [2.3.3] -- 2025-04-27

View File

@@ -21,7 +21,6 @@ blag is named after [the blag of the webcomic xkcd][blagxkcd].
* Theming support using [Jinja2][] templates * Theming support using [Jinja2][] templates
* Generation of Atom feeds for blog content * Generation of Atom feeds for blog content
* Fenced code blocks and syntax highlighting using [Pygments][] * Fenced code blocks and syntax highlighting using [Pygments][]
* Markdown footnotes
* Integrated devserver * Integrated devserver
* Available on [PyPI][] * Available on [PyPI][]

View File

@@ -30,11 +30,12 @@ def markdown_factory() -> Markdown:
""" """
md = Markdown( md = Markdown(
extensions=[ extensions=[
"footnotes", # Add footnotes support
"pymdownx.tilde", # Add strukethrough support
"meta", "meta",
"fenced_code", "fenced_code",
"codehilite", "codehilite",
"smarty", "smarty",
"footnotes",
MarkdownLinkExtension(), MarkdownLinkExtension(),
], ],
output_format="html", output_format="html",

View File

@@ -5,80 +5,80 @@ td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.hll { background-color: #49483e } .hll { background-color: #49483e }
.c { color: #959077 } /* Comment */ .c { color: #959077 } /* Comment */
.err { color: #ED007E; background-color: #1E0010 } /* Error */ .err { color: #ed007e; background-color: #1e0010 } /* Error */
.esc { color: #F8F8F2 } /* Escape */ .esc { color: #f8f8f2 } /* Escape */
.g { color: #F8F8F2 } /* Generic */ .g { color: #f8f8f2 } /* Generic */
.k { color: #66D9EF } /* Keyword */ .k { color: #66d9ef } /* Keyword */
.l { color: #AE81FF } /* Literal */ .l { color: #ae81ff } /* Literal */
.n { color: #F8F8F2 } /* Name */ .n { color: #f8f8f2 } /* Name */
.o { color: #FF4689 } /* Operator */ .o { color: #ff4689 } /* Operator */
.x { color: #F8F8F2 } /* Other */ .x { color: #f8f8f2 } /* Other */
.p { color: #F8F8F2 } /* Punctuation */ .p { color: #f8f8f2 } /* Punctuation */
.ch { color: #959077 } /* Comment.Hashbang */ .ch { color: #959077 } /* Comment.Hashbang */
.cm { color: #959077 } /* Comment.Multiline */ .cm { color: #959077 } /* Comment.Multiline */
.cp { color: #959077 } /* Comment.Preproc */ .cp { color: #959077 } /* Comment.Preproc */
.cpf { color: #959077 } /* Comment.PreprocFile */ .cpf { color: #959077 } /* Comment.PreprocFile */
.c1 { color: #959077 } /* Comment.Single */ .c1 { color: #959077 } /* Comment.Single */
.cs { color: #959077 } /* Comment.Special */ .cs { color: #959077 } /* Comment.Special */
.gd { color: #FF4689 } /* Generic.Deleted */ .gd { color: #ff4689 } /* Generic.Deleted */
.ge { color: #F8F8F2; font-style: italic } /* Generic.Emph */ .ge { color: #f8f8f2; font-style: italic } /* Generic.Emph */
.ges { color: #F8F8F2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .ges { color: #f8f8f2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.gr { color: #F8F8F2 } /* Generic.Error */ .gr { color: #f8f8f2 } /* Generic.Error */
.gh { color: #F8F8F2 } /* Generic.Heading */ .gh { color: #f8f8f2 } /* Generic.Heading */
.gi { color: #A6E22E } /* Generic.Inserted */ .gi { color: #a6e22e } /* Generic.Inserted */
.go { color: #66D9EF } /* Generic.Output */ .go { color: #66d9ef } /* Generic.Output */
.gp { color: #FF4689; font-weight: bold } /* Generic.Prompt */ .gp { color: #ff4689; font-weight: bold } /* Generic.Prompt */
.gs { color: #F8F8F2; font-weight: bold } /* Generic.Strong */ .gs { color: #f8f8f2; font-weight: bold } /* Generic.Strong */
.gu { color: #959077 } /* Generic.Subheading */ .gu { color: #959077 } /* Generic.Subheading */
.gt { color: #F8F8F2 } /* Generic.Traceback */ .gt { color: #f8f8f2 } /* Generic.Traceback */
.kc { color: #66D9EF } /* Keyword.Constant */ .kc { color: #66d9ef } /* Keyword.Constant */
.kd { color: #66D9EF } /* Keyword.Declaration */ .kd { color: #66d9ef } /* Keyword.Declaration */
.kn { color: #FF4689 } /* Keyword.Namespace */ .kn { color: #ff4689 } /* Keyword.Namespace */
.kp { color: #66D9EF } /* Keyword.Pseudo */ .kp { color: #66d9ef } /* Keyword.Pseudo */
.kr { color: #66D9EF } /* Keyword.Reserved */ .kr { color: #66d9ef } /* Keyword.Reserved */
.kt { color: #66D9EF } /* Keyword.Type */ .kt { color: #66d9ef } /* Keyword.Type */
.ld { color: #E6DB74 } /* Literal.Date */ .ld { color: #e6db74 } /* Literal.Date */
.m { color: #AE81FF } /* Literal.Number */ .m { color: #ae81ff } /* Literal.Number */
.s { color: #E6DB74 } /* Literal.String */ .s { color: #e6db74 } /* Literal.String */
.na { color: #A6E22E } /* Name.Attribute */ .na { color: #a6e22e } /* Name.Attribute */
.nb { color: #F8F8F2 } /* Name.Builtin */ .nb { color: #f8f8f2 } /* Name.Builtin */
.nc { color: #A6E22E } /* Name.Class */ .nc { color: #a6e22e } /* Name.Class */
.no { color: #66D9EF } /* Name.Constant */ .no { color: #66d9ef } /* Name.Constant */
.nd { color: #A6E22E } /* Name.Decorator */ .nd { color: #a6e22e } /* Name.Decorator */
.ni { color: #F8F8F2 } /* Name.Entity */ .ni { color: #f8f8f2 } /* Name.Entity */
.ne { color: #A6E22E } /* Name.Exception */ .ne { color: #a6e22e } /* Name.Exception */
.nf { color: #A6E22E } /* Name.Function */ .nf { color: #a6e22e } /* Name.Function */
.nl { color: #F8F8F2 } /* Name.Label */ .nl { color: #f8f8f2 } /* Name.Label */
.nn { color: #F8F8F2 } /* Name.Namespace */ .nn { color: #f8f8f2 } /* Name.Namespace */
.nx { color: #A6E22E } /* Name.Other */ .nx { color: #a6e22e } /* Name.Other */
.py { color: #F8F8F2 } /* Name.Property */ .py { color: #f8f8f2 } /* Name.Property */
.nt { color: #FF4689 } /* Name.Tag */ .nt { color: #ff4689 } /* Name.Tag */
.nv { color: #F8F8F2 } /* Name.Variable */ .nv { color: #f8f8f2 } /* Name.Variable */
.ow { color: #FF4689 } /* Operator.Word */ .ow { color: #ff4689 } /* Operator.Word */
.pm { color: #F8F8F2 } /* Punctuation.Marker */ .pm { color: #f8f8f2 } /* Punctuation.Marker */
.w { color: #F8F8F2 } /* Text.Whitespace */ .w { color: #f8f8f2 } /* Text.Whitespace */
.mb { color: #AE81FF } /* Literal.Number.Bin */ .mb { color: #ae81ff } /* Literal.Number.Bin */
.mf { color: #AE81FF } /* Literal.Number.Float */ .mf { color: #ae81ff } /* Literal.Number.Float */
.mh { color: #AE81FF } /* Literal.Number.Hex */ .mh { color: #ae81ff } /* Literal.Number.Hex */
.mi { color: #AE81FF } /* Literal.Number.Integer */ .mi { color: #ae81ff } /* Literal.Number.Integer */
.mo { color: #AE81FF } /* Literal.Number.Oct */ .mo { color: #ae81ff } /* Literal.Number.Oct */
.sa { color: #E6DB74 } /* Literal.String.Affix */ .sa { color: #e6db74 } /* Literal.String.Affix */
.sb { color: #E6DB74 } /* Literal.String.Backtick */ .sb { color: #e6db74 } /* Literal.String.Backtick */
.sc { color: #E6DB74 } /* Literal.String.Char */ .sc { color: #e6db74 } /* Literal.String.Char */
.dl { color: #E6DB74 } /* Literal.String.Delimiter */ .dl { color: #e6db74 } /* Literal.String.Delimiter */
.sd { color: #E6DB74 } /* Literal.String.Doc */ .sd { color: #e6db74 } /* Literal.String.Doc */
.s2 { color: #E6DB74 } /* Literal.String.Double */ .s2 { color: #e6db74 } /* Literal.String.Double */
.se { color: #AE81FF } /* Literal.String.Escape */ .se { color: #ae81ff } /* Literal.String.Escape */
.sh { color: #E6DB74 } /* Literal.String.Heredoc */ .sh { color: #e6db74 } /* Literal.String.Heredoc */
.si { color: #E6DB74 } /* Literal.String.Interpol */ .si { color: #e6db74 } /* Literal.String.Interpol */
.sx { color: #E6DB74 } /* Literal.String.Other */ .sx { color: #e6db74 } /* Literal.String.Other */
.sr { color: #E6DB74 } /* Literal.String.Regex */ .sr { color: #e6db74 } /* Literal.String.Regex */
.s1 { color: #E6DB74 } /* Literal.String.Single */ .s1 { color: #e6db74 } /* Literal.String.Single */
.ss { color: #E6DB74 } /* Literal.String.Symbol */ .ss { color: #e6db74 } /* Literal.String.Symbol */
.bp { color: #F8F8F2 } /* Name.Builtin.Pseudo */ .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
.fm { color: #A6E22E } /* Name.Function.Magic */ .fm { color: #a6e22e } /* Name.Function.Magic */
.vc { color: #F8F8F2 } /* Name.Variable.Class */ .vc { color: #f8f8f2 } /* Name.Variable.Class */
.vg { color: #F8F8F2 } /* Name.Variable.Global */ .vg { color: #f8f8f2 } /* Name.Variable.Global */
.vi { color: #F8F8F2 } /* Name.Variable.Instance */ .vi { color: #f8f8f2 } /* Name.Variable.Instance */
.vm { color: #F8F8F2 } /* Name.Variable.Magic */ .vm { color: #f8f8f2 } /* Name.Variable.Magic */
.il { color: #AE81FF } /* Literal.Number.Integer.Long */ .il { color: #ae81ff } /* Literal.Number.Integer.Long */

View File

@@ -5,9 +5,9 @@ td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.hll { background-color: #ffffcc } .hll { background-color: #ffffcc }
.c { color: #3D7B7B; font-style: italic } /* Comment */ .c { color: #3D7B7B; font-style: italic } /* Comment */
.err { border: 1px solid #F00 } /* Error */ .err { border: 1px solid #FF0000 } /* Error */
.k { color: #008000; font-weight: bold } /* Keyword */ .k { color: #008000; font-weight: bold } /* Keyword */
.o { color: #666 } /* Operator */ .o { color: #666666 } /* Operator */
.ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
.cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
.cp { color: #9C6500 } /* Comment.Preproc */ .cp { color: #9C6500 } /* Comment.Preproc */
@@ -24,34 +24,34 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left:
.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */ .gs { font-weight: bold } /* Generic.Strong */
.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.gt { color: #04D } /* Generic.Traceback */ .gt { color: #0044DD } /* Generic.Traceback */
.kc { color: #008000; font-weight: bold } /* Keyword.Constant */ .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.kp { color: #008000 } /* Keyword.Pseudo */ .kp { color: #008000 } /* Keyword.Pseudo */
.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.kt { color: #B00040 } /* Keyword.Type */ .kt { color: #B00040 } /* Keyword.Type */
.m { color: #666 } /* Literal.Number */ .m { color: #666666 } /* Literal.Number */
.s { color: #BA2121 } /* Literal.String */ .s { color: #BA2121 } /* Literal.String */
.na { color: #687822 } /* Name.Attribute */ .na { color: #687822 } /* Name.Attribute */
.nb { color: #008000 } /* Name.Builtin */ .nb { color: #008000 } /* Name.Builtin */
.nc { color: #00F; font-weight: bold } /* Name.Class */ .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.no { color: #800 } /* Name.Constant */ .no { color: #880000 } /* Name.Constant */
.nd { color: #A2F } /* Name.Decorator */ .nd { color: #AA22FF } /* Name.Decorator */
.ni { color: #717171; font-weight: bold } /* Name.Entity */ .ni { color: #717171; font-weight: bold } /* Name.Entity */
.ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
.nf { color: #00F } /* Name.Function */ .nf { color: #0000FF } /* Name.Function */
.nl { color: #767600 } /* Name.Label */ .nl { color: #767600 } /* Name.Label */
.nn { color: #00F; font-weight: bold } /* Name.Namespace */ .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.nt { color: #008000; font-weight: bold } /* Name.Tag */ .nt { color: #008000; font-weight: bold } /* Name.Tag */
.nv { color: #19177C } /* Name.Variable */ .nv { color: #19177C } /* Name.Variable */
.ow { color: #A2F; font-weight: bold } /* Operator.Word */ .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.w { color: #BBB } /* Text.Whitespace */ .w { color: #bbbbbb } /* Text.Whitespace */
.mb { color: #666 } /* Literal.Number.Bin */ .mb { color: #666666 } /* Literal.Number.Bin */
.mf { color: #666 } /* Literal.Number.Float */ .mf { color: #666666 } /* Literal.Number.Float */
.mh { color: #666 } /* Literal.Number.Hex */ .mh { color: #666666 } /* Literal.Number.Hex */
.mi { color: #666 } /* Literal.Number.Integer */ .mi { color: #666666 } /* Literal.Number.Integer */
.mo { color: #666 } /* Literal.Number.Oct */ .mo { color: #666666 } /* Literal.Number.Oct */
.sa { color: #BA2121 } /* Literal.String.Affix */ .sa { color: #BA2121 } /* Literal.String.Affix */
.sb { color: #BA2121 } /* Literal.String.Backtick */ .sb { color: #BA2121 } /* Literal.String.Backtick */
.sc { color: #BA2121 } /* Literal.String.Char */ .sc { color: #BA2121 } /* Literal.String.Char */
@@ -66,9 +66,9 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left:
.s1 { color: #BA2121 } /* Literal.String.Single */ .s1 { color: #BA2121 } /* Literal.String.Single */
.ss { color: #19177C } /* Literal.String.Symbol */ .ss { color: #19177C } /* Literal.String.Symbol */
.bp { color: #008000 } /* Name.Builtin.Pseudo */ .bp { color: #008000 } /* Name.Builtin.Pseudo */
.fm { color: #00F } /* Name.Function.Magic */ .fm { color: #0000FF } /* Name.Function.Magic */
.vc { color: #19177C } /* Name.Variable.Class */ .vc { color: #19177C } /* Name.Variable.Class */
.vg { color: #19177C } /* Name.Variable.Global */ .vg { color: #19177C } /* Name.Variable.Global */
.vi { color: #19177C } /* Name.Variable.Instance */ .vi { color: #19177C } /* Name.Variable.Instance */
.vm { color: #19177C } /* Name.Variable.Magic */ .vm { color: #19177C } /* Name.Variable.Magic */
.il { color: #666 } /* Literal.Number.Integer.Long */ .il { color: #666666 } /* Literal.Number.Integer.Long */

View File

@@ -151,10 +151,3 @@ header h2 {
display: inline; display: inline;
font-size: 1.2rem; font-size: 1.2rem;
} }
hr {
border: none;
border-top: 1px solid var(--foreground-dim);
opacity: 0.3;
margin: 2rem 0;
}

View File

@@ -1,3 +1,3 @@
"""Version information for the blag package.""" """Version information for the blag package."""
__VERSION__ = "2.3.3" __VERSION__ = "2.4.2"

View File

@@ -18,6 +18,7 @@ dependencies = [
"jinja2", "jinja2",
"markdown", "markdown",
"pygments", "pygments",
"pymdown-extensions"
] ]
[project.scripts] [project.scripts]

View File

@@ -111,17 +111,3 @@ this --- is -- a test ...
assert "mdash" not in html assert "mdash" not in html
assert "ndash" not in html assert "ndash" not in html
assert "hellip" not in html assert "hellip" not in html
def test_footnotes() -> None:
"""Test footnote extension."""
md = markdown_factory()
md1 = """
this is a footnote[^1]
[^1]: this is the footnotetext
"""
html, meta = convert_markdown(md, md1)
assert "<hr>" in html
assert "<ol>" in html
assert "footnotetext" in html