28 Commits

Author SHA1 Message Date
安红豆 4e029b7de8 Add utteranc comment plugin (#465)
* add comment plugin utteranc(save message to github issue)

config.yml
    # Enable comment feature. There, should be only one of them.
    comment:
      enable: true
      utteranc:
        repo: ormissia/ormissia.github.io
        issueTerm: title
        theme: github-light

* Update utteranc.html
2021-11-18 23:17:46 +06:00
Emruz Hossain 3cd9c910f7 Find Linked Issues to a PR (#456)
* Find Linked Issues to a PR

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Add issue parser workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Add custom action

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update linked_issues workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-11-04 21:18:58 +00:00
dependabot[bot] a4e30e80a3 Bump peter-evans/create-pull-request from 3.10.1 to 3.11.0 (#460)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.10.1 to 3.11.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.10.1...v3.11.0)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-04 11:04:26 +00:00
dependabot[bot] 5d3f195c00 Bump actions/checkout from 2.3.5 to 2.4.0 (#458)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.5 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.5...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-03 11:09:41 +00:00
Emruz Hossain 8dbe04b95d Add issue parser workflow 2021-11-03 00:09:45 +06:00
Emruz Hossain cac27fc8c4 Fix issue automation workflow 2021-11-02 00:57:38 +06:00
Emruz Hossain b9d6b6612c Update workflow 2021-11-02 00:54:53 +06:00
Emruz Hossain 0d1bd1f9f4 Update Issue Automation (#454)
* Update Issue Automation

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Add connected event

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflows

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-11-02 00:49:36 +06:00
Emruz Hossain b28d8e93cf Add connected event for issues 2021-11-01 23:08:17 +06:00
Emruz Hossain 9c8b6bd59b Update issue automation workflow 2021-11-01 22:45:05 +06:00
Emruz Hossain 0773fe303e Update project automation workflow for PR (#452)
* Update project automation workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-10-29 20:33:40 +00:00
Emruz Hossain 32837a0938 Fix disqus comment not working on new configuration style (#451)
* Fix disqus comment not working on new configuration style

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Fix LOC badge

Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-10-29 16:37:46 +00:00
hossainemruz 8e7e195b91 Fix issue workflow
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-10-29 05:02:56 +06:00
Emruz Hossain 232e5d2f3a Add project automation workflow (#447)
* Add project automation workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Print project_data.json

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update project automation

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

* Update workflow

Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-10-29 05:00:37 +06:00
github-actions[bot] 2ffc0c7a9c add vendor specific css prefixes (#448)
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
2021-10-28 21:30:02 +06:00
Emily 098179ec1f Add valine comment system support (#446)
* feat: add valine support

* Adjust the comment config

* Adjust the comment config

* Make comment section backward compatible with old config

Signed-off-by: hossainemruz <hossainemruz@gmail.com>

Co-authored-by: hossainemruz <hossainemruz@gmail.com>
2021-10-28 15:11:25 +00:00
Florian ANCEAU ff86f78b4d Fix badge display when name is too long (#445) 2021-10-21 09:18:12 +00:00
github-actions[bot] b5c3713277 add vendor specific css prefixes (#444)
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
2021-10-21 01:12:40 +06:00
Pablo Marcos ad149f4d80 Fixed absLangURL issue with sections in footer (#442)
* Add Blogtrottr as newsletter provider

* Fixed absLangURL issue with sections in footer

Co-authored-by: Pablo Marcos <codebergflamingo@staplehorse.anonaddy.com>
2021-10-20 19:00:17 +00:00
Emruz Hossain 35c6586412 Fix unwanted margin on topbar (#438)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-10-18 18:24:28 +00:00
Reyhan 6e41689c06 Fixed section landing position on navigation #154 (#436)
* Fixed alignment issue in tables under education(#233)

* Fixed section landing position on navigation

Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-10-18 18:16:10 +00:00
dependabot[bot] f779ac4ebb Bump actions/checkout from 2.3.4 to 2.3.5 (#437)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2.3.4...v2.3.5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-18 11:04:32 +00:00
Reyhan adf5d52ab3 Fixed alignment issue in tables under education(#233) (#434) 2021-10-12 17:10:04 +00:00
github-actions[bot] ba997ff4c5 Update and run autoprefixer #432
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
2021-10-08 00:04:31 +06:00
Jai Vaidya 7b604b30e5 Added smoother effects to the navbar (#429) 2021-10-07 17:46:16 +00:00
github-actions[bot] 8a8c0ec9fd Update and run autoprefixer (#425)
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-29 05:55:44 +00:00
BoT 6e849034ac Update Simplified Chinese and Traditional Chinese. (#427)
Signed-off-by: Ray <Chow-Ray@outlook.com>
2021-09-29 05:54:39 +00:00
dependabot[bot] 41b1106703 Bump actions/setup-node from 2.4.0 to 2.4.1 (#424)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.4.0...v2.4.1)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-28 11:04:52 +00:00
31 changed files with 593 additions and 116 deletions
+3 -3
View File
@@ -8,10 +8,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout to latest commit - name: Checkout to latest commit
uses: actions/checkout@v2.3.4 uses: actions/checkout@v2.4.0
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v2.4.0 uses: actions/setup-node@v2.4.1
with: with:
node-version: "15.x" node-version: "15.x"
@@ -21,7 +21,7 @@ jobs:
npm run autoprefixer npm run autoprefixer
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v3.10.1 uses: peter-evans/create-pull-request@v3.11.0
with: with:
branch: autoprefixer branch: autoprefixer
branch-suffix: timestamp branch-suffix: timestamp
+1 -1
View File
@@ -39,7 +39,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v2.4.0
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
+1 -1
View File
@@ -8,6 +8,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
# checkout to latest commit # checkout to latest commit
- uses: actions/checkout@master - uses: actions/checkout@v2.4.0
# run markdown linter # run markdown linter
- uses: gaurav-nelson/github-action-markdown-link-check@1.0.13 - uses: gaurav-nelson/github-action-markdown-link-check@1.0.13
@@ -0,0 +1,150 @@
name: Project Automation (Issue)
on:
issues:
types:
- opened
- reopened
- closed
- labeled
- unlabeled
jobs:
issue_automation:
runs-on: ubuntu-latest
steps:
- name: Get project data
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
ORGANIZATION: hugo-toha
PROJECT_NUMBER: 4
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
query($org: String!, $number: Int!) {
organization(login: $org){
projectNext(number: $number) {
id
fields(first:20) {
nodes {
id
name
settings
}
}
}
}
}' -f org="$ORGANIZATION" -F number=$PROJECT_NUMBER > project_data.json
echo 'PROJECT_ID='$(jq -r '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
# Read the ID of the "Type" field options
echo 'TYPE_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.id' project_data.json) >> $GITHUB_ENV
echo 'PROJECT_ID='$(jq -r '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_BUG='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Bug") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_FEATURE='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Feature") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_ENHANCEMENT='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Enhancement") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_DOCUMENTATION='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Documentation") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_TRANSLATION='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Translation") |.id' project_data.json) >> $GITHUB_ENV
# Read the id of the "Status" field options
echo 'STATUS_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_TODO='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_IN_PROGRESS='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="In Progress") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_READY_FOR_REVIEW='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Ready for Review") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_DONE='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Done") |.id' project_data.json) >> $GITHUB_ENV
- name: Add Issue to project
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
ISSUE_ID: ${{ github.event.issue.node_id }}
run: |
item_id="$( gh api graphql -f query='
mutation($project:ID!, $issue:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $issue}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f issue="$ISSUE_ID" --jq '.data.addProjectNextItem.projectNextItem.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
- name: Export Labels
env:
ISSUE_DATA: ${{ toJson(github.event.issue) }}
run: |
echo 'LABELS='$(echo "$ISSUE_DATA" | jq -r '[.labels[].name] | join(" ")') >> $GITHUB_ENV
- name: Set "Type" field
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
# Only execute this step if the Issue contains at least one label
if [ "${#LABELS[@]}" -gt 0 ]; then
# Let by default the type is "Bug"
OPTION_ID=$TYPE_BUG
# If it has "feature" label then set the type to "Feature"
if [[ "${LABELS[*]}" =~ "feature" ]]; then
OPTION_ID=$TYPE_FEATURE
fi
# If it has "enhancement" label then set the type to "Enhancement"
if [[ "${LABELS[*]}" =~ "enhancement" ]]; then
OPTION_ID=$TYPE_ENHANCEMENT
fi
# If it has "documentation" label then set the type to "Documentation"
if [[ "${LABELS[*]}" =~ "documentation" ]]; then
OPTION_ID=$TYPE_DOCUMENTATION
fi
# If it has "translation" label then set the type to "Translation"
if [[ "${LABELS[*]}" =~ "translation" ]]; then
OPTION_ID=$TYPE_TRANSLATION
fi
# Set the "Type" field to appropriate option
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $opt_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $opt_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$ITEM_ID" -f field="$TYPE_ID" -f opt_id="$OPTION_ID" --silent
fi
- name: Set "Status" field
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
STATE=${{github.event.issue.state}}
echo "State: $STATE"
OPTION_ID=$STATUS_TODO
if [[ "${STATE}" == "closed" ]]
then
OPTION_ID=$STATUS_DONE
fi
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $status_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $status_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$ITEM_ID" -f field="$STATUS_ID" -f status_id="$OPTION_ID" --silent
@@ -0,0 +1,219 @@
name: Project Automation (PR)
on:
pull_request:
types:
- opened
- ready_for_review
- reopened
- review_requested
- closed
- labeled
- unlabeled
- synchronize
jobs:
pr_automation:
runs-on: ubuntu-latest
steps:
- name: Get project data
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
ORGANIZATION: hugo-toha
PROJECT_NUMBER: 4
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
query($org: String!, $number: Int!) {
organization(login: $org){
projectNext(number: $number) {
id
fields(first:20) {
nodes {
id
name
settings
}
}
}
}
}' -f org="$ORGANIZATION" -F number=$PROJECT_NUMBER > project_data.json
echo 'PROJECT_ID='$(jq -r '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
# Read the ID of the "Type" field options
echo 'TYPE_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.id' project_data.json) >> $GITHUB_ENV
echo 'PROJECT_ID='$(jq -r '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_BUG='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Bug") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_FEATURE='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Feature") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_ENHANCEMENT='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Enhancement") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_DOCUMENTATION='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Documentation") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_TRANSLATION='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Translation") |.id' project_data.json) >> $GITHUB_ENV
# Read the id of the "Status" field options
echo 'STATUS_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_TODO='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_IN_PROGRESS='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="In Progress") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_READY_FOR_REVIEW='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Ready for Review") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_DONE='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Done") |.id' project_data.json) >> $GITHUB_ENV
- name: Add PR to project
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
PR_ID: ${{ github.event.pull_request.node_id }}
run: |
item_id="$( gh api graphql -f query='
mutation($project:ID!, $pr:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $pr}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f pr="$PR_ID" --jq '.data.addProjectNextItem.projectNextItem.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
- name: Export Labels
env:
PR_DATA: ${{ toJson(github.event.pull_request) }}
run: |
echo 'LABELS='$(echo "$PR_DATA" | jq -r '[.labels[].name] | join(" ")') >> $GITHUB_ENV
- name: Set "Type" field
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
# Only execute this step if the PR contains at least one label
if [ "${#LABELS[@]}" -gt 0 ]; then
# Let by default the type is "Bug"
OPTION_ID=$TYPE_BUG
# If it has "feature" label then set the type to "Feature"
if [[ "${LABELS[*]}" =~ "feature" ]]; then
OPTION_ID=$TYPE_FEATURE
fi
# If it has "enhancement" label then set the type to "Enhancement"
if [[ "${LABELS[*]}" =~ "enhancement" ]]; then
OPTION_ID=$TYPE_ENHANCEMENT
fi
# If it has "documentation" label then set the type to "Documentation"
if [[ "${LABELS[*]}" =~ "documentation" ]]; then
OPTION_ID=$TYPE_DOCUMENTATION
fi
# If it has "translation" label then set the type to "Translation"
if [[ "${LABELS[*]}" =~ "translation" ]]; then
OPTION_ID=$TYPE_TRANSLATION
fi
# Set the "Type" field to appropriate option
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $opt_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $opt_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$ITEM_ID" -f field="$TYPE_ID" -f opt_id="$OPTION_ID" --silent
fi
- name: Set "Status" field
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
MERGED=${{github.event.pull_request.merged}}
STATE=${{github.event.pull_request.state}}
REVIEWERS=${{github.event.pull_request.requested_reviewers}}
DRAFT=${{github.event.pull_request.draft}}
echo "Merged: $MERGED"
echo "State: $STATE"
echo "Draft: $DRAFT"
echo "Reviewer: $REVIEWER"
OPTION_ID=$STATUS_TODO
if [[ ("${MERGED}" == "true") || ("${STATE}" == "closed") ]]
then
OPTION_ID=$STATUS_DONE
elif [[ ${#REVIEWERS[@]} -gt 0 ]]
then
OPTION_ID=$STATUS_READY_FOR_REVIEW
else
OPTION_ID=$STATUS_IN_PROGRESS
fi
# Expose the OPTION_ID so that it can be used in later steps
echo 'PR_STATUS='$OPTION_ID >> $GITHUB_ENV
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $status_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $status_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$ITEM_ID" -f field="$STATUS_ID" -f status_id="$OPTION_ID" --silent
- name: Find Linked Issues
id: linked_issues
uses: hossainemruz/linked-issues@main
with:
pr_url: ${{github.event.pull_request.html_url}}
format: IssueNumber
- name: Update Linked Issues Status
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
declare -a issues=(${{ steps.linked_issues.outputs.issues }})
# Loop through the every issues and update their Status to same as the PR Status
for i in "${issues[@]}"
do
# Find the Issue ID
ISSUE_ID="$(gh api graphql -f query='
query($owner: String!, $name: String!, $issue_number: Int!) {
repository(owner: $owner, name: $name) {
issue(number: $issue_number) {
id
}
}
}' -f owner="${{github.event.pull_request.head.repo.owner.login}}" -f name="${{github.event.pull_request.head.repo.name}}" -F issue_number=$i --jq='.data.repository.issue.id')"
# Find the id of the Issue at the project board
item_id="$( gh api graphql -f query='
mutation($project:ID!, $pr:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $pr}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f pr="$ISSUE_ID" --jq '.data.addProjectNextItem.projectNextItem.id')"
# Update the Issue Status
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $status_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $status_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$item_id" -f field="$STATUS_ID" -f status_id="$PR_STATUS" --silent
done
+1 -1
View File
@@ -3,7 +3,7 @@
[![Netlify Status](https://api.netlify.com/api/v1/badges/b1b93b02-f278-440b-ae1b-304e9f4c4ab5/deploy-status)](https://app.netlify.com/sites/toha/deploys) [![Netlify Status](https://api.netlify.com/api/v1/badges/b1b93b02-f278-440b-ae1b-304e9f4c4ab5/deploy-status)](https://app.netlify.com/sites/toha/deploys)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fhugo-toha%2Ftoha%2Fbadge%3Fref%3Dmain&style=flat)](https://actions-badge.atrox.dev/hugo-toha/toha/goto?ref=main) [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fhugo-toha%2Ftoha%2Fbadge%3Fref%3Dmain&style=flat)](https://actions-badge.atrox.dev/hugo-toha/toha/goto?ref=main)
![Repository Size](https://img.shields.io/github/repo-size/hugo-toha/toha) ![Repository Size](https://img.shields.io/github/repo-size/hugo-toha/toha)
![Lines of Codes](https://img.shields.io/tokei/lines/github/hugo-toha/toha) ![Lines of Codes](https://img.shields.io/tokei/lines/github.com/hugo-toha/toha)
![Contributor](https://img.shields.io/github/contributors/hugo-toha/toha) ![Contributor](https://img.shields.io/github/contributors/hugo-toha/toha)
![Latest Release](https://img.shields.io/github/v/release/hugo-toha/toha?include_prereleases) ![Latest Release](https://img.shields.io/github/v/release/hugo-toha/toha?include_prereleases)
![Last Commit](https://img.shields.io/github/last-commit/hugo-toha/toha) ![Last Commit](https://img.shields.io/github/last-commit/hugo-toha/toha)
+2 -2
View File
@@ -53,8 +53,8 @@ other = "上一篇"
[next] [next]
other = "下一篇" other = "下一篇"
# [share_on] [share_on]
# other = "Share on" other = "分享"
[improve_this_page] [improve_this_page]
other = "改善此页面" other = "改善此页面"
+2 -2
View File
@@ -53,8 +53,8 @@ other = "上一篇"
[next] [next]
other = "下一篇" other = "下一篇"
# [share_on] [share_on]
# other = "Share on" other = "分享"
[improve_this_page] [improve_this_page]
other = "改善此頁面" other = "改善此頁面"
+17
View File
@@ -155,10 +155,27 @@
<hr /> <hr />
{{ partial "navigators/next-prev-navigator.html" . }} {{ partial "navigators/next-prev-navigator.html" . }}
<hr /> <hr />
<!----- Add comment support ----->
{{ with site.Params.features.comment }}
{{ if .enable }}
<!-- Add Disqus forum --> <!-- Add Disqus forum -->
{{ if .disqus.shortName }}
{{ partial "disqus.html" . }}
<!-- Add valine -->
{{ else if .valine }}
{{ partial "valine.html" . }}
<!-- Add utteranc -->
{{ else if .utteranc }}
{{ partial "utteranc.html" . }}
{{ end }}
{{ end }}
{{ end }}
<!-- Keep backward compatibility with old config.yaml -->
{{ if site.DisqusShortname }} {{ if site.DisqusShortname }}
{{ partial "disqus.html" . }} {{ partial "disqus.html" . }}
{{ end }} {{ end }}
</div> </div>
</div> </div>
</div> </div>
+6 -1
View File
@@ -1,3 +1,8 @@
{{ $disqusShortName := site.DisqusShortname }}
{{ if site.Params.features.comment.disqus.shortName }}
{{ $disqusShortName = site.Params.features.comment.disqus.shortName }}
{{ end }}
<div id="disqus_thread"></div> <div id="disqus_thread"></div>
<script type="text/javascript"> <script type="text/javascript">
(function () { (function () {
@@ -8,7 +13,7 @@
var dsq = document.createElement("script"); var dsq = document.createElement("script");
dsq.type = "text/javascript"; dsq.type = "text/javascript";
dsq.async = true; dsq.async = true;
var disqus_shortname = "{{ site.DisqusShortname }}"; var disqus_shortname = "{{ $disqusShortName }}";
dsq.src = "//" + disqus_shortname + ".disqus.com/embed.js"; dsq.src = "//" + disqus_shortname + ".disqus.com/embed.js";
( (
document.getElementsByTagName("head")[0] || document.getElementsByTagName("head")[0] ||
+1 -1
View File
@@ -73,7 +73,7 @@
{{ $sectionID = .section.id }} {{ $sectionID = .section.id }}
{{ end }} {{ end }}
<li class="nav-item"> <li class="nav-item">
<a class="smooth-scroll" href="/#{{ $sectionID }}">{{ .section.name }}</a> <a class="smooth-scroll" href="{{ "" | absLangURL }}#{{ $sectionID }}">{{ .section.name }}</a>
</li> </li>
{{ end }} {{ end }}
{{- end }} {{- end }}
@@ -3,9 +3,10 @@
{{ $sectionID = .section.id }} {{ $sectionID = .section.id }}
{{ end }} {{ end }}
<div class="container-fluid anchor pb-5 accomplishments-section" id="{{ $sectionID }}"> <div class="container-fluid anchor pb-5 accomplishments-section">
{{ if not (.section.hideTitle) }} {{ if not (.section.hideTitle) }}
<h1 class="text-center">{{ .section.name }}</h1> <h1 class="text-center">
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
{{ end }} {{ end }}
<div class="container"> <div class="container">
+3 -2
View File
@@ -3,9 +3,10 @@
{{ $sectionID = .section.id }} {{ $sectionID = .section.id }}
{{ end }} {{ end }}
<div class="container-fluid anchor pb-5 achievements-section" id="{{ $sectionID }}"> <div class="container-fluid anchor pb-5 achievements-section">
{{ if not (.section.hideTitle) }} {{ if not (.section.hideTitle) }}
<h1 class="text-center">{{ .section.name }}</h1> <h1 class="text-center">
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
{{ end }} {{ end }}
<div class="container"> <div class="container">
<div class="row" id="gallery"> <div class="row" id="gallery">
+4 -3
View File
@@ -3,9 +3,10 @@
{{ $sectionID = .section.id }} {{ $sectionID = .section.id }}
{{ end }} {{ end }}
<div class="container-fluid anchor pb-5 education-section" id="{{ $sectionID }}"> <div class="container-fluid anchor pb-5 education-section">
{{ if not (.section.hideTitle) }} {{ if not (.section.hideTitle) }}
<h1 class="text-center">{{ .section.name }}</h1> <h1 class="text-center">
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
{{ end }} {{ end }}
<div class="container"> <div class="container">
@@ -59,7 +60,7 @@
{{ $hideScale := .takenCourses.hideScale }} {{ $hideScale := .takenCourses.hideScale }}
<table> <table>
<thead> <thead>
<th>{{ i18n "course_name"}}</th> <th class="course-name-header">{{ i18n "course_name"}}</th>
{{ if not $hideScale }}<th>{{ i18n "total_credit"}}</th>{{ end }} {{ if not $hideScale }}<th>{{ i18n "total_credit"}}</th>{{ end }}
<th>{{ i18n "obtained_credit"}}</th> <th>{{ i18n "obtained_credit"}}</th>
</thead> </thead>
+4 -2
View File
@@ -3,9 +3,11 @@
{{ $sectionID = .section.id }} {{ $sectionID = .section.id }}
{{ end }} {{ end }}
<div class="container-fluid anchor pb-5 experiences-section" id="{{ $sectionID }}"> <div class="container-fluid anchor pb-5 experiences-section">
{{ if not (.section.hideTitle) }} {{ if not (.section.hideTitle) }}
<h1 class="text-center">{{ .section.name }}</h1> <h1 class="text-center">
<span id="{{ $sectionID }}"></span>{{ .section.name }}
</h1>
{{ end }} {{ end }}
<div class="container timeline text-justify"> <div class="container timeline text-justify">
+3 -2
View File
@@ -9,9 +9,10 @@
{{ end }} {{ end }}
<div class="container-fluid anchor pb-5 recent-posts-section" id="{{ $sectionID }}"> <div class="container-fluid anchor pb-5 recent-posts-section">
{{ if not (.section.hideTitle) }} {{ if not (.section.hideTitle) }}
<h1 class="text-center">{{ .section.name }}</h1> <h1 class="text-center">
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
{{ end }} {{ end }}
<div class="container"> <div class="container">
<div class="row" id="recent-post-cards"> <div class="row" id="recent-post-cards">
+3 -2
View File
@@ -3,9 +3,10 @@
{{ $sectionID = .section.id }} {{ $sectionID = .section.id }}
{{ end }} {{ end }}
<div class="container-fluid anchor pb-5 skills-section" id="{{ $sectionID }}"> <div class="container-fluid anchor pb-5 skills-section">
{{ if not (.section.hideTitle) }} {{ if not (.section.hideTitle) }}
<h1 class="text-center">{{ .section.name }}</h1> <h1 class="text-center">
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
{{ end }} {{ end }}
<div class="container d-flex-block"> <div class="container d-flex-block">
<div class="row" id="primary-skills"> <div class="row" id="primary-skills">
+22
View File
@@ -0,0 +1,22 @@
{{ $repo := site.Params.features.comment.utteranc.repo }}
{{ $issueTerm := site.Params.features.comment.utteranc.issueTerm }}
{{ $theme := site.Params.features.comment.utteranc.theme }}
<div id="utteranc_thread"></div>
<div id="comments" class="comments">
<div id="comments-container"></div>
</div>
<script type="text/javascript">
(function() {
var utterances = document.createElement('script');
utterances.type = 'text/javascript';
utterances.async = true;
utterances.setAttribute('repo','{{ $repo }}')
utterances.setAttribute('issue-term','{{ $issueTerm }}')
utterances.setAttribute('theme','{{ $theme }}')
utterances.crossorigin = 'anonymous';
utterances.src = 'https://utteranc.es/client.js';
document.getElementById('comments-container').appendChild(utterances);
})();
</script>
+17
View File
@@ -0,0 +1,17 @@
<!-- valine -->
<div id="vcomments"></div>
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<script src="//unpkg.com/valine/dist/Valine.min.js"></script>
<script type="text/javascript">
new Valine({
el: "#vcomments",
appId: "{{ .valine.appId }}",
appKey: "{{ .valine.appKey }}",
avatar: "{{ .valine.avatar }}",
placeholder: "{{ .valine.placeholder }}",
visitor: "{{ .valine.visitor }}",
lang: "{{ .valine.lang }}",
recordIP: "{{ .valine.recordIP }}",
enableQQ: "{{ .valine.enableQQ }}",
});
</script>
+75 -81
View File
@@ -8,8 +8,8 @@
"version": "1.0.0", "version": "1.0.0",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"autoprefixer": "^10.3.5", "autoprefixer": "^10.4.0",
"postcss": "^8.3.7", "postcss": "^8.3.11",
"postcss-cli": "^8.3.1" "postcss-cli": "^8.3.1"
} }
}, },
@@ -104,16 +104,16 @@
} }
}, },
"node_modules/autoprefixer": { "node_modules/autoprefixer": {
"version": "10.3.5", "version": "10.4.0",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.5.tgz", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz",
"integrity": "sha512-2H5kQSsyoOMdIehTzIt/sC9ZDIgWqlkG/dbevm9B9xQZ1TDPBHpNUDW5ENqqQQzuaBWEo75JkV0LJe+o5Lnr5g==", "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"browserslist": "^4.17.1", "browserslist": "^4.17.5",
"caniuse-lite": "^1.0.30001259", "caniuse-lite": "^1.0.30001272",
"fraction.js": "^4.1.1", "fraction.js": "^4.1.1",
"nanocolors": "^0.1.5",
"normalize-range": "^0.1.2", "normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
"postcss-value-parser": "^4.1.0" "postcss-value-parser": "^4.1.0"
}, },
"bin": { "bin": {
@@ -152,16 +152,16 @@
} }
}, },
"node_modules/browserslist": { "node_modules/browserslist": {
"version": "4.17.1", "version": "4.17.5",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.1.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.5.tgz",
"integrity": "sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==", "integrity": "sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"caniuse-lite": "^1.0.30001259", "caniuse-lite": "^1.0.30001271",
"electron-to-chromium": "^1.3.846", "electron-to-chromium": "^1.3.878",
"escalade": "^3.1.1", "escalade": "^3.1.1",
"nanocolors": "^0.1.5", "node-releases": "^2.0.1",
"node-releases": "^1.1.76" "picocolors": "^1.0.0"
}, },
"bin": { "bin": {
"browserslist": "cli.js" "browserslist": "cli.js"
@@ -175,13 +175,10 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001260", "version": "1.0.30001272",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001272.tgz",
"integrity": "sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg==", "integrity": "sha512-DV1j9Oot5dydyH1v28g25KoVm7l8MTxazwuiH3utWiAS6iL/9Nh//TGwqFEeqqN8nnWYQ8HHhUq+o4QPt9kvYw==",
"dev": true, "dev": true,
"dependencies": {
"nanocolors": "^0.1.0"
},
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/browserslist" "url": "https://opencollective.com/browserslist"
@@ -281,9 +278,9 @@
} }
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.3.849", "version": "1.3.883",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.849.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.883.tgz",
"integrity": "sha512-RweyW60HPOqIcxoKTGr38Yvtf2aliSUqX8dB3e9geJ0Bno0YLjcOX5F7/DPVloBkJWaPZ7xOM1A0Yme2T1A34w==", "integrity": "sha512-goyjNx4wB9j911PBteb+AXNbErug7rJVkmDXWdw5SCVn2JlARBwsqucPkvp1h5mXWxHUbBRK3bwXTrqSxSiAIQ==",
"dev": true "dev": true
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
@@ -605,16 +602,10 @@
"node": ">=8.6" "node": ">=8.6"
} }
}, },
"node_modules/nanocolors": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz",
"integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==",
"dev": true
},
"node_modules/nanoid": { "node_modules/nanoid": {
"version": "3.1.25", "version": "3.1.30",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
"integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"nanoid": "bin/nanoid.cjs" "nanoid": "bin/nanoid.cjs"
@@ -624,9 +615,9 @@
} }
}, },
"node_modules/node-releases": { "node_modules/node-releases": {
"version": "1.1.76", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
"integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==", "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
"dev": true "dev": true
}, },
"node_modules/normalize-path": { "node_modules/normalize-path": {
@@ -656,6 +647,12 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"node_modules/picomatch": { "node_modules/picomatch": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
@@ -678,13 +675,13 @@
} }
}, },
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.3.7", "version": "8.3.11",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.7.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz",
"integrity": "sha512-9SaY7nnyQ63/WittqZYAvkkYPyKxchMKH71UDzeTmWuLSvxTRpeEeABZAzlCi55cuGcoFyoV/amX2BdsafQidQ==", "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"nanocolors": "^0.1.5", "nanoid": "^3.1.30",
"nanoid": "^3.1.25", "picocolors": "^1.0.0",
"source-map-js": "^0.6.2" "source-map-js": "^0.6.2"
}, },
"engines": { "engines": {
@@ -1086,16 +1083,16 @@
"dev": true "dev": true
}, },
"autoprefixer": { "autoprefixer": {
"version": "10.3.5", "version": "10.4.0",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.3.5.tgz", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz",
"integrity": "sha512-2H5kQSsyoOMdIehTzIt/sC9ZDIgWqlkG/dbevm9B9xQZ1TDPBHpNUDW5ENqqQQzuaBWEo75JkV0LJe+o5Lnr5g==", "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==",
"dev": true, "dev": true,
"requires": { "requires": {
"browserslist": "^4.17.1", "browserslist": "^4.17.5",
"caniuse-lite": "^1.0.30001259", "caniuse-lite": "^1.0.30001272",
"fraction.js": "^4.1.1", "fraction.js": "^4.1.1",
"nanocolors": "^0.1.5",
"normalize-range": "^0.1.2", "normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
"postcss-value-parser": "^4.1.0" "postcss-value-parser": "^4.1.0"
} }
}, },
@@ -1115,26 +1112,23 @@
} }
}, },
"browserslist": { "browserslist": {
"version": "4.17.1", "version": "4.17.5",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.1.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.5.tgz",
"integrity": "sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ==", "integrity": "sha512-I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==",
"dev": true, "dev": true,
"requires": { "requires": {
"caniuse-lite": "^1.0.30001259", "caniuse-lite": "^1.0.30001271",
"electron-to-chromium": "^1.3.846", "electron-to-chromium": "^1.3.878",
"escalade": "^3.1.1", "escalade": "^3.1.1",
"nanocolors": "^0.1.5", "node-releases": "^2.0.1",
"node-releases": "^1.1.76" "picocolors": "^1.0.0"
} }
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001260", "version": "1.0.30001272",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001272.tgz",
"integrity": "sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg==", "integrity": "sha512-DV1j9Oot5dydyH1v28g25KoVm7l8MTxazwuiH3utWiAS6iL/9Nh//TGwqFEeqqN8nnWYQ8HHhUq+o4QPt9kvYw==",
"dev": true, "dev": true
"requires": {
"nanocolors": "^0.1.0"
}
}, },
"chalk": { "chalk": {
"version": "4.1.2", "version": "4.1.2",
@@ -1210,9 +1204,9 @@
} }
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.849", "version": "1.3.883",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.849.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.883.tgz",
"integrity": "sha512-RweyW60HPOqIcxoKTGr38Yvtf2aliSUqX8dB3e9geJ0Bno0YLjcOX5F7/DPVloBkJWaPZ7xOM1A0Yme2T1A34w==", "integrity": "sha512-goyjNx4wB9j911PBteb+AXNbErug7rJVkmDXWdw5SCVn2JlARBwsqucPkvp1h5mXWxHUbBRK3bwXTrqSxSiAIQ==",
"dev": true "dev": true
}, },
"emoji-regex": { "emoji-regex": {
@@ -1452,22 +1446,16 @@
"picomatch": "^2.2.3" "picomatch": "^2.2.3"
} }
}, },
"nanocolors": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.1.12.tgz",
"integrity": "sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ==",
"dev": true
},
"nanoid": { "nanoid": {
"version": "3.1.25", "version": "3.1.30",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz",
"integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==",
"dev": true "dev": true
}, },
"node-releases": { "node-releases": {
"version": "1.1.76", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.76.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
"integrity": "sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA==", "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
"dev": true "dev": true
}, },
"normalize-path": { "normalize-path": {
@@ -1488,6 +1476,12 @@
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true "dev": true
}, },
"picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"picomatch": { "picomatch": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
@@ -1501,13 +1495,13 @@
"dev": true "dev": true
}, },
"postcss": { "postcss": {
"version": "8.3.7", "version": "8.3.11",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.7.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz",
"integrity": "sha512-9SaY7nnyQ63/WittqZYAvkkYPyKxchMKH71UDzeTmWuLSvxTRpeEeABZAzlCi55cuGcoFyoV/amX2BdsafQidQ==", "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==",
"dev": true, "dev": true,
"requires": { "requires": {
"nanocolors": "^0.1.5", "nanoid": "^3.1.30",
"nanoid": "^3.1.25", "picocolors": "^1.0.0",
"source-map-js": "^0.6.2" "source-map-js": "^0.6.2"
} }
}, },
+2 -2
View File
@@ -17,8 +17,8 @@
}, },
"homepage": "https://github.com/hossainemruz/toha#readme", "homepage": "https://github.com/hossainemruz/toha#readme",
"devDependencies": { "devDependencies": {
"autoprefixer": "^10.3.5", "autoprefixer": "^10.4.0",
"postcss": "^8.3.7", "postcss": "^8.3.11",
"postcss-cli": "^8.3.1" "postcss-cli": "^8.3.1"
} }
} }
+1
View File
@@ -37,6 +37,7 @@ body {
} }
.toc-holder { .toc-holder {
position: -webkit-sticky;
position: sticky; position: sticky;
top: 4.5rem; top: 4.5rem;
overflow-x: hidden; overflow-x: hidden;
+3 -2
View File
@@ -6,8 +6,8 @@
height: 50px; height: 50px;
z-index: 99999; z-index: 99999;
transition: all 0.4s ease-out; transition: all 0.4s ease-out;
margin: 0; margin: 0px;
padding-top: 0.1rem; padding-top: 0.4rem;
text-align: center; text-align: center;
} }
@@ -30,6 +30,7 @@
.initial-navbar li a:hover { .initial-navbar li a:hover {
color: #f9fafc; color: #f9fafc;
transition: all 0.3s ease-out; transition: all 0.3s ease-out;
transform: translateY(-2px);
} }
.navbar-collapse { .navbar-collapse {
+3
View File
@@ -8,6 +8,7 @@
.sidebar-holder { .sidebar-holder {
top: 2.5rem; top: 2.5rem;
position: -webkit-sticky;
position: sticky; position: sticky;
background-color: #f9fafc; background-color: #f9fafc;
height: 100vh; height: 100vh;
@@ -191,6 +192,7 @@ a.focused {
transition: all ease-out 0.3s; transition: all ease-out 0.3s;
} }
.sidebar-holder { .sidebar-holder {
position: -webkit-sticky;
position: sticky; position: sticky;
top: 2.5rem; top: 2.5rem;
width: 100%; width: 100%;
@@ -220,6 +222,7 @@ a.focused {
transition: all ease-out 0.3s; transition: all ease-out 0.3s;
} }
.sidebar-holder { .sidebar-holder {
position: -webkit-sticky;
position: sticky; position: sticky;
top: 2.5rem; top: 2.5rem;
width: 100%; width: 100%;
+4 -1
View File
@@ -87,11 +87,14 @@
background: #3c4858; background: #3c4858;
font-size: 1rem; font-size: 1rem;
color: #f9fafc; color: #f9fafc;
line-height: 135px; line-height: initial;
text-align: center; text-align: center;
position: absolute; position: absolute;
top: 5%; top: 5%;
left: 5%; left: 5%;
display: flex;
justify-content: center;
align-items: center;
} }
.circular-progress.blue .circular-progress-bar { .circular-progress.blue .circular-progress-bar {
+6
View File
@@ -1,3 +1,9 @@
.accomplishments-section h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
.accomplishments-section .card { .accomplishments-section .card {
background: #fff; background: #fff;
border-top: 2px solid #248aaa; border-top: 2px solid #248aaa;
+6
View File
@@ -2,6 +2,12 @@
padding-top: 0.5rem; padding-top: 0.5rem;
} }
.achievements-section h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
#gallery .achievement-entry { #gallery .achievement-entry {
cursor: pointer; cursor: pointer;
margin-top: 5px; margin-top: 5px;
+9 -1
View File
@@ -19,6 +19,12 @@
text-align: right; text-align: right;
} }
.education-section h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
.education-section .icon { .education-section .icon {
width: 2rem; width: 2rem;
padding-left: 0; padding-left: 0;
@@ -102,7 +108,9 @@
border: none; border: none;
color: #212529; color: #212529;
} }
.education-section .taken-courses th.course-name-header{
width: 50%;
}
.education-section .taken-courses .hidden-course { .education-section .taken-courses .hidden-course {
display: none; display: none;
transition: all 1s ease-out; transition: all 1s ease-out;
+6
View File
@@ -6,6 +6,12 @@
margin-top: 1.5rem !important; margin-top: 1.5rem !important;
} }
.experiences-section h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
.experiences-section ul { .experiences-section ul {
padding-left: 1rem; padding-left: 1rem;
} }
+6
View File
@@ -2,6 +2,12 @@
padding-top: 1rem; padding-top: 1rem;
} }
.recent-posts-section h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
.recent-posts-section .card .card-footer span { .recent-posts-section .card .card-footer span {
font-size: 10pt; font-size: 10pt;
color: #6c757d !important; color: #6c757d !important;
+6
View File
@@ -8,6 +8,12 @@
border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.125); border-bottom: 0.0625rem solid rgba(0, 0, 0, 0.125);
} }
.skills-section h1 > span{
margin-top: -55px; /* Size of fixed header */
padding-bottom:55px;
display: block;
}
.skills-section .skill-card-link { .skills-section .skill-card-link {
text-decoration: none; text-decoration: none;
} }