Skip to content

Commit 1e270bf

Browse files
authored
Merge pull request #11 from taggedzi/code-of-conduct
Code of conduct
2 parents b97acfc + da4f9d9 commit 1e270bf

5 files changed

Lines changed: 323 additions & 31 deletions

File tree

CODE_OF_CONDUCT.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and maintainers pledge to make participation in this project a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6+
7+
## Our Standards
8+
9+
Examples of behavior that contributes to a positive environment include:
10+
11+
- Using welcoming language
12+
- Being respectful of differing viewpoints and experiences
13+
- Gracefully accepting constructive criticism
14+
- Focusing on what is best for the community
15+
- Showing empathy toward other community members
16+
17+
Examples of unacceptable behavior include:
18+
19+
- Trolling, insulting or derogatory comments, and personal or political attacks
20+
- Public or private harassment
21+
- Publishing others’ private information without explicit permission
22+
- Other conduct which could reasonably be considered inappropriate in a professional setting
23+
24+
## Enforcement Responsibilities
25+
26+
Project maintainers are responsible for clarifying standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
27+
28+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, issues, and other contributions that are not aligned with this Code of Conduct.
29+
30+
## Scope
31+
32+
This Code of Conduct applies within all project spaces, and also applies when an individual is officially representing the project in public spaces.
33+
34+
## Enforcement
35+
36+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainer(s).
37+
38+
All complaints will be reviewed and investigated promptly and fairly.
39+
40+
## Enforcement Guidelines
41+
42+
Project maintainers will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
43+
44+
1. **Correction** – A private or public clarification of expected behavior.
45+
2. **Warning** – A warning regarding continued behavior.
46+
3. **Temporary Ban** – A temporary ban from contribution or interaction.
47+
4. **Permanent Ban** – A permanent ban from the project community.
48+
49+
## Attribution
50+
51+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.
52+
For more information, see https://www.contributor-covenant.org/version/2/1/code_of_conduct.html

CONTRIBUTING.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Contributing to SimplicityPress
2+
3+
Thanks for your interest in contributing! 🎉
4+
Contributions of all kinds are welcome: bug reports, documentation improvements, ideas, and code.
5+
6+
This project aims to stay **simple, readable, and predictable**, so a few guidelines help keep things consistent.
7+
8+
---
9+
10+
## Ways to Contribute
11+
12+
### 🐞 Reporting Bugs
13+
14+
- Use the **Bug report** issue template
15+
- Include:
16+
- Steps to reproduce
17+
- Expected vs actual behavior
18+
- OS (Windows/Linux/macOS)
19+
- CLI / GUI / API (if relevant)
20+
- Logs or tracebacks (redact secrets)
21+
22+
### 💡 Feature Requests
23+
24+
- Use the **Feature request** issue template
25+
- Clearly describe the problem being solved
26+
- Keep scope focused and aligned with the project’s goals
27+
28+
### ❓ Questions
29+
30+
- Use **GitHub Discussions** for questions or ideas
31+
- If it turns out to be a bug, we may ask you to open an issue
32+
33+
---
34+
35+
## Development Setup
36+
37+
### Requirements
38+
39+
- Python **3.11+**
40+
- Git
41+
- A virtual environment (recommended)
42+
43+
```bash
44+
python -m venv .venv
45+
source .venv/bin/activate # Linux/macOS
46+
# or
47+
.venv\Scripts\activate # Windows
48+
pip install -e .[dev]
49+
```
50+
51+
### Running Tests
52+
53+
This project uses **pytest** and **nox**.
54+
55+
```bash
56+
pytest
57+
# OR
58+
nox -s tests
59+
```
60+
61+
---
62+
63+
## Code Style & Quality
64+
65+
- Follow existing project patterns and structure
66+
- Prefer clarity over cleverness
67+
- Keep functions focused and well-named
68+
- Add or update tests when behavior changes
69+
- Use type hints where practical
70+
71+
Automated checks may include:
72+
73+
- Formatting and linting
74+
- Type checking
75+
- Unit tests
76+
77+
---
78+
79+
## Pull Requests
80+
81+
1. Create a feature branch from `main`
82+
2. Make focused, incremental commits
83+
3. Use **Conventional Commit** messages where possible:
84+
85+
- `feat:`
86+
- `fix:`
87+
- `docs:`
88+
- `chore:`
89+
4. Open a Pull Request and fill out the PR template
90+
91+
Pull requests are reviewed for:
92+
93+
- Correctness
94+
- Readability
95+
- Test coverage (where appropriate)
96+
- Alignment with project scope
97+
98+
---
99+
100+
## Licensing
101+
102+
By contributing to this project, you agree that your contributions will be licensed under the same license as the project.
103+
104+
---
105+
106+
## Code of Conduct
107+
108+
This project follows the **Contributor Covenant Code of Conduct**.
109+
By participating, you agree to uphold it. Please report unacceptable behavior to the project maintainer(s).
110+
111+
---
112+
113+
Thanks again for contributing — your help makes this project better! 🚀

