/meridian

A VSCode extension to parse, display and organise metadata in large Markdown knowledge bases

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Meridian

Meridian provides several VSCode Tree Views designed to enhance the experience of working with large Markdown knowledge bases. The long term aim is to bring functionality familiar from tools like Obsidian to VSCode.

This extension is currently under active development is primarily designed for personal use. It is not currently available via the Extension store but releases can be manually installed via the VSIX file.

Features

  • Filter workspace Markdown files by categories and tags
  • Display internal backlinks and outlinks for each project file

Usage

Meridian loops recursively through each non-ignored directory. It identifies Markdown files and creates an index of the links and metadata to produce four metadata Tree Views:

  • Categories
  • Tags
  • Inlinks
  • Outlinks

In order to generate the indices, each Markdown file should contain the following YAML frontmatter:

---
categories:
  - Category One
  - Category Two
tags: [first_tag, second_tag]
---

Outlinks and inlinks that point to other local Markdown files within the project are automatically extracted and parsed to populate their respective Tree Views.

To ensure accurate indexation path shorthands should not be used (e.g. projectname/subdir/file.md rather than ././file.md) however relative links are permitted.

Markdown file names

The listed names of the files that Meridian indexes are parsed from the file path. Currently, underscores are used as the delimiter. Thus A_file_name.md will be parsed as A file name but A file name.md will not. Custom delimeters will be added in future.

Future features

  • View the relationship between files, links and their associated metadata with an integrated network graph
  • Display a count of categories, tags, inlinks, outlinks
  • Use search input to filter the values in each TreeView

Configuration

Settings should be configured at the workspace level, not globally. E.g. within .vscode/settings.json for the given project.

ignoreDirs

Provide an array of subdirectories within the workspace that you do not want to be indexed.

Note node-modules and .git/ are automatically ignored.

{
   "meridian.ignoreDirs": ["dir-to-ignore"]
}

Screenshots