A portable shell program to package and prepare courses, tutorial series, and other products to release on e-commerce platforms like Gumroad and Mavenseed.
Product Packager is a tool to help creators package and publish their tutorial series, courses, tools, and other products to platforms like Gumroad, Itch.io, or Mavenseed.
It is currently early in development and not suitable for production use.
To get notified when the first stable release is out, click the GitHub Watch button and select "Releases only".
This repository contains our complete build system to create courses.
It takes markdown, images, video files, and Godot projects and turns them into standalone HTML files or EPUB ebooks (you can also output PDF files).
You can find the build system inside programs/scons/
. There, you'll find another README file with requirements and instructions to use it.
It does things such as:
{% link %}
, include content from code files {% include Filename.gd anchor_name %}
, or generate a table of contents with {% contents %}
.programs/scons/css/
for styling.In the programs/
directory, we included some other utilities to:
format_tutorials.py
).Product packager is a modular set of tools to help process files and package products. You can find them in the programs/
directory.
To package complete products, we use scons
, a program to create incremental builds and process files based on sets of rules. For more information, see the scons documentation.
You can use these tools individually. For example, here are some example commands I would use to compress pictures and videos in a directory using my favorite shell, fish:
optimize_pictures.sh --output output_directory --resize 1280:-1\> -- pictures/*.{jpg,png}
optimize_videos.sh --output output_directory videos/*.mp4
Other commands help you with git repositories and projects made with the Godot game engine:
git_checkout_repositories.sh (find godot -type d -name .git)
package_godot_projects.sh ./godot/ ./dist/
We also have a program to render markdown documents to PDF or standalone HTML using pandoc:
convert_markdown.sh --css pandoc.css --output-path dist content/**.md
I also use the tools above to compress files before uploading them, or to share documents online.
Run any program with the --help
option to learn to use it. Also, if you find a bug, you can run tools with the -d
or --dry-run
option to output debug information. Please copy and paste that output to any bug you report in the issues tab.
If you encounter a bug or you have an idea to improve the tool, please open an issue.
If you want to contribute to the project, for instance, by fixing a bug or adding a feature, check out our Contributor's guidelines.
Also, please use ShellCheck to lint your code and ensure it's POSIX-compliant.
Pull requests and code reviews are much welcome. You can share your feedback and POSIX shell programming tips in the issues tab, or by sending me a message (see below).
Our work on Free Software is sponsored by our Godot game creation courses. Consider getting one to support us!
If you like our work, please star the repository! This helps more people find it.