2020-01-01 22:37:59 +01:00
|
|
|
|
---
|
|
|
|
|
title: Code structure
|
2020-01-12 14:11:56 +01:00
|
|
|
|
description: Where to find certain parts of the codebase.
|
2020-01-01 22:37:59 +01:00
|
|
|
|
menu:
|
|
|
|
|
docs:
|
|
|
|
|
weight: 30
|
|
|
|
|
parent: dev
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
{{< hint style="danger" >}}
|
|
|
|
|
This page is under construction.
|
|
|
|
|
{{< /hint >}}
|
|
|
|
|
|
2020-01-12 14:11:56 +01:00
|
|
|
|
### Code structure {#structure}
|
2020-01-01 22:37:59 +01:00
|
|
|
|
|
|
|
|
|
The following overview should not be seen as complete or authoritative, but as a rough guidance to help you find your way in the application.
|
|
|
|
|
|
2020-01-12 14:11:56 +01:00
|
|
|
|
#### Ruby {#ruby}
|
2020-01-01 22:37:59 +01:00
|
|
|
|
|
|
|
|
|
| Path | Description |
|
|
|
|
|
| :--- | :--- |
|
|
|
|
|
| `app/controllers` | Code that binds business logic to templates |
|
|
|
|
|
| `app/helpers` | Code that can be used from views, i.e. common operations |
|
|
|
|
|
| `app/lib` | Code that doesn’t fit in the other categories |
|
|
|
|
|
| `app/models` | Code that represents data entities |
|
|
|
|
|
| `app/serializers` | Code that generates JSON from models |
|
|
|
|
|
| `app/services` | Complex logical operations involving multiple models |
|
|
|
|
|
| `app/views` | Templates for generating HTML or other output |
|
|
|
|
|
| `app/workers` | Code that executes outside the request-response cycle |
|
|
|
|
|
| `spec` | Automated test suite |
|
|
|
|
|
|
2020-01-12 14:11:56 +01:00
|
|
|
|
#### JavaScript {#javascript}
|
2020-01-01 22:37:59 +01:00
|
|
|
|
|
|
|
|
|
| Path | Description |
|
|
|
|
|
| :--- | :--- |
|
|
|
|
|
| `app/javascript/mastodon` | Code for the multi-column React.js application |
|
|
|
|
|
| `app/javascript/packs` | Code for non-React.js pages |
|
|
|
|
|
|
2020-01-12 14:11:56 +01:00
|
|
|
|
#### CSS and other assets {#assets}
|
2020-01-01 22:37:59 +01:00
|
|
|
|
|
|
|
|
|
| Path | Description |
|
|
|
|
|
| :--- | :--- |
|
|
|
|
|
| `app/javascript/images` | Images |
|
|
|
|
|
| `app/javascript/styles` | Code that turns into CSS via Sass |
|
|
|
|
|
|
2020-01-12 14:11:56 +01:00
|
|
|
|
#### Localizations {#localizations}
|
2020-01-01 22:37:59 +01:00
|
|
|
|
|
|
|
|
|
| Path | Description |
|
|
|
|
|
| :--- | :--- |
|
|
|
|
|
| `config/locales` | Server-side localizations in the YML format |
|
|
|
|
|
| `app/javascript/mastodon/locales` | Client-side localizations in the JSON format |
|
|
|
|
|
|
2020-01-12 14:11:56 +01:00
|
|
|
|
### Localization maintenance {#localization-maintenance}
|
2020-01-01 22:37:59 +01:00
|
|
|
|
|
|
|
|
|
All locale files are normalized to ensure consistent formatting and key order, which minimizes changesets in version control.
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| :--- | :--- |
|
|
|
|
|
| `i18n-tasks normalize` | Normalize server-side translations |
|
|
|
|
|
| `yarn run manage:translations` | Normalize client-side translations |
|
|
|
|
|
|