title |
description |
menu |
Code structure |
Where to find certain parts of the codebase. |
|
{{< hint style="danger" >}}
This page is under construction.
{{< /hint >}}
Code structure
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.
Ruby
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 |
JavaScript
Path |
Description |
app/javascript/mastodon |
Code for the multi-column React.js application |
app/javascript/packs |
Code for non-React.js pages |
CSS and other assets
Path |
Description |
app/javascript/images |
Images |
app/javascript/styles |
Code that turns into CSS via Sass |
Localizations
Path |
Description |
config/locales |
Server-side localizations in the YML format |
app/javascript/mastodon/locales |
Client-side localizations in the JSON format |
Localization maintenance
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 |