Effective Feb 20, 2023, we adopt the commit message convention as follows for all One Among Us repositories:
> [*] Do something
The message should be written in English. Starting with a mark symbol in square brackets and separated by a space character, the headline should be a imperative sentence describing what you do and end without punctuation marks. Detailed descriptions are not mandatory but recommended if you find it complicated. We follow the 72-column line-wrapping rule.
### Marks
> [+] Add
>
> [-] Remove
>
> [U] Update
>
> [O] Optimize
>
> [F] Fix
>
> [S] Modify style
>
> [M] Move (also [M] Modify by convention but [U] Modify is recommended)
>
> [R] Refactor
>
> [T] Test
>
> [D] Tweak documentation
>
> [B] Backup
>
> [PR] Merge commit of pull request
### Examples
> [+] Add entry for sauricat
>
> [U] Update photos for sauricat
>
> [F] Fix punctuation
## 1. File structures
* Directory `/people/<userid>/`: Data for a specific person
*`info.yaml`: Profile information
*`page.md`: Profile page content
*`page.en.md`: English version for page content
*`page.zh_hant.md`: Traditional Chinese version for page content
*`photos`: Photo directory
*`comments`: List of comments made by other users in the format of `yyyy-mm-dd-{name}-{id}.txt`
* Directory `/data/`: Data for building
*`hdata.json`: Front-end item behavior, see [HData chapter](#3-hdata)
*`eggs.json`: Easter Eggs. Please contact the maintainer to add new easter egg(s).
* Directory `/scripts/`: Build Scripts
## 2. How to build/preview
```sh
# Install Dependencies
yarn install
# Build data
yarn build
# Preview Website
yarn preview
```
For Windows, Yarn could be find at [Classic YarnPkg](https://classic.yarnpkg.com/lang/en/docs/install/#debian-stable).
## 3. HData
`/data/hdata.json` defined some data which used for entry properties. Here is some description of it:
*`commentOnly`: `string[]`, the entries which include comments only, like `tdor` or `tdov`
*`exclude`: `string[]`, the directories which would not be handled
*`notShowOnHome`: `string[]`, if you don't want a entry show on the home, add it into this item
*`actualHide`: `string[]`, if you don't want a entry show on the home and won't be redirected by random buttons, add it into this item.
If you set a entry in this list, you have no need to set it into `notShowOnHome` again.
*`trigger`: `string[]`, if you think this article is likely to irritate readers and should be restricted, please set this option.
### Example
```json
{
"commentOnly": [
"tdor"
],
"exclude": [
"tdov"
],
"notShowOnHome": [
"Anilovr",
"noname3031"
],
"actualHide": [
"ArtsEpiphany"
],
"trigger": [
"Xu_Yushu"
]
}
```
## 4. MDX external features
1. Both `{/*something*/}` and `<!--something-->` can be rendered as comment, will not displayed on the website;