/orgajs

parse org-mode content into AST

Primary LanguageTypeScriptMIT LicenseMIT

Orga

What Is It

Orga is a flexible org-mode syntax parser. It parses org content into AST (Abstract Syntax Tree 🌲). And it’s written in JavaScript.

Why

org-mode is simply a superior format than other more popular ones, but it’s mostly trapped inside of emacs. It’s so good that it was the #1 reason to learn and use emacs for a lot of people (me included). But it’s too good to not share with the rest of the world. If it can run in JavaScript, it can run on anything.

Compatible Eco-systems

It integrates natively with popular tools.

☔️ interface for parsing, inspecting, transforming, and serializing content through syntax trees

The orga parser is completely compatible with unified. Which means you get to take advantage of the works of others put into the pipeline. linting for natural language, correct your writing, write music? etc. Here is an example.

@orgajs/loader is a webpack loader that made orga native citizen of webpack ecosystem. Coupled with plugins, it works smoothly. Take a look at the example project.

A JavaScript library for building user interfaces

You can render react components directly in your org file. Something like this:

* Hello World

Let's render *the box*.

#+begin_export jsx
<div style={{
  backgroundColor: 'gold',
  padding: '1em',
  border: '1px solid black',
  boxShadow: '5px 5px'
}}>I am a box with shadow</div>
#+end_export

Try it our yourself in the playground.

Build blazing fast, modern apps and websites with React

gatsby-plugin-orga is a powerful plugin that plug org-mode into gatsby system. This website is built with gatsby and gatsby-theme-orga-docs theme. Here is a minimal example project.

The React Framework

Because orga is native to webpack, it’s fairly simply to intergrate with nextjs. Example project.

Examples

Take a look at the collection of examples to quickly get started.

Contribute

See the contributing file for ways to get started.