refined_markdown 1.0.0 copy "refined_markdown: ^1.0.0" to clipboard
refined_markdown: ^1.0.0 copied to clipboard

outdated

A simple Markdown renderer that is written mostly in dart (grammar analysing and rendering part). It's designed in a new pattern, I am not sure whether my solution will work fine in the future. But as [...]

example/lib/main.dart

import 'package:flutter/material.dart';
// import 'package:flutter/rendering.dart';
import 'package:refined_markdown/refined_markdown.dart';

void main() {
  // debugPaintSizeEnabled = true;
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  MyApp({Key key}) : super(key: key);

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: MarkdownPage(),
    );
  }
}

class MarkdownPage extends StatefulWidget {
  @override
  _MarkdownPageState createState() => _MarkdownPageState();
}

class _MarkdownPageState extends State<MarkdownPage> {
  String filePath = 'assets/markdown.html';

  @override
  Widget build(BuildContext context) {
    CSS baseCSS = CSS();
    baseCSS.fontSize = 13;
    return Scaffold(
      appBar: AppBar(
        elevation: 0,
        title: Text('Markdown测试'),
      ),
      body: RefinedMarkdown(
        text: r"""
        ###### H6(容错解析)
###### HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH6(折行处理测试)
###H3(无效解析)
###       H3(容错解析)
##### H5
  ## H2
### H3
## H2
##
## H2
# H1

- 普通列表
  - 缩进的普通列表
    - 缩进的普通列表
-普通列表(无效解析)
-     普通列表(容错解析)

##### 标题 - 普通列表(列表无效解析)
- 普通列表 ##### 标题(标题无效解析)

123. 顺序列表
  ###### - 缩进的普通列表(列表无效解析)
  - ###### 标题(标题无效解析)
  123. 缩进的顺序列表
    123. 缩进的顺序列表
    - 缩进的普通列表

- [ ] 任务列表(未完成)
- [x] 任务列表(已完成)
  - [x] 缩进的任务列表(已完成)
    - [ ] 缩进的任务列表(未完成)
- [] 任务列表(无效输入)
- [gkwdnmd] 任务列表(无效输入)

##### 五级标题和**加粗文本**OHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH(效果叠加, 折行容错检测)
**加粗文本**
**加粗文本(无
效解析)*
普通文本和**加粗文本**和普通文本
  **前有空格的加粗文本**
    **前有空格的加粗文本**
    **加粗文本(无效解析, 解析斜体部位)*
普通文本和**加粗文本**和普通文本
##### 五级标题和**加粗文本**

*倾斜文本*普通文本*倾斜文本***加粗文本**普通文本**加粗文本**
  ***加粗倾斜文本***
  *前有空格的倾斜文本*
***加粗倾斜文本***
    ****仅解析加粗倾斜部分****
****仅解析加粗倾斜部分****

```dart
// 代码块
void main() => print("Hello world");
```
          ```dart
          // 缩进的代码块
          void main() => print("Hello world");
            void main() => print("Hello world");
      void main() => print("Hello world");
          void main() => print("Hello world");
          RegExp langReg = RegExp(r"```[^\n]*");
                        var langMatch = langReg.firstMatch(src.substring(start, end));
            int langStart = start + langMatch.start; // 第一个"`"的位置
int langEnd = start + langMatch.end; // "dart"行的"\n"位置
            String language = src.substring(langStart + 3, langEnd).trim();
          ```
```dart
// 另一个代码块
void main() => print("Hello world");
```

```dart
```dart
// 容错测试(经不起折腾, 请按照正规语法办事)
void main() => print("Hello world");
```
```

`代码段`
  `缩进的代码段`
`代码段`普通文本`代码段`***加粗倾斜文本******加粗倾斜文本***普通文本*斜体文本*OHHHHHHHHHHHHHHHHHHHHHHHH(折行测试)

---
# yaml
string_1: "Bar"
string_2: 'bar'
string_3: bar
---
      ---
      # 缩进的yaml
      string_1: "Bar"
      string_2: 'bar'
      string_3: bar
      ---
---
# 又一个yaml
string_1: "Bar"
string_2: 'bar'
string_3: bar
---

---         yaml
# 无效的yaml
string_1: "Bar"
string_2: 'bar'
string_3: bar
---yaml

[百度](https://www.baidu.com)普通文字
  ##### **[百度加粗](https://www.baidu.com)**
      [**百度加粗(链接解析失效)**](https://www.baidu.com)

右侧图片![图片](http://via.placeholder.com/350x150)






""",
        css: baseCSS,
      ),
    );
  }
}
7
likes
0
pub points
0%
popularity

Publisher

verified publisherautokaka.dogshitpiestudio.cn

A simple Markdown renderer that is written mostly in dart (grammar analysing and rendering part). It's designed in a new pattern, I am not sure whether my solution will work fine in the future. But as for now it is quite good, you can develop new rendering plugins in a more efficient way. (Don't know if it is appropriate to say like that). Any way, you can simply use it by calling RefinedMarkdown without worrying anything. Simple, quiet, fast, that is all refined markdown is intended to be.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

extended_text, flutter, flutter_highlight, highlight, url_launcher

More

Packages that depend on refined_markdown