Skip to content

Commit

Permalink
Done
Browse files Browse the repository at this point in the history
  • Loading branch information
ErBWs committed Feb 2, 2025
1 parent e2953fb commit a150d3d
Show file tree
Hide file tree
Showing 7 changed files with 450 additions and 499 deletions.
42 changes: 36 additions & 6 deletions lib/bbcode/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@

## 关键文件

- [lib/bbcode/BBCodeBaseListener.dart](generated/BBCodeBaseListener.dart): antlr4 生成的 Listener 抽象类空实现
- [lib/bbcode/bbcode.dart](bbcode.dart): BBCode 解析器的入口文件
- [lib/bbcode/bbcode_elements.dart](bbcode_elements.dart): BBCode 元素
- [lib/bbcode/bbcode_base_listener.dart](bbcode_base_listener.dart): BBCode 解析器的入口文件
- [lib/bbcode/bbcode_widget.dart](bbcode_widget.dart): BBCode 组件

## 如何开发

Expand All @@ -20,11 +21,40 @@
### 开发

1. 修改 [assets/bbcode/BBCode.g4](../../assets/bbcode/BBCode.g4) 文件,通过插件的 Preview 功能确定解析是否正确
2. 通过该文件生成新的 dart 文件到 [lib/bbcode/generated](../../lib/bbcode/generated) 文件夹内
3. [lib/bbcode/BBCodeBaseListener.dart](generated/BBCodeBaseListener.dart) 中的空实现复制到 [lib/bbcode/bbcode.dart](bbcode.dart) 中,参考文件内的注释进行修改
2. 通过该文件生成新的 dart 文件到 [lib/bbcode/generated](../../lib/bbcode/generated) 文件夹内,删除无用文件
3. 参考文件内的注释进行修改

### 测试 BBCode

```
[url=https://bangumi.tv/blog/348736]测试链接[/url][url]https://bangumi.tv/blog/348736[/url][quote][b]用户[/b]测试表情(bgm35)[/quote]测试换行\t\n测试特殊符号[]()测试字符表情(TAT)哈哈哈哈[img]https://p.inari.site/guest/25-01/22/67907598b3a74.jpg[/img]
```dart
import 'package:flutter/material.dart';
import 'bbcode/bbcode_widget.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('BBCode Parser')),
body: Card(
color: Theme.of(context).colorScheme.secondaryContainer,
child: const Padding(
padding: EdgeInsets.all(8.0),
child: Padding(
padding: EdgeInsets.all(16),
child: BBCodeWidget(
bbcode:
'[quote][b]用户[/b]说:[s]测试表情和删除线(bgm35)[/s][/quote]\n[mask]测试特殊符号[]()测试字符表情(TAT)[/mask][url=https://bangumi.tv/blog/348736]测试链接[/url][url]https://bangumi.tv/blog/348736[/url][img]https://bangumi.tv/img/rc3/logo_2x.png[/img]\n\n[color=grey][size=10][来自Bangumi for android] [url=https://bgm.tv/group/topic/350677][color=grey]获取[/color][/url][/size][/color]',
),
),
),
),
),
);
}
}
```
Loading

0 comments on commit a150d3d

Please sign in to comment.