summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-11-21 08:42:25 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2017-11-21 08:45:43 -0800
commit1c85a158f346e56e6e2cd8da79eca379fc4ce684 (patch)
tree6303bb48bb8e16b61c71b0a843bb7559bcd765b2 /doc
parent59f537c31f4fedcc37b30260c804456289305175 (diff)
Added epub.md, getting-started.md to docs.
These used to live in the website repo.
Diffstat (limited to 'doc')
-rw-r--r--doc/epub.md156
-rw-r--r--doc/getting-started.md314
2 files changed, 470 insertions, 0 deletions
diff --git a/doc/epub.md b/doc/epub.md
new file mode 100644
index 000000000..c5993cd42
--- /dev/null
+++ b/doc/epub.md
@@ -0,0 +1,156 @@
+---
+title: Creating an ebook with pandoc
+author: John MacFarlane
+---
+
+Starting with version 1.6, pandoc can produce output in the [EPUB]
+electronic book format. EPUB books can be viewed on iPads, Nooks, and
+other electronic book readers, including many smart phones. (They can
+also be converted to Kindle books using [KindleGen].)
+
+This means that it's now very easy to produce an electronic book!
+Let's try it.
+
+# A toy example
+
+Use your text editor to create a file `mybook.txt`, with the following
+contents:
+
+ % My Book
+ % Sam Smith
+
+ This is my book!
+
+ # Chapter One
+
+ Chapter one is over.
+
+ # Chapter Two
+
+ Chapter two has just begun.
+
+To make this into an ebook takes only one command:
+
+ pandoc mybook.txt -o mybook.epub
+
+You can upload `mybook.epub` to your ebook reader and try it out.
+
+Note that if your markdown file contains links to local images, for
+example
+
+ ![Juliet](images/sun.jpg)
+
+pandoc will automatically include the images in the generated
+epub.
+
+# A real book
+
+To see what this would look like for a real book, let's convert Scott
+Chacon's book [Pro Git], which he wrote using pandoc's markdown variant
+and released under a [Creative Commons] license. (If you use the book,
+please consider [buying a copy] to help support his excellent work.)
+
+You can find the markdown source for the book on its
+[github site]. Let's get a copy of the whole repository:[^1]
+
+ git clone http://github.com/progit/progit.git
+
+[^1]: If you don't have [git], you can browse to the [github site] and
+click "Download Source" to get the same files in a zip or tar archive.
+
+This command will create a working directory called `progit` on
+your machine. The actual markdown sources for the English version
+of the book are in the `en` subdirectory, so start by changing
+to that directory:
+
+ cd progit/en
+
+As you can see, each chapter is a single text file in its own directory.
+Chacon does some postprocessing on these files, for example, to insert images.
+This is a placeholder for Figure 1-1, for example:
+
+ Insert 18333fig0101.png
+ Figure 1-1. Local version control diagram.
+
+The actual image file is called `18333fig0101-tn.png` and lives in
+the `figures` subdirectory of the repository, as you can verify.
+
+For demonstration purposes, we want pure markdown files, so let's
+change this placeholder into a markdown image link. Pandoc will
+treat a paragraph containing a single image as a figure with
+a caption, which is what we want:
+
+ ![Figure 1-1. Local version control diagram.](../figures/18333fig0101-tn.png)
+
+We can make this change in all the files with a perl one-liner:
+
+ perl -i -0pe \
+ 's/^Insert\s*(.*)\.png\s*\n([^\n]*)$/!\[\2](..\/figures\/\1-tn.png)/mg' \
+ */*.markdown
+
+This will modify the files in place. (We won't worry about backing
+them up; if we mess up, we can get the original files back with
+`git reset --hard`.)
+
+OK! Now we're almost ready to make an ebook. We have the chapters,
+each in its own file, but we still need a title. Create a file,
+`title.txt`, with a pandoc YAML metadata block:
+
+```
+---
+title: Pro Git
+author: Scott Chacon
+rights: Creative Commons Non-Commercial Share Alike 3.0
+language: en-US
+...
+```
+
+See the [User's Guide](MANUAL.html#epub-metadata) for more information
+above these fields.
+
+Now run pandoc to make the ebook, using our title page and modified
+chapter files as sources:
+
+ pandoc -S -o progit.epub title.txt \
+ 01-introduction/01-chapter1.markdown \
+ 02-git-basics/01-chapter2.markdown \
+ 03-git-branching/01-chapter3.markdown \
+ 04-git-server/01-chapter4.markdown \
+ 05-distributed-git/01-chapter5.markdown \
+ 06-git-tools/01-chapter6.markdown \
+ 07-customizing-git/01-chapter7.markdown \
+ 08-git-and-other-scms/01-chapter8.markdown \
+ 09-git-internals/01-chapter9.markdown
+
+That's it! The ebook, `progit.epub`, is ready to be uploaded to your reader.
+
+## Changing the format
+
+You can use the `--css` option to specify a CSS file
+for the book. The default CSS is minimal and can be found
+[on GitHub](https://github.com/jgm/pandoc/blob/master/data/epub.css)
+or in the `epub.css` file in your data directory
+(see `--data-dir` in the [User's Guide]).
+
+You can even embed fonts in the EPUB if you want; see the [User's Guide]
+under `--epub-embed-font` for instructions.
+
+## Math
+
+Pandoc has an EPUB3 writer. It renders LaTeX math into MathML, which
+EPUB3 readers are supposed to support (but unfortunately few do).
+
+Of course, this isn't much help if you want EPUB2 output (`pandoc -t epub2`)
+or target readers that don't support MathML. Then you should try using the
+`--webtex` option, which will use a web service to convert the TeX to an image.
+
+[KindleGen]: http://www.amazon.com/gp/feature.html?ie=UTF8&docId=1000234621
+[EPUB]: http://en.wikipedia.org/wiki/EPUB
+[Pro Git]: http://progit.org/
+[Creative Commons]: http://creativecommons.org/
+[buying a copy]: http://progit.org/
+[github site]: http://github.com/progit/progit
+[git]: http://git-scm.com
+[Dublin Core metadata elements]: http://dublincore.org/documents/dces/
+[User's Guide]: MANUAL.html
+
diff --git a/doc/getting-started.md b/doc/getting-started.md
new file mode 100644
index 000000000..4134a61a2
--- /dev/null
+++ b/doc/getting-started.md
@@ -0,0 +1,314 @@
+---
+title: Getting started with pandoc
+author: John MacFarlane
+---
+
+This document is for people who are unfamiliar with command line
+tools. Command-line experts can go straight to the [User's
+Guide](README.html) or the pandoc man page.
+
+# Step 1: Install pandoc
+
+First, install pandoc, following the [instructions for
+your platform](installing.html).
+
+# Step 2: Open a terminal
+
+Pandoc is a command-line tool. There is no graphic user interface.
+So, to use it, you'll need to open a terminal window:
+
+- On OS X, the Terminal application can be found in
+ `/Applications/Utilities`. Open a Finder window and go to
+ `Applications`, then `Utilities`. Then double click on
+ `Terminal`. (Or, click the spotlight icon in the upper right
+ hand corner of your screen and type `Terminal` -- you should
+ see `Terminal` under `Applications`.)
+
+- On Windows, you can use either the classic command prompt or the
+ more modern PowerShell terminal. If you use Windows in desktop
+ mode, run the `cmd` or `powershell` command from the Start menu.
+ If you use the Windows 8 start screen instead, simply type
+ `cmd` or `powershell`, and then run either the "Command
+ Prompt" or "Windows Powershell" application. If you are using
+ `cmd`, type `chcp 65001` before using pandoc, to set the
+ encoding to UTF-8.
+
+- On Linux, there are many possible configurations, depending on
+ what desktop environment you're using:
+
+ * In Unity, use the search function on the `Dash`, and search
+ for `Terminal`. Or, use the keyboard shortcut `Ctrl-Alt-T`.
+ * In Gnome, go to `Applications`, then `Accessories`, and
+ select `Terminal`, or use `Ctrl-Alt-T`.
+ * In XFCE, go to `Applications`, then `System`, then `Terminal`,
+ or use `Super-T`.
+ * In KDE, go to `KMenu`, then `System`, then `Terminal Program (Konsole)`.
+
+You should now see a rectangle with a "prompt" (possibly just a symbol
+like `%`, but probably including more information, such as your
+username and directory), and a blinking cursor.
+
+Let's verify that pandoc is installed. Type
+
+ pandoc --version
+
+and hit enter. You should see a message telling you which version
+of pandoc is installed, and giving you some additional information.
+
+# Step 3: Changing directories
+
+First, let's see where we are. Type
+
+ pwd
+
+on linux or OSX, or
+
+ echo %cd%
+
+on Windows, and hit enter. Your terminal should print your current
+working directory. (Guess what `pwd` stands for?) This should be your
+home directory.
+
+Let's navigate now to our `Documents` directory: type
+
+ cd Documents
+
+and hit enter. Now type
+
+ pwd
+
+(or `echo %cd%` on Windows)
+again. You should be in the `Documents` subdirectory of your home
+directory. To go back to your home directory, you could type
+
+ cd ..
+
+The `..` means "one level up."
+
+Go back to your `Documents` directory if you're not there already.
+Let's try creating a subdirectory called `pandoc-test`:
+
+ mkdir pandoc-test
+
+Now change to the `pandoc-test` directory:
+
+ cd pandoc-test
+
+If the prompt doesn't tell you what directory you're in, you can
+confirm that you're there by doing
+
+ pwd
+
+(or `echo %cd%`) again.
+
+OK, that's all you need to know for now about using the terminal.
+But here's a secret that will save you a lot of typing. You can
+always type the up-arrow key to go back through your history
+of commands. So if you want to use a command you typed earlier,
+you don't need to type it again: just use up-arrow until it comes
+up. Try this. (You can use down-arrow as well, to go the other
+direction.) Once you have the command, you can also use the
+left and right arrows and the backspace/delete key to edit it.
+
+Most terminals also support tab completion of directories and
+filenames. To try this, let's first go back up to our `Documents`
+directory:
+
+ cd ..
+
+Now, type
+
+ cd pandoc-
+
+and hit the tab key instead of enter. Your terminal should fill
+in the rest (`test`), and then you can hit enter.
+
+To review:
+
+ - `pwd` (or `echo %cd%` on Windows)
+ to see what the current working directory is.
+ - `cd foo` to change to the `foo` subdirectory of your working
+ directory.
+ - `cd ..` to move up to the parent of the working directory.
+ - `mkdir foo` to create a subdirectory called `foo` in the
+ working directory.
+ - up-arrow to go back through your command history.
+ - tab to complete directories and file names.
+
+# Step 4: Using pandoc as a filter
+
+Type
+
+ pandoc
+
+and hit enter. You should see the cursor just sitting there, waiting
+for you to type something. Type this:
+
+ Hello *pandoc*!
+
+ - one
+ - two
+
+When you're finished (the cursor should be at the beginning of the line),
+type `Ctrl-D` on OS X or Linux, or `Ctrl-Z` followed
+by `Enter` on Windows. You should now see your text converted to HTML!
+
+ <p>Hello <em>pandoc</em>!</p>
+ <ul>
+ <li>one</li>
+ <li>two</li>
+ </ul>
+
+What just happened? When pandoc is invoked without specifying any
+input files, it operates as a "filter," taking input from the
+terminal and sending its output back to the terminal. You can use
+this feature to play around with pandoc.
+
+By default, input is interpreted as pandoc markdown, and output is
+HTML. But we can change that. Let's try converting *from* HTML
+*to* markdown:
+
+ pandoc -f html -t markdown
+
+Now type:
+
+ <p>Hello <em>pandoc</em>!</p>
+
+and hit `Ctrl-D` (or `Ctrl-Z` followed by `Enter` on Windows).
+You should see:
+
+ Hello *pandoc*!
+
+Now try converting something from markdown to LaTeX. What command
+do you think you should use?
+
+# Step 5: Text editor basics
+
+You'll probably want to use pandoc to convert a file, not to read
+text from the terminal. That's easy, but first we need to create
+a text file in our `pandoc-test` subdirectory.
+
+**Important:** To create a text file, you'll need to use a text
+editor, *not* a word processor like Microsoft Word. On Windows, you
+can use Notepad (in `Accessories`). On OS X, you can use
+`TextEdit` (in `Applications`). On Linux, different platforms come
+with different text editors: Gnome has `GEdit`, and KDE has `Kate`.
+
+Start up your text editor. Type the following:
+
+ # Test!
+
+ This is a test of *pandoc*.
+
+ - list one
+ - list two
+
+Now save your file as `test1.md` in the directory
+`Documents/pandoc-test`.
+
+Note: If you use plain text a lot, you'll want a better editor than
+`Notepad` or `TextEdit`. You might want to look at
+[Sublime Text](http://www.sublimetext.com/) or (if you're willing
+to put in some time learning an unfamiliar interface)
+[Vim](http://www.vim.org) or [Emacs](http://www.gnu.org/software/emacs).
+
+# Step 6: Converting a file
+
+Go back to your terminal. We should still be in the
+`Documents/pandoc-test` directory. Verify that with `pwd`.
+
+Now type
+
+ ls
+
+(or `dir` if you're on Windows).
+This will list the files in the current directory. You should see
+the file you created, `test1.md`.
+
+To convert it to HTML, use this command:
+
+ pandoc test1.md -f markdown -t html -s -o test1.html
+
+The filename `test1.md` tells pandoc which file to convert.
+The `-s` option says to create a "standalone" file, with a header
+and footer, not just a fragment. And the `-o test1.html` says
+to put the output in the file `test1.html`. Note that we could
+have omitted `-f markdown` and `-t html`, since the default
+is to convert from markdown to HTML, but it doesn't hurt to
+include them.
+
+Check that the file was created by typing `ls` again. You
+should see `test1.html`. Now open this in a browser. On OS X,
+you can type
+
+ open test1.html
+
+On Windows, type
+
+ .\test1.html
+
+You should see a browser window with your document.
+
+To create a LaTeX document, you just need to change the command
+slightly:
+
+ pandoc test1.md -f markdown -t latex -s -o test1.tex
+
+Try opening `test1.tex` in your text editor.
+
+Pandoc can often figure out the input and output formats from
+the filename extensions. So, you could have just used:
+
+ pandoc test1.md -s -o test1.tex
+
+Pandoc knows you're trying to create a LaTeX document, because of the
+`.tex` extension.
+
+Now try creating a Word document (with extension `docx`).
+
+If you want to create a PDF, you'll need to have LaTeX installed.
+(See [MacTeX](http://tug.org/mactex/) on OS X,
+[MiKTeX](http://miktex.org) on Windows, or install the texlive
+package in linux.) Then do
+
+ pandoc test1.md -s -o test1.pdf
+
+# Step 7: Command-line options
+
+You now know the basics. Pandoc has a lot of options. At this point
+you can start to learn more about them by reading the
+[User's Guide](README.html).
+
+Here's an example. The `--mathml` option causes pandoc to
+convert TeX math into MathML. Type
+
+ pandoc --mathml
+
+then enter this text, followed by `Ctrl-D` (`Ctrl-Z` followed by
+`Enter` on Windows):
+
+ $x = y^2$
+
+Now try the same thing without `--mathml`. See the difference
+in output?
+
+If you forget an option, or forget which formats are supported, you
+can always do
+
+ pandoc --help
+
+to get a list of all the supported options.
+
+On OS X or Linux systems, you can also do
+
+ man pandoc
+
+to get the pandoc manual page. All of this information is also
+in the User's Guide.
+
+If you get stuck, you can always ask questions on the
+[pandoc-discuss](http://groups.google.com/group/pandoc-discuss)
+mailing list. But be sure to check the [FAQs](faqs.html) first,
+and search through the mailing list to see if your question has
+been answered before.
+