Skip to content

Define variables in your note's properties and reuse them throughout your content.

License

Notifications You must be signed in to change notification settings

HamzaBenyazid/Live-variables

Repository files navigation

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

ezgif-1a239c104ea27c.mp4

🎬 What's New in v2?

Code Block Support

Code-block-demo.mov

Smart Query Engine

  • Build-in functions (SUM):
Sum-demo.mov
  • Custom JavaScript Quries:
    • Used Examples
      • A/B Testing Content
       () => {
         return Math.random() > 0.5 ? "New UI" : "Legacy UI";
       }
      • Dynamic Checklists
       (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:
custom-func-demo.mov
  • Custom Fucntion Library:
custom-func-library.mov
  • 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:

    • 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.
  2. Define Variables:

    • Open the note where you want to use variables.
    • In the note’s frontmatter (the YAML block), define your variables. Example:
      ---
      projectName: Obsidian Live Variables Plugin
      dueDate: 2024-12-31
      ---
  3. Insert Variables: You can insert variables using the following options:

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

    • 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:

demo.mp4

🤝 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.

About

Define variables in your note's properties and reuse them throughout your content.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published