Sfoglia il codice sorgente

Big list of typo fixes and additions to wordlist

Björn Ritzl 6 mesi fa
parent
commit
73f8d35c26
54 ha cambiato i file con 333 aggiunte e 195 eliminazioni
  1. 145 7
      .wordlist.txt
  2. 1 1
      docs/en/manuals/android.md
  3. 1 1
      docs/en/manuals/application-security.md
  4. 1 1
      docs/en/manuals/bob.md
  5. 3 3
      docs/en/manuals/collection-proxy.md
  6. 3 3
      docs/en/manuals/debugging-game-and-system-logs.md
  7. 1 1
      docs/en/manuals/debugging-game-logic.md
  8. 1 1
      docs/en/manuals/debugging-native-code-android.md
  9. 10 10
      docs/en/manuals/dev-app.md
  10. 2 2
      docs/en/manuals/editor-keyboard-shortcuts.md
  11. 2 2
      docs/en/manuals/editor-preferences.md
  12. 5 5
      docs/en/manuals/editor-scripts-ui.md
  13. 1 1
      docs/en/manuals/extender-docker-images.md
  14. 8 8
      docs/en/manuals/extensions.md
  15. 1 1
      docs/en/manuals/file-access.md
  16. 4 4
      docs/en/manuals/flash.md
  17. 1 1
      docs/en/manuals/gui-pie.md
  18. 48 48
      docs/en/manuals/input-gamepads.md
  19. 3 3
      docs/en/manuals/libraries.md
  20. 3 3
      docs/en/manuals/live-update.md
  21. 2 2
      docs/en/manuals/lua.md
  22. 3 3
      docs/en/manuals/macos.md
  23. 10 10
      docs/en/manuals/material.md
  24. 1 1
      docs/en/manuals/optimization-size.md
  25. 1 1
      docs/en/manuals/optimization-speed.md
  26. 1 1
      docs/en/manuals/physics-joints.md
  27. 7 7
      docs/en/manuals/physics-objects.md
  28. 6 6
      docs/en/manuals/project-settings.md
  29. 6 6
      docs/en/manuals/script.md
  30. 2 2
      docs/en/manuals/shader.md
  31. 2 2
      docs/en/manuals/sound.md
  32. 1 1
      docs/en/manuals/spinemodel.md
  33. 1 1
      docs/en/manuals/sprite.md
  34. 2 2
      docs/en/manuals/test.md
  35. 1 1
      docs/en/manuals/tilesource.md
  36. 6 6
      docs/en/tutorials/grading.md
  37. 1 1
      docs/ko/manuals/live-update.md
  38. 1 1
      docs/pl/manuals/flash.md
  39. 2 2
      docs/pl/manuals/input-gamepads.md
  40. 1 1
      docs/pl/manuals/live-update.md
  41. 6 6
      docs/pl/manuals/physics-objects.md
  42. 1 1
      docs/pl/manuals/project-settings.md
  43. 2 2
      docs/pl/manuals/sound.md
  44. 1 1
      docs/ru/manuals/debugging-game-and-system-logs.md
  45. 4 4
      docs/ru/manuals/physics-objects.md
  46. 1 1
      docs/ru/manuals/project-settings.md
  47. 2 2
      docs/ru/manuals/sound.md
  48. 3 3
      docs/zh/manuals/debugging-game-and-system-logs.md
  49. 1 1
      docs/zh/manuals/flash.md
  50. 2 2
      docs/zh/manuals/input-gamepads.md
  51. 4 4
      docs/zh/manuals/physics-objects.md
  52. 2 2
      docs/zh/manuals/project-settings.md
  53. 1 1
      docs/zh/manuals/sprite.md
  54. 2 2
      docs/zh/manuals/test.md

+ 145 - 7
.wordlist.txt

@@ -1,4 +1,7 @@
-defold
+Defold’s
+Git's
+Lua's
+Defold
 defolding
 colorslide
 readme
@@ -19,6 +22,8 @@ DevNet
 Middleware
 Ogg
 Vorbis
+FSAA
+GLFW
 glTF
 glb
 WAV
@@ -28,13 +33,18 @@ TCP
 UDP
 DNS
 SSL
+TLS
 RPG
 UHD
 NPC
+URI
+CDN
+JIT
 ASTC
 UASTC
 LZ
 LZ4
+GCM
 OpenType
 TrueType
 BMFont
@@ -44,7 +54,10 @@ WEBP
 GPU
 GPUs
 UDID
+UV
+UVs
 UI
+UIs
 GUI
 GUIs
 ABI
@@ -73,6 +86,7 @@ gamepads
 lookups
 integrations
 github
+gitlab
 https
 Lua
 moltenvk
@@ -87,6 +101,7 @@ macOS
 OSX
 sidenote
 config
+configurability
 awterror
 scroller
 platformer
@@ -97,8 +112,12 @@ Ragnar
 Svensson
 Sergey
 Lerg
+Klayton
+Kowalski
+Ierusalimschy
 Rosen
 Wolfire
+CodeAndWeb
 goeshard
 solvability
 tilemap
@@ -133,13 +152,14 @@ callstack
 backbuffer
 framerate
 namespace
+namespaces
 shadertoy
 shaders
 shader
 builtins
 viewport
-prebaked
 keyframe
+keyframes
 animationset
 dae
 vroom
@@ -204,10 +224,12 @@ libdmengine
 exe
 apk
 apkx
+APKs
 aab
 androideabi
 armeabi
 addr
+AndroidX
 AndroidManifest
 mobileprovision
 AppStore
@@ -241,6 +263,7 @@ liveupdate
 glyphs
 templated
 ProFi
+"ProFi"
 localhost
 Remotery
 Celtoys
@@ -248,7 +271,6 @@ linkers
 yml
 yaml
 Winsdk
-preconfigured
 TinyHTTP
 PSD
 Protools
@@ -256,6 +278,7 @@ undoable
 VM
 LSP
 tooltip
+tooltips
 submenu
 rebundle
 booleans
@@ -277,18 +300,28 @@ vsync
 EFIGS
 EDN
 preallocate
+preallocated
+premultiply
+premultiplied
+prebuilt
+preselect
+prehash
+prebaked
+prepending
+preconfigured
+preload
+preprocessor
+reconfiguring
 checkboxes
 Sur
 NativeAOT
 DotNet
-premultiplied
 ImageView
 imageview
 uncheck
 profilers
 JVM
 luaj
-prebuilt
 impactful
 Localizations
 keymap
@@ -307,7 +340,7 @@ Revolute
 Poki
 Tilesetter
 tileset
-tilsets
+tilesets
 tilesource
 tilesources
 Shorthands
@@ -323,4 +356,109 @@ Fullscreen
 ico
 GAPID
 LFS
-Fmo
+FMOS
+childed
+childing
+async
+protobuf
+unlockable
+customizations
+Templatized
+minimap
+designator
+plist
+LargeXxxhdpi
+Subpixels
+minification
+iconified
+dirs
+txt
+initializer
+enum
+DefSave
+FMOD
+bundler
+CloudFlare
+tweening
+tweens
+cutscene
+cutscenes
+instantiation
+movieclip
+ActionScript
+CCD
+ImageMagick
+AConvert
+ICOConvert
+videoplayer
+ProGuard
+Gradle
+src
+customizable
+OpenJDK
+Adoptium
+distributable
+mockup
+HoRNDIS
+Hotspot
+keyable
+IronSource
+CPM
+Incentivized
+mille
+Vararg
+coroutine
+coroutines
+lexically
+globals
+mathematic
+BitOp
+bitmask
+bytecode
+videogame
+deadzone
+gdc
+raycast
+Gameboy
+NES
+upscaled
+adaptively
+HD
+SD
+stylesheet
+stylesheets
+anisotropic
+anisotropy
+billboarding
+Commonmark
+callout
+repo
+autocompletion
+Luacheck
+natively
+transpile
+cryptographically
+decrypt
+bytecode
+obfuscator
+framebuffer
+rasterized
+rasterization
+pragma
+SSBOs
+atomics
+varyings
+SPIR
+Tilegrid
+spawner
+keypress
+keypresses
+WASD
+Rendy
+Björn
+Ritzl
+fov
+loopcount
+unstripped
+kerning
+antialiased

+ 1 - 1
docs/en/manuals/android.md

@@ -97,7 +97,7 @@ Allows using PowerManager WakeLocks to keep processor from sleeping or screen fr
 
 
 ## Using AndroidX
