Evomark cheat paper

Markdowns

More detailed guide for Markdown grammars in Evomark is here.

Heading

# Heading {id:"some-id"}

List

- Item 1
- Item 2
1. Item 1
1. Item 2

Math

$inline-math$
$$
Math without indexing
$$
=== Equation
Indexed math container
===

Inline decoration

`Code`
**Strong**
*Italic*

Container

More detailed guide for container, config and inline commands is here.
What a general container looks like
=== Container'sName {container's attributes}
Container's content
===
At least 3 characters are needed. The closer should be as long as its opener.

Common containers

Theorem, Figure, Equation

=== Theorem {id:"the-id", title:"the-title"}
Some content
===
=== Figure {id:"the-id",title:"the-title",src:"./the/path"}
The caption
===
=== Equation {id:"the-id",title:"the-title"}
E=mc^2
===

Code, Table

You can use ===> and ===| to open and close a container.
==> Code {lang:"javascript"}
function helloWorld(){
    console.log("hello world!")
}
==|
==== Table
[[item]]
Name = "Mike"
Subject = "Math"
Grade = "99"
[[item]]
Name = "Sarah"
Subject = "English"
Grade = "100"
~~~~
You can put the caption after the fence
====

==== Table {src:"some.file.toml"} ====

One line containers

=== Title ===
=== Image {src:"", type:"normal/wide/narrow"} ===
=== CitationList ===
=== PaperHead ===
=== ContentTable ===

Inline command

Inline commands must begin with brackets.
[#referenceId]
[@citationKey]
[$someCommand]()
[$someCommand]{}
[$someCommand](){}
() accepts plain text and {} accepts a JSON key-value pairs. You can go to Section 0.5.2
for an example of using []().

Config

---
title = "You config in TOML"
---
--- {lang:"yaml"}
You config in YAML
---

Config on a project

You can put the following codes in the project_env.toml file in your project root. It will automatically being imported.
chatUrl = "Your link to the group channel"
gitRepoUrl = "Your link to the Git repo"
linearize = ["link-to-page1","link-to-page2","link-to-page3"]
bibPath = "path/to/your/bib-file"
toml

Config on every page

title = "Your title"
prevPage = "your-page-path"
nextPage.title = "Google"
nextPage.link = "https://www.google.com"
toml

Authorship

Define affiliations

[affils]
uoft = "Department of Computer Science, University of Toronto, Canada"
someUniversity = "The University's Name"
toml

Define authors

[[author]]
givenName = "Foo"
familyName = "Bar"
affil = ["uoft","someUniversity"]
note = "aFootNote"
[[author]]
givenName = "Foo Jr."
familyName = "Bar"
affil = ["someUniversity"]
note = "email"
toml

Define annotation

[authorNotes]
aFootNote = "These authors contributed not equal"
email = "zijian.academic@outlook.com"
toml
You can use === PaperHead === to show the authorship configured. You can put the authorship in a page or define it globally in project_env.toml.

Math macros

As the LaTeX math contents usually contains the symbol \, which needed to be escaped by \\ in YAML and JSON, we suggest only use TOML for it. In TOML, you can use '''contents ''' to write literal contents. ''' is three single quotes.
You can write your math macros as
[mathMacros]
ket = '''|#1\rangle'''
bra = '''\langle #1|'''
trace = '''\operatorname{Tr}'''
expectv = '''\langle #1\rangle'''
toml
You may include them in a math_macros.toml file in the project root and then import them by --- {src:"math_macros.toml"} ---.

Slides

More detailed guide for slides is here.

Simplest slides

=======> SlidesBox

# Slide 1

--- Slide ---

# Slide 2

--- Slide
title = ""
section = ""
---

# Slide 3

=======|

Slides animation

=======> SlidesBox

=== Box {clk:""}
Show first
===

=== Box {clk:"then"}
Show first
===

[$clk](then) Show first

- [$clk] Show second
- [$clk] Show third

========|

Voices

=======> SlidesBox {voiceLang:"default-english/chinese/japanese"}

# A heading {clk:""}
=== Voice
I will be played after the heading shows
====

========|