- Keyword values are now parsed separately; see
key
andvalue
onOrgMeta
- Note that
OrgMeta.trailing
is still present but is guaranteed to only be whitespace
- Note that
- Keyword values are rich content
- Support inline src blocks
- Support min/max-style timestamp repeaters
- Drawer property values can now contain nested rich content
- Drawer parsing accuracy is improved
- Footnote, horizontal rule parsing accuracy is improved
- Trailing blank lines are handled more consistently
- Verbatim and code markups no longer have nested rich content
- Links can now contain nested rich content (except for other links)
- Org "elements" now consistently inherit
OrgElement
OrgFootnote
content can now contain elements
- Markups (bold, italic, etc.) and sub/superscripts can now contain nested rich content
- List items containing blocks and drawers are parsed more accurately
- Drawer parsing accuracy is improved
- Parse
<<link targtes>>
and<<<radio targets>>>
- Parse links to radio targets. This requires a second parsing pass; see the
interpretEmbeddedSettings
arg toOrgDocument.parse
. - Improve Unicode handling
- Fix bugs in
OrgNode.contains
- Minor optimization
- Parse horizontal rules to
OrgHorizontalRule
- Fix parsing of diary timestamps
- Replace
OrgTimestamp
with specialized classesOrgDiaryTimestamp
,OrgSimpleTimestamp
,OrgTimeRangeTimestamp
,OrgDateRangeTimestamp
- Introduce
OrgSubSuperscript
sealed parent class
- Introduce
OrgStatisticsCookie
parent class - Add
OrgStatisticsCookie.update
method - Fix identifying numerical table cells
- Parse statistics cookies
- Minor optimizations
- Upgrade dependencies
OrgParagraph
s are now split on blank lines like in Emacs
- Minor optimization
- Support entities in subscripts and superscripts
- Support non-ASCII headline tags
- Fix lower bound of more dependency
- Restore compatibility with Flutter 3.24
- Parse subscripts and superscripts
- Allow
OrgMeta
nodes to be recognized inside text runs
- Parse Org Cite citations
- Add
orgTodo
parser andOrgTodoStates
model OrgHeadline.keyword.done
now indicates whether a keyword is considered "in-progress" or "done"- Add
interpretEmbeddedSettings
arg toOrgDocument.parse
. Passtrue
to allow detecting TODO keywords from#+TODO:
(and related) meta lines. OrgParserDefinition
andOrgGrammarDefinition
constructors now take a list ofOrgTodoStates
rather than string lists
- Introduce
OrgSerializer
: supply a subclass toOrgNode.toMarkup
to customize how a tree is serialized. - Add
OrgSection.tags
- Add optional
where
predicate toOrgTree.findContainingTree
- Bug fixes
- Add parser, AST for the Org query language described in the Matching tags and properties section of the Org manual
- Make
OrgTree.getProperties
public - Reorganize code
- Adjust
OrgDecryptedContent
to allow serializing to encrypted form- Supply an appropriate
DecryptedContentSerializer
- See
OrgDecryptedContent.toCleartextMarkup
to obtain the unencrypted form
- Supply an appropriate
- Parse PGP encrypted blocks, add representation for decrypted content
- Parse comment lines
- Fix some editing bugs
- Remove
OrgTree.level
(OrgSection.level
remains)
- Support the
attachment:
protocol inOrgFileLink
ids
,customIds
is now onOrgTree
rather thanOrgSection
- Added
OrgTree.dirs
to get the:DIR:
property values of the tree - Added
OrgTree.attachDir
to get the attachment directory for the tree - The
OrgPath
returned byOrgNode.find
now includes the starting node as the first item - Added
OrgFileLink.copyWith
- Parse Emacs local variables
lists
to
OrgLocalVariables
AST node. The content, stripped of prefixes and suffixes, is available fromOrgLocalVariables.contentString
.
- Add
OrgNode.find
method for searching for a particular node and its "path" in the document - Change
OrgFootnoteReference
properties - Add
OrgFootnoteReference.isDefinition
to indicate whether reference is part of a footnote definition or merely a reference
- Full support for dumping AST back to Org markup:
OrgNode.toMarkup
- Errors in round-tripping are now considered bugs
- Various changes in AST class properties to better support dumping to markup
- While the AST remains immutable, editing operations are now possible via
zipper; see
OrgTree.edit
andOrgTree.editNode
, as well as example.dart - Simple editing convenience methods added:
OrgListItem.toggleCheckbox
OrgHeadline.cycleTodo
- Fix support for inline markup in header titles
- Support "greater" blocks with arbitrary names such as
#+begin_foo
- Add initial support for dumping AST back to Org markup:
OrgNode.toMarkup
- Update to petitparser 6.0.1
- Require Dart 3.0 or higher
- Fix parsing of section title text in some cases (#13)
- Update to petitparser 5.4.0
- Require petitparser 5.1.0 or higher
- Require Dart 2.18 or higher
- Add dartdoc comments to AST, grammar, and parser objects
- Fix incorrect parsing of star-only headlines (#5)
- Add utilities for recognizing, parsing
id:
and#custom-id
URLsisOrgIdUrl
&parseOrgIdUrl
isOrgCustomIdUrl
&parseOrgCustomIdUrl
- Add
OrgDrawer.properties
for obtaining drawer properties - Add methods for getting the
ID
andCUSTOM_ID
properties of a sectionOrgSection.ids
OrgSection.customIds
- Add
OrgTree.visitSections
for efficiently walking just sections OrgFileLink
now correctly recognizes links with empty file parts likefile:::*Section name
, which point to local sections; seeOrgFileLink.isLocal
.
- Require petitparser 4.1.0 or higher
- Relicense under the MIT License
- "Plain" links of all built-in types are now recognized (not just http(s): and mailto:)
- Added parser, AST for file links; see
OrgFileLink
class,orgFileLink
variable - Removed the following classes; use noted replacements
OrgGrammar
→OrgGrammarDefinition().build()
OrgContentGrammar
→OrgContentGrammarDefinition().build()
OrgParser
→org
variableOrgContentParser
→OrgContentParserDefinition().build()
- Change class hierarchy of AST classes
- All classes now inherit from
OrgNode
- All
OrgNode
s have achildren
property OrgTree.children
(sections only) is nowOrgTree.sections
- All classes now inherit from
- Easily walk an AST with
OrgNode.visit
- Fix nullability errors in headline, src block
- Migrate to non-nullable by default
- Fix parsing of non-property drawer content
- Parse planning/clock lines as separate elements (#2)
- Fix inline style markup (
*foo*
,+bar+
, etc.) to span at most one line break
- Parse entities (
\frac12
→ ½, etc.)
- More accurate tag handling in section headlines
- Fix section headline parsing error
- Parse inline and block LaTeX fragments (#1)
- Parse src blocks (
#+begin_src
) asOrgSrcBlock
; language of block is exposed asOrgSrcBlock.language
- Add example
- Added
OrgTable.columnIsNumeric
API for determining if a table column is primarily comprised of numbers
- Initial release