-AndroidX is a major improvement to the original Android Support Library, which is no longer maintained. AndroidX packages fully replace the Support Library by providing feature parity and new libraries. Most of the Android extensions in the [Asset Portal](/assets) support AndroidX. If you do not wish to use AndroidX you can explicitly disable it in favour of the old Android Support Library by creating a new app manifest file or editing an existing one and checking Use Android Support Libs.
+AndroidX is a major improvement to the original Android Support Library, which is no longer maintained. AndroidX packages fully replace the Support Library by providing feature parity and new libraries. Most of the Android extensions in the [Asset Portal](/assets) support AndroidX. If you do not wish to use AndroidX you can explicitly disable it in favour of the old Android Support Library by checking the `Use Android Support Lib` in the [application manifest](https://defold.com/manuals/app-manifest/).
 
 ![](images/android/enable_supportlibrary.png)
 

+ 1 - 1
docs/en/manuals/application-security.md

@@ -27,7 +27,7 @@ Developers can add their own protection to make it harder, __but not impossible_
 ### Source code obfuscation
 Applying source code obfuscation is an automated process where the source code is deliberately made difficult for humans to understand, without impacting the program’s output. The purpose is usually to protect against theft, but also to make cheating harder.
 
-It is possible to apply source code obfuscation in Defold either as a pre-build step or as an integrated part of the Defold build process. With pre-build obfuscation the source code is obfuscated using an obfuscation tool before the Defold build process is started.
+It is possible to apply source code obfuscation in Defold either as a prebuild step or as an integrated part of the Defold build process. With prebuild obfuscation the source code is obfuscated using an obfuscation tool before the Defold build process is started.
 
 Build-time obfuscation on the other hand is integrated into the build process using a Lua builder plugin. A Lua builder plugin takes the raw source code as input and returns an obfuscated version of the source code as output. One example of build-time obfuscation is shown in the [Prometheus extension](https://github.com/defold/extension-prometheus), based on the Prometheus Lua obfuscator available on GitHub. Below you will find an example of using Prometheus to aggressively obfuscate a snippet of code (note that this kind of heavy obfuscation will have an impact on the runtime performance of the Lua code):
 

+ 1 - 1
docs/en/manuals/bob.md

@@ -15,7 +15,7 @@ Compatible OpenJDK 21 mirrors (from Defold 1.9.6):
 * [OpenJDK 21 by Microsoft](https://docs.microsoft.com/en-us/java/openjdk/download#openjdk-21)
 * [OpenJDK 21 by Adoptium Working Group](https://github.com/adoptium/temurin21-binaries/releases) / [Adoptium.net](https://adoptium.net/)
 
-If you are on Windows you want the .msi file installer for OpenJDK.
+If you are on Windows you want the `.msi` file installer for OpenJDK.
 
 ## Usage
 

+ 3 - 3
docs/en/manuals/collection-proxy.md

@@ -46,9 +46,9 @@ msg.post("#myproxy", "load")
 
 ![load](images/collection-proxy/proxy_load.png)
 
-The proxy component will instruct the engine to allocate space for a new world. A separate runtime physics world is also created and all the game objects in the collection "mylevel.collection" are instantiated.
+The proxy component will instruct the engine to allocate space for a new world. A separate runtime physics world is also created and all the game objects in the collection "`mylevel.collection`" are instantiated.
 
-The new world gets its name from the *Name* property in the collection file, in this example it is set to "mylevel". The name has to be unique. If the *Name* set in the collection file is already used for a loaded world, the engine will signal a name collision error:
+The new world gets its name from the *Name* property in the collection file, in this example it is set to "`mylevel`". The name has to be unique. If the *Name* set in the collection file is already used for a loaded world, the engine will signal a name collision error:
 
 ```txt
 ERROR:GAMEOBJECT: The collection 'default' could not be created since there is already a socket with the same name.
@@ -172,7 +172,7 @@ DEBUG:SCRIPT: update() with timestep (dt) 0
 DEBUG:SCRIPT: update() with timestep (dt) 0.016666667535901
 ```
 
-`update()` is still called 60 times a second, but the value of `dt` changes. We see that only 1/5 (0.2) of the calls to `update()` will have a `dt` of 1/60 (corresponding to 60 FPS)---the rest is zero. All physics simulations will also be updated according to that dt and advance only in one fifth of the frames.
+`update()` is still called 60 times a second, but the value of `dt` changes. We see that only 1/5 (0.2) of the calls to `update()` will have a `dt` of 1/60 (corresponding to 60 FPS)---the rest is zero. All physics simulations will also be updated according to that `dt` and advance only in one fifth of the frames.
 
 ::: sidenote
 You can use the collection time step functionality to pause your game, for instance while showing a popup or when the window has lost focus. Use `msg.post("#myproxy", "set_time_step", {factor = 0, mode = 0})` to pause and `msg.post("#myproxy", "set_time_step", {factor = 1, mode = 1})` to resume.

+ 3 - 3
docs/en/manuals/debugging-game-and-system-logs.md

@@ -87,7 +87,7 @@ This will install the app on your device, start it and automatically attach a LL
 
 ## Reading the game log from the log file
 
-If you enable the *Write Log* setting in *game.project*, any game output will be written to disk, to a file called "log.txt". Here is how you extract the file if you run the game on device:
+If you enable the *Write Log* setting in *game.project*, any game output will be written to disk, to a file called "`log.txt`". Here is how you extract the file if you run the game on device:
 
 iOS
 : Connect your device to a computer with macOS and Xcode installed.
@@ -100,7 +100,7 @@ iOS
 
   ![download container](images/debugging/download_container.png)
 
-  Once the container has been extracted it will be shown in *Finder*. Right click the container and select <kbd>Show Package Content</kbd>. Locate the file "log.txt", which should be located in "AppData/Documents/".
+  Once the container has been extracted it will be shown in *Finder*. Right click the container and select <kbd>Show Package Content</kbd>. Locate the file "`log.txt`", which should be located in "`AppData/Documents/`".
 
 Android(
-: The ability to extract the "log.txt" depends on OS version and manufacturer. Here is a short and simple [step by step guide](https://stackoverflow.com/a/48077004/]129360).
+: The ability to extract the "`log.txt`" depends on OS version and manufacturer. Here is a short and simple [step by step guide](https://stackoverflow.com/a/48077004/]129360).

+ 1 - 1
docs/en/manuals/debugging-game-logic.md

@@ -106,7 +106,7 @@ Detaching the debugger
 
 ## Lua debug library
 
-Lua comes with a debug library that is useful in some situations, particularly if you need to inspect the innards of your Lua environment. You can find more information about it here: http://www.lua.org/pil/contents.html#23.
+Lua comes with a debug library that is useful in some situations, particularly if you need to inspect the innards of your Lua environment. You can find more information about it in [the chapter about the Debug Library in the Lua manual](http://www.lua.org/pil/contents.html#23).
 
 ## Debugging checklist
 

+ 1 - 1
docs/en/manuals/debugging-native-code-android.md

@@ -74,7 +74,7 @@ is random for each build, making the path mapping invalid for each build.
 
 However, it works fine for a debugging session.
 
-The path mappings are stored in the <project>.iml file in the Android Studio project.
+The path mappings are stored in the project `.iml` file in the Android Studio project.
 
 It's possible to get the job folder from the executable
 

+ 10 - 10
docs/en/manuals/dev-app.md

@@ -25,35 +25,35 @@ Follow the [instructions in the Android manual](https://defold.com/manuals/andro
 
 ## Launching your game
 
-To launch your game on your device, the dev app and editor must be able to connect, over the same wifi network or using USB (see below).
+To launch your game on your device, the development app and editor must be able to connect, over the same wifi network or using USB (see below).
 
 1. Make sure the editor is up and running.
-2. Launch the dev app on the device.
+2. Launch the development app on the device.
 3. Select your device under <kbd>Project ▸ Targets</kbd> in the editor.
 4. Select <kbd>Project ▸ Build</kbd> to run the game. It may take a while for the game to start since the game content is streamed to the device over the network.
 5. While the game is running, you can use [hot reloading](/manuals/hot-reload/) as usual.
 
 ### Connecting to an iOS device using USB on Windows
 
-When connecting over USB on Windows to a dev app running on an iOS device you first need to [install iTunes](https://www.apple.com/lae/itunes/download/). When iTunes is installed you also need to [enable Personal Hotspot](https://support.apple.com/en-us/HT204023) on your iOS device from the Settings menu. If you see an alert that says tap "Trust This Computer?" tap Trust. The device should now show up under <kbd>Project ▸ Targets</kbd> when the dev app is running.
+When connecting over USB on Windows to a development app running on an iOS device you first need to [install iTunes](https://www.apple.com/lae/itunes/download/). When iTunes is installed you also need to [enable Personal Hotspot](https://support.apple.com/en-us/HT204023) on your iOS device from the Settings menu. If you see an alert that says tap "Trust This Computer?" tap Trust. The device should now show up under <kbd>Project ▸ Targets</kbd> when the development app is running.
 
 ### Connecting to an iOS device using USB on Linux
 
-On Linux you need to enable Personal Hotspot on your device from the Settings menu when connected using USB. If you see an alert that says tap "Trust This Computer?" tap Trust. The device should now show up under <kbd>Project ▸ Targets</kbd> when the dev app is running.
+On Linux you need to enable Personal Hotspot on your device from the Settings menu when connected using USB. If you see an alert that says tap "Trust This Computer?" tap Trust. The device should now show up under <kbd>Project ▸ Targets</kbd> when the development app is running.
 
 ### Connecting to an iOS device using USB on macOS
 
-On newer iOS versions the device will automatically open a new ethernet interface between the device and computer when connected using USB on macOS. The device should show up under <kbd>Project ▸ Targets</kbd> when the dev app is running.
+On newer iOS versions the device will automatically open a new ethernet interface between the device and computer when connected using USB on macOS. The device should show up under <kbd>Project ▸ Targets</kbd> when the development app is running.
 
-On older iOS versions you need to enable Personal Hotspot on your device from the Settings menu when connected using USB on macOS. If you see an alert that says tap "Trust This Computer?" tap Trust. The device should now show up under <kbd>Project ▸ Targets</kbd> when the dev app is running.
+On older iOS versions you need to enable Personal Hotspot on your device from the Settings menu when connected using USB on macOS. If you see an alert that says tap "Trust This Computer?" tap Trust. The device should now show up under <kbd>Project ▸ Targets</kbd> when the development app is running.
 
 ### Connecting to an Android device using USB on macOS
 
-On macOS it is possible to connect over USB to a running dev app on an Android device when the device is in USB Tethering Mode. On macOS you need to install a third-party driver such as [HoRNDIS](https://joshuawise.com/horndis#available_versions). When HoRNDIS is installed you also need to allow it to run via the Security & Privacy settings. Once USB Tethering is enabled the device will show up under <kbd>Project ▸ Targets</kbd> when the dev app is running.
+On macOS it is possible to connect over USB to a running development app on an Android device when the device is in USB Tethering Mode. On macOS you need to install a third-party driver such as [HoRNDIS](https://joshuawise.com/horndis#available_versions). When HoRNDIS is installed you also need to allow it to run via the Security & Privacy settings. Once USB Tethering is enabled the device will show up under <kbd>Project ▸ Targets</kbd> when the development app is running.
 
 ### Connecting to an Android device using USB on Windows or Linux
 
-On Windows and Linux it is possible to connect over USB to a running dev app on an Android device when the device is in USB Tethering Mode. Once USB Tethering is enabled the device will show up under <kbd>Project ▸ Targets</kbd> when the dev app is running.
+On Windows and Linux it is possible to connect over USB to a running development app on an Android device when the device is in USB Tethering Mode. Once USB Tethering is enabled the device will show up under <kbd>Project ▸ Targets</kbd> when the development app is running.
 
 ## Troubleshooting
 
@@ -61,7 +61,7 @@ Unable to download application
 : Make sure the your device UDID is included in the mobile provisioning that was used for signing the app.
 
 Your device does not appear in the Targets menu
-: Make sure that your device is connected to the same wifi network as your computer. Make sure the dev app is built in Debug mode.
+: Make sure that your device is connected to the same wifi network as your computer. Make sure the development app is built in Debug mode.
 
-The game does not start with a message about mis-matching versions
+The game does not start with a message about mismatching versions
 : This happens when you have upgraded the editor to the latest version. You need to build and install a new version.

+ 2 - 2
docs/en/manuals/editor-keyboard-shortcuts.md

@@ -44,8 +44,8 @@ brief: This manual shows the current keyboard shortcuts and how to customize the
 | Flip brush horizontally | <kbd>X</kbd> | <kbd>X</kbd> | <kbd>X</kbd> |
 | Flip brush vertically | <kbd>Y</kbd> | <kbd>Y</kbd> | <kbd>Y</kbd> |
 | Frame selection | <kbd>F</kbd> | <kbd>F</kbd> | <kbd>F</kbd> |
-| Goto definition | <kbd>F12</kbd> | <kbd>F12</kbd> | <kbd>F12</kbd> |
-| Goto line | <kbd>Ctrl</kbd>+<kbd>L</kbd> | <kbd>Cmd</kbd>+<kbd>L</kbd> | <kbd>Ctrl</kbd>+<kbd>L</kbd> |
+| Go to definition | <kbd>F12</kbd> | <kbd>F12</kbd> | <kbd>F12</kbd> |
+| Go to line | <kbd>Ctrl</kbd>+<kbd>L</kbd> | <kbd>Cmd</kbd>+<kbd>L</kbd> | <kbd>Ctrl</kbd>+<kbd>L</kbd> |
 | Hide toggle selected | <kbd>Ctrl</kbd>+<kbd>E</kbd> | <kbd>Cmd</kbd>+<kbd>E</kbd> | <kbd>Ctrl</kbd>+<kbd>E</kbd> |
 | Hot reload | <kbd>Ctrl</kbd>+<kbd>R</kbd> | <kbd>Cmd</kbd>+<kbd>R</kbd> | <kbd>Ctrl</kbd>+<kbd>R</kbd> |
 | Left | <kbd>Left</kbd> | <kbd>Left</kbd> | <kbd>Left</kbd> |

+ 2 - 2
docs/en/manuals/editor-preferences.md

@@ -33,7 +33,7 @@ Path to custom keymap
 : Absolute path to a file containing [custom keyboard shortcuts](/manuals/editor-keyboard-shortcuts).
 
 Engine Arguments
-: Arguments that will be passed to the dmengine executables when the editor builds and runs.
+: Arguments that will be passed to the dmengine executable when the editor builds and runs.
  Use one argument per line. For example:
  ```
 --config=bootstrap.main_collection=/my dir/1.collectionc
@@ -47,7 +47,7 @@ Engine Arguments
 ![](images/editor/preferences_code.png)
 
 Custom Editor
-: Absolute path to an external editor. On macOS it should be the path to the executable inside the .app (eg `/Applications/Atom.app/Contents/MacOS/Atom`).
+: Absolute path to an external editor. On macOS it should be the path to the executable inside the .app (e.g. `/Applications/Atom.app/Contents/MacOS/Atom`).
 
 Open File
 : The pattern used by the custom editor to specify which file to open. The pattern `{file}` will be replaced by the filename to open.

+ 5 - 5
docs/en/manuals/editor-scripts-ui.md

@@ -57,7 +57,7 @@ Perform action:	true
 
 ### Components
 
-The editor provides various UI **components** that can be composed to create the desired UI. By convention, all components are configured using a single table called **props**. The components themselves are not tables, but **immutable userdatas** used by the editor for creating the UI.
+The editor provides various UI **components** that can be composed to create the desired UI. By convention, all components are configured using a single table called **props**. The components themselves are not tables, but **immutable userdata** used by the editor for creating the UI.
 
 ### Props
 
@@ -88,7 +88,7 @@ Layout components are used for placing other components next to each other. Main
 
 ![Padding and Spacing](images/editor_scripts/padding_and_spacing.png)
 
-Editor defines `small`, `medium` and `large` padding and spacing constants. When it comes to spacing, `small` is intended for spacing between different sub-elements of an individual UI element, `medium` is for spacing between individual UI elements, and `large` is a spacing between groups of elements. Default spacing is `medium`. With paddings, `large` means padding from the edges of the window to content, `medium` is padding from the edges of a significant UI element, and `small` is a padding from the edges of small UI elements like context menus and tooltips (not implemented yet).
+Editor defines `small`, `medium` and `large` padding and spacing constants. When it comes to spacing, `small` is intended for spacing between different sub-elements of an individual UI element, `medium` is for spacing between individual UI elements, and `large` is a spacing between groups of elements. Default spacing is `medium`. A padding value of `large` means padding from the edges of the window to content, `medium` is padding from the edges of a significant UI element, and `small` is a padding from the edges of small UI elements like context menus and tooltips (not implemented yet).
 
 A **`horizontal`** container places its children one after another horizontally, always making the height every child fill the available space. By default, the width of every child is kept to a minimum, though it's possible to make it take as much space as possible by setting `grow` prop to `true` on a child.
 
@@ -169,7 +169,7 @@ if create_file then
 end
 ```
 Here is a list of built-in input components:
-- **`string_field`**, **`integer_field`** and **`number_field`** are variations of a single-line text field that allow editing strings, integeres, and numbers.
+- **`string_field`**, **`integer_field`** and **`number_field`** are variations of a single-line text field that allow editing strings, integers, and numbers.
 - **`select_box`** is used for selecting an option from predefined array of options with a dropdown control.
 - **`check_box`** is a boolean input field with `on_value_changed` callback
 - **`button`** with `on_press` callback that gets invoked on button press.
@@ -200,7 +200,7 @@ Additionally, the editor defines some utility components:
 
 ## Reactivity
 
-Since components are **immutable userdatas**, it's impossible to change them after they are created. How to make the UI change over time then? The answer: **reactive components**. 
+Since components are **immutable userdata**, it's impossible to change them after they are created. How to make the UI change over time then? The answer: **reactive components**. 
 
 ::: sidenote
 The editor scripting UI draws inspiration from [React](https://react.dev/) library, so knowing about reactive UI and React hooks will help. 
@@ -343,7 +343,7 @@ local id, set_id = editor.ui.use_state(string.lower, props.name)
 
 ### **`use_memo`**
 
-You can use `use_memo` hook to improve performance. It is common to perform some computations in the render functions, e.g. to check if the user input is valid. `use_memo` hook can be used in cases where checking if arguments to the computation function have changed is cheaper than invoking the computation function. The hook will call the computation function on first render, and will re-use the computed value on subsequent re-renders if all the args to `use_memo` are unchanged:
+You can use `use_memo` hook to improve performance. It is common to perform some computations in the render functions, e.g. to check if the user input is valid. `use_memo` hook can be used in cases where checking if arguments to the computation function have changed is cheaper than invoking the computation function. The hook will call the computation function on first render, and will re-use the computed value on subsequent re-renders if all the arguments to `use_memo` are unchanged:
 ```lua
 -- validation function outside of component function
 local function validate_password(password)

+ 1 - 1
docs/en/manuals/extender-docker-images.md

@@ -36,7 +36,7 @@ To use old environment you should go through following steps:
     Important fields are:
     * **profiles** - list of profiles that triggers service start. Profile names passed via `--profile <profile_name>` argument to `docker compose` command.
     * **networks** - list of networks that should used by Docker container. For running Extender used network with name `default`. Important to set service network aliases (it will be used in later Extender's configuration).
-2. Add definition of remote builder in [application-local-dev-app.yml](https://github.com/defold/extender/blob/dev/server/configs/application-local-dev-app.yml) in `extender.remote-builder.platforms` section. In our example it will looks like:
+2. Add definition of remote builder in [`application-local-dev-app.yml`](https://github.com/defold/extender/blob/dev/server/configs/application-local-dev-app.yml) in `extender.remote-builder.platforms` section. In our example it will looks like:
     ```yml
         emsdk-2011:
             url: http://emsdk-2011:9000

+ 8 - 8
docs/en/manuals/extensions.md

@@ -82,7 +82,7 @@ Extensions are treated just like any other assets in your project and they can b
 
 ## A simple example extension
 
-Let's build a very simple extension. First, we create a new root folder *myextension* and add a file *ext.manifest* containing the name of the extension "MyExtension". Note that the name is a C++ symbol and must match the first argument to `DM_DECLARE_EXTENSION` (see below).
+Let's build a very simple extension. First, we create a new root folder *`myextension`* and add a file *`ext.manifest`* containing the name of the extension "`MyExtension`". Note that the name is a C++ symbol and must match the first argument to `DM_DECLARE_EXTENSION` (see below).
 
 ![Manifest](images/extensions/manifest.png)
 
@@ -91,7 +91,7 @@ Let's build a very simple extension. First, we create a new root folder *myexten
 name: "MyExtension"
 ```
 
-The extension consists of a single C++ file, *myextension.cpp* that is created in the "src" folder.
+The extension consists of a single C++ file, *`myextension.cpp`* that is created in the "`src`" folder.
 
 ![C++ file](images/extensions/cppfile.png)
 
@@ -225,12 +225,12 @@ The entry points will allow you to run code at various points in the lifecycle o
 
 The following identifiers are defined by the builder on each respective platform:
 
-* DM_PLATFORM_WINDOWS
-* DM_PLATFORM_OSX
-* DM_PLATFORM_IOS
-* DM_PLATFORM_ANDROID
-* DM_PLATFORM_LINUX
-* DM_PLATFORM_HTML5
+* `DM_PLATFORM_WINDOWS`
+* `DM_PLATFORM_OSX`
+* `DM_PLATFORM_IOS`
+* `DM_PLATFORM_ANDROID`
+* `DM_PLATFORM_LINUX`
+* `DM_PLATFORM_HTML5`
 
 ## Build server logs
 

+ 1 - 1
docs/en/manuals/file-access.md

@@ -75,7 +75,7 @@ File and folder locations can be divided into three categories:
 ### How to save and load application specific files
 When saving and loading application specific files such as high scores, user settings and game state it is recommended to do so in a location provided by the operating system and intended specifically for this purpose. You can use [`sys.get_save_file()`](https://defold.com/ref/stable/sys/#sys.get_save_file:application_id-file_name) to get the OS specific absolute path to a file. Once you have the absolute path you can use the `sys.*`, `io.*` and `os.*` functions (see above).
 
-[Check the example showing how to use sys.save() and sys.load()](/examples/file/sys_save_load/).
+[Check the example showing how to use `sys.save()` and `sys.load()`](/examples/file/sys_save_load/).
 
 ### How to access files bundled with the application
 You can include files with your application using bundle resources and custom resources.

+ 4 - 4
docs/en/manuals/flash.md

@@ -106,7 +106,7 @@ In Flash, we are familiar with the Timeline (top section of the screenshot below
 
 ![timeline and stage](images/flash/stage.png)
 
-As discussed in the movie clips section above, the Stage is essentially the top level container of a Flash game and is created each time a project is exported. The Stage will by default have one child, the *MainTimeline*. Each movie clip generated in the project will have its own timeline, and can serve as a container for other symbols (including movie clips).
+As discussed in the movie clips section above, the Stage is essentially the top level container of a Flash game and is created each time a project is exported. The Stage will by default have one child, the *`MainTimeline`*. Each movie clip generated in the project will have its own timeline, and can serve as a container for other symbols (including movie clips).
 
 ## Defold—collections
 
@@ -192,7 +192,7 @@ pos.z  = 0.5
 go.set_position(pos)
 ```
 
-## Flash—hitTestObject and hitTestPoint collision detection
+## Flash `hitTestObject` and `hitTestPoint` collision detection
 
 Basic collision detection in Flash is achieved by using the `hitTestObject()` method. In this example, we have two movie clips: "bullet" and "bullseye". These are illustrated in the screenshot below. The blue boundary box is visible when selecting the symbols in the Flash editor, and it is these boundary boxes that drive the result of the `hitTestObject()` method.
 
@@ -240,7 +240,7 @@ Note how the *Group* property is set to "target" and *Mask* is set to "bullet".
 
 In Flash, collision detection occurs only when explicitly called by the script. In Defold, collision detection occurs continuously in the background as long as a collision object remains enabled. When a collision occurs, messages are sent to all components of a game object (most relevantly, the script components). These are the [collision_response and contact_point_response](/manuals/physics-messages) messages, which contain all the information required to resolve the collision as desired.
 
-The advantage of Defold collision detection is that it is more advanced than that of Flash, with the ability to detect collisions between relatively complex shapes with very little setup effort. Collision detection is automatic, meaning looping through the various objects in the different collision groups and explicitly performing hit tests is not required. The main drawback is that there is no equivalent to the Flash shapeFlag. However, for most uses combinations of the basic box and sphere shapes suffice. For more complex scenarios, custom shapes [are possible](//forum.defold.com/t/does-defold-support-only-three-shapes-for-collision-solved/1985).
+The advantage of Defold collision detection is that it is more advanced than that of Flash, with the ability to detect collisions between relatively complex shapes with very little setup effort. Collision detection is automatic, meaning looping through the various objects in the different collision groups and explicitly performing hit tests is not required. The main drawback is that there is no equivalent to the Flash `shapeFlag`. However, for most uses combinations of the basic box and sphere shapes suffice. For more complex scenarios, custom shapes [are possible](//forum.defold.com/t/does-defold-support-only-three-shapes-for-collision-solved/1985).
 
 ## Flash—event handling
 
@@ -257,7 +257,7 @@ final
 :   Called when the script component is destroyed (e.g. a spawned game object is removed).
 
 update
-:   Called every frame. Equivalent to enterFrame in Flash.
+:   Called every frame. Equivalent to `enterFrame` in Flash.
 
 on_message
 :   Called when the script component receives a message.

+ 1 - 1
docs/en/manuals/gui-pie.md

@@ -5,7 +5,7 @@ brief: This manual explains how to use pie nodes in Defold GUI scenes.
 
 # GUI pie nodes
 
-Pie nodes are used to create circular or ellipsoid objects ranging from plain circles to pies and square donut shapes.
+Pie nodes are used to create circular or ellipsoid objects ranging from plain circles to pies and square doughnut shapes.
 
 ## Creating a pie node
 

+ 48 - 48
docs/en/manuals/input-gamepads.md

@@ -180,56 +180,56 @@ When adding additional gamepad bindings on Android you can use the following loo
 
 | Key event to button index   | Index | Version |
 |-----------------------------|-------|---------|
-| AKEYCODE_BUTTON_A           | 0     | 1.2.183 |
-| AKEYCODE_BUTTON_B           | 1     | 1.2.183 |
-| AKEYCODE_BUTTON_C           | 2     | 1.2.183 |
-| AKEYCODE_BUTTON_X           | 3     | 1.2.183 |
-| AKEYCODE_BUTTON_L1          | 4     | 1.2.183 |
-| AKEYCODE_BUTTON_R1          | 5     | 1.2.183 |
-| AKEYCODE_BUTTON_Y           | 6     | 1.2.183 |
-| AKEYCODE_BUTTON_Z           | 7     | 1.2.183 |
-| AKEYCODE_BUTTON_L2          | 8     | 1.2.183 |
-| AKEYCODE_BUTTON_R2          | 9     | 1.2.183 |
-| AKEYCODE_DPAD_CENTER        | 10    | 1.2.183 |
-| AKEYCODE_DPAD_DOWN          | 11    | 1.2.183 |
-| AKEYCODE_DPAD_LEFT          | 12    | 1.2.183 |
-| AKEYCODE_DPAD_RIGHT         | 13    | 1.2.183 |
-| AKEYCODE_DPAD_UP            | 14    | 1.2.183 |
-| AKEYCODE_BUTTON_START       | 15    | 1.2.183 |
-| AKEYCODE_BUTTON_SELECT      | 16    | 1.2.183 |
-| AKEYCODE_BUTTON_THUMBL      | 17    | 1.2.183 |
-| AKEYCODE_BUTTON_THUMBR      | 18    | 1.2.183 |
-| AKEYCODE_BUTTON_MODE        | 19    | 1.2.183 |
-| AKEYCODE_BUTTON_1           | 20    | 1.2.186 |
-| AKEYCODE_BUTTON_2           | 21    | 1.2.186 |
-| AKEYCODE_BUTTON_3           | 22    | 1.2.186 |
-| AKEYCODE_BUTTON_4           | 23    | 1.2.186 |
-| AKEYCODE_BUTTON_5           | 24    | 1.2.186 |
-| AKEYCODE_BUTTON_6           | 25    | 1.2.186 |
-| AKEYCODE_BUTTON_7           | 26    | 1.2.186 |
-| AKEYCODE_BUTTON_8           | 27    | 1.2.186 |
-| AKEYCODE_BUTTON_9           | 28    | 1.2.186 |
-| AKEYCODE_BUTTON_10          | 29    | 1.2.186 |
-| AKEYCODE_BUTTON_11          | 30    | 1.2.186 |
-| AKEYCODE_BUTTON_12          | 31    | 1.2.186 |
-| AKEYCODE_BUTTON_13          | 32    | 1.2.186 |
-| AKEYCODE_BUTTON_14          | 33    | 1.2.186 |
-| AKEYCODE_BUTTON_15          | 34    | 1.2.186 |
-| AKEYCODE_BUTTON_16          | 35    | 1.2.186 |
-
-([Android KeyEvent definitions](https://developer.android.com/ndk/reference/group/input#group___input_1gafccd240f973cf154952fb917c9209719))
+| `AKEYCODE_BUTTON_A`           | 0     | 1.2.183 |
+| `AKEYCODE_BUTTON_B`           | 1     | 1.2.183 |
+| `AKEYCODE_BUTTON_C`           | 2     | 1.2.183 |
+| `AKEYCODE_BUTTON_X`           | 3     | 1.2.183 |
+| `AKEYCODE_BUTTON_L1`          | 4     | 1.2.183 |
+| `AKEYCODE_BUTTON_R1`          | 5     | 1.2.183 |
+| `AKEYCODE_BUTTON_Y`           | 6     | 1.2.183 |
+| `AKEYCODE_BUTTON_Z`           | 7     | 1.2.183 |
+| `AKEYCODE_BUTTON_L2`          | 8     | 1.2.183 |
+| `AKEYCODE_BUTTON_R2`          | 9     | 1.2.183 |
+| `AKEYCODE_DPAD_CENTER`        | 10    | 1.2.183 |
+| `AKEYCODE_DPAD_DOWN`          | 11    | 1.2.183 |
+| `AKEYCODE_DPAD_LEFT`          | 12    | 1.2.183 |
+| `AKEYCODE_DPAD_RIGHT`         | 13    | 1.2.183 |
+| `AKEYCODE_DPAD_UP`            | 14    | 1.2.183 |
+| `AKEYCODE_BUTTON_START`       | 15    | 1.2.183 |
+| `AKEYCODE_BUTTON_SELECT`      | 16    | 1.2.183 |
+| `AKEYCODE_BUTTON_THUMBL`      | 17    | 1.2.183 |
+| `AKEYCODE_BUTTON_THUMBR`      | 18    | 1.2.183 |
+| `AKEYCODE_BUTTON_MODE`        | 19    | 1.2.183 |
+| `AKEYCODE_BUTTON_1`           | 20    | 1.2.186 |
+| `AKEYCODE_BUTTON_2`           | 21    | 1.2.186 |
+| `AKEYCODE_BUTTON_3`           | 22    | 1.2.186 |
+| `AKEYCODE_BUTTON_4`           | 23    | 1.2.186 |
+| `AKEYCODE_BUTTON_5`           | 24    | 1.2.186 |
+| `AKEYCODE_BUTTON_6`           | 25    | 1.2.186 |
+| `AKEYCODE_BUTTON_7`           | 26    | 1.2.186 |
+| `AKEYCODE_BUTTON_8`           | 27    | 1.2.186 |
+| `AKEYCODE_BUTTON_9`           | 28    | 1.2.186 |
+| `AKEYCODE_BUTTON_10`          | 29    | 1.2.186 |
+| `AKEYCODE_BUTTON_11`          | 30    | 1.2.186 |
+| `AKEYCODE_BUTTON_12`          | 31    | 1.2.186 |
+| `AKEYCODE_BUTTON_13`          | 32    | 1.2.186 |
+| `AKEYCODE_BUTTON_14`          | 33    | 1.2.186 |
+| `AKEYCODE_BUTTON_15`          | 34    | 1.2.186 |
+| `AKEYCODE_BUTTON_16`          | 35    | 1.2.186 |
+
+([Android `KeyEvent` definitions](https://developer.android.com/ndk/reference/group/input#group___input_1gafccd240f973cf154952fb917c9209719))
 
 | Motion event to axis index  | Index |
 |-----------------------------|-------|
-| AMOTION_EVENT_AXIS_X        | 0     |
-| AMOTION_EVENT_AXIS_Y        | 1     |
-| AMOTION_EVENT_AXIS_Z        | 2     |
-| AMOTION_EVENT_AXIS_RZ       | 3     |
-| AMOTION_EVENT_AXIS_LTRIGGER | 4     |
-| AMOTION_EVENT_AXIS_RTRIGGER | 5     |
-| AMOTION_EVENT_AXIS_HAT_X    | 6     |
-| AMOTION_EVENT_AXIS_HAT_Y    | 7     |
-
-([Android MotionEvent definitions](https://developer.android.com/ndk/reference/group/input#group___input_1ga157d5577a5b2f5986037d0d09c7dc77d))
+| `AMOTION_EVENT_AXIS_X`        | 0     |
+| `AMOTION_EVENT_AXIS_Y`        | 1     |
+| `AMOTION_EVENT_AXIS_Z`        | 2     |
+| `AMOTION_EVENT_AXIS_RZ`       | 3     |
+| `AMOTION_EVENT_AXIS_LTRIGGER` | 4     |
+| `AMOTION_EVENT_AXIS_RTRIGGER` | 5     |
+| `AMOTION_EVENT_AXIS_HAT_X`    | 6     |
+| `AMOTION_EVENT_AXIS_HAT_Y`    | 7     |
+
+([Android `MotionEvent` definitions](https://developer.android.com/ndk/reference/group/input#group___input_1ga157d5577a5b2f5986037d0d09c7dc77d))
 
 Use this lookup table in combination with a gamepad test app from the Google Play Store to figure out which key event each button on your gamepad is mapped to.

+ 3 - 3
docs/en/manuals/libraries.md

@@ -15,9 +15,9 @@ Libraries are useful for the following purposes:
 
 ## Setting up library sharing
 
-Suppose you want to build a library containing shared sprites and tile sources. You start by [setting up a new project](/manuals/project-setup/). Decide what folders you want to share from the project and add the names of those folders to the *include_dirs* property in the Project settings. If you want to list more than one folder, separate the names with spaces:
+Suppose you want to build a library containing shared sprites and tile sources. You start by [setting up a new project](/manuals/project-setup/). Decide what folders you want to share from the project and add the names of those folders to the *`include_dirs`* property in the Project settings. If you want to list more than one folder, separate the names with spaces:
 
-![Include dirs](images/libraries/libraries_include_dirs.png)
+![Include directories](images/libraries/libraries_include_dirs.png)
 
 Before we can add this library to another project we need a way to locate the library.
 
@@ -109,6 +109,6 @@ Library sharing only includes files that are located under the shared folder(s).
 
 ## Name collisions
 
-Since you can list several project URLs in the *dependencies* project setting you might encounter a name collision. This happens if two or more of the dependent projects share a folder with the same name in the *include_dirs* project setting.
+Since you can list several project URLs in the *dependencies* project setting you might encounter a name collision. This happens if two or more of the dependent projects share a folder with the same name in the *`include_dirs`* project setting.
 
 Defold resolves name collisions by simply ignoring all but the last reference to folders of the same name in the order the project URLs are specified in the *dependencies* list. For instance. If you list 3 library project URLs in the dependencies and all of them share a folder named *items*, only one *items* folder will show up---the one belonging to the project that is last in the URL list.

+ 3 - 3
docs/en/manuals/live-update.md

@@ -27,9 +27,9 @@ Suppose we are making a game containing large, high resolution image resources.
 
 ![Mona Lisa collection](images/live-update/mona-lisa.png)
 
-To have the engine load such a collection dynamically, we can simply add a collection proxy component and point it to *monalisa.collection*. Now the game can choose when to load the content in the collection from storage into memory by sending a `load` message to the collection proxy. However, we want to go further and control the loading of the resources contained in the collection ourselves.
+To have the engine load such a collection dynamically, we can simply add a collection proxy component and point it to *`monalisa.collection`*. Now the game can choose when to load the content in the collection from storage into memory by sending a `load` message to the collection proxy. However, we want to go further and control the loading of the resources contained in the collection ourselves.
 
-This is done by simply checking the *Exclude* checkbox in the collection proxy properties, telling the bundler to leave any content in *monalisa.collection* out when creating an application bundle.
+This is done by simply checking the *Exclude* checkbox in the collection proxy properties, telling Defold to leave any content in *`monalisa.collection`* out when creating an application bundle.
 
 ::: important
 Any resources referenced by the base game package, will not be excluded.
@@ -39,7 +39,7 @@ Any resources referenced by the base game package, will not be excluded.
 
 ## Live update settings
 
-When the bundler creates an application bundle it needs to store any excluded resources somewhere. The project settings for Live update govern the location for those resources. The settings are found under <kbd>Project ▸ Live update Settings...</kbd>. This will create a settings file if none exists. In *game.project*, select which live-update settings file to use when bundling. This allows for using different live-update settings for different environments, for example for live, QA, dev etc.
+When Defold creates an application bundle it needs to store any excluded resources somewhere. The project settings for Live update govern the location for those resources. The settings are found under <kbd>Project ▸ Live update Settings...</kbd>. This will create a settings file if none exists. In *game.project*, select which live-update settings file to use when bundling. This allows for using different live-update settings for different environments, for example for live, QA, dev etc.
 
 ![Live update settings](images/live-update/05-liveupdate-settings-zip.png)
 

+ 2 - 2
docs/en/manuals/lua.md

@@ -144,7 +144,7 @@ string
   | `\'`     | single quote   |
   | `\[`     | left square bracket    |
   | `\]`     | right square bracket   |
-  | `\ddd`   | character denoted by its numeric value where ddd is a sequence of up to three _decimal_ digits |
+  | `\ddd`   | character denoted by its numeric value where `ddd` is a sequence of up to three _decimal_ digits |
 
   ```lua
   my_string = "hello"
@@ -626,7 +626,7 @@ print(collectgarbage("count") * 1024)       -- 88611
 print(collectgarbage("count") * 1024)       -- 88633. 22 bytes allocated
 ```
 
-So a `vector3` weighs in at 70-22=48 bytes. That is not much, but if you create _one_ each frame in a 60 FPS game it's suddenly 2.8 kB of garbage per second. With 360 script components that each create one `vector3` every frame we're looking at 1 MB of garbage generated per second. The numbers can add upp very quickly. When the Lua runtime collects garbage it may eat up many precious milliseconds---especially on mobile platforms.
+So a `vector3` weighs in at 70-22=48 bytes. That is not much, but if you create _one_ each frame in a 60 FPS game it's suddenly 2.8 kB of garbage per second. With 360 script components that each create one `vector3` every frame we're looking at 1 MB of garbage generated per second. The numbers can add up very quickly. When the Lua runtime collects garbage it may eat up many precious milliseconds---especially on mobile platforms.
 
 One way to avoid allocations is to create a `vector3` and then keep working with the same object. For instance, to reset a `vector3` we can use the following construct:
 

+ 3 - 3
docs/en/manuals/macos.md

@@ -13,9 +13,9 @@ macOS specific application configuration is done from the [macOS section](/manua
 
 ## Application icon
 
-The application icon used for a macOS game must be in the .icns format. You can easily create a .icns file from a set of .png files collected as an iconset. Follow the [official instructions for creating a .icns file](https://developer.apple.com/library/archive/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html). Brief summary of the steps involved are:
+The application icon used for a macOS game must be in the .`icns` format. You can easily create a `.icns` file from a set of .png files collected as an iconset. Follow the [official instructions for creating a `.icns` file](https://developer.apple.com/library/archive/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html). Brief summary of the steps involved are:
 
-* Create an iconset folder, eg `game.iconset`
+* Create an iconset folder, e.g. `game.iconset`
 * Copy icon files to the created folder:
 
     * `icon_16x16.png`
@@ -29,7 +29,7 @@ The application icon used for a macOS game must be in the .icns format. You can
     * `icon_512x512.png`
     * `[email protected]`
 
-* Convert the .iconset folder to a .icns file using the `iconutil` command line tool:
+* Convert the `.iconset` folder to a .icns file using the `iconutil` command line tool:
 
 ```
 iconutil -c icns -o game.icns game.iconset

+ 10 - 10
docs/en/manuals/material.md

@@ -180,7 +180,7 @@ attribute mediump mat4 mtx_normal;
 attribute mediump vec4 instance_color;
 ```
 
-Note that the mtx_world and mtx_normal will be configured to use the step function `Instance` by default. This can be changed in the material editor by adding an entry for them and setting the `Step function` to `Vertex`, which will make the attribute be repeated per vertex instead of per instance.
+Note that the `mtx_world` and `mtx_normal` will be configured to use the step function `Instance` by default. This can be changed in the material editor by adding an entry for them and setting the `Step function` to `Vertex`, which will make the attribute be repeated per vertex instead of per instance.
 
 To verify that the instancing works in this case, you can look at the web profiler. In this case, since the only thing that changes between the instances of the box is the per-instance attributes, it can be rendered with a single draw call:
 
@@ -194,28 +194,28 @@ On OpenGL based graphics adapters, instancing requires at least OpenGL 3.1 for d
 
 Shader constants, or "uniforms" are values that are passed from the engine to vertex and fragment shader programs. To use a constant you define it in the material file as either a *Vertex Constant* property or a *Fragment Constant* property. Corresponding `uniform` variables need to be defined in the shader program. The following constants can be set in a material:
 
-CONSTANT_TYPE_WORLD
+`CONSTANT_TYPE_WORLD`
 : The world matrix. Use to transform vertices into world space. For some component types, the vertices are already in world space when they arrive to the vertex program (due to batching). In those cases multiplying with the world matrix in the shader will yield the wrong results.
 
-CONSTANT_TYPE_VIEW
+`CONSTANT_TYPE_VIEW`
 : The view matrix. Use to transform vertices to view (camera) space.
 
-CONSTANT_TYPE_PROJECTION
+`CONSTANT_TYPE_PROJECTION`
 : The projection matrix. Use to transform vertices to screen space.
 
-CONSTANT_TYPE_VIEWPROJ
+`CONSTANT_TYPE_VIEWPROJ`
 : A matrix with the view and projection matrices already multiplied.
 
-CONSTANT_TYPE_WORLDVIEW
+`CONSTANT_TYPE_WORLDVIEW`
 : A matrix with the world and view matrices already multiplied.
 
-CONSTANT_TYPE_WORLDVIEWPROJ
+`CONSTANT_TYPE_WORLDVIEWPROJ`
 : A matrix with the world, view and projection matrices already multiplied.
 
-CONSTANT_TYPE_NORMAL
+`CONSTANT_TYPE_NORMAL`
 : A matrix to compute normal orientation. The world transform might include non-uniform scaling, which breaks the orthogonality of the combined world-view transform. The normal matrix is used to avoid issues with the direction when transforming normals. (The normal matrix is the transpose inverse of the world-view matrix).
 
-CONSTANT_TYPE_USER
+`CONSTANT_TYPE_USER`
 : A vector4 constant that you can use for any custom data you want to pass into your shader programs. You can set the initial value of the constant in the constant definition, but it is mutable through the functions [go.set()](/ref/stable/go/#go.set) / [go.animate()](/ref/stable/go/#go.animate). You can also retrieve the value with [go.get()](/ref/stable/go/#go.get). Changing a material constant of a single component instance [breaks render batching and will result in additional draw calls](/manuals/render/#draw-calls-and-batching).
 
 Example:
@@ -226,7 +226,7 @@ go.set("#sprite", "tint", vmath.vector4(1,0,0,1))
 go.animate("#sprite", "tint", go.PLAYBACK_LOOP_PINGPONG, vmath.vector4(1,0,0,1), go.EASING_LINEAR, 2)
 ```
 
-CONSTANT_TYPE_USER_MATRIX4
+`CONSTANT_TYPE_USER_MATRIX4`
 : A matrix4 constant that you can use for any custom data you want to pass into your shader programs. You can set the initial value of the constant in the constant definition, but it is mutable through the functions [go.set()](/ref/stable/go/#go.set) / [go.animate()](/ref/stable/go/#go.animate). You can also retrieve the value with [go.get()](/ref/stable/go/#go.get). Changing a material constant of a single component instance [breaks render batching and will result in additional draw calls](/manuals/render/#draw-calls-and-batching).
 
 Example:

+ 1 - 1
docs/en/manuals/optimization-size.md

@@ -54,7 +54,7 @@ You have several options when it comes to optimizing the textures used by your g
 [This forum posts](https://forum.defold.com/t/texture-management-in-defold/8921/17?u=britzl) suggests several tips on how to resize multiple images using scripts or third party software.
 :::
 
-* Max texture size on HTML5: https://webglstats.com/webgl/parameter/MAX_TEXTURE_SIZE
+* Max texture size on HTML5 reported to the [Web3D Survey project](https://web3dsurvey.com/webgl/parameters/MAX_TEXTURE_SIZE)
 * Max texture size on iOS:
   * iPad: 2048x2048
   * iPhone 4: 2048x2048

+ 1 - 1
docs/en/manuals/optimization-speed.md

@@ -15,7 +15,7 @@ Don't poll for changes if you can get a callback. Don't manually animate somethi
 ### Reduce garbage collection
 If you create loads of short lived objects such as Lua tables every frame this will eventually trigger the garbage collector of Lua. When this happens it can manifest itself as small hitches/spikes in frame time. Re-use tables where you can and really try to avoid creating Lua tables inside loops and similar constructs if possible.
 
-### Pre-hash message and action ids
+### Prehash message and action ids
 If you do a lot of message handling or have many input events to deal with it is recommended to prehash the strings. Consider this piece of code:
 
 ```

+ 1 - 1
docs/en/manuals/physics-joints.md

@@ -12,7 +12,7 @@ Defold supports joints for 2D physics. A joint connects two collision objects us
 * **Weld (physics.JOINT_TYPE_WELD)** - A weld joint attempts to constrain all relative movement between two collision objects. The weld joint can be made soft like a spring with a frequency and damping ratio. In Box2D referred to as a [Weld joint](https://box2d.org/documentation/group__weld__joint.html#details).
 * **Spring (physics.JOINT_TYPE_SPRING)** - A spring joint keeps two collision objects at a constant distance from each other. The spring joint can be made soft like a spring with a frequency and damping ratio. In Box2D referred to as a [Distance joint](https://box2d.org/documentation/group__distance__joint.html#details).
 * **Slider (physics.JOINT_TYPE_SLIDER)** - A slider joint allows for relative translation of two collision objects along a specified axis and prevents relative rotation. In Box2D referred to as a [Prismatic joint](https://box2d.org/documentation/group__prismatic__joint.html#details).
-* **Wheel (physics.JOINT_TYPE_WHEEL)** - A wheel joint restricts a point on bodyB to a line on bodyA. The wheel joint also provides a suspension spring. In Box2D referred to as a  [Wheel joint](https://box2d.org/documentation/group__wheel__joint.html#details).
+* **Wheel (physics.JOINT_TYPE_WHEEL)** - A wheel joint restricts a point on `bodyB` to a line on `bodyA`. The wheel joint also provides a suspension spring. In Box2D referred to as a  [Wheel joint](https://box2d.org/documentation/group__wheel__joint.html#details).
 
 ## Creating joints
 

+ 7 - 7
docs/en/manuals/physics-objects.md

@@ -55,9 +55,9 @@ Friction
 
   The friction strength is proportional to the normal force (this is called Coulomb friction). When the friction force is computed between two shapes (`A` and `B`), the friction values of both objects are combined by the geometric mean:
 
-  $$
-  F = sqrt( F_A * F_B )
-  $$
+```math
+F = sqrt( F_A * F_B )
+```
 
   This means that if one of the objects has zero friction then the contact between them will have zero friction.
 
@@ -66,14 +66,14 @@ Restitution
 
   Restitution values between two shapes (`A` and `B`) are combined using the following formula:
 
-  $$
-  R = max( R_A, R_B )
-  $$
+```math
+R = max( R_A, R_B )
+```
 
   When a shape develops multiple contacts, restitution is simulated approximately because Box2D uses an iterative solver. Box2D also uses inelastic collisions when the collision velocity is small to prevent bounce-jitter
 
 Linear damping
-: Linear damping reduces the linear velocity of the body. It is different from friction, which only occurs during contact, and can be used to give objects a floaty appearance, like they are moving through something thicker than air. Valid values are between 0 and 1.
+: Linear damping reduces the linear velocity of the body. It is different from friction, which only occurs during contact, and can be used to give objects a floating appearance, like they are moving through something thicker than air. Valid values are between 0 and 1.
 
   Box2D approximates damping for stability and performance. At small values, the damping effect is independent of the time step while at larger damping values, the damping effect varies with the time step. If you run your game with a fixed time step, this never becomes an issue.
 

+ 6 - 6
docs/en/manuals/project-settings.md

@@ -70,7 +70,7 @@ When checked, the engine will write a log file. If running more than one instanc
   * Others: Application root
 3. The application support path
   * macOS/iOS: `NSApplicationSupportDirectory`
-  * Windows: `CSIDL_APPDATA` (eg C:\Users\<username>\AppData\Roaming)
+  * Windows: `CSIDL_APPDATA` (eg `C:\Users\<username>\AppData\Roaming`)
   * Android: `Context.getFilesDir()`
   * Linux: `HOME` environment variable
 
@@ -473,8 +473,8 @@ Image file (.png) to use as application icon at given width and height dimension
 #### Launch Screen
 Storyboard file (.storyboard). Learn more about how to create one in the [iOS manual](/manuals/ios/#creating-a-storyboard).
 
-#### Pre Rendered Icons
-(iOS 6 and earlier) Check if your icons are pre-rendered. If this is unchecked the icons will get a glossy highlight added automatically.
+#### Prerendered Icons
+(iOS 6 and earlier) Check if your icons are prerendered. If this is unchecked the icons will get a glossy highlight added automatically.
 
 #### Bundle Identifier
 The bundle identifier lets iOS recognize any updates to your app. Your bundle ID must be registered with Apple and be unique to your app. You cannot use the same identifier for both iOS and macOS apps. Must consist of two or more segments separated by a dot. Each segment must start with a letter. Each segment must only consist of alphanumeric letters, the underscore or hyphen (-) character (see [`CFBundleIdentifier`](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-130430))
@@ -492,7 +492,7 @@ If specified, use this *`info.plist`* file when bundling your app.
 The Apple Privacy Manifest for the application. The field will default to `/builtins/manifests/ios/PrivacyInfo.xcprivacy`.
 
 #### Custom Entitlements
-If specified, the entitlements in the supplied provisioning profile (.entitlements, .xcent, .plist) will be merged with the entitlements from the provisioning profile supplied when bundling the application.
+If specified, the entitlements in the supplied provisioning profile (`.entitlements`, `.xcent`, `.plist`) will be merged with the entitlements from the provisioning profile supplied when bundling the application.
 
 #### Override Entitlements
 If checked the Custom Entitlements will replace the ones in the provisioning profile when bundling. Must be used in combination with the Custom Entitlements setting above.
@@ -525,7 +525,7 @@ An integer value indicating the version of the app. Increase the value for each
 #### Package
 Package identifier. Must consist of two or more segments separated by a dot. Each segment must start with a letter. Each segment must only consist of alphanumeric letters or the underscore character.
 
-#### Gcm Sender Id
+#### GCM Sender Id
 Google Cloud Messaging Sender Id. Set this to the string assigned by Google to enable push notifications.
 
 #### Manifest
@@ -566,7 +566,7 @@ The bundle identifier lets macOS recognize updates to your app. Your bundle ID m
 The language used if the application doesn't have user's preferred language in `Localizations` list (see [`CFBundleDevelopmentRegion`](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-130430)). Use the two-letter ISO 639-1 standard if preferred language is available there or the three-letter ISO 639-2.
 
 #### Localizations
-This field contains comma-separated strings identifying the language name or ISO language designator of the supported localizations (see [CFBundleLocalizations](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-109552)).
+This field contains comma-separated strings identifying the language name or ISO language designator of the supported localizations (see [`CFBundleLocalizations`](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-109552)).
 
 ---
 

+ 6 - 6
docs/en/manuals/script.md

@@ -32,7 +32,7 @@ Defold executes Lua scripts as part of the engine lifecycle and exposes the life
 `self` is a userdata object that acts like a Lua table but you can't iterate over it with `pairs()` or `ipairs()` and you can't print it using `pprint()`.
 :::
 
-#### init(self)
+#### `init(self)`
 Called when the component is initialized.
 
 ```lua
@@ -43,7 +43,7 @@ function init(self)
 end
 ```
 
-#### final(self)
+#### `final(self)`
 Called when the component is deleted. This is useful for cleaning up purposes, for instance if you have spawned game objects that should be deleted when the component is deleted.
 
 ```lua
@@ -54,7 +54,7 @@ function final(self)
 end
 ```
 
-#### update(self, dt)
+#### `update(self, dt)`
 Called once each frame. `dt` contains the delta time since the last frame.
 
 ```lua
@@ -63,7 +63,7 @@ function update(self, dt)
 end
 ```
 
-#### fixed_update(self, dt)
+#### `fixed_update(self, dt)`
 Frame-rate independent update. `dt` contains the delta time since the last update. This function is called when `engine.fixed_update_frequency` is enabled (!= 0). Useful when you wish to manipulate physics objects at regular intervals to achieve a stable physics simulation when `physics.use_fixed_timestep` is enabled in *game.project*.
 
 ```lua
@@ -83,7 +83,7 @@ function on_message(self, message_id, message, sender)
 end
 ```
 
-#### on_input(self, action_id, action)
+#### `on_input(self, action_id, action)`
 If this component has acquired input focus (see [`acquire_input_focus`](/ref/go/#acquire_input_focus)) the engine calls this function when input is registered. Learn [more about input handling](/manuals/input).
 
 ```lua
@@ -94,7 +94,7 @@ function on_input(self, action_id, action)
 end
 ```
 
-#### on_reload(self)
+#### `on_reload(self)`
 This function is called when the script is reloaded through the hot reload editor function (<kbd>Edit ▸ Reload Resource</kbd>). It is very useful for debugging, testing and tweaking purposes. Learn [more about hot-reload](/manuals/hot-reload).
 
 ```lua

+ 2 - 2
docs/en/manuals/shader.md

@@ -13,7 +13,7 @@ This manual describes how Defold's rendering pipeline interfaces with GPU shader
 * See the [Material manual](/manuals/material) for details on materials.
 * See the [Compute manual](/manuals/compute) for details on compute programs.
 
-Specifications of OpenGL ES 2.0 (OpenGL for Embedded Systems) and OpenGL ES Shading Language can be found at https://www.khronos.org/registry/gles/
+Specifications of OpenGL ES 2.0 (OpenGL for Embedded Systems) and OpenGL ES Shading Language can be found at [Kronos OpenGL Registry](https://www.khronos.org/registry/gles/).
 
 Observe that on desktop computers it is possible to write shaders using features not available on OpenGL ES 2.0. Your graphics card driver may happily compile and run shader code that will not work on mobile devices.
 
@@ -180,7 +180,7 @@ All members in the uniform block is exposed to materials and components as indiv
 
 ### Built-in Variables
 
-In fragment shaders, gl_FragColor is deprecated starting with version 140. Use `out` instead:
+In fragment shaders, `gl_FragColor` is deprecated starting with version 140. Use `out` instead:
 
 ```glsl
 // instead of:

+ 2 - 2
docs/en/manuals/sound.md

@@ -104,9 +104,9 @@ You should not write code that relies on the string value of a sound group since
 
 All values are linear between 0 and 1.0 (0 dB). To convert to decibel, simply use the standard formula:
 
-$$
+```math
 db = 20 \times \log \left( gain \right)
-$$
+```
 
 ```lua
 for i, group_hash in ipairs(sound.get_groups()) do

+ 1 - 1
docs/en/manuals/spinemodel.md

@@ -1,6 +1,6 @@
 ---
 title: Spine model components in Defold
-brief: This manual explains how to create SpineModel components in Defold.
+brief: This manual explains how to create Spine model components in Defold.
 ---
 
 [This manual has moved](/extension-spine)

+ 1 - 1
docs/en/manuals/sprite.md

@@ -19,7 +19,7 @@ Apart from the properties *Id*, *Position* and *Rotation* the following componen
 : If the shader has a single sampler, this field is named `Image`. Otherwise, each slot is named after the texture sampler in the material.
 Each slot specifies the atlas or tilesource resource to use for the sprite on that texture sampler.
 
-*DefaultAnimation*
+*Default Animation*
 : The animation to use for the sprite. The animation information is taken from the first atlas or tilesource.
 
 *Material*

+ 2 - 2
docs/en/manuals/test.md

@@ -19,9 +19,9 @@ Keystrokes, like the combination <kbd>⌘ + T</kbd> are written surrounded by `<
 
 For subscript and superscript you type `~subscript~` and `^superscript^`. For example: <code>X~N~ = y^N^ + O~N~</code> where `N` is a variable. For clarity, maths formulas can be put inside `<code>` tags, or even better---use the LaTeX math extension. Inline math is written surrounded by \$ signs. For instance, $\int\frac {d\theta}{1+\theta^2} = \tan^{-1} \theta+ C$. Separate math blocks are delimited by $$ pairs:
 
-$$
+```math
 \int\frac {d\theta}{1+\theta^2} = \tan^{-1} \theta+ C
-$$
+```
 
 For things that the user will type, like function names, message names, string values and similar, use the `code marker`. For instance, `go.some_function()` or a `variable` name, a `message_name` or a `"string value"`. For larger chunks of code or configuration text, use the code fences with language specification to enable syntax highlighting:
 

+ 1 - 1
docs/en/manuals/tilesource.md

@@ -50,7 +50,7 @@ Collision
 
 ## Tile source flip-book animations
 
-To define an animation in a tile source the animation frame tiles must lie next to each other in a sequence left to right. The sequence can wrap from one row to the next. All newly created tile sources have a default animation named "anim". You can add new animations by <kbd>right clicking</kbd> the tile source root in the *Outline* and selecting <kbd>Add ▸ Animation</kbd>.
+To define an animation in a tile source the animation frame tiles must lie next to each other in a sequence left to right. The sequence can wrap from one row to the next. All newly created tile sources have a default animation named "`anim`". You can add new animations by <kbd>right clicking</kbd> the tile source root in the *Outline* and selecting <kbd>Add ▸ Animation</kbd>.
 
 Selecting an animation displays the animation *Properties*.
 

+ 6 - 6
docs/en/tutorials/grading.md

@@ -119,8 +119,8 @@ Create a quadratic plane mesh in Blender (or any other 3D modelling program). Se
 ![game.project](images/grading/quad_blender.png)
 
 1. Export the model as a Collada file called *`quad.dae`* and drag it into your Defold project.
-2. Open *`main.collection`* and create a new game object called "grade".
-3. Add a Model component to the "grade" game object.
+2. Open *`main.collection`* and create a new game object called "`grade`".
+3. Add a Model component to the "`grade`" game object.
 3. Set the *Mesh* property of the model component to the *`quad.dae`* file.
 
 Leave the game object unscaled at origin. Later, when we render the quad we will project it so it fills the whole screen. But first we need a material and shader programs for the quad:
@@ -128,13 +128,13 @@ Leave the game object unscaled at origin. Later, when we render the quad we will
 1. Create a new material and call it *`grade.material`* by right clicking *main* in the *Asset* view and selecting <kbd>New ▸ Material</kbd>.
 2. Create a vertex shader program called *`grade.vp`* and a fragment shader program called *`grade.fp`* by right clicking *main* in the *Asset* view and selecting <kbd>New ▸ Vertex program</kbd> and <kbd>New ▸ Fragment program</kbd>.
 3. Open *grade.material* and set the *Vertex program* and *Fragment program* properties to the new shader program files.
-4. Add a *Vertex constant* named "view_proj" of type `CONSTANT_TYPE_VIEWPROJ`. This is the view and projection matrix used in the vertex program for the quad vertices.
-5. Add a *Sampler* called "original". This will be used to sample pixels from the off-screen render target color buffer.
-6. Add a *Tag* called "grade". We will make a new *render predicate* in the render script matching this tag to draw the quad.
+4. Add a *Vertex constant* named "`view_proj`" of type `CONSTANT_TYPE_VIEWPROJ`. This is the view and projection matrix used in the vertex program for the quad vertices.
+5. Add a *Sampler* called "`original`". This will be used to sample pixels from the off-screen render target color buffer.
+6. Add a *Tag* called "`grade`". We will make a new *render predicate* in the render script matching this tag to draw the quad.
 
    ![grade.material](images/grading/grade_material.png)
 
-7. Open *`main.collection`*, select the model component in game object "grade" and set its *Material* property to "`/main/grade.material`".
+7. Open *`main.collection`*, select the model component in game object "`grade`" and set its *Material* property to "`/main/grade.material`".
 
    ![model properties](images/grading/model_properties.png)
 

+ 1 - 1
docs/ko/manuals/live-update.md

@@ -20,7 +20,7 @@ title: Defold manual
 
 이러한 컬렉션을 동적으로 로드하려면, 간단하게는 컬렉션 프록시 컴포넌트를 추가하고 "monalisa.collection"를 지정하면 됩니다. 이제 게임은 "load" 메세지를 컬렉션 프록시로 보내서 스토리지에서 메모리로 컬렉션에 있는 컨텐츠를 언제 로드할지 선택할 수 있습니다. 하지만 우리는 한 발 더 나아가서 컬렉션에 포함된 리소스의 로딩을 제어하려고 합니다.
 
-이 작업은 컬렉션 프록시 프로퍼티의 **Exclude** 체크박스를 체크하면, 어플리케이션 번들을 생성할때 번들러(bundler)에게  "monalisa.collection"의 모든 컨텐츠를 남겨 달라고 말해 줌으로써 수행됩니다.
+이 작업은 컬렉션 프록시 프로퍼티의 **Exclude** 체크박스를 체크하면, 어플리케이션 번들을 생성할때 번들러(bundler)에게  "`monalisa.collection`"의 모든 컨텐츠를 남겨 달라고 말해 줌으로써 수행됩니다.
 
 ![Collection proxy excluded](images/live-update/proxy-excluded.png)
 

+ 1 - 1
docs/pl/manuals/flash.md

@@ -257,7 +257,7 @@ final
 :   Wywoływana przez skrypt w momencie zniszczenia i usunięcia komponentu.
 
 update
-:   Wywoływana w każdej ramce (frame). Odpowiednik funckji enterFrame we Flashu.
+:   Wywoływana w każdej ramce (frame). Odpowiednik funckji `enterFrame` we Flashu.
 
 fixed_update
 :   Wywoływana co stałą wartość czasu (zależną od FPS).

+ 2 - 2
docs/pl/manuals/input-gamepads.md

@@ -229,7 +229,7 @@ Podczas dodawania dodatkowych przypisań gamepadów na platformie Android, może
 | AKEYCODE_BUTTON_15          | 34     | 1.2.186 |
 | AKEYCODE_BUTTON_16          | 35     | 1.2.186 |
 
-([Definicje zdarzeń Android KeyEvent](https://developer.android.com/ndk/reference/group/input#group___input_1gafccd240f973cf154952fb917c9209719))
+([Definicje zdarzeń Android `KeyEvent`](https://developer.android.com/ndk/reference/group/input#group___input_1gafccd240f973cf154952fb917c9209719))
 
 | Ruch - indeks przycisku     | Indeks |
 |-----------------------------|--------|
@@ -242,6 +242,6 @@ Podczas dodawania dodatkowych przypisań gamepadów na platformie Android, może
 | AMOTION_EVENT_AXIS_HAT_X    | 6      |
 | AMOTION_EVENT_AXIS_HAT_Y    | 7      |
 
-([Definicje Android MotionEvent](https://developer.android.com/ndk/reference/group/input#group___input_1ga157d5577a5b2f5986037d0d09c7dc77d))
+([Definicje Android `MotionEvent`](https://developer.android.com/ndk/reference/group/input#group___input_1ga157d5577a5b2f5986037d0d09c7dc77d))
 
 Użyj tej tabelu w kombinacji z aplikacją testową dla gamepadów z Google Play Store, żeby zobaczyć jakie przyciski wywołują jakie wydarzenia na Twoim gamepadzie.

+ 1 - 1
docs/pl/manuals/live-update.md

@@ -27,7 +27,7 @@ Aby silnik mógł dynamicznie ładować taką kolekcję, możemy po prostu doda
 
 Kiedy kompilator tworzy pakiet aplikacji, musi gdzieś przechować te wykluczone zasoby. Ustawienia projektu dla Aktualizacji na żywo (Live update settings) określają lokalizację tych zasobów. Ustawienia te znajdują się w <kbd>Project ▸ Live update Settings...</kbd>. Kliknięcie w tę opcję spowoduje utworzenie pliku ustawień, jeśli jeszcze nie istnieje. W pliku `game.project` wybierz, które ustawienia Aktualizacji na żywo chcesz użyć podczas kompilacji. Dzięki temu można używać różnych ustawień Aktualizacji na żywo w różnych środowiskach, na przykład na żywo, w QA, w trybie deweloperskim itp.
 
-When the bundler creates an application bundle it needs to store any excluded resources somewhere. The project settings for Live update govern the location for those resources. The settings are found under <kbd>Project ▸ Live update Settings...</kbd>. This will create a settings file if none exists. In *game.project*, select which liveupdate settings file to use when bundling. This allows for using different liveupdate settings for different environments, for example for live, QA, dev etc.
+When Defold creates an application bundle it needs to store any excluded resources somewhere. The project settings for Live update govern the location for those resources. The settings are found under <kbd>Project ▸ Live update Settings...</kbd>. This will create a settings file if none exists. In *game.project*, select which liveupdate settings file to use when bundling. This allows for using different liveupdate settings for different environments, for example for live, QA, dev etc.
 
 ![Live update settings](images/live-update/aws-settings.png)
 

+ 6 - 6
docs/pl/manuals/physics-objects.md

@@ -51,9 +51,9 @@ Friction
 
   Siła tarcia jest proporcjonalna do siły normalnej (nazywa się to tarciem Coulomba). Gdy obliczana jest siła tarcia między dwoma kształtami (`A` i `B`), wartości tarcia obu obiektów są łączone za pomocą średniej geometrycznej:
 
-  $$
-  F = sqrt( F_A * F_B )
-  $$
+```math
+F = sqrt( F_A * F_B )
+```
 
   Oznacza to, że jeśli jeden z obiektów ma współczynnik tarcia równy zeru, to kontakt między nimi będzie miał tarcie równe zeru.
 
@@ -62,9 +62,9 @@ Restitution
 
   Wartości restytucji między dwoma kształtami (`A` i `B`) są łączone za pomocą następującej formuły:
 
-  $$
-  R = max( R_A, R_B )
-  $$
+```math
+R = max( R_A, R_B )
+```
 
   Gdy kształt ma wiele kontaktów, restytucja jest przybliżana, ponieważ Box2D (węwnetrznie używany silnik fizyki) używa rozwiązywania iteracyjnego. Box2D stosuje również kolizje anelastyczne, gdy prędkość kolizji jest mała, aby zapobiec drganiom odbicia (bounce-jitter).
 

+ 1 - 1
docs/pl/manuals/project-settings.md

@@ -319,7 +319,7 @@ Identyfikator paczki - pozwala systemowi iOS rozpoznawać Twoją aplikację przy
 Jeśli podany - używany będzie określony plik info.plist podczas budowania paczki aplikacji.
 
 #### Entitlements
-Uprawnienia - jeśli podane, mogą nadpisać domyślne uprawnienia określone w profilach nadzorujących (.entitlements, .xcent, .plist).
+Uprawnienia - jeśli podane, mogą nadpisać domyślne uprawnienia określone w profilach nadzorujących (`.entitlements`, `.xcent`, `.plist`).
 
 #### Default Language
 Domyślny jeżyk aplikacji - używany, jeśli użytkownik nie posiada wybranego preferowanego języka domyślnego w liście `Localizations` (zobacz: [CFBundleDevelopmentRegion](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-130430)). Należy tutaj użyć dwuznakowego symbolu kraju zgodnego ze standardem ISO 639-1, jeśli preferowany język znajduje się w standardzie, w przeciwnym przypadku - trójznakowego symbolu ze standardu ISO 639-2.

+ 2 - 2
docs/pl/manuals/sound.md

@@ -116,9 +116,9 @@ Nie należy pisać kodu, który polega na wartości typu string grupy dźwiękow
 
 Wszystkie wartości są liniowe w zakresie od 0 do 1.0 (0 dB). Aby przeliczyć na decybele, wystarczy użyć standardowej formuły:
 
-$$
+```math
 db = 20 \times \log \left( gain \right)
-$$
+```
 
 ```lua
 for i, group_hash in ipairs(sound.get_groups()) do

+ 1 - 1
docs/ru/manuals/debugging-game-and-system-logs.md

@@ -86,7 +86,7 @@ iOS
 
   ![download container](images/debugging/download_container.png)
 
-  Как только контейнер будет извлечен, он появится в приложении *Finder*. Щелкните по контейнеру правой кнопкой мыши и выберите <kbd>Show Package Content</kbd>. Найдите файл «log.txt», который должен находиться в «AppData/Documents/». 
+  Как только контейнер будет извлечен, он появится в приложении *Finder*. Щелкните по контейнеру правой кнопкой мыши и выберите <kbd>Show Package Content</kbd>. Найдите файл «log.txt», который должен находиться в «`AppData/Documents/`». 
 
 Android
 : Возможность извлечения файла "log.txt" зависит от версии ОС и производителя. Вот краткое и простое пошаговое руководство: [https://stackoverflow.com/a/48077004/129360](https://stackoverflow.com/a/48077004/129360).

+ 4 - 4
docs/ru/manuals/physics-objects.md

@@ -55,9 +55,9 @@ Friction
 
   Сила трения пропорциональна нормальной силе (normal force; это называется кулоновским трением). Когда сила трения вычисляется между двумя формами (`A` и `B`), значения трения обоих объектов комбинируются в геометрическое среднее:
 
-$$
+```math
   F = sqrt( F_A * F_B )
-$$
+```
 
   Это означает, что если один из объектов имеет нулевое трение, то контакт между ними будет иметь нулевое трение.
 
@@ -66,9 +66,9 @@ Restitution
 
   Значения реституции между двумя формами (`A` и `B`) комбинируются по следующей формуле:
 
-$$
+```math
   R = max( R_A, R_B )
-$$
+```
 
   Когда форма имеет множественные контакты, реституция симулируется аппроксимировано, потому что Box2D использует пошаговый решатель. Также Box2D использует неэластичные столкновения когда скорость столкновения мала, чтобы исключить дрожание отскока.
 

+ 1 - 1
docs/ru/manuals/project-settings.md

@@ -332,7 +332,7 @@ Clear color alpha channel, используется рендер скрипто
 Если задано, этот файл info.plist используется при сборке бандла приложения.
 
 #### Custom Entitlements
-If specified, the entitlements in the supplied provisioning profile (.entitlements, .xcent, .plist) will be merged with the entitlements from the provisioning profile supplied when bundling the application.
+If specified, the entitlements in the supplied provisioning profile (`.entitlements`, `.xcent`, `.plist`) will be merged with the entitlements from the provisioning profile supplied when bundling the application.
 
 #### Override Entitlements
 If checked the Custom Entitlements will replace the ones in the provisioning profile when bundling. Must be used in combination with the Custom Entitlements setting above.

+ 2 - 2
docs/ru/manuals/sound.md

@@ -104,9 +104,9 @@ end
 
 Все значения линейны в диапазоне от 0 до 1.0 (0 dB). Для преобразования в децибелы просто используйте стандартную формул:
 
-$$
+```math
 db = 20 \times \log \left( gain \right)
-$$
+```
 
 ```lua
 for i, group_hash in ipairs(sound.get_groups()) do

+ 3 - 3
docs/zh/manuals/debugging-game-and-system-logs.md

@@ -84,7 +84,7 @@ ios-deploy --debug --bundle <path_to_game.app> # 注意: 不是 .ipa 文件
 
 ## 从日志文件中读取日志信息
 
-如果你在 *game.project* 文件里打开了 *Write Log* 项, 所有游戏输出都会被记录到硬盘上, 保存为 "log.txt" 文件. 下面介绍了从设备上获取日志文件的方法:
+如果你在 *game.project* 文件里打开了 *Write Log* 项, 所有游戏输出都会被记录到硬盘上, 保存为 "`log.txt`" 文件. 下面介绍了从设备上获取日志文件的方法:
 
 iOS
 : 把设备连接到安装有 macOS 和 Xcode 的电脑上.
@@ -97,7 +97,7 @@ iOS
 
   ![download container](images/debugging/download_container.png)
 
-  容器被下载解压之后就可以在 *Finder* 中看到了. 右键单击容器选择 <kbd>Show Package Content</kbd>. 找到 "log.txt", 一般位于 "AppData/Documents/".
+  容器被下载解压之后就可以在 *Finder* 中看到了. 右键单击容器选择 <kbd>Show Package Content</kbd>. 找到 "`log.txt`", 一般位于 "`AppData/Documents/`".
 
 Android
-: "log.txt" 的获取取决于操作系统版本和制造商. 这里有一个简单的 [步骤教程](https://stackoverflow.com/a/48077004/129360).
+: "`log.txt`" 的获取取决于操作系统版本和制造商. 这里有一个简单的 [步骤教程](https://stackoverflow.com/a/48077004/129360).

+ 1 - 1
docs/zh/manuals/flash.md

@@ -257,7 +257,7 @@ final
 :   脚本组件析构时调用 (比如游戏对象被删除时).
 
 update
-:   在每一帧调用. 相当于 Flash 的 enterFrame.
+:   在每一帧调用. 相当于 Flash 的 `enterFrame`.
 
 on_message
 :   当脚本组件收到消息时调用.

+ 2 - 2
docs/zh/manuals/input-gamepads.md

@@ -216,7 +216,7 @@ Android 和其他平台一样支持手柄的输入事件. 手柄支持基于 [An
 | AKEYCODE_BUTTON_15          | 34    | 1.2.186 |
 | AKEYCODE_BUTTON_16          | 35    | 1.2.186 |
 
-([Android KeyEvent 定义](https://developer.android.com/ndk/reference/group/input#group___input_1gafccd240f973cf154952fb917c9209719))
+([Android `KeyEvent` 定义](https://developer.android.com/ndk/reference/group/input#group___input_1gafccd240f973cf154952fb917c9209719))
 
 | 摇杆输入  | 事件编号 |
 |-----------------------------|-------|
@@ -229,6 +229,6 @@ Android 和其他平台一样支持手柄的输入事件. 手柄支持基于 [An
 | AMOTION_EVENT_AXIS_HAT_X    | 6     |
 | AMOTION_EVENT_AXIS_HAT_Y    | 7     |
 
-([Android MotionEvent 定义](https://developer.android.com/ndk/reference/group/input#group___input_1ga157d5577a5b2f5986037d0d09c7dc77d))
+([Android `MotionEvent` 定义](https://developer.android.com/ndk/reference/group/input#group___input_1ga157d5577a5b2f5986037d0d09c7dc77d))
 
 为了正确使用手柄事件映射请参考上表以及 Google Play Store 上的手柄映射测试小工具.

+ 4 - 4
docs/zh/manuals/physics-objects.md

@@ -55,9 +55,9 @@ Friction
 
   摩擦力于法方向上的力成正比 (称为库伦摩擦). 计算两个物体 (`A` 和 `B`) 间的摩擦力时, 摩擦系数取两个物体的几何平均值:
 
-  $$
+```math
   F = sqrt( F_A * F_B )
-  $$
+```
 
   也就是说只要有一个物体是0摩擦的, 两个物体之间就不会有摩擦力.
 
@@ -66,9 +66,9 @@ Restitution
 
   两个物体 (`A` 和 `B`) 之间的弹性计算基于以下公式:
 
-  $$
+```math
   R = max( R_A, R_B )
-  $$
+```
 
   当一个形状发生多处碰撞时, 弹性模拟并不精确因为 Box2D 使用的是迭代解算器. Box2D 在碰撞相对速度很小时也使用非弹性碰撞代替, 以防止反弹抖动.
 

+ 2 - 2
docs/zh/manuals/project-settings.md

@@ -431,10 +431,10 @@ Storyboard 文件 (.storyboard). 其创建方法详情请见 [iOS 教程](/manua
 该应用的 Apple 隐私清单. 默认指向 `/builtins/manifests/ios/PrivacyInfo.xcprivacy`.
 
 #### Custom Entitlements
-如果设置了, 则打包应用会把这里的配置与档案文件 (.entitlements, .xcent, .plist) 里面设置的权限相混合.
+如果设置了, 则打包应用会把这里的配置与档案文件 (`.entitlements`, `.xcent`, `.plist`) 里面设置的权限相混合.
 
 #### Override Entitlements
-如果设置了, 则会覆盖档案文件 (.entitlements, .xcent, .plist) 里面设置的权限. 必须与上面的 Custom Entitlements 配置项一起使用.
+如果设置了, 则会覆盖档案文件 (`.entitlements`, `.xcent`, `.plist`) 里面设置的权限. 必须与上面的 Custom Entitlements 配置项一起使用.
 
 #### Default Language
 如果用户没有指定 `Localizations` 列表里的语言, 则使用此处设置的语言 (参见 [`CFBundleDevelopmentRegion`](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-130430)).

+ 1 - 1
docs/zh/manuals/sprite.md

@@ -19,7 +19,7 @@ Sprite 组件使用 [图集](/manuals/atlas) 或者 [瓷砖图源](/manuals/tile
 : 如果着色器有单个采样器, 该属性叫做 `Image`. 否则, 每个槽都以材质中的纹理采样器命名.
   每个槽是指该 sprite 用于纹理采样器的图集或者瓷砖图源资源.
 
-*DefaultAnimation*
+*Default Animation*
 : sprite的默认动画. 动画信息取自第一个图集或者瓷砖图源.
 
 *Material*

+ 2 - 2
docs/zh/manuals/test.md

@@ -19,9 +19,9 @@ Keystrokes, like the combination <kbd>⌘ + T</kbd> are written surrounded by `<
 
 For subscript and superscript you type `~subscript~` and `^superscript^`. For example: <code>X~N~ = y^N^ + O~N~</code> where `N` is a variable. For clarity, maths formulas can be put inside `<code>` tags, or even better---use the LaTeX math extension. Inline math is written surrounded by \$ signs. For instance, $\int\frac {d\theta}{1+\theta^2} = \tan^{-1} \theta+ C$. Separate math blocks are delimited by $$ pairs:
 
-$$
+```math
 \int\frac {d\theta}{1+\theta^2} = \tan^{-1} \theta+ C
-$$
+```
 
 For things that the user will type, like function names, message names, string values and similar, use the `code marker`. For instance, `go.some_function()` or a `variable` name, a `message_name` or a `"string value"`. For larger chunks of code or configuration text, use the code fences with language specification to enable syntax highlighting: