ワンクリックで
markdown-processing
Use when working with the markdown converter, YouTube format text, timestamp links, or the pulldown-cmark HTML renderer.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when working with the markdown converter, YouTube format text, timestamp links, or the pulldown-cmark HTML renderer.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | markdown-processing |
| description | Use when working with the markdown converter, YouTube format text, timestamp links, or the pulldown-cmark HTML renderer. |
rs-summarizer has two markdown processing stages with different purposes:
convert_markdown_to_youtube_format) — for text storage and YouTube comment compatibilityrender_markdown_to_html) — for web display via pulldown-cmarkFile: src/utils/markdown_converter.rs
Converts markdown to YouTube's limited formatting (only *bold* supported):
** markers: **: → :**, **, → ,**, etc.** to * (YouTube bold)* markers: *: → :*, etc.## Heading at start of text to *Heading*-dot- (avoids YouTube link censoring)com, org, de, us, gov, net, edu, info, io, co.uk, ca, fr, au, jp, ru, ch, it, nl, se, es, br, mx, in, kr
Called in tasks.rs after summary generation:
let youtube_text = convert_markdown_to_youtube_format(&result.summary_text);
db::mark_timestamps_done(db_pool, identifier, &youtube_text).await?;
File: src/utils/markdown_renderer.rs
Renders markdown to HTML for web display using pulldown-cmark 0.13.3:
use pulldown_cmark::{html, Options, Parser};
pub fn render_markdown_to_html(markdown_input: &str) -> String {
let mut options = Options::empty();
options.insert(Options::ENABLE_TABLES);
options.insert(Options::ENABLE_STRIKETHROUGH);
options.insert(Options::ENABLE_TASKLISTS);
options.insert(Options::ENABLE_FOOTNOTES);
let parser = Parser::new_ext(markdown_input, options);
let mut html_output = String::new();
html::push_html(&mut html_output, parser);
html_output
}
Called in render_generation_partial() before passing to the template:
let summary_html = render_markdown_to_html(&s.summary);
// Template uses {{ summary|safe }} to render without double-escaping
Gemini output (markdown)
│
├──→ render_markdown_to_html() ──→ HTML display in browser (via |safe filter)
│
└──→ convert_markdown_to_youtube_format() ──→ stored in DB as timestamped_summary_in_youtube_format
└──→ replace_timestamps_in_html() ──→ clickable YouTube links
src/utils/markdown_converter.rs — YouTube format conversion (ported from Python)src/utils/markdown_renderer.rs — HTML rendering via pulldown-cmarksrc/routes/mod.rs — render_generation_partial() calls bothsource04/tsum/s03_convert_markdown_to_youtube_format.py — Python originalUse when selecting a Gemini model, checking rate limits or quotas, configuring the gemini-rust crate, or debugging model name mismatches.
Create new Kiro skills (Agent Skills). Use when asked to create a skill, write a SKILL.md, add a new workflow to .kiro/skills/, or package agent instructions as a reusable skill.
Use when creating a release, bumping the version, tagging a commit, or working with the GitHub Actions release workflow for rs-summarizer.
Use when editing or creating Askama HTML templates, adding template variables, fixing compile-time template errors, or working with HTMX attributes in templates.
Use when working with tokio::spawn background tasks, the summarization pipeline, task state transitions, or the mark_error/mark_summary_done pattern.
Use when building, running, linting with clippy, formatting with rustfmt, or running cargo commands for the rs-summarizer project.