Generate a single PDF file from MkDocs repository.

Overview

PDF Generate Plugin for MkDocs

PyPI version PyPI downloads


This plugin will generate a single PDF file from your MkDocs repository. This plugin is inspired by MkDocs PDF Export Plugin.

Features

  • Cover and Table of Contents integrated in the PDF
  • Automatically numbers on heading(h1-h3).
  • Shift down sub-page headings level.
  • using WeasyPrint.

Samples

Requirements

  1. This package requires MkDocs version 1.0 or higher (0.17 works as well)
  2. Python 3.6 or higher
  3. WeasyPrint depends on cairo, Pango and GDK-PixBuf which need to be installed separately. Please follow the installation instructions for your platform carefully:

How to use

Installation

  1. Install the package with pip:

    pip install mkdocs-with-pdf
  2. Enable the plugin in your mkdocs.yml:

    plugins:
        - with-pdf

    More information about plugins in the MkDocs documentation.

Testing

When building your repository with mkdocs build, you should now see the following message at the end of your build output:

Converting 10 articles to PDF took 7.1s

Configuration

You may customize the plugin by passing options in mkdocs.yml:

plugins:
    - with-pdf:
        #author: WHO
        #copyright: ANY TEXT
        #
        #cover: false
        #back_cover: true
        #cover_title: TITLE TEXT
        #cover_subtitle: SUBTITLE TEXT
        #custom_template_path: TEMPLATES PATH
        #
        #toc_title: TOC TITLE TEXT
        #heading_shift: false
        #toc_level: 3
        #ordered_chapter_level: 2
        #excludes_children:
        #    - 'release-notes/:upgrading'
        #    - 'release-notes/:changelog'
        #
        #exclude_pages:
        #    - 'bugs/'
        #    - 'appendix/contribute/'
        #convert_iframe:
        #    - src: IFRAME SRC
        #      img: POSTER IMAGE URL
        #      text: ALTERNATE TEXT
        #    - src: ...
        #two_columns_level: 3
        #
        #render_js: true
        #headless_chrome_path: headless-chromium
        #
        #output_path: any-place/document.pdf
        #enabled_if_env: ENABLE_PDF_EXPORT
        #
        #debug_html: true
        #show_anchors: true
        #verbose: true

Options

for Properties
  • author

    Set the author text.
    default: use site_author in your project mkdocs.yml

  • copyright

    Set the author text.
    default: use copyright in your project mkdocs.yml

author and copyright values are drawn in Cover, and you can use '@page' content.

@page {
  @bottom-left {
    content: string(author) !important;
  }
  @bottom-right {
    content: string(copyright) !important;
  }
}
for Cover
  • cover

    Set the value to false if you don't need a cover page.
    default: true

  • back_cover

    Set the value to true if you need a back cover page.
    default: false
    since: v0.8.0

    You would be better to install the qrcode package:

    pip install qrcode
  • cover_title

    Set the title text in cover page.
    default: use site_name in your project mkdocs.yml

  • cover_subtitle

    Set the subtitle text in cover page.
    default: None

  • cover_logo

    Set the logo image in cover page. This value is URL or simply specify the relative path to the docs directory.
    default: None
    since: v0.8.0

for Heading and TOC
  • toc_title

    Set the title text of Table of Content.
    default: Table of Content
    since: v0.4.0

  • heading_shift

    Set this value to false, disable shift heading in child page.
    default: true

    In this flags enable, heading move down one level in child page.

  • toc_level

    Set the level of Table of Content. This value is enabled in the range of from 1 to 3.
    default: 3

  • ordered_chapter_level

    Set the level of heading number addition. This value is enabled in the range of from 1 to 3.
    default: 3

  • excludes_children

    Set the page id of nav url. If the id matches in this list, it will be excluded from the heading number addition and table of contents.
    default: []

for Page
  • exclude_pages

    Set the page id of nav url. If the id matches in this list, it will be excluded page contents.
    default: []
    since: v0.3.0

  • convert_iframe

    List of iframe to a conversions. Every iframe that matches a src in this list will be replace to a contains each img and/or text. it's using for such as embedded VIDEO.
    default: []
    since: v0.6.0

    @see Sample of MkDocs Material

  • two_columns_level (Experimental)

    Set the heading level of Two Column Layout. Currently only 0(disable) or 3 is valid for this value. So slow processing, but a little nice.

    default: 0
    since: v0.7.0

    @see Sample of MkDocs Material

