release
v1.4.2 - 2024-08-11¶
2024-08-11 23:15:05
Bug fixes for blog slug and additional spaces around links and footnotes.
v1.4.1 - 2024-08-02¶
2024-08-02 23:14:08
It's just a very release that addresses update of mkdocs to v1.6.0, Material for MkDocs to v9.5.31 and minifier pluginexternal tools dependencies. All code changes are purely related to those updates.
v1.4.0 - 2024-07-17¶
2024-07-16 17:53:18
Finally, I'm able to tell that meta pluginhas some new features related to external linking and inner documents redirections. From now one, you can add a menu position that will be a linkto an external web page or add a file that will be just a redirectionto the other document.
There are also some bug fixes in the meta plugin related to publication status when using overview and for hidden pages. Now it should be working as intended. There are also small performance tweaks that can reduce generation time for bigger pages.
There is also a small update inside the social plugin for how titles are created titles are createdin social cards. So far, title was just created based on title
metadata, but in most cases other tools use a bit different approach. They create a title by joining title and site name, so it helps a bit a SEO stuff and site recognition (especially when there is no logo or site name in the image). From now one, this is a default behavior, but you have control over it have control over it.
In the very near future, there will be some big things happening to this project, like a new rewrite of the blog plugin, repository migration, documentation templates, project documentation reorganization and extension, the possibility to sponsor this project and insiders, etc. Stay tuned.
v1.3.1 - 2024-04-21¶
2024-04-21 14:43:10
It's a quick release related to bug fixes I have found when trying to update one of my own pages with v1.3.0. There is no new functionality here, only fixes related mostly to rewritten functionality of meta plugin. I definitely need to work on some additional E2E tests to cover some of the aspects because this functionality was fully covered with unit tests.
v1.3.0 - 2024-04-18¶
2024-04-18 13:43:10
It has been a long journey since the last release in October 2023. A lot has happened in my life that is not related to this project, so I didn't have too much time to work on it. But finally, there it is, v1.3.0.
Because I wanted to add an overview functionality that will unlock the possibility to use Folder Notes plugin for Obsidian, I had to rewrite almost the whole meta plugin. It was a good exercise because it allowed me to simplify the code and add unit tests, so it will be easier to maintain the plugin quality for a longer period of time.
While working on the meta plugin rewrite, I found that some backlinks are not working correctly. Fortunately, I was already working on the meta plugin where all the stuff related to links is living, so I made the fix during the rewrite.
As for unit tests for a whole project, it's just the beginning of the work. So far, I have "only" 179 tests, that covers about 38% of the whole project code. Delivering 100% test coverage will be a hard and time-consuming task, but I will try to raise the bar on each release.
There were also many smaller things added and/or changed inside a project tooling that will help me in the future to maintain good project quality and with new releases.
Unfortunately, I still didn't find much time to work on documentation extension and for preparing a template repository. I feel the need to do it, but those 2 tasks are connected, so probably both of them will be delivered at the same time.
As I'm writing this words, this project is waiting to be added to the mkdocs catalog that is a list of awesome MkDocs plugins. If you like this project, consider adding the star in project GitHub repository.
v1.2.0 - 2023-10-17¶
2023-10-17 16:16:39
This release adds some more control over minifierplugin by adding the following settings:
cache_enabled
- controls if cache is enabled both globally and per file type (cache is enabled by default),exclude
- list of files and/or directories that are excluded from minification both globally and per file type (by default list of exclusion is empty),extensions
- defines file extensions for each file type.
Exclusion file name pattern
exclude
setting allows defining exact match like some_file.jpg
or by pattern like some_jpg_files_in_dir/some*.jpg
. To match all subdirectories, you have to use **
as a pattern, for example match_all_files_in_subdirs/**/*
.
Use it with caution, since using this pattern can be time-consuming (more information can be found at this link).
The obsidianplugin, now supports:
- comments,
- MathJax - right now you need to configure it manually, in the future it will be done automatically when this plugin is enabled,
- mixed type lists - right now you need to configure it manually, in the future it will be done automatically when this plugin is enabled.
I have also added some issue templates on project repository, so if you find some issue or have a future request, fell free to report a new issue.
v1.1.1 - 2023.10.10¶
2023-10-09 09:28:53
This release is probably one of the most important ones for this project, but was also a bit problematic. You can ask why?
The biggest problem that I had, was about numbering this release. Because I wanted to bump all main dependencies (mainly Material for MkDocs) i found that one of the metadata key names was colliding with Material for MkDocs and leading to unexpected behavior. I had to change it and for that reason, I was wondering how to handle this event. From one point of view, this is somehow braking change and I should create a v2.0.0, but didn't feel like this is release is big enough. It doesn't include any new functionality and is focused on bug fixes and internal improvements.
Publication status key rename
Pub-metadocument or directory status metadata key has been renamed from status
to publish
. This change solves 2 problems:
-
Conflict of the key name with Material for MkDocs.
-
Default name of the key is now the same as for Obsidian publish.
If you want to use old key name, you can do it by changing key namein mkdocs.yml
file.
Thanks to @AgedLace who is right now the most active user and tester of this project, I managed to fix all the problems with links
(both wiki and Markdown syntax). There is much more to come in the area of Obsidian syntax support in the near future, like:
- comments - currently not supported,
- lists - supported partially (cannot mix ordered and unordered lists, etc.),
- page/note preview - currently not supported.
I will also create an entire section of the documentation related to Obsidian support (right now there is only a section on how to set it up), so stay turned.
Some of you are still waiting for documentation about auto publication using GitHub Actions and some template repository, but it's under development and not yet (fully) ready. If you know how GitHub Actions works, you can take a look at this repository file deploy pages workflow. It's used for building this documentation that is pushed into docs branch after build. In the future, I'm planning to create a GitHub Action that will do all of it as a single step.
Also, there was a lot of happening in the project backstage, like new linter, added unit tests (partly code coverage) and some other small tweaks etc. A lot more things will come in upcoming releases.
v1.1.0 - 2023-09-01¶
2023-09-01 11:50:56
Here I am with a new version of Publisher for MkDocs plugins. I have promised to make smaller releases, but my brain is refusing me to work on a small scale. It's really hard to achieve that, especially when I started to have some feedback from you, users of this tool. Because of that feedback and some problems you encountered, I decided to focus in this release on 2 main topics: some bug fixing and introducing a new plugin called pub-debugger. This plugin allows for an insight into all messages produced by plugins while building (or serving) a web page. Also, it's able to produce a ZIP file, with some basic information that could help me, whenever you will need to report an issue.
Privacy disclaimer
pub-debugger
plugin do not send any files over the internet, but if you want to use a Zip file as an attachment for an issue submission or share it with anybody, please make a review of the content of this archive file.
Please remember
It's your data and your responsibility what you are publishing over the internet. This plugin is only giving you the tool that should help, and you cannot blame me (the author of this plugin) for any potential data leaks.
There is also one very crucial topic related to this project name. When I shared information about Publisher for MkDocs over an official Obsidian.md community forum the developer of an Obsidian GitHub Publisher plugin provided me information that we have some conflict related to our plugins name. We were also spoken privately over Discord and came to some agreement related to our work. More information can be found in this thread, but in short:
- My set of MkDocs plugins will be called Publisher for MkDocs since my work is related to MkDocs with additional support for Obsidian as an IDE/text editor,
- Mara-Li Obsidian plugin will be called GitHub Publisher since her work is related to Obsidian with the possibility to use MkDocs as a beck-end for publication.
In the feature, some elements of this project could be part of Mara-Li work, but it's her decision. I will continue working on this project and help her with some potential issues solving.
I have also spent some time on unification of look the setup documentation. Previously, documentation was created a similar way as Material for MkDocs is doing it, but I decided to drop this approach and simplify it a little bit. Most of the work was around configuration options, that was too verbose. Currently, all configuration options related to given functionality are gathered in a single code block with their default values, so it's easier to copy it to yours mkdocs.yaml
file. As a result, all descriptions related to those options are placed below this code block, so it's easy to find the information about it. I hope it's now easier to navigate and understand all the configuration options.
A lot of you have been asking me about comparison to other tools and I have answered to them in this Reddit thread. I have a plan to gather all this information and create a separate document about this (and also to some credits to projects I get inspiration from), but simply didn't have time for that so far.
There were also some requests related to the publication process. I'm aware that this is the biggest lacking right now of this project that is supposed to be related to publishing, and I will definitely solve this soon. There is an upcoming update related to that as:
- GitHub template repository,
- Docker image,
- GitHub Action,
- documentation.
I don't promise that all of the above will be ready in the next release, but some of them will be for sure.
v1.0.0 - 2023-06-13¶
2023-05-19 15:40:36
This was quite a journey to make this release and push it to v1.0.0. So far, this whole documentation was created inside the Obsidian but since all the files are just a flat text file written using Markdown syntax, you were unable to see it. The reason for that was simple: integration with Obsidian was not "mature" enough to be presented. You can ask: "Why? Obsidian just uses the same Markdown syntax as MkDocs uses". The answer to that is not so obvious. The simple answer is just "yes", but the real answer is "not always". Obsidian introduces some additional syntax options like callouts (equivalent to Markdown admonitions) and WikiLinks for creating internal links. If you use them "as is" in MkDocs, you will see a pure (not parsed) text, not the intended one since MkDocs does not understand this syntax. To make it "understandable" for MkDocs, it has to be "translated" into regular Markdown syntax.
Translation is non-destructive
All markdown translations (or rather I should say conversions) are non-destructive to your Obsidian vault and occurs "on the fly" while static files are produced. It means that you can use this plugin side-by-side with Obsidian and use, for example, git repository as your vault backup. You don't have to copy or specially prepare your files before using this tool.
For that reason, a new plugin was created, that supports not only the mentioned Obsidian elements, but also some additional ones like:
- backlinks,
- callouts,
- wikilinks,
- vega charts (using Vega Visualization Plugin for Obsidian) - advanced solution for creating charts.
v0.5.0 - 2023-04-04¶
2023-04-04 21:26:12
Material for MkDocs has its own social cards plugin, but there are some limitations of it (or rather I should say, their implementation is limiting in some areas). The Material approach to social cards is to generate an image based on document information and requires changing the template manually to add those cards.
Publisher for MkDocs uses a different approach to social cards:
- you can set an image per document, but you have to create this image by yourself - it gives you a better control over how it looks like, so it can be more create than the one generated from the template,
- you don't have to change a document template because all the data related to social cards is injected into HTML code of the document while rendering it.
If you need support for additional plugins, please make an issue with a future description.
For more details about this release, read more below or jump directly to pub-socialplugin documentation.
v0.4.1 - 2023-03-28¶
2023-03-28 17:32:00
It's a quick fix for a small problem in v0.4.0.
v0.4.0 - 2023-03-28¶
2023-03-28 02:00:00
In this release, many things have happened, but the most important one is a project rename.
During a development, many ideas about further development came to my mind. I have created a backlog.
v0.3.0 - 2023.02.20¶
2023-02-20 22:00:00
This release was a quick fix for a wrong directory structure in site-packages
after package installation.
v0.2.0 - 2023-02-19¶
2023-02-20 19:00:00
The main focus in this release is around making it a valid python package that can be published and to adding some additional functionalities around retrieving additional information from frontmatter.
v0.1.0 - Initial release¶
2023-02-02 22:00:00
Another blogging plugin for MkDocs? But why?
The simplest answer is: because I couldn't find one good enough (and free).
The flip side of the same coin was that I wanted to migrate my personal blog related to testing (sorry only in Polish, but you can try to use Google translator) from Nikola that works quite well, but sometimes is overly complicated, has almost none search functionality and markdown files are not the default one (but it's possible to use them). Why does the Markdown format is so important? Because I love Obsidian as a tool for gathering knowledge, and this format is a crucial part of that tool.
At the time when this plugin was created, there was no free and good alternatives. The only one that could be good enough was hidden behind a paid wall and was a part of a theme Material for MkDocs. Some of the ideas for this plugin and functionalities came from documentation of the Material for MkDocs theme, Nikola and other plugins.