Add a new meta-FAQ :)
[worg.git] / org-tutorials / org-publish-html-tutorial.org
blob90f79453bfe08e93f16d05154a58f52280747ed5
1 #+OPTIONS:    H:3 num:nil toc:t \n:nil ::t |:t ^:t -:t f:t *:t tex:t d:(HIDE) tags:not-in-toc
2 #+STARTUP:    align fold nodlcheck hidestars oddeven lognotestate
3 #+SEQ_TODO:   TODO(t) INPROGRESS(i) WAITING(w@) | DONE(d) CANCELED(c@)
4 #+TAGS:       Write(w) Update(u) Fix(f) Check(c)
5 #+TITLE:      Publishing Org-mode files to HTML
6 #+AUTHOR:     Sebastian Rose
7 #+EMAIL:      sebastian_rose gmx de
8 #+LANGUAGE:   en
9 #+PRIORITIES: A C B
10 #+CATEGORY:   worg-tutorial
13 [[file:../index.org][{Back to Worg's index}]]
15 * Introduction
17   This Tutorial describes one of many ways to publishing Org-mode files to
18   XHTML. We use the publishing mechanism to keep the =*.html= files separated
19   from our =*.org= files and to access them via web browser. Simply exporting the
20   Org-mode files to HTML would leave them in =~/org/=.
22   The XHTML files we create will work every where, on any host, with or without
23   network access, and even when accessed through the =file:///= protocol. To
24   achieve this goal, we use
26   - no absolute paths in HTML,
27   - no server side scripting to navigate our output directories,
28   - no =base= element (which is optional as of XHTML 1.0 strict) and
29   - no software, but emacs, Org-mode and a web browser.
31   All this means, we are able to check and use the result of work immediately,
32   everywhere.
34 * Basics
36   Throughout this tutorial, let's assume that all our Org-mode files live beneath
37   =~/org/= and we publish them to =~/public_html/=.
39   Let's further assume you're already familiar with the note taking basics in
40   org and able to add a little content to the Org-mode files we add to our project
41   during this tutorial. Please add at least one headline to each of the files.
43   The first thing to do is to create the folder =~/org=. This is where our notes
44   files live. Inside =~/org/= we have a folder =css/= for stylesheets and
45   scripts, and a folder called =img/= (guess what's in there).
47   The first file we add to that folder (and to subdirectories later on) is called
48   =index.org=. This name was choosen, since Org will publish the files to those
49   with the basename of the source file plus the extension =.html= [fn:1]. Thus
50   =~/org/index.org= will once be =~/public_html/index.html= -- the startpage.
52   Let's add another file and call it =~/org/remember.org=. After adding a
53   stylesheet, =~/org/= looks like this:
55   : ~/org/
56   :    |- css/
57   :    |  `- stylesheet.css
58   :    |- img/
59   :    |- index.org
60   :    `- remember.org
62   When ever you want to add link to a file, do it the usual way. To link from
63   =index.org= to =remember.org=, just write
64   : [[file:remember.org][remember]]
65   Org will convert those links to HTML links for you on export:
66   : <a href="./remember.html">remember</a>
68   Same is true for images. To add an image, put it in =~/org/img/test.jpg= and
69   refer to it by
70   : [[file:img/test.jpg]]
72   You may test your links by clicking on them. To test image links you may also
73   try to turn on =iimage-mode= [fn:2] which works without problems here.
75   Optionally, set up the stylesheet as shown in section Special comment
76   section. The recommended way is to use a real stylesheet though.
78 * Publishing the /org/ project
80   To publish the =~/org/= project to HTML, we'll have to setup the variable
81   =org-publish-project-alist= [fn:3].  I tend to split each project in three basic
82   /components/ as described in the manual. We need these different components,
83   since we want org to use two different functions to publish dynamic content
84   (org => html) and static content like scripts, images, stylesheets or even
85   .htaccess files (org => copy). The third component is just for convenience and
86   tells org to execute the former ones.
88   =org-publish-project-alist= may be adjusted using customize (=M-x
89   customize-variable RET org-publish-project-alist RET=), but I prefere to
90   use an extra file to setup my projects, since there are quite a few. To follow
91   this tutorial use the =*scratch*= buffer and put all the Lisp in this section
92   in there.
94   First of all, enter this into the =*scratch*= buffer:
96 #+begin_src emacs-lisp
97 (require 'ox-publish)
98 (setq org-publish-project-alist
99       '(
101        ;; ... add all the components here (see below)...
103       ))
104 #+end_src
106   Be sure to put all the /components/ below right there where the comment line
107   is now.
109 ** The /notes/ component
111    The /notes/ component publishes all the Org-mode files to HTML. Hence the
112    =publishing-function= is set to =org-publish-org-to-html=. Here is an example
113    of the notes component:
115 #+begin_src emacs-lisp
116 ("org-notes"
117  :base-directory "~/org/"
118  :base-extension "org"
119  :publishing-directory "~/public_html/"
120  :recursive t
121  :publishing-function org-html-publish-to-html
122  :headline-levels 4             ; Just the default for this project.
123  :auto-preamble t
125 #+end_src
127    Note, that =headline-levels= may be adjusted [[Overwrite the defaults][on a per file basis]] to overwrite
128    the default.
130    The most important settings here are:
132    | =base-directory=       | The components root directory.                                                                                                |
133    | =base-extension=       | Filename suffix without the dot.                                                                                              |
134    | =publishing-directory= | The base directory where all our files will be published.                                                                     |
135    | =recursive=            | If =t=, include subdirectories - we want that. Subdirectories in =:publishing-directory= are created if they don't yet exist. |
136    | =publishing-function=  | If and how org should process the files in this component. In this case: convert the Org-mode files to HTML.                  |
138 ** The /static/ component
140    The /static/ component just copies files (and their folders) from
141    =:base-directory= to =:publishing-directory= without changing them. Thus
142    let's tell Org-mode to use the function =org-publish-attachment=:
144 #+begin_src emacs-lisp
145 ("org-static"
146  :base-directory "~/org/"
147  :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf"
148  :publishing-directory "~/public_html/"
149  :recursive t
150  :publishing-function org-publish-attachment
152 #+end_src
154    *Note* that =:publishing-function= is set to =org-publish-attachment=.
156 ** The /publish/ component
158    To publish all with one command, we add the /publish/ component. For this
159    component I usually drop the suffix and just use the basename of the
160    project.
162 #+begin_src emacs-lisp
163  ("org" :components ("org-notes" "org-static"))
164 #+end_src
166    Now =M-x org-publish-project RET org RET= publishes everything
167    recursively to =~/public_html/=. Target directories are created, if they
168    don't yet exist.
170 ** Pooh - can we publish now?
172    The good message is *yes, we can*. Just one little hump. Since we've put the
173    definition for our publishing components in the =*scratch*= buffer, again,
174    make sure all the /components/ are enclosed by the lines
176 #+begin_src emacs-lisp
177 (require 'org-publish)
178 (setq org-publish-project-alist
179       '(
181        ;; ... all the components ...
183       ))
184 #+end_src
186    Move to the end of the first line and press =C-x C-e= to load
187    =org-publish=. Now go to the end of the last line and press =C-x C-e=
188    again. Repeat the last step after every change to your
189    =org-publish-project-alist=.
191    To publish your Org-mode files just type
192    =M-x org-publish-project RET org RET= or use one of the shortcuts listed in
193    the manual. If nothing went wrong, you should now be able to point your
194    browser to http://localhost/~user/, if =mod_userdir= is set up. If
195    not, simply navigate to file:///home/user/public_html (you might use
196    /file -> open/ from the file menu of your browser.
198 * Adding directories
200   As we add more and more files to =~/org/=, we will soon end up with filenames
201   like '=networking-ssh-sshd-config.org=' or longer. What we need is a
202   directory structure:
204   : ~/org/
205   :   |- css/
206   :   |  `- stylesheet.css
207   :   |- Emacs
208   :   |  |- index.org
209   :   |  |- gnus.org
210   :   |  |- org.org
211   :   |  `- snippets.org
212   :   |- img/
213   :   |- index.org
214   :   `- remember.org
216   If we hadn't added
217   :      :recursive t
218   in the /notes/ and /static/ components already, we would have to do it now at
219   the latest to export the subdirectories too.
221 * Overwrite the defaults
223   The defaults set by =org-publish-project-alist= may be overwritten. You might
224   want to justify the export properties for single files. Be it the level of
225   headlines, include extry scripts or different stylesheets. Org offers ways to adjust
226   the settings for a single file.
228 ** The export options template
230    The first choice is the /export options template/ on top of the file. When in
231    an Org-mode file, you may insert basic information using =C-c C-e #=
232    (=org-export-dispatch=) plus "template".  You will be prompted for a template
233    choice.  "default" will provide a template for common options, and "html"
234    will provide a template for HTML-specific options.
236    WARNING: Do *not* copy lines from the sample output below into your
237    files. The template might change from release to release. Instead,
238    insert a template as above and delete any entries that are not
239    applicable.
241    The default option inserts the following lines:
242    
243    : #+TITLE: filename with the extension omitted
244    : #+DATE: <2013-06-04 Tue>
245    : #+AUTHOR: Your name
246    : #+EMAIL: Your email address
247    : #+OPTIONS: ':t *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline author:t c:nil
248    : #+OPTIONS: creator:comment d:(not LOGBOOK) date:t e:t email:nil f:t inline:t
249    : #+OPTIONS: num:t p:nil pri:nil stat:t tags:t tasks:t tex:t timestamp:t toc:t
250    : #+OPTIONS: todo:t |:t
251    : #+CREATOR: Emacs 24.3.50.3 (Org mode 8.0.3)
252    : #+DESCRIPTION:
253    : #+EXCLUDE_TAGS: noexport
254    : #+KEYWORDS:
255    : #+LANGUAGE: en
256    : #+SELECT_TAGS: export
258    and the html option will add the following:
260    : #+OPTIONS: html-postamble:auto html-preamble:t tex:t
261    : #+CREATOR: <a href="http://www.gnu.org/software/emacs/">Emacs</a> 24.3.50.3 (<a href="https://orgmode.org">Org</a> mode 8.0.3)
262    : #+HTML_CONTAINER: div
263    : #+HTML_DOCTYPE: xhtml-strict
264    : #+HTML_HEAD:
265    : #+HTML_HEAD_EXTRA:
266    : #+HTML_HTML5_FANCY:
267    : #+HTML_INCLUDE_SCRIPTS:
268    : #+HTML_INCLUDE_STYLE:
269    : #+HTML_LINK_HOME:
270    : #+HTML_LINK_UP:
271    : #+HTML_MATHJAX:
272    : #+INFOJS_OPT:
274    All we have to do now is to alter the options to match our needs. All the
275    options are listed in the wonderful Org-mode manual. Note though, that these
276    options are only parsed on startup (i.e., when you first open the file). To
277    explicitly apply your new options move on any of those lines and press =C-c=
278    twice.
280 ** <<<Special comment section>>>
282    Also, CSS style variables may be using a special section may be
283    #insert/appended to Org-mode files:
285    : * COMMENT html style specifications
286    :
287    : # Local Variables:
288    : # org-export-html-style: "<link rel=\"stylesheet\" type=\"text/css\" href=\"css/stylesheet.css\" />"
289    : # End:
291    =css/stylesheet.css= suits the needs for a file in the root folder. Use \\
292    =../css/stylesheet.css= in a subfolder (first level), \\
293    =../../css/stylesheet.css= for a file in a sub-sub-folder.
295 * Tired of export templates?
297  If you're like me, you will soon get tired of adding the same export options
298  template to numerous files and adjust the title and paths in it. Luckily,
299  Org-mode supports laziness and offers an additional way to set up files. All
300  we need is a directory (e.g. =~/.emacs.d/org-templates/=) and create the
301  following files there:
303  + =level-0.org= \\
304    This file contains all export options lines. The special comment section
305    will not work for files in subdirectories. Hence we always use the export
306    options line
307    :#+STYLE: <link rel="stylesheet" type="text/css" href="stylesheet.css" />
308    ...suitable for each file in the projects root folder
309    (=~/org/= or =~/B/= in the examples). Just drop the =#+TITLE= since this
310    will be different for every file and automatically set on export (based on
311    the filename if omitted).
312  + =level-1.org= \\
313    This file contains all export options lines for the stylesheet suitable for
314    each file in a subfolder of the projects root folder (e.g. =~/org/emacs/=
315    or =~/org/networking/=). Just drop the =#+TITLE= again. The options line
316    for the stylesheet looks like this:
317    :#+STYLE: <link rel="stylesheet" type="text/css" href="../stylesheet.css" />
319  + Add more files for more levels.
321  Now remove the special comment section from the end of your Org-mode files in
322  the project folders and change the export options template to
324  : #+SETUPFILE: ~/.emacs.d/org-templates/level-N.org
325  : #+TITLE: My Title
327  Replace =N= with distance to the root folder (=0=, =1= etc.) of your project
328  and press =C-c= twice while still on this line to apply the
329  changes. Subsequent lines still overwrite the settings for just this one file.
332 ** More level files
334   Also, these /level-N/ files give us the chance to easily switch between different
335   export setups. As an example, we could have a separate stylesheet and
336   =org-info.js= setup for presentations, and put the appropriate options in a
337   file named =level-0-slides.org=:
339   : #+INFOJS_OPT: path:org-info.js
340   : #+INFOJS_OPT: toc:nil view:slide
341   : #+STYLE: <link rel="stylesheet" type="text/css" href="slides.css" />
343   Now it's as simple as typing '/-slides/' to change the appearance of any file
344   in our project.
346 * More Projects
348    As we get used to note taking in org, we might add an =org= directory to most
349    of our projects. All those projects are published as well. Project '=~/B/='
350    is published to '=~/public_html/B/=', '=~/C/=' is published to
351    '=~/public_html/C/=', and so on. This leads to the problem of common
352    stylesheets and current JavaScripts --- and to a new /component/.
354 ** The /inherit/ component
356    Once we get tired of copying the static files from one project to another, the
357    following configuration does the trick for us. We simply add the /inherit/
358    component, that imports all the static files from our =~/org/= directory [fn:4].
359    From now on, it will be sufficient to edit stylesheets and scripts just
360    there.
362 #+begin_src emacs-lisp
363  ("B-inherit"
364   :base-directory "~/org/"
365   :recursive t
366   :base-extension "css\\|js"
367   :publishing-directory "~/public_html/B/"
368   :publishing-function org-publish-attachment
371  ("B-org"
372  :base-directory "~/B/"
373  :auto-index t
374  :index-filename "sitemap.org"
375  :index-title "Sitemap"
376  :recursive t
377  :base-extension "org"
378  :publishing-directory "~/public_html/B/"
379  :publishing-function org-publish-org-to-html
380  :headline-levels 3
381  :auto-preamble t
383  ("B-static"
384   :base-directory "~/B/"
385   :recursive t
386   :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf"
387   :publishing-directory "~/public_html/B/"
388   :publishing-function org-publish-attachment)
390  ("B" :components ("B-inherit" "B-notes" "B-static"))
391 #+end_src
393    *Note*, that the inheritance trick works for non org directories. You might
394    want to keep all your stylesheets and scripts in a single place, or even add
395    more /inheritance/ to your projects, to import sources from upstream.
397    *Note* also, that =B-inherit= exports directly to the web. If you want to track
398    the changes to =~org/*.css= directly in =~/B=, you must ensure, that =B-inherit= is
399    the first component in =B= since the components in =B= are executed in
400    the sequence listed: first get the new stylesheet into =B=, then execute
401    =B-static=.
403 *** One more Example
405     As I use [[file:../code/org-info-js/index.org][org-info.js]] and track Worg git, I use "=inherit-org-info-js=" in all
406     my =org= projects:
408 #+begin_src emacs-lisp
409  ("inherit-org-info-js"
410   :base-directory "~/develop/org/Worg/code/org-info-js/"
411   :recursive t
412   :base-extension "js"
413   :publishing-directory "~/org/"
414   :publishing-function org-publish-attachment)
416  ;; ... all the rest ... ;;
418  ("B" :components ("inherit-org-info-js" "B-inherit" "B-notes" "B-static"))
419  ("C" :components ("inherit-org-info-js" "C-inherit" "C-notes" "C-static"))
420  ("D" :components ("inherit-org-info-js" "D-inherit" "D-notes" "D-static"))
421  ("E" :components ("inherit-org-info-js" "E-inherit" "E-notes" "E-static"))
422 #+end_src
424     ...means, =B= =C= =D= and =E= use my local stylesheets and always the latest
425     version of =org-info.js=.
427 * Overview
429   Once there are lots of files and subdirectories, we're in the need of ways to
430   easily navigate our notes in a browser. What we need now, is an index, an
431   overview of all our note files.
433 ** The sitemap
435    Org-modes great publishing also generates a recursive sitemap. Its name 
436    defaults to =sitemap.org=, which get's in our way, since we have a real 
437    startpage as =sitemap.html= [fn:5]. Fortunately there is a configuration 
438    option to change the name of the generated sitemap. To generate the sitemap,
439    add these lines to the /notes/ component:
441 #+begin_src emacs-lisp
442  :auto-sitemap t                ; Generate sitemap.org automagically...
443  :sitemap-filename "sitemap.org"  ; ... call it sitemap.org (it's the default)...
444  :sitemap-title "Sitemap"         ; ... with title 'Sitemap'.
445 #+end_src
447    The sitemap will reflect the tree structure of the project. To access the
448    sitemap easily, we could do two things:
450    1. Setup the '/UP/' link of the Startpage to link to =sitemap.html= (see next
451       section),
452    2. use the '=#+INCLUDE: sitemap.org=' directive. Most of my Org-mode files
453       contain a chapter called "/Links/" at the end of the file, which contains
454       a subsection /Sitemap/ that in turn just consists of that
455       diretive. For the =index.org= files in the root directory, I include the
456       sitemap as the first section.
458    You can also change the position of folders with =:sitemap-sort-folders=,
459    this can be set to =last= or =first= (default), to display folders last or 
460    first.
462 ** org-info.js
464    Another way to get additional links to navigate the structure is
465    [[file:../code/org-info-js/index.org][org-info.js]]. Let's set it up like this (either in every file, or in
466    =org-level-N.org=, where =N > 0=):
468    : #+LINK_UP: index.html
470    This makes the little /UP/ link ('=h=') point to the =index.html= in the
471    current directory.
473    The =index.org= in the root of the project has the /index file/ as section 2
474    (which I may reach pressing '=n=' then), and the same option set like this:
476    : #+LINK_UP: sitemap.html
478    For an =index.org= in a subdirectory:
480    : #+LINK_UP: ../index.html
482    The =LINK_HOME= always points to the same file:
484    : #+LINK_HOME: http://localhost/~user/index.html
486    Please consider replacing the last one with a relative path (which will be
487    different for every level of subdirectories).
489    No matter where we are, we may always press =H n= and we face the sitemap.
490    No matter where we are, we may always press =h= to move up the tree.
492 * Special symbols
494   This is a list of LaTeX symbols understood by Org-mode. You may use most of
495   those LaTeX symbols to get the desired results (shown in the first column)
496   when exporting to HTML. Note though, that not all symbols are translated to
497   HTML. They are listed anyway, since they may be used for LaTeX export
498   nonetheless. Some characters in the first column are invisible (spaces). To
499   see them, mark the part of the table using the mouse.
501   You may produce special HTML characters for verbatim =#+BEGIN\_HTML= sections
502   using http://www-atm.physics.ox.ac.uk/user/iwi/charmap.html (download link on
503   the bottom of that page).
506   | Symbol      | LaTeX                    |
507   |-------------+--------------------------|
508   | \nbsp       | ~\nbsp~                  |
509   | \iexcl      | ~\iexcl~                 |
510   | \cent       | ~\cent~                  |
511   | \pound      | ~\pound~                 |
512   | \curren     | ~\curren~                |
513   | \yen        | ~\yen~                   |
514   | \brvbar     | ~\brvbar~                |
515   | \vert       | ~\vert~                  |
516   | \sect       | ~\sect~                  |
517   | \uml        | ~\uml~                   |
518   | \copy       | ~\copy~                  |
519   | \ordf       | ~\ordf~                  |
520   | \laquo      | ~\laquo~                 |
521   | \not        | ~\not~                   |
522   | \shy        | ~\shy~                   |
523   | \reg        | ~\reg~                   |
524   | \macr       | ~\macr~                  |
525   | \deg        | ~\deg~                   |
526   | \plusmn     | ~\plusmn~                |
527   | \sup1       | ~\sup1~                  |
528   | \sup2       | ~\sup2~                  |
529   | \sup3       | ~\sup3~                  |
530   | \acute      | ~\acute~                 |
531   | \micro      | ~\micro~                 |
532   | \para       | ~\para~                  |
533   | \middot     | ~\middot~                |
534   | \odot       | ~\odot~                  |
535   | \star       | ~\star~                  |
536   | \cedil      | ~\cedil~                 |
537   | \ordm       | ~\ordm~                  |
538   | \raquo      | ~\raquo~                 |
539   | \frac14     | ~\frac14~                |
540   | \frac12     | ~\frac12~                |
541   | \frac34     | ~\frac34~                |
542   | \iquest     | ~\iquest~                |
543   | \Agrave     | ~\Agrave~                |
544   | \Aacute     | ~\Aacute~                |
545   | \Acirc      | ~\Acirc~                 |
546   | \Atilde     | ~\Atilde~                |
547   | \Auml       | ~\Auml~                  |
548   | \Aring      | ~\Aring~ ~\AA~           |
549   | \AElig      | ~\AElig~                 |
550   | \Ccedil     | ~\Ccedil~                |
551   | \Egrave     | ~\Egrave~                |
552   | \Eacute     | ~\Eacute~                |
553   | \Ecirc      | ~\Ecirc~                 |
554   | \Euml       | ~\Euml~                  |
555   | \Igrave     | ~\Igrave~                |
556   | \Iacute     | ~\Iacute~                |
557   | \Icirc      | ~\Icirc~                 |
558   | \Iuml       | ~\Iuml~                  |
559   | \ETH        | ~\ETH~                   |
560   | \Ntilde     | ~\Ntilde~                |
561   | \Ograve     | ~\Ograve~                |
562   | \Oacute     | ~\Oacute~                |
563   | \Ocirc      | ~\Ocirc~                 |
564   | \Otilde     | ~\Otilde~                |
565   | \Ouml       | ~\Ouml~                  |
566   | \times      | ~\times~                 |
567   | \Oslash     | ~\Oslash~                |
568   | \Ugrave     | ~\Ugrave~                |
569   | \Uacute     | ~\Uacute~                |
570   | \Ucirc      | ~\Ucirc~                 |
571   | \Uuml       | ~\Uuml~                  |
572   | \Yacute     | ~\Yacute~                |
573   | \THORN      | ~\THORN~                 |
574   | \szlig      | ~\szlig~                 |
575   | \agrave     | ~\agrave~                |
576   | \aacute     | ~\aacute~                |
577   | \acirc      | ~\acirc~                 |
578   | \atilde     | ~\atilde~                |
579   | \auml       | ~\auml~                  |
580   | \aring      | ~\aring~                 |
581   | \aelig      | ~\aelig~                 |
582   | \ccedil     | ~\ccedil~                |
583   | \egrave     | ~\egrave~                |
584   | \eacute     | ~\eacute~                |
585   | \ecirc      | ~\ecirc~                 |
586   | \euml       | ~\euml~                  |
587   | \igrave     | ~\igrave~                |
588   | \iacute     | ~\iacute~                |
589   | \icirc      | ~\icirc~                 |
590   | \iuml       | ~\iuml~                  |
591   | \eth        | ~\eth~                   |
592   | \ntilde     | ~\ntilde~                |
593   | \ograve     | ~\ograve~                |
594   | \oacute     | ~\oacute~                |
595   | \ocirc      | ~\ocirc~                 |
596   | \otilde     | ~\otilde~                |
597   | \ouml       | ~\ouml~                  |
598   | \oslash     | ~\oslash~                |
599   | \ugrave     | ~\ugrave~                |
600   | \uacute     | ~\uacute~                |
601   | \ucirc      | ~\ucirc~                 |
602   | \uuml       | ~\uuml~                  |
603   | \yacute     | ~\yacute~                |
604   | \thorn      | ~\thorn~                 |
605   | \yuml       | ~\yuml~                  |
606   | \fnof       | ~\fnof~                  |
607   | \Alpha      | ~\Alpha~                 |
608   | \Beta       | ~\Beta~                  |
609   | \Gamma      | ~\Gamma~                 |
610   | \Delta      | ~\Delta~                 |
611   | \Epsilon    | ~\Epsilon~               |
612   | \Zeta       | ~\Zeta~                  |
613   | \Eta        | ~\Eta~                   |
614   | \Theta      | ~\Theta~                 |
615   | \Iota       | ~\Iota~                  |
616   | \Kappa      | ~\Kappa~                 |
617   | \Lambda     | ~\Lambda~                |
618   | \Mu         | ~\Mu~                    |
619   | \Nu         | ~\Nu~                    |
620   | \Xi         | ~\Xi~                    |
621   | \Omicron    | ~\Omicron~               |
622   | \Pi         | ~\Pi~                    |
623   | \Rho        | ~\Rho~                   |
624   | \Sigma      | ~\Sigma~                 |
625   | \Tau        | ~\Tau~                   |
626   | \Upsilon    | ~\Upsilon~               |
627   | \Phi        | ~\Phi~                   |
628   | \Chi        | ~\Chi~                   |
629   | \Psi        | ~\Psi~                   |
630   | \Omega      | ~\Omega~                 |
631   | \alpha      | ~\alpha~                 |
632   | \beta       | ~\beta~                  |
633   | \gamma      | ~\gamma~                 |
634   | \delta      | ~\delta~                 |
635   | \epsilon    | ~\epsilon~               |
636   | \varepsilon | ~\varepsilon~            |
637   | \zeta       | ~\zeta~                  |
638   | \eta        | ~\eta~                   |
639   | \theta      | ~\theta~                 |
640   | \iota       | ~\iota~                  |
641   | \kappa      | ~\kappa~                 |
642   | \lambda     | ~\lambda~                |
643   | \mu         | ~\mu~                    |
644   | \nu         | ~\nu~                    |
645   | \xi         | ~\xi~                    |
646   | \omicron    | ~\omicron~               |
647   | \pi         | ~\pi~                    |
648   | \rho        | ~\rho~                   |
649   | \sigmaf     | ~\sigmaf~  ~\varsigma~   |
650   | \sigma      | ~\sigma~                 |
651   | \tau        | ~\tau~                   |
652   | \upsilon    | ~\upsilon~               |
653   | \phi        | ~\phi~                   |
654   | \chi        | ~\chi~                   |
655   | \psi        | ~\psi~                   |
656   | \omega      | ~\omega~                 |
657   | \thetasym   | ~\thetasym~  ~\vartheta~ |
658   | \upsih      | ~\upsih~                 |
659   | \piv        | ~\piv~                   |
660   | \bull       | ~\bull~  ~\bullet~       |
661   | \hellip     | ~\hellip~  ~\dots~       |
662   | \prime      | ~\prime~                 |
663   | \Prime      | ~\Prime~                 |
664   | \oline      | ~\oline~                 |
665   | \frasl      | ~\frasl~                 |
666   | \weierp     | ~\weierp~                |
667   | \image      | ~\image~                 |
668   | \real       | ~\real~                  |
669   | \trade      | ~\trade~                 |
670   | \alefsym    | ~\alefsym~               |
671   | \larr       | ~\larr~                  |
672   | \uarr       | ~\uarr~                  |
673   | \rarr       | ~\rarr~                  |
674   | \darr       | ~\darr~                  |
675   | \harr       | ~\harr~                  |
676   | \crarr      | ~\crarr~                 |
677   | \lArr       | ~\lArr~                  |
678   | \uArr       | ~\uArr~                  |
679   | \rArr       | ~\rArr~                  |
680   | \dArr       | ~\dArr~                  |
681   | \hArr       | ~\hArr~                  |
682   | \forall     | ~\forall~                |
683   | \part       | ~\part~                  |
684   | \exist      | ~\exist~                 |
685   | \empty      | ~\empty~                 |
686   | \nabla      | ~\nabla~                 |
687   | \isin       | ~\isin~                  |
688   | \notin      | ~\notin~                 |
689   | \ni         | ~\ni~                    |
690   | \prod       | ~\prod~                  |
691   | \sum        | ~\sum~                   |
692   | \minus      | ~\minus~                 |
693   | \lowast     | ~\lowast~                |
694   | \radic      | ~\radic~                 |
695   | \prop       | ~\prop~                  |
696   | \infin      | ~\infin~                 |
697   | \ang        | ~\ang~                   |
698   | \cap        | ~\cap~                   |
699   | \cup        | ~\cup~                   |
700   | \int        | ~\int~                   |
701   | \there4     | ~\there4~                |
702   | \sim        | ~\sim~                   |
703   | \cong       | ~\cong~                  |
704   | \asymp      | ~\asymp~                 |
705   | \ne         | ~\ne~                    |
706   | \equiv      | ~\equiv~                 |
707   | \le         | ~\le~                    |
708   | \ge         | ~\ge~                    |
709   | \sub        | ~\sub~                   |
710   | \sup        | ~\sup~                   |
711   | \nsub       | ~\nsub~                  |
712   | \sube       | ~\sube~                  |
713   | \supe       | ~\supe~                  |
714   | \oplus      | ~\oplus~                 |
715   | \otimes     | ~\otimes~                |
716   | \perp       | ~\perp~                  |
717   | \sdot       | ~\sdot~                  |
718   | \lceil      | ~\lceil~                 |
719   | \rceil      | ~\rceil~                 |
720   | \lfloor     | ~\lfloor~                |
721   | \rfloor     | ~\rfloor~                |
722   | \lang       | ~\lang~                  |
723   | \rang       | ~\rang~                  |
724   | \loz        | ~\loz~                   |
725   | \spades     | ~\spades~                |
726   | \clubs      | ~\clubs~                 |
727   | \hearts     | ~\hearts~                |
728   | \diams      | ~\diams~                 |
729   | \smile      | ~\smile~                 |
730   | \quot       | ~\quot~                  |
731   | \amp        | ~\amp~                   |
732   | \lt         | ~\lt~                    |
733   | \gt         | ~\gt~                    |
734   | \OElig      | ~\OElig~                 |
735   | \oelig      | ~\oelig~                 |
736   | \Scaron     | ~\Scaron~                |
737   | \scaron     | ~\scaron~                |
738   | \Yuml       | ~\Yuml~                  |
739   | \circ       | ~\circ~                  |
740   | \tilde      | ~\tilde~                 |
741   | \ensp       | ~\ensp~                  |
742   | \emsp       | ~\emsp~                  |
743   | \thinsp     | ~\thinsp~                |
744   | \zwnj       | ~\zwnj~                  |
745   | \zwj        | ~\zwj~                   |
746   | \lrm        | ~\lrm~                   |
747   | \rlm        | ~\rlm~                   |
748   | \ndash      | ~\ndash~                 |
749   | \mdash      | ~\mdash~                 |
750   | \lsquo      | ~\lsquo~                 |
751   | \rsquo      | ~\rsquo~                 |
752   | \sbquo      | ~\sbquo~                 |
753   | \ldquo      | ~\ldquo~                 |
754   | \rdquo      | ~\rdquo~                 |
755   | \bdquo      | ~\bdquo~                 |
756   | \dagger     | ~\dagger~                |
757   | \Dagger     | ~\Dagger~                |
758   | \permil     | ~\permil~                |
759   | \lsaquo     | ~\lsaquo~                |
760   | \rsaquo     | ~\rsaquo~                |
761   | \euro       | ~\euro~                  |
762   | \arccos     | ~\arccos~                |
763   | \arcsin     | ~\arcsin~                |
764   | \arctan     | ~\arctan~                |
765   | \arg        | ~\arg~                   |
766   | \cos        | ~\cos~                   |
767   | \cosh       | ~\cosh~                  |
768   | \cot        | ~\cot~                   |
769   | \coth       | ~\coth~                  |
770   | \csc        | ~\csc~                   |
771   | \deg        | ~\deg~                   |
772   | \det        | ~\det~                   |
773   | \dim        | ~\dim~                   |
774   | \exp        | ~\exp~                   |
775   | \gcd        | ~\gcd~                   |
776   | \hom        | ~\hom~                   |
777   | \inf        | ~\inf~                   |
778   | \ker        | ~\ker~                   |
779   | \lg         | ~\lg~                    |
780   | \lim        | ~\lim~                   |
781   | \liminf     | ~\liminf~                |
782   | \limsup     | ~\limsup~                |
783   | \ln         | ~\ln~                    |
784   | \log        | ~\log~                   |
785   | \max        | ~\max~                   |
786   | \min        | ~\min~                   |
787   | \Pr         | ~\Pr~                    |
788   | \sec        | ~\sec~                   |
789   | \sin        | ~\sin~                   |
790   | \sinh       | ~\sinh~                  |
791   | \tan        | ~\tan~                   |
792   | \tanh       | ~\tanh~                  |
795 * Further reading
797    For more information you might want to read the great [[https://orgmode.org/manual/][Org-mode manual]]. One of
798    the nicest mailing lists on this planet, BTW, is [[http://lists.gnu.org/archive/html/emacs-orgmode/][emacs-orgmode (archive)]]
799    where you might as well find answers to your questions.
802    Have fun!
807 * Footnotes
809 [fn:1]  You may customize the file suffix for exported files like this:
810  =M-x customize RET org-export-html-extension=.
812 [fn:2]  ...by typing =M-x iimage-mode RET=. iimage-mode even shows *.svg images, if
813  =librsvg= was present on compile time. FIXME: is this true for emacs22 ?
815 [fn:3]  All components of =org-publish-projects-alist= are documented in the [[https://orgmode.org/manual/Project-alist.html#Project-alist][Org Mode
816     Manual]].
818 [fn:4]  Files may be copied from arbitrary src directories to any target directory
819  desired.
821 [fn:5]  This is primarily because of the behaviour of servers. When we navigate
822  to https://orgmode.org/worg/ we will face the =index.html= if present.