Transform text into beautiful markdown, effortlessly.
- Simplicity: Just a few lines of code and voila! An intuitive architecture made simple.
- Modulability: Each module is highly independent, making it easy to use on its own.
- Customizable: Extensible design allowing for easy customization.
- Highly Tested: Robust unit tests ensure reliability.
pip install mdfy
Here's a quick start guide to get you up and running!
from mdfy import Mdfier, MdText, MdHeader, MdTable
contents = [
MdHeader("Hello, MDFY!"),
MdText("[Life:bold] is [like:italic] a bicycle."),
MdTable(["head1": "content", "head2": "content"])
]
Mdfier("markdown.md").write(contents)
# or use a with statement to write iteratively
with Mdfier("markdown.md") as md:
for content in contents:
md.write(MdText(text))
# => markdown.md
#
# # Hello, MDFY!
# **Life** is *like* a bicycle.
Each mdfy element is string-convertible and can operate independently!
from mdfy import MdText, MdHeader, MdTable
print(MdHeader("Hello, MDFY!"))
print(MdText("[Life:bold] is [like:italic] a bicycle."))
print(MdTable(["head1": "content", "head2": "content"]))
# => result
#
# # Hello, MDFY!
# **Life** is *like* a bicycle.
# | head1 | head2 |
# | --- | --- |
# | content | content |
With MdText, you can flexibly specify text styles in a way similar to python's string formatting.
MdText("[a family:quote] of [plain-text formatting syntaxes:bold] that optionally can be [converted to [formal:italic] [markup languages:bold]:not] such as [HTML:strong]")
a family
of plain-text formatting syntaxes that optionally can be converted to formal markup languages such as HTML
See MdText document for details
MdTable offers a flexible way to convert a Python dict to a Markdown table.
data = [
{"precision": 0.845, "Recall": 0.662},
{"precision": 0.637, "Recall": 0.802},
{"precision": 0.710, "Recall": 0.680},
]
print(MdTable(data))
# The result will be
# | precision | Recall |
# | --- | --- |
# | 0.845 | 0.662 |
# | 0.637 | 0.802 |
# | 0.71 | 0.68 |
To transpose a table, all you need to do is pass True to the transpose parameter.
print(MdTable(data, transpose=True))
# | Key | Value 0 | Value 1 | Value 2 |
# | --- | --- | --- | --- |
# | precision | 0.845 | 0.637 | 0.71 |
# | Recall | 0.662 | 0.802 | 0.68 |
# And you can specify header labels when transpose
labels = ["Metrics", "Model 1", "Model 2", "Model 3"]
print(MdTable(data, transpose=True, labels=labels))
# | Metrics | Model 1 | Model 2 | Model 3 |
# | --- | --- | --- | --- |
# | precision | 0.845 | 0.637 | 0.71 |
# | Recall | 0.662 | 0.802 | 0.68 |
You can also specify the precision of float values.
data = [
{"precision": 0.84544, "Recall": 0.662765},
{"precision": 0.63743, "Recall": 0.802697},
{"precision": 0.718203, "Recall": 0.6802435},
]
labels = ["Metrics", "Model 1", "Model 2", "Model 3"]
print(MdTable(data, transpose=True, labels=labels, precision=3))
# | Metrics | Model 1 | Model 2 | Model 3 |
# | --- | --- | --- | --- |
# | precision | 0.845 | 0.637 | 0.718 |
# | Recall | 0.663 | 0.803 | 0.680 |
See MdTable document for details
Check out our full documentation for detailed guides and API references.
To run the tests:
python -m pytest
We welcome contributions!
This project is licensed under the MIT License. See the LICENSE file for details.