diff --git a/lib/core/note.dart b/lib/core/note.dart
index 40bfc8b8..9a0ea43a 100644
--- a/lib/core/note.dart
+++ b/lib/core/note.dart
@@ -7,6 +7,7 @@ import 'package:gitjournal/core/links_loader.dart';
import 'package:gitjournal/core/md_yaml_doc_loader.dart';
import 'package:gitjournal/core/note_notifier.dart';
import 'package:gitjournal/core/notes_folder_fs.dart';
+import 'package:gitjournal/core/processors/image_extractor.dart';
import 'package:gitjournal/core/processors/inline_tags.dart';
import 'package:gitjournal/error_reporting.dart';
import 'package:gitjournal/settings.dart';
@@ -64,6 +65,7 @@ class Note with NotesNotifier {
String _summary;
List _links;
Set _inlineTags;
+ Set _images;
static final _mdYamlDocLoader = MdYamlDocLoader();
static final _linksLoader = LinksLoader();
@@ -153,6 +155,7 @@ class Note with NotesNotifier {
_summary = null;
_links = null;
_inlineTags = null;
+ _images = null;
_notifyModified();
}
@@ -200,6 +203,15 @@ class Note with NotesNotifier {
return _inlineTags;
}
+ Set get images {
+ if (_loadState != NoteLoadState.Loaded) return {};
+
+ var p = ImageExtractor();
+ _images ??= p.extract(body);
+
+ return _images;
+ }
+
Map get extraProps {
return _extraProps;
}
diff --git a/lib/core/processors/image_extractor.dart b/lib/core/processors/image_extractor.dart
new file mode 100644
index 00000000..802cf59b
--- /dev/null
+++ b/lib/core/processors/image_extractor.dart
@@ -0,0 +1,32 @@
+import 'package:equatable/equatable.dart';
+import 'package:meta/meta.dart';
+
+class NoteImage extends Equatable {
+ final String url;
+ final String alt;
+
+ NoteImage({@required this.url, @required this.alt});
+
+ @override
+ List