Repository: bevyengine/bevy
File: tools/export-content/src/app.rs (Rust)

Code before:
                &mut self.migration_guide_state,
                &self.migration_guides,
            ),
        };
        let items = mode_entries.iter().map(|e| e.as_list_entry());
        let list = List::new(items)
            .block(Block::new().title(title).padding(Padding::uniform(1)))
            .highlight_symbol(">>")
            .highlight_style(Color::Green);

        frame.render_stateful_widget(list, block_area, mode_state);

        if let Some(text) = &self.text_entry {
            let text_entry = Paragraph::new(format!("Section Title: {}", text)).fg(Color::Blue);
            frame.render_widget(text_entry, typing_area);
        }
    }

    fn header(&self) -> impl Widget {
        let text = "Content Exporter Tool";
        text.bold().underlined().into_centered_line()
    }

    fn instructions(&self) -> impl Widget {
        let text =
            "▲ ▼ : navagate    shift + ▲ ▼ : re-order    + : insert section    d : delete section    tab : change focus    esc : save and quit";
        Paragraph::new(text)
            .fg(Color::Magenta)
            .centered()
            .wrap(Wrap { trim: false })
    }

    fn write_output(self) -> Result<()> {
        // Write release notes
        let mut file =
            fs::File::create(self.content_dir.join("merged_release_notes.md")).into_diagnostic()?;

        for entry in self.release_notes {
            match entry {
                Entry::Section { title } => write!(file, "# {title}\n\n").into_diagnostic()?,
                Entry::File { metadata, content } => {
                    let title = metadata.title;

                    let authors = metadata
                        .authors
                        .iter()
                        .flatten()
                        .map(|a| format!("\"{a}\""))
                        .collect::<Vec<_>>()
                        .join(", ");


Review comment (suggestion):
```suggestion
            "▲ ▼ : navigate    shift + ▲ ▼ : re-order    + : insert section    d : delete section    tab : change focus    esc : save and quit";
```

Code after:
            ),
        };
        let items = mode_entries.iter().map(|e| e.as_list_entry());
        let list = List::new(items)
            .block(Block::new().title(title).padding(Padding::uniform(1)))
            .highlight_symbol(">>")
            .highlight_style(Color::Green);

        frame.render_stateful_widget(list, block_area, mode_state);

        if let Some(text) = &self.text_entry {
            let text_entry = Paragraph::new(format!("Section Title: {}", text)).fg(Color::Blue);
            frame.render_widget(text_entry, typing_area);
        }
    }

    fn header(&self) -> impl Widget {
        let text = "Content Exporter Tool";
        text.bold().underlined().into_centered_line()
    }

    fn instructions(&self) -> impl Widget {
        let text =
            "▲ ▼ : navigate    shift + ▲ ▼ : re-order    + : insert section    d : delete section    tab : change focus    esc : save and quit";
        Paragraph::new(text)
            .fg(Color::Magenta)
            .centered()
            .wrap(Wrap { trim: false })
    }

    fn write_output(self) -> Result<()> {
        // Write release notes
        let mut file =
            fs::File::create(self.content_dir.join("merged_release_notes.md")).into_diagnostic()?;

        for entry in self.release_notes {
            match entry {
                Entry::Section { title } => write!(file, "# {title}\n\n").into_diagnostic()?,
                Entry::File { metadata, content } => {
                    let title = metadata.title;

                    let authors = metadata
                        .authors
                        .iter()
                        .flatten()
                        .map(|a| format!("\"{a}\""))
                        .collect::<Vec<_>>()
                        .join(", ");

                    let pull_requests = metadata
                        .pull_requests