Skip to content

Commit 9474ea3

Browse files
committed
first commit
0 parents  commit 9474ea3

19 files changed

+1583
-0
lines changed

.github/CODEOWNERS

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# These owners will be the default owners for everything in
2+
# the repo. Unless a later match takes precedence, they will
3+
# be requested for review when someone opens a pull request.
4+
* @kjanat
5+
6+
# Specific file/directory ownership examples:
7+
# /parser/ @parsing-expert
8+
# /exporters/ @export-specialist
9+
# *.go @go-reviewer
10+
11+
# Documentation files
12+
/README.md @kjanat
13+
/docs/ @kjanat
14+
15+
# Configuration files
16+
/.github/ @kjanat
17+
/go.mod @kjanat
18+
/go.sum @kjanat

.github/CODE_OF_CONDUCT.md

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
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+
* Demonstrating empathy and kindness toward other people
21+
* Being respectful of differing opinions, viewpoints, and experiences
22+
* Giving and gracefully accepting constructive feedback
23+
* Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
* Focusing on what is best not just for us as individuals, but for the
26+
overall community
27+
28+
Examples of unacceptable behavior include:
29+
30+
* The use of sexualized language or imagery, and sexual attention or
31+
advances of any kind
32+
* Trolling, insulting or derogatory comments, and personal or political attacks
33+
* Public or private harassment
34+
* Publishing others' private information, such as a physical or email
35+
address, without their explicit permission
36+
* Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Project maintainers are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Project maintainers have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the project maintainers responsible for enforcement.
63+
All complaints will be reviewed and investigated promptly and fairly.
64+
65+
All project maintainers are obligated to respect the privacy and security of the
66+
reporter of any incident.
67+
68+
## Enforcement Guidelines
69+
70+
Project maintainers will follow these Community Impact Guidelines in determining
71+
the consequences for any action they deem in violation of this Code of Conduct:
72+
73+
### 1. Correction
74+
75+
**Community Impact**: Use of inappropriate language or other behavior deemed
76+
unprofessional or unwelcome in the community.
77+
78+
**Consequence**: A private, written warning from project maintainers, providing
79+
clarity around the nature of the violation and an explanation of why the
80+
behavior was inappropriate. A public apology may be requested.
81+
82+
### 2. Warning
83+
84+
**Community Impact**: A violation through a single incident or series
85+
of actions.
86+
87+
**Consequence**: A warning with consequences for continued behavior. No
88+
interaction with the people involved, including unsolicited interaction with
89+
those enforcing the Code of Conduct, for a specified period of time. This
90+
includes avoiding interactions in community spaces as well as external channels
91+
like social media. Violating these terms may lead to a temporary or
92+
permanent ban.
93+
94+
### 3. Temporary Ban
95+
96+
**Community Impact**: A serious violation of community standards, including
97+
sustained inappropriate behavior.
98+
99+
**Consequence**: A temporary ban from any sort of interaction or public
100+
communication with the community for a specified period of time. No public or
101+
private interaction with the people involved, including unsolicited interaction
102+
with those enforcing the Code of Conduct, is allowed during this period.
103+
Violating these terms may lead to a permanent ban.
104+
105+
### 4. Permanent Ban
106+
107+
**Community Impact**: Demonstrating a pattern of violation of community
108+
standards, including sustained inappropriate behavior, harassment of an
109+
individual, or aggression toward or disparagement of classes of individuals.
110+
111+
**Consequence**: A permanent ban from any sort of public interaction within
112+
the community.
113+
114+
## Attribution
115+
116+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
117+
version 2.0, available at
118+
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
119+
120+
[homepage]: https://www.contributor-covenant.org
121+
122+
For answers to common questions about this code of conduct, see the FAQ at
123+
<https://www.contributor-covenant.org/faq>.

