Converts different typed link formats in Markdown into each other and to external formats.
Project description
Semantic Markdown converter
Converts different typed link formats in Markdown into each other and to external formats. Designed for visualizing obsidian.md vaults using Neo4j bloom by importing the data into neo4j.
Getting started
Requires python 3.5+ and Neo4j desktop
- Install with
pip install --upgrade semantic-markdown-converter
- Create a new database in Neo4j desktop and start it
- Run
smdc --input "folder with notes" --password "neo4j database password"
WARNING: This clears all the data in the active neo4j database!
Supported input formats
There is currently only one input format supported. An issue or use a pull request for different formats are appreciated! In particular for different markdown syntax for interpreting semantic links.
Plain markdown with a rudimentary typed links format.
This collects all notes with extension .md in the input directory (default: markdown/
). Each note is interpreted as follows:
- Interprets tags as entity types
- Interprets YAML frontmatter as entity properties
- Interprets wikilinks as links with type
inline
, and adds content - Lines of the format
"- linkType [[note 1]], [[note 2|alias]]"
creates links with typelinkType
from the current note tonote 1
andnote 2
. - The name of the note is stored in the property
name
- The content of the note (everything except YAML frontmatter and typed links) is stored in the property
content
- Links to notes that do not exist yet are created without any types.
- The obsidian url is added as property
obsidian_url
Supported output formats
Neo4j
Streams the input into the currently active Neo4j database. WARNING: This clears all the data in your database by default! Run with --retaindb
if this is not desired.
- Start the database in Neo4j you want to use
- Run using
smdc --input "folder with notes" --password "neo4j database password"
. This can take a couple of minutes for large vaults.
CYPHER
Converts the input into a single .cypher file (default: out.cypher
) with statements that create nodes and relationships in Neo4j. This can be loaded in Neo4j desktop as follows:
- Run
smdc --input "folder with notes" --output_format "cypher"
- Create a new database
- Manage your database (three dots, manage)
- Plugins -> Install APOC
- Settings: Add line
apoc.import.file.enabled=true
- Open project folder, then copy
out.cypher
to the import folder within the project folder.
- Start database
- Open Neo4j browser
- Run
CALL apoc.cypher.runFile('out.cypher')
- Run
Importing with Cypher can take quite a while (multiple minutes). I'll look into alternative methods if people are interested.
Neo4j Bloom
A use case for this converter is to visualize your obsidian.md graph in Neo4j bloom. Neo4j bloom is very powerful graph visualization software. Compared to the Obsidian graph view, it allows
- Coloring and styling notes with different tags
- Coloring and styling relationships with different types
- Selective expansion
- A hierarchical view
- Very strong querying capabilities
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for semantic-markdown-converter-0.2.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d05c4f6f42e104b15c49b225c3a3d9d02882294d715d7985e30482b7ac92169b |
|
MD5 | 922afb37264b0feb24efe006d1bdcbb7 |
|
BLAKE2b-256 | aefb72d32c6417b7070a009b66e5669223e1ab3946e6f79955ec5ea9bf3a0d7c |
Hashes for semantic_markdown_converter-0.2.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7082447726cf86f55922db81b7f8fcfdffa8a69de2cb567a95142416ff926eb9 |
|
MD5 | 406b0c801c4bedc9f0c9d69217e9b040 |
|
BLAKE2b-256 | 093c2946930c94bf2688c1edb666cf71510992b31e9c813268a4a6acd635c96e |