Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

hfactor/papermaker

Repository files navigation

PaperMaker

A modern, configurable PDF planner generator designed for digital note-taking apps like GoodNotes, Notability, and Remarkable. Create beautiful, functional planners with intelligent hyperlinks for seamless navigation.

PaperMaker License

✨ Features

  • 🎨 Simple Web UI: Modern, responsive interface for easy configuration
  • πŸ“… Flexible Pages: Year, Quarter, Month, Week, and Daily spreads
  • πŸ”— Smart Hyperlinks: Navigate between pages with clickable links
  • 🎨 Visual Presets: 8 curated color themes (Dracula, Nord, Gruvbox, etc.)
  • πŸ–‹οΈ Customizable: Fonts, colors, paper styles (grid/dot/line/plain)

πŸš€ Quick Start

Prerequisites

  • Node.js (v14 or higher)
  • Typst (for PDF generation)

1. Install Dependencies

# Install Typst
brew install typst
# Install Node.js dependencies
npm install

2. Start the Web Server

npm start

The web interface will be available at http://localhost:3000

3. Configure Your Planner

  1. Open http://localhost:3000 in your browser
  2. Configure your planner settings:
    • Timeline: Year, start month, duration
    • Pages: Select which spreads to include
    • Style: Choose orientation, paper style, colors
  3. Click Generate PDF

Your planner will be generated in the output/ directory.

πŸ“‹ Configuration Options

Step 1: Setup

  • Timeline: Start year (2000-2100), month, duration
  • Week Settings: Week start day, weekend type
  • Page Selection: Year, Quarter, Month, Week, Daily pages

Step 2: Customise

  • Output Format: Portrait/Landscape, paper style, pattern density
  • Visual Presets: 8 curated themes or custom colors
  • Daily Page: Sidebar options, time format, active hours

Step 3: Style

  • Typography: Primary and secondary fonts with weights
  • Colors: Dark, light, and accent colors
  • Visual Themes: Dracula, Nord, Gruvbox, Solarized, and more

🎨 Visual Presets

  • Dracula: Dark theme with vibrant purple accents
  • Nord: Arctic, north-bluish color palette
  • Gruvbox: Retro groove with warm, earthy tones
  • Solarized: Precision colors for reduced eye strain
  • Monokai: Iconic dark theme with vibrant highlights
  • Catppuccin: Soothing pastel theme
  • Tokyo Night: Clean dark theme inspired by Tokyo nights
  • GitHub: Clean and familiar GitHub aesthetic

πŸ“ Project Structure

PaperMaker/
β”œβ”€β”€ web/ # Web interface
β”‚ β”œβ”€β”€ index.html # Main UI
β”‚ β”œβ”€β”€ index.css # Styling
β”‚ └── app.js # Configuration logic
β”œβ”€β”€ templates/ # Typst templates
β”‚ β”œβ”€β”€ main.typ # Main orchestrator
β”‚ β”œβ”€β”€ components/ # Page components
β”‚ β”‚ β”œβ”€β”€ cover.typ
β”‚ β”‚ β”œβ”€β”€ year.typ
β”‚ β”‚ β”œβ”€β”€ quarter.typ
β”‚ β”‚ β”œβ”€β”€ month.typ
β”‚ β”‚ β”œβ”€β”€ week.typ
β”‚ β”‚ └── daily.typ
β”‚ └── utils/ # Helper functions
β”‚ β”œβ”€β”€ dates.typ
β”‚ β”œβ”€β”€ hyperlinks.typ
β”‚ └── styles.typ
β”œβ”€β”€ examples/ # Example configurations
β”œβ”€β”€ fonts/ # Font files
β”œβ”€β”€ server.js # Express server
β”œβ”€β”€ build.sh # Build script
└── package.json

πŸ”— Hyperlink Navigation

The planner includes intelligent hyperlinks for seamless navigation:

  • Year β†’ Months/Days: Click month names or day numbers
  • Quarter β†’ Months: Click month names
  • Month β†’ Weeks/Days: Click day numbers
  • Week β†’ Days: Click day headers
  • Back Navigation: Every page links back to parent pages

πŸ’‘ Tips

  1. Start Simple: Begin with a monthly-only configuration
  2. Test Navigation: Always test hyperlinks in your target app
  3. Save Configurations: The web UI downloads your config as JSON
  4. Customize Colors: Use visual presets or create custom themes
  5. Paper Styles: "Plain" for maximum flexibility, "Line" for structured notes

πŸ› οΈ Advanced Usage

Command Line Build

You can also build directly from the command line:

./build.sh path/to/config.json [output-name]

Batch Generation

Generate multiple configurations:

for config in examples/*.json; do
 ./build.sh "$config"
done

πŸ“± Compatibility

Tested with:

  • βœ… GoodNotes (iOS/macOS)
  • βœ… Notability (iOS/macOS)
  • βœ… Apple Notes (iOS/macOS)
  • ⚠️ Remarkable (limited testing)

πŸ› Troubleshooting

Server Won't Start

# Check if port 3000 is in use
lsof -i :3000
# Install dependencies
npm install

Typst Not Found

# Install Typst
brew install typst
# Or download from: https://github.com/typst/typst

PDF Generation Fails

  • Check that your config JSON is valid
  • Ensure all required fields are present
  • Verify year is between 2000-2100

Hyperlinks Don't Work

  • Some PDF viewers don't support internal links
  • Test in your target app (GoodNotes/Notability)
  • Ensure you're using the latest version of the app

🀝 Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest features
  • Submit pull requests

πŸ“„ License

This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.

πŸ‘€ Author

Created by Hiran Venugopalan


Made with ❀️ for digital note-takers

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /