Skip to content

Commit 470a325

Browse files
[flutter_markdown] Adopt code excerpts in README (flutter#4656)
Updates the README to use a compiled excerpt source for its example of creating a `Markdown`. Part of flutter#102679
1 parent 6cb2a32 commit 470a325

File tree

5 files changed

+85
-13
lines changed

5 files changed

+85
-13
lines changed

packages/flutter_markdown/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
## NEXT
1+
## 0.6.17+1
22

33
* Deletes deprecated splash screen meta-data element.
4+
* Updates README to improve examples of using Markdown.
45

56
## 0.6.17
67

packages/flutter_markdown/README.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,18 @@ documents, respectively. GitHub Web adds header ID and emoji support. The
5454
Using the Markdown widget is simple, just pass in the source markdown as a
5555
string:
5656

57-
Markdown(data: markdownSource);
57+
<?code-excerpt "example/lib/readme_excerpts.dart (CreateMarkdown)"?>
58+
```dart
59+
const Markdown(data: markdownSource);
60+
```
5861

5962
If you do not want the padding or scrolling behavior, use the MarkdownBody
6063
instead:
6164

62-
MarkdownBody(data: markdownSource);
65+
<?code-excerpt "example/lib/readme_excerpts.dart (CreateMarkdownBody)"?>
66+
```dart
67+
const MarkdownBody(data: markdownSource);
68+
```
6369

6470
By default, Markdown uses the formatting from the current material design theme,
6571
but it's possible to create your own custom styling. Use the MarkdownStyle class
@@ -79,12 +85,13 @@ formatted output of the Markdown widget. For example, in the following Markdown
7985
widget constructor, a text string with a smiley face emoji is passed in as the
8086
source Markdown data.
8187

88+
<?code-excerpt "example/lib/readme_excerpts.dart (CreateMarkdownWithEmoji)"?>
8289
```dart
8390
Markdown(
84-
controller: controller,
85-
selectable: true,
86-
data: 'Insert emoji here😀 ',
87-
)
91+
controller: controller,
92+
selectable: true,
93+
data: 'Insert emoji here😀 ',
94+
);
8895
```
8996

9097
The resulting Markdown widget will contain a single line of text with the
@@ -100,18 +107,22 @@ auto-links, and strike-through. To include the inline emoji tag syntax
100107
while maintaining the default GitHub flavored Markdown behavior, define
101108
an extension set that combines EmojiSyntax with ExtensionSet.gitHubFlavored.
102109

110+
<?code-excerpt "example/lib/readme_excerpts.dart (CreateMarkdownWithEmojiExtension)"?>
103111
```dart
104112
import 'package:markdown/markdown.dart' as md;
105-
106-
Markdown(
113+
// ···
114+
Markdown(
107115
controller: controller,
108116
selectable: true,
109117
data: 'Insert emoji :smiley: here',
110118
extensionSet: md.ExtensionSet(
111119
md.ExtensionSet.gitHubFlavored.blockSyntaxes,
112-
[md.EmojiSyntax(), ...md.ExtensionSet.gitHubFlavored.inlineSyntaxes],
120+
<md.InlineSyntax>[
121+
md.EmojiSyntax(),
122+
...md.ExtensionSet.gitHubFlavored.inlineSyntaxes
123+
],
113124
),
114-
)
125+
);
115126
```
116127

117128
## Image Support
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// Copyright 2013 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import 'package:flutter/cupertino.dart';
6+
import 'package:flutter_markdown/flutter_markdown.dart';
7+
8+
// #docregion CreateMarkdownWithEmojiExtension
9+
import 'package:markdown/markdown.dart' as md;
10+
// #enddocregion CreateMarkdownWithEmojiExtension
11+
12+
/// Create a simple `Markdown` wdget.
13+
void createMarkdown() {
14+
const String markdownSource = '';
15+
16+
// #docregion CreateMarkdown
17+
const Markdown(data: markdownSource);
18+
// #enddocregion CreateMarkdown
19+
}
20+
21+
/// Create a simple `MarkdownBody` widget.
22+
void createMarkdownBody() {
23+
const String markdownSource = '';
24+
25+
// #docregion CreateMarkdownBody
26+
const MarkdownBody(data: markdownSource);
27+
// #enddocregion CreateMarkdownBody
28+
}
29+
30+
/// Create a simple `Markdown` widget with an emoji.
31+
void createMarkdownWithEmoji() {
32+
final ScrollController controller = ScrollController();
33+
34+
// #docregion CreateMarkdownWithEmoji
35+
Markdown(
36+
controller: controller,
37+
selectable: true,
38+
data: 'Insert emoji here😀 ',
39+
);
40+
// #enddocregion CreateMarkdownWithEmoji
41+
}
42+
43+
/// Create a simple `Markdown` widget with an emoji extension.
44+
void createMarkdownWithEmojiExtension() {
45+
final ScrollController controller = ScrollController();
46+
47+
// #docregion CreateMarkdownWithEmojiExtension
48+
Markdown(
49+
controller: controller,
50+
selectable: true,
51+
data: 'Insert emoji :smiley: here',
52+
extensionSet: md.ExtensionSet(
53+
md.ExtensionSet.gitHubFlavored.blockSyntaxes,
54+
<md.InlineSyntax>[
55+
md.EmojiSyntax(),
56+
...md.ExtensionSet.gitHubFlavored.inlineSyntaxes
57+
],
58+
),
59+
);
60+
// #enddocregion CreateMarkdownWithEmojiExtension
61+
}

packages/flutter_markdown/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: A Markdown renderer for Flutter. Create rich text output,
44
formatted with simple Markdown tags.
55
repository: https://github.com/flutter/packages/tree/main/packages/flutter_markdown
66
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+flutter_markdown%22
7-
version: 0.6.17
7+
version: 0.6.17+1
88

99
environment:
1010
sdk: ">=3.0.0 <4.0.0"

script/configs/temp_exclude_excerpt.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
- espresso
1111
- extension_google_sign_in_as_googleapis_auth
1212
- flutter_image
13-
- flutter_markdown
1413
- go_router_builder
1514
- google_sign_in/google_sign_in
1615
- image_picker_for_web

0 commit comments

Comments
 (0)