diff --git a/.all-contributorsrc b/.all-contributorsrc index 9a07b5b3..99b43da4 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,44 +1,44 @@ -{ - "files": ["README.md"], - "imageSize": 100, - "commit": false, - "contributorsPerLine": 7, - "projectName": "al-folio", - "projectOwner": "alshedivat", - "repoType": "github", - "repoHost": "https://github.com", - "badgeTemplate": "[core_contributors]: https://img.shields.io/badge/core_contributors-<%= contributors.length %>-orange.svg 'Number of core contributors'", - "contributorTemplate": "\">\" width=\"<%= options.imageSize %>px;\" alt=\"\"/>
<%= contributor.name %>
", - "skipCi": true, - "contributors": [ - { - "login": "alshedivat", - "name": "Maruan", - "avatar_url": "https://avatars.githubusercontent.com/u/2126561?v=4", - "profile": "http://maruan.alshedivat.com", - "contributions": ["design", "code"] - }, - { - "login": "rohandebsarkar", - "name": "Rohan Deb Sarkar", - "avatar_url": "https://avatars.githubusercontent.com/u/50144004?v=4", - "profile": "http://rohandebsarkar.github.io", - "contributions": ["code"] - }, - { - "login": "pourmand1376", - "name": "Amir Pourmand", - "avatar_url": "https://avatars.githubusercontent.com/u/32064808?v=4", - "profile": "https://amirpourmand.ir", - "contributions": ["code"] - }, - { - "login": "george-gca", - "name": "George", - "avatar_url": "https://avatars.githubusercontent.com/u/31376482?v=4", - "profile": "https://george-gca.github.io/", - "contributions": ["code"] - } - ], - "commitConvention": "angular" -} +{ + "files": ["README.md"], + "imageSize": 100, + "commit": false, + "contributorsPerLine": 7, + "projectName": "al-folio", + "projectOwner": "alshedivat", + "repoType": "github", + "repoHost": "https://github.com", + "badgeTemplate": "[core_contributors]: https://img.shields.io/badge/core_contributors-<%= contributors.length %>-orange.svg 'Number of core contributors'", + "contributorTemplate": "\">\" width=\"<%= options.imageSize %>px;\" alt=\"\"/>
<%= contributor.name %>
", + "skipCi": true, + "contributors": [ + { + "login": "alshedivat", + "name": "Maruan", + "avatar_url": "https://avatars.githubusercontent.com/u/2126561?v=4", + "profile": "http://maruan.alshedivat.com", + "contributions": ["design", "code"] + }, + { + "login": "rohandebsarkar", + "name": "Rohan Deb Sarkar", + "avatar_url": "https://avatars.githubusercontent.com/u/50144004?v=4", + "profile": "http://rohandebsarkar.github.io", + "contributions": ["code"] + }, + { + "login": "pourmand1376", + "name": "Amir Pourmand", + "avatar_url": "https://avatars.githubusercontent.com/u/32064808?v=4", + "profile": "https://amirpourmand.ir", + "contributions": ["code"] + }, + { + "login": "george-gca", + "name": "George", + "avatar_url": "https://avatars.githubusercontent.com/u/31376482?v=4", + "profile": "https://george-gca.github.io/", + "contributions": ["code"] + } + ], + "commitConvention": "angular" +} diff --git a/.github/ISSUE_TEMPLATE/1_bug_report.yml b/.github/ISSUE_TEMPLATE/1_bug_report.yml index 5ce6fd93..b78a9423 100644 --- a/.github/ISSUE_TEMPLATE/1_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/1_bug_report.yml @@ -1,103 +1,103 @@ -name: 🐛 Report a bug -description: Any errors. -labels: ["needs triage", "bug"] -body: - - type: markdown - attributes: - value: > - Before you go any further. Is this really a **🐛 bug**? - - If it's a question about how al-folio works, have a look at our [documentation](https://github.com/alshedivat/al-folio/blob/master/README.md), - [frequently asked questions](https://github.com/alshedivat/al-folio/blob/master/FAQ.md), - [past questions](https://github.com/alshedivat/al-folio/discussions/categories/q-a), - or [ask a question](https://github.com/alshedivat/al-folio/discussions/new?category=q-a) there. If your question is related to localization, - please check if it was not already answered in the Q&A section of the [GitHub Discussions](https://github.com/george-gca/multi-language-al-folio/discussions/categories/q-a) or - [ask a question](https://github.com/george-gca/multi-language-al-folio/discussions/new?category=q-a). - - - type: checkboxes - id: requirements - attributes: - label: Have you checked that your issue isn't already filed? - description: > - Please check if somebody else has already filed the same issue. - If you find a similar issue, please add a 👍 reaction or comment on the original post. - options: - - label: I read through [FAQ](https://github.com/george-gca/multi-language-al-folio/blob/master/FAQ.md) and searched through the past issues both in the [original repo](https://github.com/alshedivat/al-folio/issues) and [this one](https://github.com/george-gca/multi-language-al-folio/issues), none of which addressed my issue. - required: true - - label: Yes, I have checked that this issue isn't already filed. - required: true - - - type: input - attributes: - label: Bug description - description: A description of the 🐛 bug. - placeholder: A clear and concise description of what the bug is. - validations: - required: true - - - type: textarea - attributes: - label: How to reproduce the bug - description: Provide steps to reproduce the 🐛 bug. - placeholder: | - Include steps to reproduce, the expected behaviour, and the actual behaviour. - - 1. Go to '...' - 2. Click on '....' - 3. Scroll down to '....' - 4. See error - validations: - required: true - - - type: textarea - attributes: - label: Error messages and logs - description: > - Provide any error messages and/or logs - placeholder: "Copy the complete error messages and logs" - value: | - ``` - The error message you got, with the full traceback if available. Please paste it between these triple backticks. - ``` - validations: - required: false - - - type: dropdown - id: os - attributes: - label: What operating system are you using? - description: select all OSs where you have experienced this issue - multiple: true - options: - - Linux - - Mac - - Windows - - Not applicable (e.g. you're using GitHub Pages or other hosting) - validations: - required: true - - - type: dropdown - id: environment - attributes: - label: Where are you seeing the problem on? - description: select all environments where you have experienced this issue - multiple: true - options: - - "Running locally with Docker" - - "Running locally without Docker" - - "Deployed site" - validations: - required: true - - - type: textarea - attributes: - label: More info - description: Add any other info about the issue here. - placeholder: | - Add any other context about the problem here, such as versions of the libraries if running without docker, screenshots, links to the deployed site, etc. - validations: - required: false - - - type: markdown - attributes: - value: "**Happy coding!**" +name: 🐛 Report a bug +description: Any errors. +labels: ["needs triage", "bug"] +body: + - type: markdown + attributes: + value: > + Before you go any further. Is this really a **🐛 bug**? + + If it's a question about how al-folio works, have a look at our [documentation](https://github.com/alshedivat/al-folio/blob/master/README.md), + [frequently asked questions](https://github.com/alshedivat/al-folio/blob/master/FAQ.md), + [past questions](https://github.com/alshedivat/al-folio/discussions/categories/q-a), + or [ask a question](https://github.com/alshedivat/al-folio/discussions/new?category=q-a) there. If your question is related to localization, + please check if it was not already answered in the Q&A section of the [GitHub Discussions](https://github.com/george-gca/multi-language-al-folio/discussions/categories/q-a) or + [ask a question](https://github.com/george-gca/multi-language-al-folio/discussions/new?category=q-a). + + - type: checkboxes + id: requirements + attributes: + label: Have you checked that your issue isn't already filed? + description: > + Please check if somebody else has already filed the same issue. + If you find a similar issue, please add a 👍 reaction or comment on the original post. + options: + - label: I read through [FAQ](https://github.com/george-gca/multi-language-al-folio/blob/master/FAQ.md) and searched through the past issues both in the [original repo](https://github.com/alshedivat/al-folio/issues) and [this one](https://github.com/george-gca/multi-language-al-folio/issues), none of which addressed my issue. + required: true + - label: Yes, I have checked that this issue isn't already filed. + required: true + + - type: input + attributes: + label: Bug description + description: A description of the 🐛 bug. + placeholder: A clear and concise description of what the bug is. + validations: + required: true + + - type: textarea + attributes: + label: How to reproduce the bug + description: Provide steps to reproduce the 🐛 bug. + placeholder: | + Include steps to reproduce, the expected behaviour, and the actual behaviour. + + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + + - type: textarea + attributes: + label: Error messages and logs + description: > + Provide any error messages and/or logs + placeholder: "Copy the complete error messages and logs" + value: | + ``` + The error message you got, with the full traceback if available. Please paste it between these triple backticks. + ``` + validations: + required: false + + - type: dropdown + id: os + attributes: + label: What operating system are you using? + description: select all OSs where you have experienced this issue + multiple: true + options: + - Linux + - Mac + - Windows + - Not applicable (e.g. you're using GitHub Pages or other hosting) + validations: + required: true + + - type: dropdown + id: environment + attributes: + label: Where are you seeing the problem on? + description: select all environments where you have experienced this issue + multiple: true + options: + - "Running locally with Docker" + - "Running locally without Docker" + - "Deployed site" + validations: + required: true + + - type: textarea + attributes: + label: More info + description: Add any other info about the issue here. + placeholder: | + Add any other context about the problem here, such as versions of the libraries if running without docker, screenshots, links to the deployed site, etc. + validations: + required: false + + - type: markdown + attributes: + value: "**Happy coding!**" diff --git a/.github/ISSUE_TEMPLATE/2_feature_request.yml b/.github/ISSUE_TEMPLATE/2_feature_request.yml index 14889a0f..a74b98a6 100644 --- a/.github/ISSUE_TEMPLATE/2_feature_request.yml +++ b/.github/ISSUE_TEMPLATE/2_feature_request.yml @@ -1,58 +1,58 @@ -name: 🚀 Feature request -description: Propose a feature for this project -labels: ["needs triage", "enhancement"] -body: - - type: markdown - attributes: - value: > - Before you go any further, are you sure that this feature is not already implemented? - - If it's a question about how al-folio works, have a look at our [documentation](https://github.com/alshedivat/al-folio/blob/master/README.md), - [frequently asked questions](https://github.com/alshedivat/al-folio/blob/master/FAQ.md), - [past questions](https://github.com/alshedivat/al-folio/discussions/categories/q-a), - or [ask a question](https://github.com/alshedivat/al-folio/discussions/new?category=q-a) there. If your question is related to localization, - please check if it was not already answered in the Q&A section of the [GitHub Discussions](https://github.com/george-gca/multi-language-al-folio/discussions/categories/q-a) or - [ask a question](https://github.com/george-gca/multi-language-al-folio/discussions/new?category=q-a). - - - type: checkboxes - id: requirements - attributes: - label: Have you checked that your feature request isn't already filed? - description: > - Please check if somebody else has already filed the same 🚀 feature request. - If you find a similar feature request, please add a 👍 reaction or comment on the original post. - options: - - label: I read through [FAQ](https://github.com/george-gca/multi-language-al-folio/blob/master/FAQ.md) and searched through the past issues both in the [original repo](https://github.com/alshedivat/al-folio/issues) and [this one](https://github.com/george-gca/multi-language-al-folio/issues), none of which addressed my issue. - required: true - - label: Yes, I have checked that this feature request isn't already filed. - required: true - - - type: textarea - attributes: - label: Description & Motivation - description: A clear and concise description of the 🚀 feature proposal - placeholder: | - Please outline the motivation for the proposal. - Is your feature request related to a problem? e.g., I'm always frustrated when [...]. - If this is related to another GitHub issue, please link it here - - - type: textarea - attributes: - label: Pitch - description: A clear and concise description of what you want to happen. - validations: - required: false - - - type: textarea - attributes: - label: Alternatives - description: A clear and concise description of any alternative solutions or features you've considered, if any. - validations: - required: false - - - type: textarea - attributes: - label: Additional context - description: Add any other context or screenshots about the feature request here. - validations: - required: false +name: 🚀 Feature request +description: Propose a feature for this project +labels: ["needs triage", "enhancement"] +body: + - type: markdown + attributes: + value: > + Before you go any further, are you sure that this feature is not already implemented? + + If it's a question about how al-folio works, have a look at our [documentation](https://github.com/alshedivat/al-folio/blob/master/README.md), + [frequently asked questions](https://github.com/alshedivat/al-folio/blob/master/FAQ.md), + [past questions](https://github.com/alshedivat/al-folio/discussions/categories/q-a), + or [ask a question](https://github.com/alshedivat/al-folio/discussions/new?category=q-a) there. If your question is related to localization, + please check if it was not already answered in the Q&A section of the [GitHub Discussions](https://github.com/george-gca/multi-language-al-folio/discussions/categories/q-a) or + [ask a question](https://github.com/george-gca/multi-language-al-folio/discussions/new?category=q-a). + + - type: checkboxes + id: requirements + attributes: + label: Have you checked that your feature request isn't already filed? + description: > + Please check if somebody else has already filed the same 🚀 feature request. + If you find a similar feature request, please add a 👍 reaction or comment on the original post. + options: + - label: I read through [FAQ](https://github.com/george-gca/multi-language-al-folio/blob/master/FAQ.md) and searched through the past issues both in the [original repo](https://github.com/alshedivat/al-folio/issues) and [this one](https://github.com/george-gca/multi-language-al-folio/issues), none of which addressed my issue. + required: true + - label: Yes, I have checked that this feature request isn't already filed. + required: true + + - type: textarea + attributes: + label: Description & Motivation + description: A clear and concise description of the 🚀 feature proposal + placeholder: | + Please outline the motivation for the proposal. + Is your feature request related to a problem? e.g., I'm always frustrated when [...]. + If this is related to another GitHub issue, please link it here + + - type: textarea + attributes: + label: Pitch + description: A clear and concise description of what you want to happen. + validations: + required: false + + - type: textarea + attributes: + label: Alternatives + description: A clear and concise description of any alternative solutions or features you've considered, if any. + validations: + required: false + + - type: textarea + attributes: + label: Additional context + description: Add any other context or screenshots about the feature request here. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index a4b87fd3..272ad963 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,11 +1,11 @@ -blank_issues_enabled: false -contact_links: - - name: ❓ Ask a Question - url: https://github.com/alshedivat/al-folio/discussions/categories/q-a - about: Ask and answer al-folio related questions. - - name: ❓ Ask a Question (Localization) - url: https://github.com/george-gca/multi-language-al-folio/discussions/categories/q-a - about: Ask and answer al-folio questions related to localization. - - name: 📖 Read the documentation - url: https://github.com/george-gca/multi-language-al-folio/blob/master/README.md - about: Please consult the documentation before opening any issues! +blank_issues_enabled: false +contact_links: + - name: ❓ Ask a Question + url: https://github.com/alshedivat/al-folio/discussions/categories/q-a + about: Ask and answer al-folio related questions. + - name: ❓ Ask a Question (Localization) + url: https://github.com/george-gca/multi-language-al-folio/discussions/categories/q-a + about: Ask and answer al-folio questions related to localization. + - name: 📖 Read the documentation + url: https://github.com/george-gca/multi-language-al-folio/blob/master/README.md + about: Please consult the documentation before opening any issues! diff --git a/.github/release.yml b/.github/release.yml index 8a455792..4fdc27ee 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -1,14 +1,14 @@ -changelog: - exclude: - labels: - - ignore-for-release - categories: - - title: new features 🚀 - labels: - - enhancement - - title: bug fixes and improvements ✨ - labels: - - bug-fix - - title: other changes 🛠️ - labels: - - "*" +changelog: + exclude: + labels: + - ignore-for-release + categories: + - title: new features 🚀 + labels: + - enhancement + - title: bug fixes and improvements ✨ + labels: + - bug-fix + - title: other changes 🛠️ + labels: + - "*" diff --git a/.github/stale.yml b/.github/stale.yml index 0aa7be8d..8ec2004d 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,18 +1,18 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - pinned - - security - - enhancement -# Label to use when marking an issue as stale -staleLabel: wontfix -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - security + - enhancement +# Label to use when marking an issue as stale +staleLabel: wontfix +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false diff --git a/.github/workflows/axe.yml b/.github/workflows/axe.yml index ced97047..e1b49d44 100644 --- a/.github/workflows/axe.yml +++ b/.github/workflows/axe.yml @@ -1,62 +1,62 @@ -name: Axe accessibility testing - -on: - # if you want to run this on every push uncomment the following lines - # push: - # branches: - # - master - # - main - # pull_request: - # branches: - # - master - # - main - workflow_dispatch: - inputs: - url: - description: "URL to be checked (e.g.: blog/)" - required: false - -permissions: - contents: write - -env: - URL: "" - -jobs: - check: - # available images: https://github.com/actions/runner-images#available-images - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v4 - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: "3.2.2" - bundler-cache: true - - name: Update _config.yml ⚙️ - uses: fjogeleit/yaml-update-action@main - with: - commitChange: false - valueFile: "_config.yml" - changes: | - { - "giscus.repo": "${{ github.repository }}", - "baseurl": "" - } - - name: Install and Build 🔧 - run: | - pip3 install --upgrade jupyter - export JEKYLL_ENV=production - bundle exec jekyll build --lsi - - name: Purge unused CSS 🧹 - run: | - npm install -g purgecss - purgecss -c purgecss.config.js - - name: Run axe 🪓 - # https://github.com/dequelabs/axe-core-npm/tree/develop/packages/cli - run: | - npm install -g @axe-core/cli - npm install -g http-server - http-server _site/ & - axe http://localhost:8080/${{ github.event.inputs.url || env.URL }} --load-delay=1500 --exit +name: Axe accessibility testing + +on: + # if you want to run this on every push uncomment the following lines + # push: + # branches: + # - master + # - main + # pull_request: + # branches: + # - master + # - main + workflow_dispatch: + inputs: + url: + description: "URL to be checked (e.g.: blog/)" + required: false + +permissions: + contents: write + +env: + URL: "" + +jobs: + check: + # available images: https://github.com/actions/runner-images#available-images + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v4 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.2.2" + bundler-cache: true + - name: Update _config.yml ⚙️ + uses: fjogeleit/yaml-update-action@main + with: + commitChange: false + valueFile: "_config.yml" + changes: | + { + "giscus.repo": "${{ github.repository }}", + "baseurl": "" + } + - name: Install and Build 🔧 + run: | + pip3 install --upgrade jupyter + export JEKYLL_ENV=production + bundle exec jekyll build --lsi + - name: Purge unused CSS 🧹 + run: | + npm install -g purgecss + purgecss -c purgecss.config.js + - name: Run axe 🪓 + # https://github.com/dequelabs/axe-core-npm/tree/develop/packages/cli + run: | + npm install -g @axe-core/cli + npm install -g http-server + http-server _site/ & + axe http://localhost:8080/${{ github.event.inputs.url || env.URL }} --load-delay=1500 --exit diff --git a/.github/workflows/broken-links-site.yml b/.github/workflows/broken-links-site.yml index 005cf4e3..61758b74 100644 --- a/.github/workflows/broken-links-site.yml +++ b/.github/workflows/broken-links-site.yml @@ -1,49 +1,49 @@ -name: Check for broken links on site - -on: - workflow_run: - workflows: [Deploy site] - types: [completed] - -permissions: - contents: write - -jobs: - check-links-on-site: - # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow - if: ${{ github.event.workflow_run.conclusion == 'success' }} - # available images: https://github.com/actions/runner-images#available-images - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v4 - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: "3.2.2" - bundler-cache: true - - name: Update _config.yml ⚙️ - uses: fjogeleit/yaml-update-action@main - with: - commitChange: false - valueFile: "_config.yml" - changes: | - { - "giscus.repo": "${{ github.repository }}", - "baseurl": "" - } - - name: Install and Build 🔧 - run: | - pip3 install --upgrade jupyter - export JEKYLL_ENV=production - bundle exec jekyll build --lsi - - name: Purge unused CSS 🧹 - run: | - npm install -g purgecss - purgecss -c purgecss.config.js - - name: Link Checker 🔗 - uses: lycheeverse/lychee-action@v1.9.0 - with: - fail: true - # only check local links - args: --offline --remap '_site(/?.*)/assets/(.*) _site/assets/$2' --exclude '_site/assets/images' --exclude '_site/archive' --verbose --no-progress '_site/**/*.html' +name: Check for broken links on site + +on: + workflow_run: + workflows: [Deploy site] + types: [completed] + +permissions: + contents: write + +jobs: + check-links-on-site: + # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow + if: ${{ github.event.workflow_run.conclusion == 'success' }} + # available images: https://github.com/actions/runner-images#available-images + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v4 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.2.2" + bundler-cache: true + - name: Update _config.yml ⚙️ + uses: fjogeleit/yaml-update-action@main + with: + commitChange: false + valueFile: "_config.yml" + changes: | + { + "giscus.repo": "${{ github.repository }}", + "baseurl": "" + } + - name: Install and Build 🔧 + run: | + pip3 install --upgrade jupyter + export JEKYLL_ENV=production + bundle exec jekyll build --lsi + - name: Purge unused CSS 🧹 + run: | + npm install -g purgecss + purgecss -c purgecss.config.js + - name: Link Checker 🔗 + uses: lycheeverse/lychee-action@v1.9.0 + with: + fail: true + # only check local links + args: --offline --remap '_site(/?.*)/assets/(.*) _site/assets/$2' --exclude '_site/assets/images' --exclude '_site/archive' --verbose --no-progress '_site/**/*.html' diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 35eef8b5..ed26d2fa 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -1,54 +1,54 @@ -name: Check for broken links - -on: - push: - branches: - - master - - main - paths: - - "assets/**" - - "**.html" - - "**.js" - - "**.liquid" - - "**/*.md" - - "**.yml" - - "!.github/workflows/axe.yml" - - "!.github/workflows/deploy-docker-tag.yml" - - "!.github/workflows/deploy-image.yml" - - "!.github/workflows/docker-slim.yml" - - "!.github/workflows/lighthouse-badger.yml" - - "!.github/workflows/prettier.yml" - - "!lighthouse_results/**" - pull_request: - branches: - - master - - main - paths: - - "assets/**" - - "**.html" - - "**.js" - - "**.liquid" - - "**/*.md" - - "**.yml" - - "!.github/workflows/axe.yml" - - "!.github/workflows/deploy-docker-tag.yml" - - "!.github/workflows/deploy-image.yml" - - "!.github/workflows/docker-slim.yml" - - "!.github/workflows/lighthouse-badger.yml" - - "!.github/workflows/prettier.yml" - - "!lighthouse_results/**" - -jobs: - link-checker: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Link Checker 🔗 - uses: lycheeverse/lychee-action@v1.9.0 - with: - fail: true - # removed md files that include liquid tags - # remove archived html page - # remove template ave html plage - args: --exclude-path CUSTOMIZE.md --exclude-path archive/templates/ave/index.html --exclude-path archive/src/pages/templates/ave/index.html --exclude-path archive/index.html --exclude-path README.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path _i18n/en/_posts/2018-12-22-distill.md --exclude-path _i18n/pt-br/_posts/2018-12-22-distill.md --verbose --no-progress './**/*.md' './**/*.html' +name: Check for broken links + +on: + push: + branches: + - master + - main + paths: + - "assets/**" + - "**.html" + - "**.js" + - "**.liquid" + - "**/*.md" + - "**.yml" + - "!.github/workflows/axe.yml" + - "!.github/workflows/deploy-docker-tag.yml" + - "!.github/workflows/deploy-image.yml" + - "!.github/workflows/docker-slim.yml" + - "!.github/workflows/lighthouse-badger.yml" + - "!.github/workflows/prettier.yml" + - "!lighthouse_results/**" + pull_request: + branches: + - master + - main + paths: + - "assets/**" + - "**.html" + - "**.js" + - "**.liquid" + - "**/*.md" + - "**.yml" + - "!.github/workflows/axe.yml" + - "!.github/workflows/deploy-docker-tag.yml" + - "!.github/workflows/deploy-image.yml" + - "!.github/workflows/docker-slim.yml" + - "!.github/workflows/lighthouse-badger.yml" + - "!.github/workflows/prettier.yml" + - "!lighthouse_results/**" + +jobs: + link-checker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Link Checker 🔗 + uses: lycheeverse/lychee-action@v1.9.0 + with: + fail: true + # removed md files that include liquid tags + # remove archived html page + # remove template ave html plage + args: --exclude-path CUSTOMIZE.md --exclude-path archive/templates/ave/index.html --exclude-path archive/src/pages/templates/ave/index.html --exclude-path archive/index.html --exclude-path README.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path _i18n/en/_posts/2018-12-22-distill.md --exclude-path _i18n/pt-br/_posts/2018-12-22-distill.md --verbose --no-progress './**/*.md' './**/*.html' diff --git a/.github/workflows/deploy-docker-tag.yml b/.github/workflows/deploy-docker-tag.yml index ba1a34a8..9080dbda 100644 --- a/.github/workflows/deploy-docker-tag.yml +++ b/.github/workflows/deploy-docker-tag.yml @@ -1,48 +1,48 @@ -name: Docker Image CI (Upload Tag) - -on: - push: - tags: - - "v*" - paths: - - "bin/entry_point.sh" - - "Dockerfile" - - "Gemfile" - - "Gemfile.lock" - - "package.json" - - "package-lock.json" - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Buildx - uses: docker/setup-buildx-action@v3 - - - name: Docker meta - id: meta - uses: docker/metadata-action@v5 - with: - images: georgegca/multi-language-al-folio - - - name: Login - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: . - platforms: linux/amd64,linux/arm64/v8 - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} +name: Docker Image CI (Upload Tag) + +on: + push: + tags: + - "v*" + paths: + - "bin/entry_point.sh" + - "Dockerfile" + - "Gemfile" + - "Gemfile.lock" + - "package.json" + - "package-lock.json" + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Buildx + uses: docker/setup-buildx-action@v3 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: georgegca/multi-language-al-folio + + - name: Login + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + platforms: linux/amd64,linux/arm64/v8 + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/deploy-image.yml b/.github/workflows/deploy-image.yml index e7bd8648..65da7b82 100644 --- a/.github/workflows/deploy-image.yml +++ b/.github/workflows/deploy-image.yml @@ -1,43 +1,43 @@ -name: Docker Image CI - -on: - push: - branches: - - master - - main - paths: - - "bin/entry_point.sh" - - "Dockerfile" - - "Gemfile" - - "Gemfile.lock" - - "package.json" - - "package-lock.json" - -jobs: - build: - runs-on: ubuntu-latest - if: github.repository_owner == 'george-gca' - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: . - push: true - platforms: linux/amd64,linux/arm64/v8 - tags: georgegca/multi-language-al-folio +name: Docker Image CI + +on: + push: + branches: + - master + - main + paths: + - "bin/entry_point.sh" + - "Dockerfile" + - "Gemfile" + - "Gemfile.lock" + - "package.json" + - "package-lock.json" + +jobs: + build: + runs-on: ubuntu-latest + if: github.repository_owner == 'george-gca' + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + platforms: linux/amd64,linux/arm64/v8 + tags: georgegca/multi-language-al-folio diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a39ea2a9..4979e3ef 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,89 +1,89 @@ -name: Deploy site - -on: - push: - branches: - - master - - main - paths: - - "assets/**" - - "**.html" - - "**.js" - - "**.liquid" - - "**/*.md" - - "**.yml" - - "!.github/workflows/axe.yml" - - "!.github/workflows/broken-links.yml" - - "!.github/workflows/deploy-docker-tag.yml" - - "!.github/workflows/deploy-image.yml" - - "!.github/workflows/docker-slim.yml" - - "!.github/workflows/lighthouse-badger.yml" - - "!.github/workflows/prettier.yml" - - "!lighthouse_results/**" - - "!CONTRIBUTING.md" - - "!CUSTOMIZE.md" - - "!FAQ.md" - - "!INSTALL.md" - - "!README.md" - pull_request: - branches: - - master - - main - paths: - - "assets/**" - - "**.html" - - "**.js" - - "**.liquid" - - "**/*.md" - - "**.yml" - - "!.github/workflows/axe.yml" - - "!.github/workflows/broken-links.yml" - - "!.github/workflows/deploy-docker-tag.yml" - - "!.github/workflows/deploy-image.yml" - - "!.github/workflows/docker-slim.yml" - - "!.github/workflows/lighthouse-badger.yml" - - "!.github/workflows/prettier.yml" - - "!lighthouse_results/**" - - "!CONTRIBUTING.md" - - "!CUSTOMIZE.md" - - "!FAQ.md" - - "!INSTALL.md" - - "!README.md" - workflow_dispatch: - -permissions: - contents: write - -jobs: - deploy: - # available images: https://github.com/actions/runner-images#available-images - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v4 - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: "3.2.2" - bundler-cache: true - - name: Update _config.yml ⚙️ - uses: fjogeleit/yaml-update-action@main - with: - commitChange: false - valueFile: "_config.yml" - propertyPath: "giscus.repo" - value: ${{ github.repository }} - - name: Install and Build 🔧 - run: | - pip3 install --upgrade jupyter - export JEKYLL_ENV=production - bundle exec jekyll build --lsi - - name: Purge unused CSS 🧹 - run: | - npm install -g purgecss - purgecss -c purgecss.config.js - - name: Deploy 🚀 - if: github.event_name != 'pull_request' - uses: JamesIves/github-pages-deploy-action@v4 - with: - folder: _site +name: Deploy site + +on: + push: + branches: + - master + - main + paths: + - "assets/**" + - "**.html" + - "**.js" + - "**.liquid" + - "**/*.md" + - "**.yml" + - "!.github/workflows/axe.yml" + - "!.github/workflows/broken-links.yml" + - "!.github/workflows/deploy-docker-tag.yml" + - "!.github/workflows/deploy-image.yml" + - "!.github/workflows/docker-slim.yml" + - "!.github/workflows/lighthouse-badger.yml" + - "!.github/workflows/prettier.yml" + - "!lighthouse_results/**" + - "!CONTRIBUTING.md" + - "!CUSTOMIZE.md" + - "!FAQ.md" + - "!INSTALL.md" + - "!README.md" + pull_request: + branches: + - master + - main + paths: + - "assets/**" + - "**.html" + - "**.js" + - "**.liquid" + - "**/*.md" + - "**.yml" + - "!.github/workflows/axe.yml" + - "!.github/workflows/broken-links.yml" + - "!.github/workflows/deploy-docker-tag.yml" + - "!.github/workflows/deploy-image.yml" + - "!.github/workflows/docker-slim.yml" + - "!.github/workflows/lighthouse-badger.yml" + - "!.github/workflows/prettier.yml" + - "!lighthouse_results/**" + - "!CONTRIBUTING.md" + - "!CUSTOMIZE.md" + - "!FAQ.md" + - "!INSTALL.md" + - "!README.md" + workflow_dispatch: + +permissions: + contents: write + +jobs: + deploy: + # available images: https://github.com/actions/runner-images#available-images + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v4 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.2.2" + bundler-cache: true + - name: Update _config.yml ⚙️ + uses: fjogeleit/yaml-update-action@main + with: + commitChange: false + valueFile: "_config.yml" + propertyPath: "giscus.repo" + value: ${{ github.repository }} + - name: Install and Build 🔧 + run: | + pip3 install --upgrade jupyter + export JEKYLL_ENV=production + bundle exec jekyll build --lsi + - name: Purge unused CSS 🧹 + run: | + npm install -g purgecss + purgecss -c purgecss.config.js + - name: Deploy 🚀 + if: github.event_name != 'pull_request' + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: _site diff --git a/.github/workflows/docker-slim.yml b/.github/workflows/docker-slim.yml index dacb470d..390f2c88 100644 --- a/.github/workflows/docker-slim.yml +++ b/.github/workflows/docker-slim.yml @@ -1,51 +1,51 @@ -name: Docker Slim - -#Only trigger, when the build workflow succeeded -on: - workflow_run: - workflows: ["Docker Image CI"] - types: - - completed - -# on: -# push: -# branches: -# - 'master' - -jobs: - build: - # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow - if: ${{ github.event.workflow_run.conclusion == 'success' }} and github.repository_owner == 'george-gca' - runs-on: ubuntu-latest - defaults: - run: - working-directory: ${{ github.workspace }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Login - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: update docker-compose - shell: bash - run: | - sed -i "s|\.:|${{ github.workspace }}:|g" ${{ github.workspace }}/docker-compose.yml - cat ${{ github.workspace }}/docker-compose.yml - - - uses: kitabisa/docker-slim-action@v1.0.3 - env: - DSLIM_PULL: true - DSLIM_COMPOSE_FILE: ${{ github.workspace }}/docker-compose.yml - DSLIM_TARGET_COMPOSE_SVC: jekyll - DSLIM_CONTINUE_AFTER: signal - with: - target: georgegca/multi-language-al-folio - tag: "slim" - - # Push to the registry - - run: docker image push georgegca/multi-language-al-folio:slim +name: Docker Slim + +#Only trigger, when the build workflow succeeded +on: + workflow_run: + workflows: ["Docker Image CI"] + types: + - completed + +# on: +# push: +# branches: +# - 'master' + +jobs: + build: + # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow + if: ${{ github.event.workflow_run.conclusion == 'success' }} and github.repository_owner == 'george-gca' + runs-on: ubuntu-latest + defaults: + run: + working-directory: ${{ github.workspace }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Login + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: update docker-compose + shell: bash + run: | + sed -i "s|\.:|${{ github.workspace }}:|g" ${{ github.workspace }}/docker-compose.yml + cat ${{ github.workspace }}/docker-compose.yml + + - uses: kitabisa/docker-slim-action@v1.0.3 + env: + DSLIM_PULL: true + DSLIM_COMPOSE_FILE: ${{ github.workspace }}/docker-compose.yml + DSLIM_TARGET_COMPOSE_SVC: jekyll + DSLIM_CONTINUE_AFTER: signal + with: + target: georgegca/multi-language-al-folio + tag: "slim" + + # Push to the registry + - run: docker image push georgegca/multi-language-al-folio:slim diff --git a/.github/workflows/lighthouse-badger.yml b/.github/workflows/lighthouse-badger.yml index 0d6dfe4b..308b6fb0 100644 --- a/.github/workflows/lighthouse-badger.yml +++ b/.github/workflows/lighthouse-badger.yml @@ -1,63 +1,63 @@ -# Lighthouse-Badger-Easy | GitHub Action Workflow -# -# Description: Generates, adds & updates manually/automatically Lighthouse badges & reports from one/multiple input URL(s) to the current repository & main branch with minimal settings -# Author: Sitdisch -# Source: https://github.com/myactionway/lighthouse-badger-workflows -# License: MIT -# Copyright (c) 2021 Sitdisch - -name: "Lighthouse Badger" - -######################################################################## -# DEFINE YOUR INPUTS AND TRIGGERS IN THE FOLLOWING -######################################################################## - -# INPUTS as environmental variables (env) for not manually triggered workflows -env: - URLS: https://george-gca.github.io/multi-language-al-folio/ - TOKEN_NAME: LIGHTHOUSE_BADGER_TOKEN_SECRET # name of the secret that contains the token - # If any of the following env is blank, a default value is used instead - REPO_BRANCH: "${{ github.repository }} main" # target repository & branch e.g. 'dummy/mytargetrepo main' - MOBILE_LIGHTHOUSE_PARAMS: "--only-categories=performance,accessibility,best-practices,seo --throttling.cpuSlowdownMultiplier=2" - DESKTOP_LIGHTHOUSE_PARAMS: "--only-categories=performance,accessibility,best-practices,seo --preset=desktop --throttling.cpuSlowdownMultiplier=1" - -# TRIGGERS -on: - page_build: - # schedule: # Check your schedule here => https://crontab.guru/ - # - cron: '55 23 * * 0' # e.g. every Sunday at 23:55 - # - # THAT'S IT; YOU'RE DONE; - workflow_dispatch: - -######################################################################## -# THAT'S IT; YOU DON'T HAVE TO DEFINE ANYTHING IN THE FOLLOWING -######################################################################## - -jobs: - lighthouse-badger-easy: - runs-on: ubuntu-latest - timeout-minutes: 8 - steps: - - name: Preparatory Tasks - run: | - REPOSITORY=`expr "${{ env.REPO_BRANCH }}" : "\([^ ]*\)"` - BRANCH=`expr "${{ env.REPO_BRANCH }}" : ".* \([^ ]*\)"` - echo "REPOSITORY=$REPOSITORY" >> $GITHUB_ENV - echo "BRANCH=$BRANCH" >> $GITHUB_ENV - env: - REPO_BRANCH: ${{ env.REPO_BRANCH }} - - uses: actions/checkout@v4 - with: - repository: ${{ env.REPOSITORY }} - token: ${{ secrets[github.event.inputs.token_name] || secrets[env.TOKEN_NAME] }} - ref: ${{ env.BRANCH }} - - uses: actions/checkout@v4 - with: - repository: "myactionway/lighthouse-badges" - path: temp_lighthouse_badges_nested - - uses: myactionway/lighthouse-badger-action@v2.2 - with: - urls: ${{ env.URLS }} - mobile_lighthouse_params: ${{ env.MOBILE_LIGHTHOUSE_PARAMS }} - desktop_lighthouse_params: ${{ env.DESKTOP_LIGHTHOUSE_PARAMS }} +# Lighthouse-Badger-Easy | GitHub Action Workflow +# +# Description: Generates, adds & updates manually/automatically Lighthouse badges & reports from one/multiple input URL(s) to the current repository & main branch with minimal settings +# Author: Sitdisch +# Source: https://github.com/myactionway/lighthouse-badger-workflows +# License: MIT +# Copyright (c) 2021 Sitdisch + +name: "Lighthouse Badger" + +######################################################################## +# DEFINE YOUR INPUTS AND TRIGGERS IN THE FOLLOWING +######################################################################## + +# INPUTS as environmental variables (env) for not manually triggered workflows +env: + URLS: https://george-gca.github.io/multi-language-al-folio/ + TOKEN_NAME: LIGHTHOUSE_BADGER_TOKEN_SECRET # name of the secret that contains the token + # If any of the following env is blank, a default value is used instead + REPO_BRANCH: "${{ github.repository }} main" # target repository & branch e.g. 'dummy/mytargetrepo main' + MOBILE_LIGHTHOUSE_PARAMS: "--only-categories=performance,accessibility,best-practices,seo --throttling.cpuSlowdownMultiplier=2" + DESKTOP_LIGHTHOUSE_PARAMS: "--only-categories=performance,accessibility,best-practices,seo --preset=desktop --throttling.cpuSlowdownMultiplier=1" + +# TRIGGERS +on: + page_build: + # schedule: # Check your schedule here => https://crontab.guru/ + # - cron: '55 23 * * 0' # e.g. every Sunday at 23:55 + # + # THAT'S IT; YOU'RE DONE; + workflow_dispatch: + +######################################################################## +# THAT'S IT; YOU DON'T HAVE TO DEFINE ANYTHING IN THE FOLLOWING +######################################################################## + +jobs: + lighthouse-badger-easy: + runs-on: ubuntu-latest + timeout-minutes: 8 + steps: + - name: Preparatory Tasks + run: | + REPOSITORY=`expr "${{ env.REPO_BRANCH }}" : "\([^ ]*\)"` + BRANCH=`expr "${{ env.REPO_BRANCH }}" : ".* \([^ ]*\)"` + echo "REPOSITORY=$REPOSITORY" >> $GITHUB_ENV + echo "BRANCH=$BRANCH" >> $GITHUB_ENV + env: + REPO_BRANCH: ${{ env.REPO_BRANCH }} + - uses: actions/checkout@v4 + with: + repository: ${{ env.REPOSITORY }} + token: ${{ secrets[github.event.inputs.token_name] || secrets[env.TOKEN_NAME] }} + ref: ${{ env.BRANCH }} + - uses: actions/checkout@v4 + with: + repository: "myactionway/lighthouse-badges" + path: temp_lighthouse_badges_nested + - uses: myactionway/lighthouse-badger-action@v2.2 + with: + urls: ${{ env.URLS }} + mobile_lighthouse_params: ${{ env.MOBILE_LIGHTHOUSE_PARAMS }} + desktop_lighthouse_params: ${{ env.DESKTOP_LIGHTHOUSE_PARAMS }} diff --git a/.github/workflows/prettier-comment-on-pr.yml b/.github/workflows/prettier-comment-on-pr.yml index a198ab1a..e95075ce 100644 --- a/.github/workflows/prettier-comment-on-pr.yml +++ b/.github/workflows/prettier-comment-on-pr.yml @@ -1,18 +1,18 @@ -name: Comment on pull request - -on: - repository_dispatch: - types: [prettier-failed-on-pr] - -jobs: - comment: - # available images: https://github.com/actions/runner-images#available-images - runs-on: ubuntu-latest - steps: - - name: PR comment with html diff 💬 - uses: thollander/actions-comment-pull-request@v2 - with: - comment_tag: prettier-failed - pr_number: ${{ github.event.client_payload.pr_number }} - message: | - Failed [prettier code check](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.event.client_payload.run_id }}). Check [this file](${{ github.event.client_payload.artifact_url }}) for more information. +name: Comment on pull request + +on: + repository_dispatch: + types: [prettier-failed-on-pr] + +jobs: + comment: + # available images: https://github.com/actions/runner-images#available-images + runs-on: ubuntu-latest + steps: + - name: PR comment with html diff 💬 + uses: thollander/actions-comment-pull-request@v2 + with: + comment_tag: prettier-failed + pr_number: ${{ github.event.client_payload.pr_number }} + message: | + Failed [prettier code check](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.event.client_payload.run_id }}). Check [this file](${{ github.event.client_payload.artifact_url }}) for more information. diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml index 9908bb1c..60446c8d 100644 --- a/.github/workflows/prettier.yml +++ b/.github/workflows/prettier.yml @@ -1,48 +1,48 @@ -name: Prettier code formatter - -on: - pull_request: - branches: - - master - - main - push: - branches: - - master - - main - -jobs: - check: - # available images: https://github.com/actions/runner-images#available-images - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v4 - - name: Setup Node.js ⚙️ - uses: actions/setup-node@v4 - - name: Install Prettier 💾 - run: npm install --save-dev --save-exact prettier @shopify/prettier-plugin-liquid - - name: Prettier Check 🔎 - id: prettier - run: npx prettier . --check - - name: Create diff 📝 - # https://docs.github.com/en/actions/learn-github-actions/expressions#failure - if: ${{ failure() }} - run: | - npx prettier . --write - git diff -- . ':(exclude)package-lock.json' ':(exclude)package.json' > diff.txt - npm install -g diff2html-cli - diff2html -i file -s side -F diff.html -- diff.txt - - name: Upload html diff ⬆️ - id: artifact-upload - if: ${{ failure() && steps.prettier.conclusion == 'failure' }} - uses: actions/upload-artifact@v4 - with: - name: HTML Diff - path: diff.html - retention-days: 7 - - name: Dispatch information to repository 🗣️ - if: ${{ failure() && steps.prettier.conclusion == 'failure' && github.event_name == 'pull_request' }} - uses: peter-evans/repository-dispatch@v2 - with: - event-type: prettier-failed-on-pr - client-payload: '{"pr_number": "${{ github.event.number }}", "artifact_url": "${{ steps.artifact-upload.outputs.artifact-url }}", "run_id": "${{ github.run_id }}"}' +name: Prettier code formatter + +on: + pull_request: + branches: + - master + - main + push: + branches: + - master + - main + +jobs: + check: + # available images: https://github.com/actions/runner-images#available-images + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v4 + - name: Setup Node.js ⚙️ + uses: actions/setup-node@v4 + - name: Install Prettier 💾 + run: npm install --save-dev --save-exact prettier @shopify/prettier-plugin-liquid + - name: Prettier Check 🔎 + id: prettier + run: npx prettier . --check + - name: Create diff 📝 + # https://docs.github.com/en/actions/learn-github-actions/expressions#failure + if: ${{ failure() }} + run: | + npx prettier . --write + git diff -- . ':(exclude)package-lock.json' ':(exclude)package.json' > diff.txt + npm install -g diff2html-cli + diff2html -i file -s side -F diff.html -- diff.txt + - name: Upload html diff ⬆️ + id: artifact-upload + if: ${{ failure() && steps.prettier.conclusion == 'failure' }} + uses: actions/upload-artifact@v4 + with: + name: HTML Diff + path: diff.html + retention-days: 7 + - name: Dispatch information to repository 🗣️ + if: ${{ failure() && steps.prettier.conclusion == 'failure' && github.event_name == 'pull_request' }} + uses: peter-evans/repository-dispatch@v2 + with: + event-type: prettier-failed-on-pr + client-payload: '{"pr_number": "${{ github.event.number }}", "artifact_url": "${{ steps.artifact-upload.outputs.artifact-url }}", "run_id": "${{ github.run_id }}"}' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0b39e09d..d61cba84 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,10 +1,10 @@ -# See https://pre-commit.com for more information -# See https://pre-commit.com/hooks.html for more hooks -repos: - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: trailing-whitespace - - id: end-of-file-fixer - - id: check-yaml - - id: check-added-large-files +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.3.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files diff --git a/.prettierrc b/.prettierrc index 6bf40b8b..0163f199 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,3 +1,3 @@ -plugins: ["@shopify/prettier-plugin-liquid"] -printWidth: 150 -trailingComma: "es5" +plugins: ["@shopify/prettier-plugin-liquid"] +printWidth: 150 +trailingComma: "es5" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 93013821..41711140 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,26 +1,26 @@ -# Contributing to multi-language-al-folio - -Thank you for considering contributing to al-folio or its multilingual version! Please check if your contribution is related to the template itself or to the multilingual aspect of it. If it is the former, please consider doing it in the original [al-folio](https://github.com/alshedivat/al-folio/) repository. If it is the latter, follow the instructions below. - -## Pull Requests - -We welcome your pull requests (PRs). -For minor fixes (e.g., documentation improvements), feel free to submit a PR directly. -If you would like to implement a new feature or a bug, please make sure you (or someone else) has opened an appropriate issue first; in your PR, please mention the issue it addresses. - -## Issues - -We use GitHub issues to track bugs and feature requests. -Before submitting an issue, please make sure: - -1. You have read [the FAQ section](FAQ.md) of the README and your question is NOT addressed there. -2. You have done your best to ensure that your issue is NOT a duplicate of one of [the previous issues](https://github.com/george-gca/multi-language-al-folio/issues). -3. Your issue is either a bug (unexpected/undesirable behavior) or a feature request. - If it is just a question, please ask it in the [Discussions](https://github.com/george-gca/multi-language-al-folio/discussions) forum. - -When submitting an issue, please make sure to use the appropriate template. - -## License - -By contributing to multi-language-al-folio, you agree that your contributions will be licensed -under the LICENSE file in the root directory of the source tree. +# Contributing to multi-language-al-folio + +Thank you for considering contributing to al-folio or its multilingual version! Please check if your contribution is related to the template itself or to the multilingual aspect of it. If it is the former, please consider doing it in the original [al-folio](https://github.com/alshedivat/al-folio/) repository. If it is the latter, follow the instructions below. + +## Pull Requests + +We welcome your pull requests (PRs). +For minor fixes (e.g., documentation improvements), feel free to submit a PR directly. +If you would like to implement a new feature or a bug, please make sure you (or someone else) has opened an appropriate issue first; in your PR, please mention the issue it addresses. + +## Issues + +We use GitHub issues to track bugs and feature requests. +Before submitting an issue, please make sure: + +1. You have read [the FAQ section](FAQ.md) of the README and your question is NOT addressed there. +2. You have done your best to ensure that your issue is NOT a duplicate of one of [the previous issues](https://github.com/george-gca/multi-language-al-folio/issues). +3. Your issue is either a bug (unexpected/undesirable behavior) or a feature request. + If it is just a question, please ask it in the [Discussions](https://github.com/george-gca/multi-language-al-folio/discussions) forum. + +When submitting an issue, please make sure to use the appropriate template. + +## License + +By contributing to multi-language-al-folio, you agree that your contributions will be licensed +under the LICENSE file in the root directory of the source tree. diff --git a/CUSTOMIZE.md b/CUSTOMIZE.md index f1da40be..c1697dfa 100644 --- a/CUSTOMIZE.md +++ b/CUSTOMIZE.md @@ -1,154 +1,154 @@ -# Customize - -Here we will give you some tips on how to customize the website. Note that throughout the [README.md](README.md) and [CUSTOMIZE.md](CUSTOMIZE.md) files, the default language is English (LANG = en). You must have an equivalent file or path for each language you have defined in [\_config.yml](_config.yml). For example, if you have defined `languages: ["en", "pt-br"]`, you must have 2 versions of the file `_data/LANG/cv.yml`: [\_data/en/cv.yml](_data/en/cv.yml) and [\_data/pt-br/cv.yml](_data/pt-br/cv.yml). - -## Project structure - -The project is structured as follows, focusing on the main components that you will need to modify: - -```txt -. -├── 📂 assets/: contains the assets that are displayed in the website -│   └── 📂 json/ -│ │   └── 📄 resume_LANG.json: CV in JSON format (https://jsonresume.org/) -├── 📂 _bibliography/ -│   └── 📄 papers.bib: bibliography in BibTeX format -├── 📄 _config.yml: the configuration file of the template -├── 📂 _data/: contains some of the data used in the template -│ ├── 📂 LANG/: data for the LANG version. Must have one for each language defined in _config.yml -│   │ └── 📄 cv.yml: CV in YAML format, used when assets/json/resume_LANG.json is not found -│   └── 📄 repositories.yml: users and repositories info in YAML format -├── 📂 _i18n/: contains the translations of the template -│ ├── 📂 LANG/: must have one for each language defined in _config.yml -│ │ ├── 📂 _news/: the localized content of the news that will appear in the news section in the about page -│ │ ├── 📂 _pages/: the localized content of some pages -│ │ ├── 📂 _posts/: contains the localized blog posts -│ │ ├── 📂 _projects/: contains the localized content of the projects -│   └── 📄 LANG.yml: localized variables (placeholders). Must have one for each language defined in _config.yml -├── 📂 _includes/: contains code parts that are included in the main HTML file -│   └── 📄 news.liquid: defines the news section layout in the about page -├── 📂 _layouts/: contains the layouts to choose from in the frontmatter of the Markdown files -├── 📂 _news/: the news that will appear in the news section in the about page -├── 📂 _pages/: contains the pages of the website -| └── 📄 404.md: 404 page (page not found) -├── 📂 _projects/: contains the projects -└── 📂 _sass/: contains the SASS files that define the style of the website - ├── 📄 _base.scss: base style of the website - ├── 📄 _cv.scss: style of the CV page - ├── 📄 _distill.scss: style of the Distill articles - ├── 📄 _layout.scss: style of the overall layout - ├── 📄 _themes.scss: themes colors and a few icons - └── 📄 _variables.scss: variables used in the SASS files -``` - -## Configuration - -The configuration file [\_config.yml](_config.yml) contains the main configuration of the website. Most of the settings is self-explanatory and we also tried to add as much comments as possible. If you have any questions, please check if it was not already answered in the [FAQ](FAQ.md). - -> Note that the `url` and `baseurl` settings are used to generate the links of the website, as explained in the [install instructions](INSTALL.md). - -All changes made to this file are only visible after you rebuild the website. That means that you need to run `bundle exec jekyll serve --lsi` again if you are running the website locally or push your changes to GitHub if you are using GitHub Pages. All other changes are visible immediately, you only need to refresh the page. - -## Modifying the CV information - -There are currently 2 different ways of generating the CV page content. The first one is by using a json file located in [assets/json/resume_LANG.json](assets/json/resume_en.json). It is a [known standard](https://jsonresume.org/) for creating a CV programmatically. The second one, currently used as a fallback when the json file is not found, is by using a yml file located in [\_data/LANG/cv.yml](_data/en/cv.yml). This was the original way of creating the CV page content and since it is more human readable than a json file we decided to keep it as an option. - -What this means is, if there is no resume data defined in [\_config.yml](_config.yml) and loaded via a json file, it will load the contents of [\_data/LANG/cv.yml](_data/en/cv.yml). If you want to use the [\_data/LANG/cv.yml](_data/en/cv.yml) file as the source of your CV, you must delete the [assets/json/resume_LANG.json](assets/json/resume_en.json) file. - -## Modifying the user and repository information - -The user and repository information is defined in [\_data/repositories.yml](_data/repositories.yml). You can add as many users and repositories as you want. Both informations are used in the `repositories` section. - -## Creating new pages - -You can create new pages by adding new Markdown files in the [\_pages](_pages/) directory. The easiest way to do this is to copy an existing page and modify it. You can choose the layout of the page in the [frontmatter](https://jekyllrb.com/docs/front-matter/) of the Markdown file. You can also add new layouts in the [\_layouts](_layouts/) directory if you feel the need for it. - -## Creating new blog posts - -To create a new blog post, you can add a new Markdown file in the [\_i18n/LANG/\_posts](_i18n/en/_posts/) directory. The name of the file must follow the format `YYYY-MM-DD-title.md`. The easiest way to do this is to copy an existing blog post and modify it. Note that some blog posts have optional fields in the [frontmatter](https://jekyllrb.com/docs/front-matter/) that are used to enable specific behaviors or functions. - -If you want to create blog posts that are not ready to be published, but you want to track it with git, you can create a [\_drafts](https://jekyllrb.com/docs/posts/#drafts) directory and store them there. - -## Creating new projects - -You can create new projects by adding new Markdown files in the [\_projects](_projects/) directory. The easiest way to do this is to copy an existing project and modify it. - -## Adding some news - -You can add news in the about page by adding new Markdown files in the [\_i18n/LANG/\_news](_i18n/en/_news/) directory. There are currently two types of news: inline news and news with a link. News with a link take you to a new page while inline news are displayed directly in the about page. The easiest way to create yours is to copy an existing news and modify it. - -## Adding Collections - -This Jekyll theme implements `collections` to let you break up your work into categories. The theme comes with two default collections: `news` and `projects`. Items from the `news` collection are automatically displayed on the home page. Items from the `projects` collection are displayed on a responsive grid on projects page. - -You can easily create your own collections, apps, short stories, courses, or whatever your creative work is. To do this, edit the collections in the [\_config.yml](_config.yml) file, create a corresponding folder, and create a landing page for your collection, similar to [\_pages/projects.md](_pages/projects.md). - -## Adding a new publication - -To add publications create a new entry in the [\_bibliography/papers.bib](_bibliography/papers.bib) file. You can find the BibTeX entry of a publication in Google Scholar by clicking on the quotation marks below the publication title, then clicking on "BibTeX", or also in the conference page itself. By default, the publications will be sorted by year and the most recent will be displayed first. You can change this behavior and more in the `Jekyll Scholar` section in [\_config.yml](_config.yml) file. - -You can add extra information to a publication, like a PDF file in the `assets/pdfs/` directory and add the path to the PDF file in the BibTeX entry with the `pdf` field. Some of the supported fields are: `abstract`, `altmetric`, `arxiv`, `bibtex_show`, `blog`, `code`, `dimensions`, `doi`, `eprint`, `html`, `isbn`, `pdf`, `pmid`, `poster`, `slides`, `supp`, `video`, and `website`. - -### Author annotation - -In publications, the author entry for yourself is identified by string array `scholar:last_name` and string array `scholar:first_name` in [\_config.yml](_config.yml). For example, if you have the following entry in your [\_config.yml](_config.yml): - -```yaml -scholar: - last_name: [Einstein] - first_name: [Albert, A.] -``` - -If the entry matches one form of the last names and the first names, it will be underlined. Keep meta-information about your co-authors in [\_data/coauthors.yml](_data/coauthors.yml) and Jekyll will insert links to their webpages automatically. The co-author data format is as follows, - -```yaml -"Adams": - - firstname: ["Edwin", "E.", "E. P.", "Edwin Plimpton"] - url: https://en.wikipedia.org/wiki/Edwin_Plimpton_Adams - -"Podolsky": - - firstname: ["Boris", "B.", "B. Y.", "Boris Yakovlevich"] - url: https://en.wikipedia.org/wiki/Boris_Podolsky - -"Rosen": - - firstname: ["Nathan", "N."] - url: https://en.wikipedia.org/wiki/Nathan_Rosen - -"Bach": - - firstname: ["Johann Sebastian", "J. S."] - url: https://en.wikipedia.org/wiki/Johann_Sebastian_Bach - - - firstname: ["Carl Philipp Emanuel", "C. P. E."] - url: https://en.wikipedia.org/wiki/Carl_Philipp_Emanuel_Bach -``` - -If the entry matches one of the combinations of the last names and the first names, it will be highlighted and linked to the url provided. - -### Buttons (through custom bibtex keywords) - -There are several custom bibtex keywords that you can use to affect how the entries are displayed on the webpage: - -- `abbr`: Adds an abbreviation to the left of the entry. You can add links to these by creating a venue.yaml-file in the \_data folder and adding entries that match. -- `abstract`: Adds an "Abs" button that expands a hidden text field when clicked to show the abstract text -- `altmetric`: Adds an [Altmetric](https://www.altmetric.com/) badge (Note: if DOI is provided just use `true`, otherwise only add the altmetric identifier here - the link is generated automatically) -- `arxiv`: Adds a link to the Arxiv website (Note: only add the arxiv identifier here - the link is generated automatically) -- `bibtex_show`: Adds a "Bib" button that expands a hidden text field with the full bibliography entry -- `blog`: Adds a "Blog" button redirecting to the specified link -- `code`: Adds a "Code" button redirecting to the specified link -- `dimensions`: Adds a [Dimensions](https://www.dimensions.ai/) badge (Note: if DOI or PMID is provided just use `true`, otherwise only add the Dimensions' identifier here - the link is generated automatically) -- `html`: Inserts an "HTML" button redirecting to the user-specified link -- `pdf`: Adds a "PDF" button redirecting to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) -- `poster`: Adds a "Poster" button redirecting to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) -- `slides`: Adds a "Slides" button redirecting to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) -- `supp`: Adds a "Supp" button to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) -- `website`: Adds a "Website" button redirecting to the specified link - -You can implement your own buttons by editing the [\_layouts/bib.liquid](_layouts/bib.liquid) file. - -## Changing theme color - -A variety of beautiful theme colors have been selected for you to choose from. The default is purple, but you can quickly change it by editing the `--global-theme-color` variable in the [\_sass/\_themes.scss](_sass/_themes.scss) file. Other color variables are listed there as well. The stock theme color options available can be found at [\_sass/\_variables.scss](_sass/_variables.scss). You can also add your own colors to this file assigning each a name for ease of use across the template. - -## Adding social media information - -You can add your social media links by adding the specified information at the `Social integration` section in the [\_config.yml](_config.yml) file. This information will appear at the bottom of the `About` page. +# Customize + +Here we will give you some tips on how to customize the website. Note that throughout the [README.md](README.md) and [CUSTOMIZE.md](CUSTOMIZE.md) files, the default language is English (LANG = en). You must have an equivalent file or path for each language you have defined in [\_config.yml](_config.yml). For example, if you have defined `languages: ["en", "pt-br"]`, you must have 2 versions of the file `_data/LANG/cv.yml`: [\_data/en/cv.yml](_data/en/cv.yml) and [\_data/pt-br/cv.yml](_data/pt-br/cv.yml). + +## Project structure + +The project is structured as follows, focusing on the main components that you will need to modify: + +```txt +. +├── 📂 assets/: contains the assets that are displayed in the website +│   └── 📂 json/ +│ │   └── 📄 resume_LANG.json: CV in JSON format (https://jsonresume.org/) +├── 📂 _bibliography/ +│   └── 📄 papers.bib: bibliography in BibTeX format +├── 📄 _config.yml: the configuration file of the template +├── 📂 _data/: contains some of the data used in the template +│ ├── 📂 LANG/: data for the LANG version. Must have one for each language defined in _config.yml +│   │ └── 📄 cv.yml: CV in YAML format, used when assets/json/resume_LANG.json is not found +│   └── 📄 repositories.yml: users and repositories info in YAML format +├── 📂 _i18n/: contains the translations of the template +│ ├── 📂 LANG/: must have one for each language defined in _config.yml +│ │ ├── 📂 _news/: the localized content of the news that will appear in the news section in the about page +│ │ ├── 📂 _pages/: the localized content of some pages +│ │ ├── 📂 _posts/: contains the localized blog posts +│ │ ├── 📂 _projects/: contains the localized content of the projects +│   └── 📄 LANG.yml: localized variables (placeholders). Must have one for each language defined in _config.yml +├── 📂 _includes/: contains code parts that are included in the main HTML file +│   └── 📄 news.liquid: defines the news section layout in the about page +├── 📂 _layouts/: contains the layouts to choose from in the frontmatter of the Markdown files +├── 📂 _news/: the news that will appear in the news section in the about page +├── 📂 _pages/: contains the pages of the website +| └── 📄 404.md: 404 page (page not found) +├── 📂 _projects/: contains the projects +└── 📂 _sass/: contains the SASS files that define the style of the website + ├── 📄 _base.scss: base style of the website + ├── 📄 _cv.scss: style of the CV page + ├── 📄 _distill.scss: style of the Distill articles + ├── 📄 _layout.scss: style of the overall layout + ├── 📄 _themes.scss: themes colors and a few icons + └── 📄 _variables.scss: variables used in the SASS files +``` + +## Configuration + +The configuration file [\_config.yml](_config.yml) contains the main configuration of the website. Most of the settings is self-explanatory and we also tried to add as much comments as possible. If you have any questions, please check if it was not already answered in the [FAQ](FAQ.md). + +> Note that the `url` and `baseurl` settings are used to generate the links of the website, as explained in the [install instructions](INSTALL.md). + +All changes made to this file are only visible after you rebuild the website. That means that you need to run `bundle exec jekyll serve --lsi` again if you are running the website locally or push your changes to GitHub if you are using GitHub Pages. All other changes are visible immediately, you only need to refresh the page. + +## Modifying the CV information + +There are currently 2 different ways of generating the CV page content. The first one is by using a json file located in [assets/json/resume_LANG.json](assets/json/resume_en.json). It is a [known standard](https://jsonresume.org/) for creating a CV programmatically. The second one, currently used as a fallback when the json file is not found, is by using a yml file located in [\_data/LANG/cv.yml](_data/en/cv.yml). This was the original way of creating the CV page content and since it is more human readable than a json file we decided to keep it as an option. + +What this means is, if there is no resume data defined in [\_config.yml](_config.yml) and loaded via a json file, it will load the contents of [\_data/LANG/cv.yml](_data/en/cv.yml). If you want to use the [\_data/LANG/cv.yml](_data/en/cv.yml) file as the source of your CV, you must delete the [assets/json/resume_LANG.json](assets/json/resume_en.json) file. + +## Modifying the user and repository information + +The user and repository information is defined in [\_data/repositories.yml](_data/repositories.yml). You can add as many users and repositories as you want. Both informations are used in the `repositories` section. + +## Creating new pages + +You can create new pages by adding new Markdown files in the [\_pages](_pages/) directory. The easiest way to do this is to copy an existing page and modify it. You can choose the layout of the page in the [frontmatter](https://jekyllrb.com/docs/front-matter/) of the Markdown file. You can also add new layouts in the [\_layouts](_layouts/) directory if you feel the need for it. + +## Creating new blog posts + +To create a new blog post, you can add a new Markdown file in the [\_i18n/LANG/\_posts](_i18n/en/_posts/) directory. The name of the file must follow the format `YYYY-MM-DD-title.md`. The easiest way to do this is to copy an existing blog post and modify it. Note that some blog posts have optional fields in the [frontmatter](https://jekyllrb.com/docs/front-matter/) that are used to enable specific behaviors or functions. + +If you want to create blog posts that are not ready to be published, but you want to track it with git, you can create a [\_drafts](https://jekyllrb.com/docs/posts/#drafts) directory and store them there. + +## Creating new projects + +You can create new projects by adding new Markdown files in the [\_projects](_projects/) directory. The easiest way to do this is to copy an existing project and modify it. + +## Adding some news + +You can add news in the about page by adding new Markdown files in the [\_i18n/LANG/\_news](_i18n/en/_news/) directory. There are currently two types of news: inline news and news with a link. News with a link take you to a new page while inline news are displayed directly in the about page. The easiest way to create yours is to copy an existing news and modify it. + +## Adding Collections + +This Jekyll theme implements `collections` to let you break up your work into categories. The theme comes with two default collections: `news` and `projects`. Items from the `news` collection are automatically displayed on the home page. Items from the `projects` collection are displayed on a responsive grid on projects page. + +You can easily create your own collections, apps, short stories, courses, or whatever your creative work is. To do this, edit the collections in the [\_config.yml](_config.yml) file, create a corresponding folder, and create a landing page for your collection, similar to [\_pages/projects.md](_pages/projects.md). + +## Adding a new publication + +To add publications create a new entry in the [\_bibliography/papers.bib](_bibliography/papers.bib) file. You can find the BibTeX entry of a publication in Google Scholar by clicking on the quotation marks below the publication title, then clicking on "BibTeX", or also in the conference page itself. By default, the publications will be sorted by year and the most recent will be displayed first. You can change this behavior and more in the `Jekyll Scholar` section in [\_config.yml](_config.yml) file. + +You can add extra information to a publication, like a PDF file in the `assets/pdfs/` directory and add the path to the PDF file in the BibTeX entry with the `pdf` field. Some of the supported fields are: `abstract`, `altmetric`, `arxiv`, `bibtex_show`, `blog`, `code`, `dimensions`, `doi`, `eprint`, `html`, `isbn`, `pdf`, `pmid`, `poster`, `slides`, `supp`, `video`, and `website`. + +### Author annotation + +In publications, the author entry for yourself is identified by string array `scholar:last_name` and string array `scholar:first_name` in [\_config.yml](_config.yml). For example, if you have the following entry in your [\_config.yml](_config.yml): + +```yaml +scholar: + last_name: [Einstein] + first_name: [Albert, A.] +``` + +If the entry matches one form of the last names and the first names, it will be underlined. Keep meta-information about your co-authors in [\_data/coauthors.yml](_data/coauthors.yml) and Jekyll will insert links to their webpages automatically. The co-author data format is as follows, + +```yaml +"Adams": + - firstname: ["Edwin", "E.", "E. P.", "Edwin Plimpton"] + url: https://en.wikipedia.org/wiki/Edwin_Plimpton_Adams + +"Podolsky": + - firstname: ["Boris", "B.", "B. Y.", "Boris Yakovlevich"] + url: https://en.wikipedia.org/wiki/Boris_Podolsky + +"Rosen": + - firstname: ["Nathan", "N."] + url: https://en.wikipedia.org/wiki/Nathan_Rosen + +"Bach": + - firstname: ["Johann Sebastian", "J. S."] + url: https://en.wikipedia.org/wiki/Johann_Sebastian_Bach + + - firstname: ["Carl Philipp Emanuel", "C. P. E."] + url: https://en.wikipedia.org/wiki/Carl_Philipp_Emanuel_Bach +``` + +If the entry matches one of the combinations of the last names and the first names, it will be highlighted and linked to the url provided. + +### Buttons (through custom bibtex keywords) + +There are several custom bibtex keywords that you can use to affect how the entries are displayed on the webpage: + +- `abbr`: Adds an abbreviation to the left of the entry. You can add links to these by creating a venue.yaml-file in the \_data folder and adding entries that match. +- `abstract`: Adds an "Abs" button that expands a hidden text field when clicked to show the abstract text +- `altmetric`: Adds an [Altmetric](https://www.altmetric.com/) badge (Note: if DOI is provided just use `true`, otherwise only add the altmetric identifier here - the link is generated automatically) +- `arxiv`: Adds a link to the Arxiv website (Note: only add the arxiv identifier here - the link is generated automatically) +- `bibtex_show`: Adds a "Bib" button that expands a hidden text field with the full bibliography entry +- `blog`: Adds a "Blog" button redirecting to the specified link +- `code`: Adds a "Code" button redirecting to the specified link +- `dimensions`: Adds a [Dimensions](https://www.dimensions.ai/) badge (Note: if DOI or PMID is provided just use `true`, otherwise only add the Dimensions' identifier here - the link is generated automatically) +- `html`: Inserts an "HTML" button redirecting to the user-specified link +- `pdf`: Adds a "PDF" button redirecting to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) +- `poster`: Adds a "Poster" button redirecting to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) +- `slides`: Adds a "Slides" button redirecting to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) +- `supp`: Adds a "Supp" button to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) +- `website`: Adds a "Website" button redirecting to the specified link + +You can implement your own buttons by editing the [\_layouts/bib.liquid](_layouts/bib.liquid) file. + +## Changing theme color + +A variety of beautiful theme colors have been selected for you to choose from. The default is purple, but you can quickly change it by editing the `--global-theme-color` variable in the [\_sass/\_themes.scss](_sass/_themes.scss) file. Other color variables are listed there as well. The stock theme color options available can be found at [\_sass/\_variables.scss](_sass/_variables.scss). You can also add your own colors to this file assigning each a name for ease of use across the template. + +## Adding social media information + +You can add your social media links by adding the specified information at the `Social integration` section in the [\_config.yml](_config.yml) file. This information will appear at the bottom of the `About` page. diff --git a/FAQ.md b/FAQ.md index 85a341ec..af287516 100644 --- a/FAQ.md +++ b/FAQ.md @@ -1,53 +1,53 @@ -# Frequently Asked Questions - -Here are some frequently asked questions. If you have a different question, please check if it was not already answered in the Q&A section of the [GitHub Discussions](https://github.com/alshedivat/al-folio/discussions/categories/q-a) of the original al-folio. If not, feel free to ask a new question there. - -If your question is related to localization, please check if it was not already answered in the Q&A section of the [GitHub Discussions](https://github.com/george-gca/multi-language-al-folio/discussions/categories/q-a). If not, feel free to ask a new question there. - -- [After I create a new repository from this template and setup the repo, I get a deployment error. Isn't the website supposed to correctly deploy automatically?](#after-i-create-a-new-repository-from-this-template-and-setup-the-repo-i-get-a-deployment-error-isnt-the-website-supposed-to-correctly-deploy-automatically) -- [I am using a custom domain (e.g., `foo.com`). My custom domain becomes blank in the repository settings after each deployment. How do I fix that?](#i-am-using-a-custom-domain-eg-foocom-my-custom-domain-becomes-blank-in-the-repository-settings-after-each-deployment-how-do-i-fix-that) -- [My webpage works locally. But after deploying, it fails to build and throws `Unknown tag 'toc'`. How do I fix that?](#my-webpage-works-locally-but-after-deploying-it-fails-to-build-and-throws-unknown-tag-toc-how-do-i-fix-that) -- [My webpage works locally. But after deploying, it is not displayed correctly (CSS and JS is not loaded properly). How do I fix that?](#my-webpage-works-locally-but-after-deploying-it-is-not-displayed-correctly-css-and-js-is-not-loaded-properly-how-do-i-fix-that) -- [Atom feed doesn't work. Why?](#atom-feed-doesnt-work-why) -- [My site doesn't work when I enable `related_blog_posts`. Why?](#my-site-doesnt-work-when-i-enable-related_blog_posts-why) -- [When trying to deploy, it's asking for github login credentials, which github disabled password authentication and it exits with an error. How to fix?](#when-trying-to-deploy-its-asking-for-github-login-credentials-which-github-disabled-password-authentication-and-it-exits-with-an-error-how-to-fix) -- [When I manually run the Lighthouse Badger workflow, it fails with `Error: Input required and not supplied: token`. How do I fix that?](#when-i-manually-run-the-lighthouse-badger-workflow-it-fails-with-error-input-required-and-not-supplied-token-how-do-i-fix-that) -- [My code runs fine locally, but when I create a commit and submit it, it fails with `prettier code formatter workflow run failed for master branch`. How do I fix that?](#my-code-runs-fine-locally-but-when-i-create-a-commit-and-submit-it-it-fails-with-prettier-code-formatter-workflow-run-failed-for-master-branch-how-do-i-fix-that) - ---- - -#### After I create a new repository from this template and setup the repo, I get a deployment error. Isn't the website supposed to correctly deploy automatically? - -Yes, if you are using release `v0.3.5` or later, the website will automatically and correctly re-deploy right after your first commit. Please make some changes (e.g., change your website info in `_config.yml`), commit, and push. Make sure to follow [deployment instructions](https://github.com/alshedivat/al-folio#deployment). (Relevant issue: [209](https://github.com/alshedivat/al-folio/issues/209#issuecomment-798849211).) - -#### I am using a custom domain (e.g., `foo.com`). My custom domain becomes blank in the repository settings after each deployment. How do I fix that? - -You need to add `CNAME` file to the `master` or `source` branch of your repository. The file should contain your custom domain name. (Relevant issue: [130](https://github.com/alshedivat/al-folio/issues/130).) - -#### My webpage works locally. But after deploying, it fails to build and throws `Unknown tag 'toc'`. How do I fix that? - -Make sure you followed through the [deployment instructions](#deployment) in the previous section. You should have set the deployment branch to `gh-pages`. (Related issue: [1438](https://github.com/alshedivat/al-folio/issues/1438).) - -#### My webpage works locally. But after deploying, it is not displayed correctly (CSS and JS is not loaded properly). How do I fix that? - -Make sure to correctly specify the `url` and `baseurl` paths in `_config.yml`. Set `url` to `https://.github.io` or to `https://` if you are using a custom domain. If you are deploying a personal or organization website, leave `baseurl` blank. If you are deploying a project page, set `baseurl: //`. If all previous steps were done correctly, all is missing is [for your browser to fetch again the site stylesheet](https://github.com/alshedivat/al-folio/issues/1398#issuecomment-1609518404). - -#### Atom feed doesn't work. Why? - -Make sure to correctly specify the `url` and `baseurl` paths in `_config.yml`. RSS Feed plugin works with these correctly set up fields: `title`, `url`, `description` and `author`. Make sure to fill them in an appropriate way and try again. - -#### My site doesn't work when I enable `related_blog_posts`. Why? - -This is probably due to the [classifier reborn](https://github.com/jekyll/classifier-reborn) plugin, which is used to calculate related posts. If the error states `Liquid Exception: Zero vectors can not be normalized...`, it means that it could not calculate related posts for a specific post. This is usually caused by [empty or minimal blog posts](https://github.com/jekyll/classifier-reborn/issues/64) without meaningful words (i.e. only [stop words](https://en.wikipedia.org/wiki/Stop_words)) or even [specific characters](https://github.com/jekyll/classifier-reborn/issues/194) you used in your posts. Also, the calculus for similar posts are made for every `post`, which means every page that uses `layout: post`, including the announcements. To change this behavior, simply add `related_posts: false` to the front matter of the page you don't want to display related posts on. - -#### When trying to deploy, it's asking for github login credentials, which github disabled password authentication and it exits with an error. How to fix? - -Open .git/config file using your preferred editor. Change the `https` portion of the `url` variable to `ssh`. Try deploying again. - -#### When I manually run the [Lighthouse Badger](https://github.com/alshedivat/al-folio/actions/workflows/lighthouse-badger.yml) workflow, it fails with `Error: Input required and not supplied: token`. How do I fix that? - -You need to [create a personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) and [add it as a secret](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-encrypted-secrets-for-a-repository) named `LIGHTHOUSE_BADGER_TOKEN` to your repository. For more information, check [lighthouse-badger documentation](https://github.com/MyActionWay/lighthouse-badger-workflows#lighthouse-badger-easyyml) on how to do this. - -#### My code runs fine locally, but when I create a commit and submit it, it fails with `prettier code formatter workflow run failed for master branch`. How do I fix that? - -We implemented support for [Prettier code formatting](https://prettier.io/) in [#2048](https://github.com/alshedivat/al-folio/pull/2048). It basically ensures that your code is well formatted. If you want to ensure your code is compliant with `Prettier` you can install it in your computer [integrated with an editor](https://prettier.io/docs/en/editors), [install it and run manually](https://prettier.io/docs/en/install), or you can disable it for your repo. For this, just delete the file [.github/workflows/prettier.yml](https://github.com/alshedivat/al-folio/blob/master/.github/workflows/prettier.yml). +# Frequently Asked Questions + +Here are some frequently asked questions. If you have a different question, please check if it was not already answered in the Q&A section of the [GitHub Discussions](https://github.com/alshedivat/al-folio/discussions/categories/q-a) of the original al-folio. If not, feel free to ask a new question there. + +If your question is related to localization, please check if it was not already answered in the Q&A section of the [GitHub Discussions](https://github.com/george-gca/multi-language-al-folio/discussions/categories/q-a). If not, feel free to ask a new question there. + +- [After I create a new repository from this template and setup the repo, I get a deployment error. Isn't the website supposed to correctly deploy automatically?](#after-i-create-a-new-repository-from-this-template-and-setup-the-repo-i-get-a-deployment-error-isnt-the-website-supposed-to-correctly-deploy-automatically) +- [I am using a custom domain (e.g., `foo.com`). My custom domain becomes blank in the repository settings after each deployment. How do I fix that?](#i-am-using-a-custom-domain-eg-foocom-my-custom-domain-becomes-blank-in-the-repository-settings-after-each-deployment-how-do-i-fix-that) +- [My webpage works locally. But after deploying, it fails to build and throws `Unknown tag 'toc'`. How do I fix that?](#my-webpage-works-locally-but-after-deploying-it-fails-to-build-and-throws-unknown-tag-toc-how-do-i-fix-that) +- [My webpage works locally. But after deploying, it is not displayed correctly (CSS and JS is not loaded properly). How do I fix that?](#my-webpage-works-locally-but-after-deploying-it-is-not-displayed-correctly-css-and-js-is-not-loaded-properly-how-do-i-fix-that) +- [Atom feed doesn't work. Why?](#atom-feed-doesnt-work-why) +- [My site doesn't work when I enable `related_blog_posts`. Why?](#my-site-doesnt-work-when-i-enable-related_blog_posts-why) +- [When trying to deploy, it's asking for github login credentials, which github disabled password authentication and it exits with an error. How to fix?](#when-trying-to-deploy-its-asking-for-github-login-credentials-which-github-disabled-password-authentication-and-it-exits-with-an-error-how-to-fix) +- [When I manually run the Lighthouse Badger workflow, it fails with `Error: Input required and not supplied: token`. How do I fix that?](#when-i-manually-run-the-lighthouse-badger-workflow-it-fails-with-error-input-required-and-not-supplied-token-how-do-i-fix-that) +- [My code runs fine locally, but when I create a commit and submit it, it fails with `prettier code formatter workflow run failed for master branch`. How do I fix that?](#my-code-runs-fine-locally-but-when-i-create-a-commit-and-submit-it-it-fails-with-prettier-code-formatter-workflow-run-failed-for-master-branch-how-do-i-fix-that) + +--- + +#### After I create a new repository from this template and setup the repo, I get a deployment error. Isn't the website supposed to correctly deploy automatically? + +Yes, if you are using release `v0.3.5` or later, the website will automatically and correctly re-deploy right after your first commit. Please make some changes (e.g., change your website info in `_config.yml`), commit, and push. Make sure to follow [deployment instructions](https://github.com/alshedivat/al-folio#deployment). (Relevant issue: [209](https://github.com/alshedivat/al-folio/issues/209#issuecomment-798849211).) + +#### I am using a custom domain (e.g., `foo.com`). My custom domain becomes blank in the repository settings after each deployment. How do I fix that? + +You need to add `CNAME` file to the `master` or `source` branch of your repository. The file should contain your custom domain name. (Relevant issue: [130](https://github.com/alshedivat/al-folio/issues/130).) + +#### My webpage works locally. But after deploying, it fails to build and throws `Unknown tag 'toc'`. How do I fix that? + +Make sure you followed through the [deployment instructions](#deployment) in the previous section. You should have set the deployment branch to `gh-pages`. (Related issue: [1438](https://github.com/alshedivat/al-folio/issues/1438).) + +#### My webpage works locally. But after deploying, it is not displayed correctly (CSS and JS is not loaded properly). How do I fix that? + +Make sure to correctly specify the `url` and `baseurl` paths in `_config.yml`. Set `url` to `https://.github.io` or to `https://` if you are using a custom domain. If you are deploying a personal or organization website, leave `baseurl` blank. If you are deploying a project page, set `baseurl: //`. If all previous steps were done correctly, all is missing is [for your browser to fetch again the site stylesheet](https://github.com/alshedivat/al-folio/issues/1398#issuecomment-1609518404). + +#### Atom feed doesn't work. Why? + +Make sure to correctly specify the `url` and `baseurl` paths in `_config.yml`. RSS Feed plugin works with these correctly set up fields: `title`, `url`, `description` and `author`. Make sure to fill them in an appropriate way and try again. + +#### My site doesn't work when I enable `related_blog_posts`. Why? + +This is probably due to the [classifier reborn](https://github.com/jekyll/classifier-reborn) plugin, which is used to calculate related posts. If the error states `Liquid Exception: Zero vectors can not be normalized...`, it means that it could not calculate related posts for a specific post. This is usually caused by [empty or minimal blog posts](https://github.com/jekyll/classifier-reborn/issues/64) without meaningful words (i.e. only [stop words](https://en.wikipedia.org/wiki/Stop_words)) or even [specific characters](https://github.com/jekyll/classifier-reborn/issues/194) you used in your posts. Also, the calculus for similar posts are made for every `post`, which means every page that uses `layout: post`, including the announcements. To change this behavior, simply add `related_posts: false` to the front matter of the page you don't want to display related posts on. + +#### When trying to deploy, it's asking for github login credentials, which github disabled password authentication and it exits with an error. How to fix? + +Open .git/config file using your preferred editor. Change the `https` portion of the `url` variable to `ssh`. Try deploying again. + +#### When I manually run the [Lighthouse Badger](https://github.com/alshedivat/al-folio/actions/workflows/lighthouse-badger.yml) workflow, it fails with `Error: Input required and not supplied: token`. How do I fix that? + +You need to [create a personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) and [add it as a secret](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-encrypted-secrets-for-a-repository) named `LIGHTHOUSE_BADGER_TOKEN` to your repository. For more information, check [lighthouse-badger documentation](https://github.com/MyActionWay/lighthouse-badger-workflows#lighthouse-badger-easyyml) on how to do this. + +#### My code runs fine locally, but when I create a commit and submit it, it fails with `prettier code formatter workflow run failed for master branch`. How do I fix that? + +We implemented support for [Prettier code formatting](https://prettier.io/) in [#2048](https://github.com/alshedivat/al-folio/pull/2048). It basically ensures that your code is well formatted. If you want to ensure your code is compliant with `Prettier` you can install it in your computer [integrated with an editor](https://prettier.io/docs/en/editors), [install it and run manually](https://prettier.io/docs/en/install), or you can disable it for your repo. For this, just delete the file [.github/workflows/prettier.yml](https://github.com/alshedivat/al-folio/blob/master/.github/workflows/prettier.yml). diff --git a/INSTALL.md b/INSTALL.md index 629c4c2b..c4c7d0ab 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,222 +1,222 @@ -# Table of Contents - -- [Installing and Deploying](#installing-and-deploying) - - [Recommended Approach](#recommended-approach) - - [Local Setup on Windows](#local-setup-on-windows) - - [Local Setup using Docker (Recommended)](#local-setup-using-docker-recommended) - - [Build your own docker image](#build-your-own-docker-image) - - [Local Setup (Legacy)](#local-setup-legacy) - - [Deployment](#deployment) - - [For personal and organization webpages](#for-personal-and-organization-webpages) - - [For project pages](#for-project-pages) - - [Enabling automatic deployment](#enabling-automatic-deployment) - - [Manual deployment to GitHub Pages](#manual-deployment-to-github-pages) - - [Deployment to another hosting server (non GitHub Pages)](#deployment-to-another-hosting-server-non-github-pages) - - [Deployment to a separate repository (advanced users only)](#deployment-to-a-separate-repository-advanced-users-only) - - [Upgrading from a previous version](#upgrading-from-a-previous-version) - -# Installing and Deploying - -The recommended approach for using **al-folio** is to first create your own site using the template with as few changes as possible, and only when it is up and running customize it however you like. This way it is easier to pinpoint what causes a potential issue in case of a bug. The minimum steps required to create your own site are: - -1. Create a new repository using this template. For this, click on [Use this template -> Create a new repository](https://github.com/new?template_name=multi-language-al-folio&template_owner=george-gca) above the file list. If you plan to upload your site to `.github.io`, note that the name of your repository MUST BE `.github.io` or `.github.io`, as stated in the [GitHub pages docs](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites). -2. In this new repository, go to `Settings -> Actions -> General -> Workflow permissions` and give `Read and write permissions` to GitHub Actions. -3. Open file `_config.yml`, set `url` to `https://.github.io` and leave `baseurl` **empty**. -4. Finally, in the repository page go to `Settings -> Pages -> Build and deployment`, make sure that `Source` is set to `Deploy from a branch` and set the branch to `gh-pages` (NOT to master). -5. Wait until the GitHub actions finish, then simply navigate to `https://.github.io` in your browser. At this point you should see a copy of the theme's [demo website](https://george-gca.github.io/multi-language-al-folio/). - -After everything is set up, you can download the repository to your machine and start customizing it. To do so, run the following commands: - -```bash -$ git clone git@github.com:/.git -``` - -Starting version [v0.3.5](https://github.com/alshedivat/al-folio/releases/tag/v0.3.5), **al-folio** will automatically re-deploy your webpage each time you push new changes to your repository! :sparkles: - -## Local setup on Windows - -If you are using Windows, it is **highly recommended** to use [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install), which is a compatibility layer for running Linux on top of Windows. You can follow [these instructions](https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-11-with-gui-support) to install WSL and Ubuntu on your machine. You only need to go up to the step 4 of the tutorial (you don't have to enable the optional `systemd` nor the graphical applications), and then you can follow the instructions below to install docker. You can install docker natively on Windows as well, but it has been having some issues as can be seen in [#1540](https://github.com/alshedivat/al-folio/issues/1540), [#2007](https://github.com/alshedivat/al-folio/issues/2007). - -## Local setup using Docker (Recommended) - -Using Docker to install Jekyll and Ruby dependencies is the easiest way. - -You need to take the following steps to get `al-folio` up and running on your local machine: - -- First, install [docker](https://docs.docker.com/get-docker/) and [docker-compose](https://docs.docker.com/compose/install/). -- Finally, run the following command that will pull the latest pre-built image from DockerHub and will run your website. - -```bash -$ docker compose pull -$ docker compose up -``` - -Note that when you run it for the first time, it will download a docker image of size 400MB or so. To see the template running, open your browser and go to `http://localhost:8080`. You should see a copy of the theme's demo website. - -Now, feel free to customize the theme however you like (don't forget to change the name!). Also, your changes should be automatically rendered in real-time (or maybe after a few seconds). - -> Beta: You can also use the slimmed docker image with a size below 100MBs and exact same functionality. Just use `docker compose up -f docker-compose-slim.yml` - -### Build your own docker image - -> Note: this approach is only necessary if you would like to build an older or very custom version of multi-language-al-folio. - -Build and run a new docker image using: - -```bash -$ docker compose up --build -``` - -> If you want to update jekyll, install new ruby packages, etc., all you have to do is build the image again using `--force-recreate` argument at the end of the previous command! It will download Ruby and Jekyll and install all Ruby packages again from scratch. - -If you want to use a specific docker version, you can do so by changing `latest` tag to `your_version` in `docker-compose.yaml`. For example, you might have created your website on `v0.10.0` and you want to stick with that. - -## Local Setup (Legacy) - -For a hands-on walkthrough of running multi-language-al-folio locally without using Docker, check out [this cool blog post](https://george-gca.github.io/blog/2022/running-local-al-folio/) by one of the community members! - -Assuming you have [Ruby](https://www.ruby-lang.org/en/downloads/) and [Bundler](https://bundler.io/) installed on your system (_hint: for ease of managing ruby gems, consider using [rbenv](https://github.com/rbenv/rbenv)_), and also [Python](https://www.python.org/) and [pip](https://pypi.org/project/pip/) (_hint: for ease of managing python packages, consider using a virtual environment, like [venv](https://docs.python.org/pt-br/3/library/venv.html) or [conda](https://docs.conda.io/en/latest/)_). - -```bash -$ bundle install -# assuming pip is your Python package manager -$ pip install jupyter -$ bundle exec jekyll serve --lsi -``` - -To see the template running, open your browser and go to `http://localhost:4000`. You should see a copy of the theme's [demo website](https://george-gca.github.io/multi-language-al-folio/). Now, feel free to customize the theme however you like. After you are done, remember to **commit** your final changes. - -## Deployment - -Deploying your website to [GitHub Pages](https://pages.github.com/) is the most popular option. -Starting version [v0.3.5](https://github.com/alshedivat/al-folio/releases/tag/v0.3.5), **al-folio** will automatically re-deploy your webpage each time you push new changes to your repository! :sparkles: - -### For personal and organization webpages - -1. The name of your repository **MUST BE** `.github.io` or `.github.io`. -2. In `_config.yml`, set `url` to `https://.github.io` and leave `baseurl` empty. -3. Set up automatic deployment of your webpage (see instructions below). -4. Make changes, commit, and push! -5. After deployment, the webpage will become available at `.github.io`. - -### For project pages - -1. In `_config.yml`, set `url` to `https://.github.io` and `baseurl` to `//`. -2. Set up automatic deployment of your webpage (see instructions below). -3. Make changes, commit, and push! -4. After deployment, the webpage will become available at `.github.io//`. - -### Enabling automatic deployment - -1. Click on **Actions** tab and **Enable GitHub Actions**; do not worry about creating any workflows as everything has already been set for you. -2. Go to `Settings -> Actions -> General -> Workflow permissions`, and give `Read and write permissions` to GitHub Actions -3. Make any other changes to your webpage, commit, and push. This will automatically trigger the **Deploy** action. -4. Wait for a few minutes and let the action complete. You can see the progress in the **Actions** tab. If completed successfully, in addition to the `master` branch, your repository should now have a newly built `gh-pages` branch. -5. Finally, in the **Settings** of your repository, in the Pages section, set the branch to `gh-pages` (**NOT** to `master`). For more details, see [Configuring a publishing source for your GitHub Pages site](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#choosing-a-publishing-source). - -If you keep your site on another branch, open `.github/workflows/deploy.yml` **on the branch you keep your website on** and change `on->push->branches` and `on->pull\_request->branches` to the branch you keep your website on. This will trigger the action on pulls/pushes on that branch. The action will then deploy the website on the branch it was triggered from. - -### Manual deployment to GitHub Pages - -If you need to manually re-deploy your website to GitHub pages, go to Actions, click "Deploy" in the left sidebar, then "Run workflow." - -### Deployment to another hosting server (non GitHub Pages) - -If you decide to not use GitHub Pages and host your page elsewhere, simply run: - -```bash -$ bundle exec jekyll build --lsi -``` - -which will (re-)generate the static webpage in the `_site/` folder. -Then simply copy the contents of the `_site/` directory to your hosting server. - -If you also want to remove unused css classes from your file, run: - -```bash -$ purgecss -c purgecss.config.js -``` - -which will replace the css files in the `_site/assets/css/` folder with the purged css files. - -**Note:** Make sure to correctly set the `url` and `baseurl` fields in `_config.yml` before building the webpage. If you are deploying your webpage to `your-domain.com/your-project/`, you must set `url: your-domain.com` and `baseurl: /your-project/`. If you are deploying directly to `your-domain.com`, leave `baseurl` blank. - -### Deployment to a separate repository (advanced users only) - -**Note:** Do not try using this method unless you know what you are doing (make sure you are familiar with [publishing sources](https://help.github.com/en/github/working-with-github-pages/about-github-pages#publishing-sources-for-github-pages-sites)). This approach allows to have the website's source code in one repository and the deployment version in a different repository. - -Let's assume that your website's publishing source is a `publishing-source` subdirectory of a git-versioned repository cloned under `$HOME/repo/`. -For a user site this could well be something like `$HOME/.github.io`. - -Firstly, from the deployment repo dir, checkout the git branch hosting your publishing source. - -Then from the website sources dir (commonly your multi-language-al-folio fork's clone): - -```bash -$ bundle exec jekyll build --lsi --destination $HOME/repo/publishing-source -``` - -This will instruct jekyll to deploy the website under `$HOME/repo/publishing-source`. - -**Note:** Jekyll will clean `$HOME/repo/publishing-source` before building! - -The quote below is taken directly from the [jekyll configuration docs](https://jekyllrb.com/docs/configuration/options/): - -> Destination folders are cleaned on site builds -> -> The contents of `` are automatically cleaned, by default, when the site is built. Files or folders that are not created by your site will be removed. Some files could be retained by specifying them within the `` configuration directive. -> -> Do not use an important location for ``; instead, use it as a staging area and copy files from there to your web server. - -If `$HOME/repo/publishing-source` contains files that you want jekyll to leave untouched, specify them under `keep_files` in `_config.yml`. -In its default configuration, multi-language-al-folio will copy the top-level `README.md` to the publishing source. If you want to change this behavior, add `README.md` under `exclude` in `_config.yml`. - -**Note:** Do _not_ run `jekyll clean` on your publishing source repo as this will result in the entire directory getting deleted, irrespective of the content of `keep_files` in `_config.yml`. - -### Upgrading from a previous version - -If you installed **al-folio** as described above, you can configure a [GitHub action](https://github.com/AndreasAugustin/actions-template-sync) to automatically sync your repository with the latest version of the theme. - -Go to Settings -> Actions -> General -> Workflow permissions, give Read and write permissions to GitHub Actions, check "Allow GitHub Actions to create and approve pull requests", and save your changes. - -Then go to Actions -> New workflow -> set up a workflow yourself, setup the following workflow and commit your changes: - -```yaml -name: Sync from template -on: - # cronjob trigger - schedule: - - cron: "0 0 1 * *" - # manual trigger - workflow_dispatch: -jobs: - repo-sync: - runs-on: ubuntu-latest - steps: - # To use this repository's private action, you must check out the repository - - name: Checkout - uses: actions/checkout@v4 - - name: actions-template-sync - uses: AndreasAugustin/actions-template-sync@v1 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - source_repo_path: george-gca/multi-language-al-folio - upstream_branch: master -``` - -You will receive a pull request within your repository if there are some changes available in the template. - -Another option is to manually update your code by following the steps below: - -```bash -# Assuming the current directory is -$ git remote add upstream https://github.com/george-gca/multi-language-al-folio.git -$ git fetch upstream -$ git rebase v0.11.0 -``` - -If you have extensively customized a previous version, it might be trickier to upgrade. -You can still follow the steps above, but `git rebase` may result in merge conflicts that must be resolved. -See [git rebase manual](https://help.github.com/en/github/using-git/about-git-rebase) and how to [resolve conflicts](https://help.github.com/en/github/using-git/resolving-merge-conflicts-after-a-git-rebase) for more information. -If rebasing is too complicated, we recommend re-installing the new version of the theme from scratch and port over your content and changes from the previous version manually. You can use tools like [meld](https://meldmerge.org/) -or [winmerge](https://winmerge.org/) to help in this process. +# Table of Contents + +- [Installing and Deploying](#installing-and-deploying) + - [Recommended Approach](#recommended-approach) + - [Local Setup on Windows](#local-setup-on-windows) + - [Local Setup using Docker (Recommended)](#local-setup-using-docker-recommended) + - [Build your own docker image](#build-your-own-docker-image) + - [Local Setup (Legacy)](#local-setup-legacy) + - [Deployment](#deployment) + - [For personal and organization webpages](#for-personal-and-organization-webpages) + - [For project pages](#for-project-pages) + - [Enabling automatic deployment](#enabling-automatic-deployment) + - [Manual deployment to GitHub Pages](#manual-deployment-to-github-pages) + - [Deployment to another hosting server (non GitHub Pages)](#deployment-to-another-hosting-server-non-github-pages) + - [Deployment to a separate repository (advanced users only)](#deployment-to-a-separate-repository-advanced-users-only) + - [Upgrading from a previous version](#upgrading-from-a-previous-version) + +# Installing and Deploying + +The recommended approach for using **al-folio** is to first create your own site using the template with as few changes as possible, and only when it is up and running customize it however you like. This way it is easier to pinpoint what causes a potential issue in case of a bug. The minimum steps required to create your own site are: + +1. Create a new repository using this template. For this, click on [Use this template -> Create a new repository](https://github.com/new?template_name=multi-language-al-folio&template_owner=george-gca) above the file list. If you plan to upload your site to `.github.io`, note that the name of your repository MUST BE `.github.io` or `.github.io`, as stated in the [GitHub pages docs](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites). +2. In this new repository, go to `Settings -> Actions -> General -> Workflow permissions` and give `Read and write permissions` to GitHub Actions. +3. Open file `_config.yml`, set `url` to `https://.github.io` and leave `baseurl` **empty**. +4. Finally, in the repository page go to `Settings -> Pages -> Build and deployment`, make sure that `Source` is set to `Deploy from a branch` and set the branch to `gh-pages` (NOT to master). +5. Wait until the GitHub actions finish, then simply navigate to `https://.github.io` in your browser. At this point you should see a copy of the theme's [demo website](https://george-gca.github.io/multi-language-al-folio/). + +After everything is set up, you can download the repository to your machine and start customizing it. To do so, run the following commands: + +```bash +$ git clone git@github.com:/.git +``` + +Starting version [v0.3.5](https://github.com/alshedivat/al-folio/releases/tag/v0.3.5), **al-folio** will automatically re-deploy your webpage each time you push new changes to your repository! :sparkles: + +## Local setup on Windows + +If you are using Windows, it is **highly recommended** to use [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install), which is a compatibility layer for running Linux on top of Windows. You can follow [these instructions](https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-11-with-gui-support) to install WSL and Ubuntu on your machine. You only need to go up to the step 4 of the tutorial (you don't have to enable the optional `systemd` nor the graphical applications), and then you can follow the instructions below to install docker. You can install docker natively on Windows as well, but it has been having some issues as can be seen in [#1540](https://github.com/alshedivat/al-folio/issues/1540), [#2007](https://github.com/alshedivat/al-folio/issues/2007). + +## Local setup using Docker (Recommended) + +Using Docker to install Jekyll and Ruby dependencies is the easiest way. + +You need to take the following steps to get `al-folio` up and running on your local machine: + +- First, install [docker](https://docs.docker.com/get-docker/) and [docker-compose](https://docs.docker.com/compose/install/). +- Finally, run the following command that will pull the latest pre-built image from DockerHub and will run your website. + +```bash +$ docker compose pull +$ docker compose up +``` + +Note that when you run it for the first time, it will download a docker image of size 400MB or so. To see the template running, open your browser and go to `http://localhost:8080`. You should see a copy of the theme's demo website. + +Now, feel free to customize the theme however you like (don't forget to change the name!). Also, your changes should be automatically rendered in real-time (or maybe after a few seconds). + +> Beta: You can also use the slimmed docker image with a size below 100MBs and exact same functionality. Just use `docker compose up -f docker-compose-slim.yml` + +### Build your own docker image + +> Note: this approach is only necessary if you would like to build an older or very custom version of multi-language-al-folio. + +Build and run a new docker image using: + +```bash +$ docker compose up --build +``` + +> If you want to update jekyll, install new ruby packages, etc., all you have to do is build the image again using `--force-recreate` argument at the end of the previous command! It will download Ruby and Jekyll and install all Ruby packages again from scratch. + +If you want to use a specific docker version, you can do so by changing `latest` tag to `your_version` in `docker-compose.yaml`. For example, you might have created your website on `v0.10.0` and you want to stick with that. + +## Local Setup (Legacy) + +For a hands-on walkthrough of running multi-language-al-folio locally without using Docker, check out [this cool blog post](https://george-gca.github.io/blog/2022/running-local-al-folio/) by one of the community members! + +Assuming you have [Ruby](https://www.ruby-lang.org/en/downloads/) and [Bundler](https://bundler.io/) installed on your system (_hint: for ease of managing ruby gems, consider using [rbenv](https://github.com/rbenv/rbenv)_), and also [Python](https://www.python.org/) and [pip](https://pypi.org/project/pip/) (_hint: for ease of managing python packages, consider using a virtual environment, like [venv](https://docs.python.org/pt-br/3/library/venv.html) or [conda](https://docs.conda.io/en/latest/)_). + +```bash +$ bundle install +# assuming pip is your Python package manager +$ pip install jupyter +$ bundle exec jekyll serve --lsi +``` + +To see the template running, open your browser and go to `http://localhost:4000`. You should see a copy of the theme's [demo website](https://george-gca.github.io/multi-language-al-folio/). Now, feel free to customize the theme however you like. After you are done, remember to **commit** your final changes. + +## Deployment + +Deploying your website to [GitHub Pages](https://pages.github.com/) is the most popular option. +Starting version [v0.3.5](https://github.com/alshedivat/al-folio/releases/tag/v0.3.5), **al-folio** will automatically re-deploy your webpage each time you push new changes to your repository! :sparkles: + +### For personal and organization webpages + +1. The name of your repository **MUST BE** `.github.io` or `.github.io`. +2. In `_config.yml`, set `url` to `https://.github.io` and leave `baseurl` empty. +3. Set up automatic deployment of your webpage (see instructions below). +4. Make changes, commit, and push! +5. After deployment, the webpage will become available at `.github.io`. + +### For project pages + +1. In `_config.yml`, set `url` to `https://.github.io` and `baseurl` to `//`. +2. Set up automatic deployment of your webpage (see instructions below). +3. Make changes, commit, and push! +4. After deployment, the webpage will become available at `.github.io//`. + +### Enabling automatic deployment + +1. Click on **Actions** tab and **Enable GitHub Actions**; do not worry about creating any workflows as everything has already been set for you. +2. Go to `Settings -> Actions -> General -> Workflow permissions`, and give `Read and write permissions` to GitHub Actions +3. Make any other changes to your webpage, commit, and push. This will automatically trigger the **Deploy** action. +4. Wait for a few minutes and let the action complete. You can see the progress in the **Actions** tab. If completed successfully, in addition to the `master` branch, your repository should now have a newly built `gh-pages` branch. +5. Finally, in the **Settings** of your repository, in the Pages section, set the branch to `gh-pages` (**NOT** to `master`). For more details, see [Configuring a publishing source for your GitHub Pages site](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#choosing-a-publishing-source). + +If you keep your site on another branch, open `.github/workflows/deploy.yml` **on the branch you keep your website on** and change `on->push->branches` and `on->pull\_request->branches` to the branch you keep your website on. This will trigger the action on pulls/pushes on that branch. The action will then deploy the website on the branch it was triggered from. + +### Manual deployment to GitHub Pages + +If you need to manually re-deploy your website to GitHub pages, go to Actions, click "Deploy" in the left sidebar, then "Run workflow." + +### Deployment to another hosting server (non GitHub Pages) + +If you decide to not use GitHub Pages and host your page elsewhere, simply run: + +```bash +$ bundle exec jekyll build --lsi +``` + +which will (re-)generate the static webpage in the `_site/` folder. +Then simply copy the contents of the `_site/` directory to your hosting server. + +If you also want to remove unused css classes from your file, run: + +```bash +$ purgecss -c purgecss.config.js +``` + +which will replace the css files in the `_site/assets/css/` folder with the purged css files. + +**Note:** Make sure to correctly set the `url` and `baseurl` fields in `_config.yml` before building the webpage. If you are deploying your webpage to `your-domain.com/your-project/`, you must set `url: your-domain.com` and `baseurl: /your-project/`. If you are deploying directly to `your-domain.com`, leave `baseurl` blank. + +### Deployment to a separate repository (advanced users only) + +**Note:** Do not try using this method unless you know what you are doing (make sure you are familiar with [publishing sources](https://help.github.com/en/github/working-with-github-pages/about-github-pages#publishing-sources-for-github-pages-sites)). This approach allows to have the website's source code in one repository and the deployment version in a different repository. + +Let's assume that your website's publishing source is a `publishing-source` subdirectory of a git-versioned repository cloned under `$HOME/repo/`. +For a user site this could well be something like `$HOME/.github.io`. + +Firstly, from the deployment repo dir, checkout the git branch hosting your publishing source. + +Then from the website sources dir (commonly your multi-language-al-folio fork's clone): + +```bash +$ bundle exec jekyll build --lsi --destination $HOME/repo/publishing-source +``` + +This will instruct jekyll to deploy the website under `$HOME/repo/publishing-source`. + +**Note:** Jekyll will clean `$HOME/repo/publishing-source` before building! + +The quote below is taken directly from the [jekyll configuration docs](https://jekyllrb.com/docs/configuration/options/): + +> Destination folders are cleaned on site builds +> +> The contents of `` are automatically cleaned, by default, when the site is built. Files or folders that are not created by your site will be removed. Some files could be retained by specifying them within the `` configuration directive. +> +> Do not use an important location for ``; instead, use it as a staging area and copy files from there to your web server. + +If `$HOME/repo/publishing-source` contains files that you want jekyll to leave untouched, specify them under `keep_files` in `_config.yml`. +In its default configuration, multi-language-al-folio will copy the top-level `README.md` to the publishing source. If you want to change this behavior, add `README.md` under `exclude` in `_config.yml`. + +**Note:** Do _not_ run `jekyll clean` on your publishing source repo as this will result in the entire directory getting deleted, irrespective of the content of `keep_files` in `_config.yml`. + +### Upgrading from a previous version + +If you installed **al-folio** as described above, you can configure a [GitHub action](https://github.com/AndreasAugustin/actions-template-sync) to automatically sync your repository with the latest version of the theme. + +Go to Settings -> Actions -> General -> Workflow permissions, give Read and write permissions to GitHub Actions, check "Allow GitHub Actions to create and approve pull requests", and save your changes. + +Then go to Actions -> New workflow -> set up a workflow yourself, setup the following workflow and commit your changes: + +```yaml +name: Sync from template +on: + # cronjob trigger + schedule: + - cron: "0 0 1 * *" + # manual trigger + workflow_dispatch: +jobs: + repo-sync: + runs-on: ubuntu-latest + steps: + # To use this repository's private action, you must check out the repository + - name: Checkout + uses: actions/checkout@v4 + - name: actions-template-sync + uses: AndreasAugustin/actions-template-sync@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + source_repo_path: george-gca/multi-language-al-folio + upstream_branch: master +``` + +You will receive a pull request within your repository if there are some changes available in the template. + +Another option is to manually update your code by following the steps below: + +```bash +# Assuming the current directory is +$ git remote add upstream https://github.com/george-gca/multi-language-al-folio.git +$ git fetch upstream +$ git rebase v0.11.0 +``` + +If you have extensively customized a previous version, it might be trickier to upgrade. +You can still follow the steps above, but `git rebase` may result in merge conflicts that must be resolved. +See [git rebase manual](https://help.github.com/en/github/using-git/about-git-rebase) and how to [resolve conflicts](https://help.github.com/en/github/using-git/resolving-merge-conflicts-after-a-git-rebase) for more information. +If rebasing is too complicated, we recommend re-installing the new version of the theme from scratch and port over your content and changes from the previous version manually. You can use tools like [meld](https://meldmerge.org/) +or [winmerge](https://winmerge.org/) to help in this process. diff --git a/README.md b/README.md index 2184ec8a..0622a912 100644 --- a/README.md +++ b/README.md @@ -1,465 +1,465 @@ -# multi-language-al-folio - -
- -[![Preview](assets/img/readme_preview/al-folio-preview.png)](https://george-gca.github.io/multi-language-al-folio/) - -**A multilingual version of the [al-folio theme](https://github.com/alshedivat/al-folio), a simple, clean, and responsive [Jekyll](https://jekyllrb.com/) theme for academics.** - ---- - -[![deploy](https://github.com/george-gca/multi-language-al-folio/actions/workflows/deploy.yml/badge.svg)](https://github.com/george-gca/multi-language-al-folio/actions/workflows/deploy.yml) -[![Maintainers](https://img.shields.io/badge/maintainers-4-success.svg)](#maintainers) -[![GitHub contributors](https://img.shields.io/github/contributors/alshedivat/al-folio.svg)](https://github.com/alshedivat/al-folio/graphs/contributors/) -[![Docker Image Version](https://img.shields.io/docker/v/georgegca/multi-language-al-folio?sort=semver&label=docker%20image&color=blueviolet)](https://hub.docker.com/r/georgegca/multi-language-al-folio) -[![Docker Image Size](https://img.shields.io/docker/image-size/georgegca/multi-language-al-folio?sort=date&label=docker%20image%20size&color=blueviolet)](https://hub.docker.com/r/georgegca/multi-language-al-folio) -[![Docker Pulls](https://img.shields.io/docker/pulls/georgegca/multi-language-al-folio?color=blueviolet)](https://hub.docker.com/r/georgegca/multi-language-al-folio) - -[![GitHub release](https://img.shields.io/github/v/release/alshedivat/al-folio)](https://github.com/alshedivat/al-folio/releases/latest) -[![GitHub license](https://img.shields.io/github/license/george-gca/multi-language-al-folio?color=blue)](https://github.com/george-gca/multi-language-al-folio/blob/master/LICENSE) -[![GitHub stars](https://img.shields.io/github/stars/alshedivat/al-folio)](https://github.com/alshedivat/al-folio) -[![GitHub forks](https://img.shields.io/github/forks/alshedivat/al-folio)](https://github.com/alshedivat/al-folio/fork) - -
- -## User community - -The vibrant community of **al-folio** users is growing! -Academics around the world use this theme for their homepages, blogs, lab pages, as well as webpages for courses, workshops, conferences, meetups, and more. -Check out the community webpages below. -Feel free to add your own page(s) by sending a PR. - - - - - - - - - - - - - - - - - - -
Academics - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Labs - - - - - - - -
Courses -CMU PGM (S-19)
-CMU DeepRL (F-19, S-20, F-20, S-21, F-21, S-22)
-CMU MMML (F-20, F-22)
-CMU AMMML (S-22, S-23)
-CMU ASI (S-23)
-CMU Distributed Systems (S-21) -
Conferences & workshops -ICLR Blog Post Track (2023, 2024)
-ML Retrospectives (NeurIPS: 2019, 2020; ICML: 2020)
-HAMLETS (NeurIPS: 2020)
-ICBINB (NeurIPS: 2020, 2021)
-Neural Compression (ICLR: 2021)
-Score Based Methods (NeurIPS: 2022)
-Images2Symbols (CogSci: 2022)
-Medical Robotics Junior Faculty Forum (ISMR: 2023)
-Beyond Vision: Physics meets AI (ICIAP: 2023)
-Workshop on Diffusion Models (NeurIPS: 2023) -
- -## Lighthouse PageSpeed Insights - -### Desktop - -[![Google Lighthouse PageSpeed Insights](lighthouse_results/desktop/pagespeed.svg)](https://htmlpreview.github.io/?https://github.com/george-gca/multi-language-al-folio/blob/main/lighthouse_results/desktop/george_gca_github_io_multi_language_al_folio_.html) - -Run the test yourself: [Google Lighthouse PageSpeed Insights](https://pagespeed.web.dev/report?url=https%3A%2F%2Fgeorge-gca.github.io%2Fmulti-language-al-folio%2F&form_factor=desktop) - -### Mobile - -[![Google Lighthouse PageSpeed Insights](lighthouse_results/mobile/pagespeed.svg)](https://htmlpreview.github.io/?https://github.com/george-gca/multi-language-al-folio/blob/main/lighthouse_results/mobile/george_gca_github_io_multi_language_al_folio_.html) - -Run the test yourself: [Google Lighthouse PageSpeed Insights](https://pagespeed.web.dev/report?url=https%3A%2F%2Fgeorge-gca.github.io%2Fmulti-language-al-folio%2F&form_factor=mobile) - -## Table Of Contents - -- [multi-language-al-folio](#multi-language-al-folio) - - [User community](#user-community) - - [Lighthouse PageSpeed Insights](#lighthouse-pagespeed-insights) - - [Desktop](#desktop) - - [Mobile](#mobile) - - [Table Of Contents](#table-of-contents) - - [Getting started](#getting-started) - - [Installing](#installing) - - [Customizing](#customizing) - - [Features](#features) - - [Multi Language Support](#multi-language-support) - - [Light/Dark Mode](#lightdark-mode) - - [CV](#cv) - - [People](#people) - - [Publications](#publications) - - [Collections](#collections) - - [Layouts](#layouts) - - [The iconic style of Distill](#the-iconic-style-of-distill) - - [Full support for math \& code](#full-support-for-math--code) - - [Photos, Audio, Video and more](#photos-audio-video-and-more) - - [Other features](#other-features) - - [GitHub's repositories and user stats](#githubs-repositories-and-user-stats) - - [Theming](#theming) - - [Social media previews](#social-media-previews) - - [Atom (RSS-like) Feed](#atom-rss-like-feed) - - [Related posts](#related-posts) - - [Code quality checks](#code-quality-checks) - - [FAQ](#faq) - - [Contributing](#contributing) - - [Maintainers](#maintainers) - - [All Contributors](#all-contributors) - - [Star History](#star-history) - - [License](#license) - -## Getting started - -Want to learn more about Jekyll? Check out [this tutorial](https://www.taniarascia.com/make-a-static-website-with-jekyll/). Why Jekyll? Read [Andrej Karpathy's blog post](https://karpathy.github.io/2014/07/01/switching-to-jekyll/)! - -## Installing - -For installation details please refer to [INSTALL.md](INSTALL.md). - -## Customizing - -For customization details please refer to [CUSTOMIZE.md](CUSTOMIZE.md). - -## Features - -### Multi Language Support - -The default language will be the first in the list of languages in the [\_config.yml](_config.yml) file. When using two languages, the theme will show a button in the header that switches to the other language directly. - -![Switch language](assets/img/readme_preview/multi-language-diff-1.png) -![Switch back language](assets/img/readme_preview/multi-language-diff-2.png) - -When using three or more, it will be created a dropdown menu with all the available languages. - -![Switch language between 3 or more](assets/img/readme_preview/multi-language-3-or-more.png) - -Note that throughout the [README.md](README.md) and [CUSTOMIZE.md](CUSTOMIZE.md) files, the default language is English (LANG = en). You must have an equivalent file or path for each language you have defined in [\_config.yml](_config.yml). For example, if you have defined `languages: ["en", "pt-br"]`, you must have 2 versions of the file `_data/LANG/cv.yml`: [\_data/en/cv.yml](_data/en/cv.yml) and [\_data/pt-br/cv.yml](_data/pt-br/cv.yml). - ---- - -### Light/Dark Mode - -This template has a built-in light/dark mode. It detects the user preferred color scheme and automatically switches to it. You can also manually switch between light and dark mode by clicking on the sun/moon icon in the top right corner of the page. - -

- - -

- ---- - -### CV - -There are currently 2 different ways of generating the CV page content. The first one is by using a json file located in [assets/json/resume_LANG.json](assets/json/resume_en.json). It is a [known standard](https://jsonresume.org/) for creating a CV programmatically. The second one, currently used as a fallback when the json file is not found, is by using a yml file located in [\_data/LANG/cv.yml](_data/en/cv.yml). This was the original way of creating the CV page content and since it is more human readable than a json file we decided to keep it as an option. - -What this means is, if there is no resume data defined in [\_config.yml](_config.yml) and loaded via a json file, it will load the contents of [\_data/LANG/cv.yml](_data/en/cv.yml) as fallback. - -[![CV Preview](assets/img/readme_preview/cv.png)](https://george-gca.github.io/multi-language-al-folio/cv/) - ---- - -### People - -You can create a people page if you want to feature more than one person. Each person can have its own short bio, profile picture, and you can also set if every person will appear at the same or opposite sides. - -[![People Preview](assets/img/readme_preview/people.png)](https://george-gca.github.io/multi-language-al-folio/people/) - ---- - -### Publications - -Your publications' page is generated automatically from your BibTex bibliography. Simply edit [\_bibliography/papers.bib](_bibliography/papers.bib). You can also add new `*.bib` files and customize the look of your publications however you like by editing [\_pages/publications.md](_pages/publications.md). By default, the publications will be sorted by year and the most recent will be displayed first. You can change this behavior and more in the `Jekyll Scholar` section in [\_config.yml](_config.yml) file. - -You can add extra information to a publication, like a PDF file in the [assets/pdf/](assets/pdf/) directory and add the path to the PDF file in the BibTeX entry with the `pdf` field. Some of the supported fields are: `abstract`, `altmetric`, `arxiv`, `bibtex_show`, `blog`, `code`, `dimensions`, `doi`, `eprint`, `html`, `isbn`, `pdf`, `pmid`, `poster`, `slides`, `supp`, `video`, and `website`. - -[![Publications Preview](assets/img/readme_preview/publications.png)](https://george-gca.github.io/multi-language-al-folio/publications/) - ---- - -### Collections - -This Jekyll theme implements `collections` to let you break up your work into categories. The theme comes with two default collections: `news` and `projects`. Items from the `news` collection are automatically displayed on the home page. Items from the `projects` collection are displayed on a responsive grid on projects page. - -[![Projects Preview](assets/img/readme_preview/projects.png)](https://george-gca.github.io/multi-language-al-folio/projects/) - -You can easily create your own collections, apps, short stories, courses, or whatever your creative work is. To do this, edit the collections in the [\_config.yml](_config.yml) file, create a corresponding folder, and create a landing page for your collection, similar to `_pages/projects.md`. - ---- - -### Layouts - -**al-folio** comes with stylish layouts for pages and blog posts. - -#### The iconic style of Distill - -The theme allows you to create blog posts in the [distill.pub](https://distill.pub/) style: - -[![Distill Preview](assets/img/readme_preview/distill.png)](https://george-gca.github.io/multi-language-al-folio/blog/2021/distill/) - -For more details on how to create distill-styled posts using `` tags, please refer to [the example](https://george-gca.github.io/multi-language-al-folio/blog/2021/distill/). - -#### Full support for math & code - -**al-folio** supports fast math typesetting through [MathJax](https://www.mathjax.org/) and code syntax highlighting using [GitHub style](https://github.com/jwarby/jekyll-pygments-themes). Also supports [chartjs charts](https://www.chartjs.org/), [mermaid diagrams](https://mermaid-js.github.io/mermaid/#/), and [TikZ figures](https://tikzjax.com/). - -

- - -

- -#### Photos, Audio, Video and more - -Photo formatting is made simple using [Bootstrap's grid system](https://getbootstrap.com/docs/4.4/layout/grid/). Easily create beautiful grids within your blog posts and project pages, also with support for [video](https://george-gca.github.io/multi-language-al-folio/blog/2023/videos/) and [audio](https://george-gca.github.io/multi-language-al-folio/blog/2023/audios/) embeds: - -

- - - -

- ---- - -### Other features - -#### GitHub's repositories and user stats - -**al-folio** uses [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) and [github-profile-trophy](https://github.com/ryo-ma/github-profile-trophy) to display GitHub repositories and user stats on the `/repositories/` page. - -[![Repositories Preview](assets/img/readme_preview/repositories.png)](https://george-gca.github.io/multi-language-al-folio/repositories/) - -Edit the `_data/repositories.yml` and change the `github_users` and `github_repos` lists to include your own GitHub profile and repositories to the `/repositories/` page. - -You may also use the following codes for displaying this in any other pages. - -```html - -{% if site.data.repositories.github_users %} -
- {% for user in site.data.repositories.github_users %} {% include repository/repo_user.liquid username=user %} {% endfor %} -
-{% endif %} - - -{% if site.repo_trophies.enabled %} {% for user in site.data.repositories.github_users %} {% if site.data.repositories.github_users.size > 1 %} -

{{ user }}

-{% endif %} -
- {% include repository/repo_trophies.liquid username=user %} -
-{% endfor %} {% endif %} - - -{% if site.data.repositories.github_repos %} -
- {% for repo in site.data.repositories.github_repos %} {% include repository/repo.liquid repository=repo %} {% endfor %} -
-{% endif %} -``` - ---- - -#### Theming - -A variety of beautiful theme colors have been selected for you to choose from. The default is purple, but you can quickly change it by editing the `--global-theme-color` variable in the `_sass/_themes.scss` file. Other color variables are listed there as well. The stock theme color options available can be found at [\_sass/\_variables.scss](_sass/_variables.scss). You can also add your own colors to this file assigning each a name for ease of use across the template. - ---- - -#### Social media previews - -**al-folio** supports preview images on social media. To enable this functionality you will need to set `serve_og_meta` to `true` in your [\_config.yml](_config.yml). Once you have done so, all your site's pages will include Open Graph data in the HTML head element. - -You will then need to configure what image to display in your site's social media previews. This can be configured on a per-page basis, by setting the `og_image` page variable. If for an individual page this variable is not set, then the theme will fall back to a site-wide `og_image` variable, configurable in your [\_config.yml](_config.yml). In both the page-specific and site-wide cases, the `og_image` variable needs to hold the URL for the image you wish to display in social media previews. - ---- - -#### Atom (RSS-like) Feed - -It generates an Atom (RSS-like) feed of your posts, useful for Atom and RSS readers. The feed is reachable simply by typing after your homepage `/feed.xml`. E.g. assuming your website mountpoint is the main folder, you can type `yourusername.github.io/feed.xml` - ---- - -#### Related posts - -By default, there will be a related posts section on the bottom of the blog posts. These are generated by selecting the `max_related` most recent posts that share at least `min_common_tags` tags with the current post. If you do not want to display related posts on a specific post, simply add `related_posts: false` to the front matter of the post. If you want to disable it for all posts, simply set `enabled` to false in the `related_blog_posts` section in [\_config.yml](_config.yml). - ---- - -#### Code quality checks - -Currently, we run some checks to ensure that the code quality and generated site are good. The checks are done using GitHub Actions and the following tools: - -- [Prettier](https://prettier.io/) - check if the formatting of the code follows the style guide -- [lychee](https://lychee.cli.rs/) - check for broken links -- [Axe](https://github.com/dequelabs/axe-core) (need to run manually) - do some accessibility testing - -We decided to keep `Axe` runs manual because fixing the issues are not straightforward and might be hard for people without web development knowledge. - -## FAQ - -For frequently asked questions, please refer to [FAQ.md](FAQ.md). - -## Contributing - -Contributions to multi-language-al-folio are very welcome! Before you get started, please take a look at [the guidelines](CONTRIBUTING.md). - -If you would like to improve documentation or fix a minor inconsistency or bug, please feel free to send a PR directly to `master`. For more complex issues/bugs or feature requests, please open an issue using the appropriate template. - -### Maintainers - -Our most active contributors are welcome to join the maintainers team. If you are interested, please reach out! - - - - - - - - - - - - - -

Maruan

Rohan Deb Sarkar

Amir Pourmand

George
- - - - - - -### All Contributors - - - - - -## Star History - - - - - - Star History Chart - - - -## License - -The theme is available as open source under the terms of the [MIT License](https://github.com/george-gca/multi-language-al-folio/blob/master/LICENSE). - -Originally, **al-folio** was based on the [\*folio theme](https://github.com/bogoli/-folio) (published by [Lia Bogoev](https://liabogoev.com) and under the MIT license). Since then, it got a full re-write of the styles and many additional cool features. +# multi-language-al-folio + +
+ +[![Preview](assets/img/readme_preview/al-folio-preview.png)](https://george-gca.github.io/multi-language-al-folio/) + +**A multilingual version of the [al-folio theme](https://github.com/alshedivat/al-folio), a simple, clean, and responsive [Jekyll](https://jekyllrb.com/) theme for academics.** + +--- + +[![deploy](https://github.com/george-gca/multi-language-al-folio/actions/workflows/deploy.yml/badge.svg)](https://github.com/george-gca/multi-language-al-folio/actions/workflows/deploy.yml) +[![Maintainers](https://img.shields.io/badge/maintainers-4-success.svg)](#maintainers) +[![GitHub contributors](https://img.shields.io/github/contributors/alshedivat/al-folio.svg)](https://github.com/alshedivat/al-folio/graphs/contributors/) +[![Docker Image Version](https://img.shields.io/docker/v/georgegca/multi-language-al-folio?sort=semver&label=docker%20image&color=blueviolet)](https://hub.docker.com/r/georgegca/multi-language-al-folio) +[![Docker Image Size](https://img.shields.io/docker/image-size/georgegca/multi-language-al-folio?sort=date&label=docker%20image%20size&color=blueviolet)](https://hub.docker.com/r/georgegca/multi-language-al-folio) +[![Docker Pulls](https://img.shields.io/docker/pulls/georgegca/multi-language-al-folio?color=blueviolet)](https://hub.docker.com/r/georgegca/multi-language-al-folio) + +[![GitHub release](https://img.shields.io/github/v/release/alshedivat/al-folio)](https://github.com/alshedivat/al-folio/releases/latest) +[![GitHub license](https://img.shields.io/github/license/george-gca/multi-language-al-folio?color=blue)](https://github.com/george-gca/multi-language-al-folio/blob/master/LICENSE) +[![GitHub stars](https://img.shields.io/github/stars/alshedivat/al-folio)](https://github.com/alshedivat/al-folio) +[![GitHub forks](https://img.shields.io/github/forks/alshedivat/al-folio)](https://github.com/alshedivat/al-folio/fork) + +
+ +## User community + +The vibrant community of **al-folio** users is growing! +Academics around the world use this theme for their homepages, blogs, lab pages, as well as webpages for courses, workshops, conferences, meetups, and more. +Check out the community webpages below. +Feel free to add your own page(s) by sending a PR. + + + + + + + + + + + + + + + + + + +
Academics + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Labs + + + + + + + +
Courses +CMU PGM (S-19)
+CMU DeepRL (F-19, S-20, F-20, S-21, F-21, S-22)
+CMU MMML (F-20, F-22)
+CMU AMMML (S-22, S-23)
+CMU ASI (S-23)
+CMU Distributed Systems (S-21) +
Conferences & workshops +ICLR Blog Post Track (2023, 2024)
+ML Retrospectives (NeurIPS: 2019, 2020; ICML: 2020)
+HAMLETS (NeurIPS: 2020)
+ICBINB (NeurIPS: 2020, 2021)
+Neural Compression (ICLR: 2021)
+Score Based Methods (NeurIPS: 2022)
+Images2Symbols (CogSci: 2022)
+Medical Robotics Junior Faculty Forum (ISMR: 2023)
+Beyond Vision: Physics meets AI (ICIAP: 2023)
+Workshop on Diffusion Models (NeurIPS: 2023) +
+ +## Lighthouse PageSpeed Insights + +### Desktop + +[![Google Lighthouse PageSpeed Insights](lighthouse_results/desktop/pagespeed.svg)](https://htmlpreview.github.io/?https://github.com/george-gca/multi-language-al-folio/blob/main/lighthouse_results/desktop/george_gca_github_io_multi_language_al_folio_.html) + +Run the test yourself: [Google Lighthouse PageSpeed Insights](https://pagespeed.web.dev/report?url=https%3A%2F%2Fgeorge-gca.github.io%2Fmulti-language-al-folio%2F&form_factor=desktop) + +### Mobile + +[![Google Lighthouse PageSpeed Insights](lighthouse_results/mobile/pagespeed.svg)](https://htmlpreview.github.io/?https://github.com/george-gca/multi-language-al-folio/blob/main/lighthouse_results/mobile/george_gca_github_io_multi_language_al_folio_.html) + +Run the test yourself: [Google Lighthouse PageSpeed Insights](https://pagespeed.web.dev/report?url=https%3A%2F%2Fgeorge-gca.github.io%2Fmulti-language-al-folio%2F&form_factor=mobile) + +## Table Of Contents + +- [multi-language-al-folio](#multi-language-al-folio) + - [User community](#user-community) + - [Lighthouse PageSpeed Insights](#lighthouse-pagespeed-insights) + - [Desktop](#desktop) + - [Mobile](#mobile) + - [Table Of Contents](#table-of-contents) + - [Getting started](#getting-started) + - [Installing](#installing) + - [Customizing](#customizing) + - [Features](#features) + - [Multi Language Support](#multi-language-support) + - [Light/Dark Mode](#lightdark-mode) + - [CV](#cv) + - [People](#people) + - [Publications](#publications) + - [Collections](#collections) + - [Layouts](#layouts) + - [The iconic style of Distill](#the-iconic-style-of-distill) + - [Full support for math \& code](#full-support-for-math--code) + - [Photos, Audio, Video and more](#photos-audio-video-and-more) + - [Other features](#other-features) + - [GitHub's repositories and user stats](#githubs-repositories-and-user-stats) + - [Theming](#theming) + - [Social media previews](#social-media-previews) + - [Atom (RSS-like) Feed](#atom-rss-like-feed) + - [Related posts](#related-posts) + - [Code quality checks](#code-quality-checks) + - [FAQ](#faq) + - [Contributing](#contributing) + - [Maintainers](#maintainers) + - [All Contributors](#all-contributors) + - [Star History](#star-history) + - [License](#license) + +## Getting started + +Want to learn more about Jekyll? Check out [this tutorial](https://www.taniarascia.com/make-a-static-website-with-jekyll/). Why Jekyll? Read [Andrej Karpathy's blog post](https://karpathy.github.io/2014/07/01/switching-to-jekyll/)! + +## Installing + +For installation details please refer to [INSTALL.md](INSTALL.md). + +## Customizing + +For customization details please refer to [CUSTOMIZE.md](CUSTOMIZE.md). + +## Features + +### Multi Language Support + +The default language will be the first in the list of languages in the [\_config.yml](_config.yml) file. When using two languages, the theme will show a button in the header that switches to the other language directly. + +![Switch language](assets/img/readme_preview/multi-language-diff-1.png) +![Switch back language](assets/img/readme_preview/multi-language-diff-2.png) + +When using three or more, it will be created a dropdown menu with all the available languages. + +![Switch language between 3 or more](assets/img/readme_preview/multi-language-3-or-more.png) + +Note that throughout the [README.md](README.md) and [CUSTOMIZE.md](CUSTOMIZE.md) files, the default language is English (LANG = en). You must have an equivalent file or path for each language you have defined in [\_config.yml](_config.yml). For example, if you have defined `languages: ["en", "pt-br"]`, you must have 2 versions of the file `_data/LANG/cv.yml`: [\_data/en/cv.yml](_data/en/cv.yml) and [\_data/pt-br/cv.yml](_data/pt-br/cv.yml). + +--- + +### Light/Dark Mode + +This template has a built-in light/dark mode. It detects the user preferred color scheme and automatically switches to it. You can also manually switch between light and dark mode by clicking on the sun/moon icon in the top right corner of the page. + +

+ + +

+ +--- + +### CV + +There are currently 2 different ways of generating the CV page content. The first one is by using a json file located in [assets/json/resume_LANG.json](assets/json/resume_en.json). It is a [known standard](https://jsonresume.org/) for creating a CV programmatically. The second one, currently used as a fallback when the json file is not found, is by using a yml file located in [\_data/LANG/cv.yml](_data/en/cv.yml). This was the original way of creating the CV page content and since it is more human readable than a json file we decided to keep it as an option. + +What this means is, if there is no resume data defined in [\_config.yml](_config.yml) and loaded via a json file, it will load the contents of [\_data/LANG/cv.yml](_data/en/cv.yml) as fallback. + +[![CV Preview](assets/img/readme_preview/cv.png)](https://george-gca.github.io/multi-language-al-folio/cv/) + +--- + +### People + +You can create a people page if you want to feature more than one person. Each person can have its own short bio, profile picture, and you can also set if every person will appear at the same or opposite sides. + +[![People Preview](assets/img/readme_preview/people.png)](https://george-gca.github.io/multi-language-al-folio/people/) + +--- + +### Publications + +Your publications' page is generated automatically from your BibTex bibliography. Simply edit [\_bibliography/papers.bib](_bibliography/papers.bib). You can also add new `*.bib` files and customize the look of your publications however you like by editing [\_pages/publications.md](_pages/publications.md). By default, the publications will be sorted by year and the most recent will be displayed first. You can change this behavior and more in the `Jekyll Scholar` section in [\_config.yml](_config.yml) file. + +You can add extra information to a publication, like a PDF file in the [assets/pdf/](assets/pdf/) directory and add the path to the PDF file in the BibTeX entry with the `pdf` field. Some of the supported fields are: `abstract`, `altmetric`, `arxiv`, `bibtex_show`, `blog`, `code`, `dimensions`, `doi`, `eprint`, `html`, `isbn`, `pdf`, `pmid`, `poster`, `slides`, `supp`, `video`, and `website`. + +[![Publications Preview](assets/img/readme_preview/publications.png)](https://george-gca.github.io/multi-language-al-folio/publications/) + +--- + +### Collections + +This Jekyll theme implements `collections` to let you break up your work into categories. The theme comes with two default collections: `news` and `projects`. Items from the `news` collection are automatically displayed on the home page. Items from the `projects` collection are displayed on a responsive grid on projects page. + +[![Projects Preview](assets/img/readme_preview/projects.png)](https://george-gca.github.io/multi-language-al-folio/projects/) + +You can easily create your own collections, apps, short stories, courses, or whatever your creative work is. To do this, edit the collections in the [\_config.yml](_config.yml) file, create a corresponding folder, and create a landing page for your collection, similar to `_pages/projects.md`. + +--- + +### Layouts + +**al-folio** comes with stylish layouts for pages and blog posts. + +#### The iconic style of Distill + +The theme allows you to create blog posts in the [distill.pub](https://distill.pub/) style: + +[![Distill Preview](assets/img/readme_preview/distill.png)](https://george-gca.github.io/multi-language-al-folio/blog/2021/distill/) + +For more details on how to create distill-styled posts using `` tags, please refer to [the example](https://george-gca.github.io/multi-language-al-folio/blog/2021/distill/). + +#### Full support for math & code + +**al-folio** supports fast math typesetting through [MathJax](https://www.mathjax.org/) and code syntax highlighting using [GitHub style](https://github.com/jwarby/jekyll-pygments-themes). Also supports [chartjs charts](https://www.chartjs.org/), [mermaid diagrams](https://mermaid-js.github.io/mermaid/#/), and [TikZ figures](https://tikzjax.com/). + +

+ + +

+ +#### Photos, Audio, Video and more + +Photo formatting is made simple using [Bootstrap's grid system](https://getbootstrap.com/docs/4.4/layout/grid/). Easily create beautiful grids within your blog posts and project pages, also with support for [video](https://george-gca.github.io/multi-language-al-folio/blog/2023/videos/) and [audio](https://george-gca.github.io/multi-language-al-folio/blog/2023/audios/) embeds: + +

+ + + +

+ +--- + +### Other features + +#### GitHub's repositories and user stats + +**al-folio** uses [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) and [github-profile-trophy](https://github.com/ryo-ma/github-profile-trophy) to display GitHub repositories and user stats on the `/repositories/` page. + +[![Repositories Preview](assets/img/readme_preview/repositories.png)](https://george-gca.github.io/multi-language-al-folio/repositories/) + +Edit the `_data/repositories.yml` and change the `github_users` and `github_repos` lists to include your own GitHub profile and repositories to the `/repositories/` page. + +You may also use the following codes for displaying this in any other pages. + +```html + +{% if site.data.repositories.github_users %} +
+ {% for user in site.data.repositories.github_users %} {% include repository/repo_user.liquid username=user %} {% endfor %} +
+{% endif %} + + +{% if site.repo_trophies.enabled %} {% for user in site.data.repositories.github_users %} {% if site.data.repositories.github_users.size > 1 %} +

{{ user }}

+{% endif %} +
+ {% include repository/repo_trophies.liquid username=user %} +
+{% endfor %} {% endif %} + + +{% if site.data.repositories.github_repos %} +
+ {% for repo in site.data.repositories.github_repos %} {% include repository/repo.liquid repository=repo %} {% endfor %} +
+{% endif %} +``` + +--- + +#### Theming + +A variety of beautiful theme colors have been selected for you to choose from. The default is purple, but you can quickly change it by editing the `--global-theme-color` variable in the `_sass/_themes.scss` file. Other color variables are listed there as well. The stock theme color options available can be found at [\_sass/\_variables.scss](_sass/_variables.scss). You can also add your own colors to this file assigning each a name for ease of use across the template. + +--- + +#### Social media previews + +**al-folio** supports preview images on social media. To enable this functionality you will need to set `serve_og_meta` to `true` in your [\_config.yml](_config.yml). Once you have done so, all your site's pages will include Open Graph data in the HTML head element. + +You will then need to configure what image to display in your site's social media previews. This can be configured on a per-page basis, by setting the `og_image` page variable. If for an individual page this variable is not set, then the theme will fall back to a site-wide `og_image` variable, configurable in your [\_config.yml](_config.yml). In both the page-specific and site-wide cases, the `og_image` variable needs to hold the URL for the image you wish to display in social media previews. + +--- + +#### Atom (RSS-like) Feed + +It generates an Atom (RSS-like) feed of your posts, useful for Atom and RSS readers. The feed is reachable simply by typing after your homepage `/feed.xml`. E.g. assuming your website mountpoint is the main folder, you can type `yourusername.github.io/feed.xml` + +--- + +#### Related posts + +By default, there will be a related posts section on the bottom of the blog posts. These are generated by selecting the `max_related` most recent posts that share at least `min_common_tags` tags with the current post. If you do not want to display related posts on a specific post, simply add `related_posts: false` to the front matter of the post. If you want to disable it for all posts, simply set `enabled` to false in the `related_blog_posts` section in [\_config.yml](_config.yml). + +--- + +#### Code quality checks + +Currently, we run some checks to ensure that the code quality and generated site are good. The checks are done using GitHub Actions and the following tools: + +- [Prettier](https://prettier.io/) - check if the formatting of the code follows the style guide +- [lychee](https://lychee.cli.rs/) - check for broken links +- [Axe](https://github.com/dequelabs/axe-core) (need to run manually) - do some accessibility testing + +We decided to keep `Axe` runs manual because fixing the issues are not straightforward and might be hard for people without web development knowledge. + +## FAQ + +For frequently asked questions, please refer to [FAQ.md](FAQ.md). + +## Contributing + +Contributions to multi-language-al-folio are very welcome! Before you get started, please take a look at [the guidelines](CONTRIBUTING.md). + +If you would like to improve documentation or fix a minor inconsistency or bug, please feel free to send a PR directly to `master`. For more complex issues/bugs or feature requests, please open an issue using the appropriate template. + +### Maintainers + +Our most active contributors are welcome to join the maintainers team. If you are interested, please reach out! + + + + + + + + + + + + + +

Maruan

Rohan Deb Sarkar

Amir Pourmand

George
+ + + + + + +### All Contributors + + + + + +## Star History + + + + + + Star History Chart + + + +## License + +The theme is available as open source under the terms of the [MIT License](https://github.com/george-gca/multi-language-al-folio/blob/master/LICENSE). + +Originally, **al-folio** was based on the [\*folio theme](https://github.com/bogoli/-folio) (published by [Lia Bogoev](https://liabogoev.com) and under the MIT license). Since then, it got a full re-write of the styles and many additional cool features. diff --git a/_config.yml b/_config.yml index ba339149..001fd90e 100644 --- a/_config.yml +++ b/_config.yml @@ -1,466 +1,466 @@ -# ----------------------------------------------------------------------------- -# Site settings -# ----------------------------------------------------------------------------- - -title: Ziumper # the website title (if blank, full name will be used instead) -first_name: Tomasz -middle_name: -last_name: Komoszeski -email: tomasz.komoszeski@gmail.com -keywords: portfolio-website ziumper software-developer software-engineer game-developer full-stack unity-developer shopware-developer godot-developer unreal-developer frontend-developer backend-developer # add your own keywords or leave empty - -lang: en # the main language of your site (for example: en, fr, cn, ru, etc.) -icon: ⚛️ # the emoji used as the favicon (alternatively, provide image name in /assets/img/) - -url: https://ziumper.github.io # the base hostname & protocol for your site -baseurl: # the subpath of your site, e.g. /blog/. Leave blank for root -last_updated: false # set to true if you want to display last updated in the footer -impressum_path: # set to path to include impressum link in the footer, use the same path as permalink in a page, helps to conform with EU GDPR - -# ----------------------------------------------------------------------------- -# Theme -# ----------------------------------------------------------------------------- - -# repo color theme -repo_theme_light: default # https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md -repo_theme_dark: dark # https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md -repo_trophies: - enabled: true - theme_light: flat # https://github.com/ryo-ma/github-profile-trophy - theme_dark: gitdimmed # https://github.com/ryo-ma/github-profile-trophy - -# ----------------------------------------------------------------------------- -# RSS Feed -# ----------------------------------------------------------------------------- -# will use title and url fields -# Take a look to https://github.com/jekyll/jekyll-feed for more customization - -rss_icon: true - -# ----------------------------------------------------------------------------- -# Layout -# ----------------------------------------------------------------------------- - -navbar_fixed: true -footer_fixed: true - -# Dimensions -max_width: 930px - -# TODO: add layout settings (single page vs. multi-page) - -# ----------------------------------------------------------------------------- -# Open Graph & Schema.org -# ----------------------------------------------------------------------------- -# Display links to the page with a preview object on social media. -# see https://schema.org/docs/faq.html for more information -serve_og_meta: false # Include Open Graph meta tags in the HTML head -serve_schema_org: false # Include Schema.org in the HTML head -og_image: # The site-wide (default for all links) Open Graph preview image - -# ----------------------------------------------------------------------------- -# Social integration -# ----------------------------------------------------------------------------- - -github_username: Ziumper # your GitHub user name -gitlab_username: Ziumper # your GitLab user name -x_username: # your X handle -mastodon_username: # your mastodon instance+username in the format instance.tld/@username -linkedin_username: tomasz-komoszeski-b348a6156 # your LinkedIn user name -telegram_username: # your Telegram user name -scholar_userid: # your Google Scholar ID -semanticscholar_id: # your Semantic Scholar ID -whatsapp_number: # your WhatsApp number (full phone number in international format. Omit any zeroes, brackets, or dashes when adding the phone number in international format.) -orcid_id: # your ORCID ID -medium_username: #Ziumper # your Medium username -quora_username: # your Quora username -publons_id: # your ID on Publons -lattes_id: # your ID on Lattes (Brazilian Lattes CV) -osf_id: # your OSF ID -research_gate_profile: # your profile on ResearchGate -scopus_id: # your profile on Scopus -blogger_url: # your blogger URL -work_url: # work page URL -keybase_username: # your keybase user name -wikidata_id: # your wikidata id -wikipedia_id: # your wikipedia id (Case sensitive) -dblp_url: # your DBLP profile url -stackoverflow_id: #Ziumper # your stackoverflow id -kaggle_id: # your kaggle id -lastfm_id: # your lastfm id -spotify_id: # your spotify id -pinterest_id: # your pinterest id -unsplash_id: # your unsplash id -instagram_id: # your instagram id -facebook_id: # your facebook id -youtube_id: # your youtube channel id (youtube.com/@) -discord_id: # your discord id (18-digit unique numerical identifier) -zotero_username: # your zotero username -wechat_qr: # filename of your wechat qr-code saved as an image (e.g., wechat-qr.png if saved to assets/img/wechat-qr.png) - -# ----------------------------------------------------------------------------- -# Analytics and search engine verification -# ----------------------------------------------------------------------------- - -# For Google Analytics, see https://support.google.com/analytics/answer/10447272?hl=en&ref_topic=14088998&sjid=5129943941510317771-SA#zippy=%2Cgoogle-sites -# and follow the instructions for Google Sites. You will need to create a Google Analytics property and copy the Google tag ID. -google_analytics: # your Google Analytics measurement ID (format: G-XXXXXXXXXX) -cronitor_analytics: # cronitor RUM analytics site ID (format: XXXXXXXXX) - -# For Google Search Console, see https://support.google.com/webmasters/answer/9008080?hl=en#meta_tag_verification&zippy=%2Chtml-tag -google_site_verification: # your google-site-verification ID (Google Search Console) -bing_site_verification: # out your bing-site-verification ID (Bing Webmaster) - -# ----------------------------------------------------------------------------- -# Blog -# ----------------------------------------------------------------------------- - -blog_nav_title: true -permalink: /blog/:year/:title/ - -# Pagination -pagination: - enabled: true - title: ":title - pagination.page :num" - -related_blog_posts: - enabled: true - max_related: 5 - -# Giscus comments (RECOMMENDED) -# Follow instructions on https://giscus.app/ to setup for your repo to fill out the information below. -giscus: - repo: george-gca/multi-language-al-folio # / - repo_id: R_kgDOI6hBvA # leave empty or specify your repo_id (see https://giscus.app/) - category: Comments # name of the category under which discussions will be created - category_id: DIC_kwDOI6hBvM4CYHn3 # leave empty or specify your category_id (see https://giscus.app/) - mapping: title # identify discussions by post title - strict: 1 # use strict identification mode - reactions_enabled: 1 # enable (1) or disable (0) emoji reactions - input_position: bottom # whether to display input form below (bottom) or above (top) the comments - theme: preferred_color_scheme # name of the color scheme (preferred works well with al-folio light/dark mode) - emit_metadata: 0 - -# Disqus comments (DEPRECATED) -disqus_shortname: multi-language-al-folio # put your disqus shortname -# https://help.disqus.com/en/articles/1717111-what-s-a-shortname - -# External sources. -# If you have blog posts published on medium.com or other external sources, -# you can display them in your blog by adding a link to the RSS feed. -#external_sources: -# - name: #medium.com -# rss_url: https://medium.com/@al-folio/feed - -# ----------------------------------------------------------------------------- -# Collections -# ----------------------------------------------------------------------------- - -collections: - news: - defaults: - layout: post - output: true - permalink: /news/:path/ - projects: - output: true - permalink: /projects/:path/ - -announcements: - enabled: true - scrollable: true # adds a vertical scroll bar if there are more than 3 news items - limit: 5 # leave blank to include all the news in the `_news` folder - -latest_posts: - enabled: true - scrollable: true # adds a vertical scroll bar if there are more than 3 new posts items - limit: 3 # leave blank to include all the blog posts - -# ----------------------------------------------------------------------------- -# Jekyll settings -# ----------------------------------------------------------------------------- - -# Markdown and syntax highlight -markdown: kramdown -highlighter: rouge -kramdown: - input: GFM - syntax_highlighter_opts: - css_class: "highlight" - span: - line_numbers: false - block: - line_numbers: false - start_line: 1 - -# Includes & excludes -include: ["_pages"] -exclude: - - bin - - CONTRIBUTING.md - - CUSTOMIZE.md - - docker-compose.yml - - Dockerfile - - FAQ.md - - Gemfile - - Gemfile.lock - - INSTALL.md - - LICENSE - - lighthouse_results - - package.json - - package-lock.json - - purgecss.config.js - - README.md - - vendor -keep_files: - - CNAME - - .nojekyll - -# Plug-ins -plugins: - - jekyll-archives - - jekyll-email-protect - - jekyll-feed - - jekyll-get-json - - jekyll-imagemagick - - jekyll-jupyter-notebook - - jekyll-link-attributes - - jekyll-minifier - - jekyll-multiple-languages-plugin - - jekyll-paginate-v2 -# - jekyll/scholar - - jekyll-sitemap - - jekyll-toc - - jekyll-twitter-plugin - - jemoji - -# Sitemap settings -defaults: - - scope: - path: "assets" - values: - sitemap: false - -sass: - style: compressed - -# multi language settings -default_locale_in_subfolder: false -exclude_from_localizations: ["assets", "archive"] -languages: ["en", "pl"] - -# ----------------------------------------------------------------------------- -# Jekyll Minifier -# ----------------------------------------------------------------------------- - -jekyll-minifier: - exclude: ["robots.txt"] - uglifier_args: - harmony: true - -# ----------------------------------------------------------------------------- -# Jekyll Archives -# ----------------------------------------------------------------------------- - -jekyll-archives: - enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them). - layouts: - year: archive-year - tag: archive-tag - category: archive-category - permalinks: - year: "/blog/:year/" - tag: "/blog/tag/:name/" - category: "/blog/category/:name/" - -display_tags: ["unity", "unreal-engine", "git","game-dev","software-development"] # these tags will be displayed on the front page of your blog -display_categories: ["tutorials","self-development"] # these categories will be displayed on the front page of your blog -# ----------------------------------------------------------------------------- -# Jekyll Scholar -# ----------------------------------------------------------------------------- - -#scholar: -# last_name: [Komoszeski] -# first_name: [Tomasz] -# -# style: apa -# locale: en -# -# source: /_bibliography/ -# bibliography: papers.bib -# bibliography_template: bib - # Note: if you have latex math in your bibtex, the latex filter - # preprocessing may conflict with MathJAX if the latter is enabled. - # See https://github.com/alshedivat/al-folio/issues/357. -# bibtex_filters: [latex, smallcaps, superscript] - -# replace_strings: true -# join_strings: true - -# details_dir: bibliography -# details_link: Details - -# query: "@*" -# group_by: year -# group_order: descending - -# Display different badges withs stats for your publications -#enable_publication_badges: -# altmetric: true # Altmetric badge (https://www.altmetric.com/products/altmetric-badges/) -# dimensions: true # Dimensions badge (https://badge.dimensions.ai/) - -# Filter out certain bibtex entry keywords used internally from the bib output -#filtered_bibtex_keywords: -# [abbr, abstract, altmetric, arxiv, bibtex_show, blog, code, html, pdf, poster, preview, selected, slides, supp, video, website] - -# Maximum number of authors to be shown for each publication (more authors are visible on click) -#max_author_limit: 3 # leave blank to always show all authors -#more_authors_animation_delay: 10 # more authors are revealed on click using animation; smaller delay means faster animation - -# Enables publication thumbnails. If disabled, none of the publications will display thumbnails, even if specified in the bib entry. -#enable_publication_thumbnails: true - -# ----------------------------------------------------------------------------- -# Jekyll Link Attributes -# ----------------------------------------------------------------------------- - -# These are the defaults -external_links: - enabled: true - rel: external nofollow noopener - target: _blank - exclude: - -# ----------------------------------------------------------------------------- -# Responsive WebP Images -# ----------------------------------------------------------------------------- - -# MAKE SURE imagemagick is installed and on your PATH before enabling imagemagick. In a terminal, run: -# convert -version -imagemagick: - enabled: true # enables responsive images for your site (recommended, see https://github.com/alshedivat/al-folio/issues/537) - widths: - - 480 - - 800 - - 1400 - input_directories: - - assets/img/ - input_formats: - - ".jpg" - - ".jpeg" - - ".png" - - ".tiff" - - ".gif" - output_formats: - webp: "-quality 85" - -# ----------------------------------------------------------------------------- -# Optional Features -# ----------------------------------------------------------------------------- - -enable_google_analytics: false # enables google analytics -enable_cronitor_analytics: false # enables cronitor RUM analytics -enable_google_verification: false # enables google site verification -enable_bing_verification: false # enables bing site verification -enable_masonry: true # enables automatic project cards arrangement -enable_math: true # enables math typesetting (uses MathJax) -enable_tooltips: false # enables automatic tooltip links generated for each section titles on pages and posts -enable_darkmode: true # enables switching between light/dark modes -enable_localization: true # enables switching between languages -enable_navbar_social: false # enables displaying social links in the navbar on the about page -enable_project_categories: true # enables categorization of projects into multiple categories -enable_medium_zoom: true # enables image zoom feature (as on medium.com) -enable_progressbar: true # enables a horizontal progress bar linked to the vertical scroll position - -# ----------------------------------------------------------------------------- -# Library versions -# ----------------------------------------------------------------------------- - -bootstrap-table: - version: "1.22.1" -chartjs: - version: "4.4.1" -d3: - version: "7.8.5" - integrity: "sha256-1rA678n2xEx7x4cTZ5x4wpUCj6kUMZEZ5cxLSVSFWxw=" -diff2html: - version: "3.4.47" - integrity: - css: "sha256-IMBK4VNZp0ivwefSn51bswdsrhk0HoMTLc2GqFHFBXg=" - js: "sha256-eU2TVHX633T1o/bTQp6iIJByYJEtZThhF9bKz/DcbbY=" -echarts: - version: "5.4.3" - integrity: - library: "sha256-EVZCmhajjLhgTcxlGMGUBtQiYULZCPjt0uNTFEPFTRk=" - dark_theme: "sha256-UmFIP/4VvOqBDIl2QWl1HBuAJ1XWs/iFZxT5yJRZOKo=" -highlightjs: - version: "11.9.0" - integrity: - css: - light: "sha256-Oppd74ucMR5a5Dq96FxjEzGF7tTw2fZ/6ksAqDCM8GY=" - dark: "sha256-nyCNAiECsdDHrr/s2OQsp5l9XeY2ZJ0rMepjCT2AkBk=" -imagesloaded: - version: "5.0.0" - integrity: "sha256-htrLFfZJ6v5udOG+3kNLINIKh2gvoKqwEhHYfTTMICc=" -img-comparison-slider: - version: "8.0.6" -jquery: - version: "3.6.0" - integrity: "sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" -leaflet: - version: "1.9.4" - integrity: - css: "sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" - js: "sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" -mathjax: - version: "3.2.0" -masonry: - version: "4.2.2" - integrity: "sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=" -mdb: - version: "4.20.0" - integrity: - css: "sha256-jpjYvU3G3N6nrrBwXJoVEYI/0zw8htfFnhT9ljN3JJw=" - js: "sha256-NdbiivsvWt7VYCt6hYNT3h/th9vSTL4EDWeGs5SN3DA=" -medium_zoom: - version: "1.1.0" - integrity: "sha256-ZgMyDAIYDYGxbcpJcfUnYwNevG/xi9OHKaR/8GK+jWc=" -mermaid: - version: "10.7.0" - integrity: "sha256-TtLOdUA8mstPoO6sGvHIGx2ceXrrX4KgIItO06XOn8A=" -swiper: - version: "11.0.5" - integrity: - css: "sha256-yUoNxsvX+Vo8Trj3lZ/Y5ZBf8HlBFsB6Xwm7rH75/9E=" - js: "sha256-BPrwikijIybg9OQC5SYFFqhBjERYOn97tCureFgYH1E=" -vega: - version: "5.27.0" - integrity: "sha256-Yot/cfgMMMpFwkp/5azR20Tfkt24PFqQ6IQS+80HIZs=" -vega-embed: - version: "6.24.0" - integrity: "sha256-FPCJ9JYCC9AZSpvC/t/wHBX7ybueZhIqOMjpWqfl3DU=" -vega-lite: - version: "5.16.3" - integrity: "sha256-TvBvIS5jUN4BSy009usRjNzjI1qRrHPYv7xVLJyjUyw=" - -# ----------------------------------------------------------------------------- -# Get external JSON data -# ----------------------------------------------------------------------------- - -jekyll_get_json: - - data: resume_en - json: assets/json/resume_en.json # it can also be an url - - data: resume_pl - json: assets/json/resume_pl.json # it can also be an url -jsonresume: - - basics - - work - - education - - projects - - volunteer - - awards - - certificates - - skills - - languages - - interests - - references +# ----------------------------------------------------------------------------- +# Site settings +# ----------------------------------------------------------------------------- + +title: Ziumper # the website title (if blank, full name will be used instead) +first_name: Tomasz +middle_name: +last_name: Komoszeski +email: tomasz.komoszeski@gmail.com +keywords: portfolio-website ziumper software-developer software-engineer game-developer full-stack unity-developer shopware-developer godot-developer unreal-developer frontend-developer backend-developer # add your own keywords or leave empty + +lang: en # the main language of your site (for example: en, fr, cn, ru, etc.) +icon: ⚛️ # the emoji used as the favicon (alternatively, provide image name in /assets/img/) + +url: https://ziumper.github.io # the base hostname & protocol for your site +baseurl: # the subpath of your site, e.g. /blog/. Leave blank for root +last_updated: false # set to true if you want to display last updated in the footer +impressum_path: # set to path to include impressum link in the footer, use the same path as permalink in a page, helps to conform with EU GDPR + +# ----------------------------------------------------------------------------- +# Theme +# ----------------------------------------------------------------------------- + +# repo color theme +repo_theme_light: default # https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md +repo_theme_dark: dark # https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md +repo_trophies: + enabled: true + theme_light: flat # https://github.com/ryo-ma/github-profile-trophy + theme_dark: gitdimmed # https://github.com/ryo-ma/github-profile-trophy + +# ----------------------------------------------------------------------------- +# RSS Feed +# ----------------------------------------------------------------------------- +# will use title and url fields +# Take a look to https://github.com/jekyll/jekyll-feed for more customization + +rss_icon: true + +# ----------------------------------------------------------------------------- +# Layout +# ----------------------------------------------------------------------------- + +navbar_fixed: true +footer_fixed: true + +# Dimensions +max_width: 930px + +# TODO: add layout settings (single page vs. multi-page) + +# ----------------------------------------------------------------------------- +# Open Graph & Schema.org +# ----------------------------------------------------------------------------- +# Display links to the page with a preview object on social media. +# see https://schema.org/docs/faq.html for more information +serve_og_meta: false # Include Open Graph meta tags in the HTML head +serve_schema_org: false # Include Schema.org in the HTML head +og_image: # The site-wide (default for all links) Open Graph preview image + +# ----------------------------------------------------------------------------- +# Social integration +# ----------------------------------------------------------------------------- + +github_username: Ziumper # your GitHub user name +gitlab_username: Ziumper # your GitLab user name +x_username: # your X handle +mastodon_username: # your mastodon instance+username in the format instance.tld/@username +linkedin_username: tomasz-komoszeski-b348a6156 # your LinkedIn user name +telegram_username: # your Telegram user name +scholar_userid: # your Google Scholar ID +semanticscholar_id: # your Semantic Scholar ID +whatsapp_number: # your WhatsApp number (full phone number in international format. Omit any zeroes, brackets, or dashes when adding the phone number in international format.) +orcid_id: # your ORCID ID +medium_username: #Ziumper # your Medium username +quora_username: # your Quora username +publons_id: # your ID on Publons +lattes_id: # your ID on Lattes (Brazilian Lattes CV) +osf_id: # your OSF ID +research_gate_profile: # your profile on ResearchGate +scopus_id: # your profile on Scopus +blogger_url: # your blogger URL +work_url: # work page URL +keybase_username: # your keybase user name +wikidata_id: # your wikidata id +wikipedia_id: # your wikipedia id (Case sensitive) +dblp_url: # your DBLP profile url +stackoverflow_id: #Ziumper # your stackoverflow id +kaggle_id: # your kaggle id +lastfm_id: # your lastfm id +spotify_id: # your spotify id +pinterest_id: # your pinterest id +unsplash_id: # your unsplash id +instagram_id: # your instagram id +facebook_id: # your facebook id +youtube_id: # your youtube channel id (youtube.com/@) +discord_id: # your discord id (18-digit unique numerical identifier) +zotero_username: # your zotero username +wechat_qr: # filename of your wechat qr-code saved as an image (e.g., wechat-qr.png if saved to assets/img/wechat-qr.png) + +# ----------------------------------------------------------------------------- +# Analytics and search engine verification +# ----------------------------------------------------------------------------- + +# For Google Analytics, see https://support.google.com/analytics/answer/10447272?hl=en&ref_topic=14088998&sjid=5129943941510317771-SA#zippy=%2Cgoogle-sites +# and follow the instructions for Google Sites. You will need to create a Google Analytics property and copy the Google tag ID. +google_analytics: # your Google Analytics measurement ID (format: G-XXXXXXXXXX) +cronitor_analytics: # cronitor RUM analytics site ID (format: XXXXXXXXX) + +# For Google Search Console, see https://support.google.com/webmasters/answer/9008080?hl=en#meta_tag_verification&zippy=%2Chtml-tag +google_site_verification: # your google-site-verification ID (Google Search Console) +bing_site_verification: # out your bing-site-verification ID (Bing Webmaster) + +# ----------------------------------------------------------------------------- +# Blog +# ----------------------------------------------------------------------------- + +blog_nav_title: true +permalink: /blog/:year/:title/ + +# Pagination +pagination: + enabled: true + title: ":title - pagination.page :num" + +related_blog_posts: + enabled: true + max_related: 5 + +# Giscus comments (RECOMMENDED) +# Follow instructions on https://giscus.app/ to setup for your repo to fill out the information below. +giscus: + repo: george-gca/multi-language-al-folio # / + repo_id: R_kgDOI6hBvA # leave empty or specify your repo_id (see https://giscus.app/) + category: Comments # name of the category under which discussions will be created + category_id: DIC_kwDOI6hBvM4CYHn3 # leave empty or specify your category_id (see https://giscus.app/) + mapping: title # identify discussions by post title + strict: 1 # use strict identification mode + reactions_enabled: 1 # enable (1) or disable (0) emoji reactions + input_position: bottom # whether to display input form below (bottom) or above (top) the comments + theme: preferred_color_scheme # name of the color scheme (preferred works well with al-folio light/dark mode) + emit_metadata: 0 + +# Disqus comments (DEPRECATED) +disqus_shortname: multi-language-al-folio # put your disqus shortname +# https://help.disqus.com/en/articles/1717111-what-s-a-shortname + +# External sources. +# If you have blog posts published on medium.com or other external sources, +# you can display them in your blog by adding a link to the RSS feed. +#external_sources: +# - name: #medium.com +# rss_url: https://medium.com/@al-folio/feed + +# ----------------------------------------------------------------------------- +# Collections +# ----------------------------------------------------------------------------- + +collections: + news: + defaults: + layout: post + output: true + permalink: /news/:path/ + projects: + output: true + permalink: /projects/:path/ + +announcements: + enabled: true + scrollable: true # adds a vertical scroll bar if there are more than 3 news items + limit: 5 # leave blank to include all the news in the `_news` folder + +latest_posts: + enabled: true + scrollable: true # adds a vertical scroll bar if there are more than 3 new posts items + limit: 3 # leave blank to include all the blog posts + +# ----------------------------------------------------------------------------- +# Jekyll settings +# ----------------------------------------------------------------------------- + +# Markdown and syntax highlight +markdown: kramdown +highlighter: rouge +kramdown: + input: GFM + syntax_highlighter_opts: + css_class: "highlight" + span: + line_numbers: false + block: + line_numbers: false + start_line: 1 + +# Includes & excludes +include: ["_pages"] +exclude: + - bin + - CONTRIBUTING.md + - CUSTOMIZE.md + - docker-compose.yml + - Dockerfile + - FAQ.md + - Gemfile + - Gemfile.lock + - INSTALL.md + - LICENSE + - lighthouse_results + - package.json + - package-lock.json + - purgecss.config.js + - README.md + - vendor +keep_files: + - CNAME + - .nojekyll + +# Plug-ins +plugins: + - jekyll-archives + - jekyll-email-protect + - jekyll-feed + - jekyll-get-json + - jekyll-imagemagick + - jekyll-jupyter-notebook + - jekyll-link-attributes + - jekyll-minifier + - jekyll-multiple-languages-plugin + - jekyll-paginate-v2 + # - jekyll/scholar + - jekyll-sitemap + - jekyll-toc + - jekyll-twitter-plugin + - jemoji + +# Sitemap settings +defaults: + - scope: + path: "assets" + values: + sitemap: false + +sass: + style: compressed + +# multi language settings +default_locale_in_subfolder: false +exclude_from_localizations: ["assets", "archive"] +languages: ["en", "pl"] + +# ----------------------------------------------------------------------------- +# Jekyll Minifier +# ----------------------------------------------------------------------------- + +jekyll-minifier: + exclude: ["robots.txt"] + uglifier_args: + harmony: true + +# ----------------------------------------------------------------------------- +# Jekyll Archives +# ----------------------------------------------------------------------------- + +jekyll-archives: + enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them). + layouts: + year: archive-year + tag: archive-tag + category: archive-category + permalinks: + year: "/blog/:year/" + tag: "/blog/tag/:name/" + category: "/blog/category/:name/" + +display_tags: ["unity", "unreal-engine", "git", "game-dev", "software-development"] # these tags will be displayed on the front page of your blog +display_categories: ["tutorials", "self-development"] # these categories will be displayed on the front page of your blog +# ----------------------------------------------------------------------------- +# Jekyll Scholar +# ----------------------------------------------------------------------------- + +#scholar: +# last_name: [Komoszeski] +# first_name: [Tomasz] +# +# style: apa +# locale: en +# +# source: /_bibliography/ +# bibliography: papers.bib +# bibliography_template: bib +# Note: if you have latex math in your bibtex, the latex filter +# preprocessing may conflict with MathJAX if the latter is enabled. +# See https://github.com/alshedivat/al-folio/issues/357. +# bibtex_filters: [latex, smallcaps, superscript] + +# replace_strings: true +# join_strings: true + +# details_dir: bibliography +# details_link: Details + +# query: "@*" +# group_by: year +# group_order: descending + +# Display different badges withs stats for your publications +#enable_publication_badges: +# altmetric: true # Altmetric badge (https://www.altmetric.com/products/altmetric-badges/) +# dimensions: true # Dimensions badge (https://badge.dimensions.ai/) + +# Filter out certain bibtex entry keywords used internally from the bib output +#filtered_bibtex_keywords: +# [abbr, abstract, altmetric, arxiv, bibtex_show, blog, code, html, pdf, poster, preview, selected, slides, supp, video, website] + +# Maximum number of authors to be shown for each publication (more authors are visible on click) +#max_author_limit: 3 # leave blank to always show all authors +#more_authors_animation_delay: 10 # more authors are revealed on click using animation; smaller delay means faster animation + +# Enables publication thumbnails. If disabled, none of the publications will display thumbnails, even if specified in the bib entry. +#enable_publication_thumbnails: true + +# ----------------------------------------------------------------------------- +# Jekyll Link Attributes +# ----------------------------------------------------------------------------- + +# These are the defaults +external_links: + enabled: true + rel: external nofollow noopener + target: _blank + exclude: + +# ----------------------------------------------------------------------------- +# Responsive WebP Images +# ----------------------------------------------------------------------------- + +# MAKE SURE imagemagick is installed and on your PATH before enabling imagemagick. In a terminal, run: +# convert -version +imagemagick: + enabled: true # enables responsive images for your site (recommended, see https://github.com/alshedivat/al-folio/issues/537) + widths: + - 480 + - 800 + - 1400 + input_directories: + - assets/img/ + input_formats: + - ".jpg" + - ".jpeg" + - ".png" + - ".tiff" + - ".gif" + output_formats: + webp: "-quality 85" + +# ----------------------------------------------------------------------------- +# Optional Features +# ----------------------------------------------------------------------------- + +enable_google_analytics: false # enables google analytics +enable_cronitor_analytics: false # enables cronitor RUM analytics +enable_google_verification: false # enables google site verification +enable_bing_verification: false # enables bing site verification +enable_masonry: true # enables automatic project cards arrangement +enable_math: true # enables math typesetting (uses MathJax) +enable_tooltips: false # enables automatic tooltip links generated for each section titles on pages and posts +enable_darkmode: true # enables switching between light/dark modes +enable_localization: true # enables switching between languages +enable_navbar_social: false # enables displaying social links in the navbar on the about page +enable_project_categories: true # enables categorization of projects into multiple categories +enable_medium_zoom: true # enables image zoom feature (as on medium.com) +enable_progressbar: true # enables a horizontal progress bar linked to the vertical scroll position + +# ----------------------------------------------------------------------------- +# Library versions +# ----------------------------------------------------------------------------- + +bootstrap-table: + version: "1.22.1" +chartjs: + version: "4.4.1" +d3: + version: "7.8.5" + integrity: "sha256-1rA678n2xEx7x4cTZ5x4wpUCj6kUMZEZ5cxLSVSFWxw=" +diff2html: + version: "3.4.47" + integrity: + css: "sha256-IMBK4VNZp0ivwefSn51bswdsrhk0HoMTLc2GqFHFBXg=" + js: "sha256-eU2TVHX633T1o/bTQp6iIJByYJEtZThhF9bKz/DcbbY=" +echarts: + version: "5.4.3" + integrity: + library: "sha256-EVZCmhajjLhgTcxlGMGUBtQiYULZCPjt0uNTFEPFTRk=" + dark_theme: "sha256-UmFIP/4VvOqBDIl2QWl1HBuAJ1XWs/iFZxT5yJRZOKo=" +highlightjs: + version: "11.9.0" + integrity: + css: + light: "sha256-Oppd74ucMR5a5Dq96FxjEzGF7tTw2fZ/6ksAqDCM8GY=" + dark: "sha256-nyCNAiECsdDHrr/s2OQsp5l9XeY2ZJ0rMepjCT2AkBk=" +imagesloaded: + version: "5.0.0" + integrity: "sha256-htrLFfZJ6v5udOG+3kNLINIKh2gvoKqwEhHYfTTMICc=" +img-comparison-slider: + version: "8.0.6" +jquery: + version: "3.6.0" + integrity: "sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" +leaflet: + version: "1.9.4" + integrity: + css: "sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" + js: "sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" +mathjax: + version: "3.2.0" +masonry: + version: "4.2.2" + integrity: "sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=" +mdb: + version: "4.20.0" + integrity: + css: "sha256-jpjYvU3G3N6nrrBwXJoVEYI/0zw8htfFnhT9ljN3JJw=" + js: "sha256-NdbiivsvWt7VYCt6hYNT3h/th9vSTL4EDWeGs5SN3DA=" +medium_zoom: + version: "1.1.0" + integrity: "sha256-ZgMyDAIYDYGxbcpJcfUnYwNevG/xi9OHKaR/8GK+jWc=" +mermaid: + version: "10.7.0" + integrity: "sha256-TtLOdUA8mstPoO6sGvHIGx2ceXrrX4KgIItO06XOn8A=" +swiper: + version: "11.0.5" + integrity: + css: "sha256-yUoNxsvX+Vo8Trj3lZ/Y5ZBf8HlBFsB6Xwm7rH75/9E=" + js: "sha256-BPrwikijIybg9OQC5SYFFqhBjERYOn97tCureFgYH1E=" +vega: + version: "5.27.0" + integrity: "sha256-Yot/cfgMMMpFwkp/5azR20Tfkt24PFqQ6IQS+80HIZs=" +vega-embed: + version: "6.24.0" + integrity: "sha256-FPCJ9JYCC9AZSpvC/t/wHBX7ybueZhIqOMjpWqfl3DU=" +vega-lite: + version: "5.16.3" + integrity: "sha256-TvBvIS5jUN4BSy009usRjNzjI1qRrHPYv7xVLJyjUyw=" + +# ----------------------------------------------------------------------------- +# Get external JSON data +# ----------------------------------------------------------------------------- + +jekyll_get_json: + - data: resume_en + json: assets/json/resume_en.json # it can also be an url + - data: resume_pl + json: assets/json/resume_pl.json # it can also be an url +jsonresume: + - basics + - work + - education + - projects + - volunteer + - awards + - certificates + - skills + - languages + - interests + - references diff --git a/_data/coauthors.yml b/_data/coauthors.yml index 27c0f2cc..5a989cf0 100644 --- a/_data/coauthors.yml +++ b/_data/coauthors.yml @@ -1,34 +1,34 @@ -"adams": - - firstname: ["Edwin", "E.", "E. P.", "Edwin Plimpton"] - url: https://en.wikipedia.org/wiki/Edwin_Plimpton_Adams - -"podolsky": - - firstname: ["Boris", "B.", "B. Y.", "Boris Yakovlevich"] - url: https://en.wikipedia.org/wiki/Boris_Podolsky - -"rosen": - - firstname: ["Nathan", "N."] - url: https://en.wikipedia.org/wiki/Nathan_Rosen - -"bach": - - firstname: ["Johann Sebastian", "J. S."] - url: https://en.wikipedia.org/wiki/Johann_Sebastian_Bach - - - firstname: ["Carl Philipp Emanuel", "C. P. E."] - url: https://en.wikipedia.org/wiki/Carl_Philipp_Emanuel_Bach - -"przibram": - - firstname: ["Karl"] - url: https://link.springer.com/article/10.1007/s00016-019-00242-z - -"schrodinger": - - firstname: ["Erwin"] - url: https://en.wikipedia.org/wiki/Erwin_Schr%C3%B6dinger - -"lorentz": - - firstname: ["Hendrik Antoon"] - url: https://en.wikipedia.org/wiki/Hendrik_Lorentz - -"planck": - - firstname: ["Max"] - url: https://en.wikipedia.org/wiki/Max_Planck +"adams": + - firstname: ["Edwin", "E.", "E. P.", "Edwin Plimpton"] + url: https://en.wikipedia.org/wiki/Edwin_Plimpton_Adams + +"podolsky": + - firstname: ["Boris", "B.", "B. Y.", "Boris Yakovlevich"] + url: https://en.wikipedia.org/wiki/Boris_Podolsky + +"rosen": + - firstname: ["Nathan", "N."] + url: https://en.wikipedia.org/wiki/Nathan_Rosen + +"bach": + - firstname: ["Johann Sebastian", "J. S."] + url: https://en.wikipedia.org/wiki/Johann_Sebastian_Bach + + - firstname: ["Carl Philipp Emanuel", "C. P. E."] + url: https://en.wikipedia.org/wiki/Carl_Philipp_Emanuel_Bach + +"przibram": + - firstname: ["Karl"] + url: https://link.springer.com/article/10.1007/s00016-019-00242-z + +"schrodinger": + - firstname: ["Erwin"] + url: https://en.wikipedia.org/wiki/Erwin_Schr%C3%B6dinger + +"lorentz": + - firstname: ["Hendrik Antoon"] + url: https://en.wikipedia.org/wiki/Hendrik_Lorentz + +"planck": + - firstname: ["Max"] + url: https://en.wikipedia.org/wiki/Max_Planck diff --git a/_data/en/cv.yml b/_data/en/cv.yml index 641924c6..7de2d169 100644 --- a/_data/en/cv.yml +++ b/_data/en/cv.yml @@ -1,173 +1,173 @@ -- title: Basic Information - type: map - contents: - - name: Full Name - value: Tomasz Komoszeski - - name: Date of Birth - value: 5th May 1992 - - name: Languages - value: Polish (Native), English (C1) - -- title: Experience - type: time_table - contents: - - title: PHP Software Developer - institution: SUNZINET Polska Sp. z o.o., Gdańsk, Poland - year: 2019 - Feb 2024 - description: - - title: Responsibilities - contents: - - Designing, coding, and developing e-commerce web applications using Shopware 5 and 6 technologies - - Requirements analysis and proposing solutions based on them - - Implementing subsequent software versions and add-ons providing functionalities - - Testing, debugging, and maintaining e-commerce applications and their development - - Integrating e-commerce application communication with ERP systems, CMS, etc. - - Working and communicating in an international, multilingual team - - Migrating online stores to the Shopware 6 platform - - title: Projects - contents: - - Boesner - - Fliesen Discount - - Leguano - - Axion - - - title: Unity Developer - institution: Farmind Studio Sp. z o.o., Warsaw, Poland - year: 2020 - Jan 2023 - description: - - title: Responsibilities - contents: - - Integrating existing, purchased, and creating new tools with C# and .NET for editing game content in the Unity engine - - Designing and integrating mechanics in developed games - - Technical mentoring, code reviews - - Fixing bugs, optimizing, and profiling in the Unity engine - - title: Projects - contents: - - PolyGangs - - Ludo Game - - NightCatcher - - title: PHP Software developer - institution: Meteoryt Sp. z o.o., Szczytno, Poland - year: 2018 - 2019 - description: - - title: Responsibilities - contents: - - Designing, coding, and developing e-commerce web applications using PHP, Smarty, MySQL, XML, CSS, and HTML - - Assisting in restructuring and maintaining the desktop application Asystent and its analogous cloud version - - title: Projects - contents: - - Hej Wakacje! - - Wypożyczalnia - - Asystent - - title: .NET Software developer - institution: Billennium S.A., Olsztyn, Poland - year: 2017 - 2018 - description: - - title: Responsibilities - contents: - - Designing, coding, and developing web applications using ASP.NET, REST, C#, MVC, Angular, JavaScript, TypeScript, CSS, and HTML - - Fixing bugs, testing, maintaining, and debugging existing applications - - Working and communicating in an international, multilingual team - - Conducting and participating in code reviews - - title: Projects - contents: - - Bookstore Recruitment Project - -- title: Education - type: time_table - contents: - - title: M.Sc. in Computer Science - institution: Gdańsk University of Technology, Gdańsk, Poland - year: 2021 - 2023 - description: - - title: Specialization - contents: - - Application of Information Technologies - - title: Type of Studies - contents: - - Part-time Studies - - title: Thesis Title - contents: - - Comparison of Unity and Unreal Engine for Developing Augmented Reality Applications on Android Platform - - title: B.Sc. in Computer Science - institution: University of Warmia and Mazury, Olsztyn, Poland - year: 2013 - 2017 - description: - - title: Specialization - contents: - - General Computer Science - - title: Type of Studies - contents: - - Full-time Studies - - title: Thesis Title - contents: - - Implementation of LZSS Algorithm - - title: IT Technician - institution: Complex of Vocational Schools No. 1 named after Stanisław Staszic, Szczytno, Poland - year: 2008 - 2012 - -- title: Skills - type: nested_list - contents: - - title: Personality Traits - items: - - Teamwork and interpersonal skills - - Creative problem-solving and critical thinking - - Adaptability and flexibility - - Effective communication and articulation - - Empathy and user-oriented approach - - Time management and priority setting - - Continuous learning and curiosity - - Attention to detail and precision - - Stress management - - Leadership and mentoring abilities - - Maintaining work-life balance - - title: Programming - items: - - AGILE, SCRUM, Kanban - - OOP, YAGNI, SOLID, DRY, DI, CI/CD, REST/SOAP, ORM, RWD - - C#, C++, PHP, Java, JavaScript, TypeScript, Python - - GIT, SVN - - CSS, HTML, LESS, SASS - - MySQL, MSSQL, Doctrine, Entity Framework, Hibernate, SQLite - - ImGui, ImPlot, OpenXLSX - - Google Tests, NUnit, Moq - - Angular, Vue.js, JQuery, ExtJs, Node.js - - Visual Studio, VSCode, Android Studio, PHPStorm, Vim - - .NET, LINQ, .NET Core, WPF, Windows Forms, AvaloniaUI - - Maven, Composer, Nuget, CMake - - Apache, Elastic Search, Redis, Varnish - - Shopware, Symfony, Twig, Smarty, PSH - - Docker, Vagrant, Oracle VirtualBox, Puppet - - Nftables - - Linux, Windows, Mac - - Bash, Powershell - - UML, Enterprise Architect - - title: Game Development - items: - - Unity, Unreal Engine, Godot - - Gimp, Photoshop, Blender - - Unreal Engine C++ API and Profiler - - Blueprint, Visual Scripting - - AR, VR, ARCore - - Knowledge of computer graphics and rendering techniques - - Network programming in multiplayer games - -- title: Certificates and Training - type: time_table - contents: - - year: 2023 - items: - - Internet Advertising Training, Inspire Consulting - - Marketing and Brand Building Training, Inspire Consulting - - year: 2019 - items: - - Vue.js Course, typeofweb - - year: 2010 - items: - - ECDL, European Computer Driving Licence - -- title: Interests - type: list - contents: - - Playing guitar, reading good books, computer games, and traveling. +- title: Basic Information + type: map + contents: + - name: Full Name + value: Tomasz Komoszeski + - name: Date of Birth + value: 5th May 1992 + - name: Languages + value: Polish (Native), English (C1) + +- title: Experience + type: time_table + contents: + - title: PHP Software Developer + institution: SUNZINET Polska Sp. z o.o., Gdańsk, Poland + year: 2019 - Feb 2024 + description: + - title: Responsibilities + contents: + - Designing, coding, and developing e-commerce web applications using Shopware 5 and 6 technologies + - Requirements analysis and proposing solutions based on them + - Implementing subsequent software versions and add-ons providing functionalities + - Testing, debugging, and maintaining e-commerce applications and their development + - Integrating e-commerce application communication with ERP systems, CMS, etc. + - Working and communicating in an international, multilingual team + - Migrating online stores to the Shopware 6 platform + - title: Projects + contents: + - Boesner + - Fliesen Discount + - Leguano + - Axion + + - title: Unity Developer + institution: Farmind Studio Sp. z o.o., Warsaw, Poland + year: 2020 - Jan 2023 + description: + - title: Responsibilities + contents: + - Integrating existing, purchased, and creating new tools with C# and .NET for editing game content in the Unity engine + - Designing and integrating mechanics in developed games + - Technical mentoring, code reviews + - Fixing bugs, optimizing, and profiling in the Unity engine + - title: Projects + contents: + - PolyGangs + - Ludo Game + - NightCatcher + - title: PHP Software developer + institution: Meteoryt Sp. z o.o., Szczytno, Poland + year: 2018 - 2019 + description: + - title: Responsibilities + contents: + - Designing, coding, and developing e-commerce web applications using PHP, Smarty, MySQL, XML, CSS, and HTML + - Assisting in restructuring and maintaining the desktop application Asystent and its analogous cloud version + - title: Projects + contents: + - Hej Wakacje! + - Wypożyczalnia + - Asystent + - title: .NET Software developer + institution: Billennium S.A., Olsztyn, Poland + year: 2017 - 2018 + description: + - title: Responsibilities + contents: + - Designing, coding, and developing web applications using ASP.NET, REST, C#, MVC, Angular, JavaScript, TypeScript, CSS, and HTML + - Fixing bugs, testing, maintaining, and debugging existing applications + - Working and communicating in an international, multilingual team + - Conducting and participating in code reviews + - title: Projects + contents: + - Bookstore Recruitment Project + +- title: Education + type: time_table + contents: + - title: M.Sc. in Computer Science + institution: Gdańsk University of Technology, Gdańsk, Poland + year: 2021 - 2023 + description: + - title: Specialization + contents: + - Application of Information Technologies + - title: Type of Studies + contents: + - Part-time Studies + - title: Thesis Title + contents: + - Comparison of Unity and Unreal Engine for Developing Augmented Reality Applications on Android Platform + - title: B.Sc. in Computer Science + institution: University of Warmia and Mazury, Olsztyn, Poland + year: 2013 - 2017 + description: + - title: Specialization + contents: + - General Computer Science + - title: Type of Studies + contents: + - Full-time Studies + - title: Thesis Title + contents: + - Implementation of LZSS Algorithm + - title: IT Technician + institution: Complex of Vocational Schools No. 1 named after Stanisław Staszic, Szczytno, Poland + year: 2008 - 2012 + +- title: Skills + type: nested_list + contents: + - title: Personality Traits + items: + - Teamwork and interpersonal skills + - Creative problem-solving and critical thinking + - Adaptability and flexibility + - Effective communication and articulation + - Empathy and user-oriented approach + - Time management and priority setting + - Continuous learning and curiosity + - Attention to detail and precision + - Stress management + - Leadership and mentoring abilities + - Maintaining work-life balance + - title: Programming + items: + - AGILE, SCRUM, Kanban + - OOP, YAGNI, SOLID, DRY, DI, CI/CD, REST/SOAP, ORM, RWD + - C#, C++, PHP, Java, JavaScript, TypeScript, Python + - GIT, SVN + - CSS, HTML, LESS, SASS + - MySQL, MSSQL, Doctrine, Entity Framework, Hibernate, SQLite + - ImGui, ImPlot, OpenXLSX + - Google Tests, NUnit, Moq + - Angular, Vue.js, JQuery, ExtJs, Node.js + - Visual Studio, VSCode, Android Studio, PHPStorm, Vim + - .NET, LINQ, .NET Core, WPF, Windows Forms, AvaloniaUI + - Maven, Composer, Nuget, CMake + - Apache, Elastic Search, Redis, Varnish + - Shopware, Symfony, Twig, Smarty, PSH + - Docker, Vagrant, Oracle VirtualBox, Puppet + - Nftables + - Linux, Windows, Mac + - Bash, Powershell + - UML, Enterprise Architect + - title: Game Development + items: + - Unity, Unreal Engine, Godot + - Gimp, Photoshop, Blender + - Unreal Engine C++ API and Profiler + - Blueprint, Visual Scripting + - AR, VR, ARCore + - Knowledge of computer graphics and rendering techniques + - Network programming in multiplayer games + +- title: Certificates and Training + type: time_table + contents: + - year: 2023 + items: + - Internet Advertising Training, Inspire Consulting + - Marketing and Brand Building Training, Inspire Consulting + - year: 2019 + items: + - Vue.js Course, typeofweb + - year: 2010 + items: + - ECDL, European Computer Driving Licence + +- title: Interests + type: list + contents: + - Playing guitar, reading good books, computer games, and traveling. diff --git a/_data/pl/cv.yml b/_data/pl/cv.yml index f4cf8aa8..51745567 100644 --- a/_data/pl/cv.yml +++ b/_data/pl/cv.yml @@ -1,177 +1,174 @@ -- title: Podstawowe informacje - type: map - contents: - - name: Imię i nazwisko - value: Tomasz Komoszeski - - name: Data urodzenia - value: 5 Maj 1992 - - name: Języki - value: Polski (Natywny), Angielski (C1) - -- title: Doświadczenie - type: time_table - contents: - - title: Programista PHP - institution: SUNZINET Polska Sp. z o.o., Gdańsk, Polska - year: 2019 - lut 2024 - description: - - title: Obowiązki - contents: - - Projektowanie, kodowanie i tworzenie aplikacji internetowych e-commerce z wykorzystaniem technologii Shopware 5 i 6 - - Analiza wymagań i proponowanie rozwiązań na ich podstawie - - Wdrażanie kolejnych wersji oprogramowania i dodatków udostępniających funkcjonalności - - Testowanie, debugowanie i utrzymywanie aplikacji e-commerce oraz ich rozwój - - Integracja komunikacji aplikacji e-commerce z systemami ERP, CMS itp. - - Praca i komunikacja w międzynarodowym, wielojęzycznym zespole - - Migracja sklepów internetowych na platformę Shopware 6 - - title: Projekty - contents: - - Boesner - - Fliesen Discount - - Leguano - - Axion - - - title: Programista Unity - institution: Farmind Studio Sp. z o.o., Warszawa, Polska - year: 2020 - 2023 - description: - - title: Obowiązki - contents: - - Integracja istniejących, zakupionych i tworzenie nowych narzędzi przy pomocy C# i .NET do edycji zawartości gier w silniku Unity - - Projektowanie i integracja mechanik w tworzonych grach - - Mentoring techniczny, przeprowadzanie przeglądów kodu - - Naprawa błędów, optymalizacja i profilowanie w silniku Unity - - title: Projekty - contents: - - PolyGangs - - Ludo Game - - NightCatcher - - - title: Programista PHP - institution: Meteoryt Sp. z o.o., Szczytno, Polska - year: 2018 - 2019 - description: - - title: Obowiązki - contents: - - Projektowanie, kodowanie i tworzenie aplikacji internetowych e-commerce z wykorzystaniem PHP, Smarty, MySQL, XML, CSS i HTML - - Pomoc w restuktaryzacji i utrzymaniu aplikacji desktopowej Asystent oraz analogicznej wersji chmurowej - - title: Projekty - contents: - - Hej Wakacje! - - Wypożyczalnia - - Asystent - - title: Programista .NET - institution: Billennium S.A., Olsztyn, Polska - year: 2017 - 2018 - description: - - title: Obowiązki - contents: - - Projektowanie, kodowanie i tworzenie aplikacji internetowych z wykorzystaniem ASP.NET, REST, C#, MVC, Angular, JavaScript i TypeScript, CSS i HTML - - Naprawa błędów, testowanie, utrzymywanie i debugowanie istniejących aplikacji - - Praca i komunikacja w międzynarodowym, wielojęzycznym zespole - - Przeprowadzanie i uczestniczenie w przeglądach kodu - - title: Projekty - contents: - - Projekt rekrutacyjny Księgarnia - -- title: Edukacja - type: time_table - contents: - - title: Mgr. inż. Informatyka - institution: Politechnika Gdańska, Gdańsk, Polska - year: 2021 - 2023 - description: - - title: Specjalność - contents: - - Zastosowanie Technologii informacyjnych - - title: Rodzaj studiów - contents: - - Studia niestacjonarne - - title: Tytuł pracy dyplomowej - contents: - - Porównanie silników Unity oraz Unreal Engine do wytwarzania aplikacji rozszerzonej rzeczywistości na platformę Android - - title: Inż. Informatyka - institution: Uniwersytet Warmińsko-Mazurski, Olsztyn, Polska - year: 2013 - 2017 - description: - - title: Specjalność - contents: - - Informatyka Ogólna - - title: Rodzaj studiów - contents: - - Studia stacjonarne - - title: Tytuł pracy dyplomowej - contents: - - Implementacja algorytmu LZSS - - title: Technik Informatyk - institution: Zespół Szkółw Zawodowych nr 1 im. Stanisława Staszica, Szczytno, Polska - year: 2008 - 2012 - - - -- title: Umiejętności - type: nested_list - contents: - - title: Cechy charakteru - items: - - Umiejętność pracy w zespole i umiejętności interpersonalne - - Kreatywne rozwiązywanie problemów i krytyczne myślenie - - Zdolność adaptacji i elastyczność - - Skuteczna komunikacja i artykulacja - - Empatia i nastawienie zorientowane na użytkownika - - Zarządzanie czasem i ustalanie priorytetów - - Ciągła nauka i ciekawość - - Dbałość o szczegóły i precyzja - - Radzenie sobie ze stresem - - Zdolności przywódcze i mentorskie - - Utrzymywanie równowangi pomiędzy pracą a życiem osobistym - - title: Programowanie - items: - - AGILE, SCRUM, Kanban - - OOP, YAGNI, SOLID, DRY, DI, CI/CD, REST/SOAP, ORM, RWD - - C#, C++, PHP, Java, JavaScript, TypeScript, Python - - GIT, SVN - - CSS, HTML, LESS, SASS - - MySQL, MSSQL, Doctrine, Entity Framework, Hibernate, SQLite - - ImGui, ImPlot, OpenXLSX - - Google Tests, NUnit, Moq - - Angular, Vue.js, JQuery, ExtJs, Node.js - - Visual Studio, VSCode, Android Studio, PHPStorm, Vim - - .NET, LINQ, ASP.NET Core, WPF, Windows Forms, AvaloniaUI, .NET - - Maven, Composer, Nuget, CMake - - Apache, Elastic Search, Redis, Varnish - - Shopware, Symfony, Twig, Smarty, PSH - - Docker, Vagrant, Oracle VirtualBox, Puppet - - Nftables - - Linux, Windows, Mac - - Bash, Powershell - - UML, Enterprise Architect - - title: Game-dev - items: - - Unity, Unreal Engine,, Godot - - Gimp, Photoshop, Blender - - Unreal Engine C++ API i Profiler - - Blueprint, Visual Scripting - - AR, VR, ARCore - - Znajomość grafiki komputerowej i technik renderingu - - Programowanie sieciowe w grach wieloosobowych - -- title: Certyfikaty i szkolenia - type: time_table - contents: - - year: 2023 - items: - - Szkolenie z reklamy w internecie, Inspire Consulting - - Szkolenie w zakresie marketingu i budowania marki, Inspire Consulting - - year: 2019 - items: - - Kurs Vue.js, typeofweb - - year: 2010 - items: - - ECDL, European Computer Driving Licence - -- title: Zainteresowania - type: list - contents: - - Gra na gitarze, dobra książka, gry komputerowe oraz podróże. - +- title: Podstawowe informacje + type: map + contents: + - name: Imię i nazwisko + value: Tomasz Komoszeski + - name: Data urodzenia + value: 5 Maj 1992 + - name: Języki + value: Polski (Natywny), Angielski (C1) + +- title: Doświadczenie + type: time_table + contents: + - title: Programista PHP + institution: SUNZINET Polska Sp. z o.o., Gdańsk, Polska + year: 2019 - lut 2024 + description: + - title: Obowiązki + contents: + - Projektowanie, kodowanie i tworzenie aplikacji internetowych e-commerce z wykorzystaniem technologii Shopware 5 i 6 + - Analiza wymagań i proponowanie rozwiązań na ich podstawie + - Wdrażanie kolejnych wersji oprogramowania i dodatków udostępniających funkcjonalności + - Testowanie, debugowanie i utrzymywanie aplikacji e-commerce oraz ich rozwój + - Integracja komunikacji aplikacji e-commerce z systemami ERP, CMS itp. + - Praca i komunikacja w międzynarodowym, wielojęzycznym zespole + - Migracja sklepów internetowych na platformę Shopware 6 + - title: Projekty + contents: + - Boesner + - Fliesen Discount + - Leguano + - Axion + + - title: Programista Unity + institution: Farmind Studio Sp. z o.o., Warszawa, Polska + year: 2020 - 2023 + description: + - title: Obowiązki + contents: + - Integracja istniejących, zakupionych i tworzenie nowych narzędzi przy pomocy C# i .NET do edycji zawartości gier w silniku Unity + - Projektowanie i integracja mechanik w tworzonych grach + - Mentoring techniczny, przeprowadzanie przeglądów kodu + - Naprawa błędów, optymalizacja i profilowanie w silniku Unity + - title: Projekty + contents: + - PolyGangs + - Ludo Game + - NightCatcher + + - title: Programista PHP + institution: Meteoryt Sp. z o.o., Szczytno, Polska + year: 2018 - 2019 + description: + - title: Obowiązki + contents: + - Projektowanie, kodowanie i tworzenie aplikacji internetowych e-commerce z wykorzystaniem PHP, Smarty, MySQL, XML, CSS i HTML + - Pomoc w restuktaryzacji i utrzymaniu aplikacji desktopowej Asystent oraz analogicznej wersji chmurowej + - title: Projekty + contents: + - Hej Wakacje! + - Wypożyczalnia + - Asystent + - title: Programista .NET + institution: Billennium S.A., Olsztyn, Polska + year: 2017 - 2018 + description: + - title: Obowiązki + contents: + - Projektowanie, kodowanie i tworzenie aplikacji internetowych z wykorzystaniem ASP.NET, REST, C#, MVC, Angular, JavaScript i TypeScript, CSS i HTML + - Naprawa błędów, testowanie, utrzymywanie i debugowanie istniejących aplikacji + - Praca i komunikacja w międzynarodowym, wielojęzycznym zespole + - Przeprowadzanie i uczestniczenie w przeglądach kodu + - title: Projekty + contents: + - Projekt rekrutacyjny Księgarnia + +- title: Edukacja + type: time_table + contents: + - title: Mgr. inż. Informatyka + institution: Politechnika Gdańska, Gdańsk, Polska + year: 2021 - 2023 + description: + - title: Specjalność + contents: + - Zastosowanie Technologii informacyjnych + - title: Rodzaj studiów + contents: + - Studia niestacjonarne + - title: Tytuł pracy dyplomowej + contents: + - Porównanie silników Unity oraz Unreal Engine do wytwarzania aplikacji rozszerzonej rzeczywistości na platformę Android + - title: Inż. Informatyka + institution: Uniwersytet Warmińsko-Mazurski, Olsztyn, Polska + year: 2013 - 2017 + description: + - title: Specjalność + contents: + - Informatyka Ogólna + - title: Rodzaj studiów + contents: + - Studia stacjonarne + - title: Tytuł pracy dyplomowej + contents: + - Implementacja algorytmu LZSS + - title: Technik Informatyk + institution: Zespół Szkółw Zawodowych nr 1 im. Stanisława Staszica, Szczytno, Polska + year: 2008 - 2012 + +- title: Umiejętności + type: nested_list + contents: + - title: Cechy charakteru + items: + - Umiejętność pracy w zespole i umiejętności interpersonalne + - Kreatywne rozwiązywanie problemów i krytyczne myślenie + - Zdolność adaptacji i elastyczność + - Skuteczna komunikacja i artykulacja + - Empatia i nastawienie zorientowane na użytkownika + - Zarządzanie czasem i ustalanie priorytetów + - Ciągła nauka i ciekawość + - Dbałość o szczegóły i precyzja + - Radzenie sobie ze stresem + - Zdolności przywódcze i mentorskie + - Utrzymywanie równowangi pomiędzy pracą a życiem osobistym + - title: Programowanie + items: + - AGILE, SCRUM, Kanban + - OOP, YAGNI, SOLID, DRY, DI, CI/CD, REST/SOAP, ORM, RWD + - C#, C++, PHP, Java, JavaScript, TypeScript, Python + - GIT, SVN + - CSS, HTML, LESS, SASS + - MySQL, MSSQL, Doctrine, Entity Framework, Hibernate, SQLite + - ImGui, ImPlot, OpenXLSX + - Google Tests, NUnit, Moq + - Angular, Vue.js, JQuery, ExtJs, Node.js + - Visual Studio, VSCode, Android Studio, PHPStorm, Vim + - .NET, LINQ, ASP.NET Core, WPF, Windows Forms, AvaloniaUI, .NET + - Maven, Composer, Nuget, CMake + - Apache, Elastic Search, Redis, Varnish + - Shopware, Symfony, Twig, Smarty, PSH + - Docker, Vagrant, Oracle VirtualBox, Puppet + - Nftables + - Linux, Windows, Mac + - Bash, Powershell + - UML, Enterprise Architect + - title: Game-dev + items: + - Unity, Unreal Engine,, Godot + - Gimp, Photoshop, Blender + - Unreal Engine C++ API i Profiler + - Blueprint, Visual Scripting + - AR, VR, ARCore + - Znajomość grafiki komputerowej i technik renderingu + - Programowanie sieciowe w grach wieloosobowych + +- title: Certyfikaty i szkolenia + type: time_table + contents: + - year: 2023 + items: + - Szkolenie z reklamy w internecie, Inspire Consulting + - Szkolenie w zakresie marketingu i budowania marki, Inspire Consulting + - year: 2019 + items: + - Kurs Vue.js, typeofweb + - year: 2010 + items: + - ECDL, European Computer Driving Licence + +- title: Zainteresowania + type: list + contents: + - Gra na gitarze, dobra książka, gry komputerowe oraz podróże. diff --git a/_data/repositories.yml b/_data/repositories.yml index 4fe538b9..a2d7894c 100644 --- a/_data/repositories.yml +++ b/_data/repositories.yml @@ -1,12 +1,12 @@ -github_users: - - ziumper - -github_repos: - - Ziumper/connect-the-pops-clone - - Ziumper/File-Upload - - Ziumper/CrafterTheGame - - Ziumper/HelloCMakeProject - - Ziumper/Unity-TDD-Template - - Ziumper/AgentsApp - - Ziumper/ToDoApp - - Ziumper/WebCloudSystem \ No newline at end of file +github_users: + - ziumper + +github_repos: + - Ziumper/connect-the-pops-clone + - Ziumper/File-Upload + - Ziumper/CrafterTheGame + - Ziumper/HelloCMakeProject + - Ziumper/Unity-TDD-Template + - Ziumper/AgentsApp + - Ziumper/ToDoApp + - Ziumper/WebCloudSystem diff --git a/_data/venues.yml b/_data/venues.yml index 3e35b496..6c16ad5d 100644 --- a/_data/venues.yml +++ b/_data/venues.yml @@ -1,6 +1,6 @@ -"AJP": - url: https://aapt.scitation.org/journal/ajp - color: "#00369f" - -"PhysRev": - url: https://journals.aps.org/ +"AJP": + url: https://aapt.scitation.org/journal/ajp + color: "#00369f" + +"PhysRev": + url: https://journals.aps.org/ diff --git a/_i18n/en.yml b/_i18n/en.yml index 6307e44a..b7e06f6a 100644 --- a/_i18n/en.yml +++ b/_i18n/en.yml @@ -1,185 +1,185 @@ -not_found: - message: You will be redirected to the main page within 3 seconds. If not redirected, please go back to the - main_page: home page -main: - contact_note: You contact me directly via email tomasz.komoszeski@gmail.com or via linkedin chat. - footer_text: > # the ">" symbol means to ignore newlines until "titles:" - Powered by Jekyll with multi-language-al-folio theme. - Hosted by GitHub Pages. - Photos from Unsplash. - more_info: > -

Software engineer

-

Tomasz Komoszeski,

-

Poland

- subtitle: Software engineer and aspiring game developer -titles: - about: about - blog: blog - cv: cv - latest_posts: latest posts - news: news - profiles: people - projects: projects - publications: publications - repositories: repositories - selected_publications: selected publications - teaching: teaching - submenus: submenus - unk: page not found -descriptions: - about: Ziumper software developer portfolio. - archive-category: an archive of posts in this category - archive-tag: an archive of posts with this tag - archive-year: an archive of posts from this year - blog: a simple developer blog - cv: Curriculum Vitae - profiles: Members of the research group or lab. - projects: A growing collection of cool projects. - publications: publications by categories in reversed chronological order. generated by jekyll-scholar. - repositories: Welcome inside vault of code, where I post my most recent, valuable code repositories and stats about it. - teaching: Materials for courses you taught. Replace this text with your description. - unk: Looks like there has been a mistake. Nothing exists here. -blog: - description: Blog about coding, programming, and other interesting things - name: Think twice, code once # blog_name will be displayed in your blog page - nav_title: blog # your blog must have a title for it to be displayed in the nav bar - related_posts: - description: "Here are some more articles you might like to read next:" - title: Enjoy Reading This Article? -months: - long: - january: January - february: February - march: March - april: April - may: May - june: June - july: July - august: August - september: September - october: October - november: November - december: December - short: - january: Jan - february: Feb - march: Mar - april: Apr - may: May - june: Jun - july: Jul - august: Aug - september: Sep - october: Oct - november: Nov - december: Dec -news: - empty: No news so far... - titles: - news1: A simple inline announcement. - news2: A long announcement with details - news3: "A simple inline announcement with Markdown emoji! :sparkles: :smile:" -pagination: - newer: Newer - older: Older - page: page -projects: - titles: - project1: Board Heroes Battle - project2: Agents App - project3: Ludo - Just Chill Out - project4: Night Catcher - project5: Polygangs - project6: LZSS - project7: Boesner - project8: Leguano - project9: Axion - project10: Fliesen discount - project11: Old portfolio project - project12: Coded online store example - project13: Blog Manager - project14: Web Cloud System - project15: Todo App - project16: Crafter - project17: File Upload - project18: Connect The Pops Clone - descriptions: - project1: Augmented reality turn based board game for the Android platform - project2: Monte carlo simulation app written in C++ - project3: Ludo board game made in Unity - project4: Skill based mobile game for Android made in Unity - project5: Gangster simulator in a Polish city from the 90s. - project6: Implementation of loseless data compression algorithm - LZSS - project7: Relanuch of boesner shop in Shopware 5 technology - project8: Implementation of the first store using Shopware 6 technology - project9: The first project in Shopware 5 technology - project10: Re-implementation of the store using Shopware 6 technology - project11: Archived portfolio project written with plain JavaScript, HTML, CSS and Webpack - project12: Coded online store example with HTML, CSS i JS based on existing shop template - project13: Blog management application MVC in .net core and angular with docker-compose setup for better development experience - project14: Easy and simple MVC .NET app to store and manage filles in .net core and angular - project15: WPF TodoApp apllicaiton for checking AvaloniaUI framework. Project based on AvaloniaUI example with modifications and integrated Unit tests - project16: Project of a game in which a basic item crafting system has been implemented in Unity - project17: File upload symfony app written in symfony 7 with usage of doctrine and PhpUnit tests - project18: Clone of popular android game "Connect The Pops" from Popcorn - categories: - fun: fun - work: work - web-development: web-development - e-commerce: e-commerce - game-dev: game-dev - desktop: desktop -repositories: - users: GitHub Users - repos: GitHub Repositories -cv: - address: Address - area: Area - awarder: Awarder - awards: Awards - basics: General information - certificates: Certificates - city: City - countryCode: Country code - courses: Courses - date: Date - education: Education - email: Email - endDate: End date - fluency: Fluency - highlights: Highlights - image: Image - institution: Institution - interests: Interests - issuer: Issuer - keywords: Keywords - label: Label - language: Language - languages: Languages - level: Level - location: Location - name: Name - network: Network - organization: Organization - phone: Phone - position: Position - postalCode: Postal Code - profiles: Profiles - projects: Projects - publications: Publications - publisher: Publisher - reference: Reference - references: References - region: Region - releaseDate: Release date - score: Score - skills: Skills - startDate: Start date - studyType: Study type - summary: Summary - table_of_contents: Table of Contents - title: Title - url: Url - username: Username - volunteer: Volunteer - work: Work +not_found: + message: You will be redirected to the main page within 3 seconds. If not redirected, please go back to the + main_page: home page +main: + contact_note: You contact me directly via email tomasz.komoszeski@gmail.com or via linkedin chat. + footer_text: > # the ">" symbol means to ignore newlines until "titles:" + Powered by Jekyll with multi-language-al-folio theme. + Hosted by GitHub Pages. + Photos from Unsplash. + more_info: > +

Software engineer

+

Tomasz Komoszeski,

+

Poland

+ subtitle: Software engineer and aspiring game developer +titles: + about: about + blog: blog + cv: cv + latest_posts: latest posts + news: news + profiles: people + projects: projects + publications: publications + repositories: repositories + selected_publications: selected publications + teaching: teaching + submenus: submenus + unk: page not found +descriptions: + about: Ziumper software developer portfolio. + archive-category: an archive of posts in this category + archive-tag: an archive of posts with this tag + archive-year: an archive of posts from this year + blog: a simple developer blog + cv: Curriculum Vitae + profiles: Members of the research group or lab. + projects: A growing collection of cool projects. + publications: publications by categories in reversed chronological order. generated by jekyll-scholar. + repositories: Welcome inside vault of code, where I post my most recent, valuable code repositories and stats about it. + teaching: Materials for courses you taught. Replace this text with your description. + unk: Looks like there has been a mistake. Nothing exists here. +blog: + description: Blog about coding, programming, and other interesting things + name: Think twice, code once # blog_name will be displayed in your blog page + nav_title: blog # your blog must have a title for it to be displayed in the nav bar + related_posts: + description: "Here are some more articles you might like to read next:" + title: Enjoy Reading This Article? +months: + long: + january: January + february: February + march: March + april: April + may: May + june: June + july: July + august: August + september: September + october: October + november: November + december: December + short: + january: Jan + february: Feb + march: Mar + april: Apr + may: May + june: Jun + july: Jul + august: Aug + september: Sep + october: Oct + november: Nov + december: Dec +news: + empty: No news so far... + titles: + news1: A simple inline announcement. + news2: A long announcement with details + news3: "A simple inline announcement with Markdown emoji! :sparkles: :smile:" +pagination: + newer: Newer + older: Older + page: page +projects: + titles: + project1: Board Heroes Battle + project2: Agents App + project3: Ludo - Just Chill Out + project4: Night Catcher + project5: Polygangs + project6: LZSS + project7: Boesner + project8: Leguano + project9: Axion + project10: Fliesen discount + project11: Old portfolio project + project12: Coded online store example + project13: Blog Manager + project14: Web Cloud System + project15: Todo App + project16: Crafter + project17: File Upload + project18: Connect The Pops Clone + descriptions: + project1: Augmented reality turn based board game for the Android platform + project2: Monte carlo simulation app written in C++ + project3: Ludo board game made in Unity + project4: Skill based mobile game for Android made in Unity + project5: Gangster simulator in a Polish city from the 90s. + project6: Implementation of loseless data compression algorithm - LZSS + project7: Relanuch of boesner shop in Shopware 5 technology + project8: Implementation of the first store using Shopware 6 technology + project9: The first project in Shopware 5 technology + project10: Re-implementation of the store using Shopware 6 technology + project11: Archived portfolio project written with plain JavaScript, HTML, CSS and Webpack + project12: Coded online store example with HTML, CSS i JS based on existing shop template + project13: Blog management application MVC in .net core and angular with docker-compose setup for better development experience + project14: Easy and simple MVC .NET app to store and manage filles in .net core and angular + project15: WPF TodoApp apllicaiton for checking AvaloniaUI framework. Project based on AvaloniaUI example with modifications and integrated Unit tests + project16: Project of a game in which a basic item crafting system has been implemented in Unity + project17: File upload symfony app written in symfony 7 with usage of doctrine and PhpUnit tests + project18: Clone of popular android game "Connect The Pops" from Popcorn + categories: + fun: fun + work: work + web-development: web-development + e-commerce: e-commerce + game-dev: game-dev + desktop: desktop +repositories: + users: GitHub Users + repos: GitHub Repositories +cv: + address: Address + area: Area + awarder: Awarder + awards: Awards + basics: General information + certificates: Certificates + city: City + countryCode: Country code + courses: Courses + date: Date + education: Education + email: Email + endDate: End date + fluency: Fluency + highlights: Highlights + image: Image + institution: Institution + interests: Interests + issuer: Issuer + keywords: Keywords + label: Label + language: Language + languages: Languages + level: Level + location: Location + name: Name + network: Network + organization: Organization + phone: Phone + position: Position + postalCode: Postal Code + profiles: Profiles + projects: Projects + publications: Publications + publisher: Publisher + reference: Reference + references: References + region: Region + releaseDate: Release date + score: Score + skills: Skills + startDate: Start date + studyType: Study type + summary: Summary + table_of_contents: Table of Contents + title: Title + url: Url + username: Username + volunteer: Volunteer + work: Work diff --git a/_i18n/en/_news/announcement_1.md b/_i18n/en/_news/announcement_1.md index 1febda08..742da2b7 100644 --- a/_i18n/en/_news/announcement_1.md +++ b/_i18n/en/_news/announcement_1.md @@ -1 +1 @@ -A simple inline announcement. +A simple inline announcement. diff --git a/_i18n/en/_news/announcement_2.md b/_i18n/en/_news/announcement_2.md index 82746d9c..68bda98d 100644 --- a/_i18n/en/_news/announcement_2.md +++ b/_i18n/en/_news/announcement_2.md @@ -1,25 +1,25 @@ -Announcements and news can be much longer than just quick inline posts. In fact, they can have all the features available for the standard blog posts. See below. - ---- - -Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy. - -#### Hipster list - -
    -
  • brunch
  • -
  • fixie
  • -
  • raybans
  • -
  • messenger bag
  • -
- -Hoodie Thundercats retro, tote bag 8-bit Godard craft beer gastropub. Truffaut Tumblr taxidermy, raw denim Kickstarter sartorial dreamcatcher. Quinoa chambray slow-carb salvia readymade, bicycle rights 90's yr typewriter selfies letterpress cardigan vegan. - ---- - -Pug heirloom High Life vinyl swag, single-origin coffee four dollar toast taxidermy reprehenderit fap distillery master cleanse locavore. Est anim sapiente leggings Brooklyn ea. Thundercats locavore excepteur veniam eiusmod. Raw denim Truffaut Schlitz, migas sapiente Portland VHS twee Bushwick Marfa typewriter retro id keytar. - -> We do not grow absolutely, chronologically. We grow sometimes in one dimension, and not in another, unevenly. We grow partially. We are relative. We are mature in one realm, childish in another. -> —Anais Nin - -Fap aliqua qui, scenester pug Echo Park polaroid irony shabby chic ex cardigan church-key Odd Future accusamus. Blog stumptown sartorial squid, gastropub duis aesthetic Truffaut vero. Pinterest tilde twee, odio mumblecore jean shorts lumbersexual. +Announcements and news can be much longer than just quick inline posts. In fact, they can have all the features available for the standard blog posts. See below. + +--- + +Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy. + +#### Hipster list + +
    +
  • brunch
  • +
  • fixie
  • +
  • raybans
  • +
  • messenger bag
  • +
+ +Hoodie Thundercats retro, tote bag 8-bit Godard craft beer gastropub. Truffaut Tumblr taxidermy, raw denim Kickstarter sartorial dreamcatcher. Quinoa chambray slow-carb salvia readymade, bicycle rights 90's yr typewriter selfies letterpress cardigan vegan. + +--- + +Pug heirloom High Life vinyl swag, single-origin coffee four dollar toast taxidermy reprehenderit fap distillery master cleanse locavore. Est anim sapiente leggings Brooklyn ea. Thundercats locavore excepteur veniam eiusmod. Raw denim Truffaut Schlitz, migas sapiente Portland VHS twee Bushwick Marfa typewriter retro id keytar. + +> We do not grow absolutely, chronologically. We grow sometimes in one dimension, and not in another, unevenly. We grow partially. We are relative. We are mature in one realm, childish in another. +> —Anais Nin + +Fap aliqua qui, scenester pug Echo Park polaroid irony shabby chic ex cardigan church-key Odd Future accusamus. Blog stumptown sartorial squid, gastropub duis aesthetic Truffaut vero. Pinterest tilde twee, odio mumblecore jean shorts lumbersexual. diff --git a/_i18n/en/_news/announcement_3.md b/_i18n/en/_news/announcement_3.md index 2881da36..22fc5398 100644 --- a/_i18n/en/_news/announcement_3.md +++ b/_i18n/en/_news/announcement_3.md @@ -1 +1 @@ -A simple inline announcement with Markdown emoji! :sparkles: :smile: +A simple inline announcement with Markdown emoji! :sparkles: :smile: diff --git a/_i18n/en/_pages/about.md b/_i18n/en/_pages/about.md index d44d9712..ed52cd5e 100644 --- a/_i18n/en/_pages/about.md +++ b/_i18n/en/_pages/about.md @@ -1,8 +1,7 @@ - -Hi, my name is Tomek! - -I am a programmer and IT consultant with a broad range of skills. Throughout my career in various positions, I have gained valuable IT skills and knowledge that have allowed me to implement innovative ideas, mitigate emerging risks, and build scalable and resilient solutions. I always approach my work professionally, and combining it with passion helps me maintain a high level of motivation and a proactive attitude. I also place a strong emphasis on development, using the latest technologies in the IT industry while not forgetting about old, proven solutions. - -I started my IT journey from an early age, continuing through years of education and work. If you want to know more about me and my career path, I encourage you to look through the [projects I have completed](/projects) and [my curriculum vitae](/cv). If I can help in any way, don't hesitate to [contact me](mailto:tomasz.komoszeski@gmail.com). - -In my free time, I enjoy traveling, programming, and playing games, reading interesting books, and writing posts on [my blog](/blog)! \ No newline at end of file +Hi, my name is Tomek! + +I am a programmer and IT consultant with a broad range of skills. Throughout my career in various positions, I have gained valuable IT skills and knowledge that have allowed me to implement innovative ideas, mitigate emerging risks, and build scalable and resilient solutions. I always approach my work professionally, and combining it with passion helps me maintain a high level of motivation and a proactive attitude. I also place a strong emphasis on development, using the latest technologies in the IT industry while not forgetting about old, proven solutions. + +I started my IT journey from an early age, continuing through years of education and work. If you want to know more about me and my career path, I encourage you to look through the [projects I have completed](/projects) and [my curriculum vitae](/cv). If I can help in any way, don't hesitate to [contact me](mailto:tomasz.komoszeski@gmail.com). + +In my free time, I enjoy traveling, programming, and playing games, reading interesting books, and writing posts on [my blog](/blog)! diff --git a/_i18n/en/_pages/about_einstein.md b/_i18n/en/_pages/about_einstein.md index 8685419f..d2633c2e 100644 --- a/_i18n/en/_pages/about_einstein.md +++ b/_i18n/en/_pages/about_einstein.md @@ -1,5 +1,5 @@ -Write your biography here. Tell the world about yourself. Link to your favorite [subreddit](http://reddit.com). You can put a picture in, too. The code is already in, just name your picture `prof_pic.jpg` and put it in the `img/` folder. - -Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing `profile` property of the YAML header of your `_pages/about.md`. Edit `_bibliography/papers.bib` and Jekyll will render your [publications page](/multi-language-al-folio/publications/) automatically. - -Link to your social media connections, too. This theme is set up to use [Font Awesome icons](https://fontawesome.com/) and [Academicons](https://jpswalsh.github.io/academicons/), like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them. +Write your biography here. Tell the world about yourself. Link to your favorite [subreddit](http://reddit.com). You can put a picture in, too. The code is already in, just name your picture `prof_pic.jpg` and put it in the `img/` folder. + +Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing `profile` property of the YAML header of your `_pages/about.md`. Edit `_bibliography/papers.bib` and Jekyll will render your [publications page](/multi-language-al-folio/publications/) automatically. + +Link to your social media connections, too. This theme is set up to use [Font Awesome icons](https://fontawesome.com/) and [Academicons](https://jpswalsh.github.io/academicons/), like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them. diff --git a/_i18n/en/_posts/2022-07-17-how-to-start-with-git.md b/_i18n/en/_posts/2022-07-17-how-to-start-with-git.md index 3e3bb3ed..f2c6913f 100644 --- a/_i18n/en/_posts/2022-07-17-how-to-start-with-git.md +++ b/_i18n/en/_posts/2022-07-17-how-to-start-with-git.md @@ -1,159 +1,155 @@ ---- -layout: post -title: How to start with GIT? -date: 2022-07-17 16:40:16 -tags: git gitExtensions -categories: tutorials ---- - - -I was wondering what GIT means. Here is what I have found: - -> GIT as a word is an alternation of the word get, which was shortened from begetting. -> The implicit reference is to illegitimate offspring, -> and the term is roughly synonymous with a twit, dolt, moron, or idiot. Within the open source community, the significance of the name choice varies. - -It means GIT is for idiots that do not know what they are doing. The perfect tool for a software developer. Let us start from the beginning. - -Linus Torvalds decided to develop it for the Linux kernel. From 2005 that helped developers track changes in the code. Available in all operating systems and used by users around the globe. Easy to start but hard to master version control system. You can download it from [this site](https://git-scm.com/downloads) and try it by yourself. - -# Basics - -Download and install [git](https://git-scm.com/downloads) on your OS (Operating system). -I am starting with the basics. To follow, you need to get familiar with terminal. -After installation you should be able to execute some git commands. -Create a new folder. Then open up a terminal within new folder. -Let’s make a repository. To achieve it use a command bellow. - -```bash -git init -``` - -# Tools - -There a few GUI (Graphical User Interface) Tools, which can help you geting into GIT. -If you are not a fan of terminal I bet you can use [GitExtensions](https://gitextensions.github.io/) - -
- {% include figure.liquid path="assets/img/posts/gitextension.png" alt="git extensions editor window" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -As an alternative you can use [SourceTree](https://www.sourcetreeapp.com/) it is a valid free to use alternative for Mac. I think if you are using Linux you can go with terminal as well. - - -![SourceTree!](https://wac-cdn.atlassian.com/dam/jcr:580c367b-c240-453d-aa18-c7ced44324f9/hero-mac-screenshot.png?cdnVersion=651) - - -# Commit -Okay, so far good! Now let’s commit some files to it. I made an HTML file with the following content. - -```html -

Hello there

-``` - -and save it as hello.html. Now you are ready to add it to staging area. -What is a staging area – let’s explain it as a box where you put stuff and then you use it as a snapshot to commit the changes. -To do it you should specify the path to the file with the file format, or path with some pattern like - -```bash -.txt .xml, etc. -``` - -Command for adding the hello.html in terminal - -```bash -git add hello.html -``` - -You can also add all files - -```bash -git add * -``` - -Then by typing: - -``` -git status -``` - -You should be able to see all files, which have been added by you to staging area. - -Afterwards, you can commit the hello.html to your local repository. - -```bash -git commit -m "Add hello there file" -``` - -commit – is a command that saves a snapshot of the “box” that we staged. - -# Commits message standards - -I want to explain a few standards on how to deal with commit messages and how often you should be doing it. I heard that the more often you are doing it, the better. There is no limit, afterwards, you can always reduce the number of commits, by using the squash functionality. Let’s start with the form of the commit message. How it should be: - - -- Use imperative statements in the subject line, e.g. “Fix broken Javadoc link” - -- Begin the subject line sentence with a capitalized verb, e.g. “Add, Prune, Fix, Introduce, Avoid, etc” - -- Do not end the subject line with a period - -- Keep the subject line to 50 characters or less if possible - -- Wrap lines in the body at 72 characters or less - -- Mention associated Jira issue(s) at the end of the commit comment, prefixed with “Issue: ” as above - -- In the body of the commit message, explain how things worked before this commit, what has changed, and how things work now - -- I also like to add some kind of tag of type before the commit message, here are some examples: - -```bash -– Feature - -– Bugfix - -– Cleanup - -– Hotfix -``` - -When you are working on a task it is good to add some number of tasks like #123 that reference some. In summary, it should look like that: - -```bash -[FEATURE] #123 My super not quite long commit message. - - -Here goes body messages where we describe what is going on. -Keep it short as much as you can, but include all necessary details -inside. - -Footer where summary and all other references should be applied for -example: -Those commits resolve issue #123 and #124 -``` - - -Git branches – tree of changes -Commits can be added to branches. The branch is a set of commits that are separated from the main branch just like in a tree with leafs. To create a branch: - -```bash -git branch -``` - -To switch branch - -``` -git checkout -``` - -After initializing the git repository you usually have one existing main branch from which all created afterwards branches can be derived. Use them to group some changes on the feature you are working on. - -# Workflow - -I recommend getting familiar with a few concepts of GIT like a branch, rebase, merge and squash. After that, you can start thinking about how to work and manage your work as a software developer. I am a big fan of normalization and standards of workflows. I found a few methodologies that are popular nowadays while working with GIT. - -- Gitflow -- Trunk - -Choose first if you do not have any CI/CD tools in your toolset. The second one is great while working with a good technology stack and integrated code review tools. +--- +layout: post +title: How to start with GIT? +date: 2022-07-17 16:40:16 +tags: git gitExtensions +categories: tutorials +--- + +I was wondering what GIT means. Here is what I have found: + +> GIT as a word is an alternation of the word get, which was shortened from begetting. +> The implicit reference is to illegitimate offspring, +> and the term is roughly synonymous with a twit, dolt, moron, or idiot. Within the open source community, the significance of the name choice varies. + +It means GIT is for idiots that do not know what they are doing. The perfect tool for a software developer. Let us start from the beginning. + +Linus Torvalds decided to develop it for the Linux kernel. From 2005 that helped developers track changes in the code. Available in all operating systems and used by users around the globe. Easy to start but hard to master version control system. You can download it from [this site](https://git-scm.com/downloads) and try it by yourself. + +# Basics + +Download and install [git](https://git-scm.com/downloads) on your OS (Operating system). +I am starting with the basics. To follow, you need to get familiar with terminal. +After installation you should be able to execute some git commands. +Create a new folder. Then open up a terminal within new folder. +Let’s make a repository. To achieve it use a command bellow. + +```bash +git init +``` + +# Tools + +There a few GUI (Graphical User Interface) Tools, which can help you geting into GIT. +If you are not a fan of terminal I bet you can use [GitExtensions](https://gitextensions.github.io/) + +
+ {% include figure.liquid path="assets/img/posts/gitextension.png" alt="git extensions editor window" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +As an alternative you can use [SourceTree](https://www.sourcetreeapp.com/) it is a valid free to use alternative for Mac. I think if you are using Linux you can go with terminal as well. + +![SourceTree!](https://wac-cdn.atlassian.com/dam/jcr:580c367b-c240-453d-aa18-c7ced44324f9/hero-mac-screenshot.png?cdnVersion=651) + +# Commit + +Okay, so far good! Now let’s commit some files to it. I made an HTML file with the following content. + +```html +

Hello there

+``` + +and save it as hello.html. Now you are ready to add it to staging area. +What is a staging area – let’s explain it as a box where you put stuff and then you use it as a snapshot to commit the changes. +To do it you should specify the path to the file with the file format, or path with some pattern like + +```bash +.txt .xml, etc. +``` + +Command for adding the hello.html in terminal + +```bash +git add hello.html +``` + +You can also add all files + +```bash +git add * +``` + +Then by typing: + +``` +git status +``` + +You should be able to see all files, which have been added by you to staging area. + +Afterwards, you can commit the hello.html to your local repository. + +```bash +git commit -m "Add hello there file" +``` + +commit – is a command that saves a snapshot of the “box” that we staged. + +# Commits message standards + +I want to explain a few standards on how to deal with commit messages and how often you should be doing it. I heard that the more often you are doing it, the better. There is no limit, afterwards, you can always reduce the number of commits, by using the squash functionality. Let’s start with the form of the commit message. How it should be: + +- Use imperative statements in the subject line, e.g. “Fix broken Javadoc link” + +- Begin the subject line sentence with a capitalized verb, e.g. “Add, Prune, Fix, Introduce, Avoid, etc” + +- Do not end the subject line with a period + +- Keep the subject line to 50 characters or less if possible + +- Wrap lines in the body at 72 characters or less + +- Mention associated Jira issue(s) at the end of the commit comment, prefixed with “Issue: ” as above + +- In the body of the commit message, explain how things worked before this commit, what has changed, and how things work now + +- I also like to add some kind of tag of type before the commit message, here are some examples: + +```bash +– Feature + +– Bugfix + +– Cleanup + +– Hotfix +``` + +When you are working on a task it is good to add some number of tasks like #123 that reference some. In summary, it should look like that: + +```bash +[FEATURE] #123 My super not quite long commit message. + + +Here goes body messages where we describe what is going on. +Keep it short as much as you can, but include all necessary details +inside. + +Footer where summary and all other references should be applied for +example: +Those commits resolve issue #123 and #124 +``` + +Git branches – tree of changes +Commits can be added to branches. The branch is a set of commits that are separated from the main branch just like in a tree with leafs. To create a branch: + +```bash +git branch +``` + +To switch branch + +``` +git checkout +``` + +After initializing the git repository you usually have one existing main branch from which all created afterwards branches can be derived. Use them to group some changes on the feature you are working on. + +# Workflow + +I recommend getting familiar with a few concepts of GIT like a branch, rebase, merge and squash. After that, you can start thinking about how to work and manage your work as a software developer. I am a big fan of normalization and standards of workflows. I found a few methodologies that are popular nowadays while working with GIT. + +- Gitflow +- Trunk + +Choose first if you do not have any CI/CD tools in your toolset. The second one is great while working with a good technology stack and integrated code review tools. diff --git a/_i18n/en/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md b/_i18n/en/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md index e2772948..099faac2 100644 --- a/_i18n/en/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md +++ b/_i18n/en/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md @@ -1,137 +1,130 @@ ---- -layout: post -title: How to solve rebase and merge conflicts with GitExtensions? -date: 2022-08-06 16:40:16 -tags: git gitExtensions -categories: tutorials ---- - - -Have you ever wondered how to merge your changes easily without destroying the entire project? -So here is a quick and easy guide to follow. Let’s start! -First, you should install and configure [GitExtensions](https://git-extensions-documentation.readthedocs.io/). After that open up your repository. In my case, it contains two branches: master and develop. Check the image below to see it. - -
-
- {% include figure.liquid path="assets/img/posts/gitExtensions_1.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/posts/gitExtensions_2.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- - -It contains on hello.html file with the same line edited so it does not know which line it should take when [conflict](https://www.atlassian.com/git/tutorials/using-branches/merge-conflicts) happens. - -## How to rebase? - -Do [rebase](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) from develop branch to master, so our commit on develop will be “above” commits from master and it “should” contain all commits from the master branch too. How do I do it? -Checkout on develop branch. Click the right mouse button on it. Choose checkout branch and then develop. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_3.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -When you are on develop branch choose which commit would like to rebase. In my case, it is a master branch commit with the message “Hope it will work”. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_4.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -After clicking, yes to rebase it, you should see an error pop up, do not worry it is nothing wrong with git. It is just information for you that you need to resolve some conflicts. - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_5.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Click, ok, and procceed. Next, you should see a similar window below: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_6.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Choose solve conflicts and then the next window should pop up. - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_7.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -It is a resolve merge conflicts window. You can solve your merge conflicts in two ways. The fast and easy second way for which you use a diff tool like [kdiff3](https://github.com/KDE/kdiff3). - -## Fast/easy way to resolve merge conflicts. - -You can apply the changes for the hello.html file by dropping your changes and using the changes of the master. Click the right mouse button on the hello.html file and choose (theirs) just like on the image below. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_8.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -If you would like to overwrite the change you can always use choose (ours) option. Afterward -Click continue rebase on the main rebase window - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_9.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -In case of more files or conflicts, you would have to resolve them later. Keep in mind that working with bigger files or changes could take some time. - -## Diff tool way - -Here I modified a little history of the repository so we can work with something. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_10.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- - -Let’s rebase again and develop to a master branch. - -1. Checkout to develop - -2. Choose the first master commit with the message “Some other changes”, and click the right mouse button on it - -3. Rebase current branch on -> selected commit. - -Then the magic begins. I omit the steps to merge conflicts window, which is the same as above. Chose to open it up in kdiff3 or another merging/diff tool. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_11.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -You should see a window similar to below: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_12.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Three directory-merge - -- (“A” is treated as the older base of both). - -- B – is a (theirs) master branch version - -- C – is a (ours) in that case, develop branch version - -Below is the Output window that will contain the merging result. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_13.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -You can choose whatever version of the file you would like and combine them in the output you can see I have chosen one line from C, one line from A, and one line from B. -Then I saved the file and continue to rebase after solving the conflicts. Simply as that, but sometimes it can be tricky so pay attention. -Result of rebasing: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_14.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -It will create .orig file extensions so you can always see the history of your changes. -It is better to not commit those files to your repository. - -That’s it! I hope the article will help you with resolving the conflicts! +--- +layout: post +title: How to solve rebase and merge conflicts with GitExtensions? +date: 2022-08-06 16:40:16 +tags: git gitExtensions +categories: tutorials +--- + +Have you ever wondered how to merge your changes easily without destroying the entire project? +So here is a quick and easy guide to follow. Let’s start! +First, you should install and configure [GitExtensions](https://git-extensions-documentation.readthedocs.io/). After that open up your repository. In my case, it contains two branches: master and develop. Check the image below to see it. + +
+
+ {% include figure.liquid path="assets/img/posts/gitExtensions_1.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/posts/gitExtensions_2.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ + +It contains on hello.html file with the same line edited so it does not know which line it should take when [conflict](https://www.atlassian.com/git/tutorials/using-branches/merge-conflicts) happens. + +## How to rebase? + +Do [rebase](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) from develop branch to master, so our commit on develop will be “above” commits from master and it “should” contain all commits from the master branch too. How do I do it? +Checkout on develop branch. Click the right mouse button on it. Choose checkout branch and then develop. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_3.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +When you are on develop branch choose which commit would like to rebase. In my case, it is a master branch commit with the message “Hope it will work”. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_4.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +After clicking, yes to rebase it, you should see an error pop up, do not worry it is nothing wrong with git. It is just information for you that you need to resolve some conflicts. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_5.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Click, ok, and procceed. Next, you should see a similar window below: + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_6.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Choose solve conflicts and then the next window should pop up. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_7.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +It is a resolve merge conflicts window. You can solve your merge conflicts in two ways. The fast and easy second way for which you use a diff tool like [kdiff3](https://github.com/KDE/kdiff3). + +## Fast/easy way to resolve merge conflicts. + +You can apply the changes for the hello.html file by dropping your changes and using the changes of the master. Click the right mouse button on the hello.html file and choose (theirs) just like on the image below. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_8.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +If you would like to overwrite the change you can always use choose (ours) option. Afterward +Click continue rebase on the main rebase window + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_9.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +In case of more files or conflicts, you would have to resolve them later. Keep in mind that working with bigger files or changes could take some time. + +## Diff tool way + +Here I modified a little history of the repository so we can work with something. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_10.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Let’s rebase again and develop to a master branch. + +1. Checkout to develop + +2. Choose the first master commit with the message “Some other changes”, and click the right mouse button on it + +3. Rebase current branch on -> selected commit. + +Then the magic begins. I omit the steps to merge conflicts window, which is the same as above. Chose to open it up in kdiff3 or another merging/diff tool. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_11.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +You should see a window similar to below: + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_12.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Three directory-merge + +- (“A” is treated as the older base of both). + +- B – is a (theirs) master branch version + +- C – is a (ours) in that case, develop branch version + +Below is the Output window that will contain the merging result. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_13.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +You can choose whatever version of the file you would like and combine them in the output you can see I have chosen one line from C, one line from A, and one line from B. +Then I saved the file and continue to rebase after solving the conflicts. Simply as that, but sometimes it can be tricky so pay attention. +Result of rebasing: + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_14.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +It will create .orig file extensions so you can always see the history of your changes. +It is better to not commit those files to your repository. + +That’s it! I hope the article will help you with resolving the conflicts! diff --git a/_i18n/en/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md b/_i18n/en/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md index 61cd7886..b1386e7c 100644 --- a/_i18n/en/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md +++ b/_i18n/en/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md @@ -1,323 +1,320 @@ ---- -layout: post -title: How to store big binary files with git lfs on Google Drive or One Drive? -date: 2023-10-23 16:40:16 -tags: git git-lfs git-extensions unity unreal-engine -categories: tutorials ---- - -# Transfer adapter - -I suggest connecting git lfs with custom transfer adapter. According to git-lfs documentation: - - -> Git LFS supports multiple ways to transfer (upload and download) files. -> In the core client, the basic way to do this is via a one-off HTTP request via the URL returned from the LFS API for a given object. -> The core client also supports extensions to allow resuming of downloads (via Range headers) and uploads (via the tus.io protocol). - - -# Usage examples - -I used this approach to storage media files in my software development project and game dev project. -I bet you can do it too. In the most cases I like to use it for: -- game dev projects in game engines like Unity and Unreal Engine. -- dbdumps storage -- big media files storage (in case you need a one) - -There are always a way to do it for another kind of projects. - -In example bellow I will be using gitlab, google drive and other tools. - -# Gitlab setup - -Firstly you need to disable default lfs service of gitlab. It's very vell documented feature in official documentation -[Gitlab](https://docs.gitlab.com/ee/topics/git/lfs) but there is not much information how to disable it. - -It's a litle tricky and not really user friendly but obviously you need to select your repository and dive into settings. - - - -
-
- {% include figure.liquid path="assets/img/posts/settings_gitlab.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/posts/disable_gitlab_lfs_example.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- -Although! - -
-
- {% include figure.liquid path="assets/img/posts/yoda-there-is.gif" class="img-fluid rounded z-depth-1" width="30%" zoomable=true %} -
-
- -There is another way also via gitlab cli, and to CI tools too via environment variables but I will not cover this, let's keep it simple. - -If giltab lfs is disabled on remote you can start with local setup. - -# Local repository setup - -You will need a new repository or use existing one. I suggest starting with fresh state so -you can go with easier setup guide bellow. - -``` -git init -``` - -Add also remote server link. That can be done after setup or later. -For gitlab you can follow simple tutorial [link to git](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#add-a-remote) - -# Lfs setup - - -Download a lfs adapter tool from [available releases](https://github.com/sinbad/lfs-folderstore/releases/tag/v1.0.1). - - -
- {% include figure.liquid path="assets/img/posts/OIP.jpg" class="img-fluid rounded z-depth-1" width="50%" zoomable=true %} -
- -Download, unzip, install it -to some good known location. For example make a new folder in you main work disk like this ```C:\Tools``` so full path to the tool -will be like this ```C:\Tools\lfs-folderstore.exe```. - - -To set up repo with lfs please add .gitattributes file in your repository. -For examples check this [link](https://github.com/gitattributes/gitattributes). - -## Unity .gitattributes - -``` -## in root - -*.cs diff=csharp text -*.cginc text -*.shader text - -*.mat merge=unityyamlmerge eol=lf -*.anim merge=unityyamlmerge eol=lf -*.unity merge=unityyamlmerge eol=lf -*.prefab merge=unityyamlmerge eol=lf -*.physicsMaterial2D merge=unityyamlmerge eol=lf -*.physicMaterial merge=unityyamlmerge eol=lf -*.asset merge=unityyamlmerge eol=lf -text -*.meta merge=unityyamlmerge eol=lf -*.controller merge=unityyamlmerge eol=lf - -## git-lfs ## - -#Image -*.jpg filter=lfs diff=lfs merge=lfs -text -*.jpeg filter=lfs diff=lfs merge=lfs -text -*.png filter=lfs diff=lfs merge=lfs -text -*.gif filter=lfs diff=lfs merge=lfs -text -*.psd filter=lfs diff=lfs merge=lfs -text -*.ai filter=lfs diff=lfs merge=lfs -text -*.tif filter=lfs diff=lfs merge=lfs -text - -#Audio -*.mp3 filter=lfs diff=lfs merge=lfs -text -*.wav filter=lfs diff=lfs merge=lfs -text -*.ogg filter=lfs diff=lfs merge=lfs -text -#Wwise -*.bnk filter=lfs diff=lfs merge=lfs -text - -#Video -*.mp4 filter=lfs diff=lfs merge=lfs -text -*.mov filter=lfs diff=lfs merge=lfs -text - -#3D Object -*.FBX filter=lfs diff=lfs merge=lfs -text -*.fbx filter=lfs diff=lfs merge=lfs -text -*.blend filter=lfs diff=lfs merge=lfs -text -*.obj filter=lfs diff=lfs merge=lfs -text - -#ETC -*.a filter=lfs diff=lfs merge=lfs -text -*.exr filter=lfs diff=lfs merge=lfs -text -*.tga filter=lfs diff=lfs merge=lfs -text -*.zip filter=lfs diff=lfs merge=lfs -text -*.dll filter=lfs diff=lfs merge=lfs -text -*.unitypackage filter=lfs diff=lfs merge=lfs -text -*.aif filter=lfs diff=lfs merge=lfs -text -*.ttf filter=lfs diff=lfs merge=lfs -text -*.rns filter=lfs diff=lfs merge=lfs -text -*.reason filter=lfs diff=lfs merge=lfs -text -*.lxo filter=lfs diff=lfs merge=lfs -text - -``` - -## Unreal Engine .gitattributes -``` -## Unreal Engine -## Auto detect text files and perform LF normalization ## - -* text=auto - -# UE file types -*.uasset filter=lfs diff=lfs merge=lfs -text -*.umap filter=lfs diff=lfs merge=lfs -text -*.udk filter=lfs diff=lfs merge=lfs -text -*.upk filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# 2D formats -# Read more in: https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Textures/Importing/ - -# Recommended use: -*.[tT][gG][aA] filter=lfs diff=lfs merge=lfs -text -*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text -*.[bB][mM][pP] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[fF][lL[oO][aA][tT] filter=lfs diff=lfs merge=lfs -text -*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text -*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text -*.[pP][cC][xX] filter=lfs diff=lfs merge=lfs -text -*.[pP][sS][dD] filter=lfs diff=lfs merge=lfs -text -*.[xX][cC][fF] filter=lfs diff=lfs merge=lfs -text -*.[tT][iI][fF] filter=lfs diff=lfs merge=lfs -text -*.[tT][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text - -# Other supported formats: -*.[hH][dD][rR] filter=lfs diff=lfs merge=lfs -text -*.[dD][dD][sS] filter=lfs diff=lfs merge=lfs -text -*.[eE][xX][rR] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# 3D formats - -# Always recommended to use: -# The UE4 FBX import pipeline uses FBX 2018 -*.[fF][bB][xX] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[oO][bB][jJ] filter=lfs diff=lfs merge=lfs -text - -# Other supported formats: -*.[aA][bB][cC] filter=lfs diff=lfs merge=lfs -text -*.[sS][rR][tT] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Audio formats -# Read more in: https://docs.unrealengine.com/4.27/en-US/WorkingWithAudio/Overview/#:~:text=Unreal%20Engine%204%20(UE4)%20supports,16%2Dbit%20format%20PCM%20files. - -# Always recommended to use: -*.[wW][aA][vV] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[aA][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text -*.[oO][gG][gG] filter=lfs diff=lfs merge=lfs -text -*.[fF][lL][aA][cC] filter=lfs diff=lfs merge=lfs -text - -# Not recommended to use, but supported: -*.[mM][pP]3 filter=lfs diff=lfs merge=lfs -text -*.[wW][mM][aA] filter=lfs diff=lfs merge=lfs -text -*.[aA][cC]3 filter=lfs diff=lfs merge=lfs -text -*.[aA][mM][rR] filter=lfs diff=lfs merge=lfs -text -*.[aA][iI][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][uU] filter=lfs diff=lfs merge=lfs -text -*.[cC][dD][dD][aA] filter=lfs diff=lfs merge=lfs -text -*.[cC][aA][fF] filter=lfs diff=lfs merge=lfs -text -*.[bB][wW][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][dD][tT][sS] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Video formats -# Read more in: https://docs.unrealengine.com/5.0/en-US/media-framework-technical-reference-for-unreal-engine/ - -# Always recommended to use, supports all platforms: -# For the best compatibility and performance, it is recommended to use H.264 encoded MP4 (.mp4) container files. -*.[mM][pP]4 filter=lfs diff=lfs merge=lfs -text - -# Can also be used, only some platforms are supported: -*.3[gG]2 filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP] filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP]2 filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP][pP] filter=lfs diff=lfs merge=lfs -text -*.[mM]4[aA] filter=lfs diff=lfs merge=lfs -text -*.[mM]4[vV] filter=lfs diff=lfs merge=lfs -text -*.[mM][o][vV] filter=lfs diff=lfs merge=lfs -text -*.[aA][sS][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][vV][iI] filter=lfs diff=lfs merge=lfs -text -*.[wW][mM][vV] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Fonts -# Read more in: https://docs.unrealengine.com/5.0/en-US/importing-fonts-in-unreal-engine/ - -*.[tT][tT][fF] filter=lfs diff=lfs merge=lfs -text -*.[oO][tT][fF] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Documents -*.[cC][sS][vV] filter=lfs diff=lfs merge=lfs -text - -``` -# Goolge Drive Setup - -If repo is ready, you will need some kind of disk space to make it works. So to fully integrate it use Google Drive Client [Download](https://www.google.com/drive/download/). -Install it and login so you can create a folder to store all big binary data. - -After loging you should be able to see your mounted folder in Finder in case using Mac or Windows Explorer as seperated disk. Open it and create a new folder there with name -``binary-lfs``. That name will be used to store all binary data for you project in lfs setup. - -# Git config integration - -If you have done right everything now it's a time to connect git-lfs with our tool and google drive. - -I used my favorite open-source [GitExtension](https://git-extensions-documentation.readthedocs.io/) software as reference for integration, but you can use terminal by using git config approach -or any kind of text editor. In case using text editor open up config file inside hidden .git folder inside root folder of your project repository. - -To open up the configuration of your github repository choose following option: - - -
- {% include figure.liquid path="assets/img/posts/integration_gitextension.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Open it up and append following lines, similar as inside [Cloning a repo](#cloning-a-repo) - -``` -[lfs "customtransfer.lfs-folder"] - path = C:\\Tools\\lfs-folderstore.exe - args = 'I:\\My drive\\binary-lfs' -[lfs] - standalonetransferagent = lfs-folder - repositoryformatversion = 0 -``` - -Afterwards you should be good to go, afterwards remember to sort out the LFS files in your checkout and copy the content from the now-configured shared folder, by using following command -```bash -git reset --hard master -``` -or if you are using fresh repository simply push it - -``` -git push -u origin main -``` - -# Troubleshooting - -Sometimes there could be some problems with your network or issues with git lfs -In case of smudge errors or problems you can use following hacks: -- try using better internet connection low network bandwidth is not helping -- restart computer -- use ``git lfs fetch --all`` fetch git lfs files for ALL remote branches -- move your google drive or one drive directory cache to new folder and try to download the data again - - -# Bibliography and sources - -- [Lfs folderstore repo](https://github.com/sinbad/lfs-folderstore) -- [Google Drive](https://www.google.com/drive/download/) -- [Gitlab Docs](https://docs.gitlab.com/) +--- +layout: post +title: How to store big binary files with git lfs on Google Drive or One Drive? +date: 2023-10-23 16:40:16 +tags: git git-lfs git-extensions unity unreal-engine +categories: tutorials +--- + +# Transfer adapter + +I suggest connecting git lfs with custom transfer adapter. According to git-lfs documentation: + +> Git LFS supports multiple ways to transfer (upload and download) files. +> In the core client, the basic way to do this is via a one-off HTTP request via the URL returned from the LFS API for a given object. +> The core client also supports extensions to allow resuming of downloads (via Range headers) and uploads (via the tus.io protocol). + +# Usage examples + +I used this approach to storage media files in my software development project and game dev project. +I bet you can do it too. In the most cases I like to use it for: + +- game dev projects in game engines like Unity and Unreal Engine. +- dbdumps storage +- big media files storage (in case you need a one) + +There are always a way to do it for another kind of projects. + +In example bellow I will be using gitlab, google drive and other tools. + +# Gitlab setup + +Firstly you need to disable default lfs service of gitlab. It's very vell documented feature in official documentation +[Gitlab](https://docs.gitlab.com/ee/topics/git/lfs) but there is not much information how to disable it. + +It's a litle tricky and not really user friendly but obviously you need to select your repository and dive into settings. + +
+
+ {% include figure.liquid path="assets/img/posts/settings_gitlab.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/posts/disable_gitlab_lfs_example.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ +Although! + +
+
+ {% include figure.liquid path="assets/img/posts/yoda-there-is.gif" class="img-fluid rounded z-depth-1" width="30%" zoomable=true %} +
+
+ +There is another way also via gitlab cli, and to CI tools too via environment variables but I will not cover this, let's keep it simple. + +If giltab lfs is disabled on remote you can start with local setup. + +# Local repository setup + +You will need a new repository or use existing one. I suggest starting with fresh state so +you can go with easier setup guide bellow. + +``` +git init +``` + +Add also remote server link. That can be done after setup or later. +For gitlab you can follow simple tutorial [link to git](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#add-a-remote) + +# Lfs setup + +Download a lfs adapter tool from [available releases](https://github.com/sinbad/lfs-folderstore/releases/tag/v1.0.1). + +
+ {% include figure.liquid path="assets/img/posts/OIP.jpg" class="img-fluid rounded z-depth-1" width="50%" zoomable=true %} +
+ +Download, unzip, install it +to some good known location. For example make a new folder in you main work disk like this `C:\Tools` so full path to the tool +will be like this `C:\Tools\lfs-folderstore.exe`. + +To set up repo with lfs please add .gitattributes file in your repository. +For examples check this [link](https://github.com/gitattributes/gitattributes). + +## Unity .gitattributes + +``` +## in root + +*.cs diff=csharp text +*.cginc text +*.shader text + +*.mat merge=unityyamlmerge eol=lf +*.anim merge=unityyamlmerge eol=lf +*.unity merge=unityyamlmerge eol=lf +*.prefab merge=unityyamlmerge eol=lf +*.physicsMaterial2D merge=unityyamlmerge eol=lf +*.physicMaterial merge=unityyamlmerge eol=lf +*.asset merge=unityyamlmerge eol=lf -text +*.meta merge=unityyamlmerge eol=lf +*.controller merge=unityyamlmerge eol=lf + +## git-lfs ## + +#Image +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.ai filter=lfs diff=lfs merge=lfs -text +*.tif filter=lfs diff=lfs merge=lfs -text + +#Audio +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +#Wwise +*.bnk filter=lfs diff=lfs merge=lfs -text + +#Video +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.mov filter=lfs diff=lfs merge=lfs -text + +#3D Object +*.FBX filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text + +#ETC +*.a filter=lfs diff=lfs merge=lfs -text +*.exr filter=lfs diff=lfs merge=lfs -text +*.tga filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.dll filter=lfs diff=lfs merge=lfs -text +*.unitypackage filter=lfs diff=lfs merge=lfs -text +*.aif filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.rns filter=lfs diff=lfs merge=lfs -text +*.reason filter=lfs diff=lfs merge=lfs -text +*.lxo filter=lfs diff=lfs merge=lfs -text + +``` + +## Unreal Engine .gitattributes + +``` +## Unreal Engine +## Auto detect text files and perform LF normalization ## + +* text=auto + +# UE file types +*.uasset filter=lfs diff=lfs merge=lfs -text +*.umap filter=lfs diff=lfs merge=lfs -text +*.udk filter=lfs diff=lfs merge=lfs -text +*.upk filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# 2D formats +# Read more in: https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Textures/Importing/ + +# Recommended use: +*.[tT][gG][aA] filter=lfs diff=lfs merge=lfs -text +*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text +*.[bB][mM][pP] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[fF][lL[oO][aA][tT] filter=lfs diff=lfs merge=lfs -text +*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text +*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text +*.[pP][cC][xX] filter=lfs diff=lfs merge=lfs -text +*.[pP][sS][dD] filter=lfs diff=lfs merge=lfs -text +*.[xX][cC][fF] filter=lfs diff=lfs merge=lfs -text +*.[tT][iI][fF] filter=lfs diff=lfs merge=lfs -text +*.[tT][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text + +# Other supported formats: +*.[hH][dD][rR] filter=lfs diff=lfs merge=lfs -text +*.[dD][dD][sS] filter=lfs diff=lfs merge=lfs -text +*.[eE][xX][rR] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# 3D formats + +# Always recommended to use: +# The UE4 FBX import pipeline uses FBX 2018 +*.[fF][bB][xX] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[oO][bB][jJ] filter=lfs diff=lfs merge=lfs -text + +# Other supported formats: +*.[aA][bB][cC] filter=lfs diff=lfs merge=lfs -text +*.[sS][rR][tT] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Audio formats +# Read more in: https://docs.unrealengine.com/4.27/en-US/WorkingWithAudio/Overview/#:~:text=Unreal%20Engine%204%20(UE4)%20supports,16%2Dbit%20format%20PCM%20files. + +# Always recommended to use: +*.[wW][aA][vV] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[aA][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text +*.[oO][gG][gG] filter=lfs diff=lfs merge=lfs -text +*.[fF][lL][aA][cC] filter=lfs diff=lfs merge=lfs -text + +# Not recommended to use, but supported: +*.[mM][pP]3 filter=lfs diff=lfs merge=lfs -text +*.[wW][mM][aA] filter=lfs diff=lfs merge=lfs -text +*.[aA][cC]3 filter=lfs diff=lfs merge=lfs -text +*.[aA][mM][rR] filter=lfs diff=lfs merge=lfs -text +*.[aA][iI][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][uU] filter=lfs diff=lfs merge=lfs -text +*.[cC][dD][dD][aA] filter=lfs diff=lfs merge=lfs -text +*.[cC][aA][fF] filter=lfs diff=lfs merge=lfs -text +*.[bB][wW][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][dD][tT][sS] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Video formats +# Read more in: https://docs.unrealengine.com/5.0/en-US/media-framework-technical-reference-for-unreal-engine/ + +# Always recommended to use, supports all platforms: +# For the best compatibility and performance, it is recommended to use H.264 encoded MP4 (.mp4) container files. +*.[mM][pP]4 filter=lfs diff=lfs merge=lfs -text + +# Can also be used, only some platforms are supported: +*.3[gG]2 filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP] filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP]2 filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP][pP] filter=lfs diff=lfs merge=lfs -text +*.[mM]4[aA] filter=lfs diff=lfs merge=lfs -text +*.[mM]4[vV] filter=lfs diff=lfs merge=lfs -text +*.[mM][o][vV] filter=lfs diff=lfs merge=lfs -text +*.[aA][sS][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][vV][iI] filter=lfs diff=lfs merge=lfs -text +*.[wW][mM][vV] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Fonts +# Read more in: https://docs.unrealengine.com/5.0/en-US/importing-fonts-in-unreal-engine/ + +*.[tT][tT][fF] filter=lfs diff=lfs merge=lfs -text +*.[oO][tT][fF] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Documents +*.[cC][sS][vV] filter=lfs diff=lfs merge=lfs -text + +``` + +# Goolge Drive Setup + +If repo is ready, you will need some kind of disk space to make it works. So to fully integrate it use Google Drive Client [Download](https://www.google.com/drive/download/). +Install it and login so you can create a folder to store all big binary data. + +After loging you should be able to see your mounted folder in Finder in case using Mac or Windows Explorer as seperated disk. Open it and create a new folder there with name +`binary-lfs`. That name will be used to store all binary data for you project in lfs setup. + +# Git config integration + +If you have done right everything now it's a time to connect git-lfs with our tool and google drive. + +I used my favorite open-source [GitExtension](https://git-extensions-documentation.readthedocs.io/) software as reference for integration, but you can use terminal by using git config approach +or any kind of text editor. In case using text editor open up config file inside hidden .git folder inside root folder of your project repository. + +To open up the configuration of your github repository choose following option: + +
+ {% include figure.liquid path="assets/img/posts/integration_gitextension.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Open it up and append following lines, similar as inside [Cloning a repo](#cloning-a-repo) + +``` +[lfs "customtransfer.lfs-folder"] + path = C:\\Tools\\lfs-folderstore.exe + args = 'I:\\My drive\\binary-lfs' +[lfs] + standalonetransferagent = lfs-folder + repositoryformatversion = 0 +``` + +Afterwards you should be good to go, afterwards remember to sort out the LFS files in your checkout and copy the content from the now-configured shared folder, by using following command + +```bash +git reset --hard master +``` + +or if you are using fresh repository simply push it + +``` +git push -u origin main +``` + +# Troubleshooting + +Sometimes there could be some problems with your network or issues with git lfs +In case of smudge errors or problems you can use following hacks: + +- try using better internet connection low network bandwidth is not helping +- restart computer +- use `git lfs fetch --all` fetch git lfs files for ALL remote branches +- move your google drive or one drive directory cache to new folder and try to download the data again + +# Bibliography and sources + +- [Lfs folderstore repo](https://github.com/sinbad/lfs-folderstore) +- [Google Drive](https://www.google.com/drive/download/) +- [Gitlab Docs](https://docs.gitlab.com/) diff --git a/_i18n/en/_posts/2024-04-15-developing-programming-skills-with-making-games.md b/_i18n/en/_posts/2024-04-15-developing-programming-skills-with-making-games.md index 8afb1b56..7e0e5e02 100644 --- a/_i18n/en/_posts/2024-04-15-developing-programming-skills-with-making-games.md +++ b/_i18n/en/_posts/2024-04-15-developing-programming-skills-with-making-games.md @@ -2,7 +2,7 @@ layout: post title: Developing programming skills with making games date: 2024-04-15 7:40:16 -tags: game-dev software-development +tags: game-dev software-development categories: self-development --- @@ -15,6 +15,7 @@ In this context, game development seems to be an ideal tool for learning program In this article, we will explore the main reasons why game development can be an excellent way to develop programming skills. We will discover why creating games is not only fascinating and creative, but also an effective learning tool. Are you ready to embark on a journey through the world of programming through game development? Let's dive into it! # Learning beyond basic programming + Game development is not just about creating entertainment - it's a journey through the fascinating world of programming. It requires an understanding of basic programming concepts such as variables, loops, conditions, and many others. But what is game development really about? It's not just a string of code and complicated algorithms. It's a process that allows for interactive and satisfying creation of a world dreamed up by the programmer. Imagine this: the car you drive on your computer screen is not just a collection of pixels. It's the result of your code, created by you. Every pixel of that vehicle, every movement, is the result of your work. In games, just like in the real world, you have full control over what happens. You can build an entire world from scratch and then let players discover and explore it. @@ -44,7 +45,6 @@ Furthermore, the problems and challenges you will encounter when creating games It's also worth noting that game development can be an excellent opportunity to experiment with non-standard algorithms and programming techniques. From advanced artificial intelligence algorithms for non-player characters to advanced graphics effects and physical simulations - in the world of computer games, there is no place for boredom or routine. Every project is a new challenge and an opportunity to learn. -
{% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unreal.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %}
@@ -52,8 +52,8 @@ It's also worth noting that game development can be an excellent opportunity to In this way, game development becomes an excellent exercise for problem-solving skills. Each new game is a new technical challenge that requires a creative approach and analytical thinking. - # Development of Problem-Solving Skills + Writing computer games is not just about creating visually appealing and exciting experiences for players - it's also a technical challenge that requires solving various programming problems. From resource management to performance optimization and user interaction handling, every aspect of game development presents programmers with new and exciting challenges. One of the key aspects of game development is resource management. Computer games often use various types of resources such as textures, sounds, 3D models, or animations. Effective management of these resources, their loading, releasing, and usage at the right moments, can be a crucial factor influencing the performance and smoothness of the game. Therefore, programmers must not only be able to efficiently manage memory but also consider strategies such as caching, preloading, or streaming of resources. @@ -74,4 +74,4 @@ It's also worth noting that game development can be an excellent opportunity to
Implementing a game in real life can pose an interesting and engaging programming challenge.
-In this way, game development becomes an excellent exercise for problem-solving skills. Each new game is a new technical challenge that requires a creative approach and analytical thinking. \ No newline at end of file +In this way, game development becomes an excellent exercise for problem-solving skills. Each new game is a new technical challenge that requires a creative approach and analytical thinking. diff --git a/_i18n/en/_projects/agents-app.md b/_i18n/en/_projects/agents-app.md index 8d694ad7..5ebb09c6 100644 --- a/_i18n/en/_projects/agents-app.md +++ b/_i18n/en/_projects/agents-app.md @@ -30,6 +30,7 @@ Application have following functionalities: ## Technologies Used In the course of the project, I became acquainted with the following technologies and tools: + - C++ - ImGui - ImPlot diff --git a/_i18n/en/_projects/blog-manager.md b/_i18n/en/_projects/blog-manager.md index 805102b0..3f571b95 100644 --- a/_i18n/en/_projects/blog-manager.md +++ b/_i18n/en/_projects/blog-manager.md @@ -25,6 +25,7 @@ The project was undertaken to update knowledge and skills in ASP.NET technology. ## Technologies and Tools Used In the course of the project, I acquainted myself with the following technologies and tools: + - Entity Framework Core - Angular - C# @@ -36,4 +37,4 @@ In the course of the project, I acquainted myself with the following technologie - HTML - TypeScript - SCSS -- Visual Studio \ No newline at end of file +- Visual Studio diff --git a/_i18n/en/_projects/board-heroes-battle.md b/_i18n/en/_projects/board-heroes-battle.md index 83910d7e..69d351a0 100644 --- a/_i18n/en/_projects/board-heroes-battle.md +++ b/_i18n/en/_projects/board-heroes-battle.md @@ -1,90 +1,81 @@ - -# Project Description - -The aim of this project was to analyze and compare selected aspects of developing, functionality, and operation of augmented reality applications on the Android platform using Unity and Unreal Engine game engines. Additionally, it involved conducting a comparative analysis and playability research of hybrid games in the context of enriching traditional board gameplay and expanding its multiplayer capabilities. - -
-
- {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unity.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unreal.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unreal_castle.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- -# Functionality and Gameplay - -The game upon which the applications were based is a blend of turn-based strategy (TBS) with the Dungeon-Crawler board game genre. The application, to combine gameplay types and expand the range of gaming experiences, utilizes AR technology. Through this technology, elements of computer games are transferred into the real world. Using AR, character models, a virtual die, and dungeon room are overlaid onto the physical game board for gameplay. The technology employs image tracking to place them on the captured image from the device's camera and simulate their placement in any room. The game utilizes an AR interface for augmented images. - -
-
- {% include figure.liquid path="assets/img/projects/board_heroes_battle_main_menu.png" title="main-menu" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/projects/bhb_solo.png" title="solo game menu" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/projects/bhb_lan.png" title="lan game menu" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- -The game allows for both single-player and LAN multiplayer modes. Players aim to navigate through dungeons prepared in the form of boards with opponents they combat in turn-based gameplay. Each dungeon consists of several such boards in the form of 4 rooms. Characters fight by performing one of 3 actions in the order determined by the character's statistics. The player aims to defeat opponents on all boards through strategic selection of hero action targets, and in multiplayer gameplay, also cooperative elements. Randomness is introduced in the form of bonuses awarded through dice rolls or random functions. The game is composed of distinctive dungeons comprising thematic boards and unique opponents. The available player characters also possess characteristic class elements found in role-playing games, adding variety to the gameplay through unconventional environments, colorful characters, strategic selection of their movements, statistics, and unique abilities. An additional attraction is the extension of the user interface with AR buttons. Special markers are printed on the board, which, when covered by hand, trigger the execution of a specific action, replacing virtual buttons placed on the phone screen in the user interface. - - - -
-
- {% include figure.liquid path="assets/img/projects/board.jpg" title="example board" class="img-fluid rounded z-depth-1" %} -
-
-
- Example of game board used in AR gameplay as image target -
- -To summarize, the following functionalities were implemented: - -- Multiplayer and single-player modes with turn-based gameplay in augmented reality -- Image tracking -- Various levels and characters with unique abilities -- Balanced gameplay level -- Virtual die -- User-friendly interface -- Special effects and animations during combat -- Virtual buttons in augmented reality -- Optimized gameplay for performance - -## Challenges - -During the project development, several traps and challenges were overcome. Here are some of them: - -- Ensuring consistency in visual layer and gameplay in both applications. Both Unity and Unreal Engine provide their own abstractions for creating AR applications. Despite differences, similar gameplay and mechanics were ensured. -- Implementation of local network gameplay in an AR world. Real-time synchronization of each player, when each has their own device and camera, required numerous technological compromises on both Unity and Unreal Engine sides. -- Combining a board game with a mobile AR application - the hybrid aspect introducing new mechanics to the game required tackling not only digital aspects but also designing traditional board games. - -## Technologies Used - -In the course of project implementation, I became acquainted with the following technologies and tools: - -- Android Studio -- ARCore -- C++ -- C# -- Unreal Engine -- Unity -- Blender -- Photoshop -- Gimp -- Visual Studio -- Unreal Engine Blueprints -- Unity Editor Profiler -- Export from Unity to Unreal Engine -- Profiling tools in Android Studio - - - - - - +# Project Description + +The aim of this project was to analyze and compare selected aspects of developing, functionality, and operation of augmented reality applications on the Android platform using Unity and Unreal Engine game engines. Additionally, it involved conducting a comparative analysis and playability research of hybrid games in the context of enriching traditional board gameplay and expanding its multiplayer capabilities. + +
+
+ {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unity.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unreal.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unreal_castle.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ +# Functionality and Gameplay + +The game upon which the applications were based is a blend of turn-based strategy (TBS) with the Dungeon-Crawler board game genre. The application, to combine gameplay types and expand the range of gaming experiences, utilizes AR technology. Through this technology, elements of computer games are transferred into the real world. Using AR, character models, a virtual die, and dungeon room are overlaid onto the physical game board for gameplay. The technology employs image tracking to place them on the captured image from the device's camera and simulate their placement in any room. The game utilizes an AR interface for augmented images. + +
+
+ {% include figure.liquid path="assets/img/projects/board_heroes_battle_main_menu.png" title="main-menu" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/projects/bhb_solo.png" title="solo game menu" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/projects/bhb_lan.png" title="lan game menu" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ +The game allows for both single-player and LAN multiplayer modes. Players aim to navigate through dungeons prepared in the form of boards with opponents they combat in turn-based gameplay. Each dungeon consists of several such boards in the form of 4 rooms. Characters fight by performing one of 3 actions in the order determined by the character's statistics. The player aims to defeat opponents on all boards through strategic selection of hero action targets, and in multiplayer gameplay, also cooperative elements. Randomness is introduced in the form of bonuses awarded through dice rolls or random functions. The game is composed of distinctive dungeons comprising thematic boards and unique opponents. The available player characters also possess characteristic class elements found in role-playing games, adding variety to the gameplay through unconventional environments, colorful characters, strategic selection of their movements, statistics, and unique abilities. An additional attraction is the extension of the user interface with AR buttons. Special markers are printed on the board, which, when covered by hand, trigger the execution of a specific action, replacing virtual buttons placed on the phone screen in the user interface. + +
+
+ {% include figure.liquid path="assets/img/projects/board.jpg" title="example board" class="img-fluid rounded z-depth-1" %} +
+
+
+ Example of game board used in AR gameplay as image target +
+ +To summarize, the following functionalities were implemented: + +- Multiplayer and single-player modes with turn-based gameplay in augmented reality +- Image tracking +- Various levels and characters with unique abilities +- Balanced gameplay level +- Virtual die +- User-friendly interface +- Special effects and animations during combat +- Virtual buttons in augmented reality +- Optimized gameplay for performance + +## Challenges + +During the project development, several traps and challenges were overcome. Here are some of them: + +- Ensuring consistency in visual layer and gameplay in both applications. Both Unity and Unreal Engine provide their own abstractions for creating AR applications. Despite differences, similar gameplay and mechanics were ensured. +- Implementation of local network gameplay in an AR world. Real-time synchronization of each player, when each has their own device and camera, required numerous technological compromises on both Unity and Unreal Engine sides. +- Combining a board game with a mobile AR application - the hybrid aspect introducing new mechanics to the game required tackling not only digital aspects but also designing traditional board games. + +## Technologies Used + +In the course of project implementation, I became acquainted with the following technologies and tools: + +- Android Studio +- ARCore +- C++ +- C# +- Unreal Engine +- Unity +- Blender +- Photoshop +- Gimp +- Visual Studio +- Unreal Engine Blueprints +- Unity Editor Profiler +- Export from Unity to Unreal Engine +- Profiling tools in Android Studio diff --git a/_i18n/en/_projects/connect-the-pops-clone.md b/_i18n/en/_projects/connect-the-pops-clone.md index 72393580..331620f2 100644 --- a/_i18n/en/_projects/connect-the-pops-clone.md +++ b/_i18n/en/_projects/connect-the-pops-clone.md @@ -5,7 +5,7 @@ # Project Description -This is a project completed as a recruitment task for a Unity programmer position. It's a logic game for Android, [Connect the pops!](https://play.google.com/store/apps/details?id=com.casox.ConnectToMerge), reminiscent of the rules of [2048](https://en.wikipedia.org/wiki/2048_(video_game)). It includes the main game mechanics, which involve merging digital values in circular buttons with the value of the next power of the number 2. +This is a project completed as a recruitment task for a Unity programmer position. It's a logic game for Android, [Connect the pops!](https://play.google.com/store/apps/details?id=com.casox.ConnectToMerge), reminiscent of the rules of [2048](). It includes the main game mechanics, which involve merging digital values in circular buttons with the value of the next power of the number 2.
Recordings showing gameplay. On the left, you can see the original game, and on the right, a copy implemented by me. @@ -22,6 +22,7 @@ This is a project completed as a recruitment task for a Unity programmer positio # Implemented Features The following functionalities have been implemented as part of the project: + - looping of the power of the number two to exponentially increase the value - pleasant interaction system - animations @@ -30,6 +31,7 @@ The following functionalities have been implemented as part of the project: # Technologies and Tools Used As the project base, I used the basic tool template for mobile applications provided by Unity, along with: + - Unity UI - Unity Animator - [TextMeshPro](https://docs.unity3d.com/Packages/com.unity.textmeshpro@4.0/manual/index.html) diff --git a/_i18n/en/_projects/crafter.md b/_i18n/en/_projects/crafter.md index 9e8d209e..a58ee8d9 100644 --- a/_i18n/en/_projects/crafter.md +++ b/_i18n/en/_projects/crafter.md @@ -38,4 +38,4 @@ As the basis for the project, I used one of Unity's ready-made assets, [Asset Un - [Quick Outline](https://assetstore.unity.com/packages/tools/particles-effects/quick-outline-115488) - [TextMeshPro](https://docs.unity3d.com/Packages/com.unity.textmeshpro@4.0/manual/index.html) - Visual Studio -- GIMP \ No newline at end of file +- GIMP diff --git a/_i18n/en/_projects/file-upload.md b/_i18n/en/_projects/file-upload.md index 62aabacc..1f78d33b 100644 --- a/_i18n/en/_projects/file-upload.md +++ b/_i18n/en/_projects/file-upload.md @@ -1,6 +1,7 @@ # Project Description This is a Symfony application created as part of a recruitment project for a PHP programmer position. Its purpose was to assess my skills in this programming platform and to fulfill the following requirements: + - The first page contains a form with three fields: First Name, Last Name, Attachment. - The form fields are validated. First name and last name cannot be empty, and the file can only contain images no larger than 2MB. - Data from the form is asynchronously saved in the database. After submission, a message is displayed indicating success or failure. @@ -26,7 +27,8 @@ The most important aspect of the application is the [code](https://github.com/Zi ## Used Technologies As part of the project, I got acquainted with the following technologies and tools: + - [Symfony 7](https://symfony.com/7) - [PHPUnit](https://phpunit.de/index.html) - [Intervention Image](https://github.com/Intervention/image) -- [Doctrine](https://www.doctrine-project.org/) \ No newline at end of file +- [Doctrine](https://www.doctrine-project.org/) diff --git a/_i18n/en/_projects/ludo-just-chill-out.md b/_i18n/en/_projects/ludo-just-chill-out.md index 513348f5..f5a9bebf 100644 --- a/_i18n/en/_projects/ludo-just-chill-out.md +++ b/_i18n/en/_projects/ludo-just-chill-out.md @@ -43,14 +43,15 @@ The project implemented the following features: ## Technologies Used In the course of the project, I became acquainted with the following technologies and tools: + - .NET -- C# +- C# - 3D animations - Unity Cinemachine - Unity Terrain Tools - Visual Studio - Blender -- Unity Profiler +- Unity Profiler - Wwise - NUnit - Hack&Plan diff --git a/_i18n/en/_projects/lzss.md b/_i18n/en/_projects/lzss.md index 0eb8c678..296e0723 100644 --- a/_i18n/en/_projects/lzss.md +++ b/_i18n/en/_projects/lzss.md @@ -29,5 +29,6 @@ The following features were implemented as part of the project: ## Technologies Used As part of the project implementation, I became acquainted with the following technologies and tools: + - C++ -- WinApi \ No newline at end of file +- WinApi diff --git a/_i18n/en/_projects/night-catcher.md b/_i18n/en/_projects/night-catcher.md index 11ed9d82..66416875 100644 --- a/_i18n/en/_projects/night-catcher.md +++ b/_i18n/en/_projects/night-catcher.md @@ -34,6 +34,7 @@ The project implemented the following features: ## Technologies Used During the project implementation, I got acquainted with the following technologies and tools: + - .NET - C# - 2D Animations @@ -43,4 +44,4 @@ During the project implementation, I got acquainted with the following technolog - Wwise - NUnit - Hack&Plan -- Gimp \ No newline at end of file +- Gimp diff --git a/_i18n/en/_projects/polygangs.md b/_i18n/en/_projects/polygangs.md index adac438e..e6d1d7a5 100644 --- a/_i18n/en/_projects/polygangs.md +++ b/_i18n/en/_projects/polygangs.md @@ -21,6 +21,7 @@ The game focuses on recreating life in a Polish city in the 1990s. Conceptually, ## Responsibilities Within this project, I was responsible for: + - bug fixing - designing and implementing new mechanics - code reviews @@ -31,4 +32,4 @@ Within this project, I was responsible for: ## Knowledge gain -This was one of the first game titles I worked on in a fully commercial project in the game-dev industry. It taught me to maintain a distance from the code I was creating, consider the accessibility of new features when designing for non-technical people, make technological compromises, rapid prototyping, and testing effective solutions. \ No newline at end of file +This was one of the first game titles I worked on in a fully commercial project in the game-dev industry. It taught me to maintain a distance from the code I was creating, consider the accessibility of new features when designing for non-technical people, make technological compromises, rapid prototyping, and testing effective solutions. diff --git a/_i18n/en/_projects/todo-app.md b/_i18n/en/_projects/todo-app.md index 744c74ec..addab552 100644 --- a/_i18n/en/_projects/todo-app.md +++ b/_i18n/en/_projects/todo-app.md @@ -19,10 +19,11 @@ The project was carried out out of curiosity and passion for software developmen # Technologies Used While working on the project, I familiarized myself with the following technologies: + - Avalonia UI - WPF - C# - .NET Core - Visual Studio - MVVM -- XAML \ No newline at end of file +- XAML diff --git a/_i18n/en/_projects/web-cloud-system.md b/_i18n/en/_projects/web-cloud-system.md index 9d55d4fb..73c86dd1 100644 --- a/_i18n/en/_projects/web-cloud-system.md +++ b/_i18n/en/_projects/web-cloud-system.md @@ -9,8 +9,9 @@ This project was created as part of the recruitment process for the company wher ## Technologies and Tools Used During the project, I familiarized myself with the following technologies and tools: -- Entity Framework Core -- Angular + +- Entity Framework Core +- Angular - C# - .NET Core - MVC @@ -20,5 +21,5 @@ During the project, I familiarized myself with the following technologies and to - HTML - TypeScript - SCSS -- ASP.NET -- Rest \ No newline at end of file +- ASP.NET +- Rest diff --git a/_i18n/pl.yml b/_i18n/pl.yml index 4d62509c..73b5e23b 100644 --- a/_i18n/pl.yml +++ b/_i18n/pl.yml @@ -1,187 +1,187 @@ -not_found: - message: Zostaniesz przekierowany w ciągu 3 sekund. Jeżeli tak się nie stanie proszę wróc do - main_page: strony głównej -main: - contact_note: > - Jeżeli chcesz się ze mną skontaktować proszę napisz mi maila! - Na adres tomasz.komoszeski@gmail lub poprzez linkedin. - footer_text: > # the ">" symbol means to ignore newlines until "titles:" - Obsługiwane przez Jekyll razem z stylem multi-language-al-folio. - Hostowane na GitHub Pages. - Zdjęcia z Unsplash. - more_info: > -

Inżynier oprogramowania

-

Tomasz Komoszeski,

-

Polska

- subtitle: Inżynier oprogramowania oraz aspiruający programista gier -titles: - about: O mnie - blog: blog - cv: cv - latest_posts: ostatnie posty - news: wiadomości - profiles: ludzie - projects: projekty - publications: publikacje - repositories: repozytoria - selected_publications: wybrane publikacje - teaching: nauka - submenus: podmenu - unk: strona nie znaleziona -descriptions: - about: Portoflio inżyniera oprogramowania - archive-category: archiwum postów w tej kategorii - archive-tag: archiwum postów z tagiem - archive-year: archiwum postów z tym rokiem - blog: Prosty blog o programowaniu - cv: Curriculum Vitae. - profiles: Członkowie mojej grupy naukowej. - projects: Kolekcja moich projektów. - publications: Publikacje podzielone na kategorię w chronologicznym porządku. - repositories: Witaj w moim skarbcu kodu, gdzie zamieszczam moje najnowsze, wartościowe repozytoria kodu i statystyki na jego temat. - teaching: Materiały do kursów. - unk: Wygląda na to, że popełniono błąd i nic tutaj nie ma. -blog: - description: Blog o kodowaniu, programowaniu i innych ciekawych rzeczach - name: Think twice, code once # blog_name will be displayed in your blog page - nav_title: blog # your blog must have a title for it to be displayed in the nav bar - related_posts: - description: "Oto kilka następnych artykułów, które mogą Ci się również spodobać: " - title: Podoba Ci się ten artykuł? -months: - long: - january: Styczeń - february: Luty - march: Marzec - april: Kwiecień - may: Maj - june: Czerwiec - july: Lipiec - august: Sierpień - september: Wrzesień - october: Październik - november: Listopad - december: Grudzień - short: - january: Sty - february: Lut - march: Marz - april: Kwie - may: Maj - june: Czerw - july: Lipie - august: Sierp - september: Wrze - october: Paź - november: List - december: Grudz -news: - empty: Póki co pusto... - titles: - news1: Proste ogłoszenie w tekście. - news2: Długie ogłoszenie ze szczegółami - news3: "Proste ogłoszenie w tekście z emoji! :sparkles: :smile:" -pagination: - newer: Nowsze - older: Starsze - page: strona -projects: - titles: - project1: Board Heroes Battle - project2: Agents App - project3: Ludo - Just Chill Out - project4: Night Catcher - project5: Polygangs - project6: LZSS - project7: Boesner - project8: Leguano - project9: Axion - prooject10: Fliesen Discount - project11: Archiwalne Portfolio - project12: Zakodowana witryna internetowa - project13: Blog Manager - project14: Web Cloud System - project15: Todo App - project16: Crafter - project17: File Upload - project18: Klon gry Connect the pops! - descriptions: - project1: Gra w rozszerzonej rzeczywistości na platformę Android - project2: Aplikacja wykonująca symulacje Monte Carlo napisana w C++ - project3: Implmentacja słynnej gry w "Chińczyka" zrobiona w Unity - project4: Zręcznościowa gra mobilna zrobiona w Unity - project5: Symulator życia gangsterskiego w mieście z lat 90 w stylu low-poly - project6: Implementacja bezstratnego algorytmu kompresji danych LZSS - project7: Ponowna implementacja sklepu Boesner w technologii Shopware 5 - project8: Wdrożenie pierwszego sklepu w technologii Shopware 6 - project9: Pierwszy projekt w technologii Shopware 5 - project10: Przeniesienie istniejącego sklepu Shopware 5 na Shopware 6 - project11: Stary projekt portoflio zbudowany przy pomocy JavaScript, HTML, CSS i Webpacka - project12: Zakodowana strona internetowa na podstawie gotowego szablonu HTML, CSS i JS - project13: Aplikacja do zarządzania blogami MVC na platformie .NET Core i Angular z konfiguracją docker-compose dla lepszego doświadczenia programistycznego - project14: Aplikacja webowa do trzymania i zarządzania plikami. Napisana w .NET Core - project15: Prosta aplikacja ToDo, do zarzadzania wykonywanymi zadaniami napisania w .NET Core przy pomocy AvaloniaUI i WPF oraz testami jednostkowymi - project16: Projekt gry, w której został zaimplementowany podstawowy system tworzenia przedmiotów w Unity - project17: Aplikacja w symfony 7, doctrine i PhpUnit do wrzucania plików na serwer z walidowanym formularzem - project18: Klon gry na platformę android o nazwie "Connect The Pops!" - categories: - fun: dla zabawy - work: praca - web-development: aplikacje webowe - e-commerce: aplikacje e-commerce - game-dev: game-dev - desktop: aplikacje desktopowe -repositories: - users: Użytkownicy GitHub - repos: Repozytoria GitHub -cv: - address: Adres - area: Obszar - awarder: Nagradzony - awards: Nagrody - basics: Podstawowe informacje - certificates: Certyfikaty - city: Miasto - countryCode: Kod kraju - courses: Kursy - date: Data - education: Edukacja - email: Email - endDate: Data końcowa - fluency: Płynność - highlights: Przegląd najważniejszych wydarzeń - image: Obraz - institution: Instytucja - interests: Zainteresowania - issuer: Emitent - keywords: Słowa kluczowe - label: Etykieta - language: Język - languages: Języki - level: Poziom - location: Lokalizacja - name: Imię - network: Sieć - organization: Organizacja - phone: Telefon - position: Pozycja - postalCode: Kod pocztowy - profiles: Profile - projects: Projekty - publications: Publikacje - publisher: Wydawca - reference: Referencja - references: Referencje - region: Region - releaseDate: Data wydania - score: Punkty - skills: Umiejętności - startDate: Początkowa data - studyType: Przedmiot studiów - summary: Podsumowanie - table_of_contents: Spis treści - title: Tytuł - url: Url - username: Nazwa użytkownika - volunteer: Ochotnik - work: Praca \ No newline at end of file +not_found: + message: Zostaniesz przekierowany w ciągu 3 sekund. Jeżeli tak się nie stanie proszę wróc do + main_page: strony głównej +main: + contact_note: > + Jeżeli chcesz się ze mną skontaktować proszę napisz mi maila! + Na adres tomasz.komoszeski@gmail lub poprzez linkedin. + footer_text: > # the ">" symbol means to ignore newlines until "titles:" + Obsługiwane przez Jekyll razem z stylem multi-language-al-folio. + Hostowane na GitHub Pages. + Zdjęcia z Unsplash. + more_info: > +

Inżynier oprogramowania

+

Tomasz Komoszeski,

+

Polska

+ subtitle: Inżynier oprogramowania oraz aspiruający programista gier +titles: + about: O mnie + blog: blog + cv: cv + latest_posts: ostatnie posty + news: wiadomości + profiles: ludzie + projects: projekty + publications: publikacje + repositories: repozytoria + selected_publications: wybrane publikacje + teaching: nauka + submenus: podmenu + unk: strona nie znaleziona +descriptions: + about: Portoflio inżyniera oprogramowania + archive-category: archiwum postów w tej kategorii + archive-tag: archiwum postów z tagiem + archive-year: archiwum postów z tym rokiem + blog: Prosty blog o programowaniu + cv: Curriculum Vitae. + profiles: Członkowie mojej grupy naukowej. + projects: Kolekcja moich projektów. + publications: Publikacje podzielone na kategorię w chronologicznym porządku. + repositories: Witaj w moim skarbcu kodu, gdzie zamieszczam moje najnowsze, wartościowe repozytoria kodu i statystyki na jego temat. + teaching: Materiały do kursów. + unk: Wygląda na to, że popełniono błąd i nic tutaj nie ma. +blog: + description: Blog o kodowaniu, programowaniu i innych ciekawych rzeczach + name: Think twice, code once # blog_name will be displayed in your blog page + nav_title: blog # your blog must have a title for it to be displayed in the nav bar + related_posts: + description: "Oto kilka następnych artykułów, które mogą Ci się również spodobać: " + title: Podoba Ci się ten artykuł? +months: + long: + january: Styczeń + february: Luty + march: Marzec + april: Kwiecień + may: Maj + june: Czerwiec + july: Lipiec + august: Sierpień + september: Wrzesień + october: Październik + november: Listopad + december: Grudzień + short: + january: Sty + february: Lut + march: Marz + april: Kwie + may: Maj + june: Czerw + july: Lipie + august: Sierp + september: Wrze + october: Paź + november: List + december: Grudz +news: + empty: Póki co pusto... + titles: + news1: Proste ogłoszenie w tekście. + news2: Długie ogłoszenie ze szczegółami + news3: "Proste ogłoszenie w tekście z emoji! :sparkles: :smile:" +pagination: + newer: Nowsze + older: Starsze + page: strona +projects: + titles: + project1: Board Heroes Battle + project2: Agents App + project3: Ludo - Just Chill Out + project4: Night Catcher + project5: Polygangs + project6: LZSS + project7: Boesner + project8: Leguano + project9: Axion + prooject10: Fliesen Discount + project11: Archiwalne Portfolio + project12: Zakodowana witryna internetowa + project13: Blog Manager + project14: Web Cloud System + project15: Todo App + project16: Crafter + project17: File Upload + project18: Klon gry Connect the pops! + descriptions: + project1: Gra w rozszerzonej rzeczywistości na platformę Android + project2: Aplikacja wykonująca symulacje Monte Carlo napisana w C++ + project3: Implmentacja słynnej gry w "Chińczyka" zrobiona w Unity + project4: Zręcznościowa gra mobilna zrobiona w Unity + project5: Symulator życia gangsterskiego w mieście z lat 90 w stylu low-poly + project6: Implementacja bezstratnego algorytmu kompresji danych LZSS + project7: Ponowna implementacja sklepu Boesner w technologii Shopware 5 + project8: Wdrożenie pierwszego sklepu w technologii Shopware 6 + project9: Pierwszy projekt w technologii Shopware 5 + project10: Przeniesienie istniejącego sklepu Shopware 5 na Shopware 6 + project11: Stary projekt portoflio zbudowany przy pomocy JavaScript, HTML, CSS i Webpacka + project12: Zakodowana strona internetowa na podstawie gotowego szablonu HTML, CSS i JS + project13: Aplikacja do zarządzania blogami MVC na platformie .NET Core i Angular z konfiguracją docker-compose dla lepszego doświadczenia programistycznego + project14: Aplikacja webowa do trzymania i zarządzania plikami. Napisana w .NET Core + project15: Prosta aplikacja ToDo, do zarzadzania wykonywanymi zadaniami napisania w .NET Core przy pomocy AvaloniaUI i WPF oraz testami jednostkowymi + project16: Projekt gry, w której został zaimplementowany podstawowy system tworzenia przedmiotów w Unity + project17: Aplikacja w symfony 7, doctrine i PhpUnit do wrzucania plików na serwer z walidowanym formularzem + project18: Klon gry na platformę android o nazwie "Connect The Pops!" + categories: + fun: dla zabawy + work: praca + web-development: aplikacje webowe + e-commerce: aplikacje e-commerce + game-dev: game-dev + desktop: aplikacje desktopowe +repositories: + users: Użytkownicy GitHub + repos: Repozytoria GitHub +cv: + address: Adres + area: Obszar + awarder: Nagradzony + awards: Nagrody + basics: Podstawowe informacje + certificates: Certyfikaty + city: Miasto + countryCode: Kod kraju + courses: Kursy + date: Data + education: Edukacja + email: Email + endDate: Data końcowa + fluency: Płynność + highlights: Przegląd najważniejszych wydarzeń + image: Obraz + institution: Instytucja + interests: Zainteresowania + issuer: Emitent + keywords: Słowa kluczowe + label: Etykieta + language: Język + languages: Języki + level: Poziom + location: Lokalizacja + name: Imię + network: Sieć + organization: Organizacja + phone: Telefon + position: Pozycja + postalCode: Kod pocztowy + profiles: Profile + projects: Projekty + publications: Publikacje + publisher: Wydawca + reference: Referencja + references: Referencje + region: Region + releaseDate: Data wydania + score: Punkty + skills: Umiejętności + startDate: Początkowa data + studyType: Przedmiot studiów + summary: Podsumowanie + table_of_contents: Spis treści + title: Tytuł + url: Url + username: Nazwa użytkownika + volunteer: Ochotnik + work: Praca diff --git a/_i18n/pl/_news/announcement_1.md b/_i18n/pl/_news/announcement_1.md index 1febda08..742da2b7 100644 --- a/_i18n/pl/_news/announcement_1.md +++ b/_i18n/pl/_news/announcement_1.md @@ -1 +1 @@ -A simple inline announcement. +A simple inline announcement. diff --git a/_i18n/pl/_news/announcement_2.md b/_i18n/pl/_news/announcement_2.md index 82746d9c..68bda98d 100644 --- a/_i18n/pl/_news/announcement_2.md +++ b/_i18n/pl/_news/announcement_2.md @@ -1,25 +1,25 @@ -Announcements and news can be much longer than just quick inline posts. In fact, they can have all the features available for the standard blog posts. See below. - ---- - -Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy. - -#### Hipster list - -
    -
  • brunch
  • -
  • fixie
  • -
  • raybans
  • -
  • messenger bag
  • -
- -Hoodie Thundercats retro, tote bag 8-bit Godard craft beer gastropub. Truffaut Tumblr taxidermy, raw denim Kickstarter sartorial dreamcatcher. Quinoa chambray slow-carb salvia readymade, bicycle rights 90's yr typewriter selfies letterpress cardigan vegan. - ---- - -Pug heirloom High Life vinyl swag, single-origin coffee four dollar toast taxidermy reprehenderit fap distillery master cleanse locavore. Est anim sapiente leggings Brooklyn ea. Thundercats locavore excepteur veniam eiusmod. Raw denim Truffaut Schlitz, migas sapiente Portland VHS twee Bushwick Marfa typewriter retro id keytar. - -> We do not grow absolutely, chronologically. We grow sometimes in one dimension, and not in another, unevenly. We grow partially. We are relative. We are mature in one realm, childish in another. -> —Anais Nin - -Fap aliqua qui, scenester pug Echo Park polaroid irony shabby chic ex cardigan church-key Odd Future accusamus. Blog stumptown sartorial squid, gastropub duis aesthetic Truffaut vero. Pinterest tilde twee, odio mumblecore jean shorts lumbersexual. +Announcements and news can be much longer than just quick inline posts. In fact, they can have all the features available for the standard blog posts. See below. + +--- + +Jean shorts raw denim Vice normcore, art party High Life PBR skateboard stumptown vinyl kitsch. Four loko meh 8-bit, tousled banh mi tilde forage Schlitz dreamcatcher twee 3 wolf moon. Chambray asymmetrical paleo salvia, sartorial umami four loko master cleanse drinking vinegar brunch. Pinterest DIY authentic Schlitz, hoodie Intelligentsia butcher trust fund brunch shabby chic Kickstarter forage flexitarian. Direct trade cold-pressed meggings stumptown plaid, pop-up taxidermy. Hoodie XOXO fingerstache scenester Echo Park. Plaid ugh Wes Anderson, freegan pug selvage fanny pack leggings pickled food truck DIY irony Banksy. + +#### Hipster list + +
    +
  • brunch
  • +
  • fixie
  • +
  • raybans
  • +
  • messenger bag
  • +
+ +Hoodie Thundercats retro, tote bag 8-bit Godard craft beer gastropub. Truffaut Tumblr taxidermy, raw denim Kickstarter sartorial dreamcatcher. Quinoa chambray slow-carb salvia readymade, bicycle rights 90's yr typewriter selfies letterpress cardigan vegan. + +--- + +Pug heirloom High Life vinyl swag, single-origin coffee four dollar toast taxidermy reprehenderit fap distillery master cleanse locavore. Est anim sapiente leggings Brooklyn ea. Thundercats locavore excepteur veniam eiusmod. Raw denim Truffaut Schlitz, migas sapiente Portland VHS twee Bushwick Marfa typewriter retro id keytar. + +> We do not grow absolutely, chronologically. We grow sometimes in one dimension, and not in another, unevenly. We grow partially. We are relative. We are mature in one realm, childish in another. +> —Anais Nin + +Fap aliqua qui, scenester pug Echo Park polaroid irony shabby chic ex cardigan church-key Odd Future accusamus. Blog stumptown sartorial squid, gastropub duis aesthetic Truffaut vero. Pinterest tilde twee, odio mumblecore jean shorts lumbersexual. diff --git a/_i18n/pl/_news/announcement_3.md b/_i18n/pl/_news/announcement_3.md index 2881da36..22fc5398 100644 --- a/_i18n/pl/_news/announcement_3.md +++ b/_i18n/pl/_news/announcement_3.md @@ -1 +1 @@ -A simple inline announcement with Markdown emoji! :sparkles: :smile: +A simple inline announcement with Markdown emoji! :sparkles: :smile: diff --git a/_i18n/pl/_pages/about.md b/_i18n/pl/_pages/about.md index e4dbb2b5..95899557 100644 --- a/_i18n/pl/_pages/about.md +++ b/_i18n/pl/_pages/about.md @@ -1,7 +1,7 @@ -Cześć, mam na imię Tomek! - -Jestem programistą oraz konsultantem IT z szerokim zakresem umiejętności. Podczas pracy na różnych stanowiskach zdobyłem cenne umiejętności i wiedzę IT, które pozwoliły mi wdrażać innowacyjne pomysły, eliminować powstające ryzyka oraz budować skalowalne i trwałe rozwiązania. Zawsze podchodzę do swojej pracy profesjonalnie, a łączenie jej z pasją, pozwala mi utrzymać wysoki poziom motywacji i pro aktywną postawę. Kładę również wysoki nacisk na rozwój, stosując najnowsze technologie w branży IT, jednocześnie nie zapominając o starych, sprawdzonych rozwiązaniach. - -Swoją przygodę z IT zacząłem już od wczesnych lat szkolnych i kontynuowalem przez lata nauki i pracy. Jeżeli chcesz wiedzieć więcej o mnie i mojej ścieżce zawodowej zachęcam do przejrzenia zrealizowanych przeze mnie [projektów](/pl/projects) oraz [curicullum vitae](/pl/cv). Jeżeli mogę w czymś pomóc, nie zawachaj się ze mną [skontkatować](mailto:tomasz.komoszeski@gmail.com). - -W wolnym czasie lubię podróżować, programować i grać w gry, czytać ciekawe ksiązki i pisać posty na [moim blogu](/pl/blog)! \ No newline at end of file +Cześć, mam na imię Tomek! + +Jestem programistą oraz konsultantem IT z szerokim zakresem umiejętności. Podczas pracy na różnych stanowiskach zdobyłem cenne umiejętności i wiedzę IT, które pozwoliły mi wdrażać innowacyjne pomysły, eliminować powstające ryzyka oraz budować skalowalne i trwałe rozwiązania. Zawsze podchodzę do swojej pracy profesjonalnie, a łączenie jej z pasją, pozwala mi utrzymać wysoki poziom motywacji i pro aktywną postawę. Kładę również wysoki nacisk na rozwój, stosując najnowsze technologie w branży IT, jednocześnie nie zapominając o starych, sprawdzonych rozwiązaniach. + +Swoją przygodę z IT zacząłem już od wczesnych lat szkolnych i kontynuowalem przez lata nauki i pracy. Jeżeli chcesz wiedzieć więcej o mnie i mojej ścieżce zawodowej zachęcam do przejrzenia zrealizowanych przeze mnie [projektów](/pl/projects) oraz [curicullum vitae](/pl/cv). Jeżeli mogę w czymś pomóc, nie zawachaj się ze mną [skontkatować](mailto:tomasz.komoszeski@gmail.com). + +W wolnym czasie lubię podróżować, programować i grać w gry, czytać ciekawe ksiązki i pisać posty na [moim blogu](/pl/blog)! diff --git a/_i18n/pl/_pages/about_einstein.md b/_i18n/pl/_pages/about_einstein.md index 8685419f..d2633c2e 100644 --- a/_i18n/pl/_pages/about_einstein.md +++ b/_i18n/pl/_pages/about_einstein.md @@ -1,5 +1,5 @@ -Write your biography here. Tell the world about yourself. Link to your favorite [subreddit](http://reddit.com). You can put a picture in, too. The code is already in, just name your picture `prof_pic.jpg` and put it in the `img/` folder. - -Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing `profile` property of the YAML header of your `_pages/about.md`. Edit `_bibliography/papers.bib` and Jekyll will render your [publications page](/multi-language-al-folio/publications/) automatically. - -Link to your social media connections, too. This theme is set up to use [Font Awesome icons](https://fontawesome.com/) and [Academicons](https://jpswalsh.github.io/academicons/), like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them. +Write your biography here. Tell the world about yourself. Link to your favorite [subreddit](http://reddit.com). You can put a picture in, too. The code is already in, just name your picture `prof_pic.jpg` and put it in the `img/` folder. + +Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing `profile` property of the YAML header of your `_pages/about.md`. Edit `_bibliography/papers.bib` and Jekyll will render your [publications page](/multi-language-al-folio/publications/) automatically. + +Link to your social media connections, too. This theme is set up to use [Font Awesome icons](https://fontawesome.com/) and [Academicons](https://jpswalsh.github.io/academicons/), like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them. diff --git a/_i18n/pl/_posts/2022-07-17-how-to-start-with-git.md b/_i18n/pl/_posts/2022-07-17-how-to-start-with-git.md index c4fdbacb..12297c44 100644 --- a/_i18n/pl/_posts/2022-07-17-how-to-start-with-git.md +++ b/_i18n/pl/_posts/2022-07-17-how-to-start-with-git.md @@ -1,156 +1,155 @@ ---- -layout: post -title: Jak zacząć z GIT-em? -date: 2022-07-17 16:40:16 -tags: git gitExtensions -categories: tutorials ---- - - -Zastanawiałem się, co oznacza GIT. Oto co znalazłem: - -> GIT to słowo będące skrótem od angielskiego słowa "get", które zostało skrócone z "begetting". -> Jest również niejawne odniesienie do nieślubnych potomków, -> a termin jest mniej więcej synonimem głupca, durnia, kretyna lub idioty. W społeczności open source znaczenie wyboru nazwy różni się. - -Oznacza to, że GIT jest dla idiotów, którzy nie wiedzą, co robią. Doskonałe narzędzie dla programisty. Zacznijmy od początku. - -Linus Torvalds zdecydował się na jego rozwój dla jądra Linuxa. Od 2005 roku pomaga programistom śledzić zmiany w kodzie. Dostępny we wszystkich systemach operacyjnych i używany przez użytkowników na całym świecie. Łatwo z nim zacząć, ale trudniej być w nim eksperte. Jest to system kontroli wersji. Możesz go pobrać ze [tej strony](https://git-scm.com/downloads) i wypróbować samodzielnie. - -# Podstawy - -Pobierz i zainstaluj [gita](https://git-scm.com/downloads) na swoim systemie operacyjnym. -Aby kontynuować, musisz otworzyć terminal. -Po instalacji powinieneś być w stanie wykonać kilka poleceń gita. -Utwórz nowy folder. Następnie otwórz terminal w nowym folderze. -Utwórzmy repozytorium. Aby to osiągnąć, użyj poniższego polecenia. - -```bash -git init -``` - -# Narzędzia - -Istnieje kilka narzędzi GUI (ang. Graphic User Interface), które mogą pomóc Ci w rozpoczęciu pracy z Gitem. -Jeśli nie jesteś fanem terminala, polecam [GitExtensions](https://gitextensions.github.io/) - -
- {% include figure.liquid path="assets/img/posts/gitextension.png" alt="git extensions editor window" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Alternatywnie możesz użyć [SourceTree](https://www.sourcetreeapp.com/) jest on darmową alternatywą dla systemu Mac. Myślę, że jeśli używasz Linuxa, to równie dobrze możesz również korzystać z terminala. - -![SourceTree!](https://wac-cdn.atlassian.com/dam/jcr:580c367b-c240-453d-aa18-c7ced44324f9/hero-mac-screenshot.png?cdnVersion=651) - -# Commit -Dobrze, jak dotąd! Teraz zróbmy kilka commitów. Stwórz plik HTML o następującej zawartości. - -```html -

Hello there

-``` - -Teraz jesteś gotowy, do daleszej pracy z obszarem staging. -Co to jest obszar staging - wyjaśnijmy to jako pudełko, do którego wkładasz rzeczy, a następnie używasz go jako migawki, aby zatwierdzić zmiany. -Aby to zrobić, powinieneś określić ścieżkę do pliku w formacie pliku lub ścieżkę z jakimś wzorcem, np. - -```bash -.txt .xml, etc. -``` - -Polecenie dodawania pliku hello.html w terminalu - -```bash -git add hello.html -``` - -Możesz także dodać wszystkie pliki - -```bash -git add * -``` - -Następnie, wpisując: - -``` -git status -``` - -Powinieneś zobaczyć wszystkie pliki, które zostały przez ciebie dodane do obszaru staging. - -Następnie możesz zatwierdzić hello.html w swoim lokalnym repozytorium. -```bash -git commit -m "Add hello there file" -``` - -commit - to polecenie, które zapisuje migawkę "pudełka", które wcześniej dodaliśmy. - -# Commits message standards - -Chcę wyjaśnić kilka standardów dotyczących wiadomości commitów i jak często powinieneś to robić. Słyszałem, że im częściej to robisz, tym lepiej. Nie ma ograniczenia, później zawsze możesz zmniejszyć liczbę commitów, używając funkcji squash. Zacznijmy od formy wiadomości commita. Jak to powinno się robić: - -- Użyj zdaniowych trybów w linii tematu, np. "Naprawia uszkodzony link do Javadoc" - -- Rozpocznij zdanie linii tematu wielką literą, np. "Dodaje, Usuwa, Naprawia, Wprowadza, Unikaj itp." - -- Nie kończ linii tematu kropką - -- Zachowaj linie tematu do 50 znaków lub mniej, jeśli to możliwe - -- Zawijaj linie w treści na 72 znaki lub mniej - -- Wzmień związane z nim numery Jira na końcu komentarza commita, poprzedzone „Issue:” jak powyżej - -- W treści wiadomości commita wyjaśnij, jak działały rzeczy przed tym commitem, co się zmieniło i jak teraz działają rzeczy - -Lubie także dodać jakiś rodzaj tagu przed wiadomością commita, oto kilka przykładów: - - -```bash -– Feature - -– Bugfix - -– Cleanup - -– Hotfix -``` - -Kiedy pracujesz nad zadaniem, dobrze jest dodać pewną liczbę zadań, takich jak #123, które odnoszą się do niektórych. Podsumowując, powinno to wyglądać tak: - -```bash -[FEATURE] #123 My super not quite long commit message. - - -Here goes body messages where we describe what is going on. -Keep it short as much as you can, but include all necessary details -inside. - -Footer where summary and all other references should be applied for -example: -Those commits resolve issue #123 and #124 -``` - - -Git branches – tree of changes -Commits can be added to branches. The branch is a set of commits that are separated from the main branch just like in a tree with leafs. To create a branch: - -```bash -git branch -``` - -Aby zmienić gałąź - -``` -git checkout -``` - -Po zainicjowaniu repozytorium gita zwykle masz jedną istniejącą główną gałąź, z której wszystkie utworzone później gałęzie mogą być pochodne. Używaj ich, aby grupować pewne zmiany w funkcji, nad którą pracujesz. - -# Workflow - -Polecam zapoznanie się z kilkoma pojęciami gita, takimi jak gałąź, rebase, merge i squash. Po tym możesz zacząć myśleć o tym, jak pracować i zarządzać swoją pracą jako programista. Jestem wielkim zwolennikiem normalizacji i standardów przepływów pracy. Znalazłem kilka metodologii, które są popularne obecnie podczas pracy z gitem. - -- Gitflow -- Trunk - -Wybierz pierwszy, jeśli nie masz w swoim zestawie narzędzi CI/CD. Drugi jest świetny przy pracy z zintegrowanymi narzędziami do przeglądu kodu. \ No newline at end of file +--- +layout: post +title: Jak zacząć z GIT-em? +date: 2022-07-17 16:40:16 +tags: git gitExtensions +categories: tutorials +--- + +Zastanawiałem się, co oznacza GIT. Oto co znalazłem: + +> GIT to słowo będące skrótem od angielskiego słowa "get", które zostało skrócone z "begetting". +> Jest również niejawne odniesienie do nieślubnych potomków, +> a termin jest mniej więcej synonimem głupca, durnia, kretyna lub idioty. W społeczności open source znaczenie wyboru nazwy różni się. + +Oznacza to, że GIT jest dla idiotów, którzy nie wiedzą, co robią. Doskonałe narzędzie dla programisty. Zacznijmy od początku. + +Linus Torvalds zdecydował się na jego rozwój dla jądra Linuxa. Od 2005 roku pomaga programistom śledzić zmiany w kodzie. Dostępny we wszystkich systemach operacyjnych i używany przez użytkowników na całym świecie. Łatwo z nim zacząć, ale trudniej być w nim eksperte. Jest to system kontroli wersji. Możesz go pobrać ze [tej strony](https://git-scm.com/downloads) i wypróbować samodzielnie. + +# Podstawy + +Pobierz i zainstaluj [gita](https://git-scm.com/downloads) na swoim systemie operacyjnym. +Aby kontynuować, musisz otworzyć terminal. +Po instalacji powinieneś być w stanie wykonać kilka poleceń gita. +Utwórz nowy folder. Następnie otwórz terminal w nowym folderze. +Utwórzmy repozytorium. Aby to osiągnąć, użyj poniższego polecenia. + +```bash +git init +``` + +# Narzędzia + +Istnieje kilka narzędzi GUI (ang. Graphic User Interface), które mogą pomóc Ci w rozpoczęciu pracy z Gitem. +Jeśli nie jesteś fanem terminala, polecam [GitExtensions](https://gitextensions.github.io/) + +
+ {% include figure.liquid path="assets/img/posts/gitextension.png" alt="git extensions editor window" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Alternatywnie możesz użyć [SourceTree](https://www.sourcetreeapp.com/) jest on darmową alternatywą dla systemu Mac. Myślę, że jeśli używasz Linuxa, to równie dobrze możesz również korzystać z terminala. + +![SourceTree!](https://wac-cdn.atlassian.com/dam/jcr:580c367b-c240-453d-aa18-c7ced44324f9/hero-mac-screenshot.png?cdnVersion=651) + +# Commit + +Dobrze, jak dotąd! Teraz zróbmy kilka commitów. Stwórz plik HTML o następującej zawartości. + +```html +

Hello there

+``` + +Teraz jesteś gotowy, do daleszej pracy z obszarem staging. +Co to jest obszar staging - wyjaśnijmy to jako pudełko, do którego wkładasz rzeczy, a następnie używasz go jako migawki, aby zatwierdzić zmiany. +Aby to zrobić, powinieneś określić ścieżkę do pliku w formacie pliku lub ścieżkę z jakimś wzorcem, np. + +```bash +.txt .xml, etc. +``` + +Polecenie dodawania pliku hello.html w terminalu + +```bash +git add hello.html +``` + +Możesz także dodać wszystkie pliki + +```bash +git add * +``` + +Następnie, wpisując: + +``` +git status +``` + +Powinieneś zobaczyć wszystkie pliki, które zostały przez ciebie dodane do obszaru staging. + +Następnie możesz zatwierdzić hello.html w swoim lokalnym repozytorium. + +```bash +git commit -m "Add hello there file" +``` + +commit - to polecenie, które zapisuje migawkę "pudełka", które wcześniej dodaliśmy. + +# Commits message standards + +Chcę wyjaśnić kilka standardów dotyczących wiadomości commitów i jak często powinieneś to robić. Słyszałem, że im częściej to robisz, tym lepiej. Nie ma ograniczenia, później zawsze możesz zmniejszyć liczbę commitów, używając funkcji squash. Zacznijmy od formy wiadomości commita. Jak to powinno się robić: + +- Użyj zdaniowych trybów w linii tematu, np. "Naprawia uszkodzony link do Javadoc" + +- Rozpocznij zdanie linii tematu wielką literą, np. "Dodaje, Usuwa, Naprawia, Wprowadza, Unikaj itp." + +- Nie kończ linii tematu kropką + +- Zachowaj linie tematu do 50 znaków lub mniej, jeśli to możliwe + +- Zawijaj linie w treści na 72 znaki lub mniej + +- Wzmień związane z nim numery Jira na końcu komentarza commita, poprzedzone „Issue:” jak powyżej + +- W treści wiadomości commita wyjaśnij, jak działały rzeczy przed tym commitem, co się zmieniło i jak teraz działają rzeczy + +Lubie także dodać jakiś rodzaj tagu przed wiadomością commita, oto kilka przykładów: + +```bash +– Feature + +– Bugfix + +– Cleanup + +– Hotfix +``` + +Kiedy pracujesz nad zadaniem, dobrze jest dodać pewną liczbę zadań, takich jak #123, które odnoszą się do niektórych. Podsumowując, powinno to wyglądać tak: + +```bash +[FEATURE] #123 My super not quite long commit message. + + +Here goes body messages where we describe what is going on. +Keep it short as much as you can, but include all necessary details +inside. + +Footer where summary and all other references should be applied for +example: +Those commits resolve issue #123 and #124 +``` + +Git branches – tree of changes +Commits can be added to branches. The branch is a set of commits that are separated from the main branch just like in a tree with leafs. To create a branch: + +```bash +git branch +``` + +Aby zmienić gałąź + +``` +git checkout +``` + +Po zainicjowaniu repozytorium gita zwykle masz jedną istniejącą główną gałąź, z której wszystkie utworzone później gałęzie mogą być pochodne. Używaj ich, aby grupować pewne zmiany w funkcji, nad którą pracujesz. + +# Workflow + +Polecam zapoznanie się z kilkoma pojęciami gita, takimi jak gałąź, rebase, merge i squash. Po tym możesz zacząć myśleć o tym, jak pracować i zarządzać swoją pracą jako programista. Jestem wielkim zwolennikiem normalizacji i standardów przepływów pracy. Znalazłem kilka metodologii, które są popularne obecnie podczas pracy z gitem. + +- Gitflow +- Trunk + +Wybierz pierwszy, jeśli nie masz w swoim zestawie narzędzi CI/CD. Drugi jest świetny przy pracy z zintegrowanymi narzędziami do przeglądu kodu. diff --git a/_i18n/pl/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md b/_i18n/pl/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md index 69b03bc1..3e074389 100644 --- a/_i18n/pl/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md +++ b/_i18n/pl/_posts/2022-08-06-how-to-solve-rebase-merge-conflicts-with-GitExtensions.md @@ -1,134 +1,129 @@ ---- -layout: post -title: Jak rozwiązywać konfilkty przy pomocy GitExtensions? -date: 2022-08-06 16:40:16 -tags: git gitExtensions -categories: tutorials ---- - - -Czy kiedykolwiek zastanawiałeś się, jak łatwo połączyć swoje zmiany bez niszczenia całego projektu? Oto szybki i prosty przewodnik. Zaczynamy! -Po pierwsze, powinieneś zainstalować i skonfigurować [GitExtensions](https://git-extensions-documentation.readthedocs.io/). Następnie otwórz swoje repozytorium. W moim przypadku zawiera ono dwie gałęzie: master i develop. Sprawdź obraz poniżej, aby to zobaczyć. - -
-
- {% include figure.liquid path="assets/img/posts/gitExtensions_1.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/posts/gitExtensions_2.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- - -Zawiera plik hello.html z tym samym edytowanym wierszem, więc nie wie, który wiersz powinien być użyty, gdy [conflict](https://www.atlassian.com/git/tutorials/using-branches/merge-conflicts) wystąpi. - -## Jak zmienić baze? - -Aby [przebazować](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) z gałęzi develop na gałąź master, aby zatwierdzenie na gałęzi develop było "nad" zatwierdzeniami z gałęzi master i tak aby zawierał wszystkie zatwierdzenia z gałęzi master także. Jak to zrobić? -Przełącz się na gałąź develop. Kliknij prawym przyciskiem myszy na niej. Wybierz opcję przełączenia gałęzi, a następnie wybierz gałąź develop. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_3.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Kiedy jesteś na gałęzi develop, wybierz, dla którego zatwierdzenia chcesz zmienić bazę. W moim przypadku jest to zatwierdzenie z gałęzi master o wiadomości "Hope it will work". - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_4.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Po kliknięciu "yes", aby zmienić bazę, powinieneś zobaczyć komunikat o błędzie, ale nie martw się, nie ma w tym nic złego z git. To tylko informacja dla Ciebie, że musisz rozwiązać kilka konfliktów. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_5.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Następnie kliknij OK i kontynuuj. Następnie powinieneś zobaczyć podobne okno poniżej: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_6.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Wybierz rozwiązanie konfliktów, a następnie powinno pojawić się kolejne okno. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_7.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -To okno jest oknem rozwiązywania konfliktów scalania. Możesz rozwiązać konflikty scalania na dwa sposoby. Szybki i łatwy drugi sposób, dla którego używasz narzędzia do porównywania różnic, jak [kdiff3](https://github.com/KDE/kdiff3). - -## Szybki i łatwy sposób rozwiązania konfliktów scalania. - -Możesz zastosować zmiany dla pliku hello.html, odrzucając swoje zmiany i korzystając z zmian z gałęzi master. Kliknij prawym przyciskiem myszy na pliku hello.html i wybierz (theirs), jak na obrazie poniżej: - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_8.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Jeśli chcesz nadpisać zmiany, zawsze możesz użyć opcji (ours). Następnie kliknij kontynuuj przebazowanie w głównym oknie przebazowania. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_9.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -W przypadku większej liczby plików lub konfliktów, będziesz musiał je rozwiązać później. Pamiętaj, że praca z większymi plikami lub zmianami może zająć trochę czasu. - -## Praca z narzędziem do porównywania różnic - -Tutaj zmodyfikowałem trochę historię repozytorium, więc możemy z tym pracować - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_10.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} -
- - -Przebazuj ponownie i rozwijaj na gałąź master. - -1. Przełącz się na gałąź develop - -2. Wybierz pierwszy commit z gałęzi master z wiadomością "Some other changes" i kliknij prawym przyciskiem myszy na nim - -3. Przebazuj bieżącą gałąź na -> wybrany commit. - -Następnie zaczyna się magia. Pomijam kroki do okna konfliktów scalania, które są takie same jak powyżej. Wybierz otwórz je w kdiff3 lub innym narzędziu do scalania/porównywania. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_11.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Powinieneś zobaczyć okno podobne do poniższego: - - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_12.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Następnie występują trzy katalogi scalania: - -- ("A" jest traktowane jako starsza baza obu). - -- B - jest (ich) wersją gałęzi master - -- C - jest (nasze) w tym przypadku wersją gałęzi develop - - -Poniżej znajduje się okno wyjścia, które zawiera wynik scalania. - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_13.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Możesz wybrać wersję pliku, którą chcesz zostawić i połączyć je. Możesz zobaczyć, że wybrałem jedną linię z C, jedną linię z A i jedną linię z B. Następnie zapisałem plik i kontynuowałem przebazowanie po rozwiązaniu konfliktów. To proste, ale czasami sytuacja może się skomplikować, więc uważaj. - -Poniżej widoczny jest wynik zmiany bazy: - -
- {% include figure.liquid path="assets/img/posts/gitExtensions_14.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Stworzy to rozszerzenia plików .orig, więc zawsze możesz zobaczyć historię swoich zmian. - -Lepiej nie commitować tych plików do repozytorium. - -To wszystko! Mam nadzieję, że artykuł pomoże Ci w rozwiązywaniu konfliktów! +--- +layout: post +title: Jak rozwiązywać konfilkty przy pomocy GitExtensions? +date: 2022-08-06 16:40:16 +tags: git gitExtensions +categories: tutorials +--- + +Czy kiedykolwiek zastanawiałeś się, jak łatwo połączyć swoje zmiany bez niszczenia całego projektu? Oto szybki i prosty przewodnik. Zaczynamy! +Po pierwsze, powinieneś zainstalować i skonfigurować [GitExtensions](https://git-extensions-documentation.readthedocs.io/). Następnie otwórz swoje repozytorium. W moim przypadku zawiera ono dwie gałęzie: master i develop. Sprawdź obraz poniżej, aby to zobaczyć. + +
+
+ {% include figure.liquid path="assets/img/posts/gitExtensions_1.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/posts/gitExtensions_2.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ + +Zawiera plik hello.html z tym samym edytowanym wierszem, więc nie wie, który wiersz powinien być użyty, gdy [conflict](https://www.atlassian.com/git/tutorials/using-branches/merge-conflicts) wystąpi. + +## Jak zmienić baze? + +Aby [przebazować](https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase) z gałęzi develop na gałąź master, aby zatwierdzenie na gałęzi develop było "nad" zatwierdzeniami z gałęzi master i tak aby zawierał wszystkie zatwierdzenia z gałęzi master także. Jak to zrobić? +Przełącz się na gałąź develop. Kliknij prawym przyciskiem myszy na niej. Wybierz opcję przełączenia gałęzi, a następnie wybierz gałąź develop. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_3.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Kiedy jesteś na gałęzi develop, wybierz, dla którego zatwierdzenia chcesz zmienić bazę. W moim przypadku jest to zatwierdzenie z gałęzi master o wiadomości "Hope it will work". + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_4.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Po kliknięciu "yes", aby zmienić bazę, powinieneś zobaczyć komunikat o błędzie, ale nie martw się, nie ma w tym nic złego z git. To tylko informacja dla Ciebie, że musisz rozwiązać kilka konfliktów. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_5.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Następnie kliknij OK i kontynuuj. Następnie powinieneś zobaczyć podobne okno poniżej: + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_6.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Wybierz rozwiązanie konfliktów, a następnie powinno pojawić się kolejne okno. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_7.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +To okno jest oknem rozwiązywania konfliktów scalania. Możesz rozwiązać konflikty scalania na dwa sposoby. Szybki i łatwy drugi sposób, dla którego używasz narzędzia do porównywania różnic, jak [kdiff3](https://github.com/KDE/kdiff3). + +## Szybki i łatwy sposób rozwiązania konfliktów scalania. + +Możesz zastosować zmiany dla pliku hello.html, odrzucając swoje zmiany i korzystając z zmian z gałęzi master. Kliknij prawym przyciskiem myszy na pliku hello.html i wybierz (theirs), jak na obrazie poniżej: + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_8.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Jeśli chcesz nadpisać zmiany, zawsze możesz użyć opcji (ours). Następnie kliknij kontynuuj przebazowanie w głównym oknie przebazowania. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_9.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +W przypadku większej liczby plików lub konfliktów, będziesz musiał je rozwiązać później. Pamiętaj, że praca z większymi plikami lub zmianami może zająć trochę czasu. + +## Praca z narzędziem do porównywania różnic + +Tutaj zmodyfikowałem trochę historię repozytorium, więc możemy z tym pracować + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_10.jpg" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Przebazuj ponownie i rozwijaj na gałąź master. + +1. Przełącz się na gałąź develop + +2. Wybierz pierwszy commit z gałęzi master z wiadomością "Some other changes" i kliknij prawym przyciskiem myszy na nim + +3. Przebazuj bieżącą gałąź na -> wybrany commit. + +Następnie zaczyna się magia. Pomijam kroki do okna konfliktów scalania, które są takie same jak powyżej. Wybierz otwórz je w kdiff3 lub innym narzędziu do scalania/porównywania. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_11.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Powinieneś zobaczyć okno podobne do poniższego: + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_12.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Następnie występują trzy katalogi scalania: + +- ("A" jest traktowane jako starsza baza obu). + +- B - jest (ich) wersją gałęzi master + +- C - jest (nasze) w tym przypadku wersją gałęzi develop + +Poniżej znajduje się okno wyjścia, które zawiera wynik scalania. + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_13.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Możesz wybrać wersję pliku, którą chcesz zostawić i połączyć je. Możesz zobaczyć, że wybrałem jedną linię z C, jedną linię z A i jedną linię z B. Następnie zapisałem plik i kontynuowałem przebazowanie po rozwiązaniu konfliktów. To proste, ale czasami sytuacja może się skomplikować, więc uważaj. + +Poniżej widoczny jest wynik zmiany bazy: + +
+ {% include figure.liquid path="assets/img/posts/gitExtensions_14.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Stworzy to rozszerzenia plików .orig, więc zawsze możesz zobaczyć historię swoich zmian. + +Lepiej nie commitować tych plików do repozytorium. + +To wszystko! Mam nadzieję, że artykuł pomoże Ci w rozwiązywaniu konfliktów! diff --git a/_i18n/pl/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md b/_i18n/pl/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md index 9c619672..73bb3fcd 100644 --- a/_i18n/pl/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md +++ b/_i18n/pl/_posts/2023-10-23-how-to-store-big-binary-files-with-git-lfs.md @@ -1,313 +1,309 @@ ---- -layout: post -title: Jak przechowywać duże pliki binarne z użyciem git lfs na Google Drive lub One Drive? -date: 2023-10-23 16:40:16 -tags: git git-lfs git-extensions unity unreal-engine -categories: tutorials ---- - -# Adapter transferu - -Sugeruję połączenie git lfs z niestandardowym adapterem transferu. Zgodnie z dokumentacją git-lfs: - - -> Git LFS obsługuje wiele sposobów przesyłania (wgrywania i pobierania) plików. -> W podstawowych aplikacjach klienckich używa się żądania HTTP za pośrednictwem adresu URL zwróconego z API LFS dla danego obiektu. -> Klient obsługuje również rozszerzenia umożliwiające wznowienie pobierania (za pośrednictwem nagłówków Range) i przesyłania. - -# Przykłady użycia - -Wykorzystałem ten sposób do przechowywania plików multimedialnych w moim projekcie i do rozwoju oprogramowania w projektach związanych z grami. -Jestem pewien, że i Ty możesz to zrobić. W większości przypadków lubię to stosować do: -- projektów związanych z tworzeniem gier w silnikach takich jak Unity i Unreal Engine. -- przechowywania dbdumps -- przechowywania dużych plików multimedialnych (w razie potrzeby) - -Zawsze istnieje sposób, aby to zrobić również dla innych rodzajów projektów. - -W poniższym przykładzie będę używał gitlab, google drive i innych narzędzi. - -# Konfiguracja Gitlab-a - -Po pierwsze, musisz wyłączyć domyślną usługę lfs w gitlabie. Jest to bardzo dobrze udokumentowana funkcja w oficjalnej dokumentacji -[Gitlab](https://docs.gitlab.com/ee/topics/git/lfs), ale nie ma zbyt dużo informacji na temat tego, jak ją wyłączyć. - -Jest to trochę skomplikowane i niezbyt przyjazne dla użytkownika, ale oczywiście musisz wybrać swoje repozytorium i wejść w ustawienia. - -
-
- {% include figure.liquid path="assets/img/posts/settings_gitlab.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/posts/disable_gitlab_lfs_example.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- -Istnieje również inny sposób za pomocą wiersza poleceń gitlab oraz dla narzędzi CI za pomocą zmiennych środowiskowych, ale nie będę tego omawiał, trzymajmy to proste. -Jeśli gitlab lfs jest wyłączony na zdalnym serwerze, możesz zacząć od konfiguracji lokalnej. - -# Konfiguracja lokalnego repozytorium - -Będziesz potrzebował nowego repozytorium lub możesz użyć istniejącego. Sugeruję rozpoczęcie od stanu początkowego, abyś mógł skorzystać z prostego przewodnika konfiguracyjnego poniżej. - - -``` -git init -``` - -Dodaj również link do serwera zdalnego. Można to zrobić po konfiguracji lub później. -Dla lfs z gitlabem możesz sugerować się zgodnie z prostym samouczkiem [link do git](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#add-a-remote) - -# Konfiguracja lfs - -Pobierz narzędzie adaptera lfs z [dostępnych wydań](https://github.com/sinbad/lfs-folderstore/releases/tag/v1.0.1). - - -
- {% include figure.liquid path="assets/img/posts/OIP.jpg" class="img-fluid rounded z-depth-1" width="50%" zoomable=true %} -
- -Pobierz, rozpakuj, zainstaluj je -w dobrze znanej lokalizacji. Na przykład utwórz nowy folder na swoim głównym dysku roboczym, np. tak: ```C:\Tools```, więc pełna ścieżka do narzędzia -będzie wyglądać tak: ```C:\Tools\lfs-folderstore.exe```. - - -Aby skonfigurować repozytorium z lfs, dodaj plik .gitattributes w swoim repozytorium. -Przykłady można znaleźć pod tym [linkiem](https://github.com/gitattributes/gitattributes). - -## Unity .gitattributes - -``` -## in root - -*.cs diff=csharp text -*.cginc text -*.shader text - -*.mat merge=unityyamlmerge eol=lf -*.anim merge=unityyamlmerge eol=lf -*.unity merge=unityyamlmerge eol=lf -*.prefab merge=unityyamlmerge eol=lf -*.physicsMaterial2D merge=unityyamlmerge eol=lf -*.physicMaterial merge=unityyamlmerge eol=lf -*.asset merge=unityyamlmerge eol=lf -text -*.meta merge=unityyamlmerge eol=lf -*.controller merge=unityyamlmerge eol=lf - -## git-lfs ## - -#Image -*.jpg filter=lfs diff=lfs merge=lfs -text -*.jpeg filter=lfs diff=lfs merge=lfs -text -*.png filter=lfs diff=lfs merge=lfs -text -*.gif filter=lfs diff=lfs merge=lfs -text -*.psd filter=lfs diff=lfs merge=lfs -text -*.ai filter=lfs diff=lfs merge=lfs -text -*.tif filter=lfs diff=lfs merge=lfs -text - -#Audio -*.mp3 filter=lfs diff=lfs merge=lfs -text -*.wav filter=lfs diff=lfs merge=lfs -text -*.ogg filter=lfs diff=lfs merge=lfs -text -#Wwise -*.bnk filter=lfs diff=lfs merge=lfs -text - -#Video -*.mp4 filter=lfs diff=lfs merge=lfs -text -*.mov filter=lfs diff=lfs merge=lfs -text - -#3D Object -*.FBX filter=lfs diff=lfs merge=lfs -text -*.fbx filter=lfs diff=lfs merge=lfs -text -*.blend filter=lfs diff=lfs merge=lfs -text -*.obj filter=lfs diff=lfs merge=lfs -text - -#ETC -*.a filter=lfs diff=lfs merge=lfs -text -*.exr filter=lfs diff=lfs merge=lfs -text -*.tga filter=lfs diff=lfs merge=lfs -text -*.zip filter=lfs diff=lfs merge=lfs -text -*.dll filter=lfs diff=lfs merge=lfs -text -*.unitypackage filter=lfs diff=lfs merge=lfs -text -*.aif filter=lfs diff=lfs merge=lfs -text -*.ttf filter=lfs diff=lfs merge=lfs -text -*.rns filter=lfs diff=lfs merge=lfs -text -*.reason filter=lfs diff=lfs merge=lfs -text -*.lxo filter=lfs diff=lfs merge=lfs -text - -``` - -## Unreal Engine .gitattributes -``` -## Unreal Engine -## Auto detect text files and perform LF normalization ## - -* text=auto - -# UE file types -*.uasset filter=lfs diff=lfs merge=lfs -text -*.umap filter=lfs diff=lfs merge=lfs -text -*.udk filter=lfs diff=lfs merge=lfs -text -*.upk filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# 2D formats -# Read more in: https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Textures/Importing/ - -# Recommended use: -*.[tT][gG][aA] filter=lfs diff=lfs merge=lfs -text -*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text -*.[bB][mM][pP] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[fF][lL[oO][aA][tT] filter=lfs diff=lfs merge=lfs -text -*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text -*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text -*.[pP][cC][xX] filter=lfs diff=lfs merge=lfs -text -*.[pP][sS][dD] filter=lfs diff=lfs merge=lfs -text -*.[xX][cC][fF] filter=lfs diff=lfs merge=lfs -text -*.[tT][iI][fF] filter=lfs diff=lfs merge=lfs -text -*.[tT][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text - -# Other supported formats: -*.[hH][dD][rR] filter=lfs diff=lfs merge=lfs -text -*.[dD][dD][sS] filter=lfs diff=lfs merge=lfs -text -*.[eE][xX][rR] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# 3D formats - -# Always recommended to use: -# The UE4 FBX import pipeline uses FBX 2018 -*.[fF][bB][xX] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[oO][bB][jJ] filter=lfs diff=lfs merge=lfs -text - -# Other supported formats: -*.[aA][bB][cC] filter=lfs diff=lfs merge=lfs -text -*.[sS][rR][tT] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Audio formats -# Read more in: https://docs.unrealengine.com/4.27/en-US/WorkingWithAudio/Overview/#:~:text=Unreal%20Engine%204%20(UE4)%20supports,16%2Dbit%20format%20PCM%20files. - -# Always recommended to use: -*.[wW][aA][vV] filter=lfs diff=lfs merge=lfs -text - -# Can also be used: -*.[aA][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text -*.[oO][gG][gG] filter=lfs diff=lfs merge=lfs -text -*.[fF][lL][aA][cC] filter=lfs diff=lfs merge=lfs -text - -# Not recommended to use, but supported: -*.[mM][pP]3 filter=lfs diff=lfs merge=lfs -text -*.[wW][mM][aA] filter=lfs diff=lfs merge=lfs -text -*.[aA][cC]3 filter=lfs diff=lfs merge=lfs -text -*.[aA][mM][rR] filter=lfs diff=lfs merge=lfs -text -*.[aA][iI][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][uU] filter=lfs diff=lfs merge=lfs -text -*.[cC][dD][dD][aA] filter=lfs diff=lfs merge=lfs -text -*.[cC][aA][fF] filter=lfs diff=lfs merge=lfs -text -*.[bB][wW][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][dD][tT][sS] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Video formats -# Read more in: https://docs.unrealengine.com/5.0/en-US/media-framework-technical-reference-for-unreal-engine/ - -# Always recommended to use, supports all platforms: -# For the best compatibility and performance, it is recommended to use H.264 encoded MP4 (.mp4) container files. -*.[mM][pP]4 filter=lfs diff=lfs merge=lfs -text - -# Can also be used, only some platforms are supported: -*.3[gG]2 filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP] filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP]2 filter=lfs diff=lfs merge=lfs -text -*.3[gG][pP][pP] filter=lfs diff=lfs merge=lfs -text -*.[mM]4[aA] filter=lfs diff=lfs merge=lfs -text -*.[mM]4[vV] filter=lfs diff=lfs merge=lfs -text -*.[mM][o][vV] filter=lfs diff=lfs merge=lfs -text -*.[aA][sS][fF] filter=lfs diff=lfs merge=lfs -text -*.[aA][vV][iI] filter=lfs diff=lfs merge=lfs -text -*.[wW][mM][vV] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Fonts -# Read more in: https://docs.unrealengine.com/5.0/en-US/importing-fonts-in-unreal-engine/ - -*.[tT][tT][fF] filter=lfs diff=lfs merge=lfs -text -*.[oO][tT][fF] filter=lfs diff=lfs merge=lfs -text - --------------------------------------------------- - -# Documents -*.[cC][sS][vV] filter=lfs diff=lfs merge=lfs -text - -``` -# Konfiguracja Google Drive - -Jeśli repozytorium jest gotowe, będziesz potrzebować jakiegoś rodzaju przestrzeni dyskowej, aby to działało. Aby w pełni zintegrować to z Google Drive, użyj klienta Google Drive [Pobierz](https://www.google.com/drive/download/). -Zainstaluj go, zaloguj się, aby można było utworzyć folder do przechowywania wszystkich dużych danych binarnych. - -Po zalogowaniu powinieneś zobaczyć swój zamontowany folder w Finderze, jeśli używasz Maca, lub w Exploratorze Windows, jako oddzielony dysk. Otwórz go i utwórz nowy folder o nazwie -``binary-lfs``. Ta nazwa będzie używana do przechowywania wszystkich danych binarnych dla Twojego projektu w konfiguracji lfs. - -# Integracja konfiguracji Git - -Jeśli wszystko zostało wykonane prawidłowo, teraz nadszedł czas, aby połączyć git-lfs z naszym narzędziem i Google Drive. - -Użyłem mojego ulubionego otwartoźródłowego oprogramowania [GitExtension](https://git-extensions-documentation.readthedocs.io/) jako odniesienia do integracji, ale możesz użyć terminala za pomocą podejścia z konfiguracją git config -lub dowolnego edytora tekstu. W przypadku korzystania z edytora tekstu otwórz plik konfiguracyjny w ukrytym folderze .git w głównym folderze Twojego projektu repozytorium. - -Aby otworzyć konfigurację Twojego repozytorium github, wybierz następującą opcję: - - -
- {% include figure.liquid path="assets/img/posts/integration_gitextension.png" class="img-fluid rounded z-depth-1" zoomable=true %} -
- -Otwórz go i dodaj następujące linie. - - -``` -[lfs "customtransfer.lfs-folder"] - path = C:\\Tools\\lfs-folderstore.exe - args = 'I:\\My drive\\binary-lfs' -[lfs] - standalonetransferagent = lfs-folder - repositoryformatversion = 0 -``` - - -Następnie, pamiętaj, aby posortować pliki LFS i skopiować zawartość skonfigurowanego wspólnego folderu, używając następującej komendy - -```bash -git reset --hard master -``` -lub jeśli korzystasz z nowego repozytorium, po prostu je wyślij - -``` -git push -u origin main -``` - -# Rozwiązywanie problemów - -Czasami mogą pojawić się problemy z Twoją siecią lub z git lfs. W przypadku błędów smudge lub innych problemów można wypróbować następujące triki: - -- spróbuj użyć lepszego połączenia internetowego, słaby pasmo sieciowe nie pomaga -- zrestartuj komputer -- użyj ``git lfs fetch --all`` pobiera pliki git lfs dla WSZYSTKICH zdalnych gałęzi -- przenieś katalog cache Google Drive lub One Drive do nowego folderu i spróbuj ponownie pobrać dane - -# Bibliografia i źródła - -- [Lfs folderstore repo](https://github.com/sinbad/lfs-folderstore) -- [Google Drive](https://www.google.com/drive/download/) -- [Gitlab Docs](https://docs.gitlab.com/) - +--- +layout: post +title: Jak przechowywać duże pliki binarne z użyciem git lfs na Google Drive lub One Drive? +date: 2023-10-23 16:40:16 +tags: git git-lfs git-extensions unity unreal-engine +categories: tutorials +--- + +# Adapter transferu + +Sugeruję połączenie git lfs z niestandardowym adapterem transferu. Zgodnie z dokumentacją git-lfs: + +> Git LFS obsługuje wiele sposobów przesyłania (wgrywania i pobierania) plików. +> W podstawowych aplikacjach klienckich używa się żądania HTTP za pośrednictwem adresu URL zwróconego z API LFS dla danego obiektu. +> Klient obsługuje również rozszerzenia umożliwiające wznowienie pobierania (za pośrednictwem nagłówków Range) i przesyłania. + +# Przykłady użycia + +Wykorzystałem ten sposób do przechowywania plików multimedialnych w moim projekcie i do rozwoju oprogramowania w projektach związanych z grami. +Jestem pewien, że i Ty możesz to zrobić. W większości przypadków lubię to stosować do: + +- projektów związanych z tworzeniem gier w silnikach takich jak Unity i Unreal Engine. +- przechowywania dbdumps +- przechowywania dużych plików multimedialnych (w razie potrzeby) + +Zawsze istnieje sposób, aby to zrobić również dla innych rodzajów projektów. + +W poniższym przykładzie będę używał gitlab, google drive i innych narzędzi. + +# Konfiguracja Gitlab-a + +Po pierwsze, musisz wyłączyć domyślną usługę lfs w gitlabie. Jest to bardzo dobrze udokumentowana funkcja w oficjalnej dokumentacji +[Gitlab](https://docs.gitlab.com/ee/topics/git/lfs), ale nie ma zbyt dużo informacji na temat tego, jak ją wyłączyć. + +Jest to trochę skomplikowane i niezbyt przyjazne dla użytkownika, ale oczywiście musisz wybrać swoje repozytorium i wejść w ustawienia. + +
+
+ {% include figure.liquid path="assets/img/posts/settings_gitlab.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/posts/disable_gitlab_lfs_example.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ +Istnieje również inny sposób za pomocą wiersza poleceń gitlab oraz dla narzędzi CI za pomocą zmiennych środowiskowych, ale nie będę tego omawiał, trzymajmy to proste. +Jeśli gitlab lfs jest wyłączony na zdalnym serwerze, możesz zacząć od konfiguracji lokalnej. + +# Konfiguracja lokalnego repozytorium + +Będziesz potrzebował nowego repozytorium lub możesz użyć istniejącego. Sugeruję rozpoczęcie od stanu początkowego, abyś mógł skorzystać z prostego przewodnika konfiguracyjnego poniżej. + +``` +git init +``` + +Dodaj również link do serwera zdalnego. Można to zrobić po konfiguracji lub później. +Dla lfs z gitlabem możesz sugerować się zgodnie z prostym samouczkiem [link do git](https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html#add-a-remote) + +# Konfiguracja lfs + +Pobierz narzędzie adaptera lfs z [dostępnych wydań](https://github.com/sinbad/lfs-folderstore/releases/tag/v1.0.1). + +
+ {% include figure.liquid path="assets/img/posts/OIP.jpg" class="img-fluid rounded z-depth-1" width="50%" zoomable=true %} +
+ +Pobierz, rozpakuj, zainstaluj je +w dobrze znanej lokalizacji. Na przykład utwórz nowy folder na swoim głównym dysku roboczym, np. tak: `C:\Tools`, więc pełna ścieżka do narzędzia +będzie wyglądać tak: `C:\Tools\lfs-folderstore.exe`. + +Aby skonfigurować repozytorium z lfs, dodaj plik .gitattributes w swoim repozytorium. +Przykłady można znaleźć pod tym [linkiem](https://github.com/gitattributes/gitattributes). + +## Unity .gitattributes + +``` +## in root + +*.cs diff=csharp text +*.cginc text +*.shader text + +*.mat merge=unityyamlmerge eol=lf +*.anim merge=unityyamlmerge eol=lf +*.unity merge=unityyamlmerge eol=lf +*.prefab merge=unityyamlmerge eol=lf +*.physicsMaterial2D merge=unityyamlmerge eol=lf +*.physicMaterial merge=unityyamlmerge eol=lf +*.asset merge=unityyamlmerge eol=lf -text +*.meta merge=unityyamlmerge eol=lf +*.controller merge=unityyamlmerge eol=lf + +## git-lfs ## + +#Image +*.jpg filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.gif filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.ai filter=lfs diff=lfs merge=lfs -text +*.tif filter=lfs diff=lfs merge=lfs -text + +#Audio +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +#Wwise +*.bnk filter=lfs diff=lfs merge=lfs -text + +#Video +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.mov filter=lfs diff=lfs merge=lfs -text + +#3D Object +*.FBX filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text + +#ETC +*.a filter=lfs diff=lfs merge=lfs -text +*.exr filter=lfs diff=lfs merge=lfs -text +*.tga filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.dll filter=lfs diff=lfs merge=lfs -text +*.unitypackage filter=lfs diff=lfs merge=lfs -text +*.aif filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.rns filter=lfs diff=lfs merge=lfs -text +*.reason filter=lfs diff=lfs merge=lfs -text +*.lxo filter=lfs diff=lfs merge=lfs -text + +``` + +## Unreal Engine .gitattributes + +``` +## Unreal Engine +## Auto detect text files and perform LF normalization ## + +* text=auto + +# UE file types +*.uasset filter=lfs diff=lfs merge=lfs -text +*.umap filter=lfs diff=lfs merge=lfs -text +*.udk filter=lfs diff=lfs merge=lfs -text +*.upk filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# 2D formats +# Read more in: https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Textures/Importing/ + +# Recommended use: +*.[tT][gG][aA] filter=lfs diff=lfs merge=lfs -text +*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text +*.[bB][mM][pP] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[fF][lL[oO][aA][tT] filter=lfs diff=lfs merge=lfs -text +*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text +*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text +*.[pP][cC][xX] filter=lfs diff=lfs merge=lfs -text +*.[pP][sS][dD] filter=lfs diff=lfs merge=lfs -text +*.[xX][cC][fF] filter=lfs diff=lfs merge=lfs -text +*.[tT][iI][fF] filter=lfs diff=lfs merge=lfs -text +*.[tT][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text + +# Other supported formats: +*.[hH][dD][rR] filter=lfs diff=lfs merge=lfs -text +*.[dD][dD][sS] filter=lfs diff=lfs merge=lfs -text +*.[eE][xX][rR] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# 3D formats + +# Always recommended to use: +# The UE4 FBX import pipeline uses FBX 2018 +*.[fF][bB][xX] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[oO][bB][jJ] filter=lfs diff=lfs merge=lfs -text + +# Other supported formats: +*.[aA][bB][cC] filter=lfs diff=lfs merge=lfs -text +*.[sS][rR][tT] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Audio formats +# Read more in: https://docs.unrealengine.com/4.27/en-US/WorkingWithAudio/Overview/#:~:text=Unreal%20Engine%204%20(UE4)%20supports,16%2Dbit%20format%20PCM%20files. + +# Always recommended to use: +*.[wW][aA][vV] filter=lfs diff=lfs merge=lfs -text + +# Can also be used: +*.[aA][iI][fF][fF] filter=lfs diff=lfs merge=lfs -text +*.[oO][gG][gG] filter=lfs diff=lfs merge=lfs -text +*.[fF][lL][aA][cC] filter=lfs diff=lfs merge=lfs -text + +# Not recommended to use, but supported: +*.[mM][pP]3 filter=lfs diff=lfs merge=lfs -text +*.[wW][mM][aA] filter=lfs diff=lfs merge=lfs -text +*.[aA][cC]3 filter=lfs diff=lfs merge=lfs -text +*.[aA][mM][rR] filter=lfs diff=lfs merge=lfs -text +*.[aA][iI][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][uU] filter=lfs diff=lfs merge=lfs -text +*.[cC][dD][dD][aA] filter=lfs diff=lfs merge=lfs -text +*.[cC][aA][fF] filter=lfs diff=lfs merge=lfs -text +*.[bB][wW][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][dD][tT][sS] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Video formats +# Read more in: https://docs.unrealengine.com/5.0/en-US/media-framework-technical-reference-for-unreal-engine/ + +# Always recommended to use, supports all platforms: +# For the best compatibility and performance, it is recommended to use H.264 encoded MP4 (.mp4) container files. +*.[mM][pP]4 filter=lfs diff=lfs merge=lfs -text + +# Can also be used, only some platforms are supported: +*.3[gG]2 filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP] filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP]2 filter=lfs diff=lfs merge=lfs -text +*.3[gG][pP][pP] filter=lfs diff=lfs merge=lfs -text +*.[mM]4[aA] filter=lfs diff=lfs merge=lfs -text +*.[mM]4[vV] filter=lfs diff=lfs merge=lfs -text +*.[mM][o][vV] filter=lfs diff=lfs merge=lfs -text +*.[aA][sS][fF] filter=lfs diff=lfs merge=lfs -text +*.[aA][vV][iI] filter=lfs diff=lfs merge=lfs -text +*.[wW][mM][vV] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Fonts +# Read more in: https://docs.unrealengine.com/5.0/en-US/importing-fonts-in-unreal-engine/ + +*.[tT][tT][fF] filter=lfs diff=lfs merge=lfs -text +*.[oO][tT][fF] filter=lfs diff=lfs merge=lfs -text + +-------------------------------------------------- + +# Documents +*.[cC][sS][vV] filter=lfs diff=lfs merge=lfs -text + +``` + +# Konfiguracja Google Drive + +Jeśli repozytorium jest gotowe, będziesz potrzebować jakiegoś rodzaju przestrzeni dyskowej, aby to działało. Aby w pełni zintegrować to z Google Drive, użyj klienta Google Drive [Pobierz](https://www.google.com/drive/download/). +Zainstaluj go, zaloguj się, aby można było utworzyć folder do przechowywania wszystkich dużych danych binarnych. + +Po zalogowaniu powinieneś zobaczyć swój zamontowany folder w Finderze, jeśli używasz Maca, lub w Exploratorze Windows, jako oddzielony dysk. Otwórz go i utwórz nowy folder o nazwie +`binary-lfs`. Ta nazwa będzie używana do przechowywania wszystkich danych binarnych dla Twojego projektu w konfiguracji lfs. + +# Integracja konfiguracji Git + +Jeśli wszystko zostało wykonane prawidłowo, teraz nadszedł czas, aby połączyć git-lfs z naszym narzędziem i Google Drive. + +Użyłem mojego ulubionego otwartoźródłowego oprogramowania [GitExtension](https://git-extensions-documentation.readthedocs.io/) jako odniesienia do integracji, ale możesz użyć terminala za pomocą podejścia z konfiguracją git config +lub dowolnego edytora tekstu. W przypadku korzystania z edytora tekstu otwórz plik konfiguracyjny w ukrytym folderze .git w głównym folderze Twojego projektu repozytorium. + +Aby otworzyć konfigurację Twojego repozytorium github, wybierz następującą opcję: + +
+ {% include figure.liquid path="assets/img/posts/integration_gitextension.png" class="img-fluid rounded z-depth-1" zoomable=true %} +
+ +Otwórz go i dodaj następujące linie. + +``` +[lfs "customtransfer.lfs-folder"] + path = C:\\Tools\\lfs-folderstore.exe + args = 'I:\\My drive\\binary-lfs' +[lfs] + standalonetransferagent = lfs-folder + repositoryformatversion = 0 +``` + +Następnie, pamiętaj, aby posortować pliki LFS i skopiować zawartość skonfigurowanego wspólnego folderu, używając następującej komendy + +```bash +git reset --hard master +``` + +lub jeśli korzystasz z nowego repozytorium, po prostu je wyślij + +``` +git push -u origin main +``` + +# Rozwiązywanie problemów + +Czasami mogą pojawić się problemy z Twoją siecią lub z git lfs. W przypadku błędów smudge lub innych problemów można wypróbować następujące triki: + +- spróbuj użyć lepszego połączenia internetowego, słaby pasmo sieciowe nie pomaga +- zrestartuj komputer +- użyj `git lfs fetch --all` pobiera pliki git lfs dla WSZYSTKICH zdalnych gałęzi +- przenieś katalog cache Google Drive lub One Drive do nowego folderu i spróbuj ponownie pobrać dane + +# Bibliografia i źródła + +- [Lfs folderstore repo](https://github.com/sinbad/lfs-folderstore) +- [Google Drive](https://www.google.com/drive/download/) +- [Gitlab Docs](https://docs.gitlab.com/) diff --git a/_i18n/pl/_posts/2024-04-15-developing-programming-skills-with-making-games.md b/_i18n/pl/_posts/2024-04-15-developing-programming-skills-with-making-games.md index 11df00a2..e444c781 100644 --- a/_i18n/pl/_posts/2024-04-15-developing-programming-skills-with-making-games.md +++ b/_i18n/pl/_posts/2024-04-15-developing-programming-skills-with-making-games.md @@ -74,4 +74,4 @@ Warto również zauważyć, że pisanie gier może być doskonałą okazją do e
Implementacja gry w życie może stanowić interesujące i ciekawe wyzwanie programistyczne
-W ten sposób, pisanie gier staje się doskonałym ćwiczeniem dla umiejętności rozwiązywania problemów. Każda nowa gra to nowe wyzwanie techniczne, które wymaga kreatywnego podejścia i zdolności do myślenia analitycznego. \ No newline at end of file +W ten sposób, pisanie gier staje się doskonałym ćwiczeniem dla umiejętności rozwiązywania problemów. Każda nowa gra to nowe wyzwanie techniczne, które wymaga kreatywnego podejścia i zdolności do myślenia analitycznego. diff --git a/_i18n/pl/_projects/agents-app.md b/_i18n/pl/_projects/agents-app.md index dc5a8dfb..5ebfb3d5 100644 --- a/_i18n/pl/_projects/agents-app.md +++ b/_i18n/pl/_projects/agents-app.md @@ -1,39 +1,40 @@ - - -# Opis projektu - -Celem projektu było stworzenie symulacji czasu rzeczywistego schematu budowania reputacji i zaufania, oferując cenne spostrzeżenia na temat złożoności interakcji międzyludzkich i ekosystemów cyfrowych. Symulacja dostarczyła danych na temat dynamiki budowania zaufania i reputacji. Opracowałem narzędzia do analizy danych, które umożliwiły użytkownikom wizualizację trendów, wzorców i korelacji w symulowanym ekosystemie. Ta funkcja ułatwiła głębsze zrozumienie czynników wpływających na zaufanie. -Projekt został zrealizowany podczas studiów magisterskich na Politechnice Gdańskiej. - -
-
- {% include figure.liquid path="assets/img/projects/agents_app2.png" title="agents app gui" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
-
- Ekran GUI aplikacji -
- -## Funkcjonalnośći - -W ramach projektu zaimplementowane zostały następujace funkcjonalności: - -- okno logowania, które pozwala śledzić, filtrować i lepiej zrozumieć zachodzące procesie symulacji etapy budowania zaufania -- możliwość edycji wprowadzanych parametrów takich jak początkowy poziom zaufania, liczba agentów czy liczby wprowadzanych -- tryb boost, pozwalający na szybsze wykonywanie obliczeń i symulacji -- eksport wyników symulacji do pliku MSOffice Excel -- podgląd w czasie rzeczywistym wyników symulacji -- pasek stanu symulacji - -## Wykorzystane technologie - -W ramach realizacji projektu udało mi się zapoznać z następującymi technologami i narzędziami -- C++ -- ImGui -- ImPlot -- GoogleTests -- OpenXLSX -- Visual Studio + + +# Opis projektu + +Celem projektu było stworzenie symulacji czasu rzeczywistego schematu budowania reputacji i zaufania, oferując cenne spostrzeżenia na temat złożoności interakcji międzyludzkich i ekosystemów cyfrowych. Symulacja dostarczyła danych na temat dynamiki budowania zaufania i reputacji. Opracowałem narzędzia do analizy danych, które umożliwiły użytkownikom wizualizację trendów, wzorców i korelacji w symulowanym ekosystemie. Ta funkcja ułatwiła głębsze zrozumienie czynników wpływających na zaufanie. +Projekt został zrealizowany podczas studiów magisterskich na Politechnice Gdańskiej. + +
+
+ {% include figure.liquid path="assets/img/projects/agents_app2.png" title="agents app gui" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+
+ Ekran GUI aplikacji +
+ +## Funkcjonalnośći + +W ramach projektu zaimplementowane zostały następujace funkcjonalności: + +- okno logowania, które pozwala śledzić, filtrować i lepiej zrozumieć zachodzące procesie symulacji etapy budowania zaufania +- możliwość edycji wprowadzanych parametrów takich jak początkowy poziom zaufania, liczba agentów czy liczby wprowadzanych +- tryb boost, pozwalający na szybsze wykonywanie obliczeń i symulacji +- eksport wyników symulacji do pliku MSOffice Excel +- podgląd w czasie rzeczywistym wyników symulacji +- pasek stanu symulacji + +## Wykorzystane technologie + +W ramach realizacji projektu udało mi się zapoznać z następującymi technologami i narzędziami + +- C++ +- ImGui +- ImPlot +- GoogleTests +- OpenXLSX +- Visual Studio diff --git a/_i18n/pl/_projects/blog-manager.md b/_i18n/pl/_projects/blog-manager.md index a582c91c..38908282 100644 --- a/_i18n/pl/_projects/blog-manager.md +++ b/_i18n/pl/_projects/blog-manager.md @@ -25,8 +25,9 @@ Projekt zostal zrealizowany w celu zaaktualizowania wiedzy i kompetencji z zakre ## Wykorzystane technologie i narzędzia W ramach realizacji projektu udało mi się zapoznać z następującymi technologami i narzędziami -- Entity Framework Core -- Angular + +- Entity Framework Core +- Angular - C# - .NET Core - MVC @@ -36,4 +37,4 @@ W ramach realizacji projektu udało mi się zapoznać z następującymi technolo - HTML - TypeScript - SCSS -- Visual Studio \ No newline at end of file +- Visual Studio diff --git a/_i18n/pl/_projects/board-heroes-battle.md b/_i18n/pl/_projects/board-heroes-battle.md index a711c8dd..88800006 100644 --- a/_i18n/pl/_projects/board-heroes-battle.md +++ b/_i18n/pl/_projects/board-heroes-battle.md @@ -1,101 +1,93 @@ - -# Opis projektu - -Celem niniejszej pracy była analiza i porównanie wybranych aspektów wytwarzania, funkcjonalności oraz działania aplikacji rzeczywistości rozszerzonej na platformę Android przy użyciu silników gier Unity i Unreal Engine oraz przeprowadzenie analizy porównawczej i badań grywalności gier hybrydowych w kontekście wzbogacenia tradycyjnej rozgrywki planszowej oraz poszerzenia -dla niej możliwości rozgrywki wieloosobowej. - -
-
- {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unity.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unreal.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unreal_castle.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- -# Funkcjonalnośći i rozgrywka - -Gra, na podstawie której stworzone zostały aplikacje, jest mieszanką turowej gry strategicznej -TBS z gatunkiem gry planszowej Dungeon-Crawler. Aplikacja w celu połączenia -rodzajów rozgrywki oraz rozszerzenia zakresu doświadczeń z gry wykorzystuje technologię AR. Za pomocą wymienionej technologii przenoszone są elementy gier komputerowych do świata rzeczywistego. Przy użyciu AR nakładane są na fizyczną planszę rozgrywki -modele postaci, wirtualna kość oraz pokój lochu wykorzystywane w rozgrywce. Technologia korzysta ze śledzenia obrazów w celu umieszczenia ich na rejestrowanym obrazie z kamery urządzenia i symulowanie umiejscowienia w dowolnym pomieszczeniu. Gra wykorzystuje interfejs AR dla obrazów rozszerzonych. - -
-
- {% include figure.liquid path="assets/img/projects/board_heroes_battle_main_menu.png" title="main-menu" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/projects/bhb_solo.png" title="solo game menu" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- {% include figure.liquid path="assets/img/projects/bhb_lan.png" title="lan game menu" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
- -Gra pozwala na tryb pojedynczego gracza lub tryb sieciowy typu LAN rozgrywki. Uczestnicy rozgrywki mają na celu przejście lochów przygotowanych w postaci plansz z -przeciwnikami z którymi walczą w rozgrywce turowej. Każdy z lochów zbudowany jest z kilku takich -plansz w postaci 4 pokoi. Postacie walczą wykonując jedną z 3 akcji w kolejności wyznaczanej -poprzez statystkę postaci. Gracz ma na celu pokonanie przeciwników na wszystkich planszach poprzez strategiczny dobór celów akcji bohaterów, a w rozgrywce wieloosobowej -również elementu współpracy. Element losowości wprowadzony jest w postaci bonusów rozlosowywanych za pomocą kości do gry lub funkcji losowej. -Gra zbudowana jest z charakterystycznych lochów składających się z tematycznych plansz -i niepowtarzalnych przeciwników. Dostępni dla gracza bohaterowie, także posiadają charakterystyczny element klas dla gier fabularnych. Elementy te urozmaicają rozgrywkę poprzez nieszablonowe otoczenie, barwne postacie,element strategicznego doboru ich ruchów, statystyk oraz -unikalnych umiejętności. -Dodatkową atrakcją jest rozszerzenie interfejsu użytkownika o przyciski AR. Na planszy wydrukowane są specjalne znaczniki, które po przykryciu ręką wywołują wykonanie danej akcji. Zastępują one przyciski wirtualne umieszczone na ekranie telefonu w interfejsie użytkownika. - - - -
-
- {% include figure.liquid path="assets/img/projects/board.jpg" title="example board" class="img-fluid rounded z-depth-1" zoomable=true %} -
-
-
- Przykładowa plansza do gry -
- -Podsumowując zaimplementowano nastepujace funkcjonalności: - -- tryb wielosobowy i pojedynczego gracza z rozgrywką turową w rozszerzonej rzeczywistości -- śledzenie obrazów -- rózne poziomy i postacie z unikatowymi zdolnościami -- zbalansowany poziom rozgrywki -- wirtualną kość -- przystępny interfejs użytkownika -- efekty specjalne i animacje podczas walki -- wirtualne przyciski w rozszerzonej rzeczywistości -- zapewniono optymalną rozgrywkę poprzez optymalizację rozgrywki - -## Wyzwania - -Podczas tworzenia projektu udało się pokonać szereg pułapek i wyzwań, które czekały na każdym kroku rozwoju aplikacji. Oto niektóre z nich. - -- Zapewnienie spójności w wartwie wizualnej i rozgrywki w obu aplikacjach. Zarówno Unity i Unreal Engine udostępniają własną abstrakcje, jeżeli chodzi o tworzenie aplikacji AR. Mimo różnic udało się zapewnić podobną rozgrywkę i mechaniki. -- Implementacja lokalnej rozgrywki sieciowej z świecie AR. Synchronizacja w czasie rzeczywistym każdego z graczy, gdy każdy ma własne urządzenie i kamerę wymusiło stosowanie wielu kompromisów technologicznych zarówno po stronie Unity jak i Unreal Engine. -- Połączenie gry planszowej z mobilną aplikacją AR - aspekt hybrydowości wprowadzajacy do gry nowe mechaniki wymagał zmierzenia się nie tylko z aspektami cyfrowymi, ale z projektowaniem tradyjnych gier planszowych. - -## Wykorzystane technologie - -W ramach realizacji projektu udało mi się zapoznać z następującymi technologami i narzędziami -- Android Studio -- ARCore -- C++ -- C# -- Unreal Engine, -- Unity -- Blender -- Photoshop -- Gimp -- Visual Studio -- Unreal Engine Bluepirnts -- Unity Editor Porfiler -- Eksport z Unity do Unreal Engine -- Narzędzia do profilowania w Android Studio - - - - - - +# Opis projektu + +Celem niniejszej pracy była analiza i porównanie wybranych aspektów wytwarzania, funkcjonalności oraz działania aplikacji rzeczywistości rozszerzonej na platformę Android przy użyciu silników gier Unity i Unreal Engine oraz przeprowadzenie analizy porównawczej i badań grywalności gier hybrydowych w kontekście wzbogacenia tradycyjnej rozgrywki planszowej oraz poszerzenia +dla niej możliwości rozgrywki wieloosobowej. + +
+
+ {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unity.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unreal.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/projects/BoardHeroesBattle_unreal_castle.jpg" title="example image" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ +# Funkcjonalnośći i rozgrywka + +Gra, na podstawie której stworzone zostały aplikacje, jest mieszanką turowej gry strategicznej +TBS z gatunkiem gry planszowej Dungeon-Crawler. Aplikacja w celu połączenia +rodzajów rozgrywki oraz rozszerzenia zakresu doświadczeń z gry wykorzystuje technologię AR. Za pomocą wymienionej technologii przenoszone są elementy gier komputerowych do świata rzeczywistego. Przy użyciu AR nakładane są na fizyczną planszę rozgrywki +modele postaci, wirtualna kość oraz pokój lochu wykorzystywane w rozgrywce. Technologia korzysta ze śledzenia obrazów w celu umieszczenia ich na rejestrowanym obrazie z kamery urządzenia i symulowanie umiejscowienia w dowolnym pomieszczeniu. Gra wykorzystuje interfejs AR dla obrazów rozszerzonych. + +
+
+ {% include figure.liquid path="assets/img/projects/board_heroes_battle_main_menu.png" title="main-menu" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/projects/bhb_solo.png" title="solo game menu" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ {% include figure.liquid path="assets/img/projects/bhb_lan.png" title="lan game menu" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+ +Gra pozwala na tryb pojedynczego gracza lub tryb sieciowy typu LAN rozgrywki. Uczestnicy rozgrywki mają na celu przejście lochów przygotowanych w postaci plansz z +przeciwnikami z którymi walczą w rozgrywce turowej. Każdy z lochów zbudowany jest z kilku takich +plansz w postaci 4 pokoi. Postacie walczą wykonując jedną z 3 akcji w kolejności wyznaczanej +poprzez statystkę postaci. Gracz ma na celu pokonanie przeciwników na wszystkich planszach poprzez strategiczny dobór celów akcji bohaterów, a w rozgrywce wieloosobowej +również elementu współpracy. Element losowości wprowadzony jest w postaci bonusów rozlosowywanych za pomocą kości do gry lub funkcji losowej. +Gra zbudowana jest z charakterystycznych lochów składających się z tematycznych plansz +i niepowtarzalnych przeciwników. Dostępni dla gracza bohaterowie, także posiadają charakterystyczny element klas dla gier fabularnych. Elementy te urozmaicają rozgrywkę poprzez nieszablonowe otoczenie, barwne postacie,element strategicznego doboru ich ruchów, statystyk oraz +unikalnych umiejętności. +Dodatkową atrakcją jest rozszerzenie interfejsu użytkownika o przyciski AR. Na planszy wydrukowane są specjalne znaczniki, które po przykryciu ręką wywołują wykonanie danej akcji. Zastępują one przyciski wirtualne umieszczone na ekranie telefonu w interfejsie użytkownika. + +
+
+ {% include figure.liquid path="assets/img/projects/board.jpg" title="example board" class="img-fluid rounded z-depth-1" zoomable=true %} +
+
+
+ Przykładowa plansza do gry +
+ +Podsumowując zaimplementowano nastepujace funkcjonalności: + +- tryb wielosobowy i pojedynczego gracza z rozgrywką turową w rozszerzonej rzeczywistości +- śledzenie obrazów +- rózne poziomy i postacie z unikatowymi zdolnościami +- zbalansowany poziom rozgrywki +- wirtualną kość +- przystępny interfejs użytkownika +- efekty specjalne i animacje podczas walki +- wirtualne przyciski w rozszerzonej rzeczywistości +- zapewniono optymalną rozgrywkę poprzez optymalizację rozgrywki + +## Wyzwania + +Podczas tworzenia projektu udało się pokonać szereg pułapek i wyzwań, które czekały na każdym kroku rozwoju aplikacji. Oto niektóre z nich. + +- Zapewnienie spójności w wartwie wizualnej i rozgrywki w obu aplikacjach. Zarówno Unity i Unreal Engine udostępniają własną abstrakcje, jeżeli chodzi o tworzenie aplikacji AR. Mimo różnic udało się zapewnić podobną rozgrywkę i mechaniki. +- Implementacja lokalnej rozgrywki sieciowej z świecie AR. Synchronizacja w czasie rzeczywistym każdego z graczy, gdy każdy ma własne urządzenie i kamerę wymusiło stosowanie wielu kompromisów technologicznych zarówno po stronie Unity jak i Unreal Engine. +- Połączenie gry planszowej z mobilną aplikacją AR - aspekt hybrydowości wprowadzajacy do gry nowe mechaniki wymagał zmierzenia się nie tylko z aspektami cyfrowymi, ale z projektowaniem tradyjnych gier planszowych. + +## Wykorzystane technologie + +W ramach realizacji projektu udało mi się zapoznać z następującymi technologami i narzędziami + +- Android Studio +- ARCore +- C++ +- C# +- Unreal Engine, +- Unity +- Blender +- Photoshop +- Gimp +- Visual Studio +- Unreal Engine Bluepirnts +- Unity Editor Porfiler +- Eksport z Unity do Unreal Engine +- Narzędzia do profilowania w Android Studio diff --git a/_i18n/pl/_projects/connect-the-pops-clone.md b/_i18n/pl/_projects/connect-the-pops-clone.md index e9830657..ead370a2 100644 --- a/_i18n/pl/_projects/connect-the-pops-clone.md +++ b/_i18n/pl/_projects/connect-the-pops-clone.md @@ -1,4 +1,3 @@ -