Convert

or ctrl + return

Sections


blocks.org

#+CAPTION: block caption
#+BEGIN_SRC bash :results raw
echo "a bash source block"

function hello {
    echo Hello World!
}

hello
#+END_SRC

#+BEGIN_SRC
a source block without a language
#+END_SRC

#+BEGIN_EXAMPLE foo bar baz
an example block with
multiple lines including


empty lines!

it also has multiple parameters

src, example & export blocks treat their content as raw text
/inline/ *markup* is ignored
      and whitespace is honored and not removed
#+END_EXAMPLE

: examples like this
: are also supported
:
: note that /inline/ *markup* ignored

#+BEGIN_QUOTE
Mongodb is *webscale*. (source: [[http://www.mongodb-is-web-scale.com/][mongodb-is-web-scale]])

blocks like the quote block parse their content and can contain
- lists
- inline /markup/
- tables
  | foo |
  | bar |
  | baz |
- paragraphs
- ...


      also whitespace is not significant
            and superfluous whitespace (at the beginning of the line) is removed
#+END_QUOTE

#+BEGIN_EXPORT html
<script>
console.log("Hello World!")
</script>
#+END_EXPORT

- list item 1
  blocks can contain unindented lines that would normally end a list item
  #+BEGIN_EXAMPLE
this line is not indented - if it was outside of a block the list item would end
  #+END_EXAMPLE
  #+BEGIN_QUOTE
this line is not indented - if it was outside of a block the list item would end
  #+END_QUOTE
  now we're outside the block again and the following unindented line will be outside of the list item
this unindented line is outside of the list item
- list item 2
  #+BEGIN_SRC
  #+BEGIN_EXAMPLE
  #+END_SRC
  #+END_EXAMPLE

  #+BEGIN_QUOTE
  #+BEGIN_EXAMPLE
  #+END_QUOTE
  #+END_EXAMPLE
echo "a bash source block"

function hello {
    echo Hello World!
}

hello
block caption
a source block without a language
an example block with
multiple lines including


empty lines!

it also has multiple parameters

src, example & export blocks treat their content as raw text
/inline/ *markup* is ignored
      and whitespace is honored and not removed
examples like this
are also supported

note that /inline/ *markup* ignored

Mongodb is webscale. (source: mongodb-is-web-scale)

blocks like the quote block parse their content and can contain

  • lists

  • inline markup

  • tables

    foo
    bar
    baz
  • paragraphs

also whitespace is not significant and superfluous whitespace (at the beginning of the line) is removed

this unindented line is outside of the list item

captions.org

Anything can be captioned.

#+CAPTION: captioned soure block
#+BEGIN_SRC sh
echo "i have a caption!"
#+END_SRC

#+CAPTION: captioned link (image in this case)
[[https://placekitten.com/200/200#.png]]

note that the whole paragraph is captioned, so a linebreak is needed for images to caption correctly

#+CAPTION: captioned link (image in this case)
[[https://placekitten.com/200/200#.png]]
see?

Anything can be captioned.

echo "i have a caption!"
captioned soure block
https://placekitten.com/200/200#.png
captioned link (image in this case)

note that the whole paragraph is captioned, so a linebreak is needed for images to caption correctly

https://placekitten.com/200/200#.png see?

captioned link (image in this case)

footnotes_in_headline.org

* Title [fn:1]

[fn:1] this test file just exists to reproduce a bug with footnotes in headlines - that only happens in very specific circumstances.
The TLDR is:
- HTMLWriter.footnotes should be a pointer field. I didn't notice my error as go translated my pointer-method calls on
  non-pointer values rather than complaining - i.e. =footnotes.add()= transparently gets translated to =(&footnotes).add()= ([[https://golang.org/ref/spec#Calls][docs]]).
- Headlines have to be htmlified twice - once for the outline and once for the headline itself. To do so we have to copy the writer
- Copying the writer copies footnotes - which contains a map and a slice. Changes to the map will always be reflected in the original map.
  Changes to the slice will only be reflected if the slice doesn't grow.
- We can thus end up with a footnote being in the mapping but not the slice - and get an index out of range error.

Title 1


1

this test file just exists to reproduce a bug with footnotes in headlines - that only happens in very specific circumstances. The TLDR is:

  • HTMLWriter.footnotes should be a pointer field. I didn't notice my error as go translated my pointer-method calls on non-pointer values rather than complaining - i.e. footnotes.add() transparently gets translated to (&footnotes).add() (docs).

  • Headlines have to be htmlified twice - once for the outline and once for the headline itself. To do so we have to copy the writer

  • Copying the writer copies footnotes - which contains a map and a slice. Changes to the map will always be reflected in the original map. Changes to the slice will only be reflected if the slice doesn't grow.

  • We can thus end up with a footnote being in the mapping but not the slice - and get an index out of range error.

footnotes.org

* Using some footnotes
- normal footnote reference [fn:1] [fn:6] [fn:foo-bar] (footnote names can be anything in the format =[\w-]=)
- further references to the same footnote should not [fn:1] render duplicates in the footnote list
- inline footnotes are also supported via [fn:2:the inline footnote definition].
- anonymous inline footnotes are also supported via [fn::the anonymous inline footnote definition].
- Footnote definitions are not printed where they appear.
  Rather, they are gathered and exported at the end of the document in the footnote section. [fn:4]
- footnotes that reference a non-existant definition are rendered but log a warning [fn:does-not-exist]

[fn:4] so this definition will not be at the end of this section in the exported document.
Rather, it will be somewhere down below in the footnotes section.

[fn:5] this definition will also not be exported here - not only that, it will be overwritten by a definition
of the same name later on in the document. That will log a warning but carry on nonetheless.
* Footnotes
Please note that the footnotes section is not automatically excluded from the export like in emacs. [fn:7]

[fn:foo-bar] yolo

[fn:1] https://www.example.com
- footnotes can contain *markup*
- and other elements
  - like blocks
    #+BEGIN_SRC
    other non-plain
    #+END_SRC
  - and tables
    | 1 | a |
    | 2 | b |
    | 3 | c |

[fn:3] [[http://example.com/unused-footnote][example.com/unused-footnote]]

[fn:5] another unused footnote (this definition overwrites the previous definition of =fn:5=)

[fn:6]

Footnotes break after two consecutive empty lines - just like paragraphs - see https://orgmode.org/worg/dev/org-syntax.html.
This shouldn't happen when the definition line and the line after that are empty.


[fn:7]
There's multiple reasons for that. Among others, doing so requires i18n (to recognize the section) and silently
hides content before and after the footnotes.



this is not part of [fn:7] anymore as there are 2 blank lines in between!

Using some footnotes

Footnotes

Please note that the footnotes section is not automatically excluded from the export like in emacs. 8

this is not part of 8 anymore as there are 2 blank lines in between!


1

https://www.example.com

  • footnotes can contain markup

  • and other elements

    • like blocks

      other non-plain
    • and tables

      1 a
      2 b
      3 c
2

Footnotes break after two consecutive empty lines - just like paragraphs - see https://orgmode.org/worg/dev/org-syntax.html. This shouldn't happen when the definition line and the line after that are empty.

3

yolo

4

the inline footnote definition

5

the anonymous inline footnote definition

6

so this definition will not be at the end of this section in the exported document. Rather, it will be somewhere down below in the footnotes section.

8

There's multiple reasons for that. Among others, doing so requires i18n (to recognize the section) and silently hides content before and after the footnotes.

headlines.org

#+SETUPFILE: setup_file_org
* Simple Headline [1/2]
- [X] checked
- [ ] unchecked
- note that statistic tokens are marked up anywhere
  not just where they are actually meant to be - even here > [100%] <
  (Org mode proper does the same)
* TODO [#B] Headline with todo status & priority
* DONE Headline with TODO status
:PROPERTIES:
:custom_id: this-will-be-the-id-of-the-headline
:note: property drawers are not exported as html like other drawers
:END:

we can link to headlines that define a custom_id: [[#this-will-be-the-id-of-the-headline]]
* [#A] Headline with tags & priority                                :foo:bar:
Still outside the drawer
:DRAWERNAME:
This is inside the drawer
:END:
Still outside the drawer
* CUSTOM headline with custom status
it's possible to use =#+SETUPFILE= - in this case the setup file contains the following

#+INCLUDE: "setup_file_org" src org
* excluded headline                                                :custom_noexport:
this headline and it's content are not exported as it is marked with an =EXCLUDE_TAGS= tag.
By default =EXCLUDE_TAGS= is just =:noexport:=.

* malformed property drawer
:PROPERTIES:
not a property
:END:

Simple Headline [1/2]

TODO [B] Headline with todo status & priority

DONE Headline with TODO status

we can link to headlines that define a custom_id: #this-will-be-the-id-of-the-headline

[A] Headline with tags & priority   foo bar

Still outside the drawer

This is inside the drawer

Still outside the drawer

CUSTOM headline with custom status

it's possible to use #+SETUPFILE - in this case the setup file contains the following

#+TODO: TODO DONE CUSTOM
#+EXCLUDE_TAGS: noexport custom_noexport

malformed property drawer

:PROPERTIES: not a property

:END:

inline.org

- /emphasis/ and a hard line break \\
  see? \\
  also hard line breaks not followed by a newline get ignored, see \\
- /.emphasis with dot border chars./
- /emphasis with a slash/inside/
- /emphasis/ followed by raw text with slash /
- ->/not an emphasis/<-
- links with slashes do not become /emphasis/: [[https://somelinkshouldntrenderaccidentalemphasis.com]]/ /emphasis/
- _underlined_ *bold*  =verbatim= ~code~ +strikethrough+
- *bold string with an *asterisk inside*
- =multiline emphasis is
  supported - and respects MaxEmphasisNewLines (default: 1)=
  /so this
  is emphasized/

  /but
  this
  is
  not emphasized/
- empty emphasis markers like ++ // __ and so on are ignored
- use _{} for subscript_{sub} and ^{} for superscript^{super}
- links
  1. regular link [[https://example.com]] link without description
  2. regular link [[https://example.com][example.com]] link with description
  3. regular link to a file (image) [[file:my-img.png]]
  4. regular link to a file (video) [[my-video.mp4]]
  5. regular link to http (image) [[http://placekitten.com/200/200#.png]]
  6. regular link to https (image) [[https://placekitten.com/200/200#.png]]
  7. regular link enclosed in [] [[[https://www.example.com]]] [[[https://www.example.com][example.com]]]
  8. auto link, i.e. not inside =\[[square brackets]\]= https://www.example.com
- timestamps
  - <2019-01-06>
  - <2019-01-06 Sun>
  - <2019-01-06 Sun 18:00>
  - <2019-01-06 Sun 18:00 +1w>
  - <2019-01-06 18:00>
  - <2019-01-06 18:00 +1w>

keywords.org

#+CAPTION: and _multiple_
#+CAPTION: lines of *captions*!
#+ATTR_HTML: :class a b
#+ATTR_HTML: :id it :class c d
#+BEGIN_SRC sh
echo "a bash source block with custom html attributes"
#+END_SRC

and an image with custom html attributes and a caption
#+CAPTION: kittens!
#+ATTR_HTML: :style height: 100%; :id overwritten
#+ATTR_HTML: :style border: 10px solid black; :id kittens
[[https://placekitten.com/200/200#.png]]

#+NAME: foo
named paragraph

#+NAME: bar
#+begin_src
named block
#+end_src
echo "a bash source block with custom html attributes"
and multiple lines of captions!

and an image with custom html attributes and a caption

https://placekitten.com/200/200#.png
kittens!

named paragraph

named block

latex.org

without latex delimiters the =_{i=1}= in =\sum_{i=1}^n a_n= is interpreted as subscript.
we support =\(...\)=, =\[...\]=, =$$...$$= and =\begin{$env}...\end{$env}= as latex fragment delimiters.

- \sum_{i=1}^n a_n (without latex delimiter)
- \(\sum_{i=1}^n a_n\)
- \[\sum_{i=1}^n a_n\]
- $$\sum_{i=1}^n a_n$$
- \begin{xyz}\sum_{i=1}^n a_n\end{xyz}
- \begin{xyz}
  \sum_{i=1}^n a_n
  \end{xyz}

without latex delimiters the _{i=1} in \sum_{i=1}^n a_n is interpreted as subscript. we support \(...\), \[...\], $$...$$ and \begin{$env}...\end{$env} as latex fragment delimiters.

lists.org

- [ ] unordered list item 1
-

  list item with empty first and second line \\
  normally an empty line breaks the list item - but we make an exception for the first line and don't count it towards that limit
- unordered list item 2 - with ~inline~ /markup/
  1. [-] ordered sublist item 1
     a) [X] ordered sublist item 1
     b) [ ] ordered sublist item 2
     c) [X] ordered sublist item 3
  2. ordered sublist item 2
  3.

     list item with empty first and second line - see above
- [X] unordered list item 3 - and a [[https://example.com][link]]
  and some lines of text
  1. and another subitem
     #+BEGIN_SRC sh
     echo with a block
     #+END_SRC
  2. and another one with a table
     | a | b | c |
     |---+---+---|
     | 1 | 2 | 3 |

     and text with an empty line in between as well!
- unordered list item 4
  : with an example
  : 
  : that spans multiple lines


descriptive lists
- [ ] term :: details
          continued details
- [ ] details without a term
- [X] term ::
          details on a new line
- term ::

          details on a new line (with an empty line in between)
          *continued*
          #+BEGIN_SRC bash
          echo "Hello World!"
          #+END_SRC

some list termination tests

- unordered 1
- unordered 2
1. ordered 1
2. ordered 2


1. ordered 1
2. ordered 2
- unordered 1
- unordered 2


1. ordered 1
2. ordered 2
- unordered descriptive :: 1
- unordered descriptive :: 2


1. ordered descriptive :: 1
2. ordered descriptive :: 2
- unordered 1
- unordered 2

descriptive lists

term

details continued details

?

details without a term

term

details on a new line

term

details on a new line (with an empty line in between) continued

echo "Hello World!"

some list termination tests

  1. ordered 1

  2. ordered 2

  1. ordered 1

  2. ordered 2

  1. ordered 1

  2. ordered 2

unordered descriptive

1

unordered descriptive

2

ordered descriptive

1

ordered descriptive

2

misc.org

** issues from goorgeous (free test cases, yay!)
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/19][#19]]: Support #+HTML
#+HTML: <p style="border: 1px dotted grey">neato!</p>
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/29][#29:]] Support verse block
#+BEGIN_VERSE
This
*is*
verse
#+END_VERSE

#+BEGIN_CUSTOM
or even a *totally* /custom/ kind of block
crazy ain't it?
#+END_CUSTOM
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/30][#30]]: Support #+SETUPFILE
see =./headlines.org=
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/31][#31]]: Support #+INCLUDE
Note that only src/example/export block inclusion is supported for now.
There's quite a lot more to include (see the [[https://orgmode.org/manual/Include-files.html][org manual for include files]]) but I
don't have a use case for this yet and stuff like namespacing footnotes of included files
adds quite a bit of complexity.

for now files can be included as:
- src block
  #+INCLUDE: "./headlines.org" src org
- export block
  #+INCLUDE: "./paragraphs.html" export html
- example block
  #+INCLUDE: "../../.travis.yml" example yaml
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/33][#33]]: Wrong output when mixing html with Org mode
#+HTML: <div class="outline-2" id="meta" style="color: green;">
| *foo* | foo |
| *bar* | bar |
#+HTML: </div>
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/41][#41]]: Support Table Of Contents
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/46][#46]]: Support for symbols like ndash and mdash
- ndash --
- mdash ---
- ellipsis ...
- acute \Aacute and so on
- note that ------ is replaced with 2 mdashes and .... becomes ellipsis+. and so on - that's how org also does it



*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/47][#47:]] Consecutive ~code~ wrapped text gets joined
either ~this~ or ~that~ foo.
either ~this~
or ~that~ foo.
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/50][#50]]: LineBreaks in lists are preserved
- this list item
  has
  multiple
  linbreaks - but it's still just one paragraph (i.e. no line breaks are rendered)
- foobar
1. same
   goes
   for
   ordered
   lists
2. foo
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/68][#68]]: Quote block with inline markup
#+BEGIN_QUOTE
[[https://www.example.com][/this/ *is* _markup_!]]
#+END_QUOTE
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/72][#72]]: Support for #+ATTR_HTML
#+ATTR_HTML: :alt Go is fine though. :id gopher-image
#+ATTR_HTML: :width 300 :style border:2px solid black;
[[https://golang.org/doc/gopher/pkg.png]]
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/75][#75]]: Not parsing nested lists correctly
- bullet 1
  - sub bullet

*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/77][#77]]: Recognize =code=--- as code plus dash
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/78][#78]]: Emphasis at beginning of line
/italics/


Text
/italics/
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/82][#82]]: Crash on empty headline
**** 
just a space as title...
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/84][#84]]: Paragraphs that are not followed by an empty line are not parsed correctly
**** Foo
Foo paragraph.
**** Bar
Bar paragraph
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/86][#86]]: Multiple hyphens not converted to dashes
just like #46
- =--= -> -- (en dash)
- =---= -> --- (em dash)

also, consecutive dashes inside
- inline code =--= =---= and verbatim ~--~ ~---~
- src/example/export blocks should not be converted!
  #+BEGIN_SRC sh
  --, ---
  #+END_SRC

  #+BEGIN_EXAMPLE
  --, ---
  #+END_EXAMPLE

  #+BEGIN_EXPORT html
  --, ---
  #+END_EXPORT

  : --, ---

*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/87][#87]]: Markup in footnotes is rendered literally
footnotes can contain *markup* - and other elements and stuff [fn:1] [fn:2:that also goes for *inline* footnote /definitions/]
*** DONE [[https://github.com/chaseadamsio/goorgeous/issues/92][#92]]: src blocks only render in caps
The behaviour of Org mode =<s TAB= changed and it now inserts lowercased src blocks (go-org already handled this one)
- lowercased:
  #+begin_src bash
  uname -a
  #+end_src
- uppercased
  #+BEGIN_SRC bash
  uname -a
  #+END_SRC
** issues (wrongly) filed with hugo
*** [[https://github.com/gohugoio/hugo/issues/3874][#3874]] exporting images in org mode
Hello, I'm writing hugo blogs using org-mode.

When inserting an image link like [[/home/amos/Pictures/Screenshots/img-2017-09-11-165647.png]], hugo doesn't export the image.
*** [[https://github.com/gohugoio/hugo/issues/4006][#4006]] source code blocks in org not rendered correctly
    #+BEGIN_SRC emacs-lisp
    (defun small-shell ()
      (interactive)
      (split-window-vertically)
      (other-window 1)
      (shrink-window (- (window-height) 12))
      (ansi-term))
    #+END_SRC
** misc fuzz / regression / edge case
*** index out of range in headline priority parsing
**** [#B
*** index out of range in explicit line break parsing
0\\ 

* Footnotes

[fn:1] a footnote /with/ *markup*
- and a *list*
- because that's possible

issues from goorgeous (free test cases, yay!)

DONE #19: Support #+HTML

neato!

DONE #29: Support verse block

This is verse

or even a totally custom kind of block crazy ain't it?

DONE #30: Support #+SETUPFILE

see ./headlines.org

DONE #31: Support #+INCLUDE

Note that only src/example/export block inclusion is supported for now. There's quite a lot more to include (see the org manual for include files) but I don't have a use case for this yet and stuff like namespacing footnotes of included files adds quite a bit of complexity.

for now files can be included as:

DONE #33: Wrong output when mixing html with Org mode

foo foo
bar bar

DONE #41: Support Table Of Contents

DONE #46: Support for symbols like ndash and mdash

DONE #47: Consecutive code wrapped text gets joined

either this or that foo. either this or that foo.

DONE #50: LineBreaks in lists are preserved

  1. same goes for ordered lists

  2. foo

DONE #68: Quote block with inline markup

this is markup!

DONE #72: Support for #+ATTR_HTML

Go is fine though.

DONE #75: Not parsing nested lists correctly

DONE #77: Recognize code— as code plus dash

DONE #78: Emphasis at beginning of line

italics

Text italics

DONE #82: Crash on empty headline

just a space as title…

DONE #84: Paragraphs that are not followed by an empty line are not parsed correctly

Foo

Foo paragraph.

Bar

Bar paragraph

DONE #86: Multiple hyphens not converted to dashes

just like #46

also, consecutive dashes inside

DONE #87: Markup in footnotes is rendered literally

footnotes can contain markup - and other elements and stuff 1 2

DONE #92: src blocks only render in caps

The behaviour of Org mode <s TAB changed and it now inserts lowercased src blocks (go-org already handled this one)

issues (wrongly) filed with hugo

#3874 exporting images in org mode

Hello, I'm writing hugo blogs using org-mode.

When inserting an image link like /home/amos/Pictures/Screenshots/img-2017-09-11-165647.png, hugo doesn't export the image.

#4006 source code blocks in org not rendered correctly

(defun small-shell ()
  (interactive)
  (split-window-vertically)
  (other-window 1)
  (shrink-window (- (window-height) 12))
  (ansi-term))

misc fuzz / regression / edge case

index out of range in headline priority parsing

[#B

index out of range in explicit line break parsing

0\\

Footnotes


1

a footnote with markup

  • and a list

  • because that's possible

2

that also goes for inline footnote definitions

options.org

#+OPTIONS: toc:nil f:nil e:nil

* DONE [#A] =#+OPTIONS:= toggles supported by =go-org=                 :tag1:tag2:
=go-org= supports multiple export toggles as described in the [[https://orgmode.org/manual/Export-settings.html][export settings]] section of the Org mode manual.
By default (most of?) those toggles are enabled. This file starts with =#+OPTIONS: toc:nil f:nil e:nil= and thus
disables the table of contents, footnotes & entities.
That means, entities like =---= --- (mdash) will be left untouched, footnotes like =[fn:1]= [fn:1] will
not be exported and there won't be a table of contents at the top.
As buffer options are merged with the defaults, the above headline will be exported *with* priority, todo status & tags.


| key  | description                                               |
|------+-----------------------------------------------------------|
| f    | Include footnotes (definitions & links)                   |
| e    | Include entities                                          |
| toc  | Include table of contents (outline)                       |
|------+-----------------------------------------------------------|
| pri  | Include priority =[#A]=, =[#B]=, =[#C]= in headline title |
| todo | Include todo status in headline title                     |
| tags | Include tags in headline title                            |

[fn:1] This footnote definition won't be printed

DONE [A] #+OPTIONS: toggles supported by go-org   tag1 tag2

go-org supports multiple export toggles as described in the export settings section of the Org mode manual. By default (most of?) those toggles are enabled. This file starts with #+OPTIONS: toc:nil f:nil e:nil and thus disables the table of contents, footnotes & entities. That means, entities like --- --- (mdash) will be left untouched, footnotes like [fn:1] will not be exported and there won't be a table of contents at the top. As buffer options are merged with the defaults, the above headline will be exported with priority, todo status & tags.

key description
f Include footnotes (definitions & links)
e Include entities
toc Include table of contents (outline)
pri Include priority [#A], [#B], [#C] in headline title
todo Include todo status in headline title
tags Include tags in headline title

paragraphs.org

Paragraphs are the default element.

Empty lines and other elements end paragraphs - but paragraphs
can
obviously
span
multiple
lines.

Paragraphs can contain inline markup like /emphasis/ *strong*  and links [[https://www.example.com][example.com]] and stuff.

Paragraphs are the default element.

Empty lines and other elements end paragraphs - but paragraphs can obviously span multiple lines.

Paragraphs can contain inline markup like emphasis strong and links example.com and stuff.

tables.org

#+CAPTION: table with separator before and after header
|---+---+---|
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |

#+CAPTION: table with separator after header
| a | b | c |
|---+---+---|
| 1 | 2 | 3 |

#+CAPTION: table with unicode characters
| Character | Org       | Rendered HTML |
|-----------+-----------+---------------|
| Hyphen    | =a - b=   | a - b         |
| Ndash     | =a -- b=  | a – b         |
| Mdash     | =a --- b= | a — b         |
| Ellipsis  | =a ... b= | a … b         |

#+CAPTION: table without header (but separator before)
|---+---+---|
| 1 | 2 | 3 |

#+CAPTION: table without header
| 1 | 2 | 3 |

#+CAPTION: table with aligned columns
| left aligned | right aligned | center aligned |
|--------------+---------------+----------------|
| <l>          |           <r> |       <c>      |
| 42           |            42 |       42       |
| foobar       |        foobar |     foobar     |

#+CAPTION: table with right aligned columns (because numbers)
| long column a | long column b | long column c |
|---------------+---------------+---------------|
|             1 |             2 |             3 |
a b c
1 2 3
table with separator before and after header
a b c
1 2 3
table with separator after header
Character Org Rendered HTML
Hyphen a - b a - b
Ndash a -- b a – b
Mdash a --- b a — b
Ellipsis a ... b a … b
table with unicode characters
1 2 3
table without header (but separator before)
1 2 3
table without header
left aligned right aligned center aligned
42 42 42
foobar foobar foobar
table with aligned columns
long column a long column b long column c
1 2 3
table with right aligned columns (because numbers)