markdownEditor function
Implementation
Container markdownEditor(
BuildContext context,
TextEditingController textController,
FocusNode focusNode,
String markdownData) {
final cardWidth = (screenWidth(context) / 2) - 20;
return Container(
padding: const EdgeInsets.all(10),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
children: [
SizedBox(
width: cardWidth,
child: TextField(
// autofocus: true,
controller: textController,
focusNode: focusNode,
keyboardType: TextInputType.multiline,
maxLines: null,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'Note Content',
),
),
),
SizedBox(
height: 10,
),
SizedBox(
width: cardWidth,
child: MarkdownToolbar(
useIncludedTextField:
false, // Because we want to use our own, set useIncludedTextField to false
controller: textController, // Add the _controller
focusNode: focusNode, // Add the _focusNode
),
),
],
),
SizedBox(
width: 20,
),
Column(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(width: cardWidth, child: MarkdownBlock(data: markdownData))
],
)
],
),
);
// // av: 20250604 - Alternative markdown editor option using
// // markdown_editor_plus. The current version of this gives some errors
// // when inputting different styles such as checkboxes.
// return Container(
// padding: const EdgeInsets.all(10),
// child: MarkdownAutoPreview(
// controller: _textController,
// decoration: InputDecoration(
// hintText: 'Input markdown text',
// ),
// emojiConvert: true,
// hintText: 'Tap here to start writing a note!',
// // maxLines: 10,
// // minLines: 1,
// // expands: true,
// ),
// // SplittedMarkdownFormField(
// // controller: _textController,
// // markdownSyntax: '## Headline',
// // decoration: const InputDecoration(
// // hintText: 'Editable text',
// // ),
// // emojiConvert: true,
// // )
// );
}