Let me dogfood this beast for a bit before you try to use it in anything you care about.
I anticipate that I'll be making heavy changes as I get a feel for what works and what doesn't in the near future
Caution
Seriously, do not use this! Until I ship a 1.0.0 release I reserve the right to change any thing at any time 😜
- @latest build version is: 0.9.9
- provide a remark plugin which will transform MDASTs that have Obsidian flavored features into a structured format.
- provide a script which will walk an Obsidian vault and index it
- provide a vault interface which exposes the following:
- a filetree representation of the vault items
- a lookup table organized by id for the vault items
- some utility methods for working with the vault items
-
==hilight text==
-
[[internal links]]
with roll-over previews -
[[internal link | with alias]]
-
[[internal link#heading-anchor]]
-
[[internal link#heading| alias]]
-
![[embed images]]
-
![[embedded markdown]]
-
![[embedded markdown#heading]]
-
[!callout] Title
- with
[!nested_callouts] Nested Callouts
- with
- should be able to set an
in
path - should be able to set an
out
path - should be able to override the default index name
- should be able to use a
.gitignore
file ask a mask - should know what
image files
are supported by the vault- (avif,bmp,gif,jpeg,jpg,png,svg,webp) per https://help.obsidian.md/file-formats
- should have a
version
which matches the npm package semantic version - should probably run under
node LTS
- (I'm currently on v23 😜)
-
VaultItems
should have the following meta:filepath
: (relative path from--in
to file)fileType
:file
orfolder
id
: a unique ID sha hash based on the filepathlabel
: the file's name recorded in the "obsidian" fashion- markdown file names are
filename
no extension - all other files are
filename.extension
- markdown file names are
mtimeMs
: last time the file was modified
-
VaultFileTree
nodes should havechildren
array of child nodesid
vault item hashlabel
the vault item label
-
VaultInterface
should havefiles
a record of vault items organized byid
fileTree
the generatedfiletree
idsByExtension
a lookup table of vault item ids by extension typeidsByLabelSlug
lookup table of vault item ids by sluggified vault labelsidsByWebPath
lookup table of vault item ids by "webPath"simageIds
a list of all the ids where the extension was a recognized obsidian image typestats
some stats about the vault
- Add basic test coverage
- dogfood this in another app and tweak accordingly
- Write some documentation / Getting started guides
- fix the bugs I didn't catch during the previous two rounds
- maybe include
semantic-release
so i don't have deal with it - add github deployment strat
- add support for
symlinks
- consider adding total vault filesize to stats
- consider the value of adding filesize for vaultItems vs increased index size
- MDX support?
- consider some
excusesideas for remark redirective usage