diff --git a/.github/ISSUE_TEMPLATE/newsounddevice.md b/.github/ISSUE_TEMPLATE/newsounddevice.md new file mode 100644 index 000000000..4fdffc7ee --- /dev/null +++ b/.github/ISSUE_TEMPLATE/newsounddevice.md @@ -0,0 +1,21 @@ +--- +name: New Sound device +about: Add a new device which you tested to the knowledge base +title: "[KB New Device]" +labels: kb +assignees: '' +--- +## Name of the device I want to add + +## Device type (Audio interface, Recorder) + connection type (USB, FireWire) + +## URL to manufacturer (if exists) + +## Tested operating systems +Add comments if you tested your device on this operating system and if you need to notice specific things (e.g. you need a special ASIO driver on Windows): + +**Windows:** +**macOS:** +**Linux:** + +## Additional information diff --git a/.github/workflows/jekyll.yml b/.github/workflows/jekyll.yml new file mode 100644 index 000000000..0bf94cc14 --- /dev/null +++ b/.github/workflows/jekyll.yml @@ -0,0 +1,20 @@ +name: Jekyll site CI + +on: + push: + branches: [ changes, release, translate ] + pull_request: + branches: [ changes, release, translate ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Build the site in the jekyll/builder container + run: | + docker run \ + -v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/_site:/srv/jekyll/_site \ + jekyll/builder:latest /bin/bash -c "chmod a+w /srv/jekyll/Gemfile.lock && chmod 777 /srv/jekyll && jekyll build --future" diff --git a/.github/workflows/syncbranches.yml b/.github/workflows/syncbranches.yml new file mode 100644 index 000000000..b55179988 --- /dev/null +++ b/.github/workflows/syncbranches.yml @@ -0,0 +1,18 @@ +name: Sync release to changes +on: + push: + branches: + - 'changes' +jobs: + sync-branch: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + + - name: Merge release -> changes + uses: devmasx/merge-branch@v1.3.1 + with: + type: now + from_branch: release + target_branch: changes + github_token: ${{ github.token }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2ee0fecd1..71931dc5e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,41 @@ -# Contribute +# Contribute to the documentation +We really appreciate your support! -Thanks for your support! -Please open an issue on github. More to come soon... -~~Please open a pull request on GitHub!~~ +Please note that discussions should be kept in English. If you don't speak English fluently you can use a reasonably good online translator (e.g. [DeepL](https://www.deepl.com), [Reverso](https://www.reverso.net/text_translation.aspx), ...) which might be able to translate your language to English. + +Please have a look at the [issues page on GitHub](https://github.com/jamulussoftware/jamuluswebsite/issues) and check if anybody has raised an issue with the same topic. + +If this is the case, please subscribe to the issue and explain your proposal. + +If that's not the case, please open a [new issue](https://github.com/jamulussoftware/jamuluswebsite/issues/new/choose), select which type of issue it is and describe your issue. + +If you want to open a Pull Request (after having described and discussed your proposal), keep in mind that your changes (if they are not just typos) might have to wait until everything is translated. We will bundle them (if everything is all right) with any other changes and upload all of them as a combined Pull Request to jamulus.io. + +Pull requests/issues for the website should have a title which looks like this: + +`[Tag (like Bug, Translation, etc.)][language code (e.g. en)] {short description of your changes}` + +## Branches, Translation and development process + +We currently use *multiple branches* to ensure that translators know what to translate. + +After having discussed and agreed on changes you want to be integrated to jamulus.io, you should ask yourself some questions: + +## 0. Is your content in a language that already exists on the site? +If not: This will be discussed this later (since you introduce a new language). +If so look here: +### 1. Be clear if your change needs translation +**No:** A fix which doesn't need to be translated (e.g. typo) --> Open a Pull Request to `release`. It will go live a few minutes after the PR is merged +**Yes:** A fix which needs to be translated (e.g. if you want to make a sentence or paragraph clearer) --> Commit to `changes` since others will need to translate it. (If you wish to, please do not add your translation to your commit, but add a comment with the translation in your Pull Request). It will be part of the next release. + +### 2. Be clear if a translation update is going on +You can see this if we ping the translators in a PR from changes to translate. + +**If yes:** only translate the changes of the Pull Request from changes to translation. If you find issues, start with 1 +**If no:** no need to care about the translate branch + +## Adding a new language + +1. Open an issue with the title [Translate] `yourLanguage` and say that you want to translate the homepage into your language. +2. If you start your new translation, follow the instructions to add a new language in the /README.md file on the changes branch. +3. Finally, open a PR to `translate` diff --git a/Gemfile b/Gemfile index e8207c05e..5e3848c73 100644 --- a/Gemfile +++ b/Gemfile @@ -9,4 +9,5 @@ group :jekyll_plugins do gem "jekyll-polyglot" end gem "jekyll-minifier" +gem "jekyll-paginate-v2" # gem "rails" diff --git a/Gemfile.lock b/Gemfile.lock index 7e39ae7e4..b5b1c284e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,47 +4,49 @@ GEM addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) colorator (1.1.0) - concurrent-ruby (1.1.7) + concurrent-ruby (1.1.8) cssminify2 (2.0.1) em-websocket (0.5.2) eventmachine (>= 0.12.9) http_parser.rb (~> 0.6.0) eventmachine (1.2.7) execjs (2.7.0) - ffi (1.13.1) + ffi (1.14.2) forwardable-extended (2.6.0) htmlcompressor (0.4.0) http_parser.rb (0.6.0) - i18n (1.8.5) + i18n (1.8.9) concurrent-ruby (~> 1.0) - jekyll (4.1.1) + jekyll (4.2.0) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) i18n (~> 1.0) jekyll-sass-converter (~> 2.0) jekyll-watch (~> 2.0) - kramdown (~> 2.1) + kramdown (~> 2.3) kramdown-parser-gfm (~> 1.0) liquid (~> 4.0) mercenary (~> 0.4.0) pathutil (~> 0.9) rouge (~> 3.0) safe_yaml (~> 1.0) - terminal-table (~> 1.8) + terminal-table (~> 2.0) jekyll-minifier (0.1.10) cssminify2 (~> 2.0) htmlcompressor (~> 0.4) jekyll (>= 3.5) json-minify (~> 0.0.3) uglifier (~> 4.1) - jekyll-polyglot (1.3.3) + jekyll-paginate-v2 (3.0.0) + jekyll (>= 3.0, < 5.0) + jekyll-polyglot (1.4.0) jekyll (>= 3.0) jekyll-sass-converter (2.1.0) sassc (> 2.0.1, < 3.0) jekyll-watch (2.2.1) listen (~> 3.0) - json (2.3.1) + json (2.5.1) json-minify (0.0.3) json (> 0) kramdown (2.3.0) @@ -52,7 +54,7 @@ GEM kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.3) - listen (3.3.3) + listen (3.4.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) @@ -63,11 +65,11 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.4) - rouge (3.25.0) + rouge (3.26.0) safe_yaml (1.0.5) sassc (2.4.0) ffi (~> 1.9) - terminal-table (1.8.0) + terminal-table (2.0.0) unicode-display_width (~> 1.1, >= 1.1.1) uglifier (4.2.0) execjs (>= 0.3.0, < 3) @@ -79,7 +81,8 @@ PLATFORMS DEPENDENCIES jekyll jekyll-minifier + jekyll-paginate-v2 jekyll-polyglot BUNDLED WITH - 2.1.4 + 2.2.9 diff --git a/README.md b/README.md index 44dfbeb25..006542db1 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,44 @@ # Jamulus Website -This is the home of the [Jamulus website](https://jamulus.io) and wiki. - -## Tech - -Built with Jekyll and Fox-CSS - -## Contribute and translation - -Do you want to contribute to the Jamulus Wiki/Website? Please open an issue since we're currently discussing how to fasciliate contribution. ~~See the [CONTRIBUTING.md](CONTRIBUTING.md) file and the [contributing wiki entry](https://jamulus.io/wiki/Contribution).~~ +This is the home of the [Jamulus website](https://jamulus.io). The goal of this page is to explain what Jamulus is and how to use it. ## Adding pictures Unfortunately GitHub doesn't enable picture upload on the normal md editor. Therefore you can attempt to open an issue, upload your image, copy the link to the page you want to integrate it into and then don't submit the issue. See this answer on stack overflow: https://stackoverflow.com/a/26601810 -## Translating +## Contribute a translation -Translations are handled by the [Polyglot jekyll Plug-in](https://github.com/untra/polyglot). +**Before translating, please have a look at the [CONTRIBUTING.md](CONTRIBUTING.md) file to get familiar with our translation process. Afterwards, check if there's already a discussion thread for your language here: https://github.com/jamulussoftware/jamuluswebsite/discussions and participate in it** + +Translations are handled by the [Polyglot Jekyll Plug-in](https://github.com/untra/polyglot). If you want to translate a file, you must first know where it is located on this repo: -- General translations especially for the wiki can be found in \_includes/wiki/yourlanguagecode folder. These files **must** be translated in order not to break the site. -- The homepage is located in the repo root and named [langcode]-index.html +- General translations (especially for the wiki) can be found in \_includes/wiki/yourlanguagecode folder. These files **must** be translated in order not to break the site. +- The homepage (https://jamulus.io/) is located in the repo root and named 1-[langcode]-index.html - The wiki content can be found in the wiki/ folder. Make sure to read the README.md file in the wiki/ folder. - The navigation and general translations can be found in the \_data/yourlanguagecode folder -To translate a file, please duplicate it and change the `lang:` attribute to the language you want to translate it to. If you want to translate an English page to German, you need to change the `lang: "en"` attribute to `lang: "de"`. This attribute can be found at the top of the file in the front matter (right at the top in between the `---`). Do not change the permalink attribute. It links pages with the same content but different languages and enables polyglot to know which page to change to if you change the language via the language picker. +To translate a file, please duplicate it and change the `lang:` attribute to the language you want to translate it to. If you want to translate an English page to German, you need to change the `lang: "en"` attribute to `lang: "de"`. This attribute can be found at the top of the file in the front matter (right at the top in between the `---`). Do not change the permalink attribute (It internally links pages with the same content but different languages and enables polyglot to know which page to change to if you change the language via the language picker.) ### Adding a new language If you want to add a new language, you must follow the instructions on the polyglot site and add the folders/files. - Make sure to add your language to the \_config.yml file (in the languages array.) - At least, the main includes for the wiki (see \_includes/wiki/) have to be translated. -- The navigation and general site wide strings (see the \_data/ folder) and the homepage (see the 1-index.html file in the root of this repo) should be translated. +- The navigation and general site-wide strings (see the \_data/ folder) and the homepage (see the 1-index.html file in the root of this repo) should be translated. Have a look at the README.md files in these folders. +## Tech + +This site is built with Jekyll and Fox-CSS. + ## Contribute to the design/site structure +Please open an issue and see the [CONTRIBUTING.md](CONTRIBUTING.md) file. -Since this page uses Jekyll, please have a look at the [jekyll documentation](https://jekyllrb.com/docs/). -This project uses the fox css framework. See the [FOX-CSS documentation](http://www.fox-css.com/documents/). +### A few tips/links +Since this page uses Jekyll, please have a look at the [Jekyll documentation](https://jekyllrb.com/docs/). +This project uses the FOX-CSS framework. See the [FOX-CSS documentation](http://www.fox-css.com/documents/). CSS files can be found in the assets/css folder. The \_layouts folder holds the main layouts for the page. More information can be found at the README.md files in (almost) every folder. diff --git a/_config.yml b/_config.yml index 9eed52d94..76a1a3552 100644 --- a/_config.yml +++ b/_config.yml @@ -1,4 +1,5 @@ plugins: + - jekyll-paginate-v2 - jekyll-polyglot - jekyll-minifier languages: ["en", "es", "de", "it", "fr"] @@ -6,7 +7,18 @@ default_lang: "en" exclude_from_localization: ["assets", "images", "css", "README.md", "manifest.json", "humans.txt", "sitemap.xml"] parallel_localization: true a_rootpage: "https://jamulus.io" -githubrepoeditbase: "https://github.com/jamulussoftware/jamulussoftware.github.io/edit/changes" + +# Jamulus release binary links +download_root_link: "https://github.com/jamulussoftware/jamulus/releases/download/r3_7_0/" +download_file_names: + deb-gui: "jamulus_3.7.0_ubuntu_amd64.deb" + deb-headless: "jamulus_headless_3.7.0_ubuntu_amd64.deb" + windows: "jamulus_3.7.0_win.exe" + mac: "jamulus_3.7.0_mac.dmg" + android: "jamulus_3.7.0_android.apk" + +githubrepoeditbase: "https://github.com/jamulussoftware/jamuluswebsite/edit/changes" +kbnewpage: 'https://github.com/jamulussoftware/jamuluswebsite/new/changes/_posts/?value=---%0Alayout%3A%20post%0Atitle%3A%20%22Your%20Title%22%0Alang%3A%20%22en%22%0Aauthor%3A%20%22YourName%22%0Aheading%3A%20%22Heading%22%0A---%0AName%20This%20File%20and%20edit%20the%20parameters%20above%21&message=New%20post' exclude: ["README.md", "Gemfile.lock", "Gemfile", "CONTRIBUTING.md"] jekyll-minifier: remove_intertag_spaces: true @@ -14,3 +26,30 @@ jekyll-minifier: remove_multi_spaces: true compress_json: true exclude: "sitemap.xml" +excerpt_separator: +permalink: /kb/:categories/:year/:month/:day/:title:output_ext +pagination: + enabled: true + # Set to 'true' to enable pagination debugging. This can be enabled in the site config or only for individual pagination pages + debug: false + # The default document collection to paginate if nothing is specified ('posts' is default) + collection: 'posts' + # How many objects per paginated page, used to be `paginate` (default: 0, means all) + per_page: 4 + # The permalink structure for the paginated pages (this can be any level deep) + permalink: '/:num/index.html' + + title: ':title / :num' + # Limit how many pagenated pages to create (default: 0, means all) + limit: 0 + + # Optional, defines the field that the posts should be sorted on (omit to default to 'date') + sort_field: 'date' + + # Optional, sorts the posts in reverse order (omit to default decending or sort_reverse: true) + sort_reverse: true + # Optional,omit or set both before and after to zero to disable. + # Controls how the pagination trail for the paginated pages look like. + trail: + before: 2 + after: 3