浏览代码

feat: Export Markdown to filesystem

Sean Riley Hawkins 3 年之前
父节点
当前提交
e6ff4b5077
共有 1 个文件被更改,包括 24 次插入0 次删除
  1. 24 0
      frontend/app_flowy/lib/workspace/application/doc/share_bloc.dart

+ 24 - 0
frontend/app_flowy/lib/workspace/application/doc/share_bloc.dart

@@ -1,3 +1,7 @@
+import 'dart:typed_data';
+import 'dart:async';
+import 'dart:io';
+
 import 'package:app_flowy/workspace/application/doc/share_service.dart';
 import 'package:app_flowy/workspace/application/markdown/delta_markdown.dart';
 import 'package:flowy_sdk/protobuf/flowy-text-block/entities.pb.dart';
@@ -5,6 +9,8 @@ import 'package:flowy_sdk/protobuf/flowy-folder-data-model/view.pb.dart';
 import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart';
 import 'package:freezed_annotation/freezed_annotation.dart';
 import 'package:flutter_bloc/flutter_bloc.dart';
+import 'package:file_saver/file_saver.dart';
+import 'package:path_provider/path_provider.dart';
 import 'package:dartz/dartz.dart';
 part 'share_bloc.freezed.dart';
 
@@ -33,8 +39,26 @@ class DocShareBloc extends Bloc<DocShareEvent, DocShareState> {
   ExportData _convertDeltaToMarkdown(ExportData value) {
     final result = deltaToMarkdown(value.data);
     value.data = result;
+    writeFile(result);
     return value;
   }
+
+  Future<String> get _localPath async {
+    final dir = await getApplicationDocumentsDirectory();
+    return dir.path;
+  }
+
+  Future<File> get _localFile async {
+    final path = await _localPath;
+    print(view);
+    return File('$path/${view.name}.md');
+  }
+
+  Future<File> writeFile(String md) async {
+    final file = await _localFile;
+    print(file);
+    return file.writeAsString(md);
+  }
 }
 
 @freezed