homepage/docs/en/CONTRIBUTING.md
CDN 9ac43ef4f9
All checks were successful
Deploy / Deploy (push) Successful in 1m15s
feat: migrate language code
2025-02-03 22:52:56 +08:00

3.7 KiB

Contribution Guide

Data Structure

1. Contributor Information (data/[lang]/contributors.json)

{
  "members": [
    {
      "name": "Contributor Name",
      "role": "Role Description",
      "avatar": "Avatar URL",
      "links": [
        {
          "name": "Link Name",
          "url": "Link URL",
          "color": "Text Color Class Name",
          "icon": "Icon Name"
        }
      ],
      "isCore": true/false  // Whether they are a core contributor
    }
  ]
}

2. Project Update Articles

Updates are organized by year and stored in corresponding JSON files.

In data/[lang]/updates.json, reference the index of yearly updates:

{
  "years": [
    "index/2025.json",
    "index/2024.json",
    "index/2023.json",
    "index/2022.json",
    "index/2021.json",
    "index/2020.json"
  ]
}

data/[lang]/updates/index/[YYYY].json includes the update list for that year:

{
  "updates": [
    {
      "id": "journal-2020q3", // Article ID, forming a URL like `https://mirror.starset.fans/updates/journal-2020q3`
      "date": "2020-10-07", // Release date
      "title": "Q3 2020 Project Update", // Article title
      "summary": "This quarter, we evolved from a bilibili account into a goal-driven project. We experienced site migration, independent finance, multiple app updates, and community management adjustments, and dealt with a security attack.", // Article summary
      "tags": ["journal"] // Article tags
    }
  ]
}

For specific article content, use Markdown format in /data/[lang]/updates/[YYYY]/[id].md. Markdown files contain only the body, not titles or tables of contents.

{
  "translations": [
    {
      "id": "ID",
      "en": "Original English",
      "zh_CN": "Simplified Chinese Translation",
      "zh_TW": "Traditional Chinese Translation"
    }
  ]
}

4. Site Translations (data/[lang]/index.json)

If your Pull Request involves modifying site components, ensure any used text is separated into the above translation files and add new translations to the appropriate location in these files.

How to Contribute

Update Contributor Information

  1. Find the data/[lang]/contributors.json file.
  2. Add or modify contributor information using the schema above.
  3. Ensure all provided URLs (avatar, links, etc.) are accessible.
  4. Submit a Pull Request.

Add/Modify Update Articles

  1. Create or find the corresponding month's JSON file in the data/[lang]/updates/[year]/ directory.
  2. Add or modify article content following the schema above.
  3. Article content supports Markdown format and can include:
    • Titles (use #)
    • Links
    • Images
    • Lists
    • Quotes
    • Code blocks
  4. Submit a Pull Request.
  1. Edit the data/featured-translations.json file.
  2. Add or modify translations following the schema above.
  3. Ensure translations are provided in all language versions.
  4. Submit a Pull Request.

Submission Guide

  1. Fork this repository.
  2. Create a feature branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

Code Style

  • Use 2-space indentation for JSON files and avoid comments.
  • Use lowercase for filenames, separating multiple words with hyphens (-).
  • Date format: YYYY-MM-DD.

Notes

  1. All text content must follow the multilingual format, ensuring translations exist in all language directories (unless the submission is language-specific).
  2. Upload images and other media resources to a designated image host; contact project maintainers for specifics.