42 lines
1.4 KiB
HTML
42 lines
1.4 KiB
HTML
<. if p.markups.is_empty() {.>
|
|
<.= p.text .>
|
|
<.} else {.>
|
|
<. let mut cur: usize = 0; .>
|
|
<. for markup in &p.markups {.>
|
|
<. if markup.start != 0 {.>
|
|
<.= &p.text.substring(cur, (markup.start -1) as usize) .>
|
|
<.}.>
|
|
<. cur = (markup.end) as usize; .>
|
|
<. let text = &p.text.slice(markup.start as usize..markup.end as usize); .>
|
|
|
|
<. if markup.type_ == "A" {.>
|
|
<. if let Some(anchor_type) = &markup.anchor_type {.>
|
|
<. if anchor_type == "LINK" {.>
|
|
<a rel="noreferrer" href="<.= markup.href.as_ref().unwrap() .>"><.= text .></a>
|
|
<.} else if anchor_type == "USER" {.>
|
|
<a
|
|
rel="noreferrer"
|
|
href="https://medium.com/u/<.= markup.user_id.as_ref().unwrap() .>"
|
|
>
|
|
<.= text .>
|
|
</a>
|
|
<.} else {.>
|
|
<. log::error!("unknown markup.anchor_type: {:?} post id {}", anchor_type, id); .>
|
|
<span><.= text .></span>
|
|
<.}.>
|
|
<.}.>
|
|
<.} else if markup.type_ == "EM" {.>
|
|
<em><.= text .></em>
|
|
<.} else if markup.type_ == "STRONG" {.>
|
|
<strong><.= text .></strong>
|
|
<.} else if markup.type_ == "CODE" {.>
|
|
<code><.= text .></code>
|
|
<.} else {.>
|
|
<. log::error!("unknown markup.type_: {:?} post id {}", markup.type_, id); .>
|
|
<span><.= text .></span>
|
|
<.}.>
|
|
<.}.>
|
|
<. if cur < p.text.len() {.>
|
|
<.= p.text.slice(cur..) .>
|
|
<.}.>
|
|
<.}.>
|