From 813644aca943289254c5594f78faa20062fb71d4 Mon Sep 17 00:00:00 2001 From: Kyle King Date: Wed, 5 Apr 2023 22:08:26 -0400 Subject: [PATCH 1/7] feat!: use 2-spaces for bullet indents --- mdformat_mkdocs/plugin.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mdformat_mkdocs/plugin.py b/mdformat_mkdocs/plugin.py index 88e5ca6..f7d5f7c 100644 --- a/mdformat_mkdocs/plugin.py +++ b/mdformat_mkdocs/plugin.py @@ -1,12 +1,13 @@ import re +from os import environ from typing import Dict, Mapping from markdown_it import MarkdownIt from mdformat.renderer import RenderContext, RenderTreeNode from mdformat.renderer.typing import Postprocess, Render -_MKDOCS_INDENT_COUNT = 4 -"""Use 4-spaces for mkdocs.""" +_MKDOCS_INDENT_COUNT = int(environ.get("MDFORMAT_MKDOCS_INDENT_COUNT", "2")) +"""Use 2-spaces for mkdocs or whichever environment variable is configured.""" def update_mdit(mdit: MarkdownIt) -> None: From f2c405ed66b70e3b04d81afee0fe8fbb98a19d3b Mon Sep 17 00:00:00 2001 From: Kyle King Date: Wed, 5 Apr 2023 22:15:43 -0400 Subject: [PATCH 2/7] test: use environment variable to avoid test file diff --- tox.ini | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tox.ini b/tox.ini index 5a39d27..860195e 100644 --- a/tox.ini +++ b/tox.ini @@ -10,22 +10,32 @@ skip_missing_interpreters = False [testenv:py{310}] extras = test commands = pytest {posargs} --ff -vv +setenv = + MDFORMAT_MKDOCS_INDENT_COUNT = 4 [testenv:py{310}-cov] extras = test commands = pytest --cov={envsitepackagesdir}/mdformat_mkdocs {posargs} +setenv = + MDFORMAT_MKDOCS_INDENT_COUNT = 4 [testenv:py{37}-recommended] extras = recommended,test commands = pytest {posargs} --ff -vv +setenv = + MDFORMAT_MKDOCS_INDENT_COUNT = 4 [testenv:py{310}-pre-commit] extras = dev commands = pre-commit run {posargs:--all-files} +setenv = + MDFORMAT_MKDOCS_INDENT_COUNT = 4 [testenv:py{37,310}-hook] extras = dev commands = pre-commit run --config .pre-commit-test.yaml {posargs:--all-files --verbose --show-diff-on-failure} +setenv = + MDFORMAT_MKDOCS_INDENT_COUNT = 4 [flake8] max-line-length = 88 From bc575b5c1f658a30a81a22ff9f6f50cddb5ca0f5 Mon Sep 17 00:00:00 2001 From: Kyle King Date: Wed, 5 Apr 2023 22:58:24 -0400 Subject: [PATCH 3/7] refactor: code cleanup --- mdformat_mkdocs/plugin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mdformat_mkdocs/plugin.py b/mdformat_mkdocs/plugin.py index f7d5f7c..a359096 100644 --- a/mdformat_mkdocs/plugin.py +++ b/mdformat_mkdocs/plugin.py @@ -15,7 +15,7 @@ def update_mdit(mdit: MarkdownIt) -> None: ... -_RE_INDENT = re.compile(r"(?P\s*)(?P.*)") +_RE_INDENT = re.compile(r"(?P\s*)(?P[^\s]?.*)") """Match `indent` and `content` against line`.""" _RE_LIST_ITEM = re.compile(r"(?P[\-\*\d\.]+)\s+(?P.+)") @@ -24,7 +24,7 @@ def update_mdit(mdit: MarkdownIt) -> None: def _normalize_list(text: str, node: RenderTreeNode, context: RenderContext) -> str: """Post-processor to normalize lists.""" - eol = "\n" # PLANNED: Does this need to support carriage returns? + eol = "\n" indent = " " * _MKDOCS_INDENT_COUNT rendered = "" @@ -54,7 +54,7 @@ def _normalize_list(text: str, node: RenderTreeNode, context: RenderContext) -> raise NotImplementedError(f"Error in indentation of: `{line}`") else: indent_counter = 0 - last_indent = match["indent"] + last_indent = this_indent new_indent = indent * indent_counter rendered += f"{new_indent}{new_line.strip()}{eol}" return rendered.rstrip() From 2420618a36782d8ed999fa13811f082841f8febf Mon Sep 17 00:00:00 2001 From: Kyle King Date: Wed, 5 Apr 2023 22:58:30 -0400 Subject: [PATCH 4/7] Revert "test: use environment variable to avoid test file diff" This reverts commit f2c405ed66b70e3b04d81afee0fe8fbb98a19d3b. --- tox.ini | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/tox.ini b/tox.ini index 860195e..5a39d27 100644 --- a/tox.ini +++ b/tox.ini @@ -10,32 +10,22 @@ skip_missing_interpreters = False [testenv:py{310}] extras = test commands = pytest {posargs} --ff -vv -setenv = - MDFORMAT_MKDOCS_INDENT_COUNT = 4 [testenv:py{310}-cov] extras = test commands = pytest --cov={envsitepackagesdir}/mdformat_mkdocs {posargs} -setenv = - MDFORMAT_MKDOCS_INDENT_COUNT = 4 [testenv:py{37}-recommended] extras = recommended,test commands = pytest {posargs} --ff -vv -setenv = - MDFORMAT_MKDOCS_INDENT_COUNT = 4 [testenv:py{310}-pre-commit] extras = dev commands = pre-commit run {posargs:--all-files} -setenv = - MDFORMAT_MKDOCS_INDENT_COUNT = 4 [testenv:py{37,310}-hook] extras = dev commands = pre-commit run --config .pre-commit-test.yaml {posargs:--all-files --verbose --show-diff-on-failure} -setenv = - MDFORMAT_MKDOCS_INDENT_COUNT = 4 [flake8] max-line-length = 88 From e902af84c8320d6cd6f538fb2953cc055d53e95e Mon Sep 17 00:00:00 2001 From: Kyle King Date: Wed, 5 Apr 2023 22:58:33 -0400 Subject: [PATCH 5/7] Revert "feat!: use 2-spaces for bullet indents" This reverts commit 813644aca943289254c5594f78faa20062fb71d4. --- mdformat_mkdocs/plugin.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mdformat_mkdocs/plugin.py b/mdformat_mkdocs/plugin.py index a359096..92dc0a5 100644 --- a/mdformat_mkdocs/plugin.py +++ b/mdformat_mkdocs/plugin.py @@ -1,13 +1,12 @@ import re -from os import environ from typing import Dict, Mapping from markdown_it import MarkdownIt from mdformat.renderer import RenderContext, RenderTreeNode from mdformat.renderer.typing import Postprocess, Render -_MKDOCS_INDENT_COUNT = int(environ.get("MDFORMAT_MKDOCS_INDENT_COUNT", "2")) -"""Use 2-spaces for mkdocs or whichever environment variable is configured.""" +_MKDOCS_INDENT_COUNT = 4 +"""Use 4-spaces for mkdocs.""" def update_mdit(mdit: MarkdownIt) -> None: From aa2237baaa59a29c1446caf79bf649b9b79e15f9 Mon Sep 17 00:00:00 2001 From: Kyle King Date: Thu, 6 Apr 2023 09:08:55 -0400 Subject: [PATCH 6/7] ci: try updating pre-commit --- .pre-commit-config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 940ffa1..9714041 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,15 +27,15 @@ repos: - id: trailing-whitespace exclude: tests/fixtures.*\.md - repo: https://github.com/pre-commit/pygrep-hooks - rev: v1.9.0 + rev: v1.10.0 hooks: - id: python-check-blanket-noqa - repo: https://github.com/timothycrosley/isort - rev: 5.11.4 + rev: 5.12.0 hooks: - id: isort - repo: https://github.com/psf/black - rev: 22.12.0 + rev: 23.3.0 hooks: - id: black - repo: https://github.com/pycqa/flake8 @@ -56,7 +56,7 @@ repos: exclude: tests/.+\.md args: [--wrap=no] - repo: https://github.com/lyz-code/yamlfix/ - rev: 1.1.1 + rev: 1.9.0 hooks: - id: yamlfix types_or: [] From c3c9812142ce9695763eef54a7dc6e56025cd171 Mon Sep 17 00:00:00 2001 From: Kyle King Date: Thu, 6 Apr 2023 19:03:55 -0400 Subject: [PATCH 7/7] ci: run updated yamlfix --- .github/workflows/tests.yml | 16 +--------------- .pre-commit-config.yaml | 3 +-- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 876a98b..c634676 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,17 +1,13 @@ --- name: CI - on: push: branches: [main] - tags: - - v* + tags: [v*] pull_request: - jobs: pre-commit: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - name: Set up Python @@ -19,29 +15,24 @@ jobs: with: python-version: '3.10' - uses: pre-commit/action@v2.0.0 - tests: runs-on: ${{ matrix.os }} strategy: matrix: python-version: [3.7, '3.10'] os: [ubuntu-latest, windows-latest] - steps: - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - - name: Installation (deps and package) # we install with flit --pth-file, # so that coverage will be recorded for the module run: | pip install flit flit install --deps=production --extras=test --pth-file - - name: Run pytest run: | pytest --cov=mdformat_admon --cov-report=xml --cov-report=term-missing @@ -54,26 +45,21 @@ jobs: # flags: pytests # file: ./coverage.xml # fail_ci_if_error: false - pre-commit-hook: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.10' - - name: Installation (deps and package) run: | pip install pre-commit pip install . - - name: run pre-commit with plugin run: | pre-commit run --config .pre-commit-test.yaml --all-files --verbose --show-diff-on-failure - publish: name: Publish to PyPi needs: [pre-commit, tests, pre-commit-hook] diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9714041..c979e30 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -51,8 +51,7 @@ repos: rev: 0.7.16 hooks: - id: mdformat - additional_dependencies: - - mdformat-mkdocs[recommended] + additional_dependencies: ['mdformat-mkdocs[recommended]'] exclude: tests/.+\.md args: [--wrap=no] - repo: https://github.com/lyz-code/yamlfix/