Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.
+
+
Mauris vestibulum ullamcorper nibh, ut semper purus pulvinar ut. Donec volutpat orci sit amet mauris malesuada, non pulvinar augue aliquam. Vestibulum ultricies at urna ut suscipit. Morbi iaculis, erat at imperdiet semper, ipsum nulla sodales erat, eget tincidunt justo dui quis justo. Pellentesque dictum bibendum diam at aliquet. Sed pulvinar, dolor quis finibus ornare, eros odio facilisis erat, eu rhoncus nunc dui sed ex. Nunc gravida dui massa, sed ornare arcu tincidunt sit amet. Maecenas efficitur sapien neque, a laoreet libero feugiat ut.
+
Nulla facilisi. Maecenas sodales nec purus eget posuere. Sed sapien quam, pretium a risus in, porttitor dapibus erat. Sed sit amet fringilla ipsum, eget iaculis augue. Integer sollicitudin tortor quis ultricies aliquam. Suspendisse fringilla nunc in tellus cursus, at placerat tellus scelerisque. Sed tempus elit a sollicitudin rhoncus. Nulla facilisi. Morbi nec dolor dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras et aliquet lectus. Pellentesque sit amet eros nisi. Quisque ac sapien in sapien congue accumsan. Nullam in posuere ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin lacinia leo a nibh fringilla pharetra.
+
Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin venenatis lectus dui, vel ultrices ante bibendum hendrerit. Aenean egestas feugiat dui id hendrerit. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur in tellus laoreet, eleifend nunc id, viverra leo. Proin vulputate non dolor vel vulputate. Curabitur pretium lobortis felis, sit amet finibus lorem suscipit ut. Sed non mollis risus. Duis sagittis, mi in euismod tincidunt, nunc mauris vestibulum urna, at euismod est elit quis erat. Phasellus accumsan vitae neque eu placerat. In elementum arcu nec tellus imperdiet, eget maximus nulla sodales. Curabitur eu sapien eget nisl sodales fermentum.
+
Phasellus pulvinar ex id commodo imperdiet. Praesent odio nibh, sollicitudin sit amet faucibus id, placerat at metus. Donec vitae eros vitae tortor hendrerit finibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae purus dolor. Duis suscipit ac nulla et finibus. Phasellus ac sem sed dui dictum gravida. Phasellus eleifend vestibulum facilisis. Integer pharetra nec enim vitae mattis. Duis auctor, lectus quis condimentum bibendum, nunc dolor aliquam massa, id bibendum orci velit quis magna. Ut volutpat nulla nunc, sed interdum magna condimentum non. Sed urna metus, scelerisque vitae consectetur a, feugiat quis magna. Donec dignissim ornare nisl, eget tempor risus malesuada quis.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/2016/03/11/blog-post/index.html b/website/build/sketchware-docs/blog/2016/03/11/blog-post/index.html
new file mode 100644
index 0000000..33ba903
--- /dev/null
+++ b/website/build/sketchware-docs/blog/2016/03/11/blog-post/index.html
@@ -0,0 +1,63 @@
+Blog Title · Sketchware docs
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.
+
+
Mauris vestibulum ullamcorper nibh, ut semper purus pulvinar ut. Donec volutpat orci sit amet mauris malesuada, non pulvinar augue aliquam. Vestibulum ultricies at urna ut suscipit. Morbi iaculis, erat at imperdiet semper, ipsum nulla sodales erat, eget tincidunt justo dui quis justo. Pellentesque dictum bibendum diam at aliquet. Sed pulvinar, dolor quis finibus ornare, eros odio facilisis erat, eu rhoncus nunc dui sed ex. Nunc gravida dui massa, sed ornare arcu tincidunt sit amet. Maecenas efficitur sapien neque, a laoreet libero feugiat ut.
+
Nulla facilisi. Maecenas sodales nec purus eget posuere. Sed sapien quam, pretium a risus in, porttitor dapibus erat. Sed sit amet fringilla ipsum, eget iaculis augue. Integer sollicitudin tortor quis ultricies aliquam. Suspendisse fringilla nunc in tellus cursus, at placerat tellus scelerisque. Sed tempus elit a sollicitudin rhoncus. Nulla facilisi. Morbi nec dolor dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras et aliquet lectus. Pellentesque sit amet eros nisi. Quisque ac sapien in sapien congue accumsan. Nullam in posuere ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin lacinia leo a nibh fringilla pharetra.
+
Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin venenatis lectus dui, vel ultrices ante bibendum hendrerit. Aenean egestas feugiat dui id hendrerit. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur in tellus laoreet, eleifend nunc id, viverra leo. Proin vulputate non dolor vel vulputate. Curabitur pretium lobortis felis, sit amet finibus lorem suscipit ut. Sed non mollis risus. Duis sagittis, mi in euismod tincidunt, nunc mauris vestibulum urna, at euismod est elit quis erat. Phasellus accumsan vitae neque eu placerat. In elementum arcu nec tellus imperdiet, eget maximus nulla sodales. Curabitur eu sapien eget nisl sodales fermentum.
+
Phasellus pulvinar ex id commodo imperdiet. Praesent odio nibh, sollicitudin sit amet faucibus id, placerat at metus. Donec vitae eros vitae tortor hendrerit finibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae purus dolor. Duis suscipit ac nulla et finibus. Phasellus ac sem sed dui dictum gravida. Phasellus eleifend vestibulum facilisis. Integer pharetra nec enim vitae mattis. Duis auctor, lectus quis condimentum bibendum, nunc dolor aliquam massa, id bibendum orci velit quis magna. Ut volutpat nulla nunc, sed interdum magna condimentum non. Sed urna metus, scelerisque vitae consectetur a, feugiat quis magna. Donec dignissim ornare nisl, eget tempor risus malesuada quis.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/2017/04/10/blog-post-two.html b/website/build/sketchware-docs/blog/2017/04/10/blog-post-two.html
new file mode 100644
index 0000000..bb898d3
--- /dev/null
+++ b/website/build/sketchware-docs/blog/2017/04/10/blog-post-two.html
@@ -0,0 +1,63 @@
+New Blog Post · Sketchware docs
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.
+
+
Mauris vestibulum ullamcorper nibh, ut semper purus pulvinar ut. Donec volutpat orci sit amet mauris malesuada, non pulvinar augue aliquam. Vestibulum ultricies at urna ut suscipit. Morbi iaculis, erat at imperdiet semper, ipsum nulla sodales erat, eget tincidunt justo dui quis justo. Pellentesque dictum bibendum diam at aliquet. Sed pulvinar, dolor quis finibus ornare, eros odio facilisis erat, eu rhoncus nunc dui sed ex. Nunc gravida dui massa, sed ornare arcu tincidunt sit amet. Maecenas efficitur sapien neque, a laoreet libero feugiat ut.
+
Nulla facilisi. Maecenas sodales nec purus eget posuere. Sed sapien quam, pretium a risus in, porttitor dapibus erat. Sed sit amet fringilla ipsum, eget iaculis augue. Integer sollicitudin tortor quis ultricies aliquam. Suspendisse fringilla nunc in tellus cursus, at placerat tellus scelerisque. Sed tempus elit a sollicitudin rhoncus. Nulla facilisi. Morbi nec dolor dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras et aliquet lectus. Pellentesque sit amet eros nisi. Quisque ac sapien in sapien congue accumsan. Nullam in posuere ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin lacinia leo a nibh fringilla pharetra.
+
Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin venenatis lectus dui, vel ultrices ante bibendum hendrerit. Aenean egestas feugiat dui id hendrerit. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur in tellus laoreet, eleifend nunc id, viverra leo. Proin vulputate non dolor vel vulputate. Curabitur pretium lobortis felis, sit amet finibus lorem suscipit ut. Sed non mollis risus. Duis sagittis, mi in euismod tincidunt, nunc mauris vestibulum urna, at euismod est elit quis erat. Phasellus accumsan vitae neque eu placerat. In elementum arcu nec tellus imperdiet, eget maximus nulla sodales. Curabitur eu sapien eget nisl sodales fermentum.
+
Phasellus pulvinar ex id commodo imperdiet. Praesent odio nibh, sollicitudin sit amet faucibus id, placerat at metus. Donec vitae eros vitae tortor hendrerit finibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae purus dolor. Duis suscipit ac nulla et finibus. Phasellus ac sem sed dui dictum gravida. Phasellus eleifend vestibulum facilisis. Integer pharetra nec enim vitae mattis. Duis auctor, lectus quis condimentum bibendum, nunc dolor aliquam massa, id bibendum orci velit quis magna. Ut volutpat nulla nunc, sed interdum magna condimentum non. Sed urna metus, scelerisque vitae consectetur a, feugiat quis magna. Donec dignissim ornare nisl, eget tempor risus malesuada quis.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/2017/04/10/blog-post-two/index.html b/website/build/sketchware-docs/blog/2017/04/10/blog-post-two/index.html
new file mode 100644
index 0000000..bb898d3
--- /dev/null
+++ b/website/build/sketchware-docs/blog/2017/04/10/blog-post-two/index.html
@@ -0,0 +1,63 @@
+New Blog Post · Sketchware docs
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.
+
+
Mauris vestibulum ullamcorper nibh, ut semper purus pulvinar ut. Donec volutpat orci sit amet mauris malesuada, non pulvinar augue aliquam. Vestibulum ultricies at urna ut suscipit. Morbi iaculis, erat at imperdiet semper, ipsum nulla sodales erat, eget tincidunt justo dui quis justo. Pellentesque dictum bibendum diam at aliquet. Sed pulvinar, dolor quis finibus ornare, eros odio facilisis erat, eu rhoncus nunc dui sed ex. Nunc gravida dui massa, sed ornare arcu tincidunt sit amet. Maecenas efficitur sapien neque, a laoreet libero feugiat ut.
+
Nulla facilisi. Maecenas sodales nec purus eget posuere. Sed sapien quam, pretium a risus in, porttitor dapibus erat. Sed sit amet fringilla ipsum, eget iaculis augue. Integer sollicitudin tortor quis ultricies aliquam. Suspendisse fringilla nunc in tellus cursus, at placerat tellus scelerisque. Sed tempus elit a sollicitudin rhoncus. Nulla facilisi. Morbi nec dolor dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras et aliquet lectus. Pellentesque sit amet eros nisi. Quisque ac sapien in sapien congue accumsan. Nullam in posuere ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin lacinia leo a nibh fringilla pharetra.
+
Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin venenatis lectus dui, vel ultrices ante bibendum hendrerit. Aenean egestas feugiat dui id hendrerit. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur in tellus laoreet, eleifend nunc id, viverra leo. Proin vulputate non dolor vel vulputate. Curabitur pretium lobortis felis, sit amet finibus lorem suscipit ut. Sed non mollis risus. Duis sagittis, mi in euismod tincidunt, nunc mauris vestibulum urna, at euismod est elit quis erat. Phasellus accumsan vitae neque eu placerat. In elementum arcu nec tellus imperdiet, eget maximus nulla sodales. Curabitur eu sapien eget nisl sodales fermentum.
+
Phasellus pulvinar ex id commodo imperdiet. Praesent odio nibh, sollicitudin sit amet faucibus id, placerat at metus. Donec vitae eros vitae tortor hendrerit finibus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque vitae purus dolor. Duis suscipit ac nulla et finibus. Phasellus ac sem sed dui dictum gravida. Phasellus eleifend vestibulum facilisis. Integer pharetra nec enim vitae mattis. Duis auctor, lectus quis condimentum bibendum, nunc dolor aliquam massa, id bibendum orci velit quis magna. Ut volutpat nulla nunc, sed interdum magna condimentum non. Sed urna metus, scelerisque vitae consectetur a, feugiat quis magna. Donec dignissim ornare nisl, eget tempor risus malesuada quis.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/2017/09/25/testing-rss.html b/website/build/sketchware-docs/blog/2017/09/25/testing-rss.html
new file mode 100644
index 0000000..d597665
--- /dev/null
+++ b/website/build/sketchware-docs/blog/2017/09/25/testing-rss.html
@@ -0,0 +1,61 @@
+Adding RSS Support - RSS Truncation Test · Sketchware docs
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/2017/09/25/testing-rss/index.html b/website/build/sketchware-docs/blog/2017/09/25/testing-rss/index.html
new file mode 100644
index 0000000..d597665
--- /dev/null
+++ b/website/build/sketchware-docs/blog/2017/09/25/testing-rss/index.html
@@ -0,0 +1,61 @@
+Adding RSS Support - RSS Truncation Test · Sketchware docs
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/2017/09/26/adding-rss.html b/website/build/sketchware-docs/blog/2017/09/26/adding-rss.html
new file mode 100644
index 0000000..a9d3be2
--- /dev/null
+++ b/website/build/sketchware-docs/blog/2017/09/26/adding-rss.html
@@ -0,0 +1,59 @@
+Adding RSS Support · Sketchware docs
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/2017/09/26/adding-rss/index.html b/website/build/sketchware-docs/blog/2017/09/26/adding-rss/index.html
new file mode 100644
index 0000000..a9d3be2
--- /dev/null
+++ b/website/build/sketchware-docs/blog/2017/09/26/adding-rss/index.html
@@ -0,0 +1,59 @@
+Adding RSS Support · Sketchware docs
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/2017/10/24/new-version-1.0.0.html b/website/build/sketchware-docs/blog/2017/10/24/new-version-1.0.0.html
new file mode 100644
index 0000000..649e545
--- /dev/null
+++ b/website/build/sketchware-docs/blog/2017/10/24/new-version-1.0.0.html
@@ -0,0 +1,58 @@
+New Version 1.0.0 · Sketchware docs
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/2017/10/24/new-version-1.0.0/index.html b/website/build/sketchware-docs/blog/2017/10/24/new-version-1.0.0/index.html
new file mode 100644
index 0000000..649e545
--- /dev/null
+++ b/website/build/sketchware-docs/blog/2017/10/24/new-version-1.0.0/index.html
@@ -0,0 +1,58 @@
+New Version 1.0.0 · Sketchware docs
]]>
+
+ Eric Nakagawa
+ http://twitter.com/ericnakagawa
+
+
+
+
+ https://sketchware.danbulant.eu/blog/2017/09/26/adding-rss.html
+
+
+ 2017-09-26T06:00:00Z
+ This is a test post.
+]]>
+
+
+
+ https://sketchware.danbulant.eu/blog/2017/04/10/blog-post-two.html
+ https://sketchware.danbulant.eu/blog/2017/04/10/blog-post-two.html
+ Mon, 10 Apr 2017 06:00:00 GMT
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.
+]]>
+
+
+
+ https://sketchware.danbulant.eu/blog/2016/03/11/blog-post.html
+ https://sketchware.danbulant.eu/blog/2016/03/11/blog-post.html
+ Fri, 11 Mar 2016 06:00:00 GMT
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.
+]]>
+
+
+
\ No newline at end of file
diff --git a/website/build/sketchware-docs/blog/index.html b/website/build/sketchware-docs/blog/index.html
new file mode 100644
index 0000000..8424144
--- /dev/null
+++ b/website/build/sketchware-docs/blog/index.html
@@ -0,0 +1,64 @@
+Blog · Sketchware docs
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.
Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the “Software”), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
Last updated on 10/27/2019 by danbulant
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/LICENSE/index.html b/website/build/sketchware-docs/docs/en/LICENSE/index.html
new file mode 100644
index 0000000..2c9dc58
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/LICENSE/index.html
@@ -0,0 +1,21 @@
+The MIT License (MIT) · Sketchware docs
Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the “Software”), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
Last updated on 10/27/2019 by danbulant
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/README.html b/website/build/sketchware-docs/docs/en/README.html
new file mode 100644
index 0000000..daaad81
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/README.html
@@ -0,0 +1,69 @@
+Sketchware docs · Sketchware docs
Sketchware was made to be as user friendly as possible. Even if you didn't write any code before, you can create your first android app in just a few minutes.
+
What's scratch
+
Scratch is open source project for making simple animations and programs. You can find more at scratch.mit.edu.
+
Prerequisites
+
There are just a few things to get started:
+
+
Get friendly with scratch as sketchware is platform to build and share your apps, it's important to know what are you using to make your apps. Open scratch in your pc web browser and try to make a simple animation (trust me, you'll learn a lot). Then, go back here and start making real apps for android!
+
Sketchware sketchware is needed to be installed on your device to build your apps. Once your app is packaged (you'll learn what that means later), you can share your app anywhere (and others can try it even if they don't have sketchware)
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/README/index.html b/website/build/sketchware-docs/docs/en/README/index.html
new file mode 100644
index 0000000..daaad81
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/README/index.html
@@ -0,0 +1,69 @@
+Sketchware docs · Sketchware docs
Sketchware was made to be as user friendly as possible. Even if you didn't write any code before, you can create your first android app in just a few minutes.
+
What's scratch
+
Scratch is open source project for making simple animations and programs. You can find more at scratch.mit.edu.
+
Prerequisites
+
There are just a few things to get started:
+
+
Get friendly with scratch as sketchware is platform to build and share your apps, it's important to know what are you using to make your apps. Open scratch in your pc web browser and try to make a simple animation (trust me, you'll learn a lot). Then, go back here and start making real apps for android!
+
Sketchware sketchware is needed to be installed on your device to build your apps. Once your app is packaged (you'll learn what that means later), you can share your app anywhere (and others can try it even if they don't have sketchware)
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/_coverpage.html b/website/build/sketchware-docs/docs/en/_coverpage.html
new file mode 100644
index 0000000..15ab10d
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/_coverpage.html
@@ -0,0 +1,5 @@
+en/_coverpage · Sketchware docs
This is an project of Daniel Bulant and Honza Rössler to make a readable docs for scratch app creator for android.
+
This documentation is made using Markdown and Docsify.js
+
Last updated on 10/27/2019 by danbulant
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/_coverpage/index.html b/website/build/sketchware-docs/docs/en/_coverpage/index.html
new file mode 100644
index 0000000..15ab10d
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/_coverpage/index.html
@@ -0,0 +1,5 @@
+en/_coverpage · Sketchware docs
This is an project of Daniel Bulant and Honza Rössler to make a readable docs for scratch app creator for android.
+
This documentation is made using Markdown and Docsify.js
+
Last updated on 10/27/2019 by danbulant
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/_sidebar.html b/website/build/sketchware-docs/docs/en/_sidebar.html
new file mode 100644
index 0000000..54eed88
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/_sidebar.html
@@ -0,0 +1,79 @@
+en/_sidebar · Sketchware docs
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/_sidebar/index.html b/website/build/sketchware-docs/docs/en/_sidebar/index.html
new file mode 100644
index 0000000..54eed88
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/_sidebar/index.html
@@ -0,0 +1,79 @@
+en/_sidebar · Sketchware docs
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/blocks/control.html b/website/build/sketchware-docs/docs/en/blocks/control.html
new file mode 100644
index 0000000..79d389c
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/blocks/control.html
@@ -0,0 +1,68 @@
+Control blocks · Sketchware docs
Control blocks have a yellow color and are used to check for condition or repeat part of code.
+
Repeat (number)
+
Repeat block is used to repeat the blocks inside x times, where x is the number parameter. Can be stopped before it repeats all time with stop block, which will skip remaining loops and continue after the repeat block.
+
Forever
+
Forever block is used to repeat the blocks inside until it's stopped with a stop block. Compilation will not work if forever block doesn't have a stop block. Please keep in mind, that your app will be unusable if forever block doesn't run stop (for example when used with if).
+
Stop
+
Stop block can be placed only inside repeat and forever blocks. It will immediately stop the execution of the block and skip after the end of repeat/forever.
+
If
+
If block is used to run blocks inside it only when bool is true. You can use bool variable or use operator blocks.
+
If else
+
The if-else block works like if, but if the bool is false, it will execute blocks inside else instead.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/blocks/control/index.html b/website/build/sketchware-docs/docs/en/blocks/control/index.html
new file mode 100644
index 0000000..79d389c
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/blocks/control/index.html
@@ -0,0 +1,68 @@
+Control blocks · Sketchware docs
Control blocks have a yellow color and are used to check for condition or repeat part of code.
+
Repeat (number)
+
Repeat block is used to repeat the blocks inside x times, where x is the number parameter. Can be stopped before it repeats all time with stop block, which will skip remaining loops and continue after the repeat block.
+
Forever
+
Forever block is used to repeat the blocks inside until it's stopped with a stop block. Compilation will not work if forever block doesn't have a stop block. Please keep in mind, that your app will be unusable if forever block doesn't run stop (for example when used with if).
+
Stop
+
Stop block can be placed only inside repeat and forever blocks. It will immediately stop the execution of the block and skip after the end of repeat/forever.
+
If
+
If block is used to run blocks inside it only when bool is true. You can use bool variable or use operator blocks.
+
If else
+
The if-else block works like if, but if the bool is false, it will execute blocks inside else instead.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/blocks/variables.html b/website/build/sketchware-docs/docs/en/blocks/variables.html
new file mode 100644
index 0000000..b6e3ed6
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/blocks/variables.html
@@ -0,0 +1,83 @@
+Variables · Sketchware docs
Variable is a key-value pair, name = value. A variable is used to save data into RAM. This means, that where app is closed, variables are deleted.
+
Variable types
+
Boolean
+
1 or 0
+
Boolean is a variable that can be either true (1) or false (0). It's directly usable in if statement.
+
Number
+
20.35, 25, 27.5
+
Number (programmatically known as Double) is a variable that can save most numbers (some are too big). It has double precision.
+
String
+
foo, bar, hello
+
String is a variable that can save text.
+
Map
+
a = str, b = hello
+
Map is a list of key-value pairs. Get and save data to it by keys, have same rules as variable names.
+
List
+
0 = hello, 1 = hi
+
A list (known as array) is a variable that works as map, but instead of string as key, it uses offset number. This means, that the first value has index of 0. The last has Length - 1.
+
Widgets
+
A widget is a variable too. A variable with the same name as id of the widget is used to save reference and to use it in blocks such as setText.
+
Components
+
Components are saved in variable, same as widgets, they're saved to keep a reference to use it in future.
+
Naming rules
+
A variable must have at least one character(can be either case). It must start with a character, then it can contain any number of characters, numbers or dashes.
+In RegEx, it would be written as ''' [a-zA-Z][a-zA-Z1-9-]* '''
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/blocks/variables/index.html b/website/build/sketchware-docs/docs/en/blocks/variables/index.html
new file mode 100644
index 0000000..b6e3ed6
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/blocks/variables/index.html
@@ -0,0 +1,83 @@
+Variables · Sketchware docs
Variable is a key-value pair, name = value. A variable is used to save data into RAM. This means, that where app is closed, variables are deleted.
+
Variable types
+
Boolean
+
1 or 0
+
Boolean is a variable that can be either true (1) or false (0). It's directly usable in if statement.
+
Number
+
20.35, 25, 27.5
+
Number (programmatically known as Double) is a variable that can save most numbers (some are too big). It has double precision.
+
String
+
foo, bar, hello
+
String is a variable that can save text.
+
Map
+
a = str, b = hello
+
Map is a list of key-value pairs. Get and save data to it by keys, have same rules as variable names.
+
List
+
0 = hello, 1 = hi
+
A list (known as array) is a variable that works as map, but instead of string as key, it uses offset number. This means, that the first value has index of 0. The last has Length - 1.
+
Widgets
+
A widget is a variable too. A variable with the same name as id of the widget is used to save reference and to use it in blocks such as setText.
+
Components
+
Components are saved in variable, same as widgets, they're saved to keep a reference to use it in future.
+
Naming rules
+
A variable must have at least one character(can be either case). It must start with a character, then it can contain any number of characters, numbers or dashes.
+In RegEx, it would be written as ''' [a-zA-Z][a-zA-Z1-9-]* '''
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/components/components.html b/website/build/sketchware-docs/docs/en/components/components.html
new file mode 100644
index 0000000..7bbc27b
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/components/components.html
@@ -0,0 +1,98 @@
+Components · Sketchware docs
Components are used to add functionality to your app which isn't possible without them.
+There's a list of available components (at the time of writing):
+
Intent
+
Intent is used to switch between activities and interchange data between them.
+
SharedPreferences
+
Shared preferences are used to save data permanently. They are saved in device storage, but are deleted upon uninstallation(as opposed to file).
+
Calendar
+
Calendar is used to get the current time and date. Can be used to format it to a given string.
+
Vibrator
+
A simple component which will vibrate the device for x milliseconds (usually 200-300). Only on devices that support vibration.
+
Timer
+
Timer is used to delay or repeat certain functions.
+
Dialog
+
Dialog component is used to show simple dialog with up to three buttons.
+
MediaPlayer
+
Media Player is used to play longer tracks.
+*The difference between soundpool and Media Player is that soundpool can handle multiple tracks while MediaPlayer can handle longer track(but only one per component) *.
+
Soundpool
+
SoundPool is used to play more short tracks. It can store multiple tracks while sacrificing performance (not usable for longer tracks).
+
ObjectAnimator
+
ObjectAnimator is used to animate widgets inside view.
+
Camera
+
Camera is used to capture an image from device camera (Only on devices that support camera).
+
FilePicker
+
FilePicker is used to pick multiple files from user storage. They are returned as list String of their paths.
+
Gyroscope
+
Gyroscope component is a way to get your device rotation. (Only available on devices that support it)
+
Firebase
+
Firebase components are used to save a data, whether it's a DB, Auth or Storage.
+
Interestial ad
+
Interestial ad is a way to earn money while showing personalized banners to user.
+
TextToSpeech
+
TTS (For short) is used to convert English text to speech. Speech is played right after the function executes, no need of soundpool.
+
SpeechToText
+
Voice recognition is a way to convert human speech to text.
+
RequestNetwork
+
Request Network is used to send requests to APIs. This can be used to save or load data from your server.
+
BluetoothConnection
+
Bluetooth is a way to share data wirelessly without a man in the middle (Router on WiFi).
+
LocationManager
+
LocationManager is used to retrieve user location.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/components/components/index.html b/website/build/sketchware-docs/docs/en/components/components/index.html
new file mode 100644
index 0000000..7bbc27b
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/components/components/index.html
@@ -0,0 +1,98 @@
+Components · Sketchware docs
Components are used to add functionality to your app which isn't possible without them.
+There's a list of available components (at the time of writing):
+
Intent
+
Intent is used to switch between activities and interchange data between them.
+
SharedPreferences
+
Shared preferences are used to save data permanently. They are saved in device storage, but are deleted upon uninstallation(as opposed to file).
+
Calendar
+
Calendar is used to get the current time and date. Can be used to format it to a given string.
+
Vibrator
+
A simple component which will vibrate the device for x milliseconds (usually 200-300). Only on devices that support vibration.
+
Timer
+
Timer is used to delay or repeat certain functions.
+
Dialog
+
Dialog component is used to show simple dialog with up to three buttons.
+
MediaPlayer
+
Media Player is used to play longer tracks.
+*The difference between soundpool and Media Player is that soundpool can handle multiple tracks while MediaPlayer can handle longer track(but only one per component) *.
+
Soundpool
+
SoundPool is used to play more short tracks. It can store multiple tracks while sacrificing performance (not usable for longer tracks).
+
ObjectAnimator
+
ObjectAnimator is used to animate widgets inside view.
+
Camera
+
Camera is used to capture an image from device camera (Only on devices that support camera).
+
FilePicker
+
FilePicker is used to pick multiple files from user storage. They are returned as list String of their paths.
+
Gyroscope
+
Gyroscope component is a way to get your device rotation. (Only available on devices that support it)
+
Firebase
+
Firebase components are used to save a data, whether it's a DB, Auth or Storage.
+
Interestial ad
+
Interestial ad is a way to earn money while showing personalized banners to user.
+
TextToSpeech
+
TTS (For short) is used to convert English text to speech. Speech is played right after the function executes, no need of soundpool.
+
SpeechToText
+
Voice recognition is a way to convert human speech to text.
+
RequestNetwork
+
Request Network is used to send requests to APIs. This can be used to save or load data from your server.
+
BluetoothConnection
+
Bluetooth is a way to share data wirelessly without a man in the middle (Router on WiFi).
+
LocationManager
+
LocationManager is used to retrieve user location.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/duplicate-vars.html b/website/build/sketchware-docs/docs/en/duplicate-vars.html
new file mode 100644
index 0000000..dcfefb3
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/duplicate-vars.html
@@ -0,0 +1,70 @@
+Why is sketchware showing that name xxx is not available · Sketchware docs
Why is sketchware showing that name xxx is not available
There are quite a few answers, actually. It's mostly because there is another variable with the same name.
+But for better debugging of this project, we first need to know how what's variable. Even if it sounds trivial, it isn't.
+
What's variable
+
A variable can be multiple things:
+
+
Literal variable. These are created in logic editor by clicking Ads variable in variable tab.
+
Widget. A widget id must be unique. The ID is stored as a variable, thus the widget can be a variable. That's also why you can see widgets id inside variable tab in code editor.
+
Component. As we have pointed out in Create your first project, the components are actually a classes which are saved in a variable.
+
+
This brings us to a new question:
+
Why we can't have duplicate variable names
+
This seems quite obvious (and it realy is). You can't have variable a = "dummy string" and use a object named a. This would lead into problems like a.setText() is not function.
+Also another reason could be how Android handles types. Learn what a type is here. You can't assign a string to number variable. That's like trying to store water in a bag. (Don't try it). Although this type juggling (You can learn more at Google) is possible in certain languages (php, Javascript etc.), it is not in Android (as it's more bug-safe and has certain performance advantages.)
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/duplicate-vars/index.html b/website/build/sketchware-docs/docs/en/duplicate-vars/index.html
new file mode 100644
index 0000000..dcfefb3
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/duplicate-vars/index.html
@@ -0,0 +1,70 @@
+Why is sketchware showing that name xxx is not available · Sketchware docs
Why is sketchware showing that name xxx is not available
There are quite a few answers, actually. It's mostly because there is another variable with the same name.
+But for better debugging of this project, we first need to know how what's variable. Even if it sounds trivial, it isn't.
+
What's variable
+
A variable can be multiple things:
+
+
Literal variable. These are created in logic editor by clicking Ads variable in variable tab.
+
Widget. A widget id must be unique. The ID is stored as a variable, thus the widget can be a variable. That's also why you can see widgets id inside variable tab in code editor.
+
Component. As we have pointed out in Create your first project, the components are actually a classes which are saved in a variable.
+
+
This brings us to a new question:
+
Why we can't have duplicate variable names
+
This seems quite obvious (and it realy is). You can't have variable a = "dummy string" and use a object named a. This would lead into problems like a.setText() is not function.
+Also another reason could be how Android handles types. Learn what a type is here. You can't assign a string to number variable. That's like trying to store water in a bag. (Don't try it). Although this type juggling (You can learn more at Google) is possible in certain languages (php, Javascript etc.), it is not in Android (as it's more bug-safe and has certain performance advantages.)
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/first-project.html b/website/build/sketchware-docs/docs/en/first-project.html
new file mode 100644
index 0000000..cb6f8f8
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/first-project.html
@@ -0,0 +1,85 @@
+Creating your new application · Sketchware docs
To create your first app, you need to create a project for it.
+You can do it by opening sketchware and tapping "Create new project" (the + button).
+
Sketchware will then ask you for some basic information. For now, you just need to enter the name of your app (To be shown under the icon).
+
Tabs
+
When your new project is created, you will see 3 tabs. The one selected now is View, where you change how your application looks.
+
View
+
In the view tab, there are 3 main things. On the left, you'll see a list of objects you can use.
+On the right, there is a canvas which is used to drop objects in.
+
Try dropping a TextView on the canvas and select it. Now you will see the third part of this tab - properties of the currently selected object.
+To to change the text, select text property in object properties. A dialog asking for a new text will appear. Write anything you like.
+
Event
+
Before learning about the event tab, we first need to learn how Android application works.
+
Android is a event driven language, which means it fires an event when a user do something or a response is get.
+
Tab contents
+
In the tab, their are 3 main contents which are used. On the left, you can see groups of events. You can switch between them by clicking on their icons.
+
On the right, you can see a list of events in the currently selected group.
+
Finally, on the bottom right, there's a FAB - Floating Action Button. It has + icon in it.
+This button will show you a dialog to create a new event listener.
+
Event listeners
+
Event listener is a function (or method) that's called when a certain event is fired. For example, when you run your app, a onCreate event will be fired. There's already a listener for this event. Select Activity group and you will see it. Click on it's name and code editor will open.
+
Code editor
+
Remember how we mentioned Scratch in the main page? The code editor uses it's design. You can then make your logic for the event there.
+
Components
+
In the components tab, there's a list of currently available app components. In the real programming, they are called Classes, but for the sake of simplicity, we will continue to call them components.
+When you open Components tab for the first time in your project, you will see it's empty. To add a new component, click the + icon on FAB. This will show a dialog with a gridlist of available components. Select one of them and enter it's name (must be unique, we will point out why later) to add it to your app (there are some exceptions).
+
Conclusion
+
That's all! You learnt how to create your first app and how to use the project UI.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/docs/en/first-project/index.html b/website/build/sketchware-docs/docs/en/first-project/index.html
new file mode 100644
index 0000000..cb6f8f8
--- /dev/null
+++ b/website/build/sketchware-docs/docs/en/first-project/index.html
@@ -0,0 +1,85 @@
+Creating your new application · Sketchware docs
To create your first app, you need to create a project for it.
+You can do it by opening sketchware and tapping "Create new project" (the + button).
+
Sketchware will then ask you for some basic information. For now, you just need to enter the name of your app (To be shown under the icon).
+
Tabs
+
When your new project is created, you will see 3 tabs. The one selected now is View, where you change how your application looks.
+
View
+
In the view tab, there are 3 main things. On the left, you'll see a list of objects you can use.
+On the right, there is a canvas which is used to drop objects in.
+
Try dropping a TextView on the canvas and select it. Now you will see the third part of this tab - properties of the currently selected object.
+To to change the text, select text property in object properties. A dialog asking for a new text will appear. Write anything you like.
+
Event
+
Before learning about the event tab, we first need to learn how Android application works.
+
Android is a event driven language, which means it fires an event when a user do something or a response is get.
+
Tab contents
+
In the tab, their are 3 main contents which are used. On the left, you can see groups of events. You can switch between them by clicking on their icons.
+
On the right, you can see a list of events in the currently selected group.
+
Finally, on the bottom right, there's a FAB - Floating Action Button. It has + icon in it.
+This button will show you a dialog to create a new event listener.
+
Event listeners
+
Event listener is a function (or method) that's called when a certain event is fired. For example, when you run your app, a onCreate event will be fired. There's already a listener for this event. Select Activity group and you will see it. Click on it's name and code editor will open.
+
Code editor
+
Remember how we mentioned Scratch in the main page? The code editor uses it's design. You can then make your logic for the event there.
+
Components
+
In the components tab, there's a list of currently available app components. In the real programming, they are called Classes, but for the sake of simplicity, we will continue to call them components.
+When you open Components tab for the first time in your project, you will see it's empty. To add a new component, click the + icon on FAB. This will show a dialog with a gridlist of available components. Select one of them and enter it's name (must be unique, we will point out why later) to add it to your app (there are some exceptions).
+
Conclusion
+
That's all! You learnt how to create your first app and how to use the project UI.
\ No newline at end of file
diff --git a/website/build/sketchware-docs/js/codetabs.js b/website/build/sketchware-docs/js/codetabs.js
new file mode 100644
index 0000000..dd01ebf
--- /dev/null
+++ b/website/build/sketchware-docs/js/codetabs.js
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2017-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+// Turn off ESLint for this file because it's sent down to users as-is.
+/* eslint-disable */
+window.addEventListener('load', function() {
+ // add event listener for all tab
+ document.querySelectorAll('.nav-link').forEach(function(el) {
+ el.addEventListener('click', function(e) {
+ const groupId = e.target.getAttribute('data-group');
+ document
+ .querySelectorAll(`.nav-link[data-group=${groupId}]`)
+ .forEach(function(el) {
+ el.classList.remove('active');
+ });
+ document
+ .querySelectorAll(`.tab-pane[data-group=${groupId}]`)
+ .forEach(function(el) {
+ el.classList.remove('active');
+ });
+ e.target.classList.add('active');
+ document
+ .querySelector(`#${e.target.getAttribute('data-tab')}`)
+ .classList.add('active');
+ });
+ });
+});
diff --git a/website/build/sketchware-docs/js/scrollSpy.js b/website/build/sketchware-docs/js/scrollSpy.js
new file mode 100644
index 0000000..0632e6c
--- /dev/null
+++ b/website/build/sketchware-docs/js/scrollSpy.js
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2017-present, Facebook, Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/* eslint-disable prefer-arrow-callback */
+(function scrollSpy() {
+ const OFFSET = 10;
+ let timer;
+ let headingsCache;
+ const findHeadings = function findHeadings() {
+ return headingsCache || document.querySelectorAll('.toc-headings > li > a');
+ };
+ const onScroll = function onScroll() {
+ if (timer) {
+ // throttle
+ return;
+ }
+ timer = setTimeout(function() {
+ timer = null;
+ let activeNavFound = false;
+ const headings = findHeadings(); // toc nav anchors
+ /**
+ * On every call, try to find header right after <-- next header
+ * the one whose content is on the current screen <-- highlight this
+ */
+ for (let i = 0; i < headings.length; i++) {
+ // headings[i] is current element
+ // if an element is already active, then current element is not active
+ // if no element is already active, then current element is active
+ let currNavActive = !activeNavFound;
+ /**
+ * Enter the following check up only when an active nav header is not yet found
+ * Then, check the bounding rectangle of the next header
+ * The headers that are scrolled passed will have negative bounding rect top
+ * So the first one with positive bounding rect top will be the nearest next header
+ */
+ if (currNavActive && i < headings.length - 1) {
+ const heading = headings[i + 1];
+ const next = decodeURIComponent(heading.href.split('#')[1]);
+ const nextHeader = document.getElementById(next);
+
+ if (nextHeader) {
+ const top = nextHeader.getBoundingClientRect().top;
+ currNavActive = top > OFFSET;
+ } else {
+ console.error('Can not find header element', {
+ id: next,
+ heading,
+ });
+ }
+ }
+ /**
+ * Stop searching once a first such header is found,
+ * this makes sure the highlighted header is the most current one
+ */
+ if (currNavActive) {
+ activeNavFound = true;
+ headings[i].classList.add('active');
+ } else {
+ headings[i].classList.remove('active');
+ }
+ }
+ }, 100);
+ };
+
+ document.addEventListener('scroll', onScroll);
+ document.addEventListener('resize', onScroll);
+ document.addEventListener('DOMContentLoaded', function() {
+ // Cache the headings once the page has fully loaded.
+ headingsCache = findHeadings();
+ onScroll();
+ });
+})();
diff --git a/website/build/sketchware-docs/sitemap.xml b/website/build/sketchware-docs/sitemap.xml
new file mode 100644
index 0000000..037c6a2
--- /dev/null
+++ b/website/build/sketchware-docs/sitemap.xml
@@ -0,0 +1 @@
+https://sketchware.danbulant.eu/helpweekly0.5https://sketchware.danbulant.eu/indexweekly0.5https://sketchware.danbulant.eu/usersweekly0.5https://sketchware.danbulant.eu/blog/2017/10/24/new-version-1.0.0weekly0.3https://sketchware.danbulant.eu/blog/2017/09/26/adding-rssweekly0.3https://sketchware.danbulant.eu/blog/2017/09/25/testing-rssweekly0.3https://sketchware.danbulant.eu/blog/2017/04/10/blog-post-twoweekly0.3https://sketchware.danbulant.eu/blog/2016/03/11/blog-postweekly0.3https://sketchware.danbulant.eu/docs/en/_coverpagehourly1.0https://sketchware.danbulant.eu/docs/en/_sidebarhourly1.0https://sketchware.danbulant.eu/docs/en/blocks/controlhourly1.0https://sketchware.danbulant.eu/docs/en/blocks/variableshourly1.0https://sketchware.danbulant.eu/docs/en/components/componentshourly1.0https://sketchware.danbulant.eu/docs/en/duplicate-varshourly1.0https://sketchware.danbulant.eu/docs/en/first-projecthourly1.0https://sketchware.danbulant.eu/docs/en/LICENSEhourly1.0https://sketchware.danbulant.eu/docs/en/READMEhourly1.0
\ No newline at end of file
diff --git a/website/build/sketchware-docs/users.html b/website/build/sketchware-docs/users.html
new file mode 100644
index 0000000..c4700d3
--- /dev/null
+++ b/website/build/sketchware-docs/users.html
@@ -0,0 +1 @@
+Sketchware docs · Unofficial sketchware documentation
\ No newline at end of file
diff --git a/website/core/Footer.js b/website/core/Footer.js
index 2fa2e2a..cda9232 100644
--- a/website/core/Footer.js
+++ b/website/core/Footer.js
@@ -30,14 +30,14 @@ class Footer extends React.Component {