summaryrefslogtreecommitdiffstats
path: root/examples/markdown
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-07-28 19:18:11 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-07-28 19:18:11 +0200
commit1aa0a8fa0d8e5dfe9ab09a11ea7c69f71e19795b (patch)
treec498256c2cd79f5f3127a6c906460cb7070f3217 /examples/markdown
parent7445b97df5d3d26ea29a19abea6dea3131ae4230 (diff)
downloadiced-1aa0a8fa0d8e5dfe9ab09a11ea7c69f71e19795b.tar.gz
iced-1aa0a8fa0d8e5dfe9ab09a11ea7c69f71e19795b.tar.bz2
iced-1aa0a8fa0d8e5dfe9ab09a11ea7c69f71e19795b.zip
Enable Markdown highlighting in `markdown` example
Diffstat (limited to 'examples/markdown')
-rw-r--r--examples/markdown/overview.md27
-rw-r--r--examples/markdown/src/main.rs10
2 files changed, 18 insertions, 19 deletions
diff --git a/examples/markdown/overview.md b/examples/markdown/overview.md
index ca3250f1..66336c5b 100644
--- a/examples/markdown/overview.md
+++ b/examples/markdown/overview.md
@@ -1,18 +1,13 @@
# Overview
-Inspired by [The Elm Architecture], Iced expects you to split user interfaces
-into four different concepts:
+Inspired by [The Elm Architecture], Iced expects you to split user interfaces into four different concepts:
* __State__ — the state of your application
-* __Messages__ — user interactions or meaningful events that you care
- about
-* __View logic__ — a way to display your __state__ as widgets that
- may produce __messages__ on user interaction
-* __Update logic__ — a way to react to __messages__ and update your
- __state__
+* __Messages__ — user interactions or meaningful events that you care about
+* __View logic__ — a way to display your __state__ as widgets that may produce __messages__ on user interaction
+* __Update logic__ — a way to react to __messages__ and update your __state__
-We can build something to see how this works! Let's say we want a simple counter
-that can be incremented and decremented using two buttons.
+We can build something to see how this works! Let's say we want a simple counter that can be incremented and decremented using two buttons.
We start by modelling the __state__ of our application:
@@ -23,8 +18,7 @@ struct Counter {
}
```
-Next, we need to define the possible user interactions of our counter:
-the button presses. These interactions are our __messages__:
+Next, we need to define the possible user interactions of our counter: the button presses. These interactions are our __messages__:
```rust
#[derive(Debug, Clone, Copy)]
@@ -34,8 +28,7 @@ pub enum Message {
}
```
-Now, let's show the actual counter by putting it all together in our
-__view logic__:
+Now, let's show the actual counter by putting it all together in our __view logic__:
```rust
use iced::widget::{button, column, text, Column};
@@ -59,8 +52,7 @@ impl Counter {
}
```
-Finally, we need to be able to react to any produced __messages__ and change our
-__state__ accordingly in our __update logic__:
+Finally, we need to be able to react to any produced __messages__ and change our __state__ accordingly in our __update logic__:
```rust
impl Counter {
@@ -90,8 +82,7 @@ fn main() -> iced::Result {
Iced will automatically:
1. Take the result of our __view logic__ and layout its widgets.
- 1. Process events from our system and produce __messages__ for our
- __update logic__.
+ 1. Process events from our system and produce __messages__ for our __update logic__.
1. Draw the resulting user interface.
Read the [book], the [documentation], and the [examples] to learn more!
diff --git a/examples/markdown/src/main.rs b/examples/markdown/src/main.rs
index 173cb389..ade6e453 100644
--- a/examples/markdown/src/main.rs
+++ b/examples/markdown/src/main.rs
@@ -1,3 +1,4 @@
+use iced::highlighter::{self, Highlighter};
use iced::widget::{self, markdown, row, scrollable, text_editor};
use iced::{Element, Fill, Font, Task, Theme};
@@ -63,7 +64,14 @@ impl Markdown {
.on_action(Message::Edit)
.height(Fill)
.padding(10)
- .font(Font::MONOSPACE);
+ .font(Font::MONOSPACE)
+ .highlight::<Highlighter>(
+ highlighter::Settings {
+ theme: highlighter::Theme::Base16Ocean,
+ token: "markdown".to_owned(),
+ },
+ |highlight, _theme| highlight.to_format(),
+ );
let preview = markdown(&self.items, markdown::Settings::default())
.map(Message::LinkClicked);