Skip to content

Repository files navigation

org_flutter

Org Mode widgets for Flutter.

Usage

For parsing Org Mode documents, see org_parser. For an example application that displays Org Mode documents with org_parser and org_flutter, see Orgro.

The simplest way to display an Org Mode document in your Flutter application is to use the Org widget:

import'package:org_flutter/org_flutter.dart';
classMyOrgViewWidgetextendsStatelessWidget {
Widgetbuild(BuildContext context) {
returnOrg('''* TODO [#A] foo barbaz buzz''');
}
}

See the example for more.

Rich text

Use Org markup to create rich Text-equivalent widgets with OrgText.

OrgText('*This* is a /rich/ text label ([[https://example.com][details]])')

Advanced

For more advanced usage, such as specifying link handling, use OrgController in concert with OrgRootWidget:

import'package:org_flutter/org_flutter.dart';
Widgetbuild(BuildContext context) {
final doc =OrgDocument.parse(
rawOrgModeDocString,
// Interpret e.g. #+TODO: settings at the cost of a second parsing pass
interpretEmbeddedSettings:true,
);
returnOrgController(
root: doc,
child:OrgLocator( // Include OrgLocator to enable tap-to-jump on footnotes, etc.
child:OrgRootWidget(
style: myTextStyle,
onLinkTap: launch, // e.g. from url_launcher package
child:OrgDocumentWidget(doc),
),
),
);
}

Place OrgController higher up in your widget hierarchy and access via OrgController.of(context) to dynamically control various properties of the displayed document:

IconButton(
icon:constIcon(Icons.repeat),
onPressed:OrgController.of(context).cycleVisibility,
);

Text selection

The Org Mode text is not selectable by default, but you can make it so by wrapping the widget in SelectionArea.

About

Org Mode widgets for Flutter

Topics

Resources

Stars

23 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages