From 9678a7763edfda812ef49f19ed149763eb5defad Mon Sep 17 00:00:00 2001 From: Victor Valentim Date: Wed, 30 Oct 2024 20:38:01 -0300 Subject: [PATCH] Update Documentation --- .github/workflows/deploy_website.yml | 2 +- .github/workflows/pr_preview.yml | 2 +- docs/assets/extra.css | 0 docs/develop.md | 128 -------------------- docs/en/api/core-classes.md | 2 + docs/en/api/helper-functions.md | 2 + docs/en/api/overview.md | 2 + docs/en/api/scene-interface.md | 2 + docs/en/author.md | 2 + docs/en/contributing.md | 2 + docs/en/examples/advanced.md | 2 + docs/en/examples/basic.md | 2 + docs/en/getting-started/features.md | 2 + docs/en/getting-started/quickstart.md | 2 + docs/en/index.md | 2 + docs/en/installation/dependencies.md | 2 + docs/en/installation/installation-steps.md | 2 + docs/en/installation/requirements.md | 2 + docs/en/known-issues.md | 2 + docs/en/license.md | 2 + docs/en/usage/basic-usage.md | 2 + docs/en/usage/event-handling.md | 2 + docs/en/usage/external-integration.md | 2 + docs/en/usage/scene-management.md | 2 + docs/example_sketch_output.jpg | Bin 23116 -> 0 bytes docs/getting-started.md | 46 ------- docs/index.md | 38 ------ docs/pt/api/core-classes.md | 2 + docs/pt/api/helper-functions.md | 2 + docs/pt/api/overview.md | 2 + docs/pt/api/scene-interface.md | 2 + docs/pt/author.md | 2 + docs/pt/contributing.md | 2 + docs/pt/examples/advanced.md | 2 + docs/pt/examples/basic.md | 2 + docs/pt/getting-started/features.md | 2 + docs/pt/getting-started/quickstart.md | 2 + docs/pt/index.md | 2 + docs/pt/installation/dependencies.md | 2 + docs/pt/installation/installation-steps.md | 2 + docs/pt/installation/requirements.md | 2 + docs/pt/known-issues.md | 2 + docs/pt/license.md | 2 + docs/pt/usage/basic-usage.md | 2 + docs/pt/usage/event-handling.md | 2 + docs/pt/usage/external-integration.md | 2 + docs/pt/usage/scene-management.md | 2 + docs/release.md | 49 -------- docs/troubleshooting.md | 19 --- mkdocs.yml | 133 +++++++++++++++++++-- 50 files changed, 202 insertions(+), 295 deletions(-) create mode 100644 docs/assets/extra.css delete mode 100644 docs/develop.md create mode 100644 docs/en/api/core-classes.md create mode 100644 docs/en/api/helper-functions.md create mode 100644 docs/en/api/overview.md create mode 100644 docs/en/api/scene-interface.md create mode 100644 docs/en/author.md create mode 100644 docs/en/contributing.md create mode 100644 docs/en/examples/advanced.md create mode 100644 docs/en/examples/basic.md create mode 100644 docs/en/getting-started/features.md create mode 100644 docs/en/getting-started/quickstart.md create mode 100644 docs/en/index.md create mode 100644 docs/en/installation/dependencies.md create mode 100644 docs/en/installation/installation-steps.md create mode 100644 docs/en/installation/requirements.md create mode 100644 docs/en/known-issues.md create mode 100644 docs/en/license.md create mode 100644 docs/en/usage/basic-usage.md create mode 100644 docs/en/usage/event-handling.md create mode 100644 docs/en/usage/external-integration.md create mode 100644 docs/en/usage/scene-management.md delete mode 100644 docs/example_sketch_output.jpg delete mode 100644 docs/getting-started.md delete mode 100644 docs/index.md create mode 100644 docs/pt/api/core-classes.md create mode 100644 docs/pt/api/helper-functions.md create mode 100644 docs/pt/api/overview.md create mode 100644 docs/pt/api/scene-interface.md create mode 100644 docs/pt/author.md create mode 100644 docs/pt/contributing.md create mode 100644 docs/pt/examples/advanced.md create mode 100644 docs/pt/examples/basic.md create mode 100644 docs/pt/getting-started/features.md create mode 100644 docs/pt/getting-started/quickstart.md create mode 100644 docs/pt/index.md create mode 100644 docs/pt/installation/dependencies.md create mode 100644 docs/pt/installation/installation-steps.md create mode 100644 docs/pt/installation/requirements.md create mode 100644 docs/pt/known-issues.md create mode 100644 docs/pt/license.md create mode 100644 docs/pt/usage/basic-usage.md create mode 100644 docs/pt/usage/event-handling.md create mode 100644 docs/pt/usage/external-integration.md create mode 100644 docs/pt/usage/scene-management.md delete mode 100644 docs/release.md delete mode 100644 docs/troubleshooting.md diff --git a/.github/workflows/deploy_website.yml b/.github/workflows/deploy_website.yml index c4cd385..7014583 100644 --- a/.github/workflows/deploy_website.yml +++ b/.github/workflows/deploy_website.yml @@ -20,7 +20,7 @@ jobs: python-version: 3.x - name: Install dependencies - run: pip install mkdocs-material + run: pip install mkdocs-material mkdocs-static-i18n - name: Build website run: mkdocs build diff --git a/.github/workflows/pr_preview.yml b/.github/workflows/pr_preview.yml index f0beecd..9f0895a 100644 --- a/.github/workflows/pr_preview.yml +++ b/.github/workflows/pr_preview.yml @@ -24,7 +24,7 @@ jobs: python-version: 3.x - name: Install dependencies - run: pip install mkdocs-material + run: pip install mkdocs-material mkdocs-static-i18n - name: Build website if: github.event.action != 'closed' diff --git a/docs/assets/extra.css b/docs/assets/extra.css new file mode 100644 index 0000000..e69de29 diff --git a/docs/develop.md b/docs/develop.md deleted file mode 100644 index 579e629..0000000 --- a/docs/develop.md +++ /dev/null @@ -1,128 +0,0 @@ -# The Development Process - -You are now ready to develop your library. This guide will walk you through resolving dependencies, configuring the build, creating release artifacts, and testing your library in Processing. - -_Note: If you haven't set up your environment yet, refer to the [Getting Started guide](getting-started.md)._ - - -## Developing the library -**Develop your library within `src/main/java/`.** Set the `package` at the top of your file to your -own group id and library name, all together. For instance, in the example library, the group id is -`com.myDomain` and the library name is `myLibrary`. The package is then `com.myDomain.myLibrary`. -These values will need to match the values input into your Gradle build file, `build.gradle.kts`. -More on this in [Configuring the Gradle build file](#configuring-the-gradle-build-file). - -Intellij and Visual Studio Code will then direct you to move your code into nested folders, consistent -with your package name. For instance, if the package is `com.myDomain.myLibrary`, the code will -be in the folder structure `src/main/java/com/myDomain/myLibrary/`. - - -## Resolving dependencies -In the `build.gradle.kts` file, there are a few places you should edit, to input your own values. -The part of the file that you are invited to edit is indicated by the comment -`USER BUILD CONFIGURATIONS`. We cover here how to add dependencies for your library. The relevant -sections of the `build.gradle.kts` file are the `repositories` and `dependencies` sections. - -**The locations where dependencies will be resolved from are the `repositories`.** Most -dependencies can be resolved from Maven. You can add additional repositories here if -your dependencies are hosted elsewhere. - -**Your dependencies should be listed within `dependencies`.** For example, the example library -uses the `commons-math3` package from `org.apache.commons` as a dependency, which is resolved -from your listed repositories. It is listed within `dependencies` with the following structure: - -``` -implementation(group = "org.apache.commons", name = "commons-math3", version = "3.6.1") -``` - -This dependency, `commons-math3`, is only needed by the example library. -You can delete this dependency for your own library. -Add your own dependencies using the same structure. - -NOTE: Dependencies added with `implementation` will be included in the release. Dependencies -added with `compileOnly`, such as Processing core, are available for compilation, but won't -be included in the release. - -After you add these dependencies, **refresh Gradle**, and then you will be able to access them -in your code. Refresh Gradle by going to the Gradle menu (elephant) in your IDE -and click on the refresh icon, which is two arrows pointing at each other's ends in a circle. - - -## Configuring the Gradle build file -In the `build.gradle.kts` file, there are a few places you should edit, to input your own values. -The section that you are invited to edit is indicated by the comment `USER BUILD CONFIGURATIONS`. -We cover here how to configure the editable sections of the `build.gradle.kts` file, aside from -those sections for [resolving dependencies](#resolving-dependencies). - -1. **Edit the variable `libName` to contain the name of your library**. The name can only contain - lower case alphanumeric characters, and "-". - This value is used by Gradle to name the built jar file, and the zip file holding - your release artifacts. If this name does not match the name of the library in your code, - as discussed in the section [Developing the library](#developing-the-library), - Processing will not find your library. -2. **Edit the variable `group` with your own domain or organization name.** The group id - of your library uniquely identifies your project. It's often written in reverse domain name - notation. For example, if your website is "myDomain.com", your group ID would be - "com.myDomain". This group id should match the group id discussed in - section [Developing the library](#developing-the-library). -3. **Define the `version` of your library in `build.gradle.kts`.** This value will also be - included in the release artifact `library.properties`. The version of your library usually - follows semantic versioning (semver), which uses three numbers separated by dots: - "MAJOR.MINOR.PATCH" (e.g., "1.0.0"). - - - MAJOR: Increases when you make incompatible changes. - - MINOR: Increases when you add new features that are backward-compatible. - - PATCH: Increases when you make backward-compatible bug fixes. - - You will update these numbers as you release new versions of your library. - -4. The `sketchbookLocation` is determined programmatically by your operation system, and is - where your Processing `sketchbook` folder is. This folder contains your installed libraries. - It is needed if you: - - 1. wish to copy the library to the Processing sketchbook, which installs the library locally - 2. have Processing library dependencies - - This variable is in the editable section, in case the location determined is incorrect. A - symptom of an incorrect `sketchbookLocation` is that your library does not show up in the - Contribution Manager in Processing, after being installed. Please look at our - [troubleshooting guide](troubleshooting.md) if you suspect this is the case. - -## Creating examples -Examples help users understand your library’s functionality, it is recommended that you include several clear and well-commented samples sketches in the `examples` folder. - -_Note: The example sketch included in this template outputs the image shown on the home page._ - -## Creating the release artifacts -If you've already gone through the [Getting started](getting-started.md#first-steps) guide, you will have -already run Gradle tasks, and edited the `release.properties` file. - -1. Fill in the file `release.properties` with information for your library. This information will be - used by Gradle to create the `library.properties` file, which is one of the required release - artifacts, used by the website and Contribution Manager to describe your library. In the file itself, - There are comments to guide you. To create just the `library.properties` file without building the - library, toggle `Tasks` > `processing` and double click `writeLibraryProperties`. This task will - copy all the values in `release.properties`, and also include the `version` in your `build.gradle.kts` - file as `prettyVersion`. -2. **To build the library and create the release artifacts, run the Gradle task `releaseProcessingLib`.** - This task will create a `release` folder with needed artifacts. To do this, go to the Gradle menu - (elephant), toggle `Tasks` > `processing` and double click `releaseProcessingLib`. This task - has bundled the following required tasks: - 1. `build` task: this bundles a number of build tasks, including the `jar` task which creates a - jar file. all build artifacts are in the folder `build`. - 2. documentation build. - 3. creation of the `library.properties` file: this file is built from the properties set in the - `release.properties` file, plus the version, in the task `writeLibraryProperties`. - 4. within the `releaseProcessingLib` task, the `release` folder is created, jars of the library and - dependencies are copied, and the `library.properties` file is copied. Also, a zip file is made. -3. When you would like to test your library in Processing, toggle `Tasks` > `processing` and double click - `deployToProcessingSketchbook`, which will create the release artifacts, and copy them into the - sketchbook folder. - -## Additional Documentation - -See the following guides for more details: - - - [Library Overview](https://github.com/processing/processing4/wiki/Library-Overview): an introduction to Processing libraries in general. - - [Library Basics](https://github.com/processing/processing4/wiki/Library-Basics): a basic guide for creating a Processing library from scratch, including structuring the library, registering methods with PApplet, handling events, and preparing the library for distribution. - - [Library Guidelines](https://github.com/processing/processing4/wiki/Library-Guidelines): describes the requirements for a Processing library, including naming conventions, examples, and other best practices. \ No newline at end of file diff --git a/docs/en/api/core-classes.md b/docs/en/api/core-classes.md new file mode 100644 index 0000000..c8fe63a --- /dev/null +++ b/docs/en/api/core-classes.md @@ -0,0 +1,2 @@ +# Core Classes +Description of the core classes. \ No newline at end of file diff --git a/docs/en/api/helper-functions.md b/docs/en/api/helper-functions.md new file mode 100644 index 0000000..d949442 --- /dev/null +++ b/docs/en/api/helper-functions.md @@ -0,0 +1,2 @@ +# Helper Functions +List of helper functions. \ No newline at end of file diff --git a/docs/en/api/overview.md b/docs/en/api/overview.md new file mode 100644 index 0000000..ed9598e --- /dev/null +++ b/docs/en/api/overview.md @@ -0,0 +1,2 @@ +# API Overview +Overview of the ziviDomeLive API. \ No newline at end of file diff --git a/docs/en/api/scene-interface.md b/docs/en/api/scene-interface.md new file mode 100644 index 0000000..c0d18da --- /dev/null +++ b/docs/en/api/scene-interface.md @@ -0,0 +1,2 @@ +# Scene Interface +Interface for scene management. \ No newline at end of file diff --git a/docs/en/author.md b/docs/en/author.md new file mode 100644 index 0000000..42e7910 --- /dev/null +++ b/docs/en/author.md @@ -0,0 +1,2 @@ +# Author +Information about the author. \ No newline at end of file diff --git a/docs/en/contributing.md b/docs/en/contributing.md new file mode 100644 index 0000000..f42a922 --- /dev/null +++ b/docs/en/contributing.md @@ -0,0 +1,2 @@ +# Contributing +How to contribute to the ziviDomeLive library. \ No newline at end of file diff --git a/docs/en/examples/advanced.md b/docs/en/examples/advanced.md new file mode 100644 index 0000000..c520d39 --- /dev/null +++ b/docs/en/examples/advanced.md @@ -0,0 +1,2 @@ +# Advanced Examples +Advanced usage examples. \ No newline at end of file diff --git a/docs/en/examples/basic.md b/docs/en/examples/basic.md new file mode 100644 index 0000000..467c0e1 --- /dev/null +++ b/docs/en/examples/basic.md @@ -0,0 +1,2 @@ +# Basic Examples +Basic examples of usage. \ No newline at end of file diff --git a/docs/en/getting-started/features.md b/docs/en/getting-started/features.md new file mode 100644 index 0000000..1002e20 --- /dev/null +++ b/docs/en/getting-started/features.md @@ -0,0 +1,2 @@ +# Key Features +Main features of the ziviDomeLive library. \ No newline at end of file diff --git a/docs/en/getting-started/quickstart.md b/docs/en/getting-started/quickstart.md new file mode 100644 index 0000000..5308134 --- /dev/null +++ b/docs/en/getting-started/quickstart.md @@ -0,0 +1,2 @@ +# Quickstart Guide +Begin with using ziviDomeLive quickly. \ No newline at end of file diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 0000000..477b389 --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,2 @@ +# Welcome to ziviDomeLive Documentation +This is the main page for the English documentation. \ No newline at end of file diff --git a/docs/en/installation/dependencies.md b/docs/en/installation/dependencies.md new file mode 100644 index 0000000..f21c896 --- /dev/null +++ b/docs/en/installation/dependencies.md @@ -0,0 +1,2 @@ +# Dependencies +Details on library dependencies. \ No newline at end of file diff --git a/docs/en/installation/installation-steps.md b/docs/en/installation/installation-steps.md new file mode 100644 index 0000000..224b15c --- /dev/null +++ b/docs/en/installation/installation-steps.md @@ -0,0 +1,2 @@ +# Installation Steps +Step-by-step guide to install ziviDomeLive. \ No newline at end of file diff --git a/docs/en/installation/requirements.md b/docs/en/installation/requirements.md new file mode 100644 index 0000000..aba32b9 --- /dev/null +++ b/docs/en/installation/requirements.md @@ -0,0 +1,2 @@ +# Requirements +List of requirements for installing ziviDomeLive. \ No newline at end of file diff --git a/docs/en/known-issues.md b/docs/en/known-issues.md new file mode 100644 index 0000000..7c08953 --- /dev/null +++ b/docs/en/known-issues.md @@ -0,0 +1,2 @@ +# Known Issues +List of known issues in the library. \ No newline at end of file diff --git a/docs/en/license.md b/docs/en/license.md new file mode 100644 index 0000000..18b3eca --- /dev/null +++ b/docs/en/license.md @@ -0,0 +1,2 @@ +# License +Details about the license. \ No newline at end of file diff --git a/docs/en/usage/basic-usage.md b/docs/en/usage/basic-usage.md new file mode 100644 index 0000000..e14a9b1 --- /dev/null +++ b/docs/en/usage/basic-usage.md @@ -0,0 +1,2 @@ +# Basic Usage +Guide to basic usage of ziviDomeLive. \ No newline at end of file diff --git a/docs/en/usage/event-handling.md b/docs/en/usage/event-handling.md new file mode 100644 index 0000000..07558d9 --- /dev/null +++ b/docs/en/usage/event-handling.md @@ -0,0 +1,2 @@ +# Event Handling +Manage events within ziviDomeLive. \ No newline at end of file diff --git a/docs/en/usage/external-integration.md b/docs/en/usage/external-integration.md new file mode 100644 index 0000000..345233d --- /dev/null +++ b/docs/en/usage/external-integration.md @@ -0,0 +1,2 @@ +# External Integration +Integrating with other tools and libraries. \ No newline at end of file diff --git a/docs/en/usage/scene-management.md b/docs/en/usage/scene-management.md new file mode 100644 index 0000000..e41b6de --- /dev/null +++ b/docs/en/usage/scene-management.md @@ -0,0 +1,2 @@ +# Scene Management +Handling and managing scenes. \ No newline at end of file diff --git a/docs/example_sketch_output.jpg b/docs/example_sketch_output.jpg deleted file mode 100644 index 6322a99cc0ba6eedf6e7434b82d6c38559ddec01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23116 zcmbTe2Ut_v+BF&kqzZ!csshqMkX{v~3rO!xI!Nyj62wYZs&wg{&{29vx^x0kL$3)X z1W4e$$!(h36nChosi{fH zY3XRF=qRbEseYdX2N(MpJbWU2d?Kn_B)6#kKOfia0185!PdJ}&aqa_dP~hNF;9PeD zSh4-Y$NA#`{Lg`N1KY=&1cXGyB-l69-3Hvi!Nt9Shx@zN*ms9u{|~^Uz^A+?^yKCp zZEJ%2o>aoGKW7uNDO7b(>x{wKAHDPnBO<1urK4xyc)-cU%_AZzCN3c<_4JvdlCp}b zny#L{fuWJHiH)tDy@R8Zv$v10pMOAL(3`jK-hcQQ9uXIxkeHPGB_%Z{H!r`Su&B7C zx~8_SzTw;V#?G$pp5DG6{R86@lT*_(v(UMfRoL44#^%=c4&vze

