Compare commits

..

11 Commits

Author SHA1 Message Date
dependabot[bot]
081927ffde Bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 14:44:26 +00:00
Bastian Venthur
791996d362 Merge pull request #303 from venthur/footnotes
Added footnotes
2025-11-04 09:09:39 +01:00
Bastian Venthur
0d7c9b3153 Added footnotes 2025-11-04 09:06:47 +01:00
Bastian Venthur
f07341a6be Merge branch 'master' of github.com:venthur/blag 2025-10-10 08:36:13 +02:00
Bastian Venthur
7adbb97dc9 update default colorscheme 2025-10-10 08:35:50 +02:00
Bastian Venthur
dba8380d3d Merge pull request #301 from venthur/py314
Added Python 3.14 compatibility
2025-10-10 08:30:09 +02:00
Bastian Venthur
b7e0baa331 Added Python 3.14 compatibility 2025-10-10 08:24:29 +02:00
Bastian Venthur
d0c246a6c3 Merge pull request #300 from venthur/dependabot/github_actions/actions/setup-python-6
Bump actions/setup-python from 5 to 6
2025-09-11 10:06:27 +02:00
dependabot[bot]
d6e251db38 Bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-11 08:02:43 +00:00
Bastian Venthur
5f65bace1a Merge pull request #299 from venthur/dependabot/github_actions/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-09-11 10:01:50 +02:00
dependabot[bot]
1058292e3f Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 19:54:13 +00:00
12 changed files with 204 additions and 152 deletions

View File

@@ -1,36 +0,0 @@
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/*

15
.github/dependabot.yml vendored Normal file
View File

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

75
.github/workflows/python-package.yaml vendored Normal file
View File

@@ -0,0 +1,75 @@
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,32 +1,10 @@
# 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,6 +21,7 @@ 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,12 +30,11 @@ 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 #FF0000 } /* Error */ .err { border: 1px solid #F00 } /* Error */
.k { color: #008000; font-weight: bold } /* Keyword */ .k { color: #008000; font-weight: bold } /* Keyword */
.o { color: #666666 } /* Operator */ .o { color: #666 } /* 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: #0044DD } /* Generic.Traceback */ .gt { color: #04D } /* 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: #666666 } /* Literal.Number */ .m { color: #666 } /* 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: #0000FF; font-weight: bold } /* Name.Class */ .nc { color: #00F; font-weight: bold } /* Name.Class */
.no { color: #880000 } /* Name.Constant */ .no { color: #800 } /* Name.Constant */
.nd { color: #AA22FF } /* Name.Decorator */ .nd { color: #A2F } /* 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: #0000FF } /* Name.Function */ .nf { color: #00F } /* Name.Function */
.nl { color: #767600 } /* Name.Label */ .nl { color: #767600 } /* Name.Label */
.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ .nn { color: #00F; 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: #AA22FF; font-weight: bold } /* Operator.Word */ .ow { color: #A2F; font-weight: bold } /* Operator.Word */
.w { color: #bbbbbb } /* Text.Whitespace */ .w { color: #BBB } /* Text.Whitespace */
.mb { color: #666666 } /* Literal.Number.Bin */ .mb { color: #666 } /* Literal.Number.Bin */
.mf { color: #666666 } /* Literal.Number.Float */ .mf { color: #666 } /* Literal.Number.Float */
.mh { color: #666666 } /* Literal.Number.Hex */ .mh { color: #666 } /* Literal.Number.Hex */
.mi { color: #666666 } /* Literal.Number.Integer */ .mi { color: #666 } /* Literal.Number.Integer */
.mo { color: #666666 } /* Literal.Number.Oct */ .mo { color: #666 } /* 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: #0000FF } /* Name.Function.Magic */ .fm { color: #00F } /* 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: #666666 } /* Literal.Number.Integer.Long */ .il { color: #666 } /* Literal.Number.Integer.Long */

View File

@@ -151,3 +151,10 @@ 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.4.2" __VERSION__ = "2.3.3"

View File

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

View File

@@ -111,3 +111,17 @@ 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