Skip to content

Contributing to ERC-8004 Documentation

Thank you for your interest in contributing to the ERC-8004 documentation!

How to Contribute

Reporting Issues

If you find errors, inconsistencies, or have suggestions for improvements:

  1. Check if the issue already exists in the issue tracker
  2. Create a new issue with a clear description
  3. Include specific file references and line numbers if applicable

Submitting Changes

  1. Fork the repository

  2. Create a feature branch

    bash
    git checkout -b feature/your-feature-name
  3. Make your changes

    • Follow the existing document structure and style
    • Ensure all links work correctly
    • Use proper markdown formatting
  4. Format and lint your changes

    bash
    # Auto-format all Markdown files
    make format
    
    # Check for linting issues
    make lint
    
    # Auto-fix linting issues
    make lint-fix
  5. Test locally

    bash
    make install
    make dev

    The development server will open automatically at localhost:5173

  6. Commit your changes

    bash
    git add .
    git commit -m "Brief description of changes"
  7. Push to your fork

    bash
    git push origin feature/your-feature-name
  8. Create a Pull Request

    • Provide a clear description of your changes
    • Reference any related issues

Documentation Standards

File Naming

  • Use lowercase with hyphens for file names: my-document.md
  • Exception: Special files use UPPERCASE: README.md, CONTRIBUTING.md, LICENSE
  • Number prefixes for sequential documents: 01-first-topic.md, 02-second-topic.md

Writing Style

  • Use clear, concise language
  • Include code examples where appropriate
  • Add links to related sections
  • Keep line length reasonable (around 80-100 characters)

Markdown Guidelines

  • Use ATX-style headers (# instead of underlines)
  • Include blank lines before and after headers
  • Use fenced code blocks with language specifiers
  • Use relative links for internal documentation

Code Examples

markdown
\`\`\`solidity
// Include language identifier
function example() public returns (bool) {
return true;
}
\`\`\`

Formatting and Linting

This project uses Prettier for automatic formatting and markdownlint for linting Markdown files.

Formatting Tools

Prettier automatically handles:

  • Removing trailing spaces
  • Normalizing blank lines
  • Formatting tables
  • Consistent line breaks

markdownlint ensures:

  • Consistent heading styles
  • Proper list formatting
  • No duplicate headings at the same level
  • Compliance with Markdown best practices

Usage

bash
# Format all Markdown files (auto-fix formatting)
make format

# Check formatting without modifying files
make format-check

# Lint Markdown files
make lint

# Auto-fix linting issues
make lint-fix

Before Committing

Always run formatting and linting before committing:

bash
make format && make lint-fix

This ensures consistent formatting across all documentation.

Building the Documentation

Prerequisites

  • Node.js (v18 or higher)
  • npm (v9 or higher)

Build Commands

bash
# Install dependencies
make install

# Start development server (with hot reload)
make dev

# Build static site
make build

# Preview built site
make preview

# Clean build artifacts
make clean

Questions?

If you have questions about contributing, please open an issue or reach out to the maintainers.

License

By contributing, you agree that your contributions will be licensed under the MIT License.