Browse Source

Re-organize documentation

Drop support for localized content, #2213

Restructure some content to match more closely what we have in master, #2542
Marcel Stör 5 years ago
parent
commit
b126c6b2d2
100 changed files with 131 additions and 251 deletions
  1. 0 0
      docs/build.md
  2. 0 0
      docs/compiling.md
  3. 0 0
      docs/extn-developer-faq.md
  4. 2 11
      docs/flash.md
  5. 1 1
      docs/getting-started.md
  6. 0 0
      docs/hardware-faq.md
  7. 5 5
      docs/index.md
  8. 1 112
      docs/js/extra.js
  9. 0 0
      docs/lcd.md
  10. 0 0
      docs/lfs.md
  11. 0 0
      docs/lua-developer-faq.md
  12. 2 2
      docs/lua-modules/bh1750.md
  13. 2 2
      docs/lua-modules/ds18b20.md
  14. 2 2
      docs/lua-modules/ds3231.md
  15. 3 3
      docs/lua-modules/ftpserver.md
  16. 2 2
      docs/lua-modules/hdc1000.md
  17. 2 2
      docs/lua-modules/httpserver.md
  18. 2 2
      docs/lua-modules/imap.md
  19. 2 2
      docs/lua-modules/lm92.md
  20. 2 2
      docs/lua-modules/mcp23008.md
  21. 2 2
      docs/lua-modules/redis.md
  22. 2 2
      docs/lua-modules/yeelink.md
  23. 1 1
      docs/modules/adc.md
  24. 1 1
      docs/modules/ads1115.md
  25. 1 1
      docs/modules/adxl345.md
  26. 1 1
      docs/modules/am2320.md
  27. 1 1
      docs/modules/apa102.md
  28. 1 1
      docs/modules/bit.md
  29. 1 1
      docs/modules/bloom.md
  30. 1 1
      docs/modules/bme280.md
  31. 1 1
      docs/modules/bme680.md
  32. 1 1
      docs/modules/bmp085.md
  33. 0 0
      docs/modules/cjson.md
  34. 1 1
      docs/modules/coap.md
  35. 1 1
      docs/modules/color-utils.md
  36. 1 1
      docs/modules/cron.md
  37. 1 1
      docs/modules/crypto.md
  38. 1 1
      docs/modules/dht.md
  39. 2 2
      docs/modules/ds18b20.md
  40. 1 1
      docs/modules/encoder.md
  41. 2 2
      docs/modules/enduser-setup.md
  42. 1 1
      docs/modules/file.md
  43. 1 1
      docs/modules/gdbstub.md
  44. 1 1
      docs/modules/gpio.md
  45. 1 1
      docs/modules/hdc1080.md
  46. 1 1
      docs/modules/hmc5883l.md
  47. 1 1
      docs/modules/http.md
  48. 1 1
      docs/modules/hx711.md
  49. 1 1
      docs/modules/i2c.md
  50. 1 1
      docs/modules/l3g4200d.md
  51. 1 1
      docs/modules/mcp4725.md
  52. 1 1
      docs/modules/mdns.md
  53. 1 1
      docs/modules/mqtt.md
  54. 1 1
      docs/modules/net.md
  55. 1 1
      docs/modules/node.md
  56. 1 1
      docs/modules/ow.md
  57. 3 3
      docs/modules/pcm.md
  58. 1 1
      docs/modules/perf.md
  59. 1 1
      docs/modules/pwm.md
  60. 1 1
      docs/modules/rc.md
  61. 1 1
      docs/modules/rfswitch.md
  62. 1 1
      docs/modules/rotary.md
  63. 1 1
      docs/modules/rtcfifo.md
  64. 2 2
      docs/modules/rtcmem.md
  65. 1 1
      docs/modules/rtctime.md
  66. 1 1
      docs/modules/si7021.md
  67. 1 1
      docs/modules/sigma-delta.md
  68. 2 2
      docs/modules/sjson.md
  69. 1 1
      docs/modules/sntp.md
  70. 2 2
      docs/modules/somfy.md
  71. 1 1
      docs/modules/spi.md
  72. 3 3
      docs/modules/sqlite3.md
  73. 1 1
      docs/modules/struct.md
  74. 1 1
      docs/modules/switec.md
  75. 1 1
      docs/modules/tcs34725.md
  76. 2 2
      docs/modules/tls.md
  77. 1 1
      docs/modules/tm1829.md
  78. 1 1
      docs/modules/tmr.md
  79. 1 1
      docs/modules/tsl2561.md
  80. 6 6
      docs/modules/u8g2.md
  81. 1 1
      docs/modules/uart.md
  82. 3 3
      docs/modules/ucg.md
  83. 1 1
      docs/modules/websocket.md
  84. 4 4
      docs/modules/wifi.md
  85. 1 1
      docs/modules/wifi_monitor.md
  86. 1 1
      docs/modules/wps.md
  87. 1 1
      docs/modules/ws2801.md
  88. 1 1
      docs/modules/ws2812-effects.md
  89. 1 1
      docs/modules/ws2812.md
  90. 1 1
      docs/modules/xpt2046.md
  91. 4 4
      docs/sdcard.md
  92. 0 0
      docs/spiffs.md
  93. 1 1
      docs/support.md
  94. 1 1
      docs/upload.md
  95. 1 1
      lua_modules/bh1750/README.md
  96. 1 1
      lua_modules/ds18b20/README.md
  97. 1 1
      lua_modules/ds3231/README.md
  98. 1 1
      lua_modules/email/README.md
  99. 1 1
      lua_modules/ftp/README.md
  100. 1 1
      lua_modules/hdc1000/README.md

+ 0 - 0
docs/en/build.md → docs/build.md


+ 0 - 0
docs/en/compiling.md → docs/compiling.md


+ 0 - 0
docs/en/extn-developer-faq.md → docs/extn-developer-faq.md


+ 2 - 11
docs/en/flash.md → docs/flash.md

