Remotify local links in README.md.
Project description
🎇Features • 🏠Installation • 🚜Usage • 💻CLI • 💡Examples • ✅Requirements
❔ What
What mdremotifier does:
Turn this (./mdremotifier/examples/EXAMPLE.md):
# Example markdown file
A link to a local file [LICENSE.md](./LICENSE.md).
Into this (./mdremotifier/examples/EXAMPLE.remotified.md):
# Example markdown file
A link to a local file [LICENSE.md](https://raw.githubusercontent.com/realazthat/mdremotifier/master/LICENSE.md).
This is useful for uploading README.md
files to third-party sites, like the
npmjs.com registry, or pypi.org registry, because these registries will break
the local images in your README when displayed on their sites.
See https://pypi.org/project/mdremotifier/, notice how all of the images are not broken.
🎇 Features
- 📷🔗📡🌐🖼️ Replace local URLs with raw.githubusercontent.com URLs.
🏠 Installation
# Install from pypi (https://pypi.org/project/mdremotifier/)
pip install mdremotifier
# Install from git (https://github.com/realazthat/mdremotifier)
pip install git+https://github.com/realazthat/mdremotifier.git@v0.3.2
🚜 Usage
Example README: (./mdremotifier/examples/EXAMPLE.md):
# Example markdown file
A link to a local file [LICENSE.md](./LICENSE.md).
Generating the README:
$ python -m mdremotifier.cli -i ./mdremotifier/examples/EXAMPLE.md --url-prefix https://raw.githubusercontent.com/realazthat/mdremotifier/master/ -o - 2>/dev/null
# Example markdown file
A link to a local file [LICENSE.md](https://raw.githubusercontent.com/realazthat/mdremotifier/master/LICENSE.md).
💻 Command Line Options
💡 Examples
- mdremotifier's own
README
:- Original: ./README.md.
- Remotified: ./.github/README.remotified.md.
- Generation script: ./scripts/generate-readme.sh.
- Example:
- Original: ./mdremotifier/examples/EXAMPLE.md.
- Remotified: ./mdremotifier/examples/EXAMPLE.remotified.md.
- Generation script: ./mdremotifier/examples/example.sh.
✅ Requirements
- Linux-like environment
- Why: Uses pexpect.spawn().
- Python 3.8+
- Why: Some dev dependencies require Python 3.8+.
Tested Platforms
- WSL2 Ubuntu 20.04, Python
3.8.0
. - Ubuntu 20.04, Python
3.8.0, 3.9.0, 3.10.0, 3.11.0, 3.12.0
, tested in GitHub Actions workflow (build-and-test.yml).
🤏 Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
🔑 License
This project is licensed under the MIT License - see the ./LICENSE.md file for details.
🙏 Thanks
Main libraries used in mdremotifier are:
- Markdown AST: mistletoe.
- Colorful CLI help: rich-argparse.
🤝 Related Projects
Not complete, and not necessarily up to date. Make a PR (contributions) to insert/modify.
Project | Stars | Last Update | Language | Platform | Similarity X Obviousness |
---|---|---|---|---|---|
bdashore3/remark-github-images | 0 | 2022/12/29 |
JS | CLI | ⭐⭐⭐⭐⭐ |
laobie/WriteMarkdownLazily | 36 | 2024/01/06 |
Python | CLI | ⭐⭐⭐⭐ |
crh19970307/mdul | 1 | 2020/02/01 |
Python | CLI | ⭐⭐⭐⭐ |
SkyLee424/Go-MarkDown-Image-Transfer-Helper | 0 | 2024/03/25 |
Go | CLI | ⭐⭐⭐⭐ |
jen6/imgo | 0 | 2020/03/18 |
Pyhon | CLI | ⭐⭐⭐⭐ |
chocoluffy/lazy-markdown | 0 | 2016/11/20 |
Python | CLI | ⭐⭐⭐⭐ |
loheagn/gopic | 0 | 2021/11/24 |
Go | CLI | ⭐⭐⭐⭐ |
Undertone0809/imarkdown | 57 | 2024/01/06 |
Python | Python | ⭐⭐⭐ |
ravgeetdhillon/markdown-imgur-upload | 1 | 2022/03/26 |
Python | CLI | ⭐⭐⭐ |
🫡 Contributions
Development environment: Linux-like
-
For running
pre.sh
(Linux-like environment).-
From ./.github/dependencies.yml, which is used for the GH Action to do a fresh install of everything:
bash: scripts. findutils: scripts. grep: tests. xxd: tests. git: scripts, tests. xxhash: scripts (changeguard). rsync: out-of-directory test. expect: for `unbuffer`, useful to grab and compare ansi color symbols. jq: dependency for [yq](https://github.com/kislyuk/yq), which is used to generate the README; the README generator needs to use `tomlq` (which is a part of `yq`) to query `pyproject.toml`.
-
Requires
pyenv
, or an exact matching version of python as in .python-version (which is currently3.8.0
). -
jq
, (installation) required for yq, which is itself required for our ./README.md generation, which usestomlq
(from the yq package) to include version strings from ./pyproject.toml. -
act (to run the GH Action locally):
- Requires nodejs.
- Requires Go.
- docker.
-
Generate animation:
- docker
-
Commit Process
- (Optionally) Fork the
develop
branch. - Stage your files:
git add path/to/file.py
. bash ./scripts/pre.sh
, this will format, lint, and test the code.git status
check if anything changed (generated ./README.md for example), if so,git add
the changes, and go back to the previous step.git commit -m "..."
.- Make a PR to
develop
(or push to develop if you have the rights).
🔄🚀 Release Process
These instructions are for maintainers of the project.
- In the
develop
branch, runbash ./scripts/pre.sh
to ensure everything is in order. - In the
develop
branch, bump the version in ./pyproject.toml, following semantic versioning principles. Also modify thelast_unstable_release
andlast_stable_release
in the[tool.mdremotifier-project-metadata]
table as appropriate. Runbash ./scripts/pre.sh
to ensure everything is in order. - In the
develop
branch, commit these changes with a message like"Prepare release X.Y.Z"
. (See the contributions section above). - Merge the
develop
branch into themaster
branch:git checkout master && git merge develop --no-ff
. master
branch: Tag the release: Create a git tag for the release withgit tag -a vX.Y.Z -m "Version X.Y.Z"
.- Publish to PyPI: Publish the release to PyPI with
bash ./scripts/deploy-to-pypi.sh
. - Push to GitHub: Push the commit and tags to GitHub with
git push && git push --tags
. - The
--no-ff
option adds a commit to the master branch for the merge, so refork the develop branch from the master branch:git checkout develop && git merge master
. - Push the develop branch to GitHub:
git push origin develop
.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mdremotifier-0.3.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28da7c63d2a22cd299955a6f94e1a6aaf28b210128880a420e7a7c0d7947e858 |
|
MD5 | c4485769528f8e3a67f3f4b33f40e9a5 |
|
BLAKE2b-256 | 4213d344b46eb8f23163da365cfacfa2dcd647623e5ce577ecd3192360f38190 |