mirror of
https://github.com/PacFactory/Docs-Exporter-Astro.git
synced 2025-12-20 02:31:04 -05:00
164 lines
3.9 KiB
Markdown
164 lines
3.9 KiB
Markdown
# README.md
|
|
# Astro Documentation to PDF Converter
|
|
|
|
A Python script that automatically generates a well-formatted PDF from Astro's documentation repository. The script clones the documentation, processes all markdown files, and creates a PDF with a table of contents, proper formatting, and consistent styling.
|
|
|
|
## Features
|
|
|
|
- Automatic repository cloning and updating
|
|
- Comprehensive documentation processing
|
|
- Table of contents generation
|
|
- Code block syntax highlighting
|
|
- Image path handling
|
|
- Proper page breaks
|
|
- Custom header and footer
|
|
- Error handling and recovery
|
|
- Progress reporting
|
|
- Clean temporary file management
|
|
|
|
## Requirements
|
|
|
|
### System Requirements
|
|
- Python 3.7 or higher
|
|
- Git installed and accessible from command line
|
|
- Internet connection for repository access
|
|
|
|
### Python Dependencies
|
|
Install all required packages:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
Install Playwright's browser:
|
|
```bash
|
|
playwright install chromium
|
|
```
|
|
|
|
## Installation
|
|
|
|
1. Clone this repository or download the script files:
|
|
```bash
|
|
git clone
|
|
cd
|
|
```
|
|
|
|
2. Install dependencies:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
playwright install chromium
|
|
```
|
|
|
|
3. Ensure you have the following files in your directory:
|
|
- `astro_docs_to_pdf.py` (main script)
|
|
- `requirements.txt`
|
|
- `styles.css` (will be created automatically if missing)
|
|
|
|
## Usage
|
|
|
|
Run the script:
|
|
```bash
|
|
python astro_docs_to_pdf.py
|
|
```
|
|
|
|
The script will:
|
|
1. Clone/update the Astro documentation repository
|
|
2. Process all documentation files
|
|
3. Generate a PDF with proper formatting
|
|
4. Create a table of contents
|
|
5. Output the final PDF as `Astro_Documentation_YYYY-MM-DD.pdf`
|
|
|
|
## Output
|
|
|
|
The generated PDF includes:
|
|
- Cover page with title and date
|
|
- Table of contents with page numbers
|
|
- Formatted documentation content
|
|
- Code syntax highlighting
|
|
- Properly sized images
|
|
- Headers and footers with page numbers
|
|
- Consistent styling throughout
|
|
|
|
## Customization
|
|
|
|
### CSS Styling
|
|
The script creates a default `styles.css` file if none exists. You can modify this file to customize the PDF's appearance.
|
|
|
|
### Output Options
|
|
You can modify these variables in the script:
|
|
```python
|
|
repo_dir = "astro-docs" # Local directory for cloned repo
|
|
output_pdf = f"Astro_Documentation_{datetime.now().strftime('%Y-%m-%d')}.pdf" # Output filename
|
|
```
|
|
|
|
### PDF Format
|
|
Adjust the PDF format options in the `generate_pdf` function:
|
|
```python
|
|
format_options = {
|
|
'format': 'A4',
|
|
'margin': {
|
|
'top': '50px',
|
|
'right': '50px',
|
|
'bottom': '50px',
|
|
'left': '50px'
|
|
},
|
|
'print_background': True,
|
|
# ... other options
|
|
}
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
1. **Git Clone Failures**
|
|
- Ensure you have git installed
|
|
- Check your internet connection
|
|
- Verify repository access permissions
|
|
|
|
2. **PDF Generation Errors**
|
|
- Check if output PDF is already open
|
|
- Ensure enough disk space
|
|
- Verify Playwright browser installation
|
|
|
|
3. **Image Loading Issues**
|
|
- Check internet connection
|
|
- Verify image paths in documentation
|
|
- Ensure Playwright timeouts are sufficient
|
|
|
|
4. **Styling Problems**
|
|
- Verify styles.css exists and is readable
|
|
- Check CSS syntax
|
|
- Ensure no conflicting styles
|
|
|
|
### Error Messages
|
|
|
|
The script provides detailed error messages for common issues:
|
|
- Repository cloning failures
|
|
- File processing errors
|
|
- PDF generation problems
|
|
- Resource cleanup issues
|
|
|
|
## Limitations
|
|
|
|
- Requires active internet connection
|
|
- May take several minutes for large documentation sets
|
|
- Memory usage scales with documentation size
|
|
- Some complex MDX components may not render perfectly
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please feel free to:
|
|
1. Report bugs
|
|
2. Suggest improvements
|
|
3. Submit pull requests
|
|
|
|
## License
|
|
|
|
This project is open source and available under the MIT License.
|
|
|
|
## Acknowledgments
|
|
|
|
- Built using Playwright for PDF generation
|
|
- Processes documentation from the official Astro docs repository
|
|
- Uses Python's markdown library for processing
|