feat: add linkbreak in markdown decoder (#1090)
* feat: add linkbreak in markdown decoder * fix: markdown text
This commit is contained in:
parent
552f95fd15
commit
23618990b2
2 changed files with 10 additions and 0 deletions
|
|
@ -38,6 +38,7 @@ Document markdownToDocument(
|
||||||
String documentToMarkdown(
|
String documentToMarkdown(
|
||||||
Document document, {
|
Document document, {
|
||||||
List<NodeParser> customParsers = const [],
|
List<NodeParser> customParsers = const [],
|
||||||
|
String lineBreak = '',
|
||||||
}) {
|
}) {
|
||||||
return AppFlowyEditorMarkdownCodec(
|
return AppFlowyEditorMarkdownCodec(
|
||||||
encodeParsers: [
|
encodeParsers: [
|
||||||
|
|
@ -53,6 +54,7 @@ String documentToMarkdown(
|
||||||
const TableNodeParser(),
|
const TableNodeParser(),
|
||||||
const DividerNodeParser(),
|
const DividerNodeParser(),
|
||||||
],
|
],
|
||||||
|
lineBreak: lineBreak,
|
||||||
).encode(document);
|
).encode(document);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -61,11 +63,13 @@ class AppFlowyEditorMarkdownCodec extends Codec<Document, String> {
|
||||||
this.markdownInlineSyntaxes = const [],
|
this.markdownInlineSyntaxes = const [],
|
||||||
this.markdownParsers = const [],
|
this.markdownParsers = const [],
|
||||||
this.encodeParsers = const [],
|
this.encodeParsers = const [],
|
||||||
|
this.lineBreak = '',
|
||||||
});
|
});
|
||||||
|
|
||||||
final List<NodeParser> encodeParsers;
|
final List<NodeParser> encodeParsers;
|
||||||
final List<CustomMarkdownParser> markdownParsers;
|
final List<CustomMarkdownParser> markdownParsers;
|
||||||
final List<md.InlineSyntax> markdownInlineSyntaxes;
|
final List<md.InlineSyntax> markdownInlineSyntaxes;
|
||||||
|
final String lineBreak;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Converter<String, Document> get decoder => DocumentMarkdownDecoder(
|
Converter<String, Document> get decoder => DocumentMarkdownDecoder(
|
||||||
|
|
@ -76,5 +80,6 @@ class AppFlowyEditorMarkdownCodec extends Codec<Document, String> {
|
||||||
@override
|
@override
|
||||||
Converter<Document, String> get encoder => DocumentMarkdownEncoder(
|
Converter<Document, String> get encoder => DocumentMarkdownEncoder(
|
||||||
parsers: encodeParsers,
|
parsers: encodeParsers,
|
||||||
|
lineBreak: lineBreak,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,11 @@ import 'package:collection/collection.dart';
|
||||||
class DocumentMarkdownEncoder extends Converter<Document, String> {
|
class DocumentMarkdownEncoder extends Converter<Document, String> {
|
||||||
DocumentMarkdownEncoder({
|
DocumentMarkdownEncoder({
|
||||||
this.parsers = const [],
|
this.parsers = const [],
|
||||||
|
this.lineBreak = '',
|
||||||
});
|
});
|
||||||
|
|
||||||
final List<NodeParser> parsers;
|
final List<NodeParser> parsers;
|
||||||
|
final String lineBreak;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String convert(Document input) {
|
String convert(Document input) {
|
||||||
|
|
@ -19,6 +21,9 @@ class DocumentMarkdownEncoder extends Converter<Document, String> {
|
||||||
);
|
);
|
||||||
if (parser != null) {
|
if (parser != null) {
|
||||||
buffer.write(parser.transform(node, this));
|
buffer.write(parser.transform(node, this));
|
||||||
|
if (lineBreak.isNotEmpty && node.id != input.root.children.last.id) {
|
||||||
|
buffer.write(lineBreak);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return buffer.toString();
|
return buffer.toString();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue