Markdown to PDF
Creates PDF and HTML files from Markdown using the GitHub (or custom) theme.
- Code highlighting
- Images (see docs)
- Internal and external links
GitHub Action Inputs
with: input_path: value
(Required) (Path) or (File) The location of the folder containing your .md or .markdown files, or a path to a single .md or .markdown file that you would like to convert.
- Note, previous versions of this action accepted the
input_dirinput. This is still accepted as input for backwards compatibility, but passing a directory as
input_pathnow carries out the same functionality.
with: images_dir: value
(Path) The location of the folder containing your images, this should be the route of all images. So of you had images located at
images/something-else/file.pngyou would pass the value
with: output_dir: value
(Path) The location of the folder you want to place the built files.
Image Import Prefix
with: image_import: value
(String) The path you use to import your images that can be replaced with the server URL. For example if you had
<img src="./images/something-else/file.">you would pass
./imagesas this is replaced by
https://localhost:3000during the build process.
with: build_html: value
(Boolean) Whether to also create a .html file.
with: build_pdf: value
(Boolean) Whether to also create a .pdf file (defaults to
true. After all, this is the intended behaviour).
with: theme: value
(File) The location of the CSS file you want to use as the theme.
with: extend_default_theme: value
(Boolean) Whether to extend your custom CSS file with the default theme
Highlight CSS Theme
with: highlight_theme: value
(File) The location of the CSS file you want to use as the code snipped highlight theme.
HTML/Mustache Template file
with: template: value
(File) The location of the HTML/Mustache file you want to use as the HTML template.
Table Of Contents
with: table_of_contents: value
(Boolean) Whether a table of contents should be generated
A few pieces to describe what input each value expects.
A path will most likely be from your repository's route, it should not be prefixed or suffixed with a
/. The path should look like so
A string could be anything, and using
YML) does not need to be encased in quotes.
This should be either
This should be the direct path to a file, it should not be prefixed with a
/. An example:
An example of a workflow for some documentation.
# .github/workflows/convert-to-pdf.yml name: Docs to PDF # This workflow is triggered on pushes to the repository. on: push: branches: - main # Paths can be used to only trigger actions when you have edited certain files, such as a file within the /docs directory paths: - 'docs/**.md' - 'docs/images/**' jobs: converttopdf: name: Build PDF runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: baileyjm02/markdown-to-pdf@v1 with: input_dir: docs output_dir: pdfs images_dir: docs/images # for example <img src="./images/file-name.png"> image_import: ./images # Default is true, can set to false to only get PDF files build_html: false - uses: actions/upload-artifact@v1 with: name: docs path: pdfs
Any contributions are helpful, please make a pull-request. If you would like to discuses a new feature, please create an issue first.