All Projects → tecosaur → OrgMode.jl

tecosaur / OrgMode.jl

Licence: MIT license
A Julia library for working with Org.

Programming Languages

julia
2034 projects

Labels

Projects that are alternatives of or similar to OrgMode.jl

my-emacs
My Emacs configuration
Stars: ✭ 35 (-32.69%)
Mutual labels:  org-mode
nast
A block-based intermediate representation for document-like content.
Stars: ✭ 35 (-32.69%)
Mutual labels:  org-mode
yeonghoey
A personal knowledge base
Stars: ✭ 13 (-75%)
Mutual labels:  org-mode
agenda
Org agenda in the console
Stars: ✭ 112 (+115.38%)
Mutual labels:  org-mode
idle-org-agenda
A package that shows your agenda when Emacs is idle
Stars: ✭ 40 (-23.08%)
Mutual labels:  org-mode
ox-ssh
SSH config export for org-mode
Stars: ✭ 33 (-36.54%)
Mutual labels:  org-mode
dotfiles
My dotfiles - Emacs centric OSX Big Sur
Stars: ✭ 29 (-44.23%)
Mutual labels:  org-mode
org-roam-ui
A graphical frontend for exploring your org-roam Zettelkasten
Stars: ✭ 1,393 (+2578.85%)
Mutual labels:  org-mode
vscode-text-tables
VSCode extension that brings the power of Emacs table editing
Stars: ✭ 36 (-30.77%)
Mutual labels:  org-mode
org-sync-snippets
Simple extension to export snippets to org-mode and vice versa
Stars: ✭ 14 (-73.08%)
Mutual labels:  org-mode
org-table-sticky-header
Sticky header for org-mode tables
Stars: ✭ 31 (-40.38%)
Mutual labels:  org-mode
uniorg
An accurate Org-mode parser
Stars: ✭ 190 (+265.38%)
Mutual labels:  org-mode
ob-elixir
org-babel functions for elixir evaluation
Stars: ✭ 24 (-53.85%)
Mutual labels:  org-mode
this-month-in-org
A monthly blog on developments with Org
Stars: ✭ 40 (-23.08%)
Mutual labels:  org-mode
nroam
Org-roam backlinks within org-mode buffers
Stars: ✭ 106 (+103.85%)
Mutual labels:  org-mode
emacs-ob-racket
Emacs Org-Mode Babel code block Racket support
Stars: ✭ 22 (-57.69%)
Mutual labels:  org-mode
org-gantt
Gantt chart for emacs org-mode
Stars: ✭ 55 (+5.77%)
Mutual labels:  org-mode
org-rich-yank
📋 Rich text clipboard for org-mode: Paste as a #+BEGIN_SRC block of correct mode, with link to where it came from
Stars: ✭ 59 (+13.46%)
Mutual labels:  org-mode
finito.el
📚 Manage books with Emacs 📚
Stars: ✭ 34 (-34.62%)
Mutual labels:  org-mode
PKMigrator
Tools to migrate between various Personal Knowledge Management Utilities
Stars: ✭ 36 (-30.77%)
Mutual labels:  org-mode

Org.jl

A library for working with Org files. Specifically, this provides utilities for:

  • Parsing Org text to an AST (Abstract Syntax Tree)
  • Regenerating Org text from an AST
  • Basic manipulation and analysis of an Org document AST
  • Generating basic representations Org content in the terminal, and a few other forms.

With the exception of some of the particularly fancy capabilities provided by org-mode (like Babel and Calc-based spreadsheeting), this project aims to exactly match the interpretation of Org mode markup — specifically the AST generated by org-element.el. This goal is not yet achieved, however the bulk of the work is now complete.

Org.jl implements the vast majority of the org-syntax document (see the Progress table). This can be checked by looking at Org.compatability in Julia.

Basic usage

# after installing with ~] add Org~ or ~Pkg.add("Org")~
using Org
text1 = org"Some *Org* markup, written with ease using the ~org\"\"~ macro."
parsetree(text1)  # show the generated parse tree

text2 = parse(OrgDoc, "Some *Org* markup, written with ease using the ~parse~ function.")
diff(text1, text2)  # show the components of the parse trees that differ

dochead = @doc Org.Heading  # the documentation for the Heading component (::OrgDoc)
org(dochead)  # generate Org text that produces the Org.Heading object
string(dochead)  # as above, but produces a String

parse(OrgDoc, string(dochead)) == dochead  # round-trip equality

# get the lang of each source block
[c.lang for c in dochead.components if c isa Org.SourceBlock]

Progress

ComponentTypeParseOrgTermHTML
HeadingXXXXX
SectionXXXXX
Affiliated KeywordsXXXX
GreaterBlockXXXXX
DrawerXXXXX
DynamicBlockXXXXX
FootnoteDefinitionXXXX
InlineTaskX
ItemXXXXX
ListXXXXX
PropertyDrawerXXXXX
TableXXXXX
BabelCallXXXXX
BlockXXXX
ClockXXXX
DiarySexpXXXX
PlanningXXXX
CommentXXXXX
FixedWidthXXXXX
HorizontalRuleXXXXX
KeywordXXXX
LaTeXEnvironmentXXXX
NodePropertyXXXXX
ParagraphXXXXX
TableRowXXXXX
TableHRuleXXXXX
BlankLineXXXXX
OrgEntityXXXXX
LaTeXFragmentXXXX
ExportSnippetXXXXX
FootnoteReferenceXXXXX
InlineBabelCallXXXXX
InlineSrcBlockXXXXX
RadioLinkXXXXX
PlainLinkXXXXX
AngleLinkXXXXX
RegularLinkXXXXX
LineBreakXXXXX
MacroXXXXX
CitationXXXXX
RadioTargetXXXXX
TargetXXXXX
StatisticsCookieXXXXX
SubscriptXXXXX
SuperscriptXXXXX
TableCellXXXXX
TimestampXXXXX
TextPlainXXXXX
TextMarkupXXXXX
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].