README.md

Lines changed: 56 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# SimplicityPress
22

3+
<!-- Badges -->
4+
[![CI](https://github.com/taggedzi/simplicitypress/actions/workflows/ci.yml/badge.svg)](https://github.com/taggedzi/simplicitypress/actions/workflows/ci.yml) [![Release](https://github.com/taggedzi/simplicitypress/actions/workflows/release.yml/badge.svg)](https://github.com/taggedzi/simplicitypress/actions/workflows/release.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/) [![Ruff lint](https://img.shields.io/badge/lint%20with-ruff-informational)](https://github.com/astral-sh/ruff) [![Mypy](https://img.shields.io/badge/type%20checking-mypy-informational)](https://mypy-lang.org/) [![Issues](https://img.shields.io/github/issues/taggedzi/simplicitypress.svg)](https://github.com/taggedzi/simplicitypress/issues) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/taggedzi/simplicitypress/pulls)
5+
36
SimplicityPress is a **minimal, library-first static site generator** designed for people who want a clean, predictable Markdown → HTML workflow without the complexity of full CMS platforms or heavyweight SSG ecosystems.
47

58
If your needs are simple - posts, pages, tags, basic navigation, and clean output - SimplicityPress gives you a lightweight, transparent tool that is easy to understand, customize, and automate.
@@ -35,7 +38,7 @@ Install in editable mode:
3538

3639
```bash
3740
python -m pip install -e .
38-
````
41+
```
3942

4043
Create a new site:
4144

@@ -73,16 +76,16 @@ simplicitypress serve --site-root test-site --output test-site/public --no-build
7376

7477
SimplicityPress treats **pages** as standalone, non-blog content - perfect for:
7578

76-
* About
77-
* Contact
78-
* Projects
79-
* FAQ
80-
* Resume
81-
* Privacy Policy
79+
- About
80+
- Contact
81+
- Projects
82+
- FAQ
83+
- Resume
84+
- Privacy Policy
8285

8386
Pages live under:
8487

85-
```
88+
```bash
8689
content/pages/
8790
```
8891

@@ -102,25 +105,25 @@ This is the **About** page body.
102105

103106
**Fields:**
104107

105-
* `title` *(required)*
108+
- `title` *(required)*
106109
Human-readable title.
107110

108-
* `slug` *(optional)*
111+
- `slug` *(optional)*
109112
Defaults to filename (`about``/about/`).
110113

111-
* `show_in_nav` *(optional)*
114+
- `show_in_nav` *(optional)*
112115
Adds this page to the top navigation bar.
113116

114-
* `nav_title` *(optional)*
117+
- `nav_title` *(optional)*
115118
Override display label in navigation.
116119

117-
* `nav_order` *(optional)*
120+
- `nav_order` *(optional)*
118121
Controls global nav ordering (lower = earlier).
119122

120123
Output:
121124

122-
* URL → `/<slug>/`
123-
* File → `output/<slug>/index.html`
125+
- URL → `/<slug>/`
126+
- File → `output/<slug>/index.html`
124127

125128
---
126129

@@ -130,7 +133,7 @@ Posts appear on the blog index and support dates, tags, summaries, and optional
130133

131134
Posts live under:
132135

133-
```
136+
```bash
134137
content/posts/
135138
```
136139

@@ -153,31 +156,31 @@ This is the **post body**, written in Markdown.
153156

154157
**Post features:**
155158

156-
* Must include a `date`.
157-
* Casually support tags → generate:
159+
- Must include a `date`.
160+
- Casually support tags → generate:
158161

159-
* `/tags/`
160-
* `/tags/<tag>/`
161-
* Appear in:
162+
- `/tags/`
163+
- `/tags/<tag>/`
164+
- Appear in:
162165

163-
* Home page
164-
* Pagination pages
165-
* Tag listings
166+
- Home page
167+
- Pagination pages
168+
- Tag listings
166169

167170
Output:
168171

169-
* URL → `/posts/<slug>/`
170-
* File → `output/posts/<slug>/index.html`
172+
- URL → `/posts/<slug>/`
173+
- File → `output/posts/<slug>/index.html`
171174

172175
---
173176

174177
## 🧭 Navigation
175178

176179
The default theme includes:
177180

178-
* **Home** (`/`)
179-
* **Tags** (`/tags/`)
180-
* Any **pages that opt in** with `show_in_nav = true`
181+
- **Home** (`/`)
182+
- **Tags** (`/tags/`)
183+
- Any **pages that opt in** with `show_in_nav = true`
181184

182185
Navigation is intentionally simple - no dropdowns or multi-level menus.
183186

@@ -202,11 +205,33 @@ After building, navigation might look like:
202205

203206
Pages without `show_in_nav = true` remain accessible but unlisted.
204207

205-
## Licensing
208+
---
209+
210+
## 📚 Documentation
211+
212+
See the `docs/` directory for in-depth guides:
213+
214+
- Theme API & stability
215+
- Template variables & context
216+
- Writing templates from scratch
217+
218+
---
219+
220+
## 📦 Licensing
206221

207222
- **SimplicityPress** is licensed under the **MIT License**.
208223
See the [`LICENSE`](./LICENSE) file in the repository root.
209224

210225
- SimplicityPress depends on third-party libraries which may be licensed under different terms
211226
(for example, **PySide6**, which is available under the **LGPL**).
212-
See the [`LICENSES/`](./LICENSES) directory for third-party license notices.
227+
See the [`LICENSES/`](./LICENSES/) directory for third-party license notices.
228+
229+
## 🤝 Contributing
230+
231+
See [`CONTRIBUTING.md`](CONTRIBUTING.md) for how to get involved, coding standards, and contribution guidelines.
232+
233+
---
234+
235+
## 🛡 Security
236+
237+
See [`SECURITY.md`](SECURITY.md) for reporting vulnerabilities.

SECURITY.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
Security fixes are applied to the **latest released version** of SimplicityPress.
6+
7+
Older versions may not receive security updates. Users are encouraged to upgrade to the most recent release when possible.
8+
9+
## Reporting a Vulnerability
10+
11+
If you believe you have found a security vulnerability, please **do not open a public issue**.
12+
13+
Instead, report it privately using one of the following methods:
14+
15+
- GitHub **Security Advisories** (preferred, if enabled)
16+
- Email the project maintainer (see repository profile)
17+
18+
Please include:
19+
20+
- A clear description of the vulnerability
21+
- Steps to reproduce (if applicable)
22+
- Potential impact
23+
- Any relevant logs, screenshots, or proof-of-concept code
24+
25+
You may redact sensitive information as needed.
26+
27+
## Disclosure Process
28+
29+
Once a report is received:
30+
31+
1. The issue will be reviewed and validated
32+
2. A fix will be developed and tested
33+
3. A patched release will be published
34+
4. A security advisory may be issued if appropriate
35+
36+
We aim to respond to security reports in a timely manner, but response times may vary depending on complexity and availability.
37+
38+
## Scope
39+
40+
This security policy applies to:
41+
42+
- The SimplicityPress core library
43+
- CLI and GUI interfaces
44+
- Official release artifacts
45+
46+
Third-party dependencies are subject to their own security policies.
47+
48+
---
49+
50+
Thank you for helping keep this project secure.

0 commit comments

Comments
 (0)