Implementation
@override
List<FluentFormatContribution> get formats => [
FluentFormatContribution(
id: 'fluent_editor.json',
label: 'JSON',
extensions: ['json'],
kind: FluentPluginFormatKind.text,
import: (payload, registry) {
final json = jsonDecode(payload.text!) as Map<String, dynamic>;
FNodeJsonConverter.activeRegistry = registry;
try {
return Root.fromJson(json);
} finally {
FNodeJsonConverter.activeRegistry = null;
}
},
export: (document) =>
FluentExportPayload.text(document.toJson()),
),
FluentFormatContribution(
id: 'fluent_editor.html',
label: 'HTML',
extensions: ['html', 'htm'],
kind: FluentPluginFormatKind.text,
import: (payload, _) =>
ImportService().importFromHtml(payload.text!),
export: (document) async {
final html = await ExportService(document).exportToHtml();
return FluentExportPayload.text(html);
},
),
FluentFormatContribution(
id: 'fluent_editor.markdown',
label: 'Markdown',
extensions: ['md', 'markdown'],
kind: FluentPluginFormatKind.text,
import: (payload, _) =>
ImportService().importFromMarkdown(payload.text!),
export: (document) =>
FluentExportPayload.text(ExportService(document).exportToMarkdown()),
),
FluentFormatContribution(
id: 'fluent_editor.pdf',
label: 'PDF',
extensions: ['pdf'],
kind: FluentPluginFormatKind.binary,
export: (document) async {
final bytes = await ExportService(document).exportToPdf();
return FluentExportPayload.binary(bytes);
},
),
FluentFormatContribution(
id: 'fluent_editor.docx',
label: 'DOCX',
extensions: ['docx'],
kind: FluentPluginFormatKind.binary,
import: (payload, _) =>
ImportService().importFromDocx(payload.bytes!),
export: (document) async {
final bytes = await ExportService(document).exportToDocx();
return FluentExportPayload.binary(bytes);
},
),
FluentFormatContribution(
id: 'fluent_editor.odt',
label: 'ODT',
extensions: ['odt'],
kind: FluentPluginFormatKind.binary,
import: (payload, _) =>
ImportService().importFromOdt(payload.bytes!),
export: (document) async {
final bytes = await ExportService(document).exportToOdt();
return FluentExportPayload.binary(bytes);
},
),
];