simple_rich_text
간단한 리치 텍스트 문자를 사용하여 Flutter에서 Dart 문자열을 표시합니다.
간단한 리치 텍스트 문자를 사용하여 Flutter에서 Dart 문자열 표시
아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
Easily format Flutter text with simple format characters.
Motivation: lowest-possible development friction to add color and formatting to text.
In comparison, easy_rich_text requires lots of code (i.e, patternList of EasyRichTextPattern objects).
These are non-standard (not markdown compatible) but are more intuitive, in my opinion:
| format character | format effect | simple_rich_text string input | Flutter output |
|---|---|---|---|
| asterisk (*) | bold | "this is *bold*" | this is bold |
| slash (/) | italics | "this is /italicized/" | this is italicized |
| underscore (_) | underline | "this is _underlined_" | this is underlined |
SimpleRichText(r'*_/this is all three*_/ (*{color:red}bold*, _{color:green}underlined_, and /{color:brown}italicized/). _{push:home;color:blue}clickable hyperlink to home screen_')
Attribute pairs are placed in curly brackets immediately after first character marker. Each pair is separated by a semicolon (;) and can be in any order. Each pair has syntax name:value.
| key | meaning | implemented Dart code |
|---|---|---|
| color | red, blue, etc | textStyle.color: color-value |
| pop | pop the navigation stack | Navigator.pop(context); |
| push | push the value onto the navigation stack | Navigator.pushNamed(context, '/$route'); |
| repl | replace the top route on the navigation stack | Navigator.popAndPushNamed(context, '/$route'); |
Change text color by passing color as attribute:
"this is blue hyperlink to the _{color:blue,push:calendar}calendar_ screen"
| color:color_value | hex value |
|---|---|
| aqua | 0x00FFFF |
| black | 0x000000 |
| blue | 0x0000FF |
| brown | 0x9A6324 |
| cream | 0xFFFDD0 |
| cyan | 0x46f0f0 |
| green | 0x00FF00 |
| gray | 0x808080 |
| grey | 0x808080 |
| mint | 0xAAFFC3 |
| lavender | 0xE6BEFF |
| new | 0xFFFF00 |
| olive | 0x808000 |
| orange | 0xFFA500 |
| pink | 0xFFE1E6 |
| purple | 0x800080 |
| red | 0xFF0000 |
| silver | 0xC0C0C0 |
| white | 0xFFFFFF |
| yellow | 0xFFFF00 |
'this is /italic/'
'this is *bold*'
'*_/this is all three*_/ (*bold*, _underlined_, and /italicized/)'
'you can quote characters to NOT format a word \*bold\*'
'this is _underline_'
'go to _{/myroute}home_ page'
'this is ~important~(red).'
'this is _*bold and underlined*_.'
You can use multiple characters at the same time:
"this is _/underlined and italicized/_"
You can be sloppy! Unlike HTML, for convenience, if using multiple characters the open and closed sequences, they don't need to be in exact palindrome matching order:
"these are */equivalent/* and works without problems."
"these are */equivalent*/ and works without problems."
Ancestor MUST have textDirection set (required by internal RichText widget), either through MaterialApp widget or explicitly wrapped by a Directionality widget:
Directionality(
child: SimpleRichText('Peter', term: 't'),
textDirection: TextDirection.ltr)
Pull requests are welcome!
See the example directory.
의존성 목록 3 개
{"sdk":"flutter"}^6.0.3{"sdk":"flutter"}사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