| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter/material.dart'; |
| import 'markdown.dart'; |
| import 'markdown_style_raw.dart'; |
| |
| /// Style used for rendering markdown formatted text using the [MarkdownBody] |
| /// widget. |
| class MarkdownStyle extends MarkdownStyleRaw{ |
| |
| /// Creates a [MarkdownStyle] from the [TextStyle]s in the provided [theme]. |
| MarkdownStyle.defaultFromTheme(ThemeData theme) : super( |
| a: new TextStyle(color: Colors.blue[500]), |
| p: theme.textTheme.body1, |
| code: new TextStyle( |
| color: Colors.grey[700], |
| fontFamily: "monospace", |
| fontSize: theme.textTheme.body1.fontSize * 0.85 |
| ), |
| h1: theme.textTheme.headline, |
| h2: theme.textTheme.title, |
| h3: theme.textTheme.subhead, |
| h4: theme.textTheme.body2, |
| h5: theme.textTheme.body2, |
| h6: theme.textTheme.body2, |
| em: const TextStyle(fontStyle: FontStyle.italic), |
| strong: const TextStyle(fontWeight: FontWeight.bold), |
| blockquote: theme.textTheme.body1, |
| blockSpacing: 8.0, |
| listIndent: 32.0, |
| blockquotePadding: 8.0, |
| blockquoteDecoration: new BoxDecoration( |
| backgroundColor: Colors.blue[100], |
| borderRadius: new BorderRadius.circular(2.0) |
| ), |
| codeblockPadding: 8.0, |
| codeblockDecoration: new BoxDecoration( |
| backgroundColor: Colors.grey[100], |
| borderRadius: new BorderRadius.circular(2.0) |
| ) |
| ); |
| |
| /// Creates a [MarkdownStyle] from the [TextStyle]s in the provided [theme]. |
| /// This style uses larger fonts for the headings than in |
| /// [MarkdownStyle.defaultFromTheme]. |
| MarkdownStyle.largeFromTheme(ThemeData theme) : super ( |
| a: new TextStyle(color: Colors.blue[500]), |
| p: theme.textTheme.body1, |
| code: new TextStyle( |
| color: Colors.grey[700], |
| fontFamily: "monospace", |
| fontSize: theme.textTheme.body1.fontSize * 0.85 |
| ), |
| h1: theme.textTheme.display3, |
| h2: theme.textTheme.display2, |
| h3: theme.textTheme.display1, |
| h4: theme.textTheme.headline, |
| h5: theme.textTheme.title, |
| h6: theme.textTheme.subhead, |
| em: const TextStyle(fontStyle: FontStyle.italic), |
| strong: const TextStyle(fontWeight: FontWeight.bold), |
| blockquote: theme.textTheme.body1, |
| blockSpacing: 8.0, |
| listIndent: 32.0, |
| blockquotePadding: 8.0, |
| blockquoteDecoration: new BoxDecoration( |
| backgroundColor: Colors.blue[100], |
| borderRadius: new BorderRadius.circular(2.0) |
| ), |
| codeblockPadding: 8.0, |
| codeblockDecoration: new BoxDecoration( |
| backgroundColor: Colors.grey[100], |
| borderRadius: new BorderRadius.circular(2.0) |
| ) |
| ); |
| } |