formats property

  1. @override
List<FluentFormatContribution> get formats
override

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);
    },
  ),
];