⚠️Early Alpha — Org-press is experimental. Perfect for hackers and tinkerers, not ready for production. Documentation may be incomplete or inaccurate.

JavaScript API

Parsing

import { parseOrgContent } from "org-press";

const parsed = await parseOrgContent(orgSource, {
  orgFilePath: "content/page.org",
  plugins: [],
  config: {},
});

// Access AST
console.log(parsed.ast);

// Access metadata
console.log(parsed.metadata.title);

Rendering

import { renderOrg, renderWithLayout } from "org-press";

// Render to HTML string
const result = await renderOrg(parsed.ast, {
  base: "/",
  metadata: parsed.metadata,
});

console.log(result.html);
console.log(result.toc); // Table of contents

// Render with layout component
const fullHtml = await renderWithLayout({
  ast: parsed.ast,
  context: { base: "/", metadata: parsed.metadata },
  Layout: MyLayoutComponent,
});

Configuration

import { loadConfig, loadPlugins } from "org-press";

const config = await loadConfig(".org-press/config.ts");
const { plugins } = await loadPlugins(config);

Content Helpers

Available in server blocks:

// In :use server blocks
const pages = await content.getContentPages();
const html = await content.renderPageList(pages);

Types

import type {
  OrgPressConfig,
  BlockPlugin,
  PageMetadata,
  RenderResult,
  TocItem,
} from "org-press";