Sharing Projects via URLs ========================= When opening NetsBlox, there are a number of URL parameters that can be used to modify the behavior when it opens. This includes things like opening a public project or setting the language. Although NetsBlox supports configuration using hash parameters in the URL (i.e., adding text after a "#" in the URL), the recommended approach is to use query string parameters instead (i.e., text after a "?" in the URL). Actions ------- The most common use of custom URLs in NetsBlox is for sharing public projects or automatically opening example projects. This is supported through setting the "action" parameter. Below is a list of supported actions. *open* Immediately open a project or block library. Expects a single parameter, *data*, set to the URL or XML string of the project or library to import. - Parameters: - *data*: the project or block library to open. It can be specified as a URL or as a (URI encoded) XML string. **required** *run* Open a project and run it. - Parameters: - *data*: the project or block library to open. It can be specified as a URL or as a (URI encoded) XML string. **required** - *editMode*: If set, the project will be open in a regular mode. Otherwise, it will be opened in "app mode" (see the **appMode** setting). - *noRun*: This action will run the project on open (see the **run** setting). Adding this parameter to the URL will revert this behavior so the project will not run on start. *present* Open a copy of the given public project and run it. - Parameters: - *Username*: The owner of the public project to open **required** - *ProjectName*: The name of the public project to open **required** - *editMode*: If set, the project will be open in a regular mode. Otherwise, it will be opened in "app mode" (see the **appMode** setting). - *noRun*: This action will run the project on open (see the **run** setting). Adding this parameter to the URL will revert this behavior so the project will not run on start. *example* Open a project from the list of official NetsBlox examples and run it. - Parameters: - *ProjectName*: The name of the example project to open **required** - *editMode*: If set, the project will be open in a regular mode. Otherwise, it will be opened in "app mode" (see the **appMode** setting). - *noRun*: This action will run the project on open (see the **run** setting). Adding this parameter to the URL will revert this behavior so the project will not run on start. *private* Open a project owned by the logged in user and run it. - Parameters: - *ProjectName*: The name of the example project to open **required** - *editMode*: If set, the project will be open in a regular mode. Otherwise, it will be opened in "app mode" (see the **appMode** setting). - *noRun*: This action will run the project on open (see the **run** setting). Adding this parameter to the URL will revert this behavior so the project will not run on start. *dl* Download a public project. - Parameters: - *Username*: The owner of the public project to open **required** - *ProjectName*: The name of the public project to open **required** *signup* Open the signup dialog on start. Other Settings -------------- The following settings are generally available, regardless of the action: - **appMode**: Start NetsBlox in fullscreen mode. Some actions, such as "present", will set this to true unless explicitly overridden. - **embedMode**: Open NetsBlox and customize the UI for embedding in a bigger site like on the social project sharing/commenting sites by Snap or Scratch. Expected to be used with **appMode**. - **run**: Trigger the green flag as soon as NetsBlox starts. - **hideControls**: Hide the control bar (with the green flag, red stop sign, etc). - **noExitWarning**: Don't confirm that the user wants to leave the page on tab close. - **lang**: Set the language immediately. For example, "lang=hu" will set NetsBlox to Hungarian on start. - **setVariable**: Set a variable to the given value on start. The value is expected to be a URL-encoded pair so setting "hello" to "world" would be "hello%3Dworld". - **cloud**: Override the default cloud URL. This can be used to point the public deployment to your own local cloud (e.g, `cloud=http://localhost:7777`). - **extensions**: A list of extensions (by URL) to load on start.