From e27dfe464e9d28b407f4046c909e6aea61062b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Tue, 21 Dec 2021 19:27:33 +0100 Subject: [PATCH 01/14] deploy examples on website in wasm --- .github/workflows/ci.yml | 3 + .gitignore | 1 + generate-wasm-examples/.gitignore | 1 + .../generate_wasm_examples.sh | 67 +++++++++++++++++++ templates/example.html | 14 ++++ templates/examples.html | 66 ++++++++++++++++++ 6 files changed, 152 insertions(+) create mode 100644 generate-wasm-examples/.gitignore create mode 100755 generate-wasm-examples/generate_wasm_examples.sh create mode 100644 templates/example.html create mode 100644 templates/examples.html diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd50566d62..0b63e46fe6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,6 +15,9 @@ jobs: - name: "Build Bevy Error Codes" run: cd generate-errors && ./generate_errors.sh + - name: "Build Bevy Examples" + run: cd generate-wasm-examples && ./generate_wasm_examples.sh + - name: "Build website" uses: shalzz/zola-deploy-action@master env: diff --git a/.gitignore b/.gitignore index 110de283d1..c18a0ec267 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ public .idea/ content/assets content/learn/errors +content/examples diff --git a/generate-wasm-examples/.gitignore b/generate-wasm-examples/.gitignore new file mode 100644 index 0000000000..d73c3e7c7f --- /dev/null +++ b/generate-wasm-examples/.gitignore @@ -0,0 +1 @@ +bevy/ diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh new file mode 100755 index 0000000000..dc61ee4240 --- /dev/null +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +git init bevy +cd bevy +git remote add origin https://github.com/mockersf/bevy +git pull --depth=1 origin my-webgl2-2 + +# remove markdown files from assets so that they don't get picked up by Zola +find assets -type f -name '*.md' -exec rm {} + + +# setting the default width of a window to 1024 +sed -i.bak 's/width: 1280.,/width: 1024.,/' crates/bevy_window/src/window.rs + +# setting a canvas by default to help with integration +sed -i.bak 's/canvas: None,/canvas: Some("#bevy".to_string()),/' crates/bevy_window/src/window.rs + +# disable msaa on any example that may set it +sed -i.bak 's/Msaa { samples: 4 }/Msaa { samples: 1 }/' examples/*/*.rs + + +function add_category() { + category=$1 + category_path=`echo $category | tr '[:upper:]' '[:lower:]'` + example_weight=0 + + mkdir ../../content/examples/$category_path + + + for example in ${@:2} + do + echo "building $category / $example" + mkdir ../../content/examples/$category_path/$example + cp -r assets ../../content/examples/$category_path/$example + # need to disable default features to not have bevy_audio + cargo build --release --target wasm32-unknown-unknown --no-default-features --features "render,bevy_winit,png" --example $example + wasm-bindgen --out-dir ../../content/examples/$category_path/$example --no-typescript --target web target/wasm32-unknown-unknown/release/examples/$example.wasm + echo "+++ +title = \"$example\" +template = \"example.html\" +weight = $example_weight ++++" > ../../content/examples/$category_path/$example/index.md + ((example_weight++)) + done + + echo "+++ +title = \"$category\" +sort_by = \"weight\" +weight = $category_weight ++++" > ../../content/examples/$category_path/_index.md + ((category_weight++)) +} + +mkdir ../../content/examples + +echo "+++ +title = \"Bevy Examples in WebGL2\" +template = \"examples.html\" +sort_by = \"weight\" ++++" > ../../content/examples/_index.md + +category_weight=0 + +add_category 2d sprite text2d +add_category 3d 3d_scene lighting load_gltf parenting pbr texture +add_category UI button ui +add_category Games breakout alien_cake_addict +add_category Tools bevymark diff --git a/templates/example.html b/templates/example.html new file mode 100644 index 0000000000..48e8a06bf4 --- /dev/null +++ b/templates/example.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} + +{% block content %} +
+
+ +
Back to examples
+ +
+
+{% endblock content %} \ No newline at end of file diff --git a/templates/examples.html b/templates/examples.html new file mode 100644 index 0000000000..3e1a3fdda5 --- /dev/null +++ b/templates/examples.html @@ -0,0 +1,66 @@ +{% extends "base.html" %} + +{% block content %} +
+ + +
+ {% for subsection in section.subsections %} + {% set section = get_section(path=subsection) %} + +

