feat/scripts: support generating PDFs for platforms (#11195)

* feat/scripts: support generating PDFs for platform

Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

* render.py: reformat code for black

Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

* PDF/README: update command

Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

* render.py: update code

Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

* render.py: drop platform none parameter from main

Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>

---------

Signed-off-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
pull/23/head
K.B.Dharun Krishna 2023-10-24 00:59:43 +05:30 committed by GitHub
parent 8bf032d729
commit 4e53530691
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 3 deletions

View File

@ -19,7 +19,7 @@ Make sure OS specific dependencies for WeasyPrint are installed by following the
Generating the PDF is as simple as running:
python3 render.py <path-to-pages-directory> [--color <color-scheme>] [--output <filename>]
python3 render.py <path-to-pages-directory> [--color <color-scheme>] [--output <filename>] [--platform <platform-name>]
Complete information about the arguments can be viewed by running:

View File

@ -17,7 +17,7 @@ from datetime import datetime
from weasyprint import HTML
def main(loc, colorscheme, output_filename):
def main(loc, colorscheme, output_filename, platform):
# Checking correctness of path
if not os.path.isdir(loc):
print("Invalid directory. Please try again!", file=sys.stderr)
@ -43,6 +43,9 @@ def main(loc, colorscheme, output_filename):
# Writing names of all directories inside 'pages' to a list
for operating_sys in sorted(os.listdir(loc)):
if platform and operating_sys not in platform:
continue
# Required string to create directory title pages
html += (
"<h1 class=title-dir>"
@ -70,6 +73,9 @@ def main(loc, colorscheme, output_filename):
html += "</body></html>"
# Writing the PDF to disk
if platform:
output_filename = f"{output_filename[:-4]}-{'+'.join(platform)}.pdf"
print("\nConverting all pages to PDF...")
HTML(string=html).write_pdf(output_filename, stylesheets=csslist)
@ -97,6 +103,12 @@ if __name__ == "__main__":
default="tldr-book.pdf",
help="Custom filename for the output PDF (default is 'tldr-book.pdf')",
)
parser.add_argument(
"-p",
"--platform",
nargs="+",
help="Specify one or more platforms to generate PDFs for",
)
args = parser.parse_args()
main(args.dir_path, args.color, args.output)
main(args.dir_path, args.color, args.output, args.platform)