Tescade

approved

by xoyowiz

Recursively resolves Obsidian wikilinks into a standalone Markdown file. - This plugin has not been manually reviewed by Obsidian staff.

35 downloadsUpdated 23d ago0BSD

Tescade

Tescade is a tiny Obsidian plugin for recursively resolving wikilinks into a standalone Markdown file.

It treats [[wikilinks]] as instructions to insert the contents of the referenced note at that exact location.

How it works

Given a note:

This is the main note.

[[Another Note]]

This is the end.

where Another Note.md contains:

This comes from another note.

[[Third Note]]

and Third Note.md contains:

This comes from the third note.

Tescade produces:

Main Note-resolved.md

containing:

This is the main note.

This comes from another note.

This comes from the third note.

This is the end.

The original notes are not modified.

Usage

Open the Markdown note you want to resolve.

From the Obsidian Command Palette, run:

Tescade: Resolve file

Tescade recursively follows the note's wikilinks and creates a -resolved.md file next to the original.

For example:

My Document.md
My Document-resolved.md

Recursive resolution

Wikilinks are resolved recursively.

A
└── [[B]]
    └── [[C]]
        └── [[D]]

Resolving A inserts the contents of B, C, and D into the resulting document.

Circular links

Tescade detects circular references and stops with an error instead of recursively processing the same files forever.

For example:

A → B → C → A

will be reported as a circular link.

Missing files

If a wikilink cannot be resolved to a file in the vault, Tescade reports an error rather than silently omitting the link.

Design

Tescade is intentionally simple.

Its purpose is to provide a straightforward Markdown composition mechanism:

[[Note]]

becomes:

contents of Note

and this process continues recursively.

The resolved file is a generated artifact; the source notes remain unchanged.

Installation

Manual installation

Build the plugin and copy the plugin directory into:

YourVault/.obsidian/plugins/tescade/

The directory must contain at least:

tescade/
├── main.js
└── manifest.json

Then enable Tescade under:

Settings → Community plugins → Installed plugins

Development

Install dependencies:

npm install

Run the development build:

npm run dev

This watches the source files and rebuilds main.js whenever they change.

For a production build:

npm run build

Non-goals

Tescade is not intended to be a general-purpose publishing or export system.

It does not attempt to provide:

  • templates
  • variables
  • scripting
  • conditionals
  • loops
  • macros
  • document formatting
  • graph-based export configuration

Its purpose is simply recursive text composition through Obsidian wikilinks.

DISCLAIMERS

LLM assistance: Portions of the code and accompanying documentation were formatted, refined, or partially generated with the assistance of a large language model (LLM). The resulting code was reviewed and tested by the author, but LLM assistance was used as part of the development process.

Project scope: As of the current version (1.0.0), no further features are intended to be added to Tescade. The project is deliberately kept small and focused on its core purpose of recursively resolving Obsidian wikilinks into standalone Markdown files.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.