Renderer for JavaScript
  • render_js

    Set the value to true if you're using 'MathJax', 'Twemoji' or any more.
    Require "Chrome" which has "headless" mode.

    default: false
    since: v0.7.0

  • headless_chrome_path

    Set the "Headless Chrome" program path.
    If render_js is false, this value will be ignored.

    default: chromium-browser

Check on your system:

$ <PROGRAM_PATH> --headless \
   --disable-gpu \
   --dump-dom \
   <ANY_SITE_URL(eg. 'https://google.com')>
... and more
  • output_path

    This option allows you to use a different destination for the PDF file.
    default: pdf/document.pdf

  • custom_template_path

    The path where your custom cover.html and/or styles.scss are located. default: templates
    since: v0.8.0

  • enabled_if_env

    Setting this option will enable the build only if there is an environment variable set to 1. This is useful to disable building the PDF files during development, since it can take a long time to export all files.
    default: None

    PDF generation can take significantly longer than HTML generation which can slow down mkdocs's built-in dev-server.

    Adding enabled_if_env: ENABLE_PDF_EXPORT under - with-pdf: disables PDF generation during development. Run the dev-server normally:

    $ mkdocs serve
    INFO    -  Browser Connected: http://127.0.0.1:8000/
    INFO    -  Running task: builder (delay: None)
    INFO    -  Building documentation...
    WARNING -  without generate PDF(set environment variable ENABLE_PDF_EXPORT to 1 to enable)
    ... 2 seconds later ...
    INFO    -  Reload 1 waiters: /.../index.md

    and to build files to deploy specify ENABLE_PDF_EXPORT=1 at the command line:

    $ ENABLE_PDF_EXPORT=1 mkdocs build
    ...
    INFO    -  Converting 10 articles to PDF took 7.1s
    INFO    -  Documentation built in 8.29 seconds
  • debug_html

    Setting this to true will out HTML to stdout on build time.
    default: false

    You can try this:

    mkdocs build > for_pdf_print.html
  • show_anchors

    Setting this to true will list out of anchor points provided during the build as info message.
    default: false
    since: v0.7.4

  • verbose

    Setting this to true will show all WeasyPrint debug messages during the build.
    default: false

Custom cover page and document style

It is possible to create a custom cover page for the document. You can also add a custom style sheet to modify the whole document.

To do so, add a templates folder at the root level of your mkdocs project and place a cover.html and/or a styles.scss inside. Alternatively, you can specify a different location with the custom_template_path option.

Custom cover page

Using jinja2 syntax, you can access all data from your mkdocs.yml. To make template creation easier, you can use plugin_some_plugin to access variables from plugins. E.g. use {{ author }} to get the author from your mkdocs.yml that looks like:

plugins:
    - with-pdf:
        author: WHO

You can use custom variables extra: in your mkdocs.yml And, you can check it in the log if run with verbose or debug_html options.

Custom stylesheet

Since your stylesheet is appended to the default ones, you can override every setting from them.

Tip: setting the debug_html option to true to get the generated html that is passed to weasyprint can help you determine the html tags, classes or identifiers you want to modify in your stylesheet.

Advanced Rendering Hooks (Experimental)

You can hook the PDF rendering process by creating a pdf_event_hook.py(or pdf_event_hook/__init__.py) in your working directory (usually the same directory as mkdocs.yml).
since: v0.8.2

Sample pdf_event_hook.py (or pdf_event_hook/__init__.py)

import logging
from bs4 import BeautifulSoup
from mkdocs.structure.pages import Page