+ {{ section.title }}# +

+ + {% if section.pages %} +
+ {% set pages = section.pages %} + {% if section.extra.sort_order_reversed %} + {% set pages = section.pages | reverse %} + {% endif %} + {% for post in pages %} + + + {% if post.extra.image %} +
+ +
+ {% endif %} +
+
{{ post.title }}
+
+
+ + {% endfor %} +
+ {% endif %} + + {% endfor %} +
+
+{% endblock content %} \ No newline at end of file From ff6b8955c81ebbc3bb7478e3acae3e659bd67ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Tue, 21 Dec 2021 19:43:07 +0100 Subject: [PATCH 02/14] change header displayed --- generate-wasm-examples/generate_wasm_examples.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh index dc61ee4240..f5d03c5e7e 100755 --- a/generate-wasm-examples/generate_wasm_examples.sh +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -38,6 +38,9 @@ function add_category() { title = \"$example\" template = \"example.html\" weight = $example_weight + +[extra] +header_message = \"Examples\" +++" > ../../content/examples/$category_path/$example/index.md ((example_weight++)) done @@ -56,6 +59,9 @@ echo "+++ title = \"Bevy Examples in WebGL2\" template = \"examples.html\" sort_by = \"weight\" + +[extra] +header_message = \"Examples\" +++" > ../../content/examples/_index.md category_weight=0 From 17a559ce2889cc2b28470ba47dfbb1a4ca538145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Tue, 21 Dec 2021 19:43:50 +0100 Subject: [PATCH 03/14] fix shell syntax? --- generate-wasm-examples/generate_wasm_examples.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh index f5d03c5e7e..0fe74c97dc 100755 --- a/generate-wasm-examples/generate_wasm_examples.sh +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -18,7 +18,7 @@ sed -i.bak 's/canvas: None,/canvas: Some("#bevy".to_string()),/' crates/bevy_win sed -i.bak 's/Msaa { samples: 4 }/Msaa { samples: 1 }/' examples/*/*.rs -function add_category() { +function add_category { category=$1 category_path=`echo $category | tr '[:upper:]' '[:lower:]'` example_weight=0 From d8e6ea7319fe0f701cc5f467ddbe90a515d296a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Tue, 21 Dec 2021 19:57:47 +0100 Subject: [PATCH 04/14] function syntax in sh? --- generate-wasm-examples/generate_wasm_examples.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh index 0fe74c97dc..6e19502f9f 100755 --- a/generate-wasm-examples/generate_wasm_examples.sh +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -18,7 +18,8 @@ sed -i.bak 's/canvas: None,/canvas: Some("#bevy".to_string()),/' crates/bevy_win sed -i.bak 's/Msaa { samples: 4 }/Msaa { samples: 1 }/' examples/*/*.rs -function add_category { +add_category() +{ category=$1 category_path=`echo $category | tr '[:upper:]' '[:lower:]'` example_weight=0 From 2394acd7e673480fc3f7265a4d3778c1e18a9c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Tue, 21 Dec 2021 19:59:11 +0100 Subject: [PATCH 05/14] arg behaviour in sh --- generate-wasm-examples/generate_wasm_examples.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh index 6e19502f9f..466f33db33 100755 --- a/generate-wasm-examples/generate_wasm_examples.sh +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -26,8 +26,8 @@ add_category() mkdir ../../content/examples/$category_path - - for example in ${@:2} + shift + for example in $@ do echo "building $category / $example" mkdir ../../content/examples/$category_path/$example From ef1ac378753dfa270c5e573039a87bfc721f004f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Tue, 21 Dec 2021 20:06:43 +0100 Subject: [PATCH 06/14] more shell syntax --- generate-wasm-examples/generate_wasm_examples.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh index 466f33db33..455de8718a 100755 --- a/generate-wasm-examples/generate_wasm_examples.sh +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -43,7 +43,8 @@ weight = $example_weight [extra] header_message = \"Examples\" +++" > ../../content/examples/$category_path/$example/index.md - ((example_weight++)) + + example_weight=$((example_weight+1)) done echo "+++ @@ -51,7 +52,8 @@ title = \"$category\" sort_by = \"weight\" weight = $category_weight +++" > ../../content/examples/$category_path/_index.md - ((category_weight++)) + + category_weight=$((category_weight+1)) } mkdir ../../content/examples From 243bf93d830521bed88839ca07b31badc719aab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Tue, 21 Dec 2021 20:06:57 +0100 Subject: [PATCH 07/14] install wasm target and wasm-bindgen --- .github/workflows/ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0b63e46fe6..6e2f863e38 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,8 +15,13 @@ jobs: - name: "Build Bevy Error Codes" run: cd generate-errors && ./generate_errors.sh + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + target: wasm32-unknown-unknown + - name: "Build Bevy Examples" - run: cd generate-wasm-examples && ./generate_wasm_examples.sh + run: cargo install wasm-bindgen && cd generate-wasm-examples && ./generate_wasm_examples.sh - name: "Build website" uses: shalzz/zola-deploy-action@master From 0368ed8d1eec89d141101f5add9bc1fb456e67f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Tue, 21 Dec 2021 20:12:21 +0100 Subject: [PATCH 08/14] :facepalm: --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6e2f863e38..87cd7f0d62 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: target: wasm32-unknown-unknown - name: "Build Bevy Examples" - run: cargo install wasm-bindgen && cd generate-wasm-examples && ./generate_wasm_examples.sh + run: cargo install wasm-bindgen-cli && cd generate-wasm-examples && ./generate_wasm_examples.sh - name: "Build website" uses: shalzz/zola-deploy-action@master From 666eddc96d9cd0c3619536569c2dc6b48b69bcc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Tue, 21 Dec 2021 21:07:07 +0100 Subject: [PATCH 09/14] copy example source and show it on page --- generate-wasm-examples/generate_wasm_examples.sh | 3 ++- templates/example.html | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh index 455de8718a..8da8de26a1 100755 --- a/generate-wasm-examples/generate_wasm_examples.sh +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -32,6 +32,7 @@ add_category() echo "building $category / $example" mkdir ../../content/examples/$category_path/$example cp -r assets ../../content/examples/$category_path/$example + cp examples/$category_path/$example.rs ../../content/examples/$category_path/$example/ # need to disable default features to not have bevy_audio cargo build --release --target wasm32-unknown-unknown --no-default-features --features "render,bevy_winit,png" --example $example wasm-bindgen --out-dir ../../content/examples/$category_path/$example --no-typescript --target web target/wasm32-unknown-unknown/release/examples/$example.wasm @@ -72,5 +73,5 @@ category_weight=0 add_category 2d sprite text2d add_category 3d 3d_scene lighting load_gltf parenting pbr texture add_category UI button ui -add_category Games breakout alien_cake_addict +add_category Game breakout alien_cake_addict add_category Tools bevymark diff --git a/templates/example.html b/templates/example.html index 48e8a06bf4..e77edd8b3e 100644 --- a/templates/example.html +++ b/templates/example.html @@ -9,6 +9,11 @@
Back to examples
+ {% set code = load_data(path="content/examples/" ~ page.components[1] ~ "/" ~ page.title ~ "/" ~ page.title ~ ".rs") %} + {% set data = "```rust +" ~ code ~ "```" %} + + {{data | markdown(inline=true) | safe}} {% endblock content %} \ No newline at end of file From 6fa350eaae6a48b5274d479577259d4afa7513d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Wed, 22 Dec 2021 02:22:33 +0100 Subject: [PATCH 10/14] adding more examples --- generate-wasm-examples/generate_wasm_examples.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh index 8da8de26a1..8dcf16d4ce 100755 --- a/generate-wasm-examples/generate_wasm_examples.sh +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -70,8 +70,8 @@ header_message = \"Examples\" category_weight=0 -add_category 2d sprite text2d -add_category 3d 3d_scene lighting load_gltf parenting pbr texture -add_category UI button ui +add_category 2d rect sprite sprite_flipping sprite_sheet text2d +add_category 3d 3d_scene lighting load_gltf orthographic parenting pbr texture update_gltf_scene +add_category UI button text text_debug ui add_category Game breakout alien_cake_addict add_category Tools bevymark From b2b3fed630f93f4758a71362fd1a534cff4bc531 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Wed, 22 Dec 2021 02:23:05 +0100 Subject: [PATCH 11/14] updating branch --- generate-wasm-examples/generate_wasm_examples.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh index 8dcf16d4ce..ecc339e3c8 100755 --- a/generate-wasm-examples/generate_wasm_examples.sh +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -3,7 +3,7 @@ git init bevy cd bevy git remote add origin https://github.com/mockersf/bevy -git pull --depth=1 origin my-webgl2-2 +git pull --depth=1 origin webgl2-under-feature # remove markdown files from assets so that they don't get picked up by Zola find assets -type f -name '*.md' -exec rm {} + From efec5a1c46be79daf164686f154335084101f60c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Wed, 22 Dec 2021 09:50:14 +0100 Subject: [PATCH 12/14] add link to example source on github on branch latest --- templates/example.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/templates/example.html b/templates/example.html index e77edd8b3e..8ee834d149 100644 --- a/templates/example.html +++ b/templates/example.html @@ -9,6 +9,11 @@
Back to examples
+
+ + Example in Bevy github repo + +
{% set code = load_data(path="content/examples/" ~ page.components[1] ~ "/" ~ page.title ~ "/" ~ page.title ~ ".rs") %} {% set data = "```rust " ~ code ~ "```" %} From 31d74a5b8e3159d8b729e49239d37b2bd4c65a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Thu, 23 Dec 2021 09:54:32 +0100 Subject: [PATCH 13/14] tiny improvements to the example page --- templates/example.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/templates/example.html b/templates/example.html index 8ee834d149..632e325b74 100644 --- a/templates/example.html +++ b/templates/example.html @@ -8,10 +8,11 @@ init()
Back to examples
- +
+ {{ page.components[1] }} / {{ page.title }} - - Example in Bevy github repo + See this example in Bevy github repo
{% set code = load_data(path="content/examples/" ~ page.components[1] ~ "/" ~ page.title ~ "/" ~ page.title ~ ".rs") %} From 04910aea43ee53e309aa3061e786c086c87f08ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= <8672791+mockersf@users.noreply.github.com> Date: Thu, 23 Dec 2021 09:54:49 +0100 Subject: [PATCH 14/14] use bevy main :tada: --- generate-wasm-examples/generate_wasm_examples.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generate-wasm-examples/generate_wasm_examples.sh b/generate-wasm-examples/generate_wasm_examples.sh index ecc339e3c8..5b04070b44 100755 --- a/generate-wasm-examples/generate_wasm_examples.sh +++ b/generate-wasm-examples/generate_wasm_examples.sh @@ -2,8 +2,8 @@ git init bevy cd bevy -git remote add origin https://github.com/mockersf/bevy -git pull --depth=1 origin webgl2-under-feature +git remote add origin https://github.com/bevyengine/bevy +git pull --depth=1 origin main # remove markdown files from assets so that they don't get picked up by Zola find assets -type f -name '*.md' -exec rm {} +