* Improve format and clarity of the docs [ci skip] While this change produces a lot of git noise by enacting what seems like an arbitrary linewrap on most of the files in the documentation it will result in better version control and tracking of the changes in the documentation. For example, as it currently stands, if one was to make a PR to move a comma in a sentence because each paragraph in most of the files is on a single line, that small change would look in the git history like the author had modified the entire paragraph. In reality, this author just moved a comma. This change also includes a significant number of modifications to the more article-esque docs. Many of these docs were written in a sort of stream-of-conciousness and aren't as easy to read as they could be. Hopefully this is the first of several readability changes. If we could get these docs to a more accessible reading level, we would probably see an increase in contributions. :) * Delegate markdown wrapping to Prettier * Add linewrapping explanation in the docs [ci skip]
1.3 KiB
| title |
|---|
| Javascript and Initializers |
Javascript and Initializers
DEV has two Javascript codebases.
One is located in the directory app/assets/javascripts and contains plain
Javascript (mostly ES5+) being served using
Sprockets which packages static
assets.
Webpacker manages the other one, and you can read more about in its own guide.
This source code is not transpiled, only packaged and minified, and will be limited to whatever flavour of Javascript can run on the user's web browser.
app/assets/javascripts/application.js contains the manifest Javascript file
which is included globally in the primary template,
app/views/layouts/application.html.erb.
application.js automatically includes all JS files via the statement:
//= require_tree .
One JS file in particular, app/assets/javascripts/initializePage.js.erb,
boostraps the majority of the functionality. You will notice, within this file,
that major sections of the websites are bootstrapped, for example:
initializeBaseTracking();
initializeTouchDevice();
initializeCommentsPage();
initEditorResize();
initLeaveEditorWarning();
initializeArticleReactions();
initNotifications();
initializeSplitTestTracking();
All the "initializers" are in /app/assets/javascripts/initializers.