Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
ce4634a
Add check markdown lint action
st-Wook Jun 12, 2023
19dc891
Run workflow_dispatch
st-Wook Jun 12, 2023
829be7d
Run workflow_dispatch
st-Wook Jun 12, 2023
4cebfb4
Update markdownlint.yml
st-Wook Jun 12, 2023
92033d0
Update markdownlint.yml
st-Wook Jun 12, 2023
58d27aa
Ignore MD047 Lint
st-Wook Jun 12, 2023
d1eb73f
Ignore all-features md files
st-Wook Jun 12, 2023
ca24b09
Ignore MD001, MD004, MD036 lint
st-Wook Jun 12, 2023
507306a
Apply lint to `gevelop5/behaviors`
st-Wook Jun 12, 2023
ebd9502
Ignore MD024, MD026, MD046 lint
st-Wook Jun 12, 2023
0bb2ec8
Apply lint to `gevelop5/community`
st-Wook Jun 12, 2023
0e512e4
Apply lint to `gevelop5/events`
st-Wook Jun 12, 2023
c6edc93
Apply lint to `gevelop5/getting_started`
st-Wook Jun 12, 2023
c1d0ff0
Apply lint to `gevelop5/interface`
st-Wook Jun 12, 2023
f3e0904
Ignore MD033 lint
st-Wook Jun 12, 2023
0050eac
Apply lint to `gevelop5/objects`
st-Wook Jun 12, 2023
0ec3dda
Ignore MD010-text lint
st-Wook Jun 12, 2023
1810f4c
Apply lint to `gevelop5/publishing`
st-Wook Jun 12, 2023
0633fe1
Ignore MD038 lint
st-Wook Jun 12, 2023
70f7347
Apply lint to `gevelop5/tutorials`
st-Wook Jun 12, 2023
be4cffb
Apply lint to `gevelop5/` and `index.md`
st-Wook Jun 12, 2023
69c661b
Apply lint
st-Wook Jun 12, 2023
b1b7d32
Apply lint to `gevelop5/community`
st-Wook Jun 12, 2023
91757c0
Update properties.md
st-Wook Jun 12, 2023
e53e2e4
Apply lint to `gevelop5/all-features`
st-Wook Jun 13, 2023
1072b8b
Change the number of start indent
st-Wook Jun 14, 2023
f472963
Change the number of start indent
st-Wook Jun 14, 2023
41ed5c2
Fix indent nested paragraph
st-Wook Jun 14, 2023
48a597b
Fix nested paragraph to nested list
st-Wook Jun 14, 2023
a79664d
Auto Fix and Push
st-Wook Jun 20, 2023
1170be9
Fix push error
st-Wook Jun 20, 2023
ddec738
Test
st-Wook Jun 20, 2023
afe71ce
Fix action error
st-Wook Jun 20, 2023
97b7a2e
Update markdownlint.yml
st-Wook Jun 20, 2023
ee416a0
Update markdownlint.yml
st-Wook Jun 20, 2023
022c7b1
Update markdownlint.yml
st-Wook Jun 20, 2023
8397902
Update markdownlint.yml
st-Wook Jun 20, 2023
49acb28
Update markdownlint.yml
st-Wook Jun 20, 2023
dd747d6
Automatically fix markdown lint errors
st-Wook Jun 23, 2023
6e376b5
Fix ref error
st-Wook Jun 23, 2023
7209f6b
Cleanup
st-Wook Jun 23, 2023
04b889a
Revert "Test"
st-Wook Jun 23, 2023
c80e1c0
Fix permission issue
st-Wook Jun 23, 2023
e5ce8d1
Fix lint
st-Wook Jul 17, 2023
699be21
Ignore automatically generated files
st-Wook Jul 17, 2023
b5eb55e
Revert "automatically generated files"
st-Wook Jul 17, 2023
2b3c866
Revert "automatically generated files"
st-Wook Jul 17, 2023
0505400
Ignore MD040 lint
st-Wook Jul 17, 2023
0bd6404
Apply lint
st-Wook Jul 17, 2023
9307060
Update markdownlint-cli2-action
st-Wook Jul 17, 2023
ba29103
Update markdownlint.yml
st-Wook Jul 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions .github/workflows/markdownlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Lint Markdown

on:
pull_request_target:
types: [opened, synchronize, reopened, edited]

permissions:
contents: write
pull-requests: write

jobs:
lint:
runs-on: ubuntu-latest
if: github.event.pull_request.merged == false && github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0

- uses: tj-actions/changed-files@v36
id: changed-files
with:
files: |
docs/*.md
docs/gdevelop5/**/*.md
files_ignore: | # auto-generated pages
docs/gdevelop5/all-features/**/index.md
docs/gdevelop5/all-features/**/expressions-reference.md
docs/gdevelop5/all-features/**/reference.md
docs/gdevelop5/extensions/**/index.md
separator: ","

- uses: DavidAnson/markdownlint-cli2-action@v11
if: steps.changed-files.outputs.any_changed == 'true'
continue-on-error: true
with:
fix: true
globs: ${{ steps.changed-files.outputs.all_changed_files }}
separator: ","

- name: Commit and push
if: steps.changed-files.outputs.any_changed == 'true'
run: |
git config --global user.email "ci-builder@gdevelop.io"
git config --global user.name "GDevelop documentation CI"
git add .
git commit -m "Fix lint errors" || echo "Nothing to commit (or error during commit?)"
git push origin HEAD:${{ github.head_ref }} || echo "Nothing to push (or error during commit or push?)"

- name: Find the existing comment about games in the PR
if: steps.changed-files.outputs.any_changed == 'true'
uses: peter-evans/find-comment@v2
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: "Markdown lint errors were detected and have been automatically changed. Here is the list of changed files:"

- name: Get list of modified files
if: steps.changed-files.outputs.any_changed == 'true'
id: get_modified_files
run: |
author=$(git log -1 --pretty=format:'%an')
if [ "$author" == "GDevelop documentation CI" ]; then
files=$(git diff --name-only HEAD^ HEAD)
if [ -z "$files" ]; then
echo "files_list=\"\"" >> $GITHUB_OUTPUT
exit 0
fi

files_list=$(echo "$files" | sed 's/^/- /' | paste -s -d '\n' -)
echo "files_list=$(echo "$files_list" | jq -R -s -c '@text')" >> $GITHUB_OUTPUT
else
echo "files_list=\"\"" >> $GITHUB_OUTPUT
fi
shell: bash

- name: Create or update comment
if: steps.changed-files.outputs.any_changed == 'true' && steps.get_modified_files.outputs.files_list != '""'
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
Hello 👋,

Markdown lint errors were detected and have been automatically changed. Here is the list of changed files:

${{ fromJSON(steps.get_modified_files.outputs.files_list) }}

Please review these changes to ensure they align with the project's goals and guidelines. If you have any questions or concerns, feel free to comment here.

Thank you for your contribution! 🚀
edit-mode: replace
18 changes: 18 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"default": true,
"MD001": false,
"MD004": false,
"MD007": { "indent": 4, "start_indent": 2, "start_indented": true },
"MD010": { "ignore_code_languages": ["text"] },
"MD013": false,
"MD024": false,
"MD025": false,
"MD026": false,
"MD033": false,
"MD036": false,
"MD038": false,
"MD040": false,
"MD045": false,
"MD046": false,
"MD047": false
}
2 changes: 1 addition & 1 deletion CONTRIBUTE.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ mkdocs serve
mkdocs serve --dirtyreload
```

This will run the documentation on http://localhost:8000.
This will run the documentation on <http://localhost:8000>.

### Build

Expand Down
12 changes: 6 additions & 6 deletions SYNTAX.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ For example, to display:

You shall write:

```
```md
- Getting started
- First step
- Second step
Expand All @@ -41,7 +41,7 @@ List of objects:

will be rendered as:

```
```md
List of objects: - Sprite - Text
```

Expand All @@ -67,7 +67,7 @@ For example, to display:

You shall write:

```
```md
1. First item
1. First nested item
1. Second nested item
Expand All @@ -84,9 +84,9 @@ Use this syntax:

```md
<div class="video-container">
<video controls>
<source src="/gdevelop5/objects/ParticleEmitterWishforgeVideo.mp4">
</video>
<video controls>
<source src="/gdevelop5/objects/ParticleEmitterWishforgeVideo.mp4">
</video>
</div>
```

Expand Down
6 changes: 3 additions & 3 deletions docs/es/gdevelop5/objects/sprite.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ Para agregar el objeto sprite a nuestra escena, simplemente selecciónelo y haga
Tu nuevo sprite ahora está completo, pero aún debes agregarlo a la escena de tu juego. Haga clic en el nuevo sprite en la lista de objetos. A continuación, haga clic en la escena donde desea agregar el sprite. Ahora verás tu sprite agregado a la escena. Puedes agregar múltiples "instancias" de tu sprite a tu pantalla de juego. Simplemente repita el proceso para agregar el primer sprite.

<div class="video-container">
<video controls>
<source src="/gdevelop5/objects/addspritetoscenecompressed.mp4">
</video>
<video controls>
<source src="/gdevelop5/objects/addspritetoscenecompressed.mp4">
</video>
</div>

### Más información sobre animaciones múltiples mientras usas eventos.
Expand Down
22 changes: 11 additions & 11 deletions docs/gdevelop5/all-features/extensions/linked-objects-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ This extension allows to create graphs (like a road networks) and use it to find

3 examples illustrate how this can be used in games:

- Match-3 game: a Bust-a-Move clone ([open the project online](https://editor.gdevelop.io/?project=example://bim-bam))
- to find cluster of bubbles of the same colors
- to find bubbles that no longer held when some bubbles are removed
- Tactical games: selection and movement of units on a hexagonal grid ([open the project online](https://editor.gdevelop.io/?project=example://tactical-game-grid-movement))
- to find cells where a unit can go
- to make the unit move to the selected cell
- City builders: evaluator demo ([open the project online](https://editor.gdevelop.io/?project=example://city-builder))
- to evaluate distance between houses and facilities
- Match-3 game: a Bust-a-Move clone ([open the project online](https://editor.gdevelop.io/?project=example://bim-bam))
- to find cluster of bubbles of the same colors
- to find bubbles that no longer held when some bubbles are removed
- Tactical games: selection and movement of units on a hexagonal grid ([open the project online](https://editor.gdevelop.io/?project=example://tactical-game-grid-movement))
- to find cells where a unit can go
- to make the unit move to the selected cell
- City builders: evaluator demo ([open the project online](https://editor.gdevelop.io/?project=example://city-builder))
- to evaluate distance between houses and facilities

## Understand graphs

Expand All @@ -24,9 +24,9 @@ Graphs are a way to schematize networks like roads, Internet etc. Graphs are com

It's not an obligation to organize nodes on a grid. But, for grid-based games, some actions can help to build such grids:

- Rectangular Grids
- Isometric Grids
- Hexagonal Grids
- Rectangular Grids
- Isometric Grids
- Hexagonal Grids

![](/gdevelop5/all-features/extensions/isometricgrid.png)

Expand Down
8 changes: 4 additions & 4 deletions docs/gdevelop5/all-features/firebase/analytics.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ To get started with the Firebase analytics, use the action **Activate analytics*

To send custom data, such as a player finishing a level, a "log event" can be used. Here is an example:

- When the players exits the level, before switching scenes:
- Create a new event or update an existing event with the **log event action**
- Ensure that "level1_finished" is listed as the event name.
- The users who have beaten level 1 will now show on the dashboard.
- When the players exits the level, before switching scenes:
- Create a new event or update an existing event with the **log event action**
- Ensure that "level1_finished" is listed as the event name.
- The users who have beaten level 1 will now show on the dashboard.

!!! tip

Expand Down
8 changes: 5 additions & 3 deletions docs/gdevelop5/all-features/firebase/authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,21 @@ Firebase gives tools to help you create user accounts, authenticate (log into) a
and linking their account to data using Firestore.

## Authenticating

The first and most important thing is the authentication process. That is the part where the user proves who he is. You usually do that through a _login screen_.

Firebase provides a few ways to authenticate:

- **Anonymously**: you can use this to provide limited preview access to services requiring authentication. That way you can also assign data to this temporary profile. It may be possible to upgrade an anonymous account to a persistent account in the future, but GDevelop doesn't support that yet.
- By **email**: you make the user enter an email and password, and Firebase will take care of all the rest.
- Using **external providers**: the user can identify through a third party website, using for example their *Facebook* or *Google* accounts.
- **Anonymously**: you can use this to provide limited preview access to services requiring authentication. That way you can also assign data to this temporary profile. It may be possible to upgrade an anonymous account to a persistent account in the future, but GDevelop doesn't support that yet.
- By **email**: you make the user enter an email and password, and Firebase will take care of all the rest.
- Using **external providers**: the user can identify through a third party website, using for example their _Facebook_ or _Google_ accounts.

!!! danger

For now, external providers only work on the browser, it won't work on PC exports or previews.

## Identifying the user

Once you are sure about the identity of the user, Firebase provides you a handy user ID that links your user to their data.
Everything related to this user should be stored with this ID to be able to track their ownership of the data back and provide it to them
once they need it.
Expand Down
9 changes: 4 additions & 5 deletions docs/gdevelop5/all-features/firebase/firestore.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,9 @@ the friend list individually and you can get the player data without getting all

!!! tip


The other advantage of collections is that they are very good and fast at filtering/ordering data before sending it to the player.
Sadly, GDevelop doesn't yet supports sending queries to collections.


For more informations on the data model of Firestore, read
[the data model guide](https://firebase.google.com/docs/firestore/data-model) and
[the data structuring guide](https://firebase.google.com/docs/firestore/manage-data/structure-data).
Expand Down Expand Up @@ -79,7 +77,7 @@ The value/text filter allows to check all documents that meet a certain criteria

This filter allows to automatically sort the documents of the query to be ordered by the value of a field. For example, if you have documents that look like this:

```
```text
{ price: 69, name: "Lamp oil"},
{ price: 42, name: "Rope"},
{ price: 420, name: "Bombs"}
Expand All @@ -91,7 +89,7 @@ And use the filter like this:

Then the documents would be reordered inside the query like this:

```
```text
{ price: 420, name: "Bombs"},
{ price: 69, name: "Lamp oil"},
{ price: 42, name: "Rope"}
Expand Down Expand Up @@ -132,7 +130,8 @@ Once you have built your query (or just created an empty one to target all docum
### The query result

When a query finishes, it stores its result in the passed structure variable. It will look like this:
```

```text
{
size: 1,
empty: false,
Expand Down
4 changes: 1 addition & 3 deletions docs/gdevelop5/all-features/firebase/functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@ title: Firebase Functions

!!! danger


This feature is intended for experimented JavaScript developers.

[Also note that this feature requires the Blaze plan as of March 15 2021](https://firebase.google.com/support/faq#expandable-13).


Firebase is meant to replace a whole backend server by itself. Sometimes though, you need to code some server logic yourself: that's where firebase functions come in.

Firebase let you code some server-side logic that triggers on certain events. To see the whole documentation go on https://firebase.google.com/docs/functions/callable.
Firebase let you code some server-side logic that triggers on certain events. To see the whole documentation go on <https://firebase.google.com/docs/functions/callable>.

One of those events are "https callables". You can trigger those via a GDevelop action. Use the trigger function action with the https callable name. You can pass arguments and let the https callable return an object.
52 changes: 26 additions & 26 deletions docs/gdevelop5/all-features/firebase/quickstart.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Firebase Setup
---
## Firebase Setup
## Firebase Setup

To use Firebase, you have to connect it to a Firebase account. This page explains how to do so.

Expand Down Expand Up @@ -39,36 +39,36 @@ Firebase will now show you some code known as the firebase SDK that you would us

![](/gdevelop5/all-features/firebase/fb1.png)

You only need the Firebase configuration part. Copy-paste the part between the {} including the {}. For example, in this screenshot what we need to copy is: ```

{
apiKey: "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA",
authDomain: "tutorial-gdevelop.firebaseapp.com",
databaseURL: "https://tutorial-gdevelop.firebaseio.com",
projectId: "tutorial-gdevelop",
storageBucket: "tutorial-gdevelop.appspot.com",
messagingSenderId: "386980638073",
appId: "1:386980638073:web:b00afc0ecb3ed7ca4f53a8",
measurementId: "G-R0KBN0HPQ8"
}

You only need the Firebase configuration part. Copy-paste the part between the {} including the {}. For example, in this screenshot what we need to copy is:

```text
{
apiKey: "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA",
authDomain: "tutorial-gdevelop.firebaseapp.com",
databaseURL: "https://tutorial-gdevelop.firebaseio.com",
projectId: "tutorial-gdevelop",
storageBucket: "tutorial-gdevelop.appspot.com",
messagingSenderId: "386980638073",
appId: "1:386980638073:web:b00afc0ecb3ed7ca4f53a8",
measurementId: "G-R0KBN0HPQ8"
}
```

Now open the GDevelop project you want to integrate Firebase to, and go to the project properties. In the "Firebase Configuration" field, paste the configuration you copied. However, the format used by GDevelop is stricter than the code provided by Firebase. You need to wrap all the key names with quotes. The example would become:

```text
{
"apiKey": "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA",
"authDomain": "tutorial-gdevelop.firebaseapp.com",
"databaseURL": "https://tutorial-gdevelop.firebaseio.com",
"projectId": "tutorial-gdevelop",
"storageBucket": "tutorial-gdevelop.appspot.com",
"messagingSenderId": "386980638073",
"appId": "1:386980638073:web:b00afc0ecb3ed7ca4f53a8",
"measurementId": "G-R0KBN0HPQ8"
}
```

{
"apiKey": "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA",
"authDomain": "tutorial-gdevelop.firebaseapp.com",
"databaseURL": "https://tutorial-gdevelop.firebaseio.com",
"projectId": "tutorial-gdevelop",
"storageBucket": "tutorial-gdevelop.appspot.com",
"messagingSenderId": "386980638073",
"appId": "1:386980638073:web:b00afc0ecb3ed7ca4f53a8",
"measurementId": "G-R0KBN0HPQ8"
}

``` ![](/gdevelop5/all-features/firebase/quickstart6.png)
![](/gdevelop5/all-features/firebase/quickstart6.png)

You can now start using [Firebase services](/gdevelop5/all-features/firebase).
Loading