Compare commits
137 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4a5f6ce426 | |||
| 20bc7dd71f | |||
| 65049cfbb7 | |||
| 869eba97a2 | |||
| ddbb4bf7ce | |||
| 2ae15e5235 | |||
| eacae1be3e | |||
| 43fe14bfa1 | |||
| 06ee3c1e1f | |||
| baa4774862 | |||
| a22474538d | |||
| 827a940995 | |||
| f6440e69d5 | |||
| a50f947384 | |||
| a1bff16050 | |||
| e8615c64e2 | |||
| c43da0089d | |||
| c9cebe5fe8 | |||
| 4025a6e321 | |||
| 3809d298ca | |||
| 974d4485ba | |||
| 91b18c0f04 | |||
| c89fe66332 | |||
| 8caa12724e | |||
| 309118c068 | |||
| be903cfd69 | |||
| fe647ce34f | |||
| 17128e9388 | |||
| de221c342d | |||
| 6f5e748b5b | |||
| e151dad461 | |||
| 711d4c7749 | |||
| 56e1bc5a69 | |||
| d3b20dc424 | |||
| 8ac46052e4 | |||
| 6b4b367c13 | |||
| abca4629bc | |||
| 4c6e7d404d | |||
| 2c5f991275 | |||
| 1e951589ef | |||
| 896db21fa5 | |||
| 9e8d0c401d | |||
| 5772734a34 | |||
| 69132a1dae | |||
| 46769a2b6d | |||
| d74549f870 | |||
| 42a0e5100a | |||
| bfa1e4c2b3 | |||
| a159ff65b1 | |||
| e4cda24f7f | |||
| 585c1ef847 | |||
| 2b9ce8fb29 | |||
| d93c49d82a | |||
| 91f6b69fa7 | |||
| 99a131fe43 | |||
| 4ebbb523a5 | |||
| d0a6eb4b28 | |||
| 5e172bca28 | |||
| 93f422675f | |||
| 2e8bf65885 | |||
| 801208c664 | |||
| f69ec4fca3 | |||
| 063c65716b | |||
| 11ca8ef8b3 | |||
| ec80b7f22d | |||
| 2134464267 | |||
| f29aa9b4fa | |||
| d1bc8e2f4c | |||
| bc0b69d726 | |||
| cab383aa12 | |||
| 0b27282e6a | |||
| b5c841295c | |||
| 39e1433fca | |||
| 0c408aa7ce | |||
| e3c84e0ba1 | |||
| fea093c187 | |||
| 4e029b7de8 | |||
| 3cd9c910f7 | |||
| a4e30e80a3 | |||
| 5d3f195c00 | |||
| 8dbe04b95d | |||
| cac27fc8c4 | |||
| b9d6b6612c | |||
| 0d1bd1f9f4 | |||
| b28d8e93cf | |||
| 9c8b6bd59b | |||
| 0773fe303e | |||
| 32837a0938 | |||
| 8e7e195b91 | |||
| 232e5d2f3a | |||
| 2ffc0c7a9c | |||
| 098179ec1f | |||
| ff86f78b4d | |||
| b5c3713277 | |||
| ad149f4d80 | |||
| 35c6586412 | |||
| 6e41689c06 | |||
| f779ac4ebb | |||
| adf5d52ab3 | |||
| ba997ff4c5 | |||
| 7b604b30e5 | |||
| 8a8c0ec9fd | |||
| 6e849034ac | |||
| 41b1106703 | |||
| 20ff5ac182 | |||
| 0072234546 | |||
| c0480898ed | |||
| bb01f1a975 | |||
| 069b0aa328 | |||
| 15c17a471b | |||
| cf7c11421b | |||
| e8e23ed9a3 | |||
| d155f2063b | |||
| c68a0e20af | |||
| e2b666c6d1 | |||
| 02c2483c6c | |||
| b06326bbe8 | |||
| 4803151e93 | |||
| 3c62edec20 | |||
| 7b92452e2b | |||
| 6d98c15136 | |||
| fc3b483697 | |||
| 8c7ae86720 | |||
| 8f239a0ddc | |||
| 990cd7a58b | |||
| d868096c3c | |||
| d36ecdb810 | |||
| 1ed12aacdf | |||
| 03edbac376 | |||
| f56f3dd176 | |||
| ccc67a2a02 | |||
| 3b75961f58 | |||
| 6a55617adc | |||
| ffe40b1cba | |||
| 1a5bbe4eeb | |||
| 46952f6ab9 | |||
| 4099f4f1e6 |
@@ -8,10 +8,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout to latest commit
|
||||
uses: actions/checkout@v2.3.4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v2.1.5
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: "15.x"
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
npm run autoprefixer
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v3.10.0
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
branch: autoprefixer
|
||||
branch-suffix: timestamp
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
name: Run Build
|
||||
|
||||
# Run action on pull request event
|
||||
on: [pull_request]
|
||||
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
# checkout to the commit that has been pushed
|
||||
- uses: actions/checkout@v2.4.0
|
||||
with:
|
||||
submodules: true # Fetch Hugo themes (true OR recursive)
|
||||
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
|
||||
|
||||
# install Hugo
|
||||
- name: Setup Hugo
|
||||
uses: peaceiris/actions-hugo@v2.5.0
|
||||
with:
|
||||
hugo-version: 'latest'
|
||||
extended: true
|
||||
|
||||
# build website
|
||||
- name: Create Config
|
||||
run: touch config.toml
|
||||
- name: Build
|
||||
run: hugo --minify
|
||||
@@ -39,11 +39,11 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -54,7 +54,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -68,4 +68,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
uses: github/codeql-action/analyze@v2
|
||||
|
||||
@@ -10,6 +10,6 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Create/Update release draft
|
||||
- uses: release-drafter/release-drafter@v5.15.0
|
||||
- uses: release-drafter/release-drafter@v5.20.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -8,6 +8,6 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# checkout to latest commit
|
||||
- uses: actions/checkout@master
|
||||
- uses: actions/checkout@v3
|
||||
# run markdown linter
|
||||
- uses: gaurav-nelson/github-action-markdown-link-check@1.0.12
|
||||
- uses: gaurav-nelson/github-action-markdown-link-check@1.0.14
|
||||
|
||||
@@ -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: String!) {
|
||||
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: String!) {
|
||||
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: String!) {
|
||||
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: String!) {
|
||||
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: String!) {
|
||||
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
|
||||
@@ -3,7 +3,7 @@
|
||||
[](https://app.netlify.com/sites/toha/deploys)
|
||||
[](https://actions-badge.atrox.dev/hugo-toha/toha/goto?ref=main)
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
@@ -30,8 +30,15 @@ A [Hugo](https://gohugo.io/) theme for a personal portfolio with minimalist desi
|
||||
- Achievement Gallery
|
||||
- Sidebar to Categorize the Posts
|
||||
- Short Codes
|
||||
- Google Analytics Support
|
||||
- Disqus Comment Support
|
||||
- Analytics Support
|
||||
- GoatCounter
|
||||
- counter.dev
|
||||
- Google Analytics
|
||||
- Comment Support
|
||||
- [Disqus](https://disqus.com/)
|
||||
- [Valine](https://valine.js.org/)
|
||||
- [Uttarances](https://utteranc.es/)
|
||||
- [Giscus](https://giscus.app/)
|
||||
|
||||
For more details about the features please visit [here](https://toha-guides.netlify.app/posts/features/).
|
||||
|
||||
@@ -49,6 +56,7 @@ For more details about the features please visit [here](https://toha-guides.netl
|
||||
- 日本語
|
||||
- 한국어
|
||||
- русский
|
||||
- suomi
|
||||
- Tiếng Việt
|
||||
|
||||
To know more about how to translate your site, please visit [here](https://toha-guides.netlify.app/posts/translation/). Follow, the data and post format from this [example site](https://hugo-toha.github.io).
|
||||
@@ -71,7 +79,7 @@ Here are few screenshots from the [example site](https://hugo-toha.github.io).
|
||||
|
||||
## Requirements
|
||||
|
||||
- Hugo Version 0.68.0 or higher
|
||||
- Hugo Version 0.87.0 or higher
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -165,10 +173,12 @@ When you run your site for first time, it will start with the default parameters
|
||||
|
||||
Here, are some handy shortcodes you can use with this theme.
|
||||
|
||||
- [Alert](https://toha-guides.netlify.app/posts/short-codes/alert/)
|
||||
- [Image](https://toha-guides.netlify.app/posts/short-codes/img/)
|
||||
- [Split](https://toha-guides.netlify.app/posts/short-codes/split/)
|
||||
- [Vertical Space](https://toha-guides.netlify.app/posts/short-codes/vs/)
|
||||
- [Alert](https://toha-guides.netlify.app/posts/shortcodes/#alert)
|
||||
- [Image](https://toha-guides.netlify.app/posts/shortcodes/#image)
|
||||
- [Split](https://toha-guides.netlify.app/posts/shortcodes/#split)
|
||||
- [Vertical Space](https://toha-guides.netlify.app/posts/shortcodes/#vertical-space)
|
||||
- [Video](https://toha-guides.netlify.app/posts/shortcodes/#video)
|
||||
- [Mermaid](https://hugo-toha.github.io/posts/shortcodes/#mermaid)
|
||||
|
||||
## Project Roadmap
|
||||
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "পোষ্ট সমূহ"
|
||||
[toc_heading]
|
||||
other = "সুচিপত্র"
|
||||
|
||||
[tags]
|
||||
other = "ট্যাগ সমুহ"
|
||||
|
||||
[categories]
|
||||
other = "বিভাগ সমুহ"
|
||||
|
||||
[resume]
|
||||
other = "আমার জীবনবৃত্তান্ত"
|
||||
|
||||
@@ -44,6 +50,9 @@ other = "পূর্ববর্তী"
|
||||
[next]
|
||||
other = "পরবর্তী"
|
||||
|
||||
[share_on]
|
||||
other = "শেয়ার করুন"
|
||||
|
||||
[improve_this_page]
|
||||
other = "এই পৃষ্ঠাটি উন্নত করুন"
|
||||
|
||||
@@ -109,3 +118,6 @@ other = "নোট সমূহ"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "দায় বিজ্ঞপ্তি"
|
||||
|
||||
[search]
|
||||
other = "অনুসন্ধান করুন"
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "Beiträge"
|
||||
[toc_heading]
|
||||
other = "Inhaltsverzeichnis"
|
||||
|
||||
[tags]
|
||||
other = "Stichworte"
|
||||
|
||||
[categories]
|
||||
other = "Kategorien"
|
||||
|
||||
[at]
|
||||
other = "bei"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "Vorherige"
|
||||
[next]
|
||||
other = "Nächste"
|
||||
|
||||
# [share_on]
|
||||
# other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Diese Seite verbessern"
|
||||
|
||||
@@ -112,3 +121,6 @@ other = "Notizen"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Haftungshinweis"
|
||||
|
||||
[search]
|
||||
other = "Suche"
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "Posts"
|
||||
[toc_heading]
|
||||
other = "Table of Contents"
|
||||
|
||||
[tags]
|
||||
other = "Tags"
|
||||
|
||||
[categories]
|
||||
other = "Categories"
|
||||
|
||||
[at]
|
||||
other = "at"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "Prev"
|
||||
[next]
|
||||
other = "Next"
|
||||
|
||||
[share_on]
|
||||
other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Improve this page"
|
||||
|
||||
@@ -112,3 +121,6 @@ other = "Notes"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Liability Notice"
|
||||
|
||||
[search]
|
||||
other = "Search"
|
||||
|
||||
+28
-16
@@ -8,6 +8,12 @@ other = "Posts"
|
||||
[toc_heading]
|
||||
other = "Contenido"
|
||||
|
||||
[tags]
|
||||
other = "Etiquetas"
|
||||
|
||||
[categories]
|
||||
other = "Categorías"
|
||||
|
||||
[at]
|
||||
other = "en"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "Anterior"
|
||||
[next]
|
||||
other = "Siguiente"
|
||||
|
||||
[share_on]
|
||||
other = "Compartir en"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Mejorar esta página"
|
||||
|
||||
@@ -77,29 +86,29 @@ other = "Ver más"
|
||||
[show_less]
|
||||
other = "Muestra menos"
|
||||
|
||||
# [responsibilities]
|
||||
# other = "Responsibilities:"
|
||||
[responsibilities]
|
||||
other = "Responsabilidades:"
|
||||
|
||||
# [present]
|
||||
# other = "Present"
|
||||
[present]
|
||||
other = "Presente"
|
||||
|
||||
# [comments_javascript]
|
||||
# other = "Please enable JavaScript to view the"
|
||||
[comments_javascript]
|
||||
other = "Por favor, activa JavaScript para ver el"
|
||||
|
||||
# [comments_by]
|
||||
# other = "comments powered by"
|
||||
[comments_by]
|
||||
other = "comentarios cortesía de"
|
||||
|
||||
# [read]
|
||||
# other = "Read"
|
||||
[read]
|
||||
other = "Leer"
|
||||
|
||||
# [project_star]
|
||||
# other = "Star"
|
||||
[project_star]
|
||||
other = "Favorito"
|
||||
|
||||
# [project_details]
|
||||
# other = "Details"
|
||||
[project_details]
|
||||
other = "Detalles"
|
||||
|
||||
# [err_404]
|
||||
# other = "The page you are looking for is not there yet."
|
||||
[err_404]
|
||||
other = "La página que estás buscando no está aquí (todavía)"
|
||||
|
||||
[more]
|
||||
other = "Más"
|
||||
@@ -112,3 +121,6 @@ other = "Notas"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Aviso de responsabilidad"
|
||||
|
||||
[search]
|
||||
other = "Búsqueda"
|
||||
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
# More documentation here: https://github.com/nicksnyder/go-i18n
|
||||
[home]
|
||||
other = "Koti"
|
||||
|
||||
[posts]
|
||||
other = "Artikkelit"
|
||||
|
||||
[toc_heading]
|
||||
other = "Sisällysluettelo"
|
||||
|
||||
[tags]
|
||||
other = "Tagit"
|
||||
|
||||
[categories]
|
||||
other = "Kategoriat"
|
||||
|
||||
[at]
|
||||
other = "at"
|
||||
|
||||
[resume]
|
||||
other = "Ansioluetteloni"
|
||||
|
||||
[navigation]
|
||||
other = "Navigointi"
|
||||
|
||||
[contact_me]
|
||||
other = "Ota yhteyttä minuun:"
|
||||
|
||||
[email]
|
||||
other = "Sähköposti"
|
||||
|
||||
[phone]
|
||||
other = "Puhelin"
|
||||
|
||||
[newsletter_text]
|
||||
other = "Pysy ajan tasalla tilaamalla sähköposti-ilmoitukset"
|
||||
|
||||
[newsletter_input_placeholder]
|
||||
other = "Syötä sähköpostiosoite"
|
||||
|
||||
[newsletter_warning]
|
||||
other = "Syöttämällä sähköpostin, hyväksyt että haluat vastaanottaa uutiskirjeen tältä sivustolta."
|
||||
|
||||
[submit]
|
||||
other = "Lähetä"
|
||||
|
||||
[hugoAttributionText]
|
||||
other = "Voimanlähteenä"
|
||||
|
||||
[prev]
|
||||
other = "Edellinen"
|
||||
|
||||
[next]
|
||||
other = "Seuraava"
|
||||
|
||||
[share_on]
|
||||
other = "Jaa"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Paranna tätä sivua"
|
||||
|
||||
[out_of]
|
||||
other = "out of"
|
||||
|
||||
[publications]
|
||||
other = "Julkaisut"
|
||||
|
||||
[taken_courses]
|
||||
other = "Käydyt kurssit"
|
||||
|
||||
[course_name]
|
||||
other = "Kurssin nimi"
|
||||
|
||||
[total_credit]
|
||||
other = "Opintopisteet yhteensä"
|
||||
|
||||
[obtained_credit]
|
||||
other = "Saadut opintopisteet"
|
||||
|
||||
[extracurricular_activities]
|
||||
other = "Opetusohjelman ulkopuolinen toiminta"
|
||||
|
||||
[show_more]
|
||||
other = "Näytä lisää"
|
||||
|
||||
[show_less]
|
||||
other = "Näytä vähemmän"
|
||||
|
||||
[responsibilities]
|
||||
other = "Työtehtävät:"
|
||||
|
||||
[present]
|
||||
other = "Tämä päivä"
|
||||
|
||||
[comments_javascript]
|
||||
other = "Ole hyvä ja enabloi JavaScript katsoaksesi"
|
||||
|
||||
[comments_by]
|
||||
other = "kommentit mahdollistavat"
|
||||
|
||||
[read]
|
||||
other = "Lue"
|
||||
|
||||
[project_star]
|
||||
other = "Tähti"
|
||||
|
||||
[project_details]
|
||||
other = "Yksityiskohdat"
|
||||
|
||||
[err_404]
|
||||
other = "Sivua jota etsit ei löydy."
|
||||
|
||||
[more]
|
||||
other = "Lisää"
|
||||
|
||||
[view_certificate]
|
||||
other = "Katso todistus"
|
||||
|
||||
[notes]
|
||||
other = "Muistiinpanot"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Vastuuilmoitus"
|
||||
|
||||
[search]
|
||||
other = "Haku"
|
||||
+27
-15
@@ -8,11 +8,17 @@ other = "Articles"
|
||||
[toc_heading]
|
||||
other = "Table des matières"
|
||||
|
||||
[tags]
|
||||
other = "Mots clés"
|
||||
|
||||
[categories]
|
||||
other = "Catégories"
|
||||
|
||||
[at]
|
||||
other = "chez"
|
||||
|
||||
[resume]
|
||||
other = "Mon Curriculum vitæ"
|
||||
other = "Mon Curriculum Vitæ"
|
||||
|
||||
[navigation]
|
||||
other = "Navigation"
|
||||
@@ -47,6 +53,9 @@ other = "Précédent"
|
||||
[next]
|
||||
other = "Suivant"
|
||||
|
||||
[share_on]
|
||||
other = "Partager sur"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Améliorez cette page"
|
||||
|
||||
@@ -57,10 +66,10 @@ other = "sur"
|
||||
other = "Publications"
|
||||
|
||||
[taken_courses]
|
||||
other = "Taken Courses"
|
||||
other = "Cours suivis"
|
||||
|
||||
[course_name]
|
||||
other = "Cours suivis"
|
||||
other = "Intitulé du cours"
|
||||
|
||||
[total_credit]
|
||||
other = "Crédit total"
|
||||
@@ -77,17 +86,17 @@ other = "En savoir plus"
|
||||
[show_less]
|
||||
other = "Montrer moins"
|
||||
|
||||
# [responsibilities]
|
||||
# other = "Responsibilities:"
|
||||
[responsibilities]
|
||||
other = "Responsabilitiés :"
|
||||
|
||||
# [present]
|
||||
# other = "Present"
|
||||
[present]
|
||||
other = "Aujourd'hui"
|
||||
|
||||
# [comments_javascript]
|
||||
# other = "Please enable JavaScript to view the"
|
||||
[comments_javascript]
|
||||
other = "Merci d'activer JavaScript pour voir le"
|
||||
|
||||
# [comments_by]
|
||||
# other = "comments powered by"
|
||||
[comments_by]
|
||||
other = "commentaires fournis par"
|
||||
|
||||
[read]
|
||||
other = "Lire"
|
||||
@@ -95,11 +104,11 @@ other = "Lire"
|
||||
# [project_star]
|
||||
# other = "Star"
|
||||
|
||||
# [project_details]
|
||||
# other = "Details"
|
||||
[project_details]
|
||||
other = "Détails"
|
||||
|
||||
# [err_404]
|
||||
# other = "The page you are looking for is not there yet."
|
||||
[err_404]
|
||||
other = "La page que vous recherchez n'est pas disponible."
|
||||
|
||||
[more]
|
||||
other = "Suite"
|
||||
@@ -112,3 +121,6 @@ other = "Remarques"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Avis de responsabilité"
|
||||
|
||||
[search]
|
||||
other = "Chercher"
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "पोस्ट"
|
||||
[toc_heading]
|
||||
other = "विषयसूची"
|
||||
|
||||
[tags]
|
||||
other = "टैग"
|
||||
|
||||
[categories]
|
||||
other = "श्रेणियाँ"
|
||||
|
||||
[at]
|
||||
other = "अन्य"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "पिछला"
|
||||
[next]
|
||||
other = "आगे"
|
||||
|
||||
# [share_on]
|
||||
# other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "इस पृष्ठ को सुधारें"
|
||||
|
||||
@@ -112,3 +121,6 @@ other = "टिप्पणियाँ"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "दायित्व सूचना"
|
||||
|
||||
[search]
|
||||
other = "खोज"
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "Artikel"
|
||||
[toc_heading]
|
||||
other = "Daftar Isi"
|
||||
|
||||
[tags]
|
||||
other = "Tags"
|
||||
|
||||
[categories]
|
||||
other = "Kategori"
|
||||
|
||||
[at]
|
||||
other = "at"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "Sebelumnya"
|
||||
[next]
|
||||
other = "Lanjut"
|
||||
|
||||
# [share_on]
|
||||
# other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Perbaiki halaman ini"
|
||||
|
||||
@@ -112,3 +121,6 @@ other = "Catatan"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Pemberitahuan Kewajiban"
|
||||
|
||||
[search]
|
||||
other = "Mencari"
|
||||
|
||||
+13
-1
@@ -8,6 +8,12 @@ other = "Post"
|
||||
[toc_heading]
|
||||
other = "Contenuti"
|
||||
|
||||
[tags]
|
||||
other = "Tags"
|
||||
|
||||
[categories]
|
||||
other = "Categorie"
|
||||
|
||||
[at]
|
||||
other = "presso"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "Precedente"
|
||||
[next]
|
||||
other = "Successivo"
|
||||
|
||||
# [share_on]
|
||||
# other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Migliora questa pagina"
|
||||
|
||||
@@ -105,10 +114,13 @@ other = "Mostra meno"
|
||||
other = "Di più"
|
||||
|
||||
[view_certificate]
|
||||
other = "Féach ar an Teastas"
|
||||
other = "Vedi certificato"
|
||||
|
||||
[notes]
|
||||
other = "Appunti"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Avviso di responsabilità"
|
||||
|
||||
[search]
|
||||
other = "Ricerca"
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "記事"
|
||||
[toc_heading]
|
||||
other = "目次"
|
||||
|
||||
[tags]
|
||||
other = "タグ"
|
||||
|
||||
[categories]
|
||||
other = "カテゴリ"
|
||||
|
||||
[resume]
|
||||
other = "職務経歴書"
|
||||
|
||||
@@ -44,6 +50,9 @@ other = "前"
|
||||
[next]
|
||||
other = "次"
|
||||
|
||||
# [share_on]
|
||||
# other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "編集リクエストを送る"
|
||||
|
||||
@@ -109,3 +118,6 @@ other = "ノート"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "責任通知"
|
||||
|
||||
[search]
|
||||
other = "検索"
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "게시글"
|
||||
[toc_heading]
|
||||
other = "목차"
|
||||
|
||||
[tags]
|
||||
other = "태그"
|
||||
|
||||
[categories]
|
||||
other = "카테고리"
|
||||
|
||||
[at]
|
||||
other = "at"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "이전"
|
||||
[next]
|
||||
other = "다음"
|
||||
|
||||
# [share_on]
|
||||
# other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "이 페이지를 개선"
|
||||
|
||||
@@ -112,3 +121,6 @@ other = "메모"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "책임 고지"
|
||||
|
||||
[search]
|
||||
other = "찾다"
|
||||
|
||||
@@ -7,6 +7,12 @@ other = "Beiträge"
|
||||
[toc_heading]
|
||||
other = "Inhaltsverzeichnis"
|
||||
|
||||
[tags]
|
||||
other = "Tags"
|
||||
|
||||
[categories]
|
||||
other = "Categorieën"
|
||||
|
||||
[at]
|
||||
other = "bei"
|
||||
|
||||
@@ -46,6 +52,9 @@ other = "Vorherige"
|
||||
[next]
|
||||
other = "Nächste"
|
||||
|
||||
# [share_on]
|
||||
# other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Diese Seite verbessern"
|
||||
|
||||
@@ -111,3 +120,5 @@ other = "Opmerkingen"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Haftungshinweis"
|
||||
[search]
|
||||
other = "Zoekopdracht"
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "Посты"
|
||||
[toc_heading]
|
||||
other = "Оглавление"
|
||||
|
||||
[tags]
|
||||
other = "Теги"
|
||||
|
||||
[categories]
|
||||
other = "Категории"
|
||||
|
||||
[at]
|
||||
other = "в"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "Предыдущий"
|
||||
[next]
|
||||
other = "Следующий"
|
||||
|
||||
# [share_on]
|
||||
# other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Улучшить эту страницу"
|
||||
|
||||
@@ -112,3 +121,6 @@ other = "Ноты"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Уведомление об ответственности"
|
||||
|
||||
[search]
|
||||
other = "Поиск"
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "Bài viết"
|
||||
[toc_heading]
|
||||
other = "Mục lục"
|
||||
|
||||
[tags]
|
||||
other = "Thẻ"
|
||||
|
||||
[categories]
|
||||
other = "Thể loại"
|
||||
|
||||
[at]
|
||||
other = "tại"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "Trước"
|
||||
[next]
|
||||
other = "Tiếp theo"
|
||||
|
||||
# [share_on]
|
||||
# other = "Share on"
|
||||
|
||||
[improve_this_page]
|
||||
other = "Cải thiện trang này"
|
||||
|
||||
@@ -112,3 +121,6 @@ other = "Ghi chú"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "Thông báo trách nhiệm"
|
||||
|
||||
[search]
|
||||
other = "Tìm kiếm"
|
||||
|
||||
@@ -8,6 +8,12 @@ other = "博文"
|
||||
[toc_heading]
|
||||
other = "目录"
|
||||
|
||||
[tags]
|
||||
other = "标签"
|
||||
|
||||
[categories]
|
||||
other = "类别"
|
||||
|
||||
[at]
|
||||
other = "at"
|
||||
|
||||
@@ -47,6 +53,9 @@ other = "上一篇"
|
||||
[next]
|
||||
other = "下一篇"
|
||||
|
||||
[share_on]
|
||||
other = "分享"
|
||||
|
||||
[improve_this_page]
|
||||
other = "改善此页面"
|
||||
|
||||
@@ -77,29 +86,29 @@ other = "查看更多"
|
||||
[show_less]
|
||||
other = "显示较少"
|
||||
|
||||
# [responsibilities]
|
||||
# other = "Responsibilities:"
|
||||
[responsibilities]
|
||||
other = "职责:"
|
||||
|
||||
# [present]
|
||||
# other = "Present"
|
||||
[present]
|
||||
other = "至今"
|
||||
|
||||
# [comments_javascript]
|
||||
# other = "Please enable JavaScript to view the"
|
||||
[comments_javascript]
|
||||
other = "请启用 JavaScript 以查看"
|
||||
|
||||
# [comments_by]
|
||||
# other = "comments powered by"
|
||||
[comments_by]
|
||||
other = "评论支持 by"
|
||||
|
||||
# [read]
|
||||
# other = "Read"
|
||||
[read]
|
||||
other = "阅读"
|
||||
|
||||
# [project_star]
|
||||
# other = "Star"
|
||||
[project_star]
|
||||
other = "Star"
|
||||
|
||||
# [project_details]
|
||||
# other = "Details"
|
||||
[project_details]
|
||||
other = "详情"
|
||||
|
||||
# [err_404]
|
||||
# other = "The page you are looking for is not there yet."
|
||||
[err_404]
|
||||
other = "您查找的页面已私奔。"
|
||||
|
||||
[more]
|
||||
other = "更多的"
|
||||
@@ -111,4 +120,7 @@ other = "查看证书"
|
||||
other = "笔记"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "责任通知"
|
||||
other = "免责声明"
|
||||
|
||||
[search]
|
||||
other = "搜索"
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
# More documentation here: https://github.com/nicksnyder/go-i18n
|
||||
[home]
|
||||
other = "首頁"
|
||||
|
||||
[posts]
|
||||
other = "文章"
|
||||
|
||||
[toc_heading]
|
||||
other = "目錄"
|
||||
|
||||
[tags]
|
||||
other = "标签"
|
||||
|
||||
[categories]
|
||||
other = "类别"
|
||||
|
||||
[at]
|
||||
other = "at"
|
||||
|
||||
[resume]
|
||||
other = "履歷"
|
||||
|
||||
[navigation]
|
||||
other = "導覽列"
|
||||
|
||||
[contact_me]
|
||||
other = "聯絡方式:"
|
||||
|
||||
[email]
|
||||
other = "信箱"
|
||||
|
||||
[phone]
|
||||
other = "電話"
|
||||
|
||||
[newsletter_text]
|
||||
other = "通過電子郵件接收最新消息"
|
||||
|
||||
[newsletter_input_placeholder]
|
||||
other = "在此輸入您的電子郵件地址"
|
||||
|
||||
[newsletter_warning]
|
||||
other = "輸入您的電子郵件地址,即表示您同意接受本網站的最新消息"
|
||||
|
||||
[submit]
|
||||
other = "提交"
|
||||
|
||||
[hugoAttributionText]
|
||||
other = "Powered by"
|
||||
|
||||
[prev]
|
||||
other = "上一篇"
|
||||
|
||||
[next]
|
||||
other = "下一篇"
|
||||
|
||||
[share_on]
|
||||
other = "分享"
|
||||
|
||||
[improve_this_page]
|
||||
other = "改善此頁面"
|
||||
|
||||
[out_of]
|
||||
other = "/"
|
||||
|
||||
[publications]
|
||||
other = "出版"
|
||||
|
||||
[taken_courses]
|
||||
other = "修習課程"
|
||||
|
||||
[course_name]
|
||||
other = "課程名稱"
|
||||
|
||||
[total_credit]
|
||||
other = "總分"
|
||||
|
||||
[obtained_credit]
|
||||
other = "獲得學分"
|
||||
|
||||
[extracurricular_activities]
|
||||
other = "課外活動"
|
||||
|
||||
[show_more]
|
||||
other = "查看更多"
|
||||
|
||||
[show_less]
|
||||
other = "顯示較少"
|
||||
|
||||
[responsibilities]
|
||||
other = "職責:"
|
||||
|
||||
[present]
|
||||
other = "現在"
|
||||
|
||||
[comments_javascript]
|
||||
other = "請開啟 JavaScript 查看"
|
||||
|
||||
[comments_by]
|
||||
other = "評論由"
|
||||
|
||||
[read]
|
||||
other = "閱讀"
|
||||
|
||||
[project_star]
|
||||
other = "Star"
|
||||
|
||||
[project_details]
|
||||
other = "詳情"
|
||||
|
||||
[err_404]
|
||||
other = "您訪問的頁面不存在"
|
||||
|
||||
[more]
|
||||
other = "更多的"
|
||||
|
||||
[view_certificate]
|
||||
other = "查看證書"
|
||||
|
||||
[notes]
|
||||
other = "筆記"
|
||||
|
||||
[disclaimer_text]
|
||||
other = "免責聲明"
|
||||
|
||||
[search]
|
||||
other = "搜索"
|
||||
@@ -9,16 +9,9 @@
|
||||
<!------ ADD PAGE SPECIFIC HEADERS ------->
|
||||
{{ block "header" . }} {{ end }}
|
||||
|
||||
<!-- ADD GOOGLE ANALYTICS IF ENABLED -->
|
||||
{{ if site.GoogleAnalytics }}
|
||||
<!-- Google Analytics v3 ID -->
|
||||
{{ if hasPrefix site.GoogleAnalytics "UA-"}}
|
||||
{{ template "_internal/google_analytics_async.html" . }}
|
||||
{{ else }}
|
||||
<!-- Google Analytics v4 ID -->
|
||||
{{ template "_internal/google_analytics.html" . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<!--================= add analytics if enabled =========================-->
|
||||
{{- partial "analytics.html" . -}}
|
||||
|
||||
</head>
|
||||
|
||||
<body data-spy="scroll" data-target="#TableOfContents" data-offset="80">
|
||||
@@ -45,5 +38,9 @@
|
||||
|
||||
<!------- ADD PAGE SPECIFIC SCRIPTS ------>
|
||||
{{ block "scripts" . }} {{ end }}
|
||||
|
||||
<!------ IF WANTED, ADD SUPPORT LINKS -------->
|
||||
{{- partial "misc/support.html" . -}}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<div class="sidebar-holder">
|
||||
<div class="sidebar" id="sidebar">
|
||||
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
|
||||
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
|
||||
<input type="text" name="keyword" value="" placeholder="{{ i18n "search" }}" data-search="" id="search-box" />
|
||||
</form>
|
||||
<div class="sidebar-tree">
|
||||
<ul class="tree" id="tree">
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
{{- $pctx := . -}}
|
||||
{{- if .IsHome -}}{{ $pctx = .Site }}{{- end -}}
|
||||
{{- $pages := slice -}}
|
||||
{{- if $.IsHome -}}
|
||||
{{- $pages = sort $pctx.RegularPages "Date" "desc" -}}
|
||||
{{- else if $.IsSection -}}
|
||||
{{- $pages = sort $pctx.RegularPagesRecursive "Date" "desc" -}}
|
||||
{{- else -}}
|
||||
{{- $pages = sort $pctx.RegularPagesRecursive "Date" "desc" -}}
|
||||
{{- end -}}
|
||||
{{- $limit := .Site.Config.Services.RSS.Limit -}}
|
||||
{{- if ge $limit 1 -}}
|
||||
{{- $pages = $pages | first $limit -}}
|
||||
{{- end -}}
|
||||
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
|
||||
<link>{{ .Permalink }}</link>
|
||||
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
|
||||
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
|
||||
<language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
|
||||
<managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
|
||||
<webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
|
||||
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
|
||||
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
||||
{{- with .OutputFormats.Get "RSS" -}}
|
||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
||||
{{- end -}}
|
||||
{{ range $pages }}
|
||||
{{- if ne .RelPermalink "/search/" -}}
|
||||
<item>
|
||||
<title>{{ .Title }}</title>
|
||||
<link>{{ .Permalink }}</link>
|
||||
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
|
||||
<guid>{{ .Permalink }}</guid>
|
||||
<description>{{ .Summary | html }}</description>
|
||||
</item>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</channel>
|
||||
</rss>
|
||||
@@ -20,7 +20,7 @@
|
||||
<div class="sidebar-holder">
|
||||
<div class="sidebar" id="sidebar">
|
||||
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
|
||||
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
|
||||
<input type="text" name="keyword" value="" placeholder="{{ i18n "search" }}" data-search="" id="search-box" />
|
||||
</form>
|
||||
<div class="sidebar-tree">
|
||||
<ul class="tree" id="tree">
|
||||
|
||||
+107
-10
@@ -20,7 +20,7 @@
|
||||
<div class="sidebar-holder">
|
||||
<div class="sidebar" id="sidebar">
|
||||
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
|
||||
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
|
||||
<input type="text" name="keyword" value="" placeholder="{{ i18n "search" }}" data-search="" id="search-box" />
|
||||
</form>
|
||||
<div class="sidebar-tree">
|
||||
<ul class="tree" id="tree">
|
||||
@@ -48,35 +48,124 @@
|
||||
<div class="author-profile ml-auto align-self-lg-center">
|
||||
<img class="rounded-circle" src='{{ partial "helpers/get-author-image.html" . }}' alt="Author Image">
|
||||
<h5 class="author-name">{{ partial "helpers/get-author-name.html" . }}</h5>
|
||||
<p>{{ .Page.Date.Format "January 2, 2006" }}</p>
|
||||
<p>{{ .Page.Date | time.Format ":date_full" }}</p>
|
||||
</div>
|
||||
|
||||
<div class="title">
|
||||
<h1>{{ .Page.Title }}</h1>
|
||||
</div>
|
||||
|
||||
{{ if site.Params.enableTags }}
|
||||
<div class="taxonomy-terms">
|
||||
<ul>
|
||||
{{ range .Params.tags }}
|
||||
{{ $url:= printf "tags/%s" . }}
|
||||
<li class="rounded"><a href="{{ $url | urlize | relLangURL }}" class="btn, btn-sm">{{ . }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="post-content" id="post-content">
|
||||
{{ .Page.Content }}
|
||||
</div>
|
||||
|
||||
<!-- Share or Contribute -->
|
||||
<div class="row pl-3 pr-3">
|
||||
<!--Social Media Share Buttons-->
|
||||
<div class="col-md-6 share-buttons">
|
||||
{{ if site.Params.features.blog.shareButtons }}
|
||||
<strong>{{ i18n "share_on" }}:</strong>
|
||||
{{ if site.Params.features.blog.shareButtons.facebook }}
|
||||
<a class="btn btn-sm facebook-btn" href="https://www.facebook.com/sharer.php?u={{ .Permalink }}" target="_blank">
|
||||
<i class="fab fa-facebook"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if site.Params.features.blog.shareButtons.twitter }}
|
||||
<a class="btn btn-sm twitter-btn" href="https://twitter.com/share?url={{ .Permalink }}&text={{ .Title }}&via={{- site.Title -}}" target="_blank">
|
||||
<i class="fab fa-twitter"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if site.Params.features.blog.shareButtons.reddit }}
|
||||
<a class="btn btn-sm reddit-btn" href="https://reddit.com/submit?url={{ .Permalink }}&title={{ .Title }}" target="_blank">
|
||||
<i class="fab fa-reddit"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if site.Params.features.blog.shareButtons.tumblr }}
|
||||
<a class="btn btn-sm tumblr-btn" href="https://www.tumblr.com/share/link?url={{ .Permalink }}&name={{ .Title }}{{- with .Params.description -}}&description={{- . -}}{{- end -}}" target="_blank">
|
||||
<i class="fab fa-tumblr"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if site.Params.features.blog.shareButtons.pocket }}
|
||||
<a class="btn btn-sm pocket-btn" href="https://getpocket.com/save?url={{ .Permalink }}&title={{ .Title }}" target="_blank">
|
||||
<i class="fab fa-get-pocket"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if site.Params.features.blog.shareButtons.linkedin }}
|
||||
<a class="btn btn-sm linkedin-btn" href="https://www.linkedin.com/shareArticle?url={{ .Permalink }}&title={{ .Title }}" target="_blank">
|
||||
<i class="fab fa-linkedin"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if site.Params.features.blog.shareButtons.diaspora }}
|
||||
<a class="btn btn-sm diaspora-btn" href="https://share.diasporafoundation.org/?title={{ .Title }}&url={{ .Permalink }}" rel="nofollow" target="_blank">
|
||||
<i class="fab fa-diaspora"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if site.Params.features.blog.shareButtons.mastodon }}
|
||||
<a class="btn btn-sm mastodon-btn" href="https://mastodon.social/share?text={{ .Title }} - {{ .Permalink }}" target="_blank">
|
||||
<i class="fab fa-mastodon"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if site.Params.features.blog.shareButtons.whatsapp }}
|
||||
<a class="btn btn-sm whatsapp-btn" href="https://api.whatsapp.com/send?text={{ .Title }} {{ .Permalink }}" target="_blank">
|
||||
<i class="fab fa-whatsapp"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if site.Params.features.blog.shareButtons.email }}
|
||||
<a class="btn btn-sm email-btn" href="mailto:?subject={{ .Title }}&body={{ .Permalink }}" target="_blank">
|
||||
<i class="fas fa-envelope-open-text"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<!--- Improve this page button --->
|
||||
{{ if site.Params.GitRepo }}
|
||||
<div class="btn-improve-page">
|
||||
<a href="{{ site.Params.GitRepo }}/edit/{{ site.Params.GitBranch }}/content/{{ .File.Path }}" title="{{ i18n "improve_this_page" }}" target="_blank" rel="noopener">
|
||||
{{ if site.Params.GitBranch }}
|
||||
{{ .Scratch.Set "GitBranch" site.Params.GitBranch }}
|
||||
{{ else }}
|
||||
{{ .Scratch.Set "GitBranch" "main" }}
|
||||
{{ end }}
|
||||
<div class="col-md-6 btn-improve-page">
|
||||
{{ if ( eq site.Params.GitForge "gitlab" ) }}
|
||||
<a href="{{ site.Params.GitRepo }}/-/edit/{{ .Scratch.Get "GitBranch" }}/content/{{ .File.Path }}" title="{{ i18n "improve_this_page" }}" target="_blank" rel="noopener">
|
||||
{{ else if ( eq site.Params.GitForge "gitea" ) }}
|
||||
<a href="{{ site.Params.GitRepo }}/_edit/{{ .Scratch.Get "GitBranch" }}/content/{{ .File.Path }}" title="{{ i18n "improve_this_page" }}" target="_blank" rel="noopener">
|
||||
{{ else }} <!--- Make Github-style the default -->
|
||||
<a href="{{ site.Params.GitRepo }}/edit/{{ .Scratch.Get "GitBranch" }}/content/{{ .File.Path }}" title="{{ i18n "improve_this_page" }}" target="_blank" rel="noopener">
|
||||
{{ end }}
|
||||
<i class="fas fa-code-branch"></i>
|
||||
{{ i18n "improve_this_page" }}
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<!---Next and Previous Navigator -->
|
||||
|
||||
|
||||
<!---Next and Previous Navigator -->
|
||||
<hr />
|
||||
{{ partial "navigators/next-prev-navigator.html" . }}
|
||||
<hr />
|
||||
<!-- Add Disqus forum -->
|
||||
{{ if site.DisqusShortname }}
|
||||
{{ partial "disqus.html" . }}
|
||||
|
||||
<!----- Add comment support ----->
|
||||
{{ if site.Params.features.comment.enable }}
|
||||
{{ partial "comments.html" site.Params.features.comment }}
|
||||
{{ end }}
|
||||
|
||||
<!-- Keep backward compatibility with old config.yaml -->
|
||||
{{ if site.DisqusShortname }}
|
||||
{{ partial "comments/disqus.html" (dict (slice "disqus" "shortName") site.DisqusShortname) }}
|
||||
{{ end }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -90,7 +179,7 @@
|
||||
|
||||
{{ define "toc" }}
|
||||
<section class="toc-section" id="toc-section">
|
||||
{{ if site.Params.enableTOC }}
|
||||
{{ if and site.Params.enableTOC ( .Params.enableTOC | default true ) }}
|
||||
<div class="toc-holder">
|
||||
<h5 class="text-center pl-3">{{ i18n "toc_heading" }}</h5>
|
||||
<hr>
|
||||
@@ -108,7 +197,15 @@
|
||||
<script>
|
||||
hljs.initHighlightingOnLoad();
|
||||
</script>
|
||||
|
||||
<!-------------- Enable Math support for this page ---------------->
|
||||
{{ if .Params.math }}
|
||||
{{ partial "math.html" . }}
|
||||
{{ end }}
|
||||
|
||||
<!-------------- Enable mermaid support for this page ---------------->
|
||||
{{ if .Params.mermaid }}
|
||||
{{ partial "mermaid.html" . }}
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
{{ define "header" }}
|
||||
<link rel="stylesheet" href="{{ "/css/layouts/list.css" | relURL }}">
|
||||
<link rel="stylesheet" href="{{ "/css/navigators/sidebar.css" | relURL}}">
|
||||
<!--================= custom style overrides =========================-->
|
||||
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}"/>
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{ define "navbar" }}
|
||||
{{ partial "navigators/navbar-2.html" . }}
|
||||
{{ end }}
|
||||
|
||||
{{ define "sidebar" }}
|
||||
{{ $homePage:="#" }}
|
||||
{{ if site.IsMultiLingual }}
|
||||
{{ $homePage = (path.Join (cond ( eq .Language.Lang "en") "" .Language.Lang) .Type) }}
|
||||
{{ end }}
|
||||
|
||||
<section class="sidebar-section" id="sidebar-section">
|
||||
<div class="sidebar-holder">
|
||||
<div class="sidebar" id="sidebar">
|
||||
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
|
||||
<input type="text" name="keyword" value="" placeholder="{{ i18n "search" }}" data-search="" id="search-box" />
|
||||
</form>
|
||||
<div class="sidebar-tree">
|
||||
<ul class="tree" id="tree">
|
||||
<li id="list-heading"><a href="{{ .Type | relLangURL }}" data-filter="all">{{ i18n .Type }}</a></li>
|
||||
<div class="subtree taxonomy-terms">
|
||||
{{ $context := . }}
|
||||
{{ partial "navigators/taxonomies.html" (dict "context" $context "taxo" "categories" "title" ( humanize "categories" ) ) }}
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<section class="content-section" id="content-section">
|
||||
<div class="content container-fluid" id="content">
|
||||
<div class="container-fluid post-card-holder" id="post-card-holder">
|
||||
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
|
||||
{{ $paginator := .Paginate $posts 12 }}
|
||||
{{ range $paginator.Pages }}
|
||||
{{ if .Layout }}
|
||||
{{/* ignore the search.md file*/}}
|
||||
{{ else }}
|
||||
{{ partial "cards/post.html" . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="paginator">
|
||||
{{ template "_internal/pagination.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
{{ define "scripts" }}
|
||||
<script src="{{ "/js/list.js" | relURL }}"></script>
|
||||
{{ end }}
|
||||
+6
-10
@@ -29,16 +29,8 @@
|
||||
<!--================= custom style overrides =========================-->
|
||||
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}"/>
|
||||
|
||||
<!-- Add Google Analytics if enabled in configuration -->
|
||||
{{ if site.GoogleAnalytics }}
|
||||
<!-- Google Analytics v3 ID -->
|
||||
{{ if hasPrefix site.GoogleAnalytics "UA-"}}
|
||||
{{ template "_internal/google_analytics_async.html" . }}
|
||||
{{ else }}
|
||||
<!-- Google Analytics v4 ID -->
|
||||
{{ template "_internal/google_analytics.html" . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<!--================= add analytics if enabled =========================-->
|
||||
{{- partial "analytics.html" . -}}
|
||||
</head>
|
||||
<body data-spy="scroll" data-target="#top-navbar" data-offset="100">
|
||||
|
||||
@@ -87,5 +79,9 @@
|
||||
<script src="{{ "/js/github-button.js" | relURL }}"></script>
|
||||
<script src="{{ "/js/home.js" | relURL }}"></script>
|
||||
<script src="{{ "/js/jquery.filterizr.min.js" | relURL }}"></script>
|
||||
|
||||
<!------ ADD SUPPORT LINKS -------->
|
||||
{{- partial "misc/support.html" . -}}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<div class="sidebar-holder">
|
||||
<div class="sidebar" id="sidebar">
|
||||
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
|
||||
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
|
||||
<input type="text" name="keyword" value="" placeholder="{{ i18n "search" }}" data-search="" id="search-box" />
|
||||
</form>
|
||||
<div class="sidebar-tree">
|
||||
<ul class="tree" id="tree">
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<div class="sidebar-holder">
|
||||
<div class="sidebar" id="sidebar">
|
||||
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
|
||||
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
|
||||
<input type="text" name="keyword" value="" placeholder="{{ i18n "search" }}" data-search="" id="search-box" />
|
||||
</form>
|
||||
<div class="sidebar-tree">
|
||||
<ul class="tree" id="tree">
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
<!-- Add Analytics if enabled in configuration -->
|
||||
{{ with site.Params.features.analytics }}
|
||||
{{ if .enabled }}
|
||||
<!-- Google Analytics -->
|
||||
{{ with .google }}
|
||||
{{ $privacyConfig:= dict (slice "Site" "Config" "Privacy" "GoogleAnalytics") $.Site.Config.Privacy.GoogleAnalytics }}
|
||||
{{ $analyticsConfig := dict (slice "Site" "GoogleAnalytics") .id }}
|
||||
{{ template "_internal/google_analytics.html" (merge $privacyConfig $analyticsConfig) }}
|
||||
{{ end }}
|
||||
|
||||
<!-- Counter.dev -->
|
||||
{{ with .counterDev }}
|
||||
<script>
|
||||
if (
|
||||
!sessionStorage.getItem("_swa") &&
|
||||
document.referrer.indexOf(location.protocol + "//" + location.host) !== 0
|
||||
) {
|
||||
fetch(
|
||||
"https://counter.dev/track?" +
|
||||
new URLSearchParams({
|
||||
referrer: document.referrer,
|
||||
screen: screen.width + "x" + screen.height,
|
||||
user: "{{ .id }}",
|
||||
utcoffset: "1",
|
||||
}),
|
||||
{{ with .referrerPolicy }}
|
||||
{ referrerPolicy: "{{ . }}" }
|
||||
{{ end }}
|
||||
);
|
||||
}
|
||||
sessionStorage.setItem("_swa", "1");
|
||||
</script>
|
||||
{{ end }}
|
||||
|
||||
<!-- GoatCounter -->
|
||||
{{ with .goatCounter }}
|
||||
<script
|
||||
data-goatcounter="https://{{ .code }}.goatcounter.com/count"
|
||||
async
|
||||
src="//gc.zgo.at/count.js"
|
||||
></script>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
<!-- Keep backwards compatibility and consistency with HUGO defaults -->
|
||||
{{ if site.GoogleAnalytics }}
|
||||
{{ template "_internal/google_analytics.html" . }}
|
||||
{{ end }}
|
||||
@@ -11,7 +11,10 @@
|
||||
|
||||
{{ $logoImage:= resources.Get .logo}}
|
||||
{{ if $logoImage }}
|
||||
{{ $logoImage = $logoImage.Fit "24x24" }}
|
||||
{{/* svg don't support "Fit" operation */}}
|
||||
{{ if ne $logoImage.MediaType.SubType "svg" }}
|
||||
{{ $logoImage = $logoImage.Fit "24x24" }}
|
||||
{{ end }}
|
||||
|
||||
<img class="card-img-xs" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
|
||||
{{ end }}
|
||||
|
||||
@@ -4,15 +4,19 @@
|
||||
<div class="card-head d-flex">
|
||||
{{ if .logo }}
|
||||
{{ $logoImage := resources.Get .logo }}
|
||||
|
||||
{{/* svg don't support "Fit" operation */}}
|
||||
{{ if ne $logoImage.MediaType.SubType "svg" }}
|
||||
{{ $logoImage = $logoImage.Fit "24x24" }}
|
||||
{{ end }}
|
||||
|
||||
<img class="card-img-xs" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
|
||||
<h5 class="card-title">{{ .name }}</h5>
|
||||
{{ else if .icon }}
|
||||
{{ $iconName := .icon }}
|
||||
<h5 class="card-title"><span class="{{ $iconName }}"> {{ .name }}</span></h5>
|
||||
{{ else }}
|
||||
<h5 class="card-title">{{ .name }}</h5>
|
||||
{{ end }}
|
||||
<h5 class="card-title">{{ .name }}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="card-text">{{ .summary | markdownify }}</p>
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{{ if .disqus.shortName }}
|
||||
{{ partial "comments/disqus.html" . }}
|
||||
{{ else if .valine }}
|
||||
{{ partial "comments/valine.html" . }}
|
||||
{{ else if .utteranc }}
|
||||
{{ partial "comments/utteranc.html" . }}
|
||||
{{ else if .giscus }}
|
||||
{{ partial "comments/giscus.html" . }}
|
||||
{{ else if .commento }}
|
||||
{{ partial "comments/commento.html" . }}
|
||||
{{ end }}
|
||||
@@ -0,0 +1,12 @@
|
||||
{{ with .commento }}
|
||||
{{ $serverURL := .serverURL }}
|
||||
{{ $autoInit := .autoInit | default "true"}}
|
||||
{{ $hideDeleted := .hideDeleted | default "false"}}
|
||||
|
||||
<script defer
|
||||
src="http://{{ $serverURL }}/js/commento.js"
|
||||
data-auto-init="{{ $autoInit }}"
|
||||
data-hide-deleted="{{ $hideDeleted }}"
|
||||
></script>
|
||||
<div id="commento"></div>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,29 @@
|
||||
{{ with .disqus }}
|
||||
<div id="disqus_thread"></div>
|
||||
<script type="text/javascript">
|
||||
(function () {
|
||||
// Don't ever inject Disqus on localhost--it creates unwanted
|
||||
// discussions from 'localhost:1313' on your Disqus account...
|
||||
if (window.location.hostname == "localhost") return;
|
||||
|
||||
var dsq = document.createElement("script");
|
||||
dsq.type = "text/javascript";
|
||||
dsq.async = true;
|
||||
var disqus_shortname = "{{ .shortName }}";
|
||||
dsq.src = "//" + disqus_shortname + ".disqus.com/embed.js";
|
||||
(
|
||||
document.getElementsByTagName("head")[0] ||
|
||||
document.getElementsByTagName("body")[0]
|
||||
).appendChild(dsq);
|
||||
})();
|
||||
</script>
|
||||
<noscript
|
||||
>{{ i18n "comments_javascript" }}
|
||||
<a href="https://disqus.com/?ref_noscript"
|
||||
>{{ i18n "comments_by" }} Disqus.</a
|
||||
></noscript
|
||||
>
|
||||
<a href="https://disqus.com/" class="dsq-brlink"
|
||||
>{{ i18n "comments_by" }} <span class="logo-disqus">Disqus</span></a
|
||||
>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,28 @@
|
||||
{{ with .giscus }}
|
||||
{{ $repo := .repo }}
|
||||
{{ $repoID := .repoID }}
|
||||
{{ $category := .category | default "General" }}
|
||||
{{ $categoryID := .categoryID }}
|
||||
{{ $theme := .theme | default "light" }}
|
||||
{{ $map := .map | default "url" }}
|
||||
{{ $reaction := .reaction | default "1" }}
|
||||
{{ $metadata := .metadata | default "0" }}
|
||||
{{ $inputPosition := .inputPosition | default "bottom" }}
|
||||
{{ $crossOrigin := .crossOrigin | default "anonymous" }}
|
||||
|
||||
<script src="https://giscus.app/client.js"
|
||||
data-repo="{{ $repo }}"
|
||||
data-repo-id="{{ $repoID }}"
|
||||
data-category="{{ $category }}"
|
||||
data-category-id="{{ $categoryID }}"
|
||||
data-mapping="{{ $map }}"
|
||||
data-reactions-enabled="{{ $reaction }}"
|
||||
data-emit-metadata="{{ $metadata }}"
|
||||
data-input-position="{{ $inputPosition }}"
|
||||
data-theme="{{ $theme }}"
|
||||
data-lang="{{ .Site.Language.Lang }}"
|
||||
crossorigin="{{ $crossOrigin }}"
|
||||
async>
|
||||
</script>
|
||||
{{ end }}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
{{ with .utteranc }}
|
||||
{{ $repo := .repo }}
|
||||
{{ $issueTerm := .issueTerm }}
|
||||
{{ $theme := .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>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,18 @@
|
||||
{{ with .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: "{{ .appId }}",
|
||||
appKey: "{{ .appKey }}",
|
||||
avatar: "{{ .avatar }}",
|
||||
placeholder: "{{ .placeholder }}",
|
||||
visitor: "{{ .visitor }}",
|
||||
lang: "{{ .lang }}",
|
||||
recordIP: "{{ .recordIP }}",
|
||||
enableQQ: "{{ .enableQQ }}",
|
||||
});
|
||||
</script>
|
||||
{{ end }}
|
||||
@@ -1,27 +0,0 @@
|
||||
<div id="disqus_thread"></div>
|
||||
<script type="text/javascript">
|
||||
(function () {
|
||||
// Don't ever inject Disqus on localhost--it creates unwanted
|
||||
// discussions from 'localhost:1313' on your Disqus account...
|
||||
if (window.location.hostname == "localhost") return;
|
||||
|
||||
var dsq = document.createElement("script");
|
||||
dsq.type = "text/javascript";
|
||||
dsq.async = true;
|
||||
var disqus_shortname = "{{ site.DisqusShortname }}";
|
||||
dsq.src = "//" + disqus_shortname + ".disqus.com/embed.js";
|
||||
(
|
||||
document.getElementsByTagName("head")[0] ||
|
||||
document.getElementsByTagName("body")[0]
|
||||
).appendChild(dsq);
|
||||
})();
|
||||
</script>
|
||||
<noscript
|
||||
>{{ i18n "comments_javascript" }}
|
||||
<a href="https://disqus.com/?ref_noscript"
|
||||
>{{ i18n "comments_by" }} Disqus.</a
|
||||
></noscript
|
||||
>
|
||||
<a href="https://disqus.com/" class="dsq-brlink"
|
||||
>{{ i18n "comments_by" }} <span class="logo-disqus">Disqus</span></a
|
||||
>
|
||||
@@ -1,6 +1,7 @@
|
||||
{{/* variables for enabling/disabling parts of the footer */}}
|
||||
{{ $footerEnabled := site.Params.footer.enable | default true }}
|
||||
{{ $navigationEnabled := site.Params.footer.navigation.enable | default true }}
|
||||
{{ $customMenusEnabled := site.Params.footer.navigation.customMenus | default true }}
|
||||
{{ $contactMeEnabled := site.Params.footer.contactMe.enable | default true }}
|
||||
{{ $newsletterEnabled := site.Params.footer.newsletter.enable | default true }}
|
||||
{{ $credentialsEnabled := site.Params.footer.credentials.enable | default true }}
|
||||
@@ -26,7 +27,12 @@
|
||||
{{ $sections = (index site.Data site.Language.Lang).sections }}
|
||||
{{ end }}
|
||||
|
||||
{{ $copyrightNotice := "© 2021 Copyright."}}
|
||||
{{ $customMenus := site.Params.customMenus }}
|
||||
{{ if (index site.Data site.Language.Lang).site.customMenus }}
|
||||
{{ $customMenus = (index site.Data site.Language.Lang).site.customMenus }}
|
||||
{{ end }}
|
||||
|
||||
{{ $copyrightNotice := now.Format "2006" | printf "© %s Copyright."}}
|
||||
{{ if (index site.Data site.Language.Lang).site }}
|
||||
{{ $siteConfig := (index site.Data site.Language.Lang).site }}
|
||||
{{ if $siteConfig.copyright }}
|
||||
@@ -58,7 +64,7 @@
|
||||
{{ end }}
|
||||
{{ $hugoLogo = $hugoLogo.RelPermalink}}
|
||||
|
||||
<footer class="container-fluid text-center align-content-center footer pb-2">
|
||||
<footer id="footer" class="container-fluid text-center align-content-center footer pb-2">
|
||||
<div class="container pt-5">
|
||||
<div class="row text-left">
|
||||
{{ if $navigationEnabled }}
|
||||
@@ -73,10 +79,19 @@
|
||||
{{ $sectionID = .section.id }}
|
||||
{{ end }}
|
||||
<li class="nav-item">
|
||||
<a class="smooth-scroll" href="/#{{ $sectionID }}">{{ .section.name }}</a>
|
||||
<a class="smooth-scroll" href="{{ "" | absLangURL }}#{{ $sectionID }}">{{ .section.name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
{{ if $customMenusEnabled }}
|
||||
{{ range $customMenus }}
|
||||
{{ if .showOnFooter }}
|
||||
<li class="nav-item">
|
||||
<a class="smooth-scroll" href="{{ .url }}">{{ .name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
</div>
|
||||
@@ -86,7 +101,23 @@
|
||||
<h5>{{ i18n "contact_me" }}</h5>
|
||||
<ul>
|
||||
{{ range $key,$value:= $author.contactInfo }}
|
||||
<li><span>{{ title $key }}: </span> <span>{{ $value }}</span></li>
|
||||
{{ if (eq $key "email") }}
|
||||
<li><a href={{ printf "mailto:%s" $value }} target="_blank" rel="noopener">
|
||||
<span><i class="fas fa-envelope"></i></span> <span>{{ $value }}</span>
|
||||
</a></li>
|
||||
{{ else if (eq $key "phone") }}
|
||||
<li><span><i class="fas fa-phone-alt"></i></span> <span>{{ $value }}</span></li>
|
||||
{{ else if (eq $key "linkedin") }}
|
||||
<li><a href={{ printf "https://www.linkedin.com/in/%s" $value }} target="_blank" rel="noopener">
|
||||
<span><i class="fab fa-linkedin"></i></span> <span>{{ $author.name }}</span>
|
||||
</a></li>
|
||||
{{ else if (eq $key "github") }}
|
||||
<li><a href={{ printf "https://github.com/%s" $value }} target="_blank" rel="noopener">
|
||||
<span><i class="fab fa-github"></i></span> <span>{{ $value }}</span>
|
||||
</a></li>
|
||||
{{ else }}
|
||||
<li><span>{{ title $key }}: </span> <span>{{ $value }}</span></li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -121,13 +152,14 @@
|
||||
<button type="submit" class="btn btn-info">{{ i18n "submit" }}</button>
|
||||
</form>
|
||||
{{ else }}
|
||||
<!-- a dummy form -->
|
||||
<form>
|
||||
<div class="form-group">
|
||||
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="{{ i18n "newsletter_input_placeholder" }}"/>
|
||||
<small id="emailHelp" class="form-text text-muted">{{ i18n "newsletter_warning" }}</small>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-info">{{ i18n "submit" }}</button>
|
||||
<form method='post' action='https://blogtrottr.com'>
|
||||
<div class="form-group">
|
||||
<input type='email' class="form-control" name='btr_email' placeholder="{{ i18n "newsletter_input_placeholder" }}"/><br />
|
||||
<input type='hidden' name='btr_url' value='{{ "" | absLangURL }}index.xml' />
|
||||
<input type='hidden' name='schedule_type' value='1' />
|
||||
<small id="emailHelp" class="form-text text-muted">{{ i18n "newsletter_warning" }}</small>
|
||||
<button type="submit" class="btn btn-info"> {{ i18n "submit" }} </button>
|
||||
</div>
|
||||
</form>
|
||||
{{ end }}
|
||||
</div>
|
||||
@@ -137,7 +169,7 @@
|
||||
{{ if and $disclaimerEnabled $disclaimer}}
|
||||
<hr />
|
||||
<div class="container">
|
||||
<p id="disclaimer"><strong>{{ i18n "disclaimer_text" }}:</strong> {{ $disclaimer }}</p>
|
||||
<p id="disclaimer"><strong>{{ i18n "disclaimer_text" }}:</strong> {{ $disclaimer | markdownify }}</p>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if $credentialsEnabled }}
|
||||
|
||||
@@ -9,9 +9,16 @@
|
||||
<link rel="stylesheet" href="{{ "/css/plyr.css" | relURL }}"/>
|
||||
<link rel="stylesheet" href="{{ "/css/flag-icon.min.css" | relURL }}"/>
|
||||
|
||||
<!--=================== cdn ==============================-->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Muli:wght@300;400;500;600" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css" />
|
||||
<!--=================== fonts ==============================-->
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Muli:wght@300;400;500;600">
|
||||
|
||||
<!--=================== icons ==============================-->
|
||||
<link rel="stylesheet" href="{{ "/fontawesome/css/all.min.css" | relURL }}"/>
|
||||
|
||||
<!--=================== dark mode ==========================-->
|
||||
{{ if site.Params.darkMode.enable }}
|
||||
<link rel="stylesheet" href="{{ "/css/colortheme/colortheme.css" | relURL }}"/>
|
||||
{{ end }}
|
||||
|
||||
<!--================= fab-icon =========================-->
|
||||
{{/* add favicon only if the site author has provided the the favicon */}}
|
||||
|
||||
@@ -18,12 +18,12 @@
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{/* apply image processing. don't use "Fit" in svg because its not supported */}}
|
||||
{{/* apply image processing. don't use "Fit" in svg or gif because its not supported */}}
|
||||
{{ $authorImage:= resources.Get $authorImage}}
|
||||
{{ if and $authorImage (ne $authorImage.MediaType.SubType "svg") }}
|
||||
|
||||
{{ if and $authorImage (and (ne $authorImage.MediaType.SubType "svg") ( ne $authorImage.MediaType.SubType "gif")) }}
|
||||
{{ $authorImage = $authorImage.Fit "120x120" }}
|
||||
{{ end }}
|
||||
|
||||
{{/* return the author image link */}}
|
||||
{{ return $authorImage.RelPermalink }}
|
||||
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous"
|
||||
onload="renderMathInElement(document.body);">
|
||||
<link rel="stylesheet" href="{{ "/katex/katex.min.css" | relURL }}">
|
||||
<script type="text/javascript" defer src="{{ "/katex/katex.min.js" | relURL }}"></script>
|
||||
<script type="text/javascript" defer src="{{ "/katex/auto-render.min.js" | relURL }}" onload="renderMathInElement(document.body);">
|
||||
renderMathInElement(
|
||||
document.body,
|
||||
{
|
||||
delimiters: [
|
||||
{left: "$$", right: "$$", display: true},
|
||||
{left: "\\[", right: "\\]", display: true},
|
||||
{left: "$", right: "$", display: false},
|
||||
{left: "\\(", right: "\\)", display: false}
|
||||
]
|
||||
}
|
||||
);
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<script src="{{ "/js/mermaid-8.14.0.min.js" | relURL }}"></script>
|
||||
<script>
|
||||
mermaid.initialize({
|
||||
startOnLoad:true
|
||||
});
|
||||
</script>
|
||||
@@ -2,7 +2,7 @@
|
||||
{{ if eq .type "certification" }}
|
||||
{{/* Verifiable certificate badge from https://www.credly.com */}}
|
||||
<div class="">
|
||||
<a href="{{ .url }}" target="_blank" >
|
||||
<a href="{{ .url }}" target="_blank" rel="noopener noreferrer">
|
||||
<img src="{{ .badge }}" alt="{{ .name }}" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{{ with site.Params.features.support }}
|
||||
{{ if .enabled }}
|
||||
<!-- Enable Ko-Fi floating button -->
|
||||
{{ with .kofi }}
|
||||
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
|
||||
<script>
|
||||
kofiWidgetOverlay.draw('{{ .user }}', {
|
||||
'type': 'floating-chat',
|
||||
'floating-chat.donateButton.text': '{{ .text }}',
|
||||
'floating-chat.donateButton.text-color': '{{ .textColor }}',
|
||||
'floating-chat.donateButton.background-color': '{{ .backgroundColor }}',
|
||||
});
|
||||
</script>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
@@ -6,14 +6,14 @@
|
||||
<div class="dropdown languageSelector">
|
||||
<a class="btn dropdown-toggle" href="#" id="languageSelector" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
{{ $countryCode := partial "helpers/country-code.html" . }}
|
||||
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/16.png" alt="{{ $countryCode }}">
|
||||
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
|
||||
{{ site.Language.LanguageName }}
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="languageSelector">
|
||||
{{ range .Translations }}
|
||||
<a class="dropdown-item nav-link languages-item" href="{{ path.Join "/" (cond (eq .Language.Lang "en") "" .Language.Lang) $pageURL }}">
|
||||
{{ $countryCode := partial "helpers/country-code.html" . }}
|
||||
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/24.png" alt="{{ $countryCode }}">
|
||||
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
|
||||
{{ .Language.LanguageName }}
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
@@ -47,6 +47,9 @@
|
||||
{{ if .IsTranslated }}
|
||||
{{ partial "navigators/lang-selector-2.html" . }}
|
||||
{{ end }}
|
||||
{{ if site.Params.darkMode.enable }}
|
||||
{{ partial "navigators/theme-selector.html" . }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{{/* variables for enabling/disabling various features */}}
|
||||
{{ $blogEnabled := site.Params.features.blog.enable | default false }}
|
||||
{{ $notesEnabled := site.Params.features.notes.enable | default false }}
|
||||
{{ $maxVisibleSections := site.Params.topNavbar.maxVisibleSections | default 5 }}
|
||||
|
||||
{{/* keep backward compatibility for blog post */}}
|
||||
{{ if site.Params.enableBlogPost }}
|
||||
@@ -65,32 +66,32 @@
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="top-nav-items">
|
||||
<div class="collapse navbar-collapse dynamic-navbar" id="top-nav-items">
|
||||
<ul class="navbar-nav ml-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#home">{{ i18n "home" }}</a>
|
||||
</li>
|
||||
{{ if $sections }}
|
||||
{{ $sectionCount := 0}}
|
||||
{{ $sectionCount := 1 }}
|
||||
{{ range sort $sections "section.weight" }}
|
||||
{{ if and (.section.enable) (.section.showOnNavbar)}}
|
||||
{{ $sectionCount = add $sectionCount 1}}
|
||||
{{ if le $sectionCount 5 }}
|
||||
{{ if le $sectionCount $maxVisibleSections }}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#{{ partial "helpers/get-section-id.html" . }}">{{ .section.name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
{{ if gt $sectionCount 5 }}
|
||||
{{ if gt $sectionCount $maxVisibleSections }}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{i18n "more" }}</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
{{ $sectionCount := 0 }}
|
||||
{{ $sectionCount := 1 }}
|
||||
{{ range sort $sections "section.weight" }}
|
||||
{{ if and (.section.enable) (.section.showOnNavbar) }}
|
||||
{{ $sectionCount = add $sectionCount 1}}
|
||||
{{ if gt $sectionCount 5 }}
|
||||
{{ if gt $sectionCount $maxVisibleSections }}
|
||||
<a class="dropdown-item" href="#{{ partial "helpers/get-section-id.html" . }}">{{ .section.name }}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
@@ -114,13 +115,18 @@
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ range $customMenus }}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ .url }}">{{ .name }}</a>
|
||||
</li>
|
||||
{{ if (not .hideFromNavbar) }}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ .url }}">{{ .name }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if .IsTranslated }}
|
||||
{{ partial "navigators/lang-selector.html" . }}
|
||||
{{ end }}
|
||||
{{ if site.Params.darkMode.enable }}
|
||||
{{ partial "navigators/theme-selector.html" . }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{{ $context := .context }}
|
||||
{{ $taxo := .taxo }}
|
||||
{{ $class:= "" }}
|
||||
{{ if isset $context.Site.Taxonomies ( lower $taxo ) }}
|
||||
{{ $taxonomy := index $context.Site.Taxonomies ( lower $taxo ) }}
|
||||
{{ if (gt (len $taxonomy) 0)}}
|
||||
{{ range $taxonomy }}
|
||||
{{if eq $context.Title .Page.Title}}
|
||||
{{ $class = "active" }}
|
||||
{{else}}
|
||||
{{$class = ""}}
|
||||
{{end}}
|
||||
<li><a class="taxonomy-term {{ $class }}" href="{{ .Page.Permalink }}" data-taxonomy-term="{{ urlize .Page.Title }}"><span class="taxonomy-label">{{ .Page.Title }}</span></a></li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
@@ -0,0 +1,20 @@
|
||||
<li class="nav-item dropdown">
|
||||
<!-- This is for initializing the color scheme selection for new visitors. See /js/darkmode.js -->
|
||||
<div id="theme-initialization" style="display: none;"
|
||||
default-theme="{{ site.Params.darkMode.default }}"></div>
|
||||
<a class="nav-link dropdown-toggle" href="#" id="themeSelector" role="button"
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<img id="navbar-theme-icon-svg" src="{{ "/icons/moon-svgrepo-com.svg" }}" width=20>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-icons-only" aria-labelledby="themeSelector">
|
||||
<a class="dropdown-item nav-link" href="#" onclick="enableLightTheme()">
|
||||
<img class="menu-icon-center" src="{{ "/icons/sun-svgrepo-com.svg" }}" width=20>
|
||||
</a>
|
||||
<a class="dropdown-item nav-link" href="#" onclick="enableDarkTheme()">
|
||||
<img class="menu-icon-center" src="{{ "/icons/moon-svgrepo-com.svg" }}" width=20>
|
||||
</a>
|
||||
<a class="dropdown-item nav-link" href="#" onclick="useSystemTheme()">
|
||||
<img class="menu-icon-center" src="{{ "/icons/computer-svgrepo-com.svg" }}" width=20>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
@@ -5,3 +5,10 @@
|
||||
<script type="text/javascript" src="{{ "/js/navbar.js" | relURL }}"></script>
|
||||
<script type="text/javascript" src="{{ "/js/plyr.js" | relURL }}"></script>
|
||||
<script type="text/javascript" src="{{ "/js/main.js" | relURL }}"></script>
|
||||
|
||||
{{ if site.Params.darkMode.enable }}
|
||||
{{ if eq site.Params.darkMode.provider "darkreader" }}
|
||||
<script type="text/javascript" src="{{ "/js/darkreader.js" | relURL }}"></script>
|
||||
<script type="text/javascript" src="{{ "/js/darkmode-darkreader.js" | relURL }}"></script>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
@@ -11,7 +11,8 @@
|
||||
<div class="container anchor p-lg-5 about-section" id="{{ $sectionID }}">
|
||||
<div class="row pt-sm-2 pt-md-4 align-self-center">
|
||||
<!-- summary -->
|
||||
<div class="col-sm-6">
|
||||
<!-- takes up full section width if no badges/soft skills are specified -->
|
||||
{{ if or (.softSkills) (.badges) }} <div class="col-sm-6"> {{ else }} <div class="col-sm-12"> {{ end }}
|
||||
<h3 class="p-1">{{ $author.name }}</h3>
|
||||
{{ if .designation }}
|
||||
<h5 class="p-1">
|
||||
@@ -30,7 +31,7 @@
|
||||
<li>
|
||||
{{ if eq .name "Email" }}
|
||||
<a href="mailto:{{ .url }}" title="{{ .name }}" target="_blank" rel="noopener"><i class="{{ .icon }}"></i></a>
|
||||
{{ else if eq .name "Phone" }}
|
||||
{{ else if eq .name (i18n "phone") }}
|
||||
<a href="tel:{{ .url }}" title="{{ .name }}" target="_blank" rel="noopener"><i class="{{ .icon }}"></i></a>
|
||||
{{ else }}
|
||||
<a href="{{ .url }}" title="{{ .name }}" target="_blank" rel="noopener"><i class="{{ .icon }}"></i></a>
|
||||
|
||||
@@ -3,9 +3,13 @@
|
||||
{{ $sectionID = .section.id }}
|
||||
{{ 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) }}
|
||||
<h1 class="text-center">{{ .section.name }}</h1>
|
||||
<h1 class="text-center">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ else }}
|
||||
<h1 class="text-center" style="display: none">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
|
||||
<div class="container">
|
||||
|
||||
@@ -3,9 +3,13 @@
|
||||
{{ $sectionID = .section.id }}
|
||||
{{ 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) }}
|
||||
<h1 class="text-center">{{ .section.name }}</h1>
|
||||
<h1 class="text-center">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ else }}
|
||||
<h1 class="text-center" style="display: none">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
<div class="container">
|
||||
<div class="row" id="gallery">
|
||||
|
||||
@@ -4,17 +4,24 @@
|
||||
{{ end }}
|
||||
|
||||
<div class="container-fluid anchor pb-5 education-section education-alt" id="{{ $sectionID }}">
|
||||
{{ if not (.section.hideTitle) }}
|
||||
<h1 class="text-center">{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
{{ if not (.section.hideTitle) }}
|
||||
<h1 class="text-center">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ else }}
|
||||
<h1 class="text-center" style="display: none">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
|
||||
<div class="container">
|
||||
<table class="education-info-table">
|
||||
<tbody>
|
||||
{{ range .degrees}}
|
||||
<tr>
|
||||
<td class="icon">
|
||||
<div class="hline"></div>
|
||||
<div class="container">
|
||||
<table class="education-info-table">
|
||||
<tbody>
|
||||
{{ $count := len .degrees }}
|
||||
{{ range .degrees}}
|
||||
<tr>
|
||||
<td class="icon">
|
||||
{{ if gt $count 1}}
|
||||
<div class="hline"></div>
|
||||
{{ end }}
|
||||
<div class="icon-holder">
|
||||
<i class="fas {{ .icon }}"></i>
|
||||
</div>
|
||||
@@ -53,6 +60,7 @@
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if .takenCourses }}
|
||||
{{ $collapseAfter := .takenCourses.collapseAfter | default 2 }}
|
||||
<div class="taken-courses">
|
||||
<h6 class="text-muted">{{ i18n "taken_courses" }}</h6>
|
||||
{{ if .takenCourses.showGrades }}
|
||||
@@ -65,7 +73,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ range $index,$course := .takenCourses.courses }}
|
||||
<tr class="course {{ if gt $index 1 }}hidden-course{{ end}}">
|
||||
<tr class="course {{ if ge $index $collapseAfter }}hidden-course{{ end}}">
|
||||
<td>{{ $course.name }}</td>
|
||||
{{ if not $hideScale }}<td>{{ $course.outOf }}</td>{{ end }}
|
||||
<td>{{ $course.achieved }}</td>
|
||||
@@ -76,11 +84,11 @@
|
||||
{{ else }}
|
||||
<ul>
|
||||
{{ range $index,$course := .takenCourses.courses }}
|
||||
<li class="course {{ if gt $index 1 }}hidden-course{{ end}}">{{ $course.name }}</li>
|
||||
<li class="course {{ if ge $index $collapseAfter }}hidden-course{{ end}}">{{ $course.name }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
{{ if gt (len .takenCourses.courses) 2 }}
|
||||
{{ if gt (len .takenCourses.courses) $collapseAfter }}
|
||||
<button type="button" class="btn btn-link show-more-btn pt-0 {{ if .takenCourses.showGrades }}ml-1{{ else }}ml-2{{ end }}"
|
||||
onclick="toggleCourseVisibility(this);" id="show-more-btn" aria-label="{{ i18n "show_more"}}">{{ i18n "show_more"}}</button>
|
||||
<button type="button" class="btn btn-link show-more-btn hidden pt-0 {{ if .takenCourses.showGrades }}ml-1{{ else }}ml-2{{ end }}"
|
||||
|
||||
@@ -3,18 +3,25 @@
|
||||
{{ $sectionID = .section.id }}
|
||||
{{ end }}
|
||||
|
||||
<div class="container-fluid anchor pb-5 education-section" id="{{ $sectionID }}">
|
||||
{{ if not (.section.hideTitle) }}
|
||||
<h1 class="text-center">{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
<div class="container-fluid anchor pb-5 education-section">
|
||||
{{ if not (.section.hideTitle) }}
|
||||
<h1 class="text-center">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ else }}
|
||||
<h1 class="text-center" style="display: none">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
|
||||
<div class="container">
|
||||
<table class="education-info-table">
|
||||
<tbody>
|
||||
{{ range .degrees}}
|
||||
<tr>
|
||||
<td class="icon">
|
||||
<div class="hline"></div>
|
||||
<div class="container">
|
||||
<table class="education-info-table">
|
||||
<tbody>
|
||||
{{ $count := len .degrees }}
|
||||
{{ range .degrees}}
|
||||
<tr>
|
||||
<td class="icon">
|
||||
{{ if gt $count 1}}
|
||||
<div class="hline"></div>
|
||||
{{ end }}
|
||||
<div class="icon-holder">
|
||||
<i class="fas {{ .icon }}"></i>
|
||||
</div>
|
||||
@@ -53,19 +60,20 @@
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if .takenCourses }}
|
||||
{{ $collapseAfter := .takenCourses.collapseAfter | default 2 }}
|
||||
<div class="taken-courses">
|
||||
<h6 class="text-muted">{{ i18n "taken_courses"}}</h6>
|
||||
{{ if .takenCourses.showGrades }}
|
||||
{{ $hideScale := .takenCourses.hideScale }}
|
||||
<table>
|
||||
<thead>
|
||||
<th>{{ i18n "course_name"}}</th>
|
||||
<th class="course-name-header">{{ i18n "course_name"}}</th>
|
||||
{{ if not $hideScale }}<th>{{ i18n "total_credit"}}</th>{{ end }}
|
||||
<th>{{ i18n "obtained_credit"}}</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ range $index,$course := .takenCourses.courses }}
|
||||
<tr class="course {{ if gt $index 1 }}hidden-course{{ end}}">
|
||||
<tr class="course {{ if ge $index $collapseAfter }}hidden-course{{ end}}">
|
||||
<td>{{ $course.name }}</td>
|
||||
{{ if not $hideScale }}<td>{{ $course.outOf }}</td>{{ end }}
|
||||
<td>{{ $course.achieved }}</td>
|
||||
@@ -76,11 +84,11 @@
|
||||
{{ else }}
|
||||
<ul>
|
||||
{{ range $index,$course := .takenCourses.courses }}
|
||||
<li class="course {{ if gt $index 1 }}hidden-course{{ end}}">{{ $course.name }}</li>
|
||||
<li class="course {{ if ge $index $collapseAfter }}hidden-course{{ end}}">{{ $course.name }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
{{ if gt (len .takenCourses.courses ) 2 }}
|
||||
{{ if gt (len .takenCourses.courses ) $collapseAfter }}
|
||||
<button type="button" class="btn btn-link show-more-btn pt-0 {{ if .takenCourses.showGrades }}ml-1{{ else }}ml-2{{ end }}"
|
||||
onclick="toggleCourseVisibility(this);" id="show-more-btn">{{ i18n "show_more"}}</button>
|
||||
<button type="button" class="btn btn-link show-more-btn hidden pt-0 {{ if .takenCourses.showGrades }}ml-1{{ else }}ml-2{{ end }}"
|
||||
|
||||
@@ -3,9 +3,13 @@
|
||||
{{ $sectionID = .section.id }}
|
||||
{{ 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) }}
|
||||
<h1 class="text-center">{{ .section.name }}</h1>
|
||||
<h1 class="text-center">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ else }}
|
||||
<h1 class="text-center" style="display: none">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
|
||||
<div class="container timeline text-justify">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{ if gt (len .positions) 1 }}
|
||||
{{ partial "sections/experiences/multiple-positions" . }}
|
||||
{{ partial "sections/experiences/multiple-positions.html" . }}
|
||||
{{ else }}
|
||||
{{ partial "sections/experiences/single-position.html" . }}
|
||||
{{ end }}
|
||||
|
||||
@@ -12,10 +12,12 @@
|
||||
<!-- Add company overview -->
|
||||
<p>{{ .company.overview | markdownify }}</p>
|
||||
<!-- Add the responsibilities handled at this position -->
|
||||
{{ if $position.responsibilities }}
|
||||
<h6 class="text-muted">{{ i18n "responsibilities" }}</h6>
|
||||
<ul class="justify-content-around">
|
||||
{{ range $position.responsibilities }}
|
||||
<li>{{ . | markdownify }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
@@ -26,8 +26,11 @@
|
||||
{{ $authorImage = $author.image }}
|
||||
{{ end }}
|
||||
{{ $authorImage := resources.Get $authorImage }}
|
||||
{{ $authorImage = $authorImage.Fit "148x148" }}
|
||||
|
||||
{{/* apply image processing. don't use "Fit" in svg or gif because its not supported */}}
|
||||
{{ if and $authorImage (and (ne $authorImage.MediaType.SubType "svg") ( ne $authorImage.MediaType.SubType "gif")) }}
|
||||
{{ $authorImage = $authorImage.Fit "148x148" }}
|
||||
{{ end }}
|
||||
{{/* get file that matches the filename as specified as src="" in shortcode */}}
|
||||
{{ $src := resources.Get $backgroundImage }}
|
||||
|
||||
|
||||
@@ -5,7 +5,11 @@
|
||||
|
||||
<div class="container-fluid anchor pb-5 projects-section" id="{{ $sectionID }}">
|
||||
{{ if not (.section.hideTitle) }}
|
||||
<h1 class="text-center">{{ .section.name }}</h1>
|
||||
<h1 class="text-center">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ else }}
|
||||
<h1 class="text-center" style="display: none">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
<div class="container ml-auto text-center">
|
||||
<div class="btn-group flex-wrap" role="group" id="project-filter-buttons">
|
||||
|
||||
@@ -3,13 +3,23 @@
|
||||
{{ $sectionID = .section.id }}
|
||||
{{ end }}
|
||||
|
||||
<div class="container-fluid anchor pb-5 recent-posts-section" id="{{ $sectionID }}">
|
||||
{{ $numShow := 3}}
|
||||
{{ if .section.numShow }}
|
||||
{{ $numShow = .section.numShow }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<div class="container-fluid anchor pb-5 recent-posts-section">
|
||||
{{ if not (.section.hideTitle) }}
|
||||
<h1 class="text-center">{{ .section.name }}</h1>
|
||||
<h1 class="text-center">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ else }}
|
||||
<h1 class="text-center" style="display: none">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
<div class="container">
|
||||
<div class="row" id="recent-post-cards">
|
||||
{{ range first 3 (where site.RegularPages.ByDate.Reverse "Type" "in" "posts" )}}
|
||||
{{ range first $numShow (where site.RegularPages.ByDate.Reverse "Type" "in" "posts" )}}
|
||||
{{ partial "cards/recent-post.html" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
@@ -3,9 +3,13 @@
|
||||
{{ $sectionID = .section.id }}
|
||||
{{ 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) }}
|
||||
<h1 class="text-center">{{ .section.name }}</h1>
|
||||
<h1 class="text-center">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ else }}
|
||||
<h1 class="text-center" style="display: none">
|
||||
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
|
||||
{{ end }}
|
||||
<div class="container d-flex-block">
|
||||
<div class="row" id="primary-skills">
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{{ $alignment:= .Get "align"}}
|
||||
{{ if not $alignment }}
|
||||
{{ $alignment = "center"}}
|
||||
{{ end }}
|
||||
|
||||
{{ $background:= .Get "background" }}
|
||||
{{ if not $background }}
|
||||
{{ $background = "none"}}
|
||||
{{ end }}
|
||||
|
||||
<div class="mermaid" align="{{ $alignment }}" style="background-color: {{ $background }}; border-radius: 5px;">
|
||||
{{ safeHTML .Inner }}
|
||||
</div>
|
||||
@@ -0,0 +1,62 @@
|
||||
{{ define "header" }}
|
||||
<link rel="stylesheet" href="{{ "/css/layouts/list.css" | relURL }}">
|
||||
<link rel="stylesheet" href="{{ "/css/navigators/sidebar.css" | relURL}}">
|
||||
<!--================= custom style overrides =========================-->
|
||||
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}"/>
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{ define "navbar" }}
|
||||
{{ partial "navigators/navbar-2.html" . }}
|
||||
{{ end }}
|
||||
|
||||
{{ define "sidebar" }}
|
||||
{{ $homePage:="#" }}
|
||||
{{ if site.IsMultiLingual }}
|
||||
{{ $homePage = (path.Join (cond ( eq .Language.Lang "en") "" .Language.Lang) .Type) }}
|
||||
{{ end }}
|
||||
|
||||
<section class="sidebar-section" id="sidebar-section">
|
||||
<div class="sidebar-holder">
|
||||
<div class="sidebar" id="sidebar">
|
||||
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
|
||||
<input type="text" name="keyword" value="" placeholder="{{ i18n "search" }}" data-search="" id="search-box" />
|
||||
</form>
|
||||
<div class="sidebar-tree">
|
||||
<ul class="tree" id="tree">
|
||||
<li id="list-heading"><a href="{{ .Type | relLangURL }}" data-filter="all">{{ i18n .Type }}</a></li>
|
||||
<div class="subtree taxonomy-terms">
|
||||
{{ $context := . }}
|
||||
{{ partial "navigators/taxonomies.html" (dict "context" $context "taxo" "tags" "title" ( humanize "tags" ) ) }}
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<section class="content-section" id="content-section">
|
||||
<div class="content container-fluid" id="content">
|
||||
<div class="container-fluid post-card-holder" id="post-card-holder">
|
||||
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
|
||||
{{ $paginator := .Paginate $posts 12 }}
|
||||
{{ range $paginator.Pages }}
|
||||
{{ if .Layout }}
|
||||
{{/* ignore the search.md file*/}}
|
||||
{{ else }}
|
||||
{{ partial "cards/post.html" . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="paginator">
|
||||
{{ template "_internal/pagination.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
{{ define "scripts" }}
|
||||
<script src="{{ "/js/list.js" | relURL }}"></script>
|
||||
{{ end }}
|
||||
Generated
+358
-623
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -17,8 +17,8 @@
|
||||
},
|
||||
"homepage": "https://github.com/hossainemruz/toha#readme",
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^10.2.6",
|
||||
"postcss": "^8.3.5",
|
||||
"autoprefixer": "^10.4.7",
|
||||
"postcss": "^8.4.14",
|
||||
"postcss-cli": "^8.3.1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
/* Note: No need to invert when the screen is small because the navbar is
|
||||
collapsed to a hamburger menu. */
|
||||
@media only screen and (min-width: 1200px) {
|
||||
.dynamic-navbar .navbar-icon-svg-dark {
|
||||
filter: invert(1);
|
||||
};
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
.dropdown-menu-icons-only {
|
||||
width: 25px;
|
||||
min-width: 3rem;
|
||||
}
|
||||
}
|
||||
|
||||
.menu-icon-center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
@@ -50,17 +50,17 @@ a:hover {
|
||||
}
|
||||
|
||||
.btn-dark {
|
||||
background-color: #3c4858;
|
||||
border-color: #3c4858;
|
||||
color: #e5e9f2;
|
||||
transition: all 0.3s ease-out;
|
||||
background-color: #3c4858!important;
|
||||
border-color: #3c4858!important;
|
||||
color: #e5e9f2!important;
|
||||
transition: all 0.3s ease-out!important;
|
||||
}
|
||||
|
||||
.btn-dark:hover,
|
||||
.btn-dark:focus {
|
||||
background-color: #248aaa;
|
||||
border-color: #248aaa;
|
||||
transition: all 0.3s ease-out;
|
||||
background-color: #248aaa!important;
|
||||
border-color: #248aaa!important;
|
||||
transition: all 0.3s ease-out!important;
|
||||
}
|
||||
|
||||
.btn-outline-info {
|
||||
|
||||
@@ -37,6 +37,7 @@ body {
|
||||
}
|
||||
|
||||
.toc-holder {
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: 4.5rem;
|
||||
overflow-x: hidden;
|
||||
@@ -205,6 +206,69 @@ h6 {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.share-buttons .btn {
|
||||
color: #e5e9f2 !important;
|
||||
transition: all 0.3s ease-out !important;
|
||||
}
|
||||
|
||||
.share-buttons .btn:hover,
|
||||
.share-buttons .btn:focus {
|
||||
background-color: #248aaa !important;
|
||||
border-color: #248aaa !important;
|
||||
transition: all 0.3s ease-out !important;
|
||||
}
|
||||
|
||||
.share-buttons .facebook-btn {
|
||||
background-color: #4267b2 !important;
|
||||
border-color: #4267b2 !important;
|
||||
}
|
||||
|
||||
.share-buttons .twitter-btn {
|
||||
background-color: #1da1f2 !important;
|
||||
border-color: #1da1f2 !important;
|
||||
}
|
||||
|
||||
.share-buttons .reddit-btn {
|
||||
background-color: #ff4500 !important;
|
||||
border-color: #ff4500 !important;
|
||||
}
|
||||
|
||||
.share-buttons .tumblr-btn {
|
||||
background-color: #34465d !important;
|
||||
border-color: #34465d !important;
|
||||
}
|
||||
|
||||
.share-buttons .pocket-btn {
|
||||
background-color: #ef4056 !important;
|
||||
border-color: #ef4056 !important;
|
||||
}
|
||||
|
||||
.share-buttons .linkedin-btn {
|
||||
background-color: #2867b2 !important;
|
||||
border-color: #2867b2 !important;
|
||||
}
|
||||
|
||||
.share-buttons .diaspora-btn {
|
||||
background-color: #3c4858 !important;
|
||||
border-color: #3c4858 !important;
|
||||
}
|
||||
|
||||
.share-buttons .mastodon-btn {
|
||||
background-color: #2791da !important;
|
||||
border-color: #2791da !important;
|
||||
}
|
||||
|
||||
.share-buttons .whatsapp-btn {
|
||||
background-color: #4ac959 !important;
|
||||
border-color: #4ac959 !important;
|
||||
}
|
||||
|
||||
.share-buttons .email-btn {
|
||||
background-color: #3c4858 !important;
|
||||
border-color: #3c4858 !important;
|
||||
transition: all 0.3s ease-out !important;
|
||||
}
|
||||
|
||||
.btn-improve-page {
|
||||
text-align: right;
|
||||
}
|
||||
@@ -236,6 +300,19 @@ h6 {
|
||||
#scroll-to-top.show {
|
||||
visibility: visible;
|
||||
}
|
||||
.taxonomy-terms {
|
||||
text-align: center;
|
||||
}
|
||||
.taxonomy-terms li {
|
||||
font-size: 0.8em;
|
||||
list-style-type: none;
|
||||
display: inline-block;
|
||||
background: #248aaa;
|
||||
}
|
||||
|
||||
.taxonomy-terms a {
|
||||
color: #f9fafc;
|
||||
}
|
||||
|
||||
/* ============= Device specific fixes ======= */
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
height: 50px;
|
||||
z-index: 99999;
|
||||
transition: all 0.4s ease-out;
|
||||
margin: 0;
|
||||
padding-top: 0.1rem;
|
||||
margin: 0px;
|
||||
padding-top: 0.4rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
.initial-navbar li a:hover {
|
||||
color: #f9fafc;
|
||||
transition: all 0.3s ease-out;
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
.navbar-collapse {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
.sidebar-holder {
|
||||
top: 2.5rem;
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
background-color: #f9fafc;
|
||||
height: 100vh;
|
||||
@@ -191,6 +192,7 @@ a.focused {
|
||||
transition: all ease-out 0.3s;
|
||||
}
|
||||
.sidebar-holder {
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: 2.5rem;
|
||||
width: 100%;
|
||||
@@ -220,6 +222,7 @@ a.focused {
|
||||
transition: all ease-out 0.3s;
|
||||
}
|
||||
.sidebar-holder {
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
top: 2.5rem;
|
||||
width: 100%;
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -87,11 +87,14 @@
|
||||
background: #3c4858;
|
||||
font-size: 1rem;
|
||||
color: #f9fafc;
|
||||
line-height: 135px;
|
||||
line-height: initial;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
top: 5%;
|
||||
left: 5%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.circular-progress.blue .circular-progress-bar {
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
.accomplishments-section h1 > span{
|
||||
margin-top: -55px; /* Size of fixed header */
|
||||
padding-bottom:55px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.accomplishments-section .card {
|
||||
background: #fff;
|
||||
border-top: 2px solid #248aaa;
|
||||
|
||||
@@ -2,6 +2,12 @@
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
|
||||
.achievements-section h1 > span{
|
||||
margin-top: -55px; /* Size of fixed header */
|
||||
padding-bottom:55px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#gallery .achievement-entry {
|
||||
cursor: pointer;
|
||||
margin-top: 5px;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
.education-section .education-info-table {
|
||||
width: 100%;
|
||||
border: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.education-section .education-info-table tr:hover {
|
||||
@@ -12,6 +13,7 @@
|
||||
.education-section .education-info-table td {
|
||||
border: none;
|
||||
padding: 0;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.education-section .timeframe {
|
||||
@@ -19,6 +21,12 @@
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.education-section h1 > span{
|
||||
margin-top: -55px; /* Size of fixed header */
|
||||
padding-bottom:55px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.education-section .icon {
|
||||
width: 2rem;
|
||||
padding-left: 0;
|
||||
@@ -36,7 +44,7 @@
|
||||
}
|
||||
|
||||
.education-section .education-info-table tr:first-child .hline {
|
||||
height: 60%;
|
||||
height: 65%;
|
||||
top: auto;
|
||||
}
|
||||
|
||||
@@ -102,7 +110,9 @@
|
||||
border: none;
|
||||
color: #212529;
|
||||
}
|
||||
|
||||
.education-section .taken-courses th.course-name-header{
|
||||
width: 50%;
|
||||
}
|
||||
.education-section .taken-courses .hidden-course {
|
||||
display: none;
|
||||
transition: all 1s ease-out;
|
||||
|
||||
@@ -6,6 +6,12 @@
|
||||
margin-top: 1.5rem !important;
|
||||
}
|
||||
|
||||
.experiences-section h1 > span{
|
||||
margin-top: -55px; /* Size of fixed header */
|
||||
padding-bottom:55px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.experiences-section ul {
|
||||
padding-left: 1rem;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,12 @@
|
||||
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 {
|
||||
font-size: 10pt;
|
||||
color: #6c757d !important;
|
||||
|
||||
@@ -8,6 +8,12 @@
|
||||
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 {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
Vendored
+6
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 364 364" style="enable-background:new 0 0 364 364;" xml:space="preserve">
|
||||
<g>
|
||||
<path d="M350,60.5h-50c-7.72,0-14,6.28-14,14v225c0,7.72,6.28,14,14,14h50c7.72,0,14-6.28,14-14v-225
|
||||
C364,66.78,357.72,60.5,350,60.5z M325.864,166.5c-11.23,0-20.333-9.104-20.333-20.333s9.104-20.333,20.333-20.333
|
||||
s20.333,9.104,20.333,20.333S337.094,166.5,325.864,166.5z"/>
|
||||
<path d="M230,50.5H30c-16.542,0-30,13.458-30,30v149c0,16.542,13.458,30,30,30h79v21.765c0,0.665-0.466,1.235-0.847,1.235H52.351
|
||||
C46.092,282.5,41,287.329,41,293.265v9.235c0,5.962,5.198,11,11.351,11h156.604c6.091,0,11.046-4.935,11.046-11v-9.235
|
||||
c0-6.037-4.852-10.765-11.046-10.765h-55.803c-0.517,0-1.151-0.681-1.151-1.235V259.5h78c16.542,0,30-13.458,30-30v-149
|
||||
C260,63.958,246.542,50.5,230,50.5z M230,80.5l0.017,133H30v-133H230z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 206.622 206.622" style="enable-background:new 0 0 206.622 206.622;" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M155.287,58.38c-6.703-7.189-14.65-12.775-23.62-16.603c-1.299-0.552-2.8-0.291-3.83,0.672
|
||||
c-1.034,0.963-1.4,2.443-0.94,3.777c8.128,23.444,1.654,49.524-16.485,66.441c-18.146,16.918-44.614,21.557-67.43,11.812
|
||||
c-1.288-0.55-2.8-0.291-3.83,0.672c-1.034,0.963-1.4,2.443-0.94,3.777c3.197,9.218,8.215,17.535,14.918,24.72
|
||||
c12.721,13.643,29.996,21.517,48.64,22.168c0.836,0.03,1.668,0.043,2.5,0.043c17.728,0,34.54-6.611,47.571-18.764
|
||||
c13.647-12.724,21.517-29.998,22.168-48.643C174.658,89.807,168.011,72.025,155.287,58.38z M166.883,108.203
|
||||
c-0.585,16.74-7.655,32.251-19.905,43.675c-12.25,11.423-28.223,17.425-44.959,16.809c-16.743-0.583-32.252-7.652-43.674-19.904
|
||||
c-4.21-4.511-7.678-9.519-10.363-14.947c23.47,6.872,49.127,0.987,67.291-15.952c18.167-16.941,25.828-42.13,20.608-66.02
|
||||
c5.23,3.057,9.984,6.867,14.19,11.382C161.496,75.496,167.465,91.464,166.883,108.203z"/>
|
||||
<path d="M167.607,163.757c-1.393-1.393-3.649-1.393-5.042,0s-1.393,3.649,0,5.042l7.563,7.563
|
||||
c0.696,0.696,1.609,1.045,2.521,1.045c0.912,0,1.825-0.348,2.521-1.045c1.393-1.393,1.393-3.649,0-5.042L167.607,163.757z"/>
|
||||
<path d="M170.128,30.259l-7.563,7.565c-1.393,1.393-1.393,3.651,0,5.042c0.696,0.696,1.609,1.045,2.521,1.045
|
||||
s1.825-0.348,2.521-1.045l7.563-7.565c1.393-1.393,1.393-3.651,0-5.042C173.777,28.866,171.521,28.866,170.128,30.259z"/>
|
||||
<path d="M103.311,188.793c-1.971,0-3.566,1.597-3.566,3.566v10.697c0,1.969,1.595,3.566,3.566,3.566
|
||||
c1.971,0,3.566-1.597,3.566-3.566v-10.697C106.877,190.39,105.282,188.793,103.311,188.793z"/>
|
||||
<path d="M201.371,99.745h-10.697c-1.971,0-3.566,1.597-3.566,3.566c0,1.969,1.595,3.566,3.566,3.566h10.697
|
||||
c1.971,0,3.566-1.597,3.566-3.566C204.937,101.342,203.341,99.745,201.371,99.745z"/>
|
||||
<path d="M39.015,42.866c0.696,0.696,1.609,1.045,2.521,1.045s1.825-0.348,2.521-1.045c1.393-1.391,1.393-3.649,0-5.042
|
||||
l-7.563-7.565c-1.393-1.393-3.649-1.393-5.042,0c-1.393,1.391-1.393,3.649,0,5.042L39.015,42.866z"/>
|
||||
<path d="M39.015,163.757l-7.563,7.563c-1.393,1.393-1.393,3.649,0,5.042c0.696,0.696,1.609,1.045,2.521,1.045
|
||||
c0.912,0,1.825-0.348,2.521-1.045l7.563-7.563c1.393-1.393,1.393-3.649,0-5.042C42.664,162.364,40.408,162.364,39.015,163.757z"
|
||||
/>
|
||||
<path d="M103.311,17.829c1.971,0,3.566-1.597,3.566-3.566V3.566c0-1.969-1.595-3.566-3.566-3.566
|
||||
c-1.971,0-3.566,1.597-3.566,3.566v10.697C99.745,16.232,101.34,17.829,103.311,17.829z"/>
|
||||
<path d="M15.949,99.745H5.251c-1.971,0-3.566,1.597-3.566,3.566c0,1.969,1.595,3.566,3.566,3.566h10.697
|
||||
c1.971,0,3.566-1.597,3.566-3.566C19.514,101.342,17.919,99.745,15.949,99.745z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve">
|
||||
<g id="Sun">
|
||||
<path d="M32.1318512,18.2793007c-7.7119007,0-13.9863014,6.2743988-13.9863014,13.9862976
|
||||
s6.2744007,13.9864006,13.9863014,13.9864006s13.9862976-6.274498,13.9862976-13.9864006
|
||||
S39.84375,18.2793007,32.1318512,18.2793007z M32.1318512,44.2793007c-6.6245003,0-12.0137005-5.3897018-12.0137005-12.0137024
|
||||
s5.3892002-12.0135975,12.0137005-12.0135975s12.0136986,5.3895988,12.0136986,12.0135975
|
||||
S38.7563515,44.2793007,32.1318512,44.2793007z"/>
|
||||
<path d="M32.0000496,13.1688995c0.5522003,0,1-0.4471998,1-1V1c0-0.5527-0.4477997-1-1-1c-0.5522995,0-1,0.4473-1,1v11.1688995
|
||||
C31.0000496,12.7216997,31.4477501,13.1688995,32.0000496,13.1688995z"/>
|
||||
<path d="M32.0000496,50.830101c-0.5522995,0-1,0.4472008-1,1V63c0,0.5527,0.4477005,1,1,1c0.5522003,0,1-0.4473,1-1V51.830101
|
||||
C33.0000496,51.2773018,32.5522499,50.830101,32.0000496,50.830101z"/>
|
||||
<path d="M62.263649,30.4452991H51.09375c-0.5522003,0-1,0.4473-1,1s0.4477997,1.0000019,1,1.0000019h11.169899
|
||||
c0.5522995,0,1-0.4473019,1-1.0000019S62.8159485,30.4452991,62.263649,30.4452991z"/>
|
||||
<path d="M13.90625,31.4452991c0-0.5527-0.447794-1-0.999999-1H1.7363508c-0.5523,0-1,0.4473-1,1s0.4477,1.0000019,1,1.0000019
|
||||
H12.906251C13.458456,32.4453011,13.90625,31.9979992,13.90625,31.4452991z"/>
|
||||
<path d="M45.1801491,19.8778992c0.2559013,0,0.5116997-0.097599,0.7070999-0.2929001l7.8988991-7.8984995
|
||||
c0.3906021-0.3905993,0.3906021-1.0233994,0-1.4139996c-0.3905983-0.3907003-1.0234985-0.3907003-1.4140968,0l-7.8989029,7.8984003
|
||||
c-0.3905983,0.3906002-0.3905983,1.0233994,0,1.4140987C44.668457,19.7803001,44.9243507,19.8778992,45.1801491,19.8778992z"/>
|
||||
<path d="M45.887249,45.2030983c-0.3906975-0.3905983-1.0234985-0.3905983-1.4141006,0
|
||||
c-0.3905983,0.3907013-0.3905983,1.0235023,0,1.4141006l7.8989029,7.8973999
|
||||
c0.1952972,0.1954002,0.4511986,0.2929993,0.7070999,0.2929993c0.2557983,0,0.5116997-0.097599,0.7069969-0.2929993
|
||||
c0.3906021-0.3905983,0.3906021-1.0233994,0-1.4139977L45.887249,45.2030983z"/>
|
||||
<path d="M18.112751,19.5849991c0.1954002,0.1953011,0.4511986,0.2929001,0.7070999,0.2929001
|
||||
c0.2558002,0,0.5116997-0.097599,0.7069988-0.2929001c0.3906059-0.3906994,0.3906059-1.0234985,0-1.4140987L11.6289501,10.2725
|
||||
c-0.3906994-0.3907003-1.0234947-0.3907003-1.4140997,0c-0.3906002,0.3906002-0.3906002,1.0234003,0,1.4139996
|
||||
L18.112751,19.5849991z"/>
|
||||
<path d="M19.5712509,45.2700996c-0.0177002-0.0208015-0.024601-0.0471992-0.0444012-0.0670013
|
||||
c-0.3906002-0.3905983-1.0233936-0.3905983-1.4140987,0l-3.9401007,3.9400024l-4.0341949,3.8446999
|
||||
c-0.3999052,0.3811989-0.415205,1.0139008-0.0339994,1.4137993c0.0192947,0.0203018,0.045495,0.0278015,0.066,0.0460014
|
||||
c0.0176945,0.0208969,0.0245943,0.0472984,0.0443945,0.0669975c0.1953001,0.1954002,0.4512005,0.2929993,0.7069998,0.2929993
|
||||
c0.2559004,0,0.5117006-0.097599,0.7070999-0.2929993l3.9401007-3.9398994l4.0341997-3.8446999
|
||||
c0.3999004-0.3811989,0.415205-1.0139008,0.0340004-1.4137993C19.6179504,45.2958984,19.5917511,45.2882996,19.5712509,45.2700996z
|
||||
"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,59 @@
|
||||
const DARK = "dark";
|
||||
const LIGHT = "light";
|
||||
const SYSTEM = "system";
|
||||
const COLOR_THEME = "color-theme";
|
||||
const DARK_OPTIONS = {
|
||||
brightness: 100,
|
||||
contrast: 100,
|
||||
sepia: 0
|
||||
};
|
||||
const SVG_INVERT = {invert: ['img[src$=".svg"]']};
|
||||
const NAVBAR_ICON_ID = "navbar-theme-icon-svg";
|
||||
const DARK_ICON = "/icons/moon-svgrepo-com.svg";
|
||||
const LIGHT_ICON = "/icons/sun-svgrepo-com.svg";
|
||||
const SYSTEM_ICON = "/icons/computer-svgrepo-com.svg";
|
||||
|
||||
function enableDarkTheme() {
|
||||
localStorage.setItem(COLOR_THEME, DARK);
|
||||
DarkReader.enable(DARK_OPTIONS, SVG_INVERT);
|
||||
document.getElementById(NAVBAR_ICON_ID).src = DARK_ICON;
|
||||
}
|
||||
|
||||
function enableLightTheme() {
|
||||
localStorage.setItem(COLOR_THEME, LIGHT);
|
||||
DarkReader.disable();
|
||||
document.getElementById(NAVBAR_ICON_ID).src = LIGHT_ICON;
|
||||
}
|
||||
|
||||
function useSystemTheme() {
|
||||
localStorage.setItem(COLOR_THEME, SYSTEM);
|
||||
DarkReader.auto(DARK_OPTIONS, SVG_INVERT);
|
||||
document.getElementById(NAVBAR_ICON_ID).src = SYSTEM_ICON;
|
||||
}
|
||||
|
||||
function initializeColorTheme() {
|
||||
// We're using the themeInitialization attributes as a 'hack' for setting up
|
||||
// the default color scheme because we don't want to complicate this further
|
||||
// by creating custom javascript output in Hugo.
|
||||
let themeInitialization = document.getElementById("theme-initialization");
|
||||
let defaultColorScheme = themeInitialization.getAttribute('default-theme');
|
||||
// If the user has already selected a preferred theme then use that instead
|
||||
// of the default theme. Also, the default theme gets loaded to localStorage
|
||||
// on the first visit.
|
||||
let colorTheme = localStorage.getItem(COLOR_THEME);
|
||||
if (colorTheme == null || colorTheme.length == 0) {
|
||||
colorTheme = defaultColorScheme;
|
||||
}
|
||||
// Enable the color theme
|
||||
if (colorTheme == DARK) {
|
||||
enableDarkTheme();
|
||||
} else if (colorTheme == SYSTEM) {
|
||||
useSystemTheme();
|
||||
} else {
|
||||
// We use light theme for the two conditions below.
|
||||
// 1. the selected theme is light
|
||||
// 2. no default theme is found - fall back to original behavior
|
||||
enableLightTheme();
|
||||
}
|
||||
}
|
||||
initializeColorTheme()
|
||||
File diff suppressed because it is too large
Load Diff
@@ -338,7 +338,6 @@ var projectCards;
|
||||
// re-render custom functions on window resize
|
||||
window.onresize = function () {
|
||||
detectDevice();
|
||||
adjustSkillCardsHeight();
|
||||
adjustRecentPostsHeight();
|
||||
showAchievements();
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user