documentation/content/en/dev/code.md

1.7 KiB
Raw Blame History

title description menu
Code structure Where to find certain parts of the codebase.
docs
weight parent
30 dev

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

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 doesnt fit in the other categories
app/models
Representation of data entities and their associated methods
app/policies
Permission checks and other validations, before calling related methods
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

app/javascript/mastodon
Code for the frontend React.js application
app/javascript/packs
Code for non-React.js pages

CSS and other assets

app/javascript/images
Images
app/javascript/styles
Code that turns into CSS via Sass

Localizations

config/locales
Server-side localizations in the YML format
app/javascript/mastodon/locales
Client-side localizations in the JSON format

All locale files are normalized to ensure consistent formatting and key order, which minimizes changesets in version control.

  • Run bundle exec i18n-tasks normalize to normalize server-side translations
  • Run yarn run i18n:extract to extract and normalize client-side translations into en.json