In order to implement full support for other file formats by third-party developers, the obsidian API lacks several features:
The ability to register links to other pages from non-markdown pages (it will be useful for custom plugins with support for new formats, such as asciidoc)
Display new registered file types in the graph view
The ability to create and manage text file extensions, which will be searchable globally.
I think this would be a game changer for Obsidian. There is no app nearly as good as Obsidian that understands AsciiDoc, a format which I think is significantly better than markdown. If Obsidian were able to acquire (through community plugin development) new file formats in a near-native way, it would open up so many more ways for the app to dominate.
+1, Asciidoctor is far more consistent and functional than Markdown, but has all the same benefits of plaintext formatting. Obsidian would gain a boon for right output right from the platform with features Markdown cannot accommodate like numbered sections, document attributes, include files, and more.
TLDR: I think most of these features could be very easily implemented by the Obsidian team.
Long version:
There are private object called metadataCache that already can be used by plugins. This object contains information about links between the pages and internal document structure. This object is used by backlinks and outgouing links plugins.
One major issue is that obsidian codebase internally uses many hardcoded checks for current file extension, i.e. lines similar to
```
if (path.extension == ‘md’)
doSomething()
```
So even if any thrid party plugin fills metadataCache correctly for new file formats, GUI still wont draw any info because of that checks.
To ensure that this is true assumption
I extracted original app.js and rebuilt obsidian.asar file with my patced version. This version extends ‘md’ file extension checks to support new file formats. I.e. lines similar to:
```
if ([‘md’, ‘adoc’, ‘asciidoc’].includes(path.extension))
doSomething();
```
Even these stupid changes were enough for all system plugins to start working correctly with asciidoc.
Below is a gif with a demo version, which allows you to make sure that the search, outgoing links and backlinks are working, as well as a plug-in for displaying the graph. Sadly I can’t implement this without patching some anonymous functions inside obsidian app.js, so I doubt there is a possibility to implement this from plugins.
I understand that obsidian creators is not interested in new formats support. That is understandable because every new format doubles their efforts to support current codebase and and slows down implementation of various new cool features. But I will hope someday there will be a public or non-public API in order to solve this problem).
I’m not. AsciiDoc may be vastly superior to Markdown, but it’s nowhere near as popular. Markdown might as well be the default text format at this point.
Working with obsidian is a constant struggle against markdown’s inherent limitations, and the awkward workarounds therein. It would be nice to have a better thought-out format available.