Skip to content

nikoasc/obsidian-js-engine-plugin

 
 

Repository files navigation

Obsidian JS Engine Plugin

This plugin for Obsidian allows you to run JavaScript from within your notes using special code blocks.

Usage

Start by creating a code block with js-engine as the code block language. Inside the code block you can write what ever JavaScript code that you want. The plugin will run the JavaScript and render the returned value in place of the code block.

## This is a Note in Obsidian

```js-engine
return engine.markdown.create('*test*');
```

API Docs

Docs are available here.

Examples

Markdown Builder

let markdownBuilder = engine.markdown.createBuilder();

markdownBuilder.createHeading(1, 'Test Heading lvl 1');
markdownBuilder.createHeading(2, 'Test Heading lvl 2');
markdownBuilder.createHeading(3, 'Test Heading lvl 3');
markdownBuilder.createHeading(4, 'Test Heading lvl 4');
markdownBuilder.createHeading(5, 'Test Heading lvl 5');
markdownBuilder.createHeading(6, 'Test Heading lvl 6');
markdownBuilder.createParagraph('This is a test paragraph.');
markdownBuilder.createParagraph('This is another test paragraph.');

return markdownBuilder;

Output

Test Heading lvl 1

Test Heading lvl 2

Test Heading lvl 3

Test Heading lvl 4

Test Heading lvl 5
Test Heading lvl 6

This is a test paragraph.

This is another test paragraph.

Rendering Strings as Markdown

let str = '*test*';
return str;
let str = '*test*';
return engine.markdown.create(str);

The top example renders the string as plain text and the second one renders the text as markdown.

Output

*test*

test

Importing JS

let lib = await engine.importJs('lib.js');
return lib.getGreeting();

With a file named lib.js in the root of the vault.

export function getGreeting() {
	return 'Hello!';
}

Output

Hello!

Packages

No packages published

Languages

  • TypeScript 85.3%
  • Svelte 9.4%
  • JavaScript 3.1%
  • CSS 2.2%