multimarkdown user’s guide
11
and even lets you choose which color and breed of bunny to use.
And whether the bunny is left- or right-pawed.
Iam not going to program MultiMarkdown to draw bunnies.
Instead, if there is something that you wish MultiMarkdown
would do, consider the following:
1. First, make sure the feature you want doesn’t already exist. Read
the documentation. Look at the Sample Gallery
10
.
10https://github.com/fletcher/
MultiMarkdown-Gallery
2. If it’s not there, consider whether you can “hijack” an existing
feature. For example, I needed to create a PDF to print a book of
poetry. MMD didn’t have a “poetry” feature. But it did have code
blocks, which are essentially the same thing, except poetry doesn’t
usually use monospaced fonts. Voila, I used code blocks for all
of the poems, and then changed the LaTeX output to refrain from
using monospaced fonts when displaying code.
3. Still stuck? — ask for help. The discussion list
11
is a great place to
11https://groups.google.com/forum/
#!forum/multimarkdown
get help, as is the support site
12
.
12http://support.fletcherpenney.net/
4. But before requesting a new feature, honestly ask yourself how
many other people need it. Ask yourself why, if it’s such a great
idea, it hasn’t been implemented yet.
5. If your idea isn’t really useful to other people, then that makes it
the perfect opportunity to develop some new skills. Grab a copy of
the MultiMarkdown source, and start hacking away to add what
you want. Test it out. If it’s really great, share it on the discussion
list to let others use it. Convince everyone that it simply must be
added to the core source.
Convert pdf to text file - application control utility:C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net, ASP.NET MVC, WinForms, WPF application
C# PDF to Text (TXT) Converting Library to Convert PDF to Text
www.rasteredge.com
Convert pdf to text file - application control utility:VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net, ASP.NET MVC, WinForms, WPF application
VB.NET Guide and Sample Codes to Convert PDF to Text in .NET Project
www.rasteredge.com
Installation
You have several options for obtaining and installing MultiMark-
down:
• Binary installer – available for:
– Mac OS
– Windows
• Use a third party package installer:
homebrew
for Mac OS
• Compile from source – useful if you want to modify MMD’s be-
havior, or if there isn’t an available binary download for your
operating system
Mac OS
Installer
You can download the installers from the MMD website download
13
13http://fletcherpenney.net/
multimarkdown/download/
page. You need the
Mac Installer
.Download it. Run it. Done.
If you use older tools that were designed for MultiMarkdown
version 3, you may need to use the
Mac Support Installer
.This is
also useful if you need the older XSLT based parsing tools.
If you plan on creating LaTeX documents, you should also down-
load the LaTeX Support Files
14
and install them into the appropriate
14https://github.com/fletcher/peg-
multimarkdown-latex-support
location for your system and LaTeX software.
Homebrew
You can use homebrew
15
to install:
15https://github.com/Homebrew/
homebrew
brew install multimarkdown
Or, if you want the latest updates between releases:
application control utility:Online Convert PDF to Text file. Best free online PDF txt
from other C# .NET PDF to text conversion controls, RasterEdge C# PDF to text converter control toolkit can convert PDF document to text file with good
www.rasteredge.com
application control utility:C# PDF Text Extract Library: extract text content from PDF file in
Able to extract and get all and partial text content from PDF file. How to C#: Extract Text Content from PDF File. Add necessary references:
www.rasteredge.com
multimarkdown user’s guide
13
brew install --HEAD multimarkdown
(Note: I use the
--HEAD
version on my own machine.)
MacPorts
MacPorts
16
has a package for MultiMarkdown:
16https://www.macports.org/
sudo port install multimarkdown
Idon’t maintain this package, and it will likely not point to the
latest version. I don’t recommend it.
*nix
Unix/Linux users should use the instructions for compiling from
source below.
Windows
The easiest way to install MMD on Windows is the
MultiMarkdown-Windows
installer from the download
17
page and run it. The installer is built
17http://fletcherpenney.net/
multimarkdown/download/
using the
NSIS
package maker software via the
cmake
and
cpack
tools.
Just as with the Mac OS X version, the installer includes the
multimarkdown
binary, as well as several convenience scripts.
You can use Windows Explorer to create shortcuts to the
multimarkdown
binary, and adjust the properties to allow you to create “drag and
drop” versions of MMD as well.
You can also download a “Portable” version that can be run off
USB thumb drives, for example. It is also available on the down-
load
18
page.
18http://fletcherpenney.net/
multimarkdown/download/
Free BSD
If you want to compile manually, you should be able to follow the
directions for Linux below. However, apparently MultiMarkdown has
been put in the ports tree, so you can also use:
cd /usr/ports/textproc/multimarkdown
make install
application control utility:VB.NET PDF Text Extract Library: extract text content from PDF
this advanced PDF Add-On, developers are able to extract target text content from source PDF document and save extracted text to other file formats through VB
www.rasteredge.com
application control utility:VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Convert smooth lines to curves. Detect and merge image fragments. Flatten visible layers. VB.NET Demo Code to Optimize An Exist PDF File in Visual C#.NET Project
www.rasteredge.com
14 fletcher t. penney
(I have not tested this myself, and cannot guarantee that it works
properly.)
Compile From Source
Mac and *Nix Machines
• Download the source from the github
19
web site:
19https://github.com/fletcher/
MultiMarkdown-4
git https://github.com/fletcher/MultiMarkdown-4.git
• Update the submodules, including
greg
git submodule init
git submodule update
• Compile:
make
• Run
make test-all | less
(or
make test-all | grep failed
for
amore concise version) to verify that the build is correct. One of
the tests is expected to fail (“Ordered and unordered lists”); the
rest should pass on all systems.
make install
(as root) will install the software
make install-scripts
will install the helper scripts for you
(e.g.
mmd
,
mmd2tex
,etc.)
• If you plan on creating LaTeX documents, you should also down-
load the LaTeX Support Files
20
and install them into the appropri-
20https://github.com/fletcher/peg-
multimarkdown-latex-support
ate location for your system and LaTeX software.
MultiMarkdown includes a few other projects as submodules, but
the only one you need to actually compile the code is the
greg
soft-
ware. Once compiled, MultiMarkdown has no external dependencies
–the binary is self-contained. Therefore, it should basically compile
and run anywhere.
Windows
Windows users can obtain the code in the same way, but will need to
use their own compiler. The way I compile for Windows is actually
to use the
make windows
command running on a *nix system with
MinGW installed.
The instructions for peg-markdown
21
demonstrate how to compile
21https://github.com/jgm/peg-
markdown
apackage for Windows.
Otherwise, you’re on your own here.
application control utility:C# PDF File Split Library: Split, seperate PDF into multiple files
Application. Best and professional adobe PDF file splitting SDK for Visual Studio .NET. outputOps); Divide PDF File into Two Using C#.
www.rasteredge.com
application control utility:C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
PDFPage page = (PDFPage)doc.GetPage(0); // Convert the first PDF page to a JPEG file. page.ConvertToImage(ImageType.JPEG, Program.RootPath + "\\Output.jpg");
www.rasteredge.com
How to Use MultiMarkdown
There are several ways to use MultiMarkdown, depending on your
needs. You can use the
multimarkdown
command line tool, you can
use MultiMarkdown with several applications that support it directly,
or you can use a drag and drop approach.
Command Line Usage
First, verify that you have properly installed MultiMarkdown:
multimarkdown -v
If you don’t see a message telling you which version of Multi-
Markdown is installed, check out Troubleshooting.
To learn more about the command line options to MultiMark-
down:
multimarkdown -h
Once you have properly installed MultiMarkdown:
multimarkdown file.txt
will convert the plain text file
file.txt
into HTML output. To save
the results to a file:
multimarkdown file.txt > file.html
Ashortcut to this is to use MultiMarkdown’s batch mode, which
will save the output to the same base filename that is input, with the
extension
.html
(or
.tex
for LaTeX output):
multimarkdown -b file.txt
application control utility:VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
Convert PDF to SVG. Convert PDF to Text. Convert PDF to JPEG. Convert PDF to Png, Gif, Bitmap Images. File & Page Process. File: Merge, Append PDF Files. File
www.rasteredge.com
application control utility:VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
using RasterEdge.XDoc.PDF; This professional .NET solution that is designed to convert PDF file to HTML web page using VB.NET code efficiently.
www.rasteredge.com
16 fletcher t. penney
Abenefit of batch mode is that you can process multiple files at
once:
multimarkdown -b file1.txt file2.txt file3.txt
If you want to create LaTeX output instead of HTML:
multimarkdown -t latex file.txt
For LyX:
multimarkdown -t lyx file.txt
For OPML:
multimarkdown -t opml file.txt
For RTF (RTF output is limited – check the output carefully to be
sure it’s ok for your needs):
multimarkdown -t rtf file.txt
And for an OpenDocument text file:
multimarkdown -t odf file.txt
If you are using “basic” transclusion (not dependent on particular
output formats), you can use MMD to perform the transclusion and
output the raw MMD source:
multimarkdown -t mmd file.txt
There are also several convenience scripts included with Multi-
Markdown:
mmd file.txt
mmd2tex file.txt
mmd2opml file.txt
mmd2odf file.txt
These scripts run MultiMarkdown in batch mode to generate
HTML, LaTeX, OPML, or ODF files respectively. These scripts are
multimarkdown user’s guide
17
included with the Mac or Windows installers, and are available for
*nix in the
scripts
directory in the source project. They are intended
to be used as shortcuts for the most common command line options.
Command Line Options
There are several options when running MultiMarkdown from the
command line.
multimarkdown -h, multimarkdown --help
This shows a summary of how to use MultiMarkdown.
multimarkdown -v, multimarkdown --version
Displays the version of MultiMarkdown currently installed.
multimarkdown -o, multimarkdown --output=FILE
Directs the output to the specified file. By default, the output is
directed to
stdout
.The use of
batch
mode obviates the need to use
this option, but if you want to specify a different output filename it
can be handy.
multimarkdown -t html|latex|memoir|beamer|opml|odf|rtf|lyx|lyx-beamer
This options specified the format that MultiMarkdown outputs.
The default is html. If you use the
LaTeX Mode
metadata, then Mul-
tiMarkdown will automatically choose
memoir
or
beamer
as directed
without using these command line options. Using that metadata
will also allow the various convenience scripts to choose the correct
output format as well.
multimarkdown -b, multimarkdown --batch
Automatically redirects the output to a file with the same base
name as the input file, but with the appropriate extension based on
the output type. For example,
multimarkdown -b file.txt
would
output the HTML to
file.html
,and
multimarkdown -b -t latex
file.txt
would output to
file.tex
.
multimarkdown -c, multimarkdown --compatibility
18 fletcher t. penney
Compatibility mode causes MultiMarkdown to output HTML that
is compatible with that output from the original Markdown. This
allows it to pass the original Markdown test suite. Syntax features
that don’t exist in regular Markdown will still be output using the
regular MultiMarkdown output formatting.
multimarkdown -f, multimarkdown --full
The
full
option forces a complete document, even if it does not
contain enough metadata to otherwise trigger a complete document.
multimarkdown -s, multimarkdown --snippet
The
snippet
option forces the output of a “snippet”, meaning that
header and footer information is left out. This means that a LaTeX
document might not have enough information to be processed, for
example.
multimarkdown --process-html
This option tells MultiMarkdown to process the text included
within HTML tags in the source document. This can feature can also
be implemented on a tag-by-tag basis within the document itself,
such as<
div markdown="1"
>.
multimarkdown -m, multimarkdown --metadata-keys
List all of the available metadata keys contained in a document,
one key per line.
multimarkdown -e "metakey", multimarkdown --extract "metakey"
The extract feature outputs the value of the specified metadata
key. This is used in my convenience scripts to help choose the proper
LaTeX output mode, and could be used in other circumstances as
well.
multimarkdown --random
Tell MultiMarkdown to use random identifier numbers for foot-
notes. Useful when you might combine multiple HTML documents
together, e.g. in a weblog.
multimarkdown user’s guide
19
multimarkdown --accept
multimarkdown --reject
multimarkdown --accept --reject
Tell MultiMarkdown whether to accept or reject changes in written
in CriticMarkup
22
format within the document. Use both together
22http://criticmarkup.com/
if you want to highlight the differences – this only works for HTML
output.
multimarkdown --smart
multimarkdown --nosmart
Tell MultiMarkdown whether to use “smart” typography, simi-
lar to John Gruber’s SmartyPants
23
program, which was included
23http://daringfireball.net/projects/
smartypants/
in MultiMarkdown 2.0. This extension is turned on by default in
MultiMarkdown.
multimarkdown --notes
multimarkdown --nonotes
Tell MultiMarkdown whether to use footnotes (enabled by de-
fault).
multimarkdown --labels
multimarkdown --nolabels
Tell MultiMarkdown whether to add id attributes to headers in
HTML (enabled by default).
multimarkdown --mask
multimarkdown --nomask
Tell MultiMarkdown whether to mask email addresses when creat-
ing HTML (enabled by default).
multimarkdown --notes
Enables the use of footnotes and similar markup (glossary, cita-
tions). Enabled by default in MultiMarkdown.
Other options are available by checking out
multimarkdown --help-all
,
but the ones listed above are the primary options.
20 fletcher t. penney
Advanced Mode
MultiMarkdown version 2.0 had to first convert the source file to
HTML, and then applied XSLT files to convert to the final LaTeX
format. Since MultiMarkdown 3.0 can create LaTeX directly, this
approach is no longer necessary.
The one benefit of that approach, however, was that it became
possible to perform a wide range of customizations on exactly how
the LaTeX output was created by customizing the XSLT files.
If you install the Support files on Mac or Linux, you can still use
the advanced XSLT method to generate LaTeX output. For the time
being, this approach doesn’t work with Windows, but it would be
fairly easy to create a batch script or perl script to implement this
feature on Windows.
Keep in mind, however, that because of the more advanced mech-
anism of handling LaTeX in MultiMarkdown 3.0, you can do a great
deal of customization without needing to use an XSLT file.
The
mmd2tex-xslt
script will convert a plain text file into LaTeX
that is virtually identical with that created by the regular LaTeX ap-
proach.
There are a few differences in the two approaches, however:
• Once a MultiMarkdown file is converted to HTML, it is impossi-
ble to tell whether the resulting HTML was generated by Multi-
Markdown, or if it was included as raw HTML within the source
document. So either way, it will be converted to the analagous La-
TeX syntax. The
multimarkdown
binary on its own will not convert
HTML into LaTeX.
• The whitespace that is generated will be different under certain
circumstances. Typically, this will result in one extra or one fewer
blank lines with the the XSLT approach. Generally this will not
be an issue, but when used with<
!-- some comment --
>itmay
cause a newline to be lost.
• The default XSLT recognizes
class="noxslt"
when applied to
HTML entities, and will discard them from the output.
• An XSLT can only be applied to a complete HTML document, not
a“snippet”. Therefore, if you want to use the XSLT method, your
file must have metadata that triggers a complete document (i.e.
any metadata except “quotes language” or “base header level”).
• Using XSL to process an HTML file will “de-obfuscate” any email
addresses that were obfuscated by MultiMarkdown.
Documents you may be interested
Documents you may be interested