diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 000000000..b4faa62c8 --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,69 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll site to Pages + +on: + push: + branches: ["master"] + paths: + - 'docs/**' + - '.github/workflows/pages.yml' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.1' # Not needed with a .ruby-version file + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + cache-version: 0 # Increment this number if you need to re-download cached gems + working-directory: docs/ + - name: Setup Pages + id: pages + uses: actions/configure-pages@v3 + - name: Build with Jekyll + # Outputs to the './_site' directory by default + run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + env: + JEKYLL_ENV: production + working-directory: docs/ + - name: Upload artifact + # Automatically uploads an artifact from the './_site' directory by default + uses: actions/upload-pages-artifact@v1 + with: + path: docs/_site/ + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..44a974e25 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,11 @@ +# Copied from https://github.com/github/gitignore/blob/main/Jekyll.gitignore +# Ignore metadata generated by Jekyll +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata + +# Ignore folders generated by Bundler +.bundle/ +vendor/ +Gemfile.lock diff --git a/docs/Dockerfile b/docs/Dockerfile new file mode 100644 index 000000000..a499513b2 --- /dev/null +++ b/docs/Dockerfile @@ -0,0 +1,12 @@ +FROM ruby:2.7 + +ENV LC_ALL C.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US.UTF-8 + +WORKDIR /usr/src/app + +COPY Gemfile just-the-docs.gemspec ./ +RUN gem install bundler && bundle install + +EXPOSE 4000 diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 000000000..c6d33204b --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,7 @@ +source "https://rubygems.org" +gem "github-pages", group: :jekyll_plugins +gem "jekyll" +gem "json" +gem "just-the-docs" + +gem "webrick", group: :development diff --git a/docs/LICENSE b/docs/LICENSE new file mode 100644 index 000000000..7d510d02f --- /dev/null +++ b/docs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 just-the-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. diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 000000000..c557105bd --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,34 @@ +repository: FlightControl-Master/MOOSE +title: MOOSE +description: MOOSE is a Mission Object Oriented Scripting Environment for mission designers in DCS World +theme: just-the-docs +color_scheme: moose + +gh_edit_link: false +gh_edit_link_text: "Edit this page on GitHub" +gh_edit_repository: https://github.com/FlightControl-Master/MOOSE +gh_edit_branch: master +gh_edit_source: docs +gh_edit_view_mode: edit + +callouts_level: quiet # or loud +callouts: + highlight: + color: grey-dk + important: + title: Important + color: red + new: + title: New + color: grey-lt + note: + title: Note + color: green + warning: + title: Warning + color: yellow +callouts_opacity: 0.4 + +aux_links: + GitHub: https://github.com/FlightControl-Master/MOOSE + Discord: https://discord.gg/aQtjcR94Qf diff --git a/docs/_sass/color_schemes/moose.scss b/docs/_sass/color_schemes/moose.scss new file mode 100644 index 000000000..12e58bad8 --- /dev/null +++ b/docs/_sass/color_schemes/moose.scss @@ -0,0 +1,5 @@ +@import "./color_schemes/dark"; + +$green-300: #0d441b; +$red-300: #440d0d; +$grey-dk-300: #adadad; diff --git a/docs/docker-compose.yml b/docs/docker-compose.yml new file mode 100644 index 000000000..6901f39a7 --- /dev/null +++ b/docs/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.5" + +services: + jekyll: + build: + context: ./ + ports: + - 4000:4000 + volumes: + - .:/usr/src/app + stdin_open: true + tty: true + command: bundle exec jekyll serve -H 0.0.0.0 -t --force_polling diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 000000000..9d06e6489 Binary files /dev/null and b/docs/favicon.ico differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..bd3525f15 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,68 @@ +--- +title: Overview +nav_order: 1 +layout: home +--- + +[![Moose-Includes](https://github.com/FlightControl-Master/MOOSE/actions/workflows/build-includes.yml/badge.svg?branch=master)](https://github.com/FlightControl-Master/MOOSE/actions/workflows/build-includes.yml)   +[![Moose-Docs](https://github.com/FlightControl-Master/MOOSE/actions/workflows/build-docs.yml/badge.svg?branch=master)](https://github.com/FlightControl-Master/MOOSE/actions/workflows/build-docs.yml) + +# MOOSE framework + +MOOSE is a **M**ission **O**bject **O**riented **S**cripting **E**nvironment for mission designers in [DCS World]. +It allows to quickly setup complex missions using pre-scripted scenarios using the available classes within the MOOSE Framework. +MOOSE is written in [Lua] which is a small and fast programming language, which is embedded in [DCS World]. + +## Goal of MOOSE + +The goal of MOOSE is to allow mission designers to enhance their scripting with mission orchestration objects, +which can be instantiated from defined classes within the framework. This will allow to write mission scripts with +minimal code embedded. Of course, the richness of the framework will determine the richness of the misson scenarios. +The MOOSE is a service that is produced while being consumed. It will evolve further as more classes are developed +for the framework and as more users are using it. +MOOSE is not a one-man show, it is a collaborative effort and meant to evolve within a growing community around the framework. +Within the community, key users will start supporting, documenting, explaining and even creating new classes for the framework. +It is the ambition to grow this framework as a de-facto standard for mission designers to use. + +## Two branches - Choose wisely + +In [DCS World] there is a `Stable` version and an `OpenBeta`. New features are released to the `OpenBeta` first and applied to `Stable` later. +People who choose to use `OpenBeta` can use the newest featuest and module, but accept the risk of bugs and unstable updates. +In MOOSE there is a `master` branch, which is comparable to the `Stable` version. +And there is the `development` branch, which is more like the `OpenBeta`. +New modules (called classes in [Lua], like [OPS.Auftrag]) will only available in the `development` branch. + +Releases are the most stable approach to use MOOSE. +From time to time the current state of the `master` branch is used to create release. +A release gets a spefific version number and will not be changed later on. + +## Documentation + +Documentation on the MOOSE class hierarchy will be automatically generated from [LuaDoc] comments inside of the source code of MOOOSE. +You can find the results on these websites: + +- Stable `master` branch: +- `develop` branch: + +## YouTube Tutorials + +There are different tutorial playlists available on YouTube: + +- AnyTimeBaby (Pene) has kindly created a [tutorial series for MOOSE](https://youtube.com/playlist?list=PLLkY2GByvtC2ME0Q9wrKRDE6qnXJYV3iT) + with various videos that you can watch. +- FlightControl (initiator of the project) has created a lot of [videos](https://www.youtube.com/@flightcontrol5350/featured) on how to use MOOSE. + They are a little bit outdated, but they still contain a lot of valuable information. + +## MOOSE on Discord + +MOOSE has a living community of users, beta testers and contributors. +The gathering point is a service provided by [Discord]. +If you want to join this community, just click the link below and you'll be on board in no time. + +- [Moose for DCS Discord server](https://discord.gg/aQtjcR94Qf) + +[DCS World]: https://www.digitalcombatsimulator.com/de/ +[Lua]: https://www.lua.org/ +[LuaDoc]: https://keplerproject.github.io/luadoc/ +[Ops.Auftrag]: https://flightcontrol-master.github.io/MOOSE_DOCS_DEVELOP/Documentation/Ops.Auftrag.html +[Discord]: https://discord.com/ diff --git a/docs/just-the-docs.gemspec b/docs/just-the-docs.gemspec new file mode 100644 index 000000000..851ac0aba --- /dev/null +++ b/docs/just-the-docs.gemspec @@ -0,0 +1,26 @@ +# coding: utf-8 + +Gem::Specification.new do |spec| + spec.name = "just-the-docs" + spec.version = "0.4.1" + spec.authors = ["Patrick Marsceill", "Matthew Wang"] + spec.email = ["patrick.marsceill@gmail.com", "matt@matthewwang.me"] + + spec.summary = %q{A modern, highly customizable, and responsive Jekyll theme for documentation with built-in search.} + spec.homepage = "https://github.com/just-the-docs/just-the-docs" + spec.license = "MIT" + spec.metadata = { + "bug_tracker_uri" => "https://github.com/just-the-docs/just-the-docs/issues", + "changelog_uri" => "https://github.com/just-the-docs/just-the-docs/blob/main/CHANGELOG.md", + "documentation_uri" => "https://just-the-docs.github.io/just-the-docs/", + "source_code_uri" => "https://github.com/just-the-docs/just-the-docs", + } + + spec.files = `git ls-files -z ':!:*.jpg' ':!:*.png'`.split("\x0").select { |f| f.match(%r{^(assets|bin|_layouts|_includes|lib|Rakefile|_sass|LICENSE|README|CHANGELOG|favicon)}i) } + spec.executables << 'just-the-docs' + + spec.add_development_dependency "bundler", ">= 2.3.5" + spec.add_runtime_dependency "jekyll", ">= 3.8.5" + spec.add_runtime_dependency "jekyll-seo-tag", ">= 2.0" + spec.add_runtime_dependency "rake", ">= 12.3.1" +end diff --git a/docs/repositories.md b/docs/repositories.md new file mode 100644 index 000000000..f7e89b744 --- /dev/null +++ b/docs/repositories.md @@ -0,0 +1,43 @@ +--- +title: Repositories +nav_order: 2 +--- + +# MOOSE Repositories + +The underlying picture documents the different repositories in the MOOSE framework. +The white ones are edited and are the source of the framework. +The red ones contain generated artefacts. See further the explanation for each repository. + +![Graphic](https://raw.githubusercontent.com/FlightControl-Master/MOOSE_DOCS/master/Configuration/Master.png) + +## [MOOSE](https://github.com/FlightControl-Master/MOOSE) - For development and static documentation + +This repository contains the source lua code of the MOOSE framework. +Also the source files for this documentation are included in this repository. + +## [MOOSE_INCLUDE](https://github.com/FlightControl-Master/MOOSE_INCLUDE) - For users (provides generated files) + +This repository contains the `Moose.lua` and `Moose\_.lua` file to be included within your missions. +Note that the `Moose\_.lua` is technically the same as `Moose.lua`, but without any commentary or unnecessary whitespace in it. +You only need to load **one** of those files at the beginning of your mission. + +## [MOOSE_DOCS](https://github.com/FlightControl-Master/MOOSE_DOCS) - Only to generate documentation website + +This repository contains the generated documentation and pictures and other references. +The generated documentation is reflected in html and is published at: +- Stable `master` branch: +- `develop` branch: + +## [MOOSE_MISSIONS](https://github.com/FlightControl-Master/MOOSE_MISSIONS) - For users (provides demo missions) + +This repository contains all the demonstration missions in packed format (*.miz), +and can be used without any further setup in DCS WORLD. + +## [MOOSE_MISSIONS_DYNAMIC](https://github.com/FlightControl-Master/MOOSE_MISSIONS_DYNAMIC) - Outdated + +This repository will be removed in future. + +## [MOOSE_MISSIONS_UNPACKED](https://github.com/FlightControl-Master/MOOSE_MISSIONS_UNPACKED) - Outdated + +This repository will be removed in future.