Test page

1 January 2200

·

3 min read

Title 1

bla bla

Title 1 again

bla bla

Title 2

bla bla

Title 3

bla bla

Title 4

bla bla

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In id risus quis sapien fermentum consectetur id vitae dolor. Morbi volutpat tincidunt risus non dapibus. Integer fermentum quis ipsum non dictum. Duis convallis scelerisque sodales. Suspendisse quis porttitor justo, at faucibus elit. Ut elementum urna quis ullamcorper tempor. Phasellus nec ullamcorper erat. Praesent et porta dolor. Mauris velit turpis, placerat ac justo ultricies, elementum finibus erat. Morbi eget metus vel arcu blandit viverra. Fusce nec enim ultricies dolor aliquam vestibulum. Maecenas tincidunt velit at leo malesuada auctor. Praesent ac tellus laoreet, porttitor mi vitae, ullamcorper dui. Phasellus laoreet eget elit non cursus. Vestibulum blandit, ipsum in suscipit dapibus, dolor eros volutpat elit, in aliquet erat libero vel sapien.

Etiam a mauris at enim iaculis euismod. Mauris suscipit sapien elit, quis placerat eros viverra sit amet. Phasellus volutpat diam diam. Proin vel vestibulum est, nec ultrices augue. Nunc porttitor rutrum eros, id faucibus nisl maximus sed. Fusce quis magna sit amet eros ornare elementum vel a metus. Etiam at elit neque. Curabitur id suscipit neque. Sed ligula velit, tincidunt ut neque eu, convallis vestibulum libero. Nulla vel enim libero. Nunc sit amet enim consectetur, dapibus quam non, fringilla felis.

  • One
  • Two
    • X
    • Y
      • Z
  1. First item
  2. Second item
  3. Third item
    1. Indented item
    2. Indented item
  4. Fourth item
export FOO=bar

The following is bold text.

The following is italized text.

The following is a block quote

The following is some code.

A horizontal rule:


We’re back

This is a link: https://github.com/viperML/neohome.

Extended syntax

Tables:

SyntaxDescriptionTest Text
HeaderTitleHere’s this
ParagraphTextAnd more

Footnotes:

Here’s a simple footnote,1 and here’s a longer one.2

This is striketrough.

  • Write the press release
  • Update the website
  • Contact the media

This is highlighted text.

Or with html: highlighted text.

Automatic urls? https://example.com

code with meta?

Alerts: https://github.com/orgs/community/discussions/16925

NOTE

Highlights information that users should take into account, even when skimming.

TIP

Optional information to help a user be more successful.

IMPORTANT

Crucial information necessary for users to succeed.

WARNING

Critical content demanding immediate user attention due to potential risks.

CAUTION

Negative potential consequences of an action.

ligatures

-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>-

=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>=

<-> <--> <---> <----> <=> <==> <===> <====> :: ::: __

<~~ </ </> /> ~~> == != /= ~= <> === !== !=== =/= =!=

<: := *= *+ <* <*> *> <| <|> |> <. <.> .> +* =* =: :>

(* *) /* */ [| |] {| |} ++ +++ \/ /\ |- -| <!-- <!---

This is new

-# This is new

🙂 🐒 🇪🇸

#[napi]
pub fn highlight(text: String, lang: String) -> Option<String> {
    let mut lang = DynTS::new(lang, STANDARD_CAPTURE_NAMES).ok()?;

    let mut res: Vec<u8> = Vec::new();

    res.extend(r#"< > +"tree-sitter-code">"#.as_bytes());

    let bytes = text.as_bytes();

    for event in lang.highlight(bytes) {
        match event.ok()? {
            HighlightEvent::Source { start, end } => res.extend(&bytes[start..end]),
            HighlightEvent::HighlightStart(Highlight(n)) => {
                let capture = STANDARD_CAPTURE_NAMES[n];
                let classes = capture
                    .split(".")
                    .map(|elem| format!("ts-{elem}"))
                    .collect::<Vec<_>>()
                    .join(" ");
                let text = format!(r#"<span class="{}">"#, classes);
                res.extend(text.as_bytes());
            }
            HighlightEvent::HighlightEnd => {
                let text = format!("</span>");
                res.extend(text.as_bytes());
            }
        };
    }

    res.extend("</code>".as_bytes());

    let res_text = String::from_utf8(res).ok()?;

    Some(res_text)
}

xd

bar content

Footnotes

  1. This is the first footnote.

  2. Here’s one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    { my code }

    Add as many paragraphs as you like.