@@ -37,23 +37,14 @@ Run the following command to flash an *aggregated* binary as is produced for exa
 ### NodeMCU PyFlasher
 > Self-contained [NodeMCU](https://github.com/nodemcu/nodemcu-firmware) flasher with GUI based on [esptool.py](https://github.com/espressif/esptool) and [wxPython](https://www.wxpython.org/).
 
-![NodeMCU PyFlasher](../img/NodeMCU-PyFlasher.png "NodeMCU PyFlasher")
+![NodeMCU PyFlasher](img/NodeMCU-PyFlasher.png "NodeMCU PyFlasher")
 
 Source: [https://github.com/marcelstoer/nodemcu-pyflasher](https://github.com/marcelstoer/nodemcu-pyflasher)
 
-Supported platforms: anything that runs Python, runnable .exe available for Windows and .dmg for macOS
+Supported platforms: anything that runs Python, runnable `.exe` available for Windows and `.dmg` for macOS
 
 Disclaimer: the availability of [NodeMCU PyFlasher was announced on the NodeMCU Facebook page](https://www.facebook.com/NodeMCU/posts/663197460515251) but it is not an official offering of the current NodeMCU firmware team.
 
-### NodeMCU Flasher
-> A firmware Flash tool for NodeMCU...We are working on next version and will use QT framework. It will be cross platform and open-source.
-
-Source: [https://github.com/nodemcu/nodemcu-flasher](https://github.com/nodemcu/nodemcu-flasher)
-
-Supported platforms: Windows
-
-Note that this tool was created by the initial developers of the NodeMCU firmware. **It hasn't seen updates since September 2015** and is not maintained by the current NodeMCU *firmware* team. Be careful to not accidentally flash the very old default firmware the tool is shipped with.
-
 ## Putting Device Into Flash Mode
 
 To enable ESP8266 firmware flashing GPIO0 pin must be pulled low before the device is reset. Conversely, for a normal boot, GPIO0 must be pulled high or floating.

+ 1 - 1
docs/en/getting-started.md → docs/getting-started.md

@@ -325,4 +325,4 @@ Once the LFS image file is on SPIFFS, you can execute the [node.flashreload()](.
 
 Do a protected call of this `_init` code: `pcall(node.flashindex("_init"))` and check the error status.  See [Programming Techniques and Approachs](lfs.md#programming-techniques-and-approachs) in the LFS whitepaper for a more detailed description. 
 
-[↑ back to matrix](#task-os-selector)
+[↑ back to matrix](#task-os-selector)

+ 0 - 0
docs/en/hardware-faq.md → docs/hardware-faq.md


+ 5 - 5
docs/index.md

@@ -1,10 +1,10 @@
 # NodeMCU Documentation
 
-NodeMCU is an open source [Lua](https://www.lua.org/) based firmware for the [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/) and uses an on-module flash-based [SPIFFS](https://github.com/pellepl/spiffs) file system. NodeMCU is implemented in C and is layered on the [Espressif NON-OS SDK](https://github.com/espressif/ESP8266_NONOS_SDK).
+NodeMCU is an open source [Lua](https://www.lua.org/) based firmware for the [ESP8266 WiFi SOC from Espressif](http://espressif.com/products/esp8266/) and uses an on-module flash-based [SPIFFS](https://github.com/pellepl/spiffs) file system. NodeMCU is implemented in C and is layered on the [Espressif NON-OS SDK](https://github.com/espressif/ESP8266_NONOS_SDK).
 
 The firmware was initially developed as is a companion project to the popular ESP8266-based [NodeMCU development modules](https://github.com/nodemcu/nodemcu-devkit-v1.0), but the project is now community-supported, and the firmware can now be run on _any_ ESP module.
 
-→ [Getting Started](en/getting-started.md)
+→ [Getting Started](getting-started.md)
 
 ## Programming Model
 The NodeMCU programming model is similar to that of [Node.js](https://en.wikipedia.org/wiki/Node.js), only in Lua. It is asynchronous and event-driven. Many functions, therefore, have parameters for callback functions. To give you an idea what a NodeMCU program looks like study the short snippets below. For more extensive examples have a look at the [`/lua_examples`](https://github.com/nodemcu/nodemcu-firmware/tree/master/lua_examples) folder in the repository on GitHub.
@@ -45,10 +45,10 @@ gpio.write(pin, gpio.HIGH)
 print(gpio.read(pin))
 ```
 
-→ [Getting Started](en/getting-started.md)
+→ [Getting Started](getting-started.md)
 
 ## Lua Flash Store (LFS)
-In September 2018 support for a [Lua Flash Store (LFS)](en/lfs.md) was introduced. LFS allows Lua code and its associated constant data to be executed directly out of flash-memory; just as the firmware itself is executed. This now enables NodeMCU developers to create Lua applications with up to 256Kb Lua code and read-only constants executing out of flash. All of the RAM is available for read-write data!
+In September 2018 support for a [Lua Flash Store (LFS)](lfs.md) was introduced. LFS allows Lua code and its associated constant data to be executed directly out of flash-memory; just as the firmware itself is executed. This now enables NodeMCU developers to create Lua applications with up to 256Kb Lua code and read-only constants executing out of flash. All of the RAM is available for read-write data!
 
 ## Releases
 
@@ -57,4 +57,4 @@ This project uses two main branches, `master` and `dev`. `dev` is actively worke
 A new tag is created every time `dev` is merged back to `master`. They are listed in the [releases section on GitHub](https://github.com/nodemcu/nodemcu-firmware/releases). Tag names follow the `<SDK-version>-master_yyyymmdd` pattern.
 
 ## Up-To-Date Documentation
-At the moment the only up-to-date documentation maintained by the current NodeMCU team is in English. It is part of the source code repository (`/docs` subfolder) and kept in sync with the code.
+At the moment the only up-to-date documentation maintained by the current NodeMCU team is in English. It is part of the source code repository (`/docs` subfolder) and kept in sync with the code.

+ 1 - 112
docs/js/extra.js

@@ -1,16 +1,9 @@
 var nodemcu = nodemcu || {};
-
 (function () {
   'use strict';
-  //var languageCodeToNameMap = {en: 'English', de: 'Deutsch'};
-  var languageCodeToNameMap = {en: 'English'};
-  var languageNames = values(languageCodeToNameMap);
-  var defaultLanguageCode = 'en';
 
   $(document).ready(function () {
     addToc();
-    hideNavigationForAllButSelectedLanguage();
-    addLanguageSelectorToRtdFlyOutMenu();
     replaceRelativeLinksWithStaticGitHubUrl();
   });
 
@@ -45,75 +38,13 @@ var nodemcu = nodemcu || {};
     }
   }
 
-  function hideNavigationForAllButSelectedLanguage() {
-    var selectedLanguageCode = determineSelectedLanguageCode();
-    var selectedLanguageName = languageCodeToNameMap[selectedLanguageCode];
-    // Finds all subnav elements and hides them if they're /language/ subnavs. Hence, all 'Modules' subnav elements
-    // won't be hidden.
-    // <ul class="subnav">
-    //   <li><span>Modules</span></li>
-    //   <li class="toctree-l1 ">
-    //     <a class="" href="EN/modules/node/">node</a>
-    //   </li>
-    $('.subnav li span').not(':contains(' + selectedLanguageName + ')').each(function (index) {
-      var spanElement = $(this);
-      if ($.inArray(spanElement.text(), languageNames) > -1) {
-        spanElement.parent().parent().hide();
-      }
-    });
-  }
-
-  /**
-   * Adds a language selector to the RTD fly-out menu found bottom left. Example:
-   *
-   * <dl>
-   *   <dt>Languages</dt>
-   *   <dd><a href="http://nodemcu.readthedocs.io/en/<branch>/de/">de</a></dd>
-   *   <strong>
-   *     <dd><a href="http://nodemcu.readthedocs.io/en/<branch>/en/">en</a></dd>
-   *   </strong>
-   * </dl>
-   *
-   * UGLY! That fly-out menu is added by RTD with an AJAX call after page load. Hence, we need to
-   * react to the subsequent DOM manipulation using a DOM4 MutationObserver. The provided structure
-   * is as follows:
-   *
-   * <div class="rst-other-versions">
-   *   <!-- Inserted RTD Footer -->
-   *   <div class="injected">
-   */
-  function addLanguageSelectorToRtdFlyOutMenu() {
-    var flyOutWrapper = $('.rst-other-versions');
-    // only relevant on RTD
-    if (flyOutWrapper.size() > 0) {
-      var observer = new MutationObserver(function (mutations) {
-        // since mutation on the target node was triggered we can safely assume the injected RTD div has now been added
-        var injectedDiv = $('.rst-other-versions .injected');
-        var selectedLanguageCode = determineSelectedLanguageCode();
-        var dl = document.createElement('dl');
-        var dt = document.createElement('dt');
-        dl.appendChild(dt);
-        dt.appendChild(document.createTextNode('Languages'));
-        for (var languageCode in languageCodeToNameMap) {
-          dl.appendChild(createLanguageLinkFor(languageCode, selectedLanguageCode === languageCode));
-        }
-        injectedDiv.prepend(dl);
-        // no need for that observer anymore
-        observer.disconnect();
-      });
-
-      // observed target node is the fly-out wrapper, the only event we care about is when children are modified
-      observer.observe(flyOutWrapper[0], {childList: true});
-    }
-  }
-
   /**
    * The module doc pages contain relative links to artifacts in the GitHub repository. For those links to work both
    * on GitHub (i.e. when the page is viewed on GitHub) and on RTD they are defined with a relative URL. This function
    * replaces the relative path with an absolute path based on the selected branch.
    */
   function replaceRelativeLinksWithStaticGitHubUrl() {
-    var relativePath = isOnRtd() ? "../../../.." : "../../..";
+    var relativePath = isOnRtd() ? "../../.." : "../..";
     var gitHubPath = "https://github.com/nodemcu/nodemcu-firmware/tree/" + determineSelectedBranch();
     var gitHubLinks = $("a[href^='" + relativePath + "']").each(function (index) {
       var url = $(this).attr('href');
@@ -121,48 +52,6 @@ var nodemcu = nodemcu || {};
     });
   }
 
-  function createLanguageLinkFor(languageCode, isCurrentlySelected) {
-    var strong;
-    // split[0] is an '' because the path starts with the separator
-    var pathSegments = window.location.pathname.split('/');
-    var dd = document.createElement("dd");
-    var href = document.createElement("a");
-    href.setAttribute('href', '/' + pathSegments[1] + '/' + pathSegments[2] + '/' + languageCode);
-    href.appendChild(document.createTextNode(languageCode));
-    dd.appendChild(href);
-    if (isCurrentlySelected) {
-      strong = document.createElement("strong");
-      strong.appendChild(dd);
-      return strong;
-    } else {
-      return dd;
-    }
-  }
-
-  /**
-   * Analyzes the URL of the current page to find out what the selected language is. It's usually
-   * part of the location path. The code needs to distinguish between running MkDocs standalone
-   * and docs served from RTD. If no valid language could be determined the default language is
-   * returned.
-   *
-   * @returns 2-char language code
-   */
-  function determineSelectedLanguageCode() {
-    var selectedLanguageCode, path = window.location.pathname;
-    if (isOnRtd()) {
-      // path is like /en/<branch>/<lang>/build/ -> extract 'lang'
-      // split[0] is an '' because the path starts with the separator
-      selectedLanguageCode = path.split('/')[3];
-    } else if (!window.location.href.startsWith('file://')) {
-      // path is like /<lang>/build/ -> extract 'lang'
-      selectedLanguageCode = path.substr(1, 2);
-    }
-    if (!selectedLanguageCode || selectedLanguageCode.length > 2) {
-      selectedLanguageCode = defaultLanguageCode;
-    }
-    return selectedLanguageCode;
-  }
-
   /**
    * Analyzes the URL of the current page to find out what the selected GitHub branch is. It's usually
    * part of the location path. The code needs to distinguish between running MkDocs standalone

+ 0 - 0
docs/en/lcd.md → docs/lcd.md


+ 0 - 0
docs/en/lfs.md → docs/lfs.md


+ 0 - 0
docs/en/lua-developer-faq.md → docs/lua-developer-faq.md


+ 2 - 2
docs/en/lua-modules/bh1750.md → docs/lua-modules/bh1750.md

@@ -1,7 +1,7 @@
 # BH1750 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-01-30 | [Martin Han](https://github.com/MarsTechHAN) | [Martin Han](https://github.com/MarsTechHAN) | [bh1750.lua](../../../lua_modules/bh1750/bh1750.lua) |
+| 2015-01-30 | [Martin Han](https://github.com/MarsTechHAN) | [Martin Han](https://github.com/MarsTechHAN) | [bh1750.lua](../../lua_modules/bh1750/bh1750.lua) |
 
 This Lua module provides access to [BH1750](https://www.mouser.com/ds/2/348/bh1750fvi-e-186247.pdf) I²C ambient light sensor.
 
@@ -70,4 +70,4 @@ print("lux: "..(l / 100).."."..(l % 100).." lx")
 -- release module
 bh1750 = nil
 package.loaded["bh1750"] = nil
-```
+```

+ 2 - 2
docs/en/lua-modules/ds18b20.md → docs/lua-modules/ds18b20.md

@@ -1,7 +1,7 @@
 # DS18B20 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-08 | [Huang Rui](https://github.com/vowstar) | [Huang Rui](https://github.com/vowstar) | [ds18b20.lua](../../../lua_modules/ds18b20/ds18b20.lua) |
+| 2014-12-08 | [Huang Rui](https://github.com/vowstar) | [Huang Rui](https://github.com/vowstar) | [ds18b20.lua](../../lua_modules/ds18b20/ds18b20.lua) |
 
 This Lua module provides access to [DS18B20](https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) 1-Wire digital thermometer.
 
@@ -75,4 +75,4 @@ A table with sensors present on the bus. It includes its address (8 bytes) and i
 A table with readout values (also passed as a parameter to callback function). It is addressed by sensor addresses.
 
 #### Notes
-Other examples of using this module can be found in [ds18b20-example.lua](../../../lua_modules/ds18b20/ds18b20-example.lua) and [ds18b20-web.lua](../../../lua_modules/ds18b20/ds18b20-web.lua) files.
+Other examples of using this module can be found in [ds18b20-example.lua](../../lua_modules/ds18b20/ds18b20-example.lua) and [ds18b20-web.lua](../../lua_modules/ds18b20/ds18b20-web.lua) files.

+ 2 - 2
docs/en/lua-modules/ds3231.md → docs/lua-modules/ds3231.md

@@ -1,7 +1,7 @@
 # DS3231 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-01-19 | [Tobie Booth](https://github.com/tobiebooth) | [Tobie Booth](https://github.com/tobiebooth) | [ds3231.lua](../../../lua_modules/ds3231/ds3231.lua) |
+| 2015-01-19 | [Tobie Booth](https://github.com/tobiebooth) | [Tobie Booth](https://github.com/tobiebooth) | [ds3231.lua](../../lua_modules/ds3231/ds3231.lua) |
 
 This Lua module provides access to [DS3231](https://datasheets.maximintegrated.com/en/ds/DS3231.pdf) I²C real-time clock.
 
@@ -299,4 +299,4 @@ package.loaded["ds3231"] = nil
 ```
 
 #### Notes
-Other examples of using this module can be found in [ds3231-example.lua](../../../lua_modules/ds3231/ds3231-example.lua) and [ds3231-web.lua](../../../lua_modules/ds3231/ds3231-web.lua) files.
+Other examples of using this module can be found in [ds3231-example.lua](../../lua_modules/ds3231/ds3231-example.lua) and [ds3231-web.lua](../../lua_modules/ds3231/ds3231-web.lua) files.

+ 3 - 3
docs/en/lua-modules/ftpserver.md → docs/lua-modules/ftpserver.md

@@ -1,7 +1,7 @@
 # FTPServer Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2018-07-02 | [Terry Ellison](https://github.com/TerryE) | [Terry Ellison](https://github.com/TerryE) | [ftpserver.lua](../../../lua_modules/ftp/ftpserver.lua) |
+| 2018-07-02 | [Terry Ellison](https://github.com/TerryE) | [Terry Ellison](https://github.com/TerryE) | [ftpserver.lua](../../lua_modules/ftp/ftpserver.lua) |
 
 This Lua module implementation provides a basic FTP server for the ESP8266. It has been tested against a number of Table, Windows and Linux FTP clients and browsers.
 
@@ -12,7 +12,7 @@ It provides a limited subset of FTP commands that enable such clients to transfe
 
 ### Limitations
 -  FTP over SSH or TLS is not currently supported so transfer is unencrypted.
--  The client session , must,  authentical against a single user/password.
+-  The client session , must,  authenticate against a single user/password.
 -  Only the SPIFFS filesystem is currently supported, so changing directories is treated as a NO-OP.
 -  This implementation has been optimized for running in LFS.
 -  Only PASV mode is supported as the `net` module does not allow static allocation of outbound sockets.
@@ -85,4 +85,4 @@ None
 #### Example
 ```Lua
 FTP.close()
-```
+```

+ 2 - 2
docs/en/lua-modules/hdc1000.md → docs/lua-modules/hdc1000.md

@@ -1,7 +1,7 @@
 # HDC1000 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-03-07 | [Francesco Truzzi](https://github.com/ftruzzi) | [Francesco Truzzi](https://github.com/ftruzzi) | [hdc1000.lua](../../../lua_modules/hdc1000/HDC1000.lua) |
+| 2015-03-07 | [Francesco Truzzi](https://github.com/ftruzzi) | [Francesco Truzzi](https://github.com/ftruzzi) | [hdc1000.lua](../../lua_modules/hdc1000/HDC1000.lua) |
 
 This Lua module provides access to [HDC1000](https://www.ti.com/lit/ds/symlink/hdc1000.pdf) I²C digital humidity and temperature sensor. It should also work with HDC1008 sensor bout this haven't been tested.
 
@@ -105,4 +105,4 @@ print(string.format("Temperature: %.2f °C\nHumidity: %.2f %%", HDC1000.getTemp(
 
 HDC1000 = nil
 package.loaded["HDC1000"] = nil
-```
+```

+ 2 - 2
docs/en/lua-modules/httpserver.md → docs/lua-modules/httpserver.md

@@ -1,7 +1,7 @@
 # HTTP Server Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-01-19 | [Vladimir Dronnikov](https://github.com/dvv) | [Vladimir Dronnikov](https://github.com/dvv) | [http.lua](../../../lua_modules/http/http.lua) |
+| 2015-01-19 | [Vladimir Dronnikov](https://github.com/dvv) | [Vladimir Dronnikov](https://github.com/dvv) | [http.lua](../../lua_modules/http/httpserver.lua) |
 
 This Lua module provides a simple callback implementation of a [HTTP 1.1](https://www.w3.org/Protocols/rfc2616/rfc2616.html) server.
 
@@ -51,4 +51,4 @@ The second object holds functions:
 - `send_header(self, header_name, header_data)`: Function to send HTTP headers to client. `self` is `req` object, `header_name` is HTTP header name and `header_data` is HTTP header data for client.
 - `finish([data])`: Function to finalize connection, optionally sending data. `data` is optional data to send on connection finalizing.
 
-Full example can be found in [http-example.lua](../../../lua_modules/http/http-example.lua)
+Full example can be found in [http-example.lua](../../lua_modules/http/http-example.lua)

+ 2 - 2
docs/en/lua-modules/imap.md → docs/lua-modules/imap.md

@@ -1,7 +1,7 @@
 # IMAP Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-03-12 | [AllAboutEE](https://github.com/AllAboutEE) | [AllAboutEE](https://github.com/AllAboutEE) | [imap.lua](../../../lua_modules/email/imap.lua) |
+| 2015-03-12 | [AllAboutEE](https://github.com/AllAboutEE) | [AllAboutEE](https://github.com/AllAboutEE) | [imap.lua](../../lua_modules/email/imap.lua) |
 
 This Lua module provides a simple implementation of an [IMAP 4rev1](http://www.faqs.org/rfcs/rfc2060.html) protocol that can be used to read e-mails.
 
@@ -145,4 +145,4 @@ Sends the IMAP command to logout of the email session.
 `nil`
 
 #### Example
-Example use of `imap` module can be found in  [read_email_imap.lua](../../../lua_examples/email/read_email_imap.lua) file.
+Example use of `imap` module can be found in  [read_email_imap.lua](../../lua_examples/email/read_email_imap.lua) file.

+ 2 - 2
docs/en/lua-modules/lm92.md → docs/lua-modules/lm92.md

@@ -1,7 +1,7 @@
 # LM92 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-05-17 | [Levente Tamas](https://github.com/elgarbe) | [Levente Tamas](https://github.com/elgarbe) | [lm92.lua](../../../lua_modules/lm92/lm92.lua) |
+| 2015-05-17 | [Levente Tamas](https://github.com/elgarbe) | [Levente Tamas](https://github.com/elgarbe) | [lm92.lua](../../lua_modules/lm92/lm92.lua) |
 
 This Lua module provides access to [LM92](http://www.ti.com/lit/ds/symlink/lm92.pdf) I²C ±0.33C 12bit+sign temperature sensor.
 
@@ -204,4 +204,4 @@ print("Got High: "..t.." C")
 ```
 
 #### TODO:
-- add full support of the features, including interrupt and critical alert support
+- add full support of the features, including interrupt and critical alert support

+ 2 - 2
docs/en/lua-modules/mcp23008.md → docs/lua-modules/mcp23008.md

@@ -1,7 +1,7 @@
 # MCP23008 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-03-02 | [AllAboutEE](https://github.com/AllAboutEE) | [AllAboutEE](https://github.com/AllAboutEE) | [mcp23008.lua](../../../lua_modules/mcp23008/mcp23008.lua) |
+| 2015-03-02 | [AllAboutEE](https://github.com/AllAboutEE) | [AllAboutEE](https://github.com/AllAboutEE) | [mcp23008.lua](../../lua_modules/mcp23008/mcp23008.lua) |
 
 This Lua module provides access to [MCP23008](http://ww1.microchip.com/downloads/en/DeviceDoc/21919e.pdf) I²C I/O Expander.
 
@@ -110,4 +110,4 @@ None
 The GPPU byte i.e. state of all internal pull-up resistors
 
 #### Notes
-Other examples of using this module can be found in [mcp23008_buttons.lua](../../../lua_examples/mcp23008/mcp23008_buttons.lua) and  [mcp23008_leds.lua](../../../lua_examples/mcp23008/mcp23008_leds.lua) files.
+Other examples of using this module can be found in [mcp23008_buttons.lua](../../lua_examples/mcp23008/mcp23008_buttons.lua) and  [mcp23008_leds.lua](../../lua_examples/mcp23008/mcp23008_leds.lua) files.

+ 2 - 2
docs/en/lua-modules/redis.md → docs/lua-modules/redis.md

@@ -1,7 +1,7 @@
 # Redis Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-02-06 | [Vladimir Dronnikov](https://github.com/dvv) | [Vladimir Dronnikov](https://github.com/dvv) | [redis.lua](../../../lua_modules/redis/redis.lua) |
+| 2015-02-06 | [Vladimir Dronnikov](https://github.com/dvv) | [Vladimir Dronnikov](https://github.com/dvv) | [redis.lua](../../lua_modules/redis/redis.lua) |
 
 This Lua module provides a simple implementation of a [Redis](https://redis.io/) client.
 
@@ -83,4 +83,4 @@ None
 local redis = dofile("redis.lua").connect(host, port)
 redis:publish("chan1", foo")
 redis:subscribe("chan1", function(channel, msg) print(channel, msg) end)
-```
+```

+ 2 - 2
docs/en/lua-modules/yeelink.md → docs/lua-modules/yeelink.md

@@ -1,7 +1,7 @@
 # Yeelink Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-04-14 | [Martin Han](https://github.com/MarsTechHAN) | [Martin Han](https://github.com/MarsTechHAN) | [yeelink_lib.lua](../../../lua_modules/yeelink/yeelink_lib.lua) |
+| 2015-04-14 | [Martin Han](https://github.com/MarsTechHAN) | [Martin Han](https://github.com/MarsTechHAN) | [yeelink_lib.lua](../../lua_modules/yeelink/yeelink_lib.lua) |
 
 This Lua module provides a simple implementation of an [Yeelink](http://www.yeelink.net/) client.
 
@@ -55,4 +55,4 @@ Send data to Yeelink Sever.
 `nil`
 
 #### Notes
-Example of using this module can be found in [Example_for_Yeelink_Lib.lua](../../../lua_modules/yeelink/Example_for_Yeelink_Lib.lua) file.
+Example of using this module can be found in [Example_for_Yeelink_Lib.lua](../../lua_modules/yeelink/Example_for_Yeelink_Lib.lua) file.

+ 1 - 1
docs/en/modules/adc.md → docs/modules/adc.md

@@ -1,7 +1,7 @@
 # ADC Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-24 | [Zeroday](https://github.com/funshine) | [jmattsson](https://github.com/jmattsson) | [adc.c](../../../app/modules/adc.c)|
+| 2014-12-24 | [Zeroday](https://github.com/funshine) | [jmattsson](https://github.com/jmattsson) | [adc.c](../../app/modules/adc.c)|
 
 The ADC module provides access to the in-built ADC.
 

+ 1 - 1
docs/en/modules/ads1115.md → docs/modules/ads1115.md

@@ -1,7 +1,7 @@
 # ADS1115 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-04-24 | [fetchbot](https://github.com/fetchbot) | [fetchbot](https://github.com/fetchbot) | [ads1115.c](../../../app/modules/ads1115.c)|
+| 2017-04-24 | [fetchbot](https://github.com/fetchbot) | [fetchbot](https://github.com/fetchbot) | [ads1115.c](../../app/modules/ads1115.c)|
 
 This module provides access to the ADS1115 (16-Bit) and ADS1015 (12-Bit) analog-to-digital converters.
 Other chips from the same family (ADS1113, ADS1114, ADS1013 and ADS1014) are likely to work. Missing hardware features will be silently ignored.

+ 1 - 1
docs/en/modules/adxl345.md → docs/modules/adxl345.md

@@ -1,7 +1,7 @@
 # ADXL345 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-04-08 | [Jason Schmidlapp](https://github.com/jschmidlapp) | [Jason Schmidlapp](https://github.com/jschmidlapp) | [adxl345.c](../../../app/modules/adxl345.c)|
+| 2016-04-08 | [Jason Schmidlapp](https://github.com/jschmidlapp) | [Jason Schmidlapp](https://github.com/jschmidlapp) | [adxl345.c](../../app/modules/adxl345.c)|
 
 
 This module provides access to the [ADXL345](https://www.sparkfun.com/products/9836) triple axis accelerometer.

+ 1 - 1
docs/en/modules/am2320.md → docs/modules/am2320.md

@@ -1,7 +1,7 @@
 # AM2320 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-02-14 | [Henk Vergonet](https://github.com/hvegh) | [Henk Vergonet](https://github.com/hvegh) | [am2320.c](../../../app/modules/am2320.c)|
+| 2016-02-14 | [Henk Vergonet](https://github.com/hvegh) | [Henk Vergonet](https://github.com/hvegh) | [am2320.c](../../app/modules/am2320.c)|
 
 
 This module provides access to the [AM2320](https://akizukidenshi.com/download/ds/aosong/AM2320.pdf) humidity and temperature sensor, using the i2c interface.

+ 1 - 1
docs/en/modules/apa102.md → docs/modules/apa102.md

@@ -1,7 +1,7 @@
 # APA102 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-01-26 | [Robert Foss](https://github.com/robertfoss)| [Robert Foss](https://github.com/robertfoss)| [apa102.c](../../../app/modules/apa102.c)|
+| 2016-01-26 | [Robert Foss](https://github.com/robertfoss)| [Robert Foss](https://github.com/robertfoss)| [apa102.c](../../app/modules/apa102.c)|
 
 This module provides Lua access to [APA102 RGB LEDs](https://youtu.be/UYvC-hukz-0) which are similar in function to the common [WS2812](ws2812) addressable LEDs.
 

+ 1 - 1
docs/en/modules/bit.md → docs/modules/bit.md

@@ -1,7 +1,7 @@
 # bit Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-24 | [https://github.com/LuaDist/bitlib](https://github.com/LuaDist/bitlib), [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [bit.c](../../../app/modules/bit.c)|
+| 2014-12-24 | [https://github.com/LuaDist/bitlib](https://github.com/LuaDist/bitlib), [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [bit.c](../../app/modules/bit.c)|
 
 
 Bit manipulation support, on 32bit integers.

+ 1 - 1
docs/en/modules/bloom.md → docs/modules/bloom.md

@@ -1,7 +1,7 @@
 # Bloom Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-11-13 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [bloom.c](../../../app/modules/bloom.c)|
+| 2017-11-13 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [bloom.c](../../app/modules/bloom.c)|
 
 
 This module implements a [Bloom filter](https://en.wikipedia.org/wiki/Bloom_filter). This is a probabilistic data structure that is used to test for set membership. There are two operations -- `add` and `check` that allow 

+ 1 - 1
docs/en/modules/bme280.md → docs/modules/bme280.md

@@ -1,7 +1,7 @@
 # BME280 module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-02-21 | [vsky279](https://github.com/vsky279) | [vsky279](https://github.com/vsky279) | [bme280.c](../../../app/modules/bme280.c)|
+| 2016-02-21 | [vsky279](https://github.com/vsky279) | [vsky279](https://github.com/vsky279) | [bme280.c](../../app/modules/bme280.c)|
 
 This module provides a simple interface to [BME280/BMP280 temperature/air presssure/humidity sensors](http://www.bosch-sensortec.com/bst/products/all_products/bme280) (Bosch Sensortec).
 

+ 1 - 1
docs/en/modules/bme680.md → docs/modules/bme680.md

@@ -1,7 +1,7 @@
 # BME680 module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-10-28 | [vsky279](https://github.com/vsky279) | [vsky279](https://github.com/vsky279) | [bme680.c](../../../app/modules/bme680.c)|
+| 2017-10-28 | [vsky279](https://github.com/vsky279) | [vsky279](https://github.com/vsky279) | [bme680.c](../../app/modules/bme680.c)|
 
 This module provides a simple interface to [BME680](https://www.bosch-sensortec.com/bst/products/all_products/bme680) temperature/air presssure/humidity sensors/air quality sensor (Bosch Sensortec). Compared to the BME280 module the sensor does not support automatic mode which means that it can be setup to perform regular measurements. Every measurement has to be triggered manually.
 

+ 1 - 1
docs/en/modules/bmp085.md → docs/modules/bmp085.md

@@ -1,7 +1,7 @@
 # BMP085 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-08-03 | [Konrad Beckmann](https://github.com/kbeckmann) | [Konrad Beckmann](https://github.com/kbeckmann) | [bmp085.c](../../../app/modules/bmp085.c)|
+| 2015-08-03 | [Konrad Beckmann](https://github.com/kbeckmann) | [Konrad Beckmann](https://github.com/kbeckmann) | [bmp085.c](../../app/modules/bmp085.c)|
 
 
 This module provides access to the [BMP085](https://www.sparkfun.com/tutorials/253) temperature and pressure sensor. The module also works with BMP180.

+ 0 - 0
docs/en/modules/cjson.md → docs/modules/cjson.md


+ 1 - 1
docs/en/modules/coap.md → docs/modules/coap.md

@@ -1,7 +1,7 @@
 # CoAP Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-02-04 | Toby Jaffey <toby@1248.io>, [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [coap.c](../../../app/modules/coap.c) |
+| 2015-02-04 | Toby Jaffey <toby@1248.io>, [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [coap.c](../../app/modules/coap.c) |
 
 The CoAP module provides a simple implementation according to [CoAP](http://tools.ietf.org/html/rfc7252) protocol.
 The basic endpoint server part is based on [microcoap](https://github.com/1248/microcoap), and many other code reference [libcoap](https://github.com/obgm/libcoap).

+ 1 - 1
docs/en/modules/color-utils.md → docs/modules/color-utils.md

@@ -1,7 +1,7 @@
 # color utils Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-12-30 | [Konrad Huebner](https://github.com/skycoders) | [Konrad Huebner](https://github.com/skycoders) | [color_utils.c](../../../app/modules/color_utils.c)|
+| 2017-12-30 | [Konrad Huebner](https://github.com/skycoders) | [Konrad Huebner](https://github.com/skycoders) | [color_utils.c](../../app/modules/color_utils.c)|
 
 This module provides basic color transformations useful for color LEDs. 
 

+ 1 - 1
docs/en/modules/cron.md → docs/modules/cron.md

@@ -1,7 +1,7 @@
 # Cron Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-12-18 | [PhoeniX](https://github.com/djphoenix) | [PhoeniX](https://github.com/djphoenix) | [cron.c](../../../app/modules/cron.c)|
+| 2016-12-18 | [PhoeniX](https://github.com/djphoenix) | [PhoeniX](https://github.com/djphoenix) | [cron.c](../../app/modules/cron.c)|
 
 [Cron](https://en.wikipedia.org/wiki/Cron)-like scheduler module.
 

+ 1 - 1
docs/en/modules/crypto.md → docs/modules/crypto.md

@@ -1,7 +1,7 @@
 # crypto Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-06-02 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [crypto.c](../../../app/modules/crypto.c)|
+| 2015-06-02 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [crypto.c](../../app/modules/crypto.c)|
 
 The crypto modules provides various functions for working with cryptographic algorithms.
 

+ 1 - 1
docs/en/modules/dht.md → docs/modules/dht.md

@@ -1,7 +1,7 @@
 # DHT Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-06-17 | [RobTillaart](https://github.com/RobTillaart/Arduino/tree/master/libraries/DHTlib) | [Vowstar](https://github.com/vowstar) | [dhtlib](../../../app/dht/)|
+| 2015-06-17 | [RobTillaart](https://github.com/RobTillaart/Arduino/tree/master/libraries/DHTlib) | [Vowstar](https://github.com/vowstar) | [dhtlib](../../app/dht/)|
 
 ## Constants
 Constants for various functions.

+ 2 - 2
docs/en/modules/ds18b20.md → docs/modules/ds18b20.md

@@ -1,7 +1,7 @@
 # DS18B20 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-06-11 | [fetchbot](https://github.com/fetchbot) | [fetchbot](https://github.com/fetchbot) | [ds18b20.c](../../../app/modules/ds18b20.c)|
+| 2017-06-11 | [fetchbot](https://github.com/fetchbot) | [fetchbot](https://github.com/fetchbot) | [ds18b20.c](../../app/modules/ds18b20.c)|
 
 This module provides access to the DS18B20 1-Wire digital thermometer.
 
@@ -134,4 +134,4 @@ Initializes the onewire bus on the selected pin.
 ```lua
 local ow_pin = 3
 ds18b20.setup(ow_pin)
-```
+```

+ 1 - 1
docs/en/modules/encoder.md → docs/modules/encoder.md

@@ -1,7 +1,7 @@
 # encoder Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-02-26 | [Terry Ellison](https://github.com/TerryE) | [Terry Ellison](https://github.com/TerryE) | [encoder.c](../../../app/modules/encoder.c)|
+| 2016-02-26 | [Terry Ellison](https://github.com/TerryE) | [Terry Ellison](https://github.com/TerryE) | [encoder.c](../../app/modules/encoder.c)|
 
 The encoder modules provides various functions for encoding and decoding byte data.
 

+ 2 - 2
docs/en/modules/enduser-setup.md → docs/modules/enduser-setup.md

@@ -1,11 +1,11 @@
 # enduser setup Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-09-02 | [Robert Foss](https://github.com/robertfoss) | [Robert Foss](https://github.com/robertfoss) | [enduser_setup.c](../../../app/modules/enduser_setup.c)|
+| 2015-09-02 | [Robert Foss](https://github.com/robertfoss) | [Robert Foss](https://github.com/robertfoss) | [enduser_setup.c](../../app/modules/enduser_setup.c)|
 
 This module provides a simple way of configuring ESP8266 chips without using a serial interface or pre-programming WiFi credentials onto the chip.
 
-![enduser setup config dialog](../../img/enduser-setup.jpg "enduser setup config dialog")
+![enduser setup config dialog](../img/enduser-setup.jpg "enduser setup config dialog")
 
 After running [`enduser_setup.start()`](#enduser_setupstart), a wireless network named "SetupGadget_XXXXXX" will start (this prefix can be overridden in `user_config.h` by defining 
 `ENDUSER_SETUP_AP_SSID`). Connect to that SSID and then navigate to the root

+ 1 - 1
docs/en/modules/file.md → docs/modules/file.md

@@ -1,7 +1,7 @@
 # file Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [file.c](../../../app/modules/file.c)|
+| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [file.c](../../app/modules/file.c)|
 
 The file module provides access to the file system and its individual files.
 

File diff suppressed because it is too large
+ 1 - 1
docs/modules/gdbstub.md


+ 1 - 1
docs/en/modules/gpio.md → docs/modules/gpio.md

@@ -1,7 +1,7 @@
 # GPIO Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [gpio.c](../../../app/modules/gpio.c)|
+| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [gpio.c](../../app/modules/gpio.c)|
 
 
 This module provides access to the [GPIO](https://en.wikipedia.org/wiki/General-purpose_input/output) (General Purpose Input/Output) subsystem.

+ 1 - 1
docs/en/modules/hdc1080.md → docs/modules/hdc1080.md

@@ -1,7 +1,7 @@
 # HDC1080 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-04-01 | [Metin KOC](https://github.com/saucompeng) | [Metin KOC](https://github.com/saucompeng) | [hdc1080.c](../../../app/modules/hdc1080.c)|
+| 2017-04-01 | [Metin KOC](https://github.com/saucompeng) | [Metin KOC](https://github.com/saucompeng) | [hdc1080.c](../../app/modules/hdc1080.c)|
 
 
 This module provides access to the [HDC1080](http://www.ti.com/product/HDC1080) low power, high accuracy digital humidity sensor with temperature sensor.

+ 1 - 1
docs/en/modules/hmc5883l.md → docs/modules/hmc5883l.md

@@ -1,7 +1,7 @@
 # HMC5883L Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-04-09 | [Jason Schmidlapp](https://github.com/jschmidlapp) | [Jason Schmidlapp](https://github.com/jschmidlapp) | [hmc5883l.c](../../../app/modules/hmc5883l.c)|
+| 2016-04-09 | [Jason Schmidlapp](https://github.com/jschmidlapp) | [Jason Schmidlapp](https://github.com/jschmidlapp) | [hmc5883l.c](../../app/modules/hmc5883l.c)|
 
 
 This module provides access to the [HMC5883L](https://www.sparkfun.com/products/10530) three axis digital compass.

+ 1 - 1
docs/en/modules/http.md → docs/modules/http.md

@@ -1,7 +1,7 @@
 # HTTP Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-01-15 | [esphttpclient](https://github.com/Caerbannog/esphttpclient) / [Vowstar](https://github.com/vowstar) | [Vowstar](https://github.com/vowstar) | [http.c](../../../app/modules/http.c)|
+| 2016-01-15 | [esphttpclient](https://github.com/Caerbannog/esphttpclient) / [Vowstar](https://github.com/vowstar) | [Vowstar](https://github.com/vowstar) | [http.c](../../app/modules/http.c)|
 
 Basic HTTP *client* module that provides an interface to do GET/POST/PUT/DELETE over HTTP(S), as well as customized requests. Due to the memory constraints on ESP8266, the supported page/body size is limited by available memory. Attempting to receive pages larger than this will fail. If larger page/body sizes are necessary, consider using [`net.createConnection()`](net.md#netcreateconnection) and stream in the data.
 

+ 1 - 1
docs/en/modules/hx711.md → docs/modules/hx711.md

@@ -1,7 +1,7 @@
 # HX711 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-10-09 | [Chris Takahashi](https://github.com/christakahashi) | [Chris Takahashi](https://github.com/christakahashi) | [hx711.c](../../../app/modules/hx711.c)|
+| 2015-10-09 | [Chris Takahashi](https://github.com/christakahashi) | [Chris Takahashi](https://github.com/christakahashi) | [hx711.c](../../app/modules/hx711.c)|
 
 This module provides access to an [HX711 load cell amplifier/ADC](https://learn.sparkfun.com/tutorials/load-cell-amplifier-hx711-breakout-hookup-guide). The HX711 is an inexpensive 24bit ADC with programmable 128x, 64x, and 32x gain. Currently only channel A at 128x gain is supported.
 

+ 1 - 1
docs/en/modules/i2c.md → docs/modules/i2c.md

@@ -1,7 +1,7 @@
 # I²C Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [i2c.c](../../../app/modules/i2c.c)|
+| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [i2c.c](../../app/modules/i2c.c)|
 
 ## i2c.address()
 Setup I²C address and read/write mode for the next transfer.

+ 1 - 1
docs/en/modules/l3g4200d.md → docs/modules/l3g4200d.md

@@ -1,7 +1,7 @@
 # L3G4200D Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-04-09 | [Jason Schmidlapp](https://github.com/jschmidlapp) | [Jason Schmidlapp](https://github.com/jschmidlapp) | [l3g4200d.c](../../../app/modules/l3g4200d.c)|
+| 2015-04-09 | [Jason Schmidlapp](https://github.com/jschmidlapp) | [Jason Schmidlapp](https://github.com/jschmidlapp) | [l3g4200d.c](../../app/modules/l3g4200d.c)|
 
 
 This module provides access to the [L3G4200D](https://www.sparkfun.com/products/10612) three axis digital gyroscope.

+ 1 - 1
docs/en/modules/mcp4725.md → docs/modules/mcp4725.md

@@ -1,7 +1,7 @@
 # MCP4725 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-05-10 | [dnc40085](https://github.com/dnc40085) | [dnc40085](https://github.com/dnc40085) | [mcp4725.c](../../../app/modules/mcp4725.c)|
+| 2017-05-10 | [dnc40085](https://github.com/dnc40085) | [dnc40085](https://github.com/dnc40085) | [mcp4725.c](../../app/modules/mcp4725.c)|
 
 
 This module provides access to the [MCP4725 12-bit Digital to Analog Converter](http://ww1.microchip.com/downloads/en/DeviceDoc/22039d.pdf).

+ 1 - 1
docs/en/modules/mdns.md → docs/modules/mdns.md

@@ -1,7 +1,7 @@
 # mDNS Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-02-24 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [mdns.c](../../../app/modules/mdns.c)|
+| 2016-02-24 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [mdns.c](../../app/modules/mdns.c)|
 
 [Multicast DNS](https://en.wikipedia.org/wiki/Multicast_DNS) is used as part of Bonjour / Zeroconf. This allows systems to identify themselves and the services that they provide on a local area network. Clients are then able to discover these systems and connect to them. 
 

+ 1 - 1
docs/en/modules/mqtt.md → docs/modules/mqtt.md

@@ -1,7 +1,7 @@
 # MQTT Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-01-23 | [Stephen Robinson](https://github.com/esar/contiki-mqtt), [Tuan PM](https://github.com/tuanpmt/esp_mqtt) | [Vowstar](https://github.com/vowstar) | [mqtt.c](../../../app/modules/mqtt.c)|
+| 2015-01-23 | [Stephen Robinson](https://github.com/esar/contiki-mqtt), [Tuan PM](https://github.com/tuanpmt/esp_mqtt) | [Vowstar](https://github.com/vowstar) | [mqtt.c](../../app/modules/mqtt.c)|
 
 
 The client adheres to version 3.1.1 of the [MQTT](https://en.wikipedia.org/wiki/MQTT) protocol. Make sure that your broker supports and is correctly configured for version 3.1.1. The client is backwards incompatible with brokers running MQTT 3.1.

+ 1 - 1
docs/en/modules/net.md → docs/modules/net.md

@@ -1,7 +1,7 @@
 # net Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-22 | [Zeroday](https://github.com/funshine) | [PhoeniX](https://github.com/djphoenix) | [net.c](../../../app/modules/net.c)|
+| 2014-12-22 | [Zeroday](https://github.com/funshine) | [PhoeniX](https://github.com/djphoenix) | [net.c](../../app/modules/net.c)|
 
 ** TLS operations was moved to the [TLS](tls.md) module **
 

+ 1 - 1
docs/en/modules/node.md → docs/modules/node.md

@@ -1,7 +1,7 @@
 # node Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [node.c](../../../app/modules/node.c)|
+| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [node.c](../../app/modules/node.c)|
 
 The node module provides access to system-level features such as sleep, restart and various info and IDs.
 

+ 1 - 1
docs/en/modules/ow.md → docs/modules/ow.md

@@ -1,7 +1,7 @@
 # 1-Wire Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [ow.c](../../../app/modules/ow.c)|
+| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [ow.c](../../app/modules/ow.c)|
 
 This module provides functions to work with the [1-Wire](https://en.wikipedia.org/wiki/1-Wire) device communications bus system.
 

+ 3 - 3
docs/en/modules/pcm.md → docs/modules/pcm.md

@@ -1,7 +1,7 @@
 # pcm module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-06-05 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [pcm.c](../../../app/modules/pcm.c)|
+| 2016-06-05 | [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [pcm.c](../../app/modules/pcm.c)|
 
 Play sounds through various back-ends.
 
@@ -11,7 +11,7 @@ The ESP contains a sigma-delta generator that can be used to synthesize audio wi
 
 The external filter circuit is shown in the following schematic. Note that the voltage divider resistors limit the output voltage to 1&nbsp;V<sub>PP</sub>. This should match most amplifier boards, but cross-checking against your specific configuration is required.
 
-![low-pass filter](../../img/sigma_delta_audiofilter.png "low-pass filter for sigma-delta driver")
+![low-pass filter](../img/sigma_delta_audiofilter.png "low-pass filter for sigma-delta driver")
 
 
 !!! important
@@ -25,7 +25,7 @@ Audio is expected as a mono raw unsigned 8&nbsp;bit stream at sample rates betwe
 sox jump.wav -r 8000 -b 8 -c 1 jump_8k.u8
 ```
 
-Also see [play_file.lua](../../../lua_examples/pcm/play_file.lua) in the examples folder.
+Also see [play_file.lua](../../lua_examples/pcm/play_file.lua) in the examples folder.
 
 ## pcm.new()
 Initializes the audio driver.

+ 1 - 1
docs/en/modules/perf.md → docs/modules/perf.md

@@ -1,7 +1,7 @@
 # perf Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-02-26 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [perf.c](../../../app/modules/perf.c)|
+| 2016-02-26 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [perf.c](../../app/modules/perf.c)|
 
 
 This module provides simple performance measurement for an application. It samples the program counter roughly every 50 microseconds and builds a histogram of the values that it finds. Since there is only a small amount

+ 1 - 1
docs/en/modules/pwm.md → docs/modules/pwm.md

@@ -1,7 +1,7 @@
 # PWM Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [pwm.c](../../../app/modules/pwm.c)|
+| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [pwm.c](../../app/modules/pwm.c)|
 
 ## pwm.close()
 Quit PWM mode for the specified GPIO pin.

+ 1 - 1
docs/en/modules/rc.md → docs/modules/rc.md

@@ -1,7 +1,7 @@
 # RC Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-06-12 | [Mike Wen](https://github.com/mikewen) | - | [rc.c](../../../app/modules/rc.c)|
+| 2015-06-12 | [Mike Wen](https://github.com/mikewen) | - | [rc.c](../../app/modules/rc.c)|
 
 Module to generate series of impulses for remote control via 433/315Mhz radio transmitter.
 Superseded by **[rfswitch](./rfswitch.md)** module which have same functionality, and supports more transmission protocols.

+ 1 - 1
docs/en/modules/rfswitch.md → docs/modules/rfswitch.md

@@ -1,7 +1,7 @@
 # rfswitch Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-12-01 | [Roman Fedorov](https://github.com/ffedoroff) | [Roman Fedorov](https://github.com/ffedoroff) | [rfswitch.c](../../../app/modules/rfswitch.c)|
+| 2016-12-01 | [Roman Fedorov](https://github.com/ffedoroff) | [Roman Fedorov](https://github.com/ffedoroff) | [rfswitch.c](../../app/modules/rfswitch.c)|
 
 
 Module to operate 433/315Mhz devices like power outlet sockets, relays, etc. This will most likely work with all popular low cost power outlet sockets with a SC5262 / SC5272, HX2262 / HX2272, PT2262 / PT2272, EV1527, RT1527, FP1527 or HS1527 chipset.

+ 1 - 1
docs/en/modules/rotary.md → docs/modules/rotary.md

@@ -1,7 +1,7 @@
 # rotary Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-03-01 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [rotary.c](../../../app/modules/rotary.c)|
+| 2016-03-01 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [rotary.c](../../app/modules/rotary.c)|
 
 
 This module can read the state of cheap rotary encoder switches. These are available at all the standard places for a dollar or two. They are five pin devices where three are used for a gray code encoder for rotation, and two are used for the push switch. These switches are commonly used in car audio systems. 

File diff suppressed because it is too large
+ 1 - 1
docs/modules/rtcfifo.md


+ 2 - 2
docs/en/modules/rtcmem.md → docs/modules/rtcmem.md

@@ -1,7 +1,7 @@
 # RTC User Memory Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-06-25 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [rtcmem.c](../../../app/modules/rtcmem.c)|
+| 2015-06-25 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [rtcmem.c](../../app/modules/rtcmem.c)|
 
 The rtcmem module provides basic access to the [RTC](https://en.wikipedia.org/wiki/Real-time_clock) (Real Time Clock) memory.
 
@@ -60,4 +60,4 @@ rtcmem.write32(0, 53) -- Store the value 53 in slot 0
 rtcmem.write32(42, 2, 5, 7) -- Store the values 2, 5 and 7 into slots 42, 43 and 44, respectively.
 ```
 #### See also
-[`rtcmem.read32()`](#rtcmemread32)
+[`rtcmem.read32()`](#rtcmemread32)

+ 1 - 1
docs/en/modules/rtctime.md → docs/modules/rtctime.md

@@ -1,7 +1,7 @@
 # RTC Time Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-06-25 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson), Bernd Meyer <bmeyer@dius.com.au> | [Johny Mattsson](https://github.com/jmattsson) | [rtctime.c](../../../app/modules/rtctime.c)|
+| 2015-06-25 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson), Bernd Meyer <bmeyer@dius.com.au> | [Johny Mattsson](https://github.com/jmattsson) | [rtctime.c](../../app/modules/rtctime.c)|
 
 The rtctime module provides advanced timekeeping support for NodeMCU, including keeping time across deep sleep cycles (provided [`rtctime.dsleep()`](#rtctimedsleep) is used instead of [`node.dsleep()`](node.md#nodedsleep)). This can be used to significantly extend battery life on battery powered sensor nodes, as it is no longer necessary to fire up the RF module each wake-up in order to obtain an accurate timestamp.
 

+ 1 - 1
docs/en/modules/si7021.md → docs/modules/si7021.md

@@ -1,7 +1,7 @@
 # Si7021 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-04-19 | [fetchbot](https://github.com/fetchbot) | [fetchbot](https://github.com/fetchbot) | [si7021.c](../../../app/modules/si7021.c)|
+| 2017-04-19 | [fetchbot](https://github.com/fetchbot) | [fetchbot](https://github.com/fetchbot) | [si7021.c](../../app/modules/si7021.c)|
 
 This module provides access to the Si7021 humidity and temperature sensor.
 

+ 1 - 1
docs/en/modules/sigma-delta.md → docs/modules/sigma-delta.md

@@ -1,7 +1,7 @@
 # Sigma-delta Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-02-20 | [Espressif example](http://bbs.espressif.com/viewtopic.php?t=49), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [sigma_delta.c](../../../app/modules/sigma_delta.c)|
+| 2016-02-20 | [Espressif example](http://bbs.espressif.com/viewtopic.php?t=49), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [sigma_delta.c](../../app/modules/sigma_delta.c)|
 
 This module provides access to the [sigma-delta](https://en.wikipedia.org/wiki/Delta-sigma_modulation) component. It's a hardware signal generator that can be routed to any of the GPIOs except pin 0.
 

+ 2 - 2
docs/en/modules/sjson.md → docs/modules/sjson.md

@@ -1,7 +1,7 @@
 # SJSON Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-02-01 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [sjson](../../../app/modules/sjson.c) |
+| 2017-02-01 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [sjson](../../app/modules/sjson.c) |
 
 The JSON support module. Allows encoding and decoding to/from JSON.
 
@@ -23,7 +23,7 @@ When encoding a Lua object, if a function is found, then it is invoked (with no
 
 !!! note
 
-    All examples below use in-memory JSON or content read from the SPIFFS file system. However, where a streaming implementation really shines is in fetching large JSON structures from the remote resources and extracting values on-the-fly. An elaborate streaming example can be found in the [`/lua_examples`](../../../lua_examples/sjson-streaming.lua) folder.
+    All examples below use in-memory JSON or content read from the SPIFFS file system. However, where a streaming implementation really shines is in fetching large JSON structures from the remote resources and extracting values on-the-fly. An elaborate streaming example can be found in the [`/lua_examples`](../../lua_examples/sjson-streaming.lua) folder.
 
 ## sjson.encoder()
 

+ 1 - 1
docs/en/modules/sntp.md → docs/modules/sntp.md

@@ -1,7 +1,7 @@
 # SNTP Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-06-30 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [sntp.c](../../../app/modules/sntp.c)|
+| 2015-06-30 | [DiUS](https://github.com/DiUS), [Johny Mattsson](https://github.com/jmattsson) | [Johny Mattsson](https://github.com/jmattsson) | [sntp.c](../../app/modules/sntp.c)|
 
 The SNTP module implements a [Simple Network Time Procotol](https://en.wikipedia.org/wiki/Network_Time_Protocol#SNTP) client. This includes support for the "anycast" [NTP](https://en.wikipedia.org/wiki/Network_Time_Protocol) mode where, if supported by the NTP server(s) in your network, it is not necessary to even know the IP address of the NTP server.
 By default, this will use the servers 0.nodemcu.pool.ntp.org through 3.nodemcu.pool.ntp.org. These servers will be adequate for nearly all usages.

+ 2 - 2
docs/en/modules/somfy.md → docs/modules/somfy.md

@@ -1,7 +1,7 @@
 # Somfy module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-09-27 | [vsky279](https://github.com/vsky279) | [vsky279](https://github.com/vsky279) | [somfy.c](../../../app/modules/somfy.c)|
+| 2016-09-27 | [vsky279](https://github.com/vsky279) | [vsky279](https://github.com/vsky279) | [somfy.c](../../app/modules/somfy.c)|
 
 This module provides a simple interface to control Somfy blinds via an RF transmitter (433.42 MHz). It is based on [Nickduino Somfy Remote Arduino skecth](https://github.com/Nickduino/Somfy_Remote). 
 
@@ -42,4 +42,4 @@ To start with controlling your Somfy blinds you need to:
 - execute `somfy.sendcommand(4, 123, somfy.PROG, 1, 2)` - the blinds will react and your ESP8266 remote control is now registered
 - running `somfy.sendcommand(4, 123, somfy.DOWN, 2, 16)` - fully closes the blinds
 
-For more elaborated example please refer to [`somfy.lua`](../../../lua_examples/somfy.lua).
+For more elaborated example please refer to [`somfy.lua`](../../lua_examples/somfy.lua).

+ 1 - 1
docs/en/modules/spi.md → docs/modules/spi.md

@@ -1,7 +1,7 @@
 # SPI Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-01-16 | [Ibrahim Abd Elkader](https://github.com/iabdalkader) |              [Arnim Läuger](https://github.com/devsaurus) | [spi.c](../../../app/modules/spi.c)|
+| 2015-01-16 | [Ibrahim Abd Elkader](https://github.com/iabdalkader) |              [Arnim Läuger](https://github.com/devsaurus) | [spi.c](../../app/modules/spi.c)|
 
 All transactions for sending and receiving are most-significant-bit first and least-significant last.
 For technical details of the underlying hardware refer to [metalphreak's ESP8266 HSPI articles](https://web.archive.org/web/20180425205107/http://d.av.id.au:80/blog/tag/hspi/).

+ 3 - 3
docs/en/modules/sqlite3.md → docs/modules/sqlite3.md

@@ -1,7 +1,7 @@
 # sqlite3 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-06-20 | [Luiz Felipe Silva](https://github.com/luizfeliperj) | [Luiz Felipe Silva](https://github.com/luizfeliperj) | [sqlite3.c](../../../app/modules/sqlite3.c)|
+| 2017-06-20 | [Luiz Felipe Silva](https://github.com/luizfeliperj) | [Luiz Felipe Silva](https://github.com/luizfeliperj) | [sqlite3.c](../../app/modules/sqlite3.c)|
 
 This module is based on [LuaSQLite3](http://lua.sqlite.org/index.cgi/index) module developed by Tiago Dionizio and Doug Currie with contributions from Thomas Lauer, Michael Roth, and Wolfgang Oertl.
 
@@ -9,7 +9,7 @@ This module depens on [SQLite3](http://www.sqlite.org/) library developed by Dwa
 
 For instruction on how to use this module or further documentation, please, refer to [LuaSQLite3 Documentation](http://lua.sqlite.org/index.cgi/doc/tip/doc/lsqlite3.wiki).
 
-This module is a stripped down version of SQLite, with every possible OMIT_\* configuration enable. The enabled OMIT_\* directives are available in the module's [config file](../../../app/sqlite3/config_ext.h).
+This module is a stripped down version of SQLite, with every possible OMIT_\* configuration enable. The enabled OMIT_\* directives are available in the module's [config file](../../app/sqlite3/config_ext.h).
 
 The SQLite3 module vfs layer integration with NodeMCU was developed by me.
 
@@ -29,4 +29,4 @@ db:exec[[
 for row in db:nrows("SELECT * FROM test") do
   print(row.id, row.content)
 end
-```
+```

+ 1 - 1
docs/en/modules/struct.md → docs/modules/struct.md

@@ -1,7 +1,7 @@
 # Struct Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-02-13 | [Roberto Ierusalimschy](http://www.inf.puc-rio.br/~roberto/struct/), [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [struct.c](../../../app/modules/struct.c)|
+| 2015-02-13 | [Roberto Ierusalimschy](http://www.inf.puc-rio.br/~roberto/struct/), [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [struct.c](../../app/modules/struct.c)|
 
 This module offers basic facilities to convert Lua values to and from C structs. Its main functions are `struct.pack`, which packs multiple Lua values into a struct-like string; and `struct.unpack`, which unpacks multiple Lua values from a given struct-like string.
 

+ 1 - 1
docs/en/modules/switec.md → docs/modules/switec.md

@@ -1,7 +1,7 @@
 # Switec Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-06-26 |[Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [switec.c](../../../app/modules/switec.c)|
+| 2016-06-26 |[Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [switec.c](../../app/modules/switec.c)|
 
 This module controls a [Switec X.27](http://www.jukenswisstech.com/?page_id=103) (or compatible) instrument stepper motor. These are the 
 stepper motors that are used in modern automotive instrument clusters. They are incredibly cheap

+ 1 - 1
docs/en/modules/tcs34725.md → docs/modules/tcs34725.md

@@ -1,7 +1,7 @@
 # TCS34725 module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-04-02 | [tjhowse](https://github.com/tjhowse) | [tjhowse](https://github.com/tjhowse) | [tcs34725.c](../../../app/modules/tcs34725.c)|
+| 2017-04-02 | [tjhowse](https://github.com/tjhowse) | [tjhowse](https://github.com/tjhowse) | [tcs34725.c](../../app/modules/tcs34725.c)|
 
 This module provides a simple interface to [TCS34725 colour/light sensors](https://www.adafruit.com/product/1334) (Adafruit).
 

+ 2 - 2
docs/en/modules/tls.md → docs/modules/tls.md

@@ -1,7 +1,7 @@
 # TLS Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-12-15 | [PhoeniX](https://github.com/djphoenix) | [PhoeniX](https://github.com/djphoenix) | [tls.c](../../../app/modules/tls.c)|
+| 2016-12-15 | [PhoeniX](https://github.com/djphoenix) | [PhoeniX](https://github.com/djphoenix) | [tls.c](../../app/modules/tls.c)|
 
 **SSL/TLS support**
 
@@ -11,7 +11,7 @@
 NodeMCU includes the open-source version of [mbed TLS library](https://tls.mbed.org/). With the NodeMCU default configuration it supports **TLS** 1.0 / 1.1 / 1.2 and the most common cipher suites, including DH/ECDH. ECDSA-based cipher suites are disabled by default.
 
 !!! tip
-	The complete configuration is stored in [user_mbedtls.h](../../../app/include/user_mbedtls.h). This is the file to edit if you build your own firmware and want to change mbed TLS behavior.
+	The complete configuration is stored in [user_mbedtls.h](../../app/include/user_mbedtls.h). This is the file to edit if you build your own firmware and want to change mbed TLS behavior.
 
 For a list of features have a look at the [mbed TLS features page](https://tls.mbed.org/core-features).
 

+ 1 - 1
docs/en/modules/tm1829.md → docs/modules/tm1829.md

@@ -1,7 +1,7 @@
 # TM1829 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-05-15 | [Sebastian Haas](https://github.com/sebi2k1) | [Sebastian Haas](https://github.com/sebi2k1) | [tm1829.c](../../../app/modules/tm1829.c)|
+| 2016-05-15 | [Sebastian Haas](https://github.com/sebi2k1) | [Sebastian Haas](https://github.com/sebi2k1) | [tm1829.c](../../app/modules/tm1829.c)|
 
 tm1829 is a library to handle led strips using Titan Micro tm1829
 led controller.

+ 1 - 1
docs/en/modules/tmr.md → docs/modules/tmr.md

@@ -1,7 +1,7 @@
 # Timer Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-12 | [Zeroday](https://github.com/funshine) |              [dnc40085](https://github.com/dnc40085) | [tmr.c](../../../app/modules/tmr.c)|
+| 2014-12-12 | [Zeroday](https://github.com/funshine) |              [dnc40085](https://github.com/dnc40085) | [tmr.c](../../app/modules/tmr.c)|
 
 The tmr module allows access to simple timers, the system counter and uptime.
 

+ 1 - 1
docs/en/modules/tsl2561.md → docs/modules/tsl2561.md

@@ -1,7 +1,7 @@
 # TSL2561 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-08-22 | [Michael Lucas](https://github.com/Aeprox) | [Michael Lucas](https://github.com/Aeprox) | [tsl2561.c](../../../app/modules/tsl2561.c)|
+| 2015-08-22 | [Michael Lucas](https://github.com/Aeprox) | [Michael Lucas](https://github.com/Aeprox) | [tsl2561.c](../../app/modules/tsl2561.c)|
 
 ## tsl2561.getlux()
 Reads sensor values from the device and returns calculated lux value.

+ 6 - 6
docs/en/modules/u8g2.md → docs/modules/u8g2.md

@@ -1,7 +1,7 @@
 # u8g2 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-06-02 | [Oli Kraus](https://github.com/olikraus/u8glib), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [u8g2.c](../../../app/modules/u8g2.c)|
+| 2017-06-02 | [Oli Kraus](https://github.com/olikraus/u8glib), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [u8g2.c](../../app/modules/u8g2.c)|
 
 U8g2 is a graphics library developed at [olikraus/u8g2](https://github.com/olikraus/u8g2) with support for many different displays. It is the successor of [U8glib](https://github.com/olikraus/u8glib) which is not developed any further. Please see [How to port U8g code](https://github.com/olikraus/u8g2/wiki/u8gvsu8g2) for generic porting instructions.
 
@@ -102,7 +102,7 @@ res = 0 -- RES is optional YMMV
 disp = u8g2.ssd1306_128x64_noname(bus, cs, dc, res)
 ```
 
-This object provides all of u8g2's methods to control the display. Refer to [graphics_test.lua](../../../lua_examples/u8g2/graphics_test.lua) to get an impression how this is achieved with Lua code. Visit the [u8g2 homepage](https://github.com/olikraus/u8g2) for technical details.
+This object provides all of u8g2's methods to control the display. Refer to [graphics_test.lua](../../lua_examples/u8g2/graphics_test.lua) to get an impression how this is achieved with Lua code. Visit the [u8g2 homepage](https://github.com/olikraus/u8g2) for technical details.
 
 ### Displays selection
 I²C and HW SPI based displays with support in u8g2 can be enabled.
@@ -110,7 +110,7 @@ I²C and HW SPI based displays with support in u8g2 can be enabled.
 The procedure is different for ESP8266 and ESP32 platforms.
 
 #### ESP8266
-Add the desired entries to the I²C or SPI display tables in [app/include/u8g2_displays.h](../../../app/include/u8g2_displays.h):
+Add the desired entries to the I²C or SPI display tables in [app/include/u8g2_displays.h](../../app/include/u8g2_displays.h):
 ```c
 #define U8G2_DISPLAY_TABLE_I2C \
   U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_noname_f, ssd1306_i2c_128x64_noname) \
@@ -135,7 +135,7 @@ U8g2 comes with a wide range of fonts for small displays. Fonts can be supplied
 The procedure is different for ESP8266 and ESP32 platforms.
 
 #### ESP8266
-Add the desired fonts to the font table in [app/include/u8g2_fonts.h](../../../app/include/u8g2_fonts.h):
+Add the desired fonts to the font table in [app/include/u8g2_fonts.h](../../app/include/u8g2_fonts.h):
 ```c
 #define U8G2_FONT_TABLE \
   U8G2_FONT_TABLE_ENTRY(font_6x10_tf) \
@@ -151,7 +151,7 @@ make EXTRA_CCFLAGS='-include $(TOP_DIR)/my_extras.h'
 Add the desired fonts to the font selection sub-entry via `make menuconfig`.
 
 ### Bitmaps
-XBM bitmaps are supplied as strings to `drawXBM()` in contrast to the source code based inclusion of XBMs in upstream u8g2 library. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../../lua_examples/u8g2/graphics_test.lua).
+XBM bitmaps are supplied as strings to `drawXBM()` in contrast to the source code based inclusion of XBMs in upstream u8g2 library. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../lua_examples/u8g2/graphics_test.lua).
 
 Conversion of XBM bitmaps can be performed online with [Online-Utility's Image Converter](http://www.online-utility.org/image_converter.jsp): Convert from XBM to MONO format and upload the binary result.
 
@@ -482,7 +482,7 @@ Draw a XBM Bitmap.
 
 See [u8g2 drawXBM()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawxbm).
 
-XBM bitmaps are supplied as strings to `drawXBM()`. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../../lua_examples/u8g2/graphics_test.lua).
+XBM bitmaps are supplied as strings to `drawXBM()`. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../lua_examples/u8g2/graphics_test.lua).
 
 In contrast to the source code based inclusion of XBMs in upstream u8g2 library, it's required to provide precompiled binary files. This can be performed online with [Online-Utility's Image Converter](http://www.online-utility.org/image_converter.jsp): Convert from XBM to MONO format and upload the binary result.
 

+ 1 - 1
docs/en/modules/uart.md → docs/modules/uart.md

@@ -1,7 +1,7 @@
 # UART Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [uart.c](../../../app/modules/uart.c)|
+| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Zeroday](https://github.com/funshine) | [uart.c](../../app/modules/uart.c)|
 
 The [UART](https://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter) (Universal asynchronous receiver/transmitter) module allows configuration of and communication over the UART serial port.
 

+ 3 - 3
docs/en/modules/ucg.md → docs/modules/ucg.md

@@ -1,7 +1,7 @@
 # ucg Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-08-05 | [Oli Kraus](https://github.com/olikraus/ucglib), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [ucglib](../../../app/ucglib/)|
+| 2015-08-05 | [Oli Kraus](https://github.com/olikraus/ucglib), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [ucglib](../../app/ucglib/)|
 
 Ucglib is a graphics library developed at [olikraus/ucglib](https://github.com/olikraus/ucglib) with support for color TFT displays.
 
@@ -92,7 +92,7 @@ The procedure is different for ESP8266 and ESP32 platforms.
 
 #### ESP8266
 
-Add the desired entries to the display table in [app/include/ucg_config.h](../../../app/include/ucg_config.h):
+Add the desired entries to the display table in [app/include/ucg_config.h](../../app/include/ucg_config.h):
 ```c
 #define UCG_DISPLAY_TABLE                          \
     UCG_DISPLAY_TABLE_ENTRY(ili9341_18x240x320_hw_spi, ucg_dev_ili9341_18x240x320, ucg_ext_ili9341_18) \
@@ -109,7 +109,7 @@ The procedure is different for ESP8266 and ESP32 platforms.
 
 #### ESP8266
 
-Add the desired fonts to the font table in  [app/include/ucg_config.h](../../../app/include/ucg_config.h):
+Add the desired fonts to the font table in  [app/include/ucg_config.h](../../app/include/ucg_config.h):
 ```c
 #define UCG_FONT_TABLE                              \
     UCG_FONT_TABLE_ENTRY(font_7x13B_tr)             \

+ 1 - 1
docs/en/modules/websocket.md → docs/modules/websocket.md

@@ -1,7 +1,7 @@
 # Websocket Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2016-08-02 | [Luís Fonseca](https://github.com/luismfonseca) | [Luís Fonseca](https://github.com/luismfonseca) | [websocket.c](../../../app/modules/websocket.c)|
+| 2016-08-02 | [Luís Fonseca](https://github.com/luismfonseca) | [Luís Fonseca](https://github.com/luismfonseca) | [websocket.c](../../app/modules/websocket.c)|
 
 A websocket *client* module that implements [RFC6455](https://tools.ietf.org/html/rfc6455) (version 13) and provides a simple interface to send and receive messages.
 

+ 4 - 4
docs/en/modules/wifi.md → docs/modules/wifi.md

@@ -1,7 +1,7 @@
 # WiFi Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-05-12 | [Zeroday](https://github.com/funshine) | [dnc40085](https://github.com/dnc40085) | [wifi.c](../../../app/modules/wifi.c)|
+| 2015-05-12 | [Zeroday](https://github.com/funshine) | [dnc40085](https://github.com/dnc40085) | [wifi.c](../../app/modules/wifi.c)|
 
 !!! important
 	The WiFi subsystem is maintained by background tasks that must run periodically. Any function or task that takes longer than 15ms (milliseconds) may cause the WiFi subsystem to crash. To avoid these potential crashes, it is advised that the WiFi subsystem be suspended with [wifi.suspend()](#wifisuspend) prior to the execution of any tasks or functions that exceed this 15ms guideline.
@@ -16,12 +16,12 @@ Each ESP8266 module can operate as a station, so we can connect it to the WiFi n
 #### Station
 Station (STA) mode is used to get the ESP8266 connected to a WiFi network established by an access point.
 
-![ESP8266 operating in station mode](../../img/WiFi-station-mode.png)
+![ESP8266 operating in station mode](../img/WiFi-station-mode.png)
 
 #### Soft Access Point
 An access point (AP) is a device that provides access to Wi-Fi network to other devices (stations) and connects them further to a wired network. ESP8266 can provide similar functionality except it does not have interface to a wired network. Such mode of operation is called soft access point (soft-AP). The maximum number of stations connected to the soft-AP is five.
 
-![ESP8266 operating in Soft Access Point mode](../../img/WiFi-softap-mode.png)
+![ESP8266 operating in Soft Access Point mode](../img/WiFi-softap-mode.png)
 
 The soft-AP mode is often used and an intermediate step before connecting ESP to a WiFi in a station mode. This is when SSID and password to such network is not known upfront. The module first boots in soft-AP mode, so we can connect to it using a laptop or a mobile phone. Then we are able to provide credentials to the target network. Once done ESP is switched to the station mode and can connect to the target WiFi.
 
@@ -30,7 +30,7 @@ Such functionality is provided by the [NodeMCU enduser setup module](../modules/
 #### Station + Soft Access Point
 Another handy application of soft-AP mode is to set up [mesh networks](https://en.wikipedia.org/wiki/Mesh_networking). ESP can operate in both soft-AP and Station mode so it can act as a node of a mesh network.
 
-![ESP8266 operating in station AP mode](../../img/WiFi-stationap-mode.png)
+![ESP8266 operating in station AP mode](../img/WiFi-stationap-mode.png)
 
 
 ### Function reference

+ 1 - 1
docs/en/modules/wifi_monitor.md → docs/modules/wifi_monitor.md

@@ -1,7 +1,7 @@
 # WiFi.monitor Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-12-20 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [wifi_monitor.c](../../../app/modules/wifi_monitor.c)|
+| 2017-12-20 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [wifi_monitor.c](../../app/modules/wifi_monitor.c)|
 
 This is an optional module that is only included if `LUA_USE_MODULES_WIFI_MONITOR` is defined in the `user_modules.h` file. This module
 provides access to the monitor mode features of the ESP8266 chipset. In particular, it provides access to received WiFi management frames.

+ 1 - 1
docs/en/modules/wps.md → docs/modules/wps.md

@@ -1,7 +1,7 @@
 # WPS Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-01-01 | [Frank Exoo](https://github.com/FrankX0) | [Frank Exoo](https://github.com/FrankX0) | [wps.c](../../../app/modules/wps.c)|
+| 2017-01-01 | [Frank Exoo](https://github.com/FrankX0) | [Frank Exoo](https://github.com/FrankX0) | [wps.c](../../app/modules/wps.c)|
 
 [WPS](https://en.wikipedia.org/wiki/Wi-Fi_Protected_Setup) allows devices to be added to an existing network without entering the network credentials.
 

+ 1 - 1
docs/en/modules/ws2801.md → docs/modules/ws2801.md

@@ -1,7 +1,7 @@
 # WS2801 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-07-12 | [Espressif example](https://github.com/CHERTS/esp8266-devkit/blob/master/Espressif/examples/ESP8266/EspLightNode/user/ws2801.c), [Konrad Beckmann](https://github.com/kbeckmann) | [Konrad Beckmann](https://github.com/kbeckmann) | [ws2801.c](../../../app/modules/ws2801.c)|
+| 2015-07-12 | [Espressif example](https://github.com/CHERTS/esp8266-devkit/blob/master/Espressif/examples/ESP8266/EspLightNode/user/ws2801.c), [Konrad Beckmann](https://github.com/kbeckmann) | [Konrad Beckmann](https://github.com/kbeckmann) | [ws2801.c](../../app/modules/ws2801.c)|
 
 
 ## ws2801.init()

+ 1 - 1
docs/en/modules/ws2812-effects.md → docs/modules/ws2812-effects.md

@@ -1,7 +1,7 @@
 # WS2812 effects Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-11-01 | [Konrad Huebner](https://github.com/skycoders) | [Konrad Huebner](https://github.com/skycoders) | [ws2812_effects.c](../../../app/modules/ws2812_effects.c)|
+| 2017-11-01 | [Konrad Huebner](https://github.com/skycoders) | [Konrad Huebner](https://github.com/skycoders) | [ws2812_effects.c](../../app/modules/ws2812_effects.c)|
 
 This module provides effects based on the [WS2812 library](ws2812.md). Some effects are inspired by / based on the [WS2812FX Library](https://github.com/kitesurfer1404/WS2812FX) but have been adopted to the specifics of the ws2812 library. The effects library works based on a buffer created through the ws2812 library and performs the operations on this buffer.
 

+ 1 - 1
docs/en/modules/ws2812.md → docs/modules/ws2812.md

@@ -1,7 +1,7 @@
 # WS2812 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2015-02-05 | [Till Klocke](https://github.com/dereulenspiegel), [Thomas Soëte](https://github.com/Alkorin) | [Till Klocke](https://github.com/dereulenspiegel) | [ws2812.c](../../../app/modules/ws2812.c)|
+| 2015-02-05 | [Till Klocke](https://github.com/dereulenspiegel), [Thomas Soëte](https://github.com/Alkorin) | [Till Klocke](https://github.com/dereulenspiegel) | [ws2812.c](../../app/modules/ws2812.c)|
 
 ws2812 is a library to handle ws2812-like led strips.
 It works at least on WS2812, WS2812b, APA104, SK6812 (RGB or RGBW).

+ 1 - 1
docs/en/modules/xpt2046.md → docs/modules/xpt2046.md

@@ -1,7 +1,7 @@
 # XPT2046 Module
 | Since  | Origin / Contributor  | Maintainer  | Source  |
 | :----- | :-------------------- | :---------- | :------ |
-| 2017-03-09| [Starofall](https://github.com/nodemcu/nodemcu-firmware/pull/1242)/[Frank Exoo](https://github.com/FrankX0) | [Frank Exoo](https://github.com/FrankX0) | [xpt2046.c](../../../app/modules/xpt2046.c)|
+| 2017-03-09| [Starofall](https://github.com/nodemcu/nodemcu-firmware/pull/1242)/[Frank Exoo](https://github.com/FrankX0) | [Frank Exoo](https://github.com/FrankX0) | [xpt2046.c](../../app/modules/xpt2046.c)|
 
 XPT2046 is a touch controller used by several cheap displays - often in combination with the ILI9341 display controller.
 The module is built based on the libraries of [spapadim](https://github.com/spapadim/XPT2046/) and [PaulStoffregen](https://github.com/PaulStoffregen/XPT2046_Touchscreen).

+ 4 - 4
docs/en/sdcard.md → docs/sdcard.md

@@ -12,7 +12,7 @@ Work is in progress to extend the `file` API with support for the missing featur
 
 The FAT file system is implemented by [Chan's FatFs](http://elm-chan.org/fsw/ff/00index_e.html) version [R0.12a](http://elm-chan.org/fsw/ff/ff12a.zip). It's disabled by default to save memory space and has to be enabled before compiling the firmware:
 
-Uncomment `#define BUILD_FATFS` in [`user_config.h`](../../app/include/user_config.h).
+Uncomment `#define BUILD_FATFS` in [`user_config.h`](../app/include/user_config.h).
 
 ## SD Card connection
 
@@ -31,8 +31,8 @@ Connection of `SS/CS` can be done to any of the GPIOs on pins 1 to 12. This allo
 
     The adapter does not require level shifters since SD and ESP are supposed to be powered with the same voltage. If your specific model contains level shifters then make sure that both sides can be operated at 3V3.
 
-![1:1 micro-sd adapter](../img/micro_sd-small.jpg "1:1 micro-sd adapter")
-![micro-sd shield](../img/micro_sd_shield-small.jpg "micro-sd shield")
+![1:1 micro-sd adapter](img/micro_sd-small.jpg "1:1 micro-sd adapter")
+![micro-sd shield](img/micro_sd_shield-small.jpg "micro-sd shield")
 
 ## Lua bindings
 
@@ -69,4 +69,4 @@ Subdirectories are supported on FAT volumes only.
 
 ## Multiple partitions / multiple cards
 
-The mapping from logical volumes (eg. `/SD0`) to partitions on an SD card is defined in [`fatfs_config.h`](../../app/include/fatfs_config.h). More volumes can be added to the `VolToPart` array with any combination of physical drive number (aka SS/CS pin) and partition number. Their names have to be added to `_VOLUME_STRS` in [`ffconf.h`](../../../app/fatfs/ffconf.h) as well.
+The mapping from logical volumes (eg. `/SD0`) to partitions on an SD card is defined in [`fatfs_config.h`](../app/include/fatfs_config.h). More volumes can be added to the `VolToPart` array with any combination of physical drive number (aka SS/CS pin) and partition number. Their names have to be added to `_VOLUME_STRS` in [`ffconf.h`](../app/fatfs/ffconf.h) as well.

+ 0 - 0
docs/en/spiffs.md → docs/spiffs.md


+ 1 - 1
docs/en/support.md → docs/support.md

@@ -6,4 +6,4 @@ Which ever site you use you need to make sure the description of the problem is
 Stack Overflow is the perfect place to ask coding questions. Use one or several of the following tags: [esp8266](http://stackoverflow.com/tags/esp8266), [nodemcu](http://stackoverflow.com/tags/nodemcu) or [Lua](http://stackoverflow.com/tags/lua).
 
 ## esp8266.com Forums
-esp8266.com has a few [NodeMCU specific forums](http://www.esp8266.com/viewforum.php?f=17) where a number of our active community members tend to hang out.
+esp8266.com has a few [NodeMCU specific forums](http://www.esp8266.com/viewforum.php?f=17) where a number of our active community members tend to hang out.

+ 1 - 1
docs/en/upload.md → docs/upload.md

@@ -13,7 +13,7 @@ The NodeMCU firmware team does not give any recommendations as for which uploade
 
 > The essential multiplatforms tools for any ESP8266 developer from luatool author’s, including Lua for NodeMCU and MicroPython. Also, all AT commands are supported. Requires Java (Standard Edition - SE ver 7 and above) installed.
 
-![ESPlorer](../img/ESPlorer.jpg "ESPlorer")
+![ESPlorer](img/ESPlorer.jpg "ESPlorer")
 
 Source: [https://github.com/4refr0nt/ESPlorer](https://github.com/4refr0nt/ESPlorer)
 

+ 1 - 1
lua_modules/bh1750/README.md

@@ -1,3 +1,3 @@
 # BH1750 Module
 
-Documentation for this Lua module is available in the [bh1750.md](../../docs/en/lua-modules/bh1750.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.
+Documentation for this Lua module is available in the [bh1750.md](../../docs/lua-modules/bh1750.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.

+ 1 - 1
lua_modules/ds18b20/README.md

@@ -1,3 +1,3 @@
 # DS18B20 Module
 
-Documentation for this Lua module is available in the [ds18b20.md](../../docs/en/lua-modules/ds18b20.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.
+Documentation for this Lua module is available in the [ds18b20.md](../../docs/lua-modules/ds18b20.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.

+ 1 - 1
lua_modules/ds3231/README.md

@@ -1,3 +1,3 @@
 # DS3231 Module
 
-Documentation for this Lua module is available in the [ds3231.md](../../docs/en/lua-modules/ds3231.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.
+Documentation for this Lua module is available in the [ds3231.md](../../docs/lua-modules/ds3231.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.

+ 1 - 1
lua_modules/email/README.md

@@ -1,3 +1,3 @@
 # IMAP Module
 
-Documentation for this Lua module is available in the [imap.md](../../docs/en/lua-modules/imap.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.
+Documentation for this Lua module is available in the [imap.md](../../docs/lua-modules/imap.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.

+ 1 - 1
lua_modules/ftp/README.md

@@ -1,3 +1,3 @@
 # FTP Server Module
 
-Documentation for this Lua module is available in the [ftpserver.md](../../docs/en/lua-modules/ftpserver.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.
+Documentation for this Lua module is available in the [ftpserver.md](../../docs/lua-modules/ftpserver.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.

+ 1 - 1
lua_modules/hdc1000/README.md

@@ -1,3 +1,3 @@
 # HDC1000 Module
 
-Documentation for this Lua module is available in the [hdc1000.md](../../docs/en/lua-modules/hdc1000.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.
+Documentation for this Lua module is available in the [hdc1000.md](../../docs/lua-modules/hdc1000.md) file and in the [Official NodeMCU Documentation](https://nodemcu.readthedocs.io/) in `Lua Modules` section.

Some files were not shown because too many files changed in this diff