File size: 5,174 Bytes
6afedde
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
# Contributing to Research Article Template

Thank you for your interest in contributing to the Research Article Template! This document provides guidelines and information for contributors.

## 🀝 How to Contribute

### Reporting Issues

Before creating an issue, please:
1. **Search existing issues** to avoid duplicates
2. **Use the issue template** when available
3. **Provide detailed information**:
   - Clear description of the problem
   - Steps to reproduce
   - Expected vs actual behavior
   - Environment details (OS, Node.js version, browser)
   - Screenshots if applicable

### Suggesting Features

We welcome feature suggestions! Please:
1. **Check existing discussions** first
2. **Describe the use case** clearly
3. **Explain the benefits** for the community
4. **Consider implementation complexity**

### Code Contributions

#### Getting Started

1. **Fork the repository** on Hugging Face
2. **Clone your fork**:
   ```bash
   git clone [email protected]:spaces/<your-username>/research-article-template
   cd research-article-template
   ```
3. **Install dependencies**:
   ```bash
   cd app
   npm install
   ```
4. **Create a feature branch**:
   ```bash
   git checkout -b feature/your-feature-name
   ```

#### Development Workflow

1. **Make your changes** following our coding standards
2. **Test thoroughly**:
   ```bash
   npm run dev    # Test locally
   npm run build  # Ensure build works
   ```
3. **Update documentation** if needed
4. **Commit with clear messages**:
   ```bash
   git commit -m "feat: add new component for interactive charts"
   ```

#### Pull Request Process

1. **Push your branch**:
   ```bash
   git push origin feature/your-feature-name
   ```
2. **Create a Pull Request** with:
   - Clear title and description
   - Reference related issues
   - Screenshots for UI changes
   - Testing instructions

## πŸ“‹ Coding Standards

### Code Style

- **Use Prettier** for consistent formatting
- **Follow existing patterns** in the codebase
- **Write clear, self-documenting code**
- **Add comments** for complex logic
- **Use meaningful variable names**

### File Organization

- **Components**: Place in `src/components/`
- **Styles**: Use CSS modules or component-scoped styles
- **Assets**: Organize in `src/content/assets/`
- **Documentation**: Update relevant `.mdx` files

### Commit Message Format

We follow [Conventional Commits](https://www.conventionalcommits.org/):

```
type(scope): description

feat: add new interactive chart component
fix: resolve mobile layout issues
docs: update installation instructions
style: improve button hover states
refactor: simplify component structure
test: add unit tests for utility functions
```

**Types**: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`

## πŸ§ͺ Testing

### Manual Testing

Before submitting:
- [ ] Test on different screen sizes
- [ ] Verify dark/light theme compatibility
- [ ] Check browser compatibility (Chrome, Firefox, Safari)
- [ ] Test with different content types
- [ ] Ensure accessibility standards

### Automated Testing

```bash
# Run build to catch errors
npm run build

# Test PDF export
npm run export:pdf

# Test LaTeX conversion
npm run latex:convert
```

## πŸ“š Documentation

### Writing Guidelines

- **Use clear, concise language**
- **Provide examples** for complex features
- **Include screenshots** for UI changes
- **Update both English content and code comments**

### Documentation Structure

- **README.md**: Project overview and quick start
- **CONTRIBUTING.md**: This file
- **Content files**: In `src/content/chapters/demo/`
- **Component docs**: Inline comments and examples

## 🎯 Areas for Contribution

### High Priority

- **Bug fixes** and stability improvements
- **Accessibility enhancements**
- **Mobile responsiveness**
- **Performance optimizations**
- **Documentation improvements**

### Feature Ideas

- **New interactive components**
- **Additional export formats**
- **Enhanced LaTeX import**
- **Theme customization**
- **Plugin system**

### Community

- **Answer questions** in discussions
- **Share examples** of your work
- **Write tutorials** and guides
- **Help with translations**

## 🚫 What Not to Contribute

- **Breaking changes** without discussion
- **Major architectural changes** without approval
- **Dependencies** that significantly increase bundle size
- **Features** that don't align with the project's goals

## πŸ“ž Getting Help

- **Discussions**: [Community tab](https://huggingface.co/spaces/tfrere/research-article-template/discussions)
- **Issues**: [Report bugs](https://huggingface.co/spaces/tfrere/research-article-template/discussions?status=open&type=issue)
- **Contact**: [@tfrere](https://huggingface.co/tfrere) on Hugging Face

## πŸ“„ License

By contributing, you agree that your contributions will be licensed under the same [CC-BY-4.0 license](LICENSE) that covers the project.

## πŸ™ Recognition

Contributors will be:
- **Listed in acknowledgments** (if desired)
- **Mentioned in release notes** for significant contributions
- **Credited** in relevant documentation

Thank you for helping make scientific writing more accessible and interactive! πŸŽ‰