# mdformat-obsidian
[![Build Status][ci-badge]][ci-link] [![PyPI version][pypi-badge]][pypi-link]
<!-- [![codecov.io][cov-badge]][cov-link]
[cov-badge]: https://codecov.io/gh/executablebooks/mdformat-obsidian/branch/main/graph/badge.svg
[cov-link]: https://codecov.io/gh/executablebooks/mdformat-obsidian
-->
An [mdformat](https://github.com/executablebooks/mdformat) plugin for [Obsidian Flavored Markdown](https://help.obsidian.md/Editing+and+formatting/Obsidian+Flavored+Markdown). This plugin directly supports [Callouts](https://help.obsidian.md/Editing+and+formatting/Callouts) and a few other features. More documentation will be forthcoming, but in the interim, see the test directory for supported formats.
<!-- TODO: Update documentation with recent features (and known caveats) -->
> [!NOTE]
> The format for [GitHub Alerts](https://github.com/kyleking/mdformat-gfm-alerts) differs slightly from Obsidian, so they are not fully compatible. Obsidian supports folding, custom titles, and is case insensitive. To improve interoperability, this package makes the stylistic choice of capitalizing the text within `[!...]`.
## `mdformat` Usage
Add this package wherever you use `mdformat` and the plugin will be auto-recognized. No additional configuration necessary. See [additional information on `mdformat` plugins here](https://mdformat.readthedocs.io/en/stable/users/plugins.html)
**Tip**: this package specifies an "extra" (`'recommended'`) for plugins that work well with `GFM`:
- [mdformat-beautysh](https://pypi.org/project/mdformat-beautysh)
- [mdformat-black](https://pypi.org/project/mdformat-black)
- [mdformat-config](https://pypi.org/project/mdformat-config)
- [mdformat-frontmatter](https://pypi.org/project/mdformat-frontmatter)
- [mdformat-simple-breaks](https://pypi.org/project/mdformat-simple-breaks)
- [mdformat-tables](https://pypi.org/project/mdformat-tables)
- [mdformat-web](https://pypi.org/project/mdformat-web)
- [mdformat-wikilink](https://github.com/tmr232/mdformat-wikilink)
### Pre-Commit
```yaml
repos:
- repo: https://github.com/executablebooks/mdformat
rev: 0.7.16
hooks:
- id: mdformat
additional_dependencies:
- mdformat-obsidian
# Or
# - "mdformat-obsidian[recommended]"
```
### pipx
```sh
pipx install mdformat
pipx inject mdformat mdformat-obsidian
# Or
# pipx inject mdformat "mdformat-obsidian[recommended]"
```
## HTML Rendering
To generate HTML output, `obsidian_plugin` can be imported from `mdit_plugins`. For more guidance on `MarkdownIt`, see the docs: <https://markdown-it-py.readthedocs.io/en/latest/using.html#the-parser>
```py
from markdown_it import MarkdownIt
from mdformat_obsidian.mdit_plugins import obsidian_plugin
md = MarkdownIt()
md.use(obsidian_plugin)
text = "> [!tip] Callouts can have custom titles\n> Like this one."
md.render(text)
# <blockquote>
# </blockquote>
```
> [!WARNING]
> This package does not properly handle replacing the `blockquote` outer `div` with a `div` for accessibility. This should be possible with `markdown-it`, but I haven't yet found a way.
## Contributing
See [CONTRIBUTING.md](https://github.com/KyleKing/mdformat-obsidian/blob/main/CONTRIBUTING.md)
[ci-badge]: https://github.com/kyleking/mdformat-obsidian/workflows/CI/badge.svg?branch=main
[ci-link]: https://github.com/kyleking/mdformat-obsidian/actions?query=workflow%3ACI+branch%3Amain+event%3Apush
[pypi-badge]: https://img.shields.io/pypi/v/mdformat-obsidian.svg
[pypi-link]: https://pypi.org/project/mdformat-obsidian
Raw data
{
"_id": null,
"home_page": null,
"name": "mdformat_obsidian",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8.5",
"maintainer_email": null,
"keywords": "markdown, markdown-it, mdformat, mdformat_plugin_template",
"author": null,
"author_email": "kyleking <dev.act.kyle@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/ff/b9/118d36f64638f2a7f1b53b8e6ff89ca09b7ea59591aa66992d6a22c8939d/mdformat_obsidian-0.1.0.tar.gz",
"platform": null,
"description": "# mdformat-obsidian\n\n[![Build Status][ci-badge]][ci-link] [![PyPI version][pypi-badge]][pypi-link]\n\n<!-- [![codecov.io][cov-badge]][cov-link]\n[cov-badge]: https://codecov.io/gh/executablebooks/mdformat-obsidian/branch/main/graph/badge.svg\n[cov-link]: https://codecov.io/gh/executablebooks/mdformat-obsidian\n -->\n\nAn [mdformat](https://github.com/executablebooks/mdformat) plugin for [Obsidian Flavored Markdown](https://help.obsidian.md/Editing+and+formatting/Obsidian+Flavored+Markdown). This plugin directly supports [Callouts](https://help.obsidian.md/Editing+and+formatting/Callouts) and a few other features. More documentation will be forthcoming, but in the interim, see the test directory for supported formats.\n\n<!-- TODO: Update documentation with recent features (and known caveats) -->\n\n> [!NOTE]\n> The format for [GitHub Alerts](https://github.com/kyleking/mdformat-gfm-alerts) differs slightly from Obsidian, so they are not fully compatible. Obsidian supports folding, custom titles, and is case insensitive. To improve interoperability, this package makes the stylistic choice of capitalizing the text within `[!...]`.\n\n## `mdformat` Usage\n\nAdd this package wherever you use `mdformat` and the plugin will be auto-recognized. No additional configuration necessary. See [additional information on `mdformat` plugins here](https://mdformat.readthedocs.io/en/stable/users/plugins.html)\n\n**Tip**: this package specifies an \"extra\" (`'recommended'`) for plugins that work well with `GFM`:\n\n- [mdformat-beautysh](https://pypi.org/project/mdformat-beautysh)\n- [mdformat-black](https://pypi.org/project/mdformat-black)\n- [mdformat-config](https://pypi.org/project/mdformat-config)\n- [mdformat-frontmatter](https://pypi.org/project/mdformat-frontmatter)\n- [mdformat-simple-breaks](https://pypi.org/project/mdformat-simple-breaks)\n- [mdformat-tables](https://pypi.org/project/mdformat-tables)\n- [mdformat-web](https://pypi.org/project/mdformat-web)\n- [mdformat-wikilink](https://github.com/tmr232/mdformat-wikilink)\n\n### Pre-Commit\n\n```yaml\nrepos:\n - repo: https://github.com/executablebooks/mdformat\n rev: 0.7.16\n hooks:\n - id: mdformat\n additional_dependencies:\n - mdformat-obsidian\n # Or\n # - \"mdformat-obsidian[recommended]\"\n```\n\n### pipx\n\n```sh\npipx install mdformat\npipx inject mdformat mdformat-obsidian\n# Or\n# pipx inject mdformat \"mdformat-obsidian[recommended]\"\n```\n\n## HTML Rendering\n\nTo generate HTML output, `obsidian_plugin` can be imported from `mdit_plugins`. For more guidance on `MarkdownIt`, see the docs: <https://markdown-it-py.readthedocs.io/en/latest/using.html#the-parser>\n\n```py\nfrom markdown_it import MarkdownIt\n\nfrom mdformat_obsidian.mdit_plugins import obsidian_plugin\n\nmd = MarkdownIt()\nmd.use(obsidian_plugin)\n\ntext = \"> [!tip] Callouts can have custom titles\\n> Like this one.\"\nmd.render(text)\n# <blockquote>\n\n# </blockquote>\n```\n\n> [!WARNING]\n> This package does not properly handle replacing the `blockquote` outer `div` with a `div` for accessibility. This should be possible with `markdown-it`, but I haven't yet found a way.\n\n## Contributing\n\nSee [CONTRIBUTING.md](https://github.com/KyleKing/mdformat-obsidian/blob/main/CONTRIBUTING.md)\n\n[ci-badge]: https://github.com/kyleking/mdformat-obsidian/workflows/CI/badge.svg?branch=main\n[ci-link]: https://github.com/kyleking/mdformat-obsidian/actions?query=workflow%3ACI+branch%3Amain+event%3Apush\n[pypi-badge]: https://img.shields.io/pypi/v/mdformat-obsidian.svg\n[pypi-link]: https://pypi.org/project/mdformat-obsidian\n",
"bugtrack_url": null,
"license": null,
"summary": "An mdformat plugin for `obsidian`.",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/kyleking/mdformat-obsidian/issues",
"Changelog": "https://github.com/kyleking/mdformat-obsidian/releases",
"homepage": "https://github.com/kyleking/mdformat-obsidian"
},
"split_keywords": [
"markdown",
" markdown-it",
" mdformat",
" mdformat_plugin_template"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b20b9feb71d10e13ec76d90e0210ccd6e19abc1ac0ed2fe18e637314aaa47631",
"md5": "2ff931b180c24e026446ffcfb48fa223",
"sha256": "5bf779374f052247b68e3d87ce78e55231e01de5452d8548f0bef63f8e6d9872"
},
"downloads": -1,
"filename": "mdformat_obsidian-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2ff931b180c24e026446ffcfb48fa223",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.5",
"size": 11573,
"upload_time": "2024-08-20T00:23:24",
"upload_time_iso_8601": "2024-08-20T00:23:24.832458Z",
"url": "https://files.pythonhosted.org/packages/b2/0b/9feb71d10e13ec76d90e0210ccd6e19abc1ac0ed2fe18e637314aaa47631/mdformat_obsidian-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ffb9118d36f64638f2a7f1b53b8e6ff89ca09b7ea59591aa66992d6a22c8939d",
"md5": "f3546dee33bc50c7622381695e792129",
"sha256": "be5cec09c3ceb94cc916f89b54373e36f97fbf97adc9eedcd32a9eff0ff31fdc"
},
"downloads": -1,
"filename": "mdformat_obsidian-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "f3546dee33bc50c7622381695e792129",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.5",
"size": 13953,
"upload_time": "2024-08-20T00:23:26",
"upload_time_iso_8601": "2024-08-20T00:23:26.350534Z",
"url": "https://files.pythonhosted.org/packages/ff/b9/118d36f64638f2a7f1b53b8e6ff89ca09b7ea59591aa66992d6a22c8939d/mdformat_obsidian-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-20 00:23:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kyleking",
"github_project": "mdformat-obsidian",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "mdformat_obsidian"
}