>^I=}cmE*t>v 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 diff --git a/docs/getting-started.md b/docs/getting-started.md deleted file mode 100644 index 1fb2139..0000000 --- a/docs/getting-started.md +++ /dev/null @@ -1,46 +0,0 @@ -# Getting Started -We're excited that you're interested in contributing to the Processing ecosystem! Building a library lets you expand Processing’s capabilities and it's a great way to give back by sharing your custom tools with the community. - -This guide will help you set up your development environment and start building your library using the provided template. - - -## Setting up the environment -Follow these steps to create your own repository on GitHub and install the necessary tools. - -1. **Create a new Github repository** using the [processing-library-template](https://github.com/processing/processing-library-template) - as a base. - (See: [How to create a repository from a template.](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template)) - Choose a name that reflects the library you're building. Make sure to read about Processing's [naming rules for libraries](https://github.com/benfry/processing4/wiki/Library-Basics#library-naming-rules). You can always rename the repository later. -2. **Clone your repository** to your local computer. - ([How to clone a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository)) -3. **Install [Processing](https://processing.org/download)**, if it's not already installed on your computer. -4. **Install an integrated development editor (IDE)** such as [Intellij](https://www.jetbrains.com/idea/download), - or [Visual Studio Code](https://code.visualstudio.com/). - Intellij comes fully featured, and has a free community version. For Visual Studio Code, you'll need to install additional extensions, such as Gradle for Java and Java language support. - -## Testing the Library Template -Now that your environment is set up, follow these steps to get familiar with the template and make sure everything works correctly: - -1. **Open up your new repository in your chosen IDE.** -2. **Run the Gradle task `deployToProcessingSketchbook`:** - - In the Gradle menu (the elephant icon) in your IDE, navigate to `Tasks` > `processing` > - `deployToProcessingSketchbook`, and double click on `deployToProcessingSketchbook`. - - This will build the library, create the release artifacts, and copy them to the folder - where Processing libraries are stored. -3. **Check if the library appears in the Contribution Manager:** - - Open Processing, and click on `Sketch` > `Import Library ...` > `Manage Libraries ...`. - This opens the Contribution Manager. - - You should see an entry named "A Template Example Library" with a check mark next to it. - This is the sample library you just installed using the template. - - If it does not appear, please check the [troubleshooting guide](troubleshooting.md). -4. **Customize the library information**: - - Open the file `release.properties` and edit the `name`, `authors`, and `sentence` fields to match your library. - - Rerun the `deployToProcessingSketchbook` Gradle task to update the library information. - - Open the Contribution Manager again to see your changes. The name, description, and author(s) should be updated. - -## Next Steps -Great, now that you're familiar with the library template, you can explore additional guides: - -1. [The development process](develop) -2. [Releasing your library](release) -3. [Troubleshooting](troubleshooting.md) diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index a525970..0000000 --- a/docs/index.md +++ /dev/null @@ -1,38 +0,0 @@ -# Processing Library Template - -The Processing Library Template is a template to help developers of Processing libraries to develop and release. -It can be found on Github at [https://github.com/processing/processing-library-template](https://github.com/processing/processing-library-template). - -![example sketch output](./example_sketch_output.jpg) - -This documentation provides information on - -1. [Getting started](getting-started.md) -2. [The development process](develop) -3. [Releasing your library](release) -4. [Troubleshooting](troubleshooting.md) - - -## References -Existing references for developing libraries for Processing can be found on the following Github wiki pages: - -- [https://github.com/benfry/processing4/wiki/Library-Basics](https://github.com/benfry/processing4/wiki/Library-Basics) -- [https://github.com/benfry/processing4/wiki/Library-Guidelines](https://github.com/benfry/processing4/wiki/Library-Guidelines) -- [https://github.com/benfry/processing4/wiki/Library-Overview](https://github.com/benfry/processing4/wiki/Library-Overview) - - -## Contributors - -This template was created as part of the 2024 New Beginnings (pr05) Grant from the -[Processing Foundation](https://github.com/processing), to simplify the -workflows for libraries, tools, and modes, mentored by [@Stefterv](https://github.com/stefterv). - -It is based on and inspired by a number of Processing library templates, including: - -- [https://github.com/processing/processing-library-template-gradle](https://github.com/processing/processing-library-template-gradle) -- [https://github.com/enkatsu/processing-library-template-gradle](https://github.com/enkatsu/processing-library-template-gradle) -- [https://github.com/hamoid/processing-library-template/](https://github.com/hamoid/processing-library-template/) - -I wish to thank the developers of these repositories, who generously provided -guidance and time. This template has been developed in collaboration with -[@enkatsu](https://github.com/enkatsu). diff --git a/docs/pt/api/core-classes.md b/docs/pt/api/core-classes.md new file mode 100644 index 0000000..e82032f --- /dev/null +++ b/docs/pt/api/core-classes.md @@ -0,0 +1,2 @@ +# Classes Principais +Descrição das classes principais. \ No newline at end of file diff --git a/docs/pt/api/helper-functions.md b/docs/pt/api/helper-functions.md new file mode 100644 index 0000000..114d5aa --- /dev/null +++ b/docs/pt/api/helper-functions.md @@ -0,0 +1,2 @@ +# Funções Auxiliares +Lista de funções auxiliares. \ No newline at end of file diff --git a/docs/pt/api/overview.md b/docs/pt/api/overview.md new file mode 100644 index 0000000..fafb87a --- /dev/null +++ b/docs/pt/api/overview.md @@ -0,0 +1,2 @@ +# Visão Geral da API +Visão geral da API do ziviDomeLive. \ No newline at end of file diff --git a/docs/pt/api/scene-interface.md b/docs/pt/api/scene-interface.md new file mode 100644 index 0000000..3bafa44 --- /dev/null +++ b/docs/pt/api/scene-interface.md @@ -0,0 +1,2 @@ +# Interface de Cena +Interface para gerenciamento de cenas. \ No newline at end of file diff --git a/docs/pt/author.md b/docs/pt/author.md new file mode 100644 index 0000000..7dbdcc4 --- /dev/null +++ b/docs/pt/author.md @@ -0,0 +1,2 @@ +# Autor +Informações sobre o autor. \ No newline at end of file diff --git a/docs/pt/contributing.md b/docs/pt/contributing.md new file mode 100644 index 0000000..c7c1df7 --- /dev/null +++ b/docs/pt/contributing.md @@ -0,0 +1,2 @@ +# Contribuindo +Como contribuir para a biblioteca ziviDomeLive. \ No newline at end of file diff --git a/docs/pt/examples/advanced.md b/docs/pt/examples/advanced.md new file mode 100644 index 0000000..c7d5fe3 --- /dev/null +++ b/docs/pt/examples/advanced.md @@ -0,0 +1,2 @@ +# Exemplos Avançados +Exemplos avançados de uso. \ No newline at end of file diff --git a/docs/pt/examples/basic.md b/docs/pt/examples/basic.md new file mode 100644 index 0000000..456b97a --- /dev/null +++ b/docs/pt/examples/basic.md @@ -0,0 +1,2 @@ +# Exemplos Básicos +Exemplos básicos de uso. \ No newline at end of file diff --git a/docs/pt/getting-started/features.md b/docs/pt/getting-started/features.md new file mode 100644 index 0000000..169712c --- /dev/null +++ b/docs/pt/getting-started/features.md @@ -0,0 +1,2 @@ +# Funcionalidades Principais +Principais funcionalidades da biblioteca ziviDomeLive. \ No newline at end of file diff --git a/docs/pt/getting-started/quickstart.md b/docs/pt/getting-started/quickstart.md new file mode 100644 index 0000000..cb6a69f --- /dev/null +++ b/docs/pt/getting-started/quickstart.md @@ -0,0 +1,2 @@ +# Guia Rápido +Comece a usar o ziviDomeLive rapidamente. \ No newline at end of file diff --git a/docs/pt/index.md b/docs/pt/index.md new file mode 100644 index 0000000..fd838ae --- /dev/null +++ b/docs/pt/index.md @@ -0,0 +1,2 @@ +# Bem-vindo à Documentação ziviDomeLive +Esta é a página principal para a documentação em português. \ No newline at end of file diff --git a/docs/pt/installation/dependencies.md b/docs/pt/installation/dependencies.md new file mode 100644 index 0000000..f6aa4b2 --- /dev/null +++ b/docs/pt/installation/dependencies.md @@ -0,0 +1,2 @@ +# Dependências +Detalhes sobre as dependências da biblioteca. \ No newline at end of file diff --git a/docs/pt/installation/installation-steps.md b/docs/pt/installation/installation-steps.md new file mode 100644 index 0000000..bed47a8 --- /dev/null +++ b/docs/pt/installation/installation-steps.md @@ -0,0 +1,2 @@ +# Passos de Instalação +Guia passo a passo para instalar o ziviDomeLive. \ No newline at end of file diff --git a/docs/pt/installation/requirements.md b/docs/pt/installation/requirements.md new file mode 100644 index 0000000..27a3ea1 --- /dev/null +++ b/docs/pt/installation/requirements.md @@ -0,0 +1,2 @@ +# Requisitos +Lista de requisitos para instalar o ziviDomeLive. \ No newline at end of file diff --git a/docs/pt/known-issues.md b/docs/pt/known-issues.md new file mode 100644 index 0000000..68d16e7 --- /dev/null +++ b/docs/pt/known-issues.md @@ -0,0 +1,2 @@ +# Problemas Conhecidos +Lista de problemas conhecidos na biblioteca. \ No newline at end of file diff --git a/docs/pt/license.md b/docs/pt/license.md new file mode 100644 index 0000000..eabffc4 --- /dev/null +++ b/docs/pt/license.md @@ -0,0 +1,2 @@ +# Licença +Detalhes sobre a licença. \ No newline at end of file diff --git a/docs/pt/usage/basic-usage.md b/docs/pt/usage/basic-usage.md new file mode 100644 index 0000000..571f3e8 --- /dev/null +++ b/docs/pt/usage/basic-usage.md @@ -0,0 +1,2 @@ +# Uso Básico +Guia para o uso básico do ziviDomeLive. \ No newline at end of file diff --git a/docs/pt/usage/event-handling.md b/docs/pt/usage/event-handling.md new file mode 100644 index 0000000..300fcc4 --- /dev/null +++ b/docs/pt/usage/event-handling.md @@ -0,0 +1,2 @@ +# Manipulação de Eventos +Gerencie eventos dentro do ziviDomeLive. \ No newline at end of file diff --git a/docs/pt/usage/external-integration.md b/docs/pt/usage/external-integration.md new file mode 100644 index 0000000..112a11d --- /dev/null +++ b/docs/pt/usage/external-integration.md @@ -0,0 +1,2 @@ +# Integração Externa +Integração com outras ferramentas e bibliotecas. \ No newline at end of file diff --git a/docs/pt/usage/scene-management.md b/docs/pt/usage/scene-management.md new file mode 100644 index 0000000..d440f91 --- /dev/null +++ b/docs/pt/usage/scene-management.md @@ -0,0 +1,2 @@ +# Gerenciamento de Cenas +Manipulação e gerenciamento de cenas. \ No newline at end of file diff --git a/docs/release.md b/docs/release.md deleted file mode 100644 index febc1e1..0000000 --- a/docs/release.md +++ /dev/null @@ -1,49 +0,0 @@ -# Releasing your library - -You've written your library, created examples, and tested it in Processing. Now you are ready to release -and publish it. - - -## Creating your Documentation Website -To have your library listed on the Processing website and Contribution Manager, you need to create a documentation website and host it at a stable URL. This library template includes a built-in way to create and publish a website for your library using [Material for Mkdocs](https://squidfunk.github.io/mkdocs-material/) and Github Pages. - -### Configuring Your Documentation Website -Customize your website by updating the `mkdocs.yml` file. We have included some plugins, such as search, code block copy and annotations, and navigation bars. The navigation menu is configured in `mkdocs.yml` as well. - -To write your documentation, edit the Markdown files located in the `docs` folder. You can add new pages by creating additional Markdown files in the same folder, then add them to the menu in the `nav` section of the `mkdocs.yml` file. - -For examples of how Processing libraries use Material for MkDocs, see [EasyEase](https://github.com/fredegd/EasyEase/blob/main/mkdocs.yml) or [FIP](https://github.com/prontopablo/FIP/blob/main/mkdocs.yml) - -### Deploying your Documentation on Github Pages - -This template include a workflow that automatically deploys your documentaion website to GitHub Pages. Here is how you can set this up for your repository: - -1. Enable GitHub Pages and GitHub Actions in your repository settings: Under **Settings > GitHub Pages**, set the source to "Deploy from a branch", choose the `gh-pages` branch, select the `/(root)` folder, and then click **Save**. -2. Wait for the workflow to complete (this can take a few minutes). Once finished, your site’s URL will be displayed with the message "Your site is live at {{URL}}." -3. Add your website URL to the `url` property in the `release.properties` file. - -Any time you want to update the documentation, edit your `.md` files and `mkdocs.yml` as needed, then push your changes to `main`. This will trigger the workflow to deploy an update. - -_Note: You can find the workflow file at `.github/workflows/deploy_website.yml`._ - -### Alternative Hosting and Static Site Generators -If you prefer not to use the built-in workflow with GitHub Pages and Material for MkDocs, you are free to use another static site generator or hosting service. Note that it’s important that the site remains online, as it serves as a reference for users of your library. - -## Releasing on Github -Releasing your library on GitHub allows users to access known-working versions of your library. Unlike the repository itself, which may contain ongoing development or experimental features, releases provide specific versions of your library that are ready for use. Here is how you can make a new release using this template: - -1. In your repository, click on **Releases**. -2. Click **Draft a new release** to start. -3. Click on **Choose a tag** a tag starting with "v" (e.g., `v1.0.0`). Make sure it matches the version set in your `release.properties` file. -4. Select the branch you want to use for this release (e.g., `main`). -5. Add a title and description for the release, highlighting key updates or changes. -6. Click on **Publish release**. - -This will trigger the GitHub workflow (`.github/workflows/release.yml`), which automatically create release artifacts—`*.txt`, `*.zip`, `*.pdex` files—and add them to the release. - -_Note: By default, GitHub will also include compressed versions of your source code (e.g., `Source code (zip)` and `Source code (tar.gz)`)._ - -For more details on releases, see GitHub’s [official guide on releasing projects](https://docs.github.com/en/repositories/releasing-projects-on-github). - -## Publish your Library to the Contribution Manager -Once you are ready to add your contribution to the Contribution Manager, email [contributions@processing.org](mailto:contributions@processing.org) with the url to your releases page. It should look something like `https://github.com/{{username}}/{{repository}}/releases/`. A Processing maintainer will review and publish your contribution. You may be asked for more information about your contribution or some modifications if needed. \ No newline at end of file diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md deleted file mode 100644 index 6d4b741..0000000 --- a/docs/troubleshooting.md +++ /dev/null @@ -1,19 +0,0 @@ -# Troubleshooting - -## Library does not appear in the Contribution Manager - -1. Please check that the value you have for your library name in the code is the same as the `libName` in - the `build.gradle.kts` file. -2. One possible issue is the location of your `sketchbook` folder. Processing stores installed libraries in - the `sketchbook` folder. Where your `sketchbook` folder is located depends on your operating system. You - can see where Gradle thinks your sketchbook folder is in the task run output. Check that the folder exists, - and contains the subfolder `libraries`. If not, you can check the sketchbook location in your Processing - application preferences. Click on `File` > `Preferences`, and note the sketchbook folder location. If this - location is different from what's in the Gradle build file, you will need to input the value manually. Also, - please submit an issue to this repository. - - -## Dependency is not accessible in code - -1. If a dependency is not accessible in your code, check for errors in the build window in - Intellij (hammer icon), or run `Tasks` > `build` > `build`, and look for an error message. diff --git a/mkdocs.yml b/mkdocs.yml index 16d887a..06dc305 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,8 +1,21 @@ -site_name: ziviDomeLive - Library Documentation +site_name: ziviDomeLive site_url: "https://vicvalentim.github.io/ziviDomeLive/" +use_directory_urls: false # Para documentação offline theme: name: material + language: en + + palette: + - scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to light mode + - scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + features: - search.suggest - search.highlight @@ -13,21 +26,115 @@ theme: - content.code.annotate - navigation.top - navigation.footer - -copyright: MIT Licence. + - header.autohide plugins: - search - offline + - i18n: + docs_structure: folder + languages: + - locale: en + default: true + name: English + build: true + - locale: pt + default: false + name: Português (Brasil) + build: true + +markdown_extensions: + - admonition + - pymdownx.caret + - pymdownx.mark + - pymdownx.tilde + - pymdownx.emoji + - pymdownx.details + - pymdownx.superfences + - pymdownx.betterem + - pymdownx.inlinehilite + - pymdownx.snippets: + base_path: + [ + "./examples/", + "./examples/advanced_usage", + "./examples/getting_started", + ] + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + +repo_url: https://github.com/vicvalentim/ziviDomeLive +repo_name: "GitHub" +edit_uri: "blob/main/docs/" +site_description: "Real-time immersive visuals and 3D rendering framework for fulldome and VR in Processing" +site_author: "Victor Valentim" +copyright: Copyright © 2024 Victor Valentim - MIT License + +extra: + alternate: + - name: English + link: /ziviDomeLive/en/ + lang: en + - name: Português (Brasil) + link: /ziviDomeLive/pt/ + lang: pt + +extra_css: + - assets/extra.css +# Navegação da documentação nav: - - Home: index.md - - Installation: installation.md - - Usage: usage.md - - Reference: - - Overview: api/overview.md - - Classes: api/classes.md - - Functions: api/functions.md - - Examples: examples.md - - FAQ: faq.md - - Troubleshooting: troubleshooting.md \ No newline at end of file + - en: + - Home: en/index.md + - Installation: + - Requirements: en/installation/requirements.md + - Installation Steps: en/installation/installation-steps.md + - Dependencies: en/installation/dependencies.md + - Getting Started: + - Quickstart Guide: en/getting-started/quickstart.md + - Key Features: en/getting-started/features.md + - Usage: + - Basic Usage: en/usage/basic-usage.md + - Scene Management: en/usage/scene-management.md + - Event Handling: en/usage/event-handling.md + - External Integration: en/usage/external-integration.md + - API Reference: + - Overview: en/api/overview.md + - Core Classes: en/api/core-classes.md + - Scene Interface: en/api/scene-interface.md + - Helper Functions: en/api/helper-functions.md + - Examples: + - Basic Examples: en/examples/basic.md + - Advanced Examples: en/examples/advanced.md + - Contributing: en/contributing.md + - Known Issues: en/known-issues.md + - Author: en/author.md + - License: en/license.md + - pt: + - Home: pt/index.md + - Instalação: + - Requisitos: pt/installation/requirements.md + - Passos de Instalação: pt/installation/installation-steps.md + - Dependências: pt/installation/dependencies.md + - Introdução: + - Guia Rápido: pt/getting-started/quickstart.md + - Funcionalidades Principais: pt/getting-started/features.md + - Uso: + - Uso Básico: pt/usage/basic-usage.md + - Gerenciamento de Cenas: pt/usage/scene-management.md + - Manipulação de Eventos: pt/usage/event-handling.md + - Integração Externa: pt/usage/external-integration.md + - Referência da API: + - Visão Geral: pt/api/overview.md + - Classes Principais: pt/api/core-classes.md + - Interface de Cena: pt/api/scene-interface.md + - Funções Auxiliares: pt/api/helper-functions.md + - Exemplos: + - Exemplos Básicos: pt/examples/basic.md + - Exemplos Avançados: pt/examples/advanced.md + - Contribuindo: pt/contributing.md + - Problemas Conhecidos: pt/known-issues.md + - Autor: pt/author.md + - Licença: pt/license.md