Orgmode (CM6)

by Benoit Bazard
5
4
3
2
1
Score: 60/100

Description

The Orgmode (CM6) plugin brings the power of Orgmode, a popular plain-text document format, to Obsidian. It supports features like live preview, syntax highlighting, and customizable TODO keywords, making it ideal for task management and structured note-taking. Users can fold sections, use wiki-style links, display inline images, and integrate IDs between files. The plugin also supports source code blocks with syntax highlighting for multiple programming languages. Orgmode's advanced syntax is partially implemented, including headings, property drawers, and planning lines, enhancing the Obsidian experience for users familiar with Orgmode.

Reviews

No reviews yet.

Stats

130
stars
6,694
downloads
3
forks
821
days
65
days
65
days
1
total PRs
0
open PRs
0
closed PRs
1
merged PRs
15
total issues
3
open issues
12
closed issues
128
commits

Latest Version

2 months ago

Changelog

Dynamic blocks

  • Implement dynamic blocks that execute custom javascript functions.

Example of displaying the date with a dynamic block in an orgmode file:

#+BEGIN: getDate
#+END:

Rendered:

The function needs to be defined in the javascript definition file:

function getDate() {
  return new Date().toISOString()
}
  • New plugin setting "Dynamic block javascript definition file"

README file from

Github

Obsidian Orgmode CM6

Orgmode for Obsidian.

Screenshot

Usage

By default org files are not shown in the sidebar. To display them you need to go into the obsidian settings, section Files and links and check Detect all file extensions.

detect-all-file-extensions

To create an org file in your vault, you currently have to create it outside obsidian, as obsidian doesn't allow to create a non-markdown file.

If you don't already have an org file, try to create a file called todo.org with the following content:

