# Obsidian Mkdocs Publisher : A free publish alternative

**URL:** <https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540>\
**Category:** Plugins\
**Tags:** publish, plugin-release\
**Created:** [December 30, 2021, 7:31am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540 "2021-12-30T07:31:13Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [December 30, 2021, 7:31am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/1 "2021-12-30T07:31:13Z")

</div>

# Mkdocs Obsidian

Mkdocs Obsidian is an association between a python script and a Material mkdocs template to get a personal wiki site based on your Obsidian Vault.

[Documentation](https://mara-li.github.io/mkdocs_obsidian_template/)  
[My blog (fr)](https://www.mara-li.fr/)

> **Screenshot**
>
> ![image_1](https://forum.obsidian.md/uploads/default/original/3X/3/d/3d3138d31024556728a30c2ab2e181bb34f92ac3.png)  
> ![image_2](https://forum.obsidian.md/uploads/default/original/3X/4/1/41bc69242f98e50b1fbb11598342b324d9741bfa.png)  
> ![image_3](https://forum.obsidian.md/uploads/default/original/3X/3/7/374efb5c97800e7d25a8b226b9f7d9d37d2bb9ac.png)  
> ![image_4](https://forum.obsidian.md/uploads/default/original/3X/9/d/9d90337075df92bb0759f0a81ec0859b5270b319.png)

[https://github.com/Mara-Li/mkdocs\_obsidian\_publish](https://github.com/Mara-Li/mkdocs_obsidian_publish)

You can also use an Obsidian Plugin :

[https://github.com/Mara-Li/obsidian-mkdocs-publisher](https://github.com/Mara-Li/obsidian-mkdocs-publisher)

---

<div class="post-metadata">

**Author:** ![bryan00](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/b/3ab097/32.png) [@bryan00](https://forum.obsidian.md/u/bryan00)\
**Post date:** [December 30, 2021, 4:00pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/2 "2021-12-30T16:00:27Z")

</div>

Thanks for writing in details like this. It helps and gives me the motivation to try your setup.

Please teach me if I didnt understand correctly the 2 things as follows.

1. After having installed mkdocs-material, in order to publish notes I have now 2 options:

2. In order to make `mkdocs-obsidian` work for selective publishing, I need to specify an attribute `share: true` in the frontmatter of every notes that I want to publish.

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [December 30, 2021, 5:51pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/3 "2021-12-30T17:51:41Z")

</div>

I think you entirely understand!  
The `share: true` key is when you want to share multiple file. But, if you want to just publish _one_ file, you need to use `obs2mk --f "Path/to/the/file"`

---

<div class="post-metadata">

**Author:** ![Luis4](https://forum.obsidian.md/user_avatar/forum.obsidian.md/luis4/32/24078_2.png) [@Luis4](https://forum.obsidian.md/u/Luis4)\
**Post date:** [January 3, 2022, 9:14am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/4 "2022-01-03T09:14:35Z")

</div>

Thanks for sharing this info this is useful keep it up[.](https://www.mybalancenow.ltd/)

---

<div class="post-metadata">

**Author:** ![Fredy1](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/f/3be4f8/32.png) [@Fredy1](https://forum.obsidian.md/u/Fredy1)\
**Post date:** [January 5, 2022, 11:59am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/5 "2022-01-05T11:59:48Z")

</div>

I was just scrolling and found some good information thanks for sharing this amazing post keep posting[.](https://www.mybalancenow.vip/)

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [January 8, 2022, 12:24am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/6 "2022-01-08T00:24:17Z")

</div>

Also, as I create [MetaCopy](https://github.com/Mara-Li/obsidian-metacopy) to quickly copy a link from this workflow, here is a little tutorial to use it as I do.

 ![](https://forum.obsidian.md/uploads/default/original/3X/c/1/c13b2bce9ebfb3816d304eff02df04b9603d89da.png) ![](https://forum.obsidian.md/uploads/default/original/3X/b/3/b3769028d0a6a4200fd13aad0a077ed81a4f86f3.png)

[Here is a demo](https://www.loom.com/share/88c64da2ba194e219578d5911fb8e08d)  
 ![](https://forum.obsidian.md/uploads/default/original/3X/c/c/ccd8a5ba571a13b500459406f14e2e3621305d73.gif)

With that, you avoid to edit your source file and you can share a link as notion !

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [January 13, 2022, 6:47am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/7 "2022-01-13T06:47:57Z")

</div>

Hello  
I added new options, including **sharing the entire vault** and **mobile**.

> Mobile is intended to be used with IOS shortcuts.

```powershell
usage: obs2mk [-h] [--git | --mobile] [--meta] [--keep] [--config]
                   [--force] [--filepath FILEPATH | --ignore]

Create file in docs and relative folder, move image in assets, convert
admonition code_blocks, add links and push.

optional arguments:
  -h, --help show this help message and exit
  --git, --g, --G No commit and no push to git
  --mobile, --shortcuts, --s, --S
                        Use mobile shortcuts fonction without push.
  --meta, --m, --M Update the frontmatter with link
  --keep, --k, --K Keep deleted file from vault and removed shared file
  --config, --c, --C Edit the config file
  --force, --d, --D Force conversion - only work if path not specified
  --filepath FILEPATH, --f FILEPATH
                        Filepath of the file you want to convert
  --ignore, --ignore-share, --no-share, --i, --vault
                        Convert the entire vault without relying on share
                        state.

```

# Share the entire vault

Using the command `--ignore` will ignore the `share` state : you can share your entire vault using that, whatever the state is. By default, it will not overwrite file already exist (and not different), so the `--force` option can also be used.

`usage: obs2mk [-h] [--git | --mobile] [--meta] [--keep] [--config] [--force] [--ignore]`

# Mobile option

The mobile option is similar to the `git` option but with some nuance. When used to publish a single file, you can use only the file name, without the path.

⚠ Be careful though, in case you have several files with the same name, the script will take the first file found.

This option can be used, especially with the “Shortcuts” application on IOS, to share a file directly from the share sheet.

One file usage : `obs2mk --mobile --f "filename"`  
All file usage : `obs2mk --mobile`

Mobile supports all previous option, including `--ignore`.

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [January 17, 2022, 7:59pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/8 "2022-01-17T19:59:24Z")

</div>

As I was bored, I updated the script to use Python Rich. So, now you have more information when you share all-share vault !  
 ![script_demo](https://forum.obsidian.md/uploads/default/original/3X/1/e/1e903f0e04de0403607721873680dd7112bfe1d3.gif)

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [January 18, 2022, 9:54pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/9 "2022-01-18T21:54:45Z")

</div>

Hello everyone!  
The template now supports [tooltip](https://github.com/Mara-Li/mkdocs-tooltipster-links-plugin). It’s a fork, waiting for a pull request.

To install it, use `pip install git+git://github.com/Mara-Li/mkdocs-tooltipster-links-plugin`

I adjust the CSS to be cool with the theme.

![01-18-2022_22-53](https://forum.obsidian.md/uploads/default/original/3X/2/4/24a842b0a17ee756ea73f72a8c324b2036de9766.gif)

If I success to contact the original author of the plugin (who is an Obsidian User !) I think I will use it to, also, add real embed citation in the blog.  
After that, I think the blog can be considered as complete.

One day, maybe, it will be a mkdocs plugin and everything will be converted during the build :’).

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [January 20, 2022, 9:46am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/10 "2022-01-20T09:46:14Z")

</div>

Okay !  
I create a new [mkdocs plugin](https://github.com/Mara-Li/mkdocs_embed_file_plugins) to embed file in mkdocs !

 ![](https://forum.obsidian.md/uploads/default/original/3X/3/e/3edf8e58324968b7e0c65c180352b8ee027b7331.png)

I updated the template + the script to add the support of **embed file** like in obsidian !

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [January 29, 2022, 9:57pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/11 "2022-01-29T21:57:08Z")

</div>

Little question : Do you prefer to have the choice to use a menu, with a little application ? A simple menu to just insert your file, choice the command…  
I prefer to use command line (as Obsidian Shell commands change everything for me), but maybe some users prefer to use an app?

---

<div class="post-metadata">

**Author:** ![bryan00](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/b/3ab097/32.png) [@bryan00](https://forum.obsidian.md/u/bryan00)\
**Post date:** [January 30, 2022, 10:36am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/12 "2022-01-30T10:36:14Z")

</div>

Off topic question. How to configure the terminal as yours? Ie. separated color for each folder level

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [January 30, 2022, 2:40pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/13 "2022-01-30T14:40:52Z")

</div>

I use [Oh my Posh](https://docs.microsoft.com/en-gb/windows/terminal/tutorials/custom-prompt-setup).

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [February 3, 2022, 3:30pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/14 "2022-02-03T15:30:20Z")

</div>

Hello everyone ! I updated the readme of this topic with the lasts changes 🙂

---

<div class="post-metadata">

**Author:** ![legend053](https://forum.obsidian.md/letter_avatar_proxy/v4/letter/l/9d8465/32.png) [@legend053](https://forum.obsidian.md/u/legend053)\
**Post date:** [February 19, 2022, 5:58pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/15 "2022-02-19T17:58:29Z")

</div>

Thank you for the great work, especially considering the new price of obsidian publish. I have a question: Is there a way to add graph view via obsidian Mkdocs?

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [February 19, 2022, 9:30pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/16 "2022-02-19T21:30:43Z")

</div>

Unfortunately not. I already looking for a way to get graph and I don’t found any idea.

There is some limitation I found :

- First, where I put it in the css? As I use a template I need to do a big edit in the css and I hate that.
- I need to get a responsive graph and I don’t know how I can do that.

Also, construct an image using graphviz or juggle will broke the script for mobile and it will be not very good (because not responsible and without note link)

So, for the moment, there is no graph view.

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [March 4, 2022, 3:52pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/17 "2022-03-04T15:52:26Z")

</div>

Hello !  
I updated the script, and reworked all commands.

Global options :

- `--git` : No commit and push to git ;
- `--mobile` : Use mobile shortcuts instead of `--git`
- `--meta` : Update frontmatter of source files
- `--keep` : Don’t delete files in blog folder
- `--shell` : Remove Rich printing

Commands and specific options :

- **config** : (_it will ignore `--use configuration_name`_)
  - `--new configuration_name` : Create a specific configuration for some files

- **all** : Share all vault
  - `--force` : Force updating (ignore the difference between the source and blog file)
  - `--vault` : Share all vault file, ignoring the share state.

- **`file [file*]`** : Share only one file

Secondly, you can now create multiple configuration. For example, you can push two different vault in a different site, or the same vault on a different site. Moreover, with different sharing key, you can push different file to different blog.

1. To create a new configuration file : `obs2mk config --new configuration_name`
2. To use a configuration use : `--use configuration_name` For example : `obs2mk --use configuration_name`

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [March 8, 2022, 5:59am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/18 "2022-03-08T05:59:58Z")

</div>

Hello ! New update.  
Now the script will always pull the repo before anything.  
The `--G` options is active also on that.

In case of pull error, the script will warn you but continue to work !

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [March 18, 2022, 11:35pm UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/19 "2022-03-18T23:35:02Z")

</div>

Hello !  
Shiny new things : The script support the new callout / Admonition Microsoft’s Syntax.  
It also supports custom callout.

The script support custom admonition. For that, you first need to edit [custom\_attributes](https://github.com/Mara-Li/mkdocs_obsidian_template/blob/main/docs/assets/css/custom_attributes.css) with adding the support, as follow in [Admonition’s docs](https://squidfunk.github.io/mkdocs-material/reference/admonitions/#customization).  
For example, to add a `dictionnary` admonition:

```css
:root {
    --md-admonition-icon--dictionnary: url('data:image/svg+xml;charset=utf-8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 22a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-6v7L9.5 7.5 7 9V2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12z"/></svg>')
}
.md-typeset .admonition.dictionnary,
.md-typeset details.dictionnary {
  border-color: rgb(43, 155, 70);
}
.md-typeset .dictionnary > .admonition-title,
.md-typeset .dictionnary > .summary {
  background-color: rgba(43, 155, 70, 0.1);
  border-color: rgb(43, 155, 70);
}
.md-typeset .dictionnary > .admonition-title::before,
.md-typeset .dictionnary > summary::before {
  background-color: rgb(43, 155, 70);
  -webkit-mask-image: var(--md-admonition-icon--dictionnary);
          mask-image: var(--md-admonition-icon--dictionnary);

```

It will give you :

 ![](https://forum.obsidian.md/uploads/default/original/3X/4/a/4adc3a31e1bfde80678087cf83602982f059921b.png)

The `dictionnary` will be recognized, and converted!

---

<div class="post-metadata">

**Author:** ![Mara-Li](https://forum.obsidian.md/user_avatar/forum.obsidian.md/mara-li/32/12591_2.png) [@Mara-Li](https://forum.obsidian.md/u/Mara-Li)\
**Post date:** [March 20, 2022, 11:19am UTC](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540/20 "2022-03-20T11:19:02Z")

</div>

PSA for user of obs2mk, I updated the repository : now, template & script will live all together in a “big” repo, where I will store documentation, discussion and issue.

> **[GitHub - Mara-Li/obsidian\_mkdocs: Publish your obsidian vault through a...](https://github.com/Mara-Li/obsidian_mkdocs)**
>
> Publish your obsidian vault through a python script and mkdocs - GitHub - Mara-Li/obsidian\_mkdocs: Publish your obsidian vault through a python script and mkdocs

You can continue to copy the template here : [GitHub - Mara-Li/mkdocs\_obsidian\_template: The template for mkdocs-obsidian](https://github.com/Mara-Li/mkdocs_obsidian_template/)  
BUT the documentation and other will be on this repo.

[Next page](https://forum.obsidian.md/t/obsidian-mkdocs-publisher-a-free-publish-alternative/29540.md?page=2)
