Skip to content

Commit 3ef18d6

Browse files
committed
Add project documentation and configuration files
- Add MIT LICENSE - Add .gitignore for Python projects - Add CONTRIBUTING.md with contribution guidelines - Add CHANGELOG.md for version history - Add SECURITY.md for security policy - Add CODE_OF_CONDUCT.md for community guidelines - Add GitHub Actions workflow for CI/CD
1 parent 6ccd4bb commit 3ef18d6

7 files changed

Lines changed: 441 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Python Package
2+
3+
on:
4+
push:
5+
branches: [ master, main ]
6+
pull_request:
7+
branches: [ master, main ]
8+
9+
jobs:
10+
test:
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
matrix:
14+
os: [ubuntu-latest, macos-latest, windows-latest]
15+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
16+
17+
steps:
18+
- uses: actions/checkout@v3
19+
20+
- name: Set up Python ${{ matrix.python-version }}
21+
uses: actions/setup-python@v4
22+
with:
23+
python-version: ${{ matrix.python-version }}
24+
25+
- name: Install system dependencies (Ubuntu)
26+
if: matrix.os == 'ubuntu-latest'
27+
run: |
28+
sudo apt-get update
29+
sudo apt-get install -y python3-cffi python3-brotli libpango-1.0-0 libpangoft2-1.0-0
30+
31+
- name: Install system dependencies (macOS)
32+
if: matrix.os == 'macos-latest'
33+
run: |
34+
brew install cairo pango gdk-pixbuf libffi
35+
36+
- name: Install dependencies
37+
run: |
38+
python -m pip install --upgrade pip
39+
pip install -r requirements.txt
40+
41+
- name: Test command-line interface
42+
run: |
43+
python md_to_pdf.py --help || true
44+
45+
- name: Check Python syntax
46+
run: |
47+
python -m py_compile md_to_pdf.py md_to_pdf_gui.py
48+

.gitignore

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
pip-wheel-metadata/
24+
share/python-wheels/
25+
*.egg-info/
26+
.installed.cfg
27+
*.egg
28+
MANIFEST
29+
30+
# PyInstaller
31+
*.manifest
32+
*.spec
33+
34+
# Installer logs
35+
pip-log.txt
36+
pip-delete-this-directory.txt
37+
38+
# Unit test / coverage reports
39+
htmlcov/
40+
.tox/
41+
.nox/
42+
.coverage
43+
.coverage.*
44+
.cache
45+
nosetests.xml
46+
coverage.xml
47+
*.cover
48+
*.py,cover
49+
.hypothesis/
50+
.pytest_cache/
51+
52+
# Translations
53+
*.mo
54+
*.pot
55+
56+
# Django stuff:
57+
*.log
58+
local_settings.py
59+
db.sqlite3
60+
db.sqlite3-journal
61+
62+
# Flask stuff:
63+
instance/
64+
.webassets-cache
65+
66+
# Scrapy stuff:
67+
.scrapy
68+
69+
# Sphinx documentation
70+
docs/_build/
71+
72+
# PyBuilder
73+
target/
74+
75+
# Jupyter Notebook
76+
.ipynb_checkpoints
77+
78+
# IPython
79+
profile_default/
80+
ipython_config.py
81+
82+
# pyenv
83+
.python-version
84+
85+
# pipenv
86+
Pipfile.lock
87+
88+
# PEP 582
89+
__pypackages__/
90+
91+
# Celery stuff
92+
celerybeat-schedule
93+
celerybeat.pid
94+
95+
# SageMath parsed files
96+
*.sage.py
97+
98+
# Environments
99+
.env
100+
.venv
101+
env/
102+
venv/
103+
ENV/
104+
env.bak/
105+
venv.bak/
106+
107+
# Spyder project settings
108+
.spyderproject
109+
.spyproject
110+
111+
# Rope project settings
112+
.ropeproject
113+
114+
# mkdocs documentation
115+
/site
116+
117+
# mypy
118+
.mypy_cache/
119+
.dmypy.json
120+
dmypy.json
121+
122+
# Pyre type checker
123+
.pyre/
124+
125+
# IDE
126+
.vscode/
127+
.idea/
128+
*.swp
129+
*.swo
130+
*~
131+
132+
# macOS
133+
.DS_Store
134+
.AppleDouble
135+
.LSOverride
136+
137+
# Windows
138+
Thumbs.db
139+
ehthumbs.db
140+
Desktop.ini
141+
142+
# Generated PDFs (optional - uncomment if you don't want to track generated PDFs)
143+
# *.pdf
144+