.github/CONTRIBUTING.md

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
# Contributing to Articulate Rise Parser
2+
3+
Thank you for your interest in contributing to the Articulate Rise Parser! We welcome contributions from the community.
4+
5+
## Code of Conduct
6+
7+
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
8+
9+
## How Can I Contribute?
10+
11+
### Reporting Bugs
12+
13+
Before creating bug reports, please check existing issues as you might find that the issue has already been reported. When creating a bug report, include as many details as possible:
14+
15+
- Use the bug report template
16+
- Include sample Articulate Rise content that reproduces the issue
17+
- Provide your environment details (OS, Go version, etc.)
18+
- Include error messages and stack traces
19+
20+
### Suggesting Enhancements
21+
22+
Enhancement suggestions are welcome! Please use the feature request template and include:
23+
24+
- A clear description of the enhancement
25+
- Your use case and why this would be valuable
26+
- Any implementation ideas you might have
27+
28+
### Pull Requests
29+
30+
1. **Fork the repository** and create your branch from `master`
31+
2. **Make your changes** following our coding standards
32+
3. **Add tests** for any new functionality
33+
4. **Ensure all tests pass** by running `go test ./...`
34+
5. **Run `go fmt`** to format your code
35+
6. **Run `go vet`** to check for common issues
36+
7. **Update documentation** if needed
37+
8. **Create a pull request** with a clear title and description
38+
39+
## Development Setup
40+
41+
1. **Prerequisites:**
42+
43+
- Go 1.21 or later
44+
- Git
45+
46+
2. **Clone and setup:**
47+
48+
```bash
49+
git clone https://github.com/your-username/articulate-parser.git
50+
cd articulate-parser
51+
go mod download
52+
```
53+
54+
3. **Run tests:**
55+
56+
```bash
57+
go test -v ./...
58+
```
59+
60+
4. **Build:**
61+
62+
```bash
63+
go build main.go
64+
```
65+
66+
## Coding Standards
67+
68+
### Go Style Guide
69+
70+
- Follow the [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments)
71+
- Use `gofmt` to format your code
72+
- Use meaningful variable and function names
73+
- Add comments for exported functions and types
74+
- Keep functions focused and small
75+
76+
### Testing
77+
78+
- Write tests for new functionality
79+
- Use table-driven tests where appropriate
80+
- Aim for good test coverage
81+
- Test error cases and edge conditions
82+
83+
### Commit Messages
84+
85+
Use clear and meaningful commit messages:
86+
87+
```txt
88+
Add support for new content type: interactive timeline
89+
90+
- Parse timeline content blocks
91+
- Export timeline data to markdown
92+
- Add tests for timeline parsing
93+
- Update documentation
94+
95+
Fixes #123
96+
```
97+
98+
## Project Structure
99+
100+
```txt
101+
articulate-parser/
102+
├── main.go # Entry point and CLI handling
103+
├── parser/ # Core parsing logic
104+
├── exporters/ # Output format handlers
105+
├── types/ # Data structures
106+
├── utils/ # Utility functions
107+
├── tests/ # Test files and data
108+
└── docs/ # Documentation
109+
```
110+
111+
## Adding New Features
112+
113+
### New Content Types
114+
115+
1. Add the content type definition to `types/`
116+
2. Implement parsing logic in `parser/`
117+
3. Add export handling in `exporters/`
118+
4. Write comprehensive tests
119+
5. Update documentation
120+
121+
### New Export Formats
122+
123+
1. Create a new exporter in `exporters/`
124+
2. Implement the `Exporter` interface
125+
3. Add CLI support in `main.go`
126+
4. Add tests with sample output
127+
5. Update README with usage examples
128+
129+
## Testing
130+
131+
### Running Tests
132+
133+
```bash
134+
# Run all tests
135+
go test ./...
136+
137+
# Run tests with coverage
138+
go test -cover ./...
139+
140+
# Run tests with race detection
141+
go test -race ./...
142+
143+
# Run specific test
144+
go test -run TestSpecificFunction ./...
145+
```
146+
147+
### Test Data
148+
149+
- Add sample Articulate Rise JSON files to `tests/data/`
150+
- Include both simple and complex content examples
151+
- Test edge cases and error conditions
152+
153+
## Documentation
154+
155+
- Update the README for user-facing changes
156+
- Add inline code comments for complex logic
157+
- Update examples when adding new features
158+
- Keep the feature list current
159+
160+
## Release Process
161+
162+
Releases are handled by maintainers:
163+
164+
1. Version bumping follows semantic versioning
165+
2. Releases are created from the `master` branch
166+
3. GitHub Actions automatically builds and publishes releases
167+
4. Release notes are auto-generated from commits
168+
169+
## Questions?
170+
171+
- Open a discussion for general questions
172+
- Use the question issue template for specific help
173+
- Check existing issues and documentation first
174+
175+
## Recognition
176+
177+
Contributors will be recognized in release notes and the project README. Thank you for helping make this project better!

.github/ISSUE_TEMPLATE/bug_report.yml

Whitespace-only changes.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 📖 Documentation
4+
url: https://github.com/kjanat/articulate-parser/blob/master/README.md
5+
about: Check the README for usage instructions and examples
6+
- name: 💬 Discussions
7+
url: https://github.com/kjanat/articulate-parser/discussions
8+
about: Ask questions and discuss ideas with the community

0 commit comments

Comments
 (0)