import 'package:flutter/material.dart'; import 'package:markdown_widget/config/toc.dart'; import 'package:markdown_widget/widget/markdown.dart'; Widget buildMarkdown({ required TocController tocController, required String data, }) => MarkdownWidget(data: data, tocController: tocController); Widget buildTocPanel({ required TocController tocController, required bool showToc, }) => Visibility( visible: showToc, child: Align( alignment: Alignment.bottomRight, child: Container( width: 250, height: 400, decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(12), boxShadow: [ BoxShadow( color: Colors.black.withAlpha(50), blurRadius: 8, offset: const Offset(0, 4), ), ], border: Border.all(color: Colors.grey[300]!), ), child: Column( children: [ Container( padding: const EdgeInsets.all(12), decoration: BoxDecoration( color: Colors.grey[100], borderRadius: const BorderRadius.only( topLeft: Radius.circular(12), topRight: Radius.circular(12), ), ), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ const Text( '目录', style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), ), ], ), ), Expanded( child: TocWidget( controller: tocController, tocTextStyle: TextStyle(fontSize: 14), ), ), ], ), ), ), );