diff options
Diffstat (limited to '.github/workflows/docutils_setup.py')
-rwxr-xr-x | .github/workflows/docutils_setup.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/.github/workflows/docutils_setup.py b/.github/workflows/docutils_setup.py new file mode 100755 index 0000000..9d74522 --- /dev/null +++ b/.github/workflows/docutils_setup.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +"""Script to convert package setup to myst-docutils.""" +import sys + +import tomlkit + + +def modify_toml(content: str) -> str: + """Modify `pyproject.toml`.""" + doc = tomlkit.parse(content) + + # change name of package + doc["project"]["name"] = "myst-docutils" + + # move dependency on docutils and sphinx to extra + dependencies = [] + sphinx_extra = [] + for dep in doc["project"]["dependencies"]: + if dep.startswith("docutils") or dep.startswith("sphinx"): + sphinx_extra.append(dep) + else: + dependencies.append(dep) + doc["project"]["dependencies"] = dependencies + doc["project"]["optional-dependencies"]["sphinx"] = sphinx_extra + + return tomlkit.dumps(doc) + + +def modify_readme(content: str) -> str: + """Modify README.md.""" + content = content.replace("myst-parser", "myst-docutils") + content = content.replace( + "# MyST-Parser", + "# MyST-Parser\n\nNote: myst-docutils is identical to myst-parser, " + "but without installation requirements on sphinx", + ) + content = content.replace("myst-docutils.readthedocs", "myst-parser.readthedocs") + content = content.replace( + "readthedocs.org/projects/myst-docutils", "readthedocs.org/projects/myst-parser" + ) + return content + + +if __name__ == "__main__": + project_path = sys.argv[1] + readme_path = sys.argv[2] + with open(project_path) as f: + content = f.read() + content = modify_toml(content) + with open(project_path, "w") as f: + f.write(content) + with open(readme_path) as f: + content = f.read() + content = modify_readme(content) + with open(readme_path, "w") as f: + f.write(content) |