Skip to content

hfactor/papermaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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