def inject_link(html: str, href: str,
                page: Page, logger: logging) -> str:
    """Adding PDF View button on navigation bar(using material theme)"""

    def _pdf_icon():
        _ICON = '''
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="M128,0c-17.6,0-32,14.4-32,32v448c0,17.6,14.4,32,32,32h320c17.6,0,32-14.4,32-32V128L352,0H128z" fill="#E2E5E7"/>
<path d="m384 128h96l-128-128v96c0 17.6 14.4 32 32 32z" fill="#B0B7BD"/>
<polygon points="480 224 384 128 480 128" fill="#CAD1D8"/>
<path d="M416,416c0,8.8-7.2,16-16,16H48c-8.8,0-16-7.2-16-16V256c0-8.8,7.2-16,16-16h352c8.8,0,16,7.2,16,16  V416z" fill="#F15642"/>
<g fill="#fff">
<path d="m101.74 303.15c0-4.224 3.328-8.832 8.688-8.832h29.552c16.64 0 31.616 11.136 31.616 32.48 0 20.224-14.976 31.488-31.616 31.488h-21.36v16.896c0 5.632-3.584 8.816-8.192 8.816-4.224 0-8.688-3.184-8.688-8.816v-72.032zm16.88 7.28v31.872h21.36c8.576 0 15.36-7.568 15.36-15.504 0-8.944-6.784-16.368-15.36-16.368h-21.36z"/>
<path d="m196.66 384c-4.224 0-8.832-2.304-8.832-7.92v-72.672c0-4.592 4.608-7.936 8.832-7.936h29.296c58.464 0 57.184 88.528 1.152 88.528h-30.448zm8.064-72.912v57.312h21.232c34.544 0 36.08-57.312 0-57.312h-21.232z"/>
<path d="m303.87 312.11v20.336h32.624c4.608 0 9.216 4.608 9.216 9.072 0 4.224-4.608 7.68-9.216 7.68h-32.624v26.864c0 4.48-3.184 7.92-7.664 7.92-5.632 0-9.072-3.44-9.072-7.92v-72.672c0-4.592 3.456-7.936 9.072-7.936h44.912c5.632 0 8.96 3.344 8.96 7.936 0 4.096-3.328 8.704-8.96 8.704h-37.248v0.016z"/>
</g>
<path d="m400 432h-304v16h304c8.8 0 16-7.2 16-16v-16c0 8.8-7.2 16-16 16z" fill="#CAD1D8"/>
</svg>
'''  # noqa: E501
        return BeautifulSoup(_ICON, 'html.parser')

    logger.info(f'(hook on inject_link: {page.title})')
    soup = BeautifulSoup(html, 'html.parser')

    nav = soup.find(class_='md-header-nav')
    if nav:
        a = soup.new_tag('a', href=href, title='PDF',
                         **{'class': 'md-header-nav__button md-icon'})
        a.append(_pdf_icon())
        nav.append(a)
        return str(soup)

    return html


# def pre_js_render(soup: BeautifulSoup, logger: logging) -> BeautifulSoup:
#     logger.info('(hook on pre_js_render)')
#     return soup


# def pre_pdf_render(soup: BeautifulSoup, logger: logging) -> BeautifulSoup:
#     logger.info('(hook on pre_pdf_render)')
#     tag = soup.find(lambda tag: tag.name ==
#                     'body' and 'data-md-color-scheme' in tag.attrs)
#     if tag:
#         tag['data-md-color-scheme'] = 'print'
#     return soup

... and check log:

$ mkdocs build
INFO    -  Found PDF rendering event hook module.
INFO    -  Cleaning site directory
INFO    -  Building documentation to directory: /tmp/sample/site
INFO    -  (hook on inject_link: Home)
   ...

Contributing

From reporting a bug to submitting a pull request: every contribution is appreciated and welcome. Report bugs, ask questions and request features using Github issues. If you want to contribute to the code of this project, please read the Contribution Guidelines.

Special thanks to

Comments
  • exclude_pages compatibility with awesome-pages

    exclude_pages compatibility with awesome-pages

    I have run into an issue which might be related to https://github.com/orzih/mkdocs-with-pdf/issues/46.

    The problem is that I am unable to use exclude_pages together with awesome-pages. Basically, if I use the ... in my mkdocs.yaml file, to have awesome-pages automatically add pages to nav, the exclude_pages functionality stops working.

    I have created MWE in this repository: https://github.com/ErikThorsell/mkdocs_with_pdf-exclude_pages-bug. The key thing is Line 26 in the mkdocs.yaml (link), please see the inline comment.

    Please let me know if there's anything I can do to assist you further in debugging the issue.

    enhancement 
    opened by ErikThorsell 8
  • `exclude_pages` Skips Page Html Generation

    `exclude_pages` Skips Page Html Generation

    Usage of exclude_pages causes whatever pages are excluded to not only be excluded from generated PDF (desired behavior), but also to be skipped when mkdocs generates the site html (undesired behavior).

    I have tested this multiple times with both mkdocs build and mkdocs serve as did a colleague of mine on a different mkdocs project. When attempting to navigate to the page on the development server (localhost:8000), when I click the link it changes the browser URL to reflect the target page, but only shows previous pages' content. If I click it again, it updates the URL with additional paths that make the link nonsensical (something like localhost:8000/this/is/a/test/page/ to localhost:8000/this/is/a/test/page/a/test/page/) and I get an error 404. If I attempt to navigate to the page directly by URL, it displays a blank page, with absolutely no content. This is consistent across Chrome and Firefox.

    The output file for an excluded site page contains only <!-- skipped 'Page(title='TITLE', url='this/is/a/test/page/')' --> (edited to reflect example used earlier).

    I'm using:

    • mkdocs-with-pdf version 0.8.3 from pip
    • Weasyprint version 52.4 from pip
    • mkdocs version 1.1.2 from pip
    • Python 3.8.5

    I don't know why it would be intended behavior if a user could simply remove a page from their documentation to the same effect. I don't believe that this is intended behavior, but if it is then it should probably be clearly reflected in the documentation.

    bug 
    opened by Jacusaurus 6
  • Links to chapters with special characters are not rendered

    Links to chapters with special characters are not rendered

    Links that include special characters like ä or & are not resolved in the pdf. On rendering the pdf the following error is thrown:

    No anchor #broken_entry_&/ for internal URI reference
    

    This also effects the links in the toc as mentioned in #15

    I created a minimal example with the bug: mkdocs_heading_example.zip

    bug 
    opened by JanoschDeurer 5
  • Links on second level toc items aren't working

    Links on second level toc items aren't working

    I'm using material for mkdocs. There are two different behaviors. If I don't set a first level heading for a page, mkdocs automatically renders the one that is given by the nav entry in the config file. In this case mkdocs-with-pdf throws the following error:

    ERROR   -  Content discarded: target points to undefined anchor "('string', '#')"
    

    The entry in the toc then points to #.

    If I set the heading on the page manually by adding

    # exampleHeading
    

    to my markdown file I get the following error instead:

    ERROR   -  No anchor #example/path/:exampleheading for internal URI reference
    

    The resulting toc entry is then no longer a link meaning it is not clickable.

    bug 
    opened by JanoschDeurer 5
  • Exclude a single page?

    Exclude a single page?

    How to exclude a single page?

    For example, i have a landing page in my docs folder with directory docs/index.md.

    And i want to exlude that in my generated PDF? How to do that?

    The sample only show us how to exclude folder.

    Thanks in advance @orzih

    opened by jimlyas 4
  •  中文乱码 Chinese is garbled after the generated PDF

    中文乱码 Chinese is garbled after the generated PDF

    Question

    My markdown doc contains Chinese, Chinese is garbled after the generated PDF. What should I do? What are the possible problems? I'm a new guy, and I don't have any idea.

    Environment

    [root@centos7 ~]# python -V
    Python 3.7.5
    [root@centos7 ~]# pip list
    Package                    Version  
    -------------------------- ---------
    beautifulsoup4             4.9.3    
    cairocffi                  1.2.0    
    CairoSVG                   2.5.2    
    cffi                       1.14.5   
    click                      7.1.2    
    cssselect2                 0.4.1    
    defusedxml                 0.7.1    
    future                     0.18.2   
    html5lib                   1.1      
    importlib-metadata         3.7.3    
    Jinja2                     2.11.3   
    joblib                     1.0.1    
    libsass                    0.20.1   
    livereload                 2.6.3    
    lunr                       0.5.8    
    Markdown                   3.3.4    
    MarkupSafe                 1.1.1    
    mkdocs                     1.1.2    
    mkdocs-material            7.0.6    
    mkdocs-material-extensions 1.0.1    
    mkdocs-pdf-export-plugin   0.5.8    
    mkdocs-with-pdf            0.8.3    
    nltk                       3.5      
    Pillow                     8.1.2    
    pip                        19.2.3   
    pycparser                  2.20     
    Pygments                   2.8.1    
    pymarkdown                 0.1.4    
    pymdown-extensions         8.1.1    
    Pyphen                     0.10.0   
    PyYAML                     5.4.1    
    regex                      2021.3.17
    setuptools                 41.2.0   
    six                        1.15.0   
    soupsieve                  2.2.1    
    tinycss2                   1.1.0    
    toolz                      0.11.1   
    tornado                    6.1      
    tqdm                       4.59.0   
    typing-extensions          3.7.4.3  
    WeasyPrint                 52.4     
    webencodings               0.5.1    
    zipp                       3.4.1    
    

    Repro steps

    1. Create a new project.

    [root@centos7 ~]# mkdocs new test
    [root@centos7 ~]# cd test/
    

    2. Using the plugin.

    [root@centos7 test]# cat > mkdocs.yml <<EOF
    site_name: 我的测试
    dev_addr: 0.0.0.0:8000
    plugins:
      - with-pdf:
    EOF
    

    3. Rewrite index.md with Chinese

    [root@centos7 test]# cat > docs/index.md <<"EOF"
    完整文档请访问:[mkdocs.org](https://www.mkdocs.org).
    
    
    * `mkdocs new [dir-name]` - 创建一个新项目
    * `mkdocs serve` - 启动实时重新加载文档服务器
    * `mkdocs build` - 建立文档站点
    * `mkdocs -h` - 打印这个帮助信息
    
    
        mkdocs.yml    # 配置文件、
        docs/
            index.md  # 文档根页面
            ...       # 其他markdown页面, 镜像或其他问题
    EOF
    

    4. mkdocs build

    [root@centos7 test]# mkdocs build
    WARNING -  Config value: 'dev_addr'. Warning: The use of the IP address '0.0.0.0' suggests a production environment or the use of a proxy to connect to the MkDocs server. However, the MkDocs' server is intended for local development purposes only. Please use a third party production-ready server instead. 
    INFO    -  Cleaning site directory 
    INFO    -  Building documentation to directory: /root/test/site 
    INFO    -  Number headings up to level 3. 
    INFO    -  Generate a table of contents up to heading level 2. 
    INFO    -  Generate a cover page with "default_cover.html.j2". 
    INFO    -  Converting <img> alignment(workaround). 
    INFO    -  Rendering for PDF. 
    INFO    -  Output a PDF to "/root/test/site/pdf/document.pdf". 
    INFO    -  Converting 1 articles to PDF took 2.2s 
    INFO    -  Documentation built in 2.47 seconds 
    

    5. Download and open the pdf

    image

    opened by you-can-change 4
  • Add support for permalink

    Add support for permalink

    Material for mkdocs supports the permalink markdown extension as described here: https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#table-of-contents

    It would be great to have support for that in the pdf, in the sense that when a link points to the anchor like this

    [My subsection](#mysubsection)
    

    it is correctly resolved.

    opened by JanoschDeurer 4
  • Links to/from subdirs broken depending on use_directory_urls

    Links to/from subdirs broken depending on use_directory_urls

    Version 0.3.3 + MkDocs 1.1.2 Link to sections from subdirs aren't connected depending on the value of use_directory_urls:

    huh.md:

    # TEST
    ## One
    - [Link 1: to subdir (file)](subdir/huh.md)
    - [Link 2: to subdir (section)](subdir/huh.md#one)
    

    subdir/huh.md:

    # SUBDIR TEST
    # One
    - [Link 3: to parent (file)](../huh.md)
    - [Link 4: to parent (section)](../huh.md#one)
    
    • use_directory_urls: true (default): Links 2 & 4 ok, 1 & 3 broken ('The application can’t be opened.')
    • use_directory_urls: false: Links 1, 2 & 3 ok. Link 4 inactive.
    bug 
    opened by ghost 4
  • Internal refs broken when use_directory_urls=false AND file name != *index.md

    Internal refs broken when use_directory_urls=false AND file name != *index.md

    Internal links in PDF inactive when use_directory_urls is false and filename does not begin with index.

    Example:

    # TEST PAGE
    - [Internal link to one](#one)
    - [Internal link to two](#two)
    ## One
    One
    ## Two
    two
    
    • Links rendered correctly when file is named index.md, indexnot.md.
    • Links appear but are inactive when file is named notindex.md, not.md.
    • When use_directory_links: true (the default) all links are correct.
    bug 
    opened by ghost 4
  • Document links don't work in pdf

    Document links don't work in pdf

    If I include a link to another page in the Markdown using [link description](page.md) syntax the link doesn't not work in the generated PDF - the generated web site works OK.

    There is an error output when the mkdocs build command is run, that corresponds to each instance of a page link in the Markdown docs : ERROR - No anchor #page.html: for internal URI reference.

    It doesn't matter if the Markdown pages are in the same directory, in the root docs directory or in a subdirectories of the docs directory - none of the internal links work.

    I have the recommended toc extension with the permalink: true option set and the use_directory_urls option set to false as specified in the documentation.

    Using the debug_html option I can see there is no id attribute on the article tag for a page, so looks like there is no anchor being created for pages, just a data-url tag.

    bug 
    opened by binnes 4
  • Syntax error when running under Python3.5

    Syntax error when running under Python3.5

    It looks like the f"..." syntax is not supported in Python3.5. Running mkdocs build gives:

    Traceback (most recent call last): File "/usr/local/bin/mkdocs", line 11, in sys.exit(cli()) File "/usr/local/lib/python3.5/dist-packages/click/core.py", line 829, in call return self.main(*args, **kwargs) File "/usr/local/lib/python3.5/dist-packages/click/core.py", line 782, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.5/dist-packages/click/core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.5/dist-packages/click/core.py", line 1066, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python3.5/dist-packages/click/core.py", line 610, in invoke return callback(*args, **kwargs) File "/usr/local/lib/python3.5/dist-packages/mkdocs/main.py", line 152, in build_command build.build(config.load_config(**kwargs), dirty=not clean) File "/usr/local/lib/python3.5/dist-packages/mkdocs/config/base.py", line 197, in load_config errors, warnings = cfg.validate() File "/usr/local/lib/python3.5/dist-packages/mkdocs/config/base.py", line 107, in validate run_failed, run_warnings = self._validate() File "/usr/local/lib/python3.5/dist-packages/mkdocs/config/base.py", line 62, in _validate self[key] = config_option.validate(value) File "/usr/local/lib/python3.5/dist-packages/mkdocs/config/config_options.py", line 131, in validate return self.run_validation(value) File "/usr/local/lib/python3.5/dist-packages/mkdocs/config/config_options.py", line 609, in run_validation plgins[item] = self.load_plugin(item, cfg) File "/usr/local/lib/python3.5/dist-packages/mkdocs/config/config_options.py", line 617, in load_plugin Plugin = self.installed_plugins[name].load() File "/usr/local/lib/python3.5/dist-packages/pkg_resources/init.py", line 2447, in load return self.resolve() File "/usr/local/lib/python3.5/dist-packages/pkg_resources/init.py", line 2453, in resolve module = import(self.module_name, fromlist=['name'], level=0) File "/usr/local/lib/python3.5/dist-packages/mkdocs_with_pdf/plugin.py", line 68 f'(set environment variable {env_name} to 1 to enable)' ^ SyntaxError: invalid syntax

    bug 
    opened by PaulVanNiekerk 3
  • Is this project maintained?

    Is this project maintained?

    The last merge was over a year ago and there are 21+ PRs waiting, some which address critical issues. This project kind of looks abandoned, but there are lots of new issues and PRs out there, so there's community interest.

    If @orzih or another maintainer can let us know if this project is a going concern, that would be amazing. The project has a ton of potential and I think lots of us are eager to leverage it. I'd be happy to contribute as much as I can, but I'm not able to maintain my own fork right now.

    Thank you for the work you've done so far!

    opened by elotze 0
  • Bump express from 4.17.1 to 4.18.2 in /custum_style_src/material-polyfills

    Bump express from 4.17.1 to 4.18.2 in /custum_style_src/material-polyfills

    Bumps express from 4.17.1 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump qs and express in /custum_style_src/material-polyfills

    Bump qs and express in /custum_style_src/material-polyfills

    Bumps qs and express. These dependencies needed to be updated together. Updates qs from 6.7.0 to 6.11.0

    Changelog

    Sourced from qs's changelog.

    6.11.0

    • [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option (#442)
    • [readme] fix version badge

    6.10.5

    • [Fix] stringify: with arrayFormat: comma, properly include an explicit [] on a single-item array (#434)

    6.10.4

    • [Fix] stringify: with arrayFormat: comma, include an explicit [] on a single-item array (#441)
    • [meta] use npmignore to autogenerate an npmignore file
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, object-inspect, tape

    6.10.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [actions] reuse common workflows
    • [Dev Deps] update eslint, @ljharb/eslint-config, object-inspect, tape

    6.10.2

    • [Fix] stringify: actually fix cyclic references (#426)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [actions] update codecov uploader
    • [actions] update workflows
    • [Tests] clean up stringify tests slightly
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, object-inspect, safe-publish-latest, tape

    6.10.1

    • [Fix] stringify: avoid exception on repeated object values (#402)

    6.10.0

    • [New] stringify: throw on cycles, instead of an infinite loop (#395, #394, #393)
    • [New] parse: add allowSparse option for collapsing arrays with missing indices (#312)
    • [meta] fix README.md (#399)
    • [meta] only run npm run dist in publish, not install
    • [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbols, tape
    • [Tests] fix tests on node v0.6
    • [Tests] use ljharb/actions/node/install instead of ljharb/actions/node/run
    • [Tests] Revert "[meta] ignore eclint transitive audit warning"

    6.9.7

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] stringify: avoid encoding arrayformat comma when encodeValuesOnly = true (#424)
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] add note and links for coercing primitive values (#408)
    • [Tests] clean up stringify tests slightly
    • [meta] fix README.md (#399)
    • Revert "[meta] ignore eclint transitive audit warning"

    ... (truncated)

    Commits
    • 56763c1 v6.11.0
    • ddd3e29 [readme] fix version badge
    • c313472 [New] [Fix] stringify: revert 0e903c0; add commaRoundTrip option
    • 95bc018 v6.10.5
    • 0e903c0 [Fix] stringify: with arrayFormat: comma, properly include an explicit `[...
    • ba9703c v6.10.4
    • 4e44019 [Fix] stringify: with arrayFormat: comma, include an explicit [] on a s...
    • 113b990 [Dev Deps] update object-inspect
    • c77f38f [Dev Deps] update eslint, @ljharb/eslint-config, aud, has-symbol, tape
    • 2cf45b2 [meta] use npmignore to autogenerate an npmignore file
    • Additional commits viewable in compare view

    Updates express from 4.17.1 to 4.18.2

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /custum_style_src/material-polyfills

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /custum_style_src/material-polyfills

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump pillow from 8.3.2 to 9.3.0

    Bump pillow from 8.3.2 to 9.3.0

    Bumps pillow from 8.3.2 to 9.3.0.

    Release notes

    Sourced from pillow's releases.

    9.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/9.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    9.3.0 (2022-10-29)

    • Limit SAMPLESPERPIXEL to avoid runtime DOS #6700 [wiredfool]

    • Initialize libtiff buffer when saving #6699 [radarhere]

    • Inline fname2char to fix memory leak #6329 [nulano]

    • Fix memory leaks related to text features #6330 [nulano]

    • Use double quotes for version check on old CPython on Windows #6695 [hugovk]

    • Remove backup implementation of Round for Windows platforms #6693 [cgohlke]

    • Fixed set_variation_by_name offset #6445 [radarhere]

    • Fix malloc in _imagingft.c:font_setvaraxes #6690 [cgohlke]

    • Release Python GIL when converting images using matrix operations #6418 [hmaarrfk]

    • Added ExifTags enums #6630 [radarhere]

    • Do not modify previous frame when calculating delta in PNG #6683 [radarhere]

    • Added support for reading BMP images with RLE4 compression #6674 [npjg, radarhere]

    • Decode JPEG compressed BLP1 data in original mode #6678 [radarhere]

    • Added GPS TIFF tag info #6661 [radarhere]

    • Added conversion between RGB/RGBA/RGBX and LAB #6647 [radarhere]

    • Do not attempt normalization if mode is already normal #6644 [radarhere]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 0
Releases(v0.9.3)
Owner
null
An MkDocs plugin to export content pages as PDF files

MkDocs PDF Export Plugin An MkDocs plugin to export content pages as PDF files The pdf-export plugin will export all markdown pages in your MkDocs rep

Terry Zhao 266 Dec 13, 2022
MkDocs plugin for setting revision date from git per markdown file

mkdocs-git-revision-date-plugin MkDocs plugin that displays the last revision date of the current page of the documentation based on Git. The revision

Terry Zhao 48 Jan 6, 2023
A Material Design theme for MkDocs

A Material Design theme for MkDocs Create a branded static site from a set of Markdown files to host the documentation of your Open Source or commerci

Martin Donath 12.3k Jan 4, 2023
:blue_book: Automatic documentation from sources, for MkDocs.

mkdocstrings Automatic documentation from sources, for MkDocs. Features Python handler features Requirements Installation Quick usage Features Languag

Timothée Mazzucotelli 1.1k Dec 31, 2022
An MkDocs plugin that simplifies configuring page titles and their order

MkDocs Awesome Pages Plugin An MkDocs plugin that simplifies configuring page titles and their order The awesome-pages plugin allows you to customize

Lukas Geiter 282 Dec 28, 2022
A tool that allows for versioning sites built with mkdocs

mkdocs-versioning mkdocs-versioning is a plugin for mkdocs, a tool designed to create static websites usually for generating project documentation. mk

Zayd Patel 38 Feb 26, 2022
:blue_book: Automatic documentation from sources, for MkDocs.

mkdocstrings Automatic documentation from sources, for MkDocs. Features - Python handler - Requirements - Installation - Quick usage Features Language

null 1.1k Jan 4, 2023
Yet Another MkDocs Parser

yamp Motivation You want to document your project. You make an effort and write docstrings. You try Sphinx. You think it sucks and it's slow -- I did.

Max Halford 10 May 20, 2022
Dev Centric Tools for Mkdocs Based Documentation

docutools MkDocs Documentation Tools For Developers This repo is providing a set of plugins for mkdocs material compatible documentation. It is meant

Axiros GmbH 14 Sep 10, 2022
Mkdocs obsidian publish - Publish your obsidian vault through a python script

Mkdocs Obsidian Mkdocs Obsidian is an association between a python script and a

Mara 49 Jan 9, 2023
Plugins for MkDocs.

Plugins for MkDocs and Python Markdown pip install neoteroi-mkdocs This package includes the following plugins and extensions: Name Description Type m

null 35 Dec 23, 2022
Parser manager for parsing DOC, DOCX, PDF or HTML files

Parser manager Description Parser gets PDF, DOC, DOCX or HTML file via API and saves parsed data to the database. Implemented in Ruby 3.0.1 using Acti

Эдем 4 Dec 4, 2021
In this Github repository I will share my freqtrade files with you. I want to help people with this repository who don't know Freqtrade so much yet.

My Freqtrade stuff In this Github repository I will share my freqtrade files with you. I want to help people with this repository who don't know Freqt

Simon Kebekus 104 Dec 31, 2022
Quick tutorial on orchest.io that shows how to build multiple deep learning models on your data with a single line of code using python

Deep AutoViML Pipeline for orchest.io Quickstart Build Deep Learning models with a single line of code: deep_autoviml Deep AutoViML helps you build te

Ram Seshadri 6 Oct 2, 2022
📖 Generate markdown API documentation from Google-style Python docstring. The lazy alternative to Sphinx.

lazydocs Generate markdown API documentation for Google-style Python docstring. Getting Started • Features • Documentation • Support • Contribution •

Machine Learning Tooling 118 Dec 31, 2022
Generate YARA rules for OOXML documents using ZIP local header metadata.

apooxml Generate YARA rules for OOXML documents using ZIP local header metadata. To learn more about this tool and the methodology behind it, check ou

MANDIANT 34 Jan 26, 2022
Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.

Introduction Swagger UI allows anyone — be it your development team or your end consumers — to visualize and interact with the API’s resources without

Swagger 23.2k Dec 29, 2022
Python script to generate Vale linting rules from word usage guidance in the Red Hat Supplementary Style Guide

ssg-vale-rules-gen Python script to generate Vale linting rules from word usage guidance in the Red Hat Supplementary Style Guide. These rules are use

Vale at Red Hat 1 Jan 13, 2022
Python Tool to Easily Generate Multiple Documents

Python Tool to Easily Generate Multiple Documents Running the script doesn't require internet Max Generation is set to 10k to avoid lagging/crashing R

null 2 Apr 27, 2022