GithubHelp home page GithubHelp logo

aaronwolen / pandoc-letter Goto Github PK

View Code? Open in Web Editor NEW
401.0 13.0 121.0 248 KB

Pandoc template for writing letters in markdown

License: GNU General Public License v3.0

TeX 98.88% Dockerfile 1.12%
markdown pandoc letter tex latex-template

pandoc-letter's Introduction

A simple letter template for Pandoc

Build Status Package-License

Authors: Aaron Wolen and Andrew Dunning

This template allows you to write letters in Markdown and convert them to nice looking PDFs using Pandoc and LaTeX. It accepts arguments used in the LaTeX letter class, including:

  • opening
  • closing
  • address
  • return-address
  • postscript
  • enclosures list
  • carbon-copy list

All of which can be specified in a YAML metadata block. Additional Pandoc/LaTex options can be configured directly in the metadata block. For example:

---
author: Aaron
opening: To whom it may concern,
closing: Sincerely,
address:
- 123 Street Rd
- Chicago, IL
return-address:
- My Home
- 456 Road St.
- New York, NY

# ADDITIONAL ARGUMENTS
links-as-notes: true
...

Note that each address component should start with a hyphen. The provided example letter can be compiled with the following command:

pandoc --template=template-letter.tex example/letter.md -o example/letter.pdf

You can see the PDF output here.

Features

The following can be set either as variables when executing pandoc or added to the YAML metadata.

address : Name and address of the recipient; takes a list for a multi-line address.

subject : Subject of the letter.

author : Writer of the letter; can take a list for a multi-line signature.

blockquote : Changes style of block quotations to match bootstrap (requires the mdframed package).

cc : Recipients to be carbon-copied; can take a list for multiple recipients.

closing : Text for the complementary close.

closing-indentation : Amount for closing signature block to be intended from left margin.

date : Custom date (current date will be automatically inserted if not specified).

encl : List of enclosures.

letterhead : Image file to be used as letterhead (requires the wallpaper package), applied only to the first page.

opening : Text for the salutation.

ps : Text to be added at the end of the letter as a postscript.

return-address : Address of the sender: takes a list to allow a multi-line address.

signature : Image file for a signature.

signature-before, signature-after : Allows adjustment of vertical space surrounding signature.

signature-width : Specify width of signature image file.

Running with Docker

This requires Docker to be installed.

After cloning the repository build the container. cd to the cloned directory and run

  docker build --tag=pandoc-letter .

This has to be executed only once per machine.

To create a letter run

    docker run --volume <path_to_folder_with_letter.md>:/data pandoc-letter --template=template-letter.tex letter.md -o letter.pdf

Make sure you insert the full folder path where letter.md resides.

Images, Attachments

To insert an image into the body of your letter:

![](lalune.jpg){ width=50% }

The curly brackets are optional. This inserts the image into the location of the command, above the signature.

The recommended way to attach images on a new page after the signature is to compile a separate pdf file by other means than pandoc-letter, and then attach the two pdf files with whatever utilities you are familiar with.

License

GPL-3 for pandoc-letter and the underlying Pandoc template.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.