Переглянути джерело

[New]markdown显示支持图片

zhipeng 1 рік тому
батько
коміт
f5ec2d1c49
2 змінених файлів з 36 додано та 3 видалено
  1. 13 1
      lib/module/chat/view.dart
  2. 23 2
      lib/module/talk/summary/view.dart

+ 13 - 1
lib/module/chat/view.dart

@@ -3,6 +3,7 @@ import 'package:electronic_assistant/data/bean/agenda.dart';
 import 'package:electronic_assistant/data/bean/chat_item.dart';
 import 'package:electronic_assistant/data/bean/file_chat_item.dart';
 import 'package:electronic_assistant/data/bean/reference_chat_item.dart';
+import 'package:electronic_assistant/module/browser/view.dart';
 import 'package:electronic_assistant/module/chat/controller.dart';
 import 'package:electronic_assistant/resource/colors.gen.dart';
 import 'package:electronic_assistant/utils/expand.dart';
@@ -282,8 +283,19 @@ class ChatPage extends BasePage<ChatController> {
                 width: 46.w, height: 20.w)
             : SelectionArea(
                 child: HtmlWidget(
+                  onTapUrl: (url) {
+                    BrowserPage.start(url);
+                    return true;
+                  },
                   md.markdownToHtml(content,
-                      inlineSyntaxes: md.ExtensionSet.gitHubWeb.inlineSyntaxes,
+                      inlineSyntaxes: [
+                        md.InlineHtmlSyntax(),
+                        md.StrikethroughSyntax(),
+                        md.EmojiSyntax(),
+                        md.ColorSwatchSyntax(),
+                        md.AutolinkExtensionSyntax(),
+                        md.ImageSyntax()
+                      ],
                       blockSyntaxes: [
                         const md.FencedCodeBlockSyntax(),
                         const md.HeaderWithIdSyntax(),

+ 23 - 2
lib/module/talk/summary/view.dart

@@ -9,6 +9,7 @@ import 'package:get/get.dart';
 import 'package:markdown/markdown.dart' as md;
 
 import '../../../data/bean/talks.dart';
+import '../../browser/view.dart';
 import '../common_view.dart';
 import 'controller.dart';
 
@@ -26,8 +27,28 @@ class SummaryView extends BasePage<SummaryController> {
             EdgeInsets.only(left: 12.w, right: 12.w, top: 16.h, bottom: 20.h),
         child: Obx(() {
           return HtmlWidget(
-            md.markdownToHtml(
-                controller.summaryBean.value?.summary.value ?? ""),
+            onTapUrl: (url) {
+              BrowserPage.start(url);
+              return true;
+            },
+            md.markdownToHtml(controller.summaryBean.value?.summary.value ?? "",
+                inlineSyntaxes: [
+                  md.InlineHtmlSyntax(),
+                  md.StrikethroughSyntax(),
+                  md.EmojiSyntax(),
+                  md.ColorSwatchSyntax(),
+                  md.AutolinkExtensionSyntax(),
+                  md.ImageSyntax()
+                ],
+                blockSyntaxes: [
+                  const md.FencedCodeBlockSyntax(),
+                  const md.HeaderWithIdSyntax(),
+                  const md.SetextHeaderWithIdSyntax(),
+                  const md.UnorderedListWithCheckboxSyntax(),
+                  const md.OrderedListWithCheckboxSyntax(),
+                  const md.FootnoteDefSyntax(),
+                  const md.AlertBlockSyntax(),
+                ]),
             textStyle:
                 TextStyle(fontSize: 14.sp, color: ColorName.primaryTextColor),
           );