* TODO [#A] A task with *high* priority

The description of the task

* A collapsed section

You cannot see the description when collapsed

* DONE something done already :sometag:
SCHEDULED: <2023-12-08 Fri 11:13>
:PROPERTIES:
:CREATED: [2023-12-03 Sun 10:48]
:END:

a [[https://github.com/BBazard/obsidian-orgmode-cm6][link]]

#+begin_src javascript
const block = "highlighted"
#+end_src

Supported features

Orgmode Editor

  • Live Preview
  • Syntax highlighting (with overridable css classes)
  • Customizable Todo Keywords in settings
  • Folding (click in the gutter on the first line of the element to fold it)
  • Wiki links ([[unicorn]] will open the file unicorn.org anywhere in the vault or fallback to unicorn.md)
  • Inline images ([[myimage.png]] will display the image if it exists in the vault)
  • ID links ([[id:12345]] will redirect to the heading with the matching :ID: in a property drawer located in any org file in the vault)
  • Vim support (if activated in Obsidian)
  • Source blocks highlighting (supported: c, c++, css, html, java, javascript, json, php, python, rust, sass, xml)

Orgmode Parser (syntax highlighting)

Following Org Syntax

  • Heading (nested, no support for COMMENT heading)
  • Section (including zeroth section)
  • Text markup (bold, italic, underline, etc...)
  • Link (regular link, angle link, plain link)
  • Combination of markup and link
  • Comment line
  • Keyword line
  • Planning line
  • Property Drawer
  • Lesser Block (unformatted except source blocks)
  • Dynamic Block (see the dedicated section further down this readme)
  • Drawer
  • List and Checkbox
  • Horizontal rule
  • Timestamp
  • Clock
  • Diary Sexp
  • Footnote
  • Table
  • Latex
  • : Fixed-width line (you can use a Block instead)

Implementation details

  • The orgmode files are handled with a codemirror 6 instance which is separate from the one used by the markdown files. That means the plugin has to re-implement all features working for markdown files.

  • The parser reads an orgmode file and builds a tree of syntax nodes by using a lezer grammar with custom tokenizers. This approach allows to match tokens more precisely than the regex-based approach of Emacs. For example, planning lines are only matched after a heading and not in the middle of a section.

  • Overlapping tokens are not considered valid. Take for example: *one _two three* four_. Emacs, using regexes would have *one _two three* as bold and _two three* four_ as underline. The lezer parser is instead considering *one _two three* as bold and four_ as normal text, it makes it possible to have the text markup range as its own syntax node.

  • There is no limits to the level of headings (so no Inlinetask) or the number of lines of a text markup.

Dynamic Blocks

Dynamic blocks call a user-defined function and show the function output.

Only javascript functions without parameters are supported currently.

Example of displaying the date with a dynamic block in an orgmode file:

#+BEGIN: getDate
#+END:

The function needs to be defined in the javascript definition file:

function getDate() {
  return new Date().toISOString()
}

The javascript definition file is a file in your vault that contains the functions you can call from dynamic blocks. Its filepath must be specified in the plugin settings.

The content of your orgmode files are never modified by the execution of dynamic blocks.

Show orgmode tasks in markdown files

This feature is unstable and will likely change in breaking ways in the future.

Currently only TODO and DONE are handled.

https://github.com/BBazard/obsidian-orgmode-cm6/assets/10139245/b071b2c8-b56e-4050-8fcf-02a922fdd1c0

To filter, orgzly search expression are supported (implemented: s, d, c, i, it).

filepath: Orgmode/Orgmode file.org
query: it.todo or it.done

Development

git clone https://github.com/bbazard/obsidian-orgmode-cm6
cd obsidian-orgmode-cm6
npm install
npm run build
npm test
cp main.js styles.css manifest.json "$OBSIDIAN_VAULT"/.obsidian/plugins/obsidian-orgmode-cm6/

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Homepage
5 years ago by mirnovov
An Obsidian plugin that opens a specified note, canvas, or workspace on startup, instead of the most recent one.
Natural Language Dates
6 years ago by Argentina Ortega Sainz
Work with dates in natural language in Obsidian
TODO | Text-based GTD
5 years ago by Lars Lockefeer
Digital Garden
4 years ago by Ole Eskild Steensen
Editor Width Slider
3 years ago by @MugishoMp
With this plugin you can set the line width of the editor in obsidian.
CSS Editor
3 years ago by Zachatoo
Edit CSS snippets in Obsidian.
Big Calendar
4 years ago by Boninall
Big Calendar in Obsidian, for manage your events in a day/week/month and see agenda too!
Smart Second Brain
2 years ago by Leo310, nicobrauchtgit
An Obsidian plugin to interact with your privacy focused AI-Assistant making your second brain even smarter!
Sheets Extended
3 years ago by NicoNekoru
Plugin that adds features to tables in obsidian including merging, vertical headers, and custom css
Handwritten Notes
3 years ago by FBarrCa
Obsidian Handwritten Notes Plugin
Epub Importer
2 years ago by aoout
Import EPUB files as Markdown.
Archiver
5 years ago by ivan-lednev
Archive completed tasks in your Obsidian vault (plus other org-mode-like features)
SystemSculpt AI
2 years ago by SystemSculpt.com
Enhance your Obsidian App experience with AI-powered tools for note-taking, task management, and much, MUCH more.
Day Planner (OG)
3 years ago by James Lynch (continued by Erin Schnabel)
An Obsidian plugin for day planning and managing pomodoro timers from a markdown task list.
Task List Kanban
2 years ago by Chris Kerr
Dynamic Outline
a year ago by theopavlove
Adds a customizable GitHub-like floating table of contents to Obsidian.
Simple RSS
3 years ago by Monnierant
Shiki Highlighter
2 years ago by Moritz Jung
An Obsidian plugin that offers better code highlighting via shiki and Expressive Code.
File path to URI
5 years ago by Michal Bureš
Convert file path to uri for easier use of links to local files outside of Obsidian
Obsidian Google Tasks
4 years ago by YukiGasai
Add Google Tasks inside Obsidian
Natural Language Syntax Highlighting
3 years ago by artisticat
Highlight adjectives, nouns, adverbs, verbs, and conjunctions in Obsidian.md
Vault Changelog
5 years ago by Badr Bouslikhin
An Obsidian plugin to maintain a changelog of recently edited notes
Dangling links
5 years ago by Graydon Hoare
obsidian plugin for displaying dangling links
Quiz Generator
2 years ago by Edward Cui
Generate interactive flashcards from your notes using models from OpenAI (ChatGPT), Google (Gemini), Ollama (local LLMs), and more. Or manually create your own to use with the quiz UI.
Marp
3 years ago by JichouP
Plugin to use Marp with Obsidian
Trello
5 years ago by Nathonius
An Obsidian Plugin that connects Trello cards to Obsidian notes.
Checklist Reset
3 years ago by Luke Hansford
Add a command to reset the state of any checklists in a document in Obsidian
PDF break page
2 years ago by CG
Plugin for obsidian that adding shortcuts to create breakpages for pdf exports.
Fountain Editor
3 years ago by Chuang Caleb
Obsidian plugin for Fountain screenplay syntax formatting.
Uncheck All
3 years ago by Shahar Har-Shuv
Obsidian plugin to uncheck all checkboxes in a file with one action
Carry-Forward
5 years ago by Jacob Levernier
An Obsidian Notes plugin for generating and copying block IDs, and copying lines with a link to the copied line
Task Marker
3 years ago by wenlzhang
An Obsidian plugin to change task status and append text with hotkeys and right-click context menu.
Org Mode
5 years ago by ryanpcmcquen
Add Org Mode support to Obsidian.
iCal
2 years ago by Andrew Brereton
This is a plugin for Obsidian that searches your vault for tasks that contain dates, and generates a calendar in iCal format that can be imported into your preferred calendar application.
Copy Image
2 years ago by Felipe D.S. Lima
Easily copy image to clipboard by right clicking image.
Morgen Tasks
2 years ago by Morgen AG
Timekeep
2 years ago by Jacobtread
Obsidian task time tracking
Improved Random Note
3 years ago by ShockThunder
TodoTxt
3 years ago by Mark Grimes
Obsidian plugin to manage todotxt files
Better Math in Callouts & Blockquotes
2 years ago by Ryota Ushio
An Obsidian plugin to add better Live Preview support for math rendering inside callouts & blockquotes.
Kanban Bases View
2 months ago by I. Welch Canavan
A kanban-style drag-and-drop custom view for Bases.
Agile Task Notes
4 years ago by BoxThatBeat
This Obsidian plugin integrates your TFS data from either Jira or Azure Devops
Week Planner
4 years ago by Ralf Wirdemann
Dynamic Timetable
3 years ago by L7Cy
Calculate the estimated completion time from the estimated task time and dynamically create a timetable.
Metadata Hider
2 years ago by Benature
Hide metadata property if its value is empty
MLIR Syntax Highlight
3 years ago by Lewuathe
Nifty Links
3 years ago by x-Ai
Generating elegant, Notion-styled rich link cards to enhance your note-taking experience.
Ego Rock
2 years ago by Ashton Eby
An obsidian plugin that implements a basic taskwarrior UI for listing and modifying tasks.
TickTick
3 years ago by Viduy Cheung
Pending notes
3 years ago by Ulises Santana
Obsidian plugin for searching links without notes in your vault.
Habitica Sync
5 years ago by Leoh and Ran
This is a under-development Obsidian Plugin for Habitica
Obsidian-compatible Watcher for ActivityWatch
3 years ago by Grimmauld
Obsidian plugin to track user activity with ActivityWatch
No more flickering inline math
3 years ago by Ryota Ushio
No longer disturbed by flickering inline math in Obsidian.
Todoist Project sync
2 years ago by Jonas Dam
Ace Code Editor
a year ago by RavenHogWarts
An enhanced code editor using Ace editor
Checkbox 3 states
4 years ago by Renaud Héluin @ NovaGaïa
This is a simple plugin for add a third state to checkbox list.
Rendered Block Link Suggestions
2 years ago by Ryota Ushio
Upgrade Obsidian's built-in link suggestions with block markdown rendering.
Things Link
4 years ago by @gavmn
Quoth
4 years ago by Eric Rykwalder
Homework Manager
3 years ago by Kadison McLellan
An Obsidian plugin that keeps track of homework through a to-do list.
Single File Daily Notes
2 years ago by Pranav Mangal
An Obsidian plugin to create and manage daily notes in a single file
Grind Manager
2 years ago by dromse
Gamify your task management with rewards system, craft your tasks by tags.
Smart Links
3 years ago by David Lynch
Multi State CheckBox Switcher
2 years ago by KubaMiszcz
Kindle Highlights Importer
2 years ago by MovingMillennial
Custom State for Task List
3 years ago by Okami Wong
A plugin for Obsidian to define your own states for task items.
ProgressTracker
a year ago by Van Nam
A plugin that helps you track progress and manage tasks in your notes.
Flashcard Generator
3 years ago by ChloeDia
Obsidian Plug-in to automatically create a set of questions/answers on your notes !
Broken Links
2 years ago by ipshing
Vault 2 Book
3 years ago by Mitra98t
Obsidian plugin to convert vault to a complete pdf with Table Of Content
SamePage
3 years ago by SamePage
File Include
3 years ago by Till Hoffmann
Progress Clocks
2 years ago by Nathan Clark
Progress clocks and other useful widgets for https://obsidian.md/.
Prioritize
3 years ago by EloiMusk
Obsidian Plugin, to prioritize stuff in Obsidian
Brainframe
3 years ago by pedersen
InlineCodeHighlight
3 years ago by Dimava
Code Block Labels
4 years ago by Sean Bowers
Provides labels for codeblocks in Obsidian
Random To-Do
5 years ago by NatiAris
Pick a random todo item or a file with todo items
Amazing Marvin
5 years ago by Shirayuki Nekomata
Simple plugin for Amazing Marvin
TinyPNG Image
3 years ago by ckt1031
Obsidian plugin for compressing images with TinyPNG
Exercises
3 years ago by AlexCCavaco
Create Interactive Exercises along side your Obsidian Notes
Flow
2 years ago by Ben Phillips
Implements key processes in David Allen's Getting Things Done (GTD) methodology
GTD No Next Step
3 years ago by Tobias Davis
Obsidian plugin for GTD workflow, badge projects with no next step.
Frontmatter generator
3 years ago by Hananoshika Yomaru
A plugin for Obsidian that generates frontmatter for notes
File indicators
2 years ago by Jakob
Add custom indicators to the file explorer.
Order List
3 years ago by Henry Gustafson
Send to Canvas
10 months ago by wenlzhang
An Obsidian plugin that allows you to send tasks, blocks, and notes to Canvas files as plain text, links, and embeds.
Publish to Steemit
4 years ago by anpigon
Post directly to your Steemit from Obsidian.
Custom Theme Studio
7 months ago by @gapmiss
An Obsidian.md plugin to create and tweak custom themes with live CSS editing, element styling, and instant previews. All without leaving Obsidian.
BuJo Bullets
a year ago by Will Olson
Alternate checkbox types for Obsidian to support Bullet Journal bullets
Due When
3 years ago by Andy Baxter
An Obsidian plugin which gives shortcuts to insert set due dates
Image Classify Paste
2 years ago by tianfx
TODO Wrangler
3 years ago by Jeel Shah
An obsidian plugin to wrangle your Todos and put them in their place.
File Publisher
3 years ago by Devin Sackett
Edit MDX
2 years ago by Tim Peters
Create and edit mdx files in Obsidian.md as if they were md files.
Memos Sync
2 years ago by RyoJerryYu
Syncing Memos to Obsidian daily note. Fully compatible with official Daily Notes plugin, Calendar plugin and Periodic Notes plugin.
Codeblock Template
3 years ago by Super10
A template plugin that allows for the reuse of content within Code Blocks!一个可以把Code Block的内容重复利用模板插件!
Another Simple Todoist Sync
2 years ago by eudennis
Obsidian.md plugin to integrate with Todoist app.
Pivotal Tracker Integration
3 years ago by jondeates
Edit mode switch
2 years ago by Mara-Li
Add a button in file header to switch between LP & Source while editing
Feeds
2 years ago by LukeMT, pashashocky, madx
Magic feeds dataview query for obsidian
File Index
2 years ago by Steffo
Obsidian plugin to create a metadata file about the files present in the Vault
Checkbox Sounds
2 years ago by yasd251
Adds a nice completion sound for checkboxes when ticked in Obsidian
Random Number Generator
2 years ago by iRewiewer
Gives you a random number
Barcode Generator
2 years ago by noxonad
A barcode generator for obsidian.
Pomodoro Planner
2 years ago by Onur Nesvat
Filtered Opener
2 years ago by Roman Kubiv
Sets of notes defined by filters to open notes.
Git File Explorer
2 years ago by Mateus Molina
Checkbox Time Tracker
2 years ago by UD
Checkbox Time Tracker for Obsidian
Task list
2 years ago by Ted Marozzi
A simple obsidian plugin enabling better task management via lists.
RSS Copyist
2 years ago by aoout
Get the RSS articles as notes.
Things3 Today
2 years ago by wudanyang6
Track-a-Lot
2 years ago by Iulian Onofrei
This is a tracker plugin for Obsidian
Sort Frontmatter
2 years ago by Kanzi
Sort frontmatter automatically
LaTeX-OCR
2 years ago by Jack Barker
KoReader Highlight Importer
a year ago by Tahsin Kocaman
Imports highlights and metadata from KoReader into Obsidian notes
Amazing Marvin Integration
2 years ago by Cloud Atlas
Interoperability between Obsidian and Amazing Marvin
Simple Todo
a year ago by elliotxx
A minimalist text-based todo manager (Text-Based GTD) for efficient task management in Obsidian.
Adjacency Matrix Exporter
2 years ago by danielegrazzini
Create a numerical adjacency matrix of your Vault in two ways: Absolute and Normalized
short tab name
2 years ago by Shumpei Tanaka
a plugin of obsidian for to change showing tab name to short
Page Scroll
2 years ago by triski
Obsidian Page Up|Down|Top|Bottom
Personal OS
2 years ago by A.Buot
Livecodes Playground
2 years ago by @gapmiss
Open-source client-side code editor plugin for Obsidian.md - powered by LiveCodes.io
Goal Tracker
a year ago by Ben Rotholtz
Dynamic Text Concealer
2 years ago by Matt Cole Anderson
Obsidian.md Plugin to conceal or replace user configured text patterns in Live Preview and Read Mode.
Blockreffer
2 years ago by tyler.earth
An Obsidian plugin to search and embed blocks with ^block-references (aka ^block-ids)
Sidebar Resizer
2 years ago by Jeet Sukumaran
Magic Move
2 years ago by imfenghuang
Animating Code Blocks in Obsidian
ai-writer
2 years ago by Donovan Ye
A plugin for Obsidian that uses AI to help you write better and faster.
YAML Table
a year ago by dainakai
Fight Note
2 years ago by Dmitry Loac
Obsidian Plugin for shows Tekken notation into an easy-to-read form.
Focus Tracker
2 years ago by Jeet Sukumaran
Svelte Syntax Highlighter
2 years ago by Typhoon-Kim
This plugin adds Svelte syntax highlighting to Obsidian.
Link to Verse
2 years ago by Alberto Sesiliano (aygjiay)
Asana
a year ago by Ryan Bantz
Obsidan plugin that creates tasks in Asana for highlighted text or the current line
Mode manager
a year ago by dk949
Better management of reading/editing modes in obsidian
Update Time Updater
2 years ago by MURATAGAWA Kei
Obsidian plugin to update the 'update time' element when saving or manually.
Custom Syntax Highlights
6 months ago by Outsiders17711
Display files with custom extensions as syntax-highlighted code blocks in reading view with configurable extension-to-language mappings.
Rapid AI
2 years ago by Rapid AI
AI Assistant for selected text and generating content with Markdown. Shortcuts and quick action buttons provide instant AI assistance. It provides a high availability API for unlimited Chat GPT request rates, so you can ensure smooth work for any workload.
Vikunja Sync
2 years ago by Peter Heiss
Manage your tasks in vikunja.
doing
2 years ago by rooyca
What was I doing?
Kikijiki Habit Tracker
a year ago by KIKIJIKI
Kikijiki Habit Tracker Plugin for Obsidian
Truth Table+
2 years ago by Maximilian Schulten
This is the repository of an Obsidian.md plugin that allows users to create truth tables via the command palette.
Adapt to Current View
7 months ago by greetclammy
Obsidian plugin to set different accent colors for Reading view, Live Preview and Source view.
Browser Interface
2 years ago by Jason Lieb
An obsidian plugin that pairs with a chrome extension to manage your tabs in obsidian.
Pia viewer
2 years ago by dldisud
Inline Code Copy
a year ago by Hongchen Lin
Epiphany
2 years ago by Epiphany
URI Converter
a year ago by wenlzhang
An Obsidian plugin to convert Obsidian URIs to Obsidian internal links.
Header Counter
2 years ago by Nancy Lee
Better Link Clicker
4 months ago by Eniverz
An Obsidian plugin that modifies the default link click event.
Click Hint
a year ago by kbwo
Code Blocks commands
8 months ago by dragonish
Provide commands to insert code blocks with markup, and support triggering commands with backticks.
ShaahMaat-md
a year ago by Mihail Kovachev
Share via Notepad Tab
2 years ago by Iulian Onofrei
Replicate
a year ago by Sébastien Dubois
Integrate Replicate.com with Obsidian
Note Placeholder
a year ago by XZSt4nce
Replaces text of note link to placeholder in view mode.
Negative Heading
2 months ago by Ashan Devine
Render Discord-style "-#" lines as compact headings in reading view and the editor.
Pivotal Tracker URL Helper
2 years ago by kndshein
Pivotral Tracker URL prettifier for Obsidian