CHANGELOG.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
### Added
11+
- Initial release
12+
- GUI interface for easy conversion
13+
- Command-line interface
14+
- Custom CSS support
15+
- Emoji support in PDFs
16+
- Syntax highlighting for code blocks
17+
- Table support
18+
- Page numbering
19+
- Wildcard support for batch processing
20+
- Progress tracking in GUI
21+
22+
## [1.0.0] - 2025-01-XX
23+
24+
### Added
25+
- Initial release of Markdown to PDF Converter
26+
- Graphical user interface (GUI) built with tkinter
27+
- Command-line interface with multiple options
28+
- Support for custom CSS styling
29+
- Emoji rendering support
30+
- Code syntax highlighting using Pygments
31+
- Markdown table support
32+
- Automatic page numbering
33+
- Batch processing with wildcards
34+
- Progress bar and logging in GUI
35+
- Example Markdown file for testing
36+
37+
### Features
38+
- Convert single or multiple Markdown files to PDF
39+
- Customize PDF appearance with CSS
40+
- Support for all standard Markdown features
41+
- Cross-platform compatibility (macOS, Linux, Windows)
42+

CODE_OF_CONDUCT.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
* Using welcoming and inclusive language
21+
* Being respectful of differing viewpoints and experiences
22+
* Gracefully accepting constructive criticism
23+
* Focusing on what is best for the community
24+
* Showing empathy towards other community members
25+
26+
Examples of unacceptable behavior include:
27+
28+
* The use of sexualized language or imagery, and sexual attention or
29+
advances of any kind
30+
* Trolling, insulting/derogatory comments, and personal or political attacks
31+
* Public or private harassment
32+
* Publishing others' private information, such as a physical or email
33+
address, without their explicit permission
34+
* Other conduct which could reasonably be considered inappropriate in a
35+
professional setting
36+
37+
## Our Responsibilities
38+
39+
Project maintainers are responsible for clarifying and enforcing our standards of
40+
acceptable behavior and will take appropriate and fair corrective action in
41+
response to any behavior that they deem inappropriate, threatening, offensive,
42+
or harmful.
43+
44+
Project maintainers have the right and responsibility to remove, edit, or
45+
reject comments, commits, code, wiki edits, issues, and other contributions
46+
that are not aligned to this Code of Conduct, or to ban temporarily or
47+
permanently any contributor for other behaviors that they deem inappropriate,
48+
threatening, offensive, or harmful.
49+
50+
## Scope
51+
52+
This Code of Conduct applies within all community spaces, and also applies when
53+
an individual is officially representing the community in public spaces.
54+
Examples of representing a community include using an official project e-mail
55+
address, posting via an official social media account, or acting as an appointed
56+
representative at an online or offline event.
57+
58+
## Enforcement
59+
60+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
61+
reported to the community leaders responsible for enforcement at
62+
[GitHub Issues](https://github.com/tahsinmert/markdown-pdf-converter/issues).
63+
All complaints will be reviewed and investigated promptly and fairly.
64+
65+
All community leaders are obligated to respect the privacy and security of the
66+
reporter of any incident.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
71+
version 2.0, available at
72+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
73+

CONTRIBUTING.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Contributing to Markdown to PDF Converter
2+
3+
Thank you for your interest in contributing to this project! This document provides guidelines and instructions for contributing.
4+
5+
## How to Contribute
6+
7+
### Reporting Bugs
8+
9+
If you find a bug, please open an issue with:
10+
- A clear, descriptive title
11+
- Steps to reproduce the bug
12+
- Expected behavior
13+
- Actual behavior
14+
- Your operating system and Python version
15+
- Any relevant error messages or screenshots
16+
17+
### Suggesting Features
18+
19+
We welcome feature suggestions! Please open an issue with:
20+
- A clear description of the feature
21+
- Use cases and examples
22+
- Why this feature would be useful
23+
24+
### Pull Requests
25+
26+
1. **Fork the repository** and create your branch from `master`
27+
2. **Make your changes** following the code style
28+
3. **Test your changes** to ensure they work correctly
29+
4. **Update documentation** if needed
30+
5. **Commit your changes** with clear, descriptive commit messages
31+
6. **Push to your fork** and submit a pull request
32+
33+
### Code Style
34+
35+
- Follow PEP 8 Python style guidelines
36+
- Use meaningful variable and function names
37+
- Add comments for complex logic
38+
- Keep functions focused and small
39+
- Write docstrings for functions and classes
40+
41+
### Testing
42+
43+
Before submitting a pull request:
44+
- Test your changes with different Markdown files
45+
- Test both GUI and command-line interfaces
46+
- Ensure no new errors are introduced
47+
- Test with various CSS files
48+
49+
### Documentation
50+
51+
- Update README.md if you add new features
52+
- Add comments to code when necessary
53+
- Update CHANGELOG.md with your changes
54+
55+
## Development Setup
56+
57+
1. Clone the repository:
58+
```bash
59+
git clone https://github.com/tahsinmert/markdown-pdf-converter.git
60+
cd markdown-pdf-converter
61+
```
62+
63+
2. Install dependencies:
64+
```bash
65+
pip install -r requirements.txt
66+
```
67+
68+
3. Make your changes and test them
69+
70+
## Questions?
71+
72+
Feel free to open an issue if you have any questions about contributing!
73+
74+
Thank you for contributing! 🎉
75+

0 commit comments

Comments
 (0)