Markdown
If you've had a loot at the REPR
section, you might have noticed that Term is doing some fancy print out of the functions docstrings. That's because docstrings in Julia are represented as Markdown text and Term can parse it nicely!
Let's have a look.
import Term: tprintln
using Term.TermMarkdown
using Markdown
mymd = md"""
# This is a Markdown file
This is a paragraph of text.
This is a list:
* one
* two
"""
This is a Markdown file
This is a paragraph of text. This is a list:
one
two
and now in Term:
import Term: tprintln, tprint
tprintln(parse_md(mymd))
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ This is a Markdown file ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
This is a paragraph of text. This is a list:
• one
• two
or more simply:
tprint(mymd)
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ This is a Markdown file ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
This is a paragraph of text. This is a list:
• one
• two
Anything that goes into a Julia's Markdown object can be rendered nicely.
Maths
tprint(md"""
You markdown can include in-line latex ``\sqrt(\gamma)`` and maths in a new line too:
!!! warning
this is where you'd put multi-line math, but it doesn't work in Documenter - sorry.
Have a go in your own REPL!
""")
You markdown can include in-line latex √(γ) and maths in
a new line too:
╭──── Warning ─────────────────────────────────────╮
│ this is where you'd put multi-line math, but │
│ it doesn't │
│ work in Documenter - sorry. Have a go in your │
│ own REPL! │
╰──────────────────────────────────────────────────╯
Code
This is what you'd do to show code:
tprint("""
"this function is a bit pointless"
function my_useless_fn(x)
println("I don't do much!")
return x
end
""")
tprint(md"""
!!! warning
this is where you'd put multi-line code, but it doesn't work in Documenter - sorry.
Have a go in your own REPL!
""")
╭──── Warning ─────────────────────────────────────╮
│ this is where you'd put multi-line code, but │
│ it doesn't │
│ work in Documenter - sorry. Have a go in your │
│ own REPL! │
╰──────────────────────────────────────────────────╯
Quotes and admonitions
tprint(md"""
You can use "quotes" to highlight a section:
> Multi-line quotes can be helpful to make a
> paragraph stand out, so that users won't miss it!
but if you really need to grab someone's attention, use admonitions:
!!! note
You can use different levels
!!! warning
to send different messages
!!! danger
to your reader
!!! tip "Wow!"
Turns out that admonitions can be pretty useful!
What will you use them for?
""")
You can use "quotes" to highlight a section:
> “Multi-line quotes can be helpful to make a paragraph
┃ stand
┃ out, so that users won't miss it!”
but if you really need to grab someone's attention, use
admonitions:
╭──── Note ────────────────────────────────────────╮
│ You can use different levels │
╰──────────────────────────────────────────────────╯
╭──── Warning ─────────────────────────────────────╮
│ to send different messages │
╰──────────────────────────────────────────────────╯
╭──── Danger ──────────────────────────────────────╮
│ to your reader │
╰──────────────────────────────────────────────────╯
╭──── Wow! ────────────────────────────────────────╮
│ Turns out that admonitions can be pretty │
│ useful! │
│ What will │
│ you use them for? │
╰──────────────────────────────────────────────────╯
Lists
tprint(md"""
Of course you can have classic lists:
* item one
* item two
* And a sublist:
+ sub-item one
+ sub-item two
and ordered lists too:
1. item one
2. item two
3. item three
""")
Of course you can have classic lists:
• item one
• item two
• And a sublist:
• sub-item one
• sub-item two
and ordered lists too:
1. item one
2. item two
3. item three
Tables
tprint(md"""
!!! note "Tables"
You can use the [Markdown table syntax](https://www.markdownguide.org/extended-syntax/#tables)
to insert tables - Term.jl will convert them to Table object!
| Term | handles | tables|
|:---------- | ---------- |:------------:|
| Row `1` | Column `2` | |
| *Row* 2 | **Row** 2 | Column ``3`` |
""")
Term.Consoles.Console(24, 60)
and more (links, footnotes, headers of different levels, etc.)