MCPcopy Index your code
hub / github.com/HamzaBenyazid/Live-variables

github.com/HamzaBenyazid/Live-variables @2.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.1.1 ↗ · + Follow
162 symbols 365 edges 25 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Banner

v2.1.0 is out!

Downloads Downloads

Supercharge your notes with dynamic data! The Live Variables Plugin v2 revolutionizes how you manage information in Obsidian. Define variables once, reuse them everywhere, and watch your notes auto-update—now with powerful code blocks, smart queries, and an intuitive form interface.

Sponsor this project
Love this plugin? Help keep it alive! Sponsor development →

Your sponsorship helps: - Fund critical updates and bug fixes - Prioritize feature requests from sponsors - Keep the plugin free for everyone


Table of Contents

Features

What's New in v2.1.0?

What's New in v2?

Demo

Contributing

License


🚀 Features

  • Dynamic Variables: Define in frontmatter, update everywhere instantly.
  • Code Block Magic: Execute queries & transform data using code blocks.
  • Smart Query Engine:
  • Built-in functions
  • Custom JavaScript execution
  • Custom Function Library: Save frequent scripts (e.g., calculateTax) and call them by name!
  • Form Interface: Insert queries visually—no coding skills needed!
  • Cross-Note Sync: Share variables across your entire vault.

🆕 What's New in v2.1.0?

✏️ Inline Editing

Edit existing Live Variables references without reinserting them! Just place your cursor on any variable reference and run Live Variables: Query variables to modify it in-place.

🔦 Smart Highlighting

Instantly identify dynamic content with subtle highlights that: - Work in both light/dark modes - Preserve Markdown formatting (disables highlight when styling is present) - Help maintain visual hierarchy

This feature can be is enabled by default and can be disabled in the settings.

Formatting Awareness:
**boldVar** → No highlight to preserve bold style
plainVar → Highlighted for easy identification

🎥 Demo for two features

https://github.com/user-attachments/assets/c698453e-6e08-4793-b542-47fc39d9deeb


🎬 What's New in v2?

Code Block Support

https://github.com/user-attachments/assets/9e064696-f99a-4d9e-af4e-dc2f749ec569

Smart Query Engine

  • Build-in functions (SUM):

https://github.com/user-attachments/assets/a72f7e87-64ea-454b-ad91-10daff7588c9

  • Custom JavaScript Quries:
    • Used Examples
      • A/B Testing Content js () => { return Math.random() > 0.5 ? "New UI" : "Legacy UI"; }
      • Dynamic Checklists js (tasks) => { const done = tasks.filter(t => t.completed).length; const doneBar = '▣'.repeat(done); const undoneBar = '□'.repeat(tasks.length - done); const completionPercentage = Math.round((done / tasks.length) * 100); return doneBar + undoneBar + ' (' + completionPercentage +'% completed)'; }
    • Demo:

https://github.com/user-attachments/assets/979e4361-64b8-4d66-8f36-74d6fa1370df

  • Custom Fucntion Library:

https://github.com/user-attachments/assets/5affac22-1b86-4bf8-9993-15b9b023e4e8

  • User friendly form for inserting queries: The form adds the arguments input dynamically and allows you the prview values of each argument and the value of the resulting query. query-form

Getting Started

  1. Install the Plugin:
  2. Install directly from the Obsidian plugin marketplace, or manually download the latest release, unzip it, and place the folder in your vault's plugin directory. Enable the plugin in Obsidian’s settings.

  3. Define Variables:

  4. Open the note where you want to use variables.
  5. In the note’s frontmatter (the YAML block), define your variables. Example: yaml --- projectName: Obsidian Live Variables Plugin dueDate: 2024-12-31 ---

  6. Insert Variables: You can insert variables using the following options:

  7. Local Variables: Insert a variable defined within the current note by using the command: Live Variables: Insert local variable.
  8. Vault-Wide Variables: Insert a variable defined in any note within the vault by using the command: Live Variables: Insert variable from another note.
  9. Query variables: Insert a live code blocks, live custom js function and your saved function by using command: Live Variables: Query variables.

  10. Update Variables:

  11. Modify the value of a variable in the note’s properties, and all references to that variable across your vault will be updated instantly.

🎥 Demo

Check out this quick demo of all of plugin's features in action:

https://github.com/user-attachments/assets/70361e83-5b84-4029-a7e9-e0e640e216d1

🤝 Contributing

We welcome contributions! If you have suggestions for improvements or new features, feel free to open an issue or submit a pull request.

📜 License

This project is licensed under the MIT License.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 85
Method 41
Interface 25
Class 10
Enum 1

Languages

TypeScript100%

Modules by API surface

src/VaultProperties.ts24 symbols
src/utils.ts21 symbols
src/VariableQueryParser.ts16 symbols
src/components/QueryJsFunc.tsx15 symbols
src/components/obsidian-components/Setting.tsx11 symbols
src/main.ts10 symbols
src/property-selection-modal.ts9 symbols
src/components/QueryModalReactForm.tsx9 symbols
src/components/QueryCodeBlock.tsx9 symbols
src/components/QueryPredefinedSum.tsx7 symbols
src/LiveVariablesSettings.tsx7 symbols
src/components/LiveVariableReactSettingTab.tsx5 symbols

For agents

$ claude mcp add Live-variables \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page