wiki2pdf
v1.0.5
Published
Generate HTML & PDF documentation from Github wiki or any other markdown-based wiki.
Downloads
46
Maintainers
Keywords
Readme
Github Wiki to pdf Converter
Github Wiki to pdf Converter allows you to generate HTML & PDF documentation from your Github wiki or any other markdown-based wiki. It is build on top of Limedocs Wiki Converter and html to pdf and contains new features and bug fixes, check the release notes to see them.
Prerequesites
Installation
npm install -g wiki2pdf
Usage
Basic usage
# Clone your github wiki for example
git clone https://github.com/madajaju/wiki2pdf.wiki.git
# Convert your wiki
wiki2pdf ./wiki2pdf.wiki
Usage help
Usage: wiki2pdf [options] <wiki-dir>
Convert a wiki
Options:
-h, --help output usage information
-V, --version output the version number
-f, --format <format> Format to convert to. Either html, pdf, or all [default: html]
-o, --output <output-dir> Output dir [default: './']
-t, --title <title> Wiki title [default: Documentation]
-d, --disable-inline-assets Disable inlining of images, css and js in html document
--logo-img <logo-file> Logo image file
--footer <footer> PDF header and footers (format in HTML)
--toc <toc-file> Wiki TOC file
--toc-level <level> Table of contents deep level [default: 3]
--highlight-theme <theme> Highlighter theme [default: github]
--css <css-file> Additional CSS file
--pdf-page-count Enable PDF page count
-v --verbose Verbose mode
Formats
HTML
Pages to be included in the documentation
By default, Github Wiki to pdf Converter will check for the following files to use as a table of contents (TOC):
_Toc.md
_Sidebar.md
(which is the default sidebar file on Github wikis)
When finding a TOC, wiki2pdf will only generate pages linked from this TOC. Supported link formats are:
- Markdown links with local path
[Call Log](Call-Log)
/[Log](Call-Log.md)
/[Calls](/Call-Log.md)
; - Markdown links with remote (http/https) path
[Calls](https://github.com/yourrepo/someproject/wiki/Call-Log)
. Only those links that are placed in TOC will be converted to local page ids; - Github wiki links
[[Call Log]]
/[[Call-Log]]
/[[Call Log|Call-Log]]
/[[Log|Call Log]]
.
Inlining
By default, the HTML output format will generate a single-page HTML document of you wiki, with all assets inlined, such as images, css, and javascript. So all you need to transfer documentation (to a colleague for example) is to send him/her this unique file.
You can disable this inlining feature by passing --disable-inline-assets
(or -d
) such as several files will be
generated for each of images, css and javascript files.
Table of contents (TOC)
The TOC is rendered using a fixed div in the HTML documentation. You can use --toc-level
to prevent the TOC div
to overlap the body
element.
Page breaking
By default all TOC pages starts from a new page. Also with default css
you will never see your code block or image
broken in two pages. To add additional page breaking use style="page-break-before: always !important;
with empty div
element.
Code highlighting
Code highlighting is rendered using highlight.js.
You can customize the theme used by using the --highlight-theme
option. By default, github
theme is used.
Footers and Headers (pdf rendering with node-html-pdf)
wiki2pdf --footer option be used to read the header or footer either out of the footer and header config object or out of the html source. You can either set a default header & footer or overwrite that by appending a page number (1 based index) to the id="pageHeader" attribute of a html tag.
You can use any combination of those tags. The library tries to find any element, that contains the pageHeader or pageFooter id prefix.
<div id="pageHeader">Default header</div>
<div id="pageHeader-first">Header on first page</div>
<div id="pageHeader-2">Header on second page</div>
<div id="pageHeader-3">Header on third page</div>
<div id="pageHeader-last">Header on last page</div>
...
<div id="pageFooter">Default footer</div>
<div id="pageFooter-first">Footer on first page</div>
<div id="pageFooter-2">Footer on second page</div>
<div id="pageFooter-last">Footer on last page</div>