117 Commits

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

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

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

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Add issue parser workflow

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

* Add custom action

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

* Update workflow

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

* Update linked_issues workflow

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

* Update workflow

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

* update workflow

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

* update workflow

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

* update workflow

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

* update workflow

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

* update workflow

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

* update workflow

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

* update workflow

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

* update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

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

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

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

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

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

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

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

* Add connected event

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

* Update workflow

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

* Update workflows

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

* Update workflow

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

* Update workflow

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

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

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

* Fix LOC badge

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

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

* Print project_data.json

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

* Update project automation

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Update workflow

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

* Adjust the comment config

* Adjust the comment config

* Make comment section backward compatible with old config

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

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

* Fixed absLangURL issue with sections in footer

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

* Fixed section landing position on navigation

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

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

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

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

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-28 11:04:52 +00:00
Emruz Hossain 20ff5ac182 Update plyrjs (#422)
* Update plyr.js

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

* Update plyr.css

Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-09-24 18:27:56 +00:00
Emruz Hossain 0072234546 Update dependency for security issue (#421)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-09-24 17:59:50 +00:00
github-actions[bot] c0480898ed add vendor specific css prefixes (#420)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
2021-09-24 23:46:33 +06:00
Pablo Marcos bb01f1a975 Added some social buttons to the "Post" template (#415)
* Added new 'GitForge' param for non-git repos

* Added some (optional) social buttons

* Small fix for hardcoded values

* Update single.html

* Update look & feel for share buttons

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

* Fix improve-this-page btn alignment when share-buttons disabled

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

Co-authored-by: Pablo Marcos <codebergflamingo@staplehorse.anonaddy.com>
Co-authored-by: hossainemruz <hossainemruz@gmail.com>
2021-09-24 23:40:41 +06:00
Emruz Hossain 069b0aa328 Fix View certificate Italian translation (#418) 2021-09-16 20:56:57 +00:00
Léo GATELLIER 15c17a471b Add some french translations (#417)
Co-authored-by: Léo GATELLIER <git@leogatellier.fr>
2021-09-10 19:07:40 +00:00
github-actions[bot] cf7c11421b add vendor specific css prefixes (#416)
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
2021-09-08 08:10:26 +06:00
Pablo Marcos e8e23ed9a3 Added new 'GitForge' param for non GitHub repos (#403)
* Added new 'GitForge' param for non-git repos

* Solved comments

Co-authored-by: Pablo Marcos <codebergflamingo@staplehorse.anonaddy.com>
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-09-07 18:28:31 +00:00
bbarcesaj125 d155f2063b Corrected the word "Details" and another minor capitalization change. (#413)
* Corrected the word "Details" and another minor capitalitzation change.

* Corrected the word "Details" and another minor capitalization change.
2021-09-02 03:22:59 +00:00
Pablo Marcos c68a0e20af Update es.toml (#409)
Updated after asking for permission in a question :p
2021-08-29 11:15:27 +00:00
github-actions[bot] e2b666c6d1 Update and run autoprefixer (#408)
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-08-29 09:08:10 +00:00
github-actions[bot] 02c2483c6c Update and run autoprefixer (#407)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-08-29 09:07:12 +00:00
dependabot[bot] b06326bbe8 Bump peter-evans/create-pull-request from 3.10.0 to 3.10.1 (#401)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.10.0 to 3.10.1.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.10.0...v3.10.1)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-08-29 09:06:12 +00:00
Pablo Marcos 4803151e93 Add Blogtrottr as newsletter provider (#402)
Co-authored-by: Pablo Marcos <codebergflamingo@staplehorse.anonaddy.com>
2021-08-29 15:05:16 +06:00
Emruz Hossain 3c62edec20 Fix multiple active menu in taxonomy (#397)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-08-16 17:24:56 +00:00
James Ray 7b92452e2b taxonomies - added taxonmies support (#396)
* taxonomies -  added taxonmies support

* taxonomies -  add active class

* Update CSS

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

* Fix tag link for multilingual mode + add translations

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

Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-08-16 16:28:30 +00:00
donfiguerres 6d98c15136 Configure the number of posts in recent posts (#395)
* Add configuration to number of recent posts.

* Added default value.

Co-authored-by: donfiguerres <donfiguerres@github.com>
2021-08-14 10:00:35 +00:00
James Ray fc3b483697 Allow setting GIFS as author image (#394)
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-08-10 02:39:10 +00:00
James Ray 8c7ae86720 education-line (#393) 2021-08-08 16:34:38 +00:00
dependabot[bot] 8f239a0ddc Bump actions/setup-node from 2.3.2 to 2.4.0 (#391)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.3.2 to 2.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.3.2...v2.4.0)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-06 11:03:51 +00:00
dependabot[bot] 990cd7a58b Bump actions/setup-node from 2.3.1 to 2.3.2 (#390)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.3.1...v2.3.2)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-05 11:03:55 +00:00
dependabot[bot] d868096c3c Bump actions/setup-node from 2.3.0 to 2.3.1 (#389)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.3.0...v2.3.1)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-04 11:04:46 +00:00
github-actions[bot] d36ecdb810 Update and run autoprefixer (#386)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-07-30 16:59:28 +00:00
github-actions[bot] 1ed12aacdf Update and run autoprefixer (#384)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-07-30 16:58:38 +00:00
BoT 03edbac376 Add text link support for disclaimer. (#385)
为免责声明添加文本链接支持。
Fix some Chinese translation.
变更disclaimer翻译为“免责声明”。

Signed-off-by: Ray <Chow-Ray@outlook.com>
2021-07-30 22:57:36 +06:00
BoT f56f3dd176 Translate chinese (#383)
* translate_Chinese

* translate_Chinese

* Improve simplified Chinese translation, modify simplified Chinese and traditional Chinese file names

Signed-off-by: Ray <Chow-Ray@outlook.com>

* Improve simplified Chinese translation, modify simplified Chinese and traditional Chinese file names。

Signed-off-by: Ray <Chow-Ray@outlook.com>
2021-07-29 23:35:35 +06:00
dependabot[bot] ccc67a2a02 Bump actions/setup-node from 2.2.0 to 2.3.0 (#378)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.2.0...v2.3.0)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-21 11:04:14 +00:00
jstehn 3b75961f58 Added svg support for project icons (#376)
Co-authored-by: Jack Stehn <jack.stehn@protonmail.com>
2021-07-15 07:53:28 +00:00
github-actions[bot] 6a55617adc add vendor specific css prefixes (#373)
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
2021-07-14 11:35:40 +06:00
HeiTang ffe40b1cba Add zh.toml (#372) 2021-07-13 04:38:05 +00:00
dependabot[bot] 1a5bbe4eeb Bump gaurav-nelson/github-action-markdown-link-check from 1.0.12 to 1.0.13 (#370)
Bumps [gaurav-nelson/github-action-markdown-link-check](https://github.com/gaurav-nelson/github-action-markdown-link-check) from 1.0.12 to 1.0.13.
- [Release notes](https://github.com/gaurav-nelson/github-action-markdown-link-check/releases)
- [Commits](https://github.com/gaurav-nelson/github-action-markdown-link-check/compare/1.0.12...1.0.13)

---
updated-dependencies:
- dependency-name: gaurav-nelson/github-action-markdown-link-check
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-08 11:04:45 +00:00
William Hou 46952f6ab9 Remove about section whitespace when there are no soft skills/badges (#369)
* Remove about section whitespace when there are no soft skills

* Check for badges in conditional
2021-07-04 15:11:12 +06:00
dependabot[bot] 4099f4f1e6 Bump actions/setup-node from 2.1.5 to 2.2.0 (#367)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.1.5 to 2.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.1.5...v2.2.0)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-01 18:14:20 +00:00
hossainemruz dd0c46593c Update release-drafter
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-06-28 00:11:21 +06:00
Emruz Hossain 14ee45e4a0 Fix Google Analytic not showing up for v3 ID (#363)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-06-27 18:00:23 +00:00
Jean-Baptiste Le Duigou 091c77360d Make newsletter helper label clear to complaint with GDPR (#357)
* Fix link to email address

See https://github.com/hossainemruz/toha/issues/7

* ✏️  update newsletter helper to be more GDPR compliant

Signed-off-by: jbleduigou <jb.leduigou@gmail.com>

* Add more translations

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

Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-06-27 23:42:44 +06:00
github-actions[bot] 884bf65e43 add vendor specific css prefixes (#360)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
2021-06-21 10:01:51 +06:00
Jean-Baptiste Le Duigou ebe659b12b 358 error next prev page (#359)
* Fix link to email address

See https://github.com/hossainemruz/toha/issues/7

* 🐛 fix bug with next-prev-navigator when no menus

Signed-off-by: jbleduigou <jb.leduigou@gmail.com>

* 🐛 fix overriding issue

Signed-off-by: jbleduigou <jb.leduigou@gmail.com>
2021-06-20 01:12:03 +06:00
github-actions[bot] efa63e7990 Update and run autoprefixer (#355)
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-16 19:17:08 +00:00
github-actions[bot] de912c08c6 Update and run autoprefixer (#354)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-16 19:16:13 +00:00
Dan Gillis 0b5bde7233 Support Google Analytics v4 (#353)
Per https://github.com/hugo-toha/toha/issues/352 - in order to support Google Analytics v4, _internal/google_analytics.html should be used

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-06-16 19:15:19 +00:00
vlebert 9004e7c423 Add greeting subtitle (#350)
* resize skillcards by CSS instead of JS

* Revert "resize skillcards by CSS instead of JS"

This reverts commit 169e0599e9.

* french translation

* add an optionnal greeting subtitle

Co-authored-by: vlebert <vlebert@tactis.fr>
2021-06-17 01:14:22 +06:00
Emruz Hossain 61e5a34171 Fix Prev/Next navigator was not pointing to the actual prev/next article (#348)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-06-06 15:43:34 +00:00
Antonio Hernández 929a78837a Fix horizontal scrollbar (#347)
* Fixed scrollbar problems related to about section.

* Fixed scrollbar problems related to skill section.

* Making h1 fonts a little bit smaller on small devices.

Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-06-06 15:56:06 +06:00
vlebert 65a429b664 Use CSS to fix Skill cards height instead JS (#342)
* resize skillcards by CSS instead of JS

* Revert "resize skillcards by CSS instead of JS"

This reverts commit 169e0599e9.

* resize skillcards by CSS instead of JS

Co-authored-by: vlebert <vlebert@tactis.fr>
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-06-06 00:14:32 +06:00
Kaligule 08a09d5c71 Disable logo by default + add logo only if the user provide it
* Disable logo by default, allow to enable with params.logo.enable

* Don't default logo into theme logo

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

* add missing comma

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

* Remove unnecessary changes

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

Co-authored-by: Johannes Lippmann <johannes.lippmann@paessler.com>
Co-authored-by: hossainemruz <hossainemruz@gmail.com>
2021-06-05 23:58:26 +06:00
vlebert 88a0814025 Fix some french translations (#343)
* resize skillcards by CSS instead of JS

* Revert "resize skillcards by CSS instead of JS"

This reverts commit 169e0599e9.

* french translation

Co-authored-by: vlebert <vlebert@tactis.fr>
2021-06-04 10:30:22 +06:00
vlebert 3421c99ebf Fix ressource.Fit not resizing the image properly
Co-authored-by: vlebert <vlebert@tactis.fr>
2021-06-03 16:09:08 +06:00
Kaligule b5fe77f876 Fix typo in comment (#335)
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-06-02 17:22:48 +06:00
Emruz Hossain 6f8280a656 Fix importing user CSS (#338)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-06-01 16:54:45 +00:00
hossainemruz 892fe83255 Use absURL for image in OpenGraph header
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-05-30 18:49:06 +06:00
hossainemruz e86f574aca Use absURL for image in OpenGraph header
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-05-30 18:45:29 +06:00
Emruz Hossain 4a0aa4758a Add OpenGraph Headers (#333)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-05-30 12:32:00 +00:00
github-actions[bot] d9df1053e1 Update and run autoprefixer (#332)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-05-30 12:25:48 +00:00
github-actions[bot] 0884fb6fc6 Update and run autoprefixer (#331)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-05-30 12:24:54 +00:00
hossainemruz e7cc9bcbe8 Revert "Add OpenGraph Headers"
This reverts commit 249f18d853.

Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-05-30 18:23:56 +06:00
hossainemruz 249f18d853 Add OpenGraph Headers
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-05-30 18:20:35 +06:00
github-actions[bot] fdd2ae46fa Update and run autoprefixer (#328)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-05-25 05:35:44 +00:00
github-actions[bot] 1824e56268 Update and run autoprefixer (#324)
Co-authored-by: kodiakhq[bot] <kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-05-25 05:34:52 +00:00
Steven Conrad Bayer a811118a53 Fix German translation + add Dutch translations (#326)
* Update translations

* Update german translation
2021-05-25 11:33:58 +06:00
dependabot[bot] ace2adfeb7 Bump peter-evans/create-pull-request from 3.9.2 to 3.10.0 (#323)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.9.2 to 3.10.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.9.2...v3.10.0)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-24 06:36:34 +00:00
github-actions[bot] cc4f7ee706 add vendor specific css prefixes (#322)
Co-authored-by: hossainemruz <hossainemruz@users.noreply.github.com>
2021-05-19 01:11:58 +06:00
Emruz Hossain 3aa610538e Fix auto-prefixer workflow (#321) 2021-05-19 01:07:42 +06:00
Jean-Baptiste Le Duigou 5f293a8fcc Documentation mailchimp (#320)
* Fix link to email address

See https://github.com/hossainemruz/toha/issues/7

* 📝 add mailchimp parameters to documentation

Signed-off-by: jbleduigou <jb.leduigou@gmail.com>
2021-05-19 00:53:47 +06:00
Pablo Marcos ac28e9824e Make search multilingual (#305)
* Make search multilingual

* Added Support for custom country flags

* Add search.md for more language + fix search behavior

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

Co-authored-by: Pablo Marcos <codebergflamingo@staplehorse.anonaddy.com>
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-05-18 00:32:39 +06:00
Emruz Hossain 16f64aa4c2 Allow overwriting country flag for a language (#316)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-05-17 17:43:06 +00:00
hossainemruz 6a01c1ea4b Rename "circular-bar" into "soft-skill-indicator"
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-05-17 23:01:36 +06:00
Jean-Baptiste Le Duigou 466580b57b Support adding verifiable Certification badges in about section (#307)
* Fix link to email address

See https://github.com/hossainemruz/toha/issues/7

*  provide ability to show certification badges in about section

Signed-off-by: jbleduigou <jb.leduigou@gmail.com>

* Merge certifications and sofkSkills under "badges" generic title

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

Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-05-17 22:50:37 +06:00
Jean-Baptiste Le Duigou c3405ba75b Mailchimp (#308)
* Fix link to email address

See https://github.com/hossainemruz/toha/issues/7

*  adding mailchimp newsletter feature

Signed-off-by: jbleduigou <jb.leduigou@gmail.com>

* Make possible to support different newsletter service in future

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

Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-05-17 17:56:16 +06:00
Thorsten Alteholz 0cdce56244 In case the old config already deactivated the newletter, it must be also (#311)
deactivated in the compatibility code.

Co-authored-by: Thorsten Alteholz <thorsten@alteholz.de>
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-05-17 00:02:18 +06:00
Thorsten Alteholz 5798312a92 Add a disclaimer in the footer of each page. (#312)
* Add a disclaimer in the footer of each page.

* Fix CSS + Add translations

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

Co-authored-by: Thorsten Alteholz <thorsten@alteholz.de>
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-05-16 23:57:17 +06:00
Emruz Hossain 1fc66aae56 Add CodeQL Security analysis (#314) 2021-05-16 20:08:48 +06:00
Emruz Hossain 6eefce8533 Update postcss-cli and autoprefixer (#313)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-05-16 20:05:53 +06:00
dependabot[bot] 0ff2ecce52 Bump peter-evans/create-pull-request from 3.9.1 to 3.9.2 (#310)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.9.1 to 3.9.2.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.9.1...v3.9.2)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-14 05:47:07 +00:00
dependabot[bot] 1124295e82 Bump gaurav-nelson/github-action-markdown-link-check from 1 to 1.0.12 (#309)
Bumps [gaurav-nelson/github-action-markdown-link-check](https://github.com/gaurav-nelson/github-action-markdown-link-check) from 1 to 1.0.12.
- [Release notes](https://github.com/gaurav-nelson/github-action-markdown-link-check/releases)
- [Commits](https://github.com/gaurav-nelson/github-action-markdown-link-check/compare/v1...1.0.12)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-12 19:21:26 +06:00
dependabot[bot] 7d5f1ea324 Bump peter-evans/create-pull-request from v3.8.2 to v3.9.1 (#306)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from v3.8.2 to v3.9.1.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.8.2...d9d6fd980e1e0904e8e4dce3f0992640091bde37)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-10 07:40:09 +00:00
Emruz Hossain 67c49c7432 Fix note layout (#274)
* Re-structure note lists

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

* Support note splitting

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

* Update single page

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

* Refactor separator logic in navbar

Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-05-02 05:02:27 +06:00
Kaligule fc5656c937 Allow footer configuration (#303)
* Allow to disable the footer with params.footer.enable = false

Default is to have the footer enabled (to keep backwards
compatibility).

The diff looks much worse than it is, I just added a variable and an
if clause, but then had to indent the rest of the file.

Make footerEnabled an explicit variable.

This should improve readability.

Use default parameter for even more readability.

* Allow to enable/disable the "contact me" section in the footer.

Just set `footer.contactMe.enable` in the config. Default is true, for
backwards compatibility.

* Make footer template more consistent.

Enabling footers elements and the newsletter is now managed in the
same place.

* Allow to disable the footer navigation. Default is enabled.

* Allow to disable credentials and copyright notice. Default: enabled

* Footer: Reformat variable initialization for readability.

* Allow providing template for footer

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

Co-authored-by: hossainemruz <hossainemruz@gmail.com>
2021-05-02 03:57:19 +06:00
Kaligule ab962d4f4a Readme: Give each badge it's own line (#302)
This improves code readability and doesn't effect the Rendered html Readme.
2021-04-30 01:19:37 +06:00
Kaligule 78ea0674dd Use verbose flags in Readme (#300)
so people who don't know hugos flags can guess what they mean just from reading.
2021-04-26 17:35:26 +06:00
imgbot[bot] c6183cb404 [ImgBot] Optimize images (#299)
*Total -- 2,336.15kb -> 2,251.55kb (3.62%)

/static/flags/4x3/bd.svg -- 1.56kb -> 0.29kb (81.77%)
/static/flags/4x3/ax.svg -- 0.55kb -> 0.46kb (15.03%)
/static/flags/4x3/in.svg -- 1.05kb -> 0.89kb (14.8%)
/static/flags/4x3/uz.svg -- 1.42kb -> 1.24kb (12.65%)
/static/flags/4x3/eu.svg -- 1.22kb -> 1.07kb (12.65%)
/static/flags/4x3/ch.svg -- 0.29kb -> 0.25kb (12.46%)
/static/flags/4x3/bj.svg -- 0.49kb -> 0.43kb (12.35%)
/static/flags/4x3/ps.svg -- 0.55kb -> 0.48kb (12.3%)
/static/flags/4x3/ve.svg -- 1.14kb -> 1.00kb (12.16%)
/static/flags/4x3/to.svg -- 0.35kb -> 0.31kb (11.83%)
/static/flags/4x3/jo.svg -- 0.70kb -> 0.63kb (10.56%)
/static/flags/4x3/sd.svg -- 0.49kb -> 0.44kb (10.26%)
/static/flags/4x3/gm.svg -- 0.53kb -> 0.48kb (10.26%)
/static/flags/4x3/la.svg -- 0.45kb -> 0.40kb (10.07%)
/static/flags/4x3/kw.svg -- 0.50kb -> 0.45kb (10.02%)
/static/flags/4x3/sc.svg -- 0.56kb -> 0.50kb (9.81%)
/static/flags/4x3/za.svg -- 0.84kb -> 0.76kb (9.66%)
/static/flags/4x3/cg.svg -- 0.48kb -> 0.43kb (9.45%)
/static/flags/4x3/uy.svg -- 1.68kb -> 1.52kb (9.43%)
/static/flags/4x3/tz.svg -- 0.54kb -> 0.49kb (9.29%)
/static/flags/4x3/bs.svg -- 0.54kb -> 0.49kb (9.24%)
/static/flags/4x3/bw.svg -- 0.25kb -> 0.22kb (9.13%)
/static/flags/4x3/cl.svg -- 0.55kb -> 0.50kb (9.06%)
/static/flags/4x3/ir.svg -- 15.09kb -> 13.72kb (9.05%)
/static/flags/4x3/cf.svg -- 0.67kb -> 0.62kb (8.83%)
/static/flags/4x3/pk.svg -- 0.72kb -> 0.66kb (8.8%)
/static/flags/4x3/pw.svg -- 0.46kb -> 0.42kb (8.78%)
/static/flags/4x3/is.svg -- 0.51kb -> 0.47kb (8.78%)
/static/flags/4x3/mu.svg -- 0.31kb -> 0.28kb (8.78%)
/static/flags/4x3/bv.svg -- 0.57kb -> 0.52kb (8.72%)
/static/flags/4x3/jp.svg -- 0.46kb -> 0.42kb (8.65%)
/static/flags/4x3/dj.svg -- 0.58kb -> 0.53kb (8.63%)
/static/flags/4x3/td.svg -- 0.26kb -> 0.24kb (8.61%)
/static/flags/4x3/do.svg -- 384.62kb -> 351.70kb (8.56%)
/static/flags/4x3/tl.svg -- 0.59kb -> 0.54kb (8.46%)
/static/flags/4x3/ga.svg -- 0.27kb -> 0.25kb (8.39%)
/static/flags/4x3/hu.svg -- 0.27kb -> 0.25kb (8.39%)
/static/flags/4x3/sl.svg -- 0.27kb -> 0.25kb (8.36%)
/static/flags/4x3/ye.svg -- 0.27kb -> 0.25kb (8.36%)
/static/flags/4x3/ml.svg -- 0.27kb -> 0.25kb (8.33%)
/static/flags/4x3/vn.svg -- 0.48kb -> 0.44kb (8.3%)
/static/flags/4x3/mm.svg -- 0.83kb -> 0.76kb (8.25%)
/static/flags/4x3/so.svg -- 0.49kb -> 0.45kb (8.25%)
/static/flags/4x3/cw.svg -- 0.67kb -> 0.61kb (8.22%)
/static/flags/4x3/ci.svg -- 0.27kb -> 0.25kb (8.21%)
/static/flags/4x3/cu.svg -- 0.61kb -> 0.56kb (8.2%)
/static/flags/4x3/pl.svg -- 0.22kb -> 0.20kb (8.11%)
/static/flags/4x3/fo.svg -- 0.56kb -> 0.51kb (8.07%)
/static/flags/4x3/bg.svg -- 0.28kb -> 0.26kb (8.04%)
/static/flags/4x3/ru.svg -- 0.28kb -> 0.26kb (8.04%)
/static/flags/4x3/th.svg -- 0.28kb -> 0.26kb (8.01%)
/static/flags/4x3/pr.svg -- 0.62kb -> 0.57kb (8.01%)
/static/flags/4x3/co.svg -- 0.28kb -> 0.26kb (7.96%)
/static/flags/4x3/be.svg -- 0.28kb -> 0.26kb (7.93%)
/static/flags/4x3/gf.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/gp.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/yt.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/bl.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/wf.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/mf.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/ie.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/it.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/pm.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/mq.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/re.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/fr.svg -- 0.29kb -> 0.26kb (7.88%)
/static/flags/4x3/tw.svg -- 2.52kb -> 2.32kb (7.86%)
/static/flags/4x3/cr.svg -- 0.29kb -> 0.26kb (7.85%)
/static/flags/4x3/gn.svg -- 0.29kb -> 0.27kb (7.8%)
/static/flags/4x3/lv.svg -- 0.23kb -> 0.21kb (7.73%)
/static/flags/4x3/lr.svg -- 0.71kb -> 0.66kb (7.7%)
/static/flags/4x3/tg.svg -- 0.71kb -> 0.66kb (7.69%)
/static/flags/4x3/kp.svg -- 0.78kb -> 0.72kb (7.67%)
/static/flags/4x3/mg.svg -- 0.29kb -> 0.27kb (7.62%)
/static/flags/4x3/id.svg -- 0.23kb -> 0.21kb (7.59%)
/static/flags/4x3/mc.svg -- 0.23kb -> 0.21kb (7.59%)
/static/flags/4x3/lc.svg -- 0.36kb -> 0.33kb (7.57%)
/static/flags/4x3/ua.svg -- 0.23kb -> 0.21kb (7.56%)
/static/flags/4x3/ro.svg -- 0.30kb -> 0.28kb (7.54%)
/static/flags/4x3/at.svg -- 0.23kb -> 0.22kb (7.5%)
/static/flags/4x3/ag.svg -- 0.73kb -> 0.68kb (7.48%)
/static/flags/4x3/pa.svg -- 0.73kb -> 0.68kb (7.48%)
/static/flags/4x3/cm.svg -- 0.80kb -> 0.75kb (7.4%)
/static/flags/4x3/jm.svg -- 0.38kb -> 0.35kb (7.2%)
/static/flags/4x3/ee.svg -- 0.31kb -> 0.29kb (7.17%)
/static/flags/4x3/nr.svg -- 0.64kb -> 0.59kb (7.07%)
/static/flags/4x3/nu.svg -- 1.73kb -> 1.61kb (7.01%)
/static/flags/4x3/eh.svg -- 0.85kb -> 0.79kb (6.99%)
/static/flags/4x3/st.svg -- 0.89kb -> 0.83kb (6.99%)
/static/flags/4x3/gd.svg -- 1.64kb -> 1.53kb (6.96%)
/static/flags/4x3/ng.svg -- 0.25kb -> 0.24kb (6.92%)
/static/flags/4x3/dm.svg -- 15.60kb -> 14.52kb (6.9%)
/static/flags/4x3/kn.svg -- 0.80kb -> 0.75kb (6.84%)
/static/flags/4x3/rw.svg -- 0.73kb -> 0.68kb (6.83%)
/static/flags/4x3/tn.svg -- 0.73kb -> 0.68kb (6.79%)
/static/flags/4x3/gy.svg -- 0.48kb -> 0.44kb (6.76%)
/static/flags/4x3/na.svg -- 0.98kb -> 0.92kb (6.57%)
/static/flags/4x3/nz.svg -- 2.88kb -> 2.69kb (6.48%)
/static/flags/4x3/gi.svg -- 2.87kb -> 2.68kb (6.47%)
/static/flags/4x3/bf.svg -- 0.35kb -> 0.33kb (6.44%)
/static/flags/4x3/hn.svg -- 1.09kb -> 1.02kb (6.29%)
/static/flags/4x3/il.svg -- 0.88kb -> 0.83kb (6.22%)
/static/flags/4x3/vc.svg -- 0.44kb -> 0.41kb (6.21%)
/static/flags/4x3/km.svg -- 1.04kb -> 0.97kb (6.2%)
/static/flags/4x3/sn.svg -- 0.41kb -> 0.39kb (6.13%)
/static/flags/4x3/cz.svg -- 0.23kb -> 0.21kb (6.06%)
/static/flags/4x3/bh.svg -- 0.50kb -> 0.47kb (6%)
/static/flags/4x3/ke.svg -- 1.35kb -> 1.27kb (5.87%)
/static/flags/4x3/ht.svg -- 14.65kb -> 13.79kb (5.86%)
/static/flags/4x3/kr.svg -- 1.78kb -> 1.68kb (5.82%)
/static/flags/4x3/sg.svg -- 0.87kb -> 0.82kb (5.75%)
/static/flags/4x3/aw.svg -- 9.72kb -> 9.17kb (5.69%)
/static/flags/4x3/bi.svg -- 1.05kb -> 0.99kb (5.68%)
/static/flags/4x3/ae.svg -- 0.25kb -> 0.23kb (5.51%)
/static/flags/4x3/np.svg -- 1.04kb -> 0.98kb (5.47%)
/static/flags/4x3/sb.svg -- 0.93kb -> 0.88kb (5.35%)
/static/flags/4x3/sj.svg -- 0.31kb -> 0.30kb (5.3%)
/static/flags/4x3/no.svg -- 0.31kb -> 0.30kb (5.3%)
/static/flags/4x3/fm.svg -- 0.76kb -> 0.72kb (5.28%)
/static/flags/4x3/lt.svg -- 0.43kb -> 0.41kb (5.2%)
/static/flags/4x3/ss.svg -- 0.38kb -> 0.36kb (5.18%)
/static/flags/4x3/de.svg -- 0.21kb -> 0.20kb (5.16%)
/static/flags/4x3/sv.svg -- 80.76kb -> 76.62kb (5.13%)
/static/flags/4x3/ne.svg -- 0.27kb -> 0.26kb (5.07%)
/static/flags/4x3/tr.svg -- 0.54kb -> 0.51kb (5.05%)
/static/flags/4x3/gh.svg -- 0.27kb -> 0.26kb (4.98%)
/static/flags/4x3/am.svg -- 0.22kb -> 0.21kb (4.93%)
/static/flags/4x3/nl.svg -- 0.22kb -> 0.21kb (4.91%)
/static/flags/4x3/bq.svg -- 0.22kb -> 0.21kb (4.91%)
/static/flags/4x3/mv.svg -- 0.28kb -> 0.27kb (4.84%)
/static/flags/4x3/lu.svg -- 0.22kb -> 0.21kb (4.82%)
/static/flags/4x3/gw.svg -- 0.79kb -> 0.76kb (4.8%)
/static/flags/4x3/se.svg -- 0.23kb -> 0.21kb (4.76%)
/static/flags/4x3/ai.svg -- 47.13kb -> 44.89kb (4.75%)
/static/flags/4x3/fi.svg -- 0.23kb -> 0.22kb (4.64%)
/static/flags/4x3/kh.svg -- 7.09kb -> 6.76kb (4.64%)
/static/flags/4x3/dk.svg -- 0.23kb -> 0.22kb (4.6%)
/static/flags/4x3/gb-eng.svg -- 0.24kb -> 0.23kb (4.55%)
/static/flags/4x3/et.svg -- 1.20kb -> 1.15kb (4.54%)
/static/flags/4x3/sr.svg -- 0.31kb -> 0.29kb (4.44%)
/static/flags/4x3/py.svg -- 16.70kb -> 15.96kb (4.44%)
/static/flags/4x3/gr.svg -- 1.07kb -> 1.02kb (4.38%)
/static/flags/4x3/ni.svg -- 17.98kb -> 17.21kb (4.25%)
/static/flags/4x3/je.svg -- 4.60kb -> 4.41kb (4.06%)
/static/flags/4x3/gt.svg -- 36.38kb -> 34.93kb (3.99%)
/static/flags/4x3/om.svg -- 22.11kb -> 21.23kb (3.98%)
/static/flags/4x3/tf.svg -- 1.06kb -> 1.02kb (3.95%)
/static/flags/4x3/pt.svg -- 8.09kb -> 7.77kb (3.93%)
/static/flags/4x3/az.svg -- 0.50kb -> 0.48kb (3.91%)
/static/flags/4x3/hk.svg -- 3.41kb -> 3.28kb (3.89%)
/static/flags/4x3/cn.svg -- 0.78kb -> 0.75kb (3.87%)
/static/flags/4x3/gg.svg -- 0.58kb -> 0.56kb (3.87%)
/static/flags/4x3/tj.svg -- 1.77kb -> 1.70kb (3.86%)
/static/flags/4x3/va.svg -- 88.94kb -> 85.61kb (3.74%)
/static/flags/4x3/dz.svg -- 0.29kb -> 0.28kb (3.74%)
/static/flags/4x3/sz.svg -- 6.58kb -> 6.34kb (3.72%)
/static/flags/4x3/si.svg -- 2.00kb -> 1.93kb (3.7%)
/static/flags/4x3/tm.svg -- 31.53kb -> 30.38kb (3.65%)
/static/flags/4x3/cv.svg -- 1.38kb -> 1.33kb (3.6%)
/static/flags/4x3/gl.svg -- 0.22kb -> 0.21kb (3.59%)
/static/flags/4x3/my.svg -- 1.24kb -> 1.20kb (3.54%)
/static/flags/4x3/ms.svg -- 9.06kb -> 8.74kb (3.51%)
/static/flags/4x3/ba.svg -- 1.28kb -> 1.23kb (3.51%)
/static/flags/4x3/tt.svg -- 0.31kb -> 0.30kb (3.49%)
/static/flags/4x3/tv.svg -- 1.74kb -> 1.68kb (3.48%)
/static/flags/4x3/mz.svg -- 2.56kb -> 2.47kb (3.47%)
/static/flags/4x3/gb-sct.svg -- 0.23kb -> 0.22kb (3.46%)
/static/flags/4x3/ug.svg -- 3.86kb -> 3.73kb (3.44%)
/static/flags/4x3/ws.svg -- 0.68kb -> 0.65kb (3.32%)
/static/flags/4x3/es-ga.svg -- 27.60kb -> 26.69kb (3.29%)
/static/flags/4x3/ma.svg -- 0.24kb -> 0.24kb (3.2%)
/static/flags/4x3/mr.svg -- 0.43kb -> 0.42kb (3.17%)
/static/flags/4x3/gb.svg -- 0.53kb -> 0.51kb (3.16%)
/static/flags/4x3/cd.svg -- 0.34kb -> 0.33kb (3.15%)
/static/flags/4x3/mh.svg -- 0.72kb -> 0.70kb (3.1%)
/static/flags/4x3/es-ct.svg -- 0.25kb -> 0.24kb (3.1%)
/static/flags/4x3/ar.svg -- 3.32kb -> 3.22kb (3.09%)
/static/flags/4x3/li.svg -- 8.07kb -> 7.83kb (3.08%)
/static/flags/4x3/io.svg -- 26.70kb -> 25.88kb (3.06%)
/static/flags/4x3/br.svg -- 7.91kb -> 7.67kb (3.03%)
/static/flags/4x3/mt.svg -- 8.53kb -> 8.28kb (2.9%)
/static/flags/4x3/fj.svg -- 26.60kb -> 25.83kb (2.89%)
/static/flags/4x3/mk.svg -- 0.37kb -> 0.36kb (2.88%)
/static/flags/4x3/ki.svg -- 5.68kb -> 5.51kb (2.86%)
/static/flags/4x3/mn.svg -- 1.22kb -> 1.18kb (2.81%)
/static/flags/4x3/nc.svg -- 1.38kb -> 1.34kb (2.7%)
/static/flags/4x3/ad.svg -- 32.69kb -> 31.81kb (2.69%)
/static/flags/4x3/vg.svg -- 24.06kb -> 23.42kb (2.67%)
/static/flags/4x3/gu.svg -- 4.73kb -> 4.60kb (2.67%)
/static/flags/4x3/zm.svg -- 5.37kb -> 5.23kb (2.64%)
/static/flags/4x3/hm.svg -- 1.29kb -> 1.26kb (2.49%)
/static/flags/4x3/sy.svg -- 0.55kb -> 0.54kb (2.48%)
/static/flags/4x3/ao.svg -- 1.55kb -> 1.51kb (2.46%)
/static/flags/4x3/sm.svg -- 15.43kb -> 15.05kb (2.44%)
/static/flags/4x3/vu.svg -- 3.68kb -> 3.60kb (2.39%)
/static/flags/4x3/af.svg -- 20.57kb -> 20.09kb (2.36%)
/static/flags/4x3/as.svg -- 7.88kb -> 7.69kb (2.34%)
/static/flags/4x3/md.svg -- 10.97kb -> 10.72kb (2.33%)
/static/flags/4x3/bt.svg -- 24.64kb -> 24.06kb (2.32%)
/static/flags/4x3/lb.svg -- 2.75kb -> 2.69kb (2.31%)
/static/flags/4x3/gb-nir.svg -- 24.47kb -> 23.91kb (2.3%)
/static/flags/4x3/qa.svg -- 0.35kb -> 0.34kb (2.23%)
/static/flags/4x3/pe.svg -- 71.88kb -> 70.31kb (2.2%)
/static/flags/4x3/iq.svg -- 1.44kb -> 1.40kb (2.18%)
/static/flags/4x3/cc.svg -- 3.05kb -> 2.98kb (2.15%)
/static/flags/4x3/eg.svg -- 9.67kb -> 9.46kb (2.12%)
/static/flags/4x3/tc.svg -- 14.16kb -> 13.86kb (2.09%)
/static/flags/4x3/cx.svg -- 2.40kb -> 2.35kb (2.08%)
/static/flags/4x3/ec.svg -- 28.63kb -> 28.04kb (2.05%)
/static/flags/4x3/mp.svg -- 22.85kb -> 22.38kb (2.05%)
/static/flags/4x3/pn.svg -- 10.62kb -> 10.41kb (2.04%)
/static/flags/4x3/gs.svg -- 33.76kb -> 33.07kb (2.04%)
/static/flags/4x3/sx.svg -- 12.90kb -> 12.64kb (2.01%)
/static/flags/4x3/gq.svg -- 5.06kb -> 4.96kb (1.99%)
/static/flags/4x3/sk.svg -- 1.17kb -> 1.15kb (1.91%)
/static/flags/4x3/pf.svg -- 4.19kb -> 4.11kb (1.89%)
/static/flags/4x3/mo.svg -- 1.43kb -> 1.40kb (1.85%)
/static/flags/4x3/kg.svg -- 3.29kb -> 3.24kb (1.81%)
/static/flags/4x3/es.svg -- 88.69kb -> 87.10kb (1.79%)
/static/flags/4x3/bo.svg -- 114.16kb -> 112.19kb (1.73%)
/static/flags/4x3/ph.svg -- 1.53kb -> 1.50kb (1.73%)
/static/flags/4x3/im.svg -- 9.64kb -> 9.48kb (1.68%)
/static/flags/4x3/by.svg -- 5.82kb -> 5.73kb (1.64%)
/static/flags/4x3/ls.svg -- 1.19kb -> 1.17kb (1.64%)
/static/flags/4x3/pg.svg -- 1.62kb -> 1.60kb (1.63%)
/static/flags/4x3/bz.svg -- 45.34kb -> 44.64kb (1.54%)
/static/flags/4x3/au.svg -- 1.51kb -> 1.49kb (1.49%)
/static/flags/4x3/um.svg -- 4.42kb -> 4.35kb (1.44%)
/static/flags/4x3/tk.svg -- 0.77kb -> 0.76kb (1.4%)
/static/flags/4x3/zw.svg -- 6.49kb -> 6.40kb (1.37%)
/static/flags/4x3/bm.svg -- 22.04kb -> 21.76kb (1.28%)
/static/flags/4x3/mx.svg -- 92.75kb -> 91.62kb (1.22%)
/static/flags/4x3/fk.svg -- 31.22kb -> 30.84kb (1.22%)
/static/flags/4x3/bn.svg -- 13.88kb -> 13.71kb (1.21%)
/static/flags/4x3/kz.svg -- 11.06kb -> 10.93kb (1.21%)
/static/flags/4x3/rs.svg -- 182.75kb -> 180.60kb (1.18%)
/static/flags/4x3/vi.svg -- 8.54kb -> 8.44kb (1.17%)
/static/flags/4x3/sa.svg -- 10.00kb -> 9.88kb (1.13%)
/static/flags/4x3/ca.svg -- 0.71kb -> 0.70kb (1.1%)
/static/flags/4x3/ck.svg -- 2.05kb -> 2.03kb (1.1%)
/static/flags/4x3/ky.svg -- 21.21kb -> 20.99kb (1.08%)
/static/flags/4x3/mw.svg -- 3.57kb -> 3.53kb (1.04%)
/static/flags/4x3/ge.svg -- 1.36kb -> 1.35kb (1%)
/static/flags/4x3/us.svg -- 4.36kb -> 4.32kb (0.94%)
/static/flags/4x3/er.svg -- 3.11kb -> 3.08kb (0.88%)
/static/flags/4x3/lk.svg -- 10.98kb -> 10.88kb (0.85%)
/static/flags/4x3/sh.svg -- 28.81kb -> 28.60kb (0.74%)
/static/flags/4x3/xk.svg -- 9.42kb -> 9.36kb (0.64%)
/static/flags/4x3/hr.svg -- 39.66kb -> 39.42kb (0.61%)
/static/flags/4x3/nf.svg -- 5.70kb -> 5.67kb (0.57%)
/static/flags/4x3/me.svg -- 60.91kb -> 60.58kb (0.55%)
/static/flags/4x3/al.svg -- 3.13kb -> 3.12kb (0.34%)
/static/flags/4x3/gb-wls.svg -- 8.95kb -> 8.92kb (0.32%)
/static/flags/4x3/un.svg -- 19.47kb -> 19.42kb (0.24%)
/static/flags/4x3/cy.svg -- 5.73kb -> 5.71kb (0.24%)
/static/flags/4x3/aq.svg -- 6.00kb -> 5.99kb (0.18%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>

Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2021-04-25 19:40:22 +00:00
hossainemruz 93f2a53f6c Fix space after flag icon
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-04-26 00:59:46 +06:00
Emruz Hossain 4679efe5c5 Fix country flag not showing in language selector (#298)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2021-04-25 18:48:49 +00:00
Jakub Cabak 19c2edb08d Accessibility and SEO improvements (#296)
Co-authored-by: JCabak <kubaczento@gmail.com>
2021-04-25 17:15:22 +06:00
David G. Simmons 6996894ec1 add video shortcode (#289)
* add video shortcode

* Use "sampotts/plyr" library instead of "clappr/clappr"

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

Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2021-04-06 01:12:28 +06:00
Tommy Chu d38634df8d Refactor target values of redirections to external pages (#292) 2021-04-05 23:32:54 +06:00
Tommy Chu d6706e05ee Fix redirections to empty tabs (#290)
Whenever href (url) attribute was omitted or had no value
the click action would do nothing. With no URLs defined and
`target="_blank"` attributes, which were recently added,
anchor tags now redirect users to new blank tabs (side effect).

This PR solves the issues by adding conditions
before applying `target="_blank"` or in some cases by
ommiting entire entities (e.g. the view_certificate button).
2021-04-05 22:25:27 +06:00
Tommy Chu cb3df73d53 Fix inconsistencies in target attributes (#288) 2021-04-04 15:35:51 +06:00
Nirjas Jakilim 60d2b21649 Fixed Errors in the Console issue #239 (#287)
* Fixed Errors in the Console #239
2021-04-03 20:11:38 +06:00
379 changed files with 4288 additions and 1572 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ categories:
- 'feature'
- 'enhancement'
- title: 'New Translations'
- title: 'Translations'
label: 'translation'
- title: 'Bug Fixes'
+4 -4
View File
@@ -8,20 +8,20 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout to latest commit
uses: actions/checkout@v2.3.4
uses: actions/checkout@v2.4.0
- name: Setup Node
uses: actions/setup-node@v2.1.5
uses: actions/setup-node@v2.4.1
with:
node-version: "15.x"
- name: Run autoprefixer
run: |
npm install postcss-cli autoprefixer --save-dev
npm install postcss postcss-cli autoprefixer --save-dev
npm run autoprefixer
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3.8.2
uses: peter-evans/create-pull-request@v3.11.0
with:
branch: autoprefixer
branch-suffix: timestamp
+71
View File
@@ -0,0 +1,71 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ main ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
schedule:
- cron: '19 16 * * 2'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2.4.0
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# 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
# ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
+2 -2
View File
@@ -8,6 +8,6 @@ jobs:
runs-on: ubuntu-latest
steps:
# checkout to latest commit
- uses: actions/checkout@master
- uses: actions/checkout@v2.4.0
# run markdown linter
- uses: gaurav-nelson/github-action-markdown-link-check@v1
- uses: gaurav-nelson/github-action-markdown-link-check@1.0.13
@@ -0,0 +1,150 @@
name: Project Automation (Issue)
on:
issues:
types:
- opened
- reopened
- closed
- labeled
- unlabeled
jobs:
issue_automation:
runs-on: ubuntu-latest
steps:
- name: Get project data
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
ORGANIZATION: hugo-toha
PROJECT_NUMBER: 4
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
query($org: String!, $number: Int!) {
organization(login: $org){
projectNext(number: $number) {
id
fields(first:20) {
nodes {
id
name
settings
}
}
}
}
}' -f org="$ORGANIZATION" -F number=$PROJECT_NUMBER > project_data.json
echo 'PROJECT_ID='$(jq -r '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
# Read the ID of the "Type" field options
echo 'TYPE_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.id' project_data.json) >> $GITHUB_ENV
echo 'PROJECT_ID='$(jq -r '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_BUG='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Bug") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_FEATURE='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Feature") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_ENHANCEMENT='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Enhancement") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_DOCUMENTATION='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Documentation") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_TRANSLATION='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Translation") |.id' project_data.json) >> $GITHUB_ENV
# Read the id of the "Status" field options
echo 'STATUS_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_TODO='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_IN_PROGRESS='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="In Progress") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_READY_FOR_REVIEW='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Ready for Review") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_DONE='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Done") |.id' project_data.json) >> $GITHUB_ENV
- name: Add Issue to project
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
ISSUE_ID: ${{ github.event.issue.node_id }}
run: |
item_id="$( gh api graphql -f query='
mutation($project:ID!, $issue:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $issue}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f issue="$ISSUE_ID" --jq '.data.addProjectNextItem.projectNextItem.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
- name: Export Labels
env:
ISSUE_DATA: ${{ toJson(github.event.issue) }}
run: |
echo 'LABELS='$(echo "$ISSUE_DATA" | jq -r '[.labels[].name] | join(" ")') >> $GITHUB_ENV
- name: Set "Type" field
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
# Only execute this step if the Issue contains at least one label
if [ "${#LABELS[@]}" -gt 0 ]; then
# Let by default the type is "Bug"
OPTION_ID=$TYPE_BUG
# If it has "feature" label then set the type to "Feature"
if [[ "${LABELS[*]}" =~ "feature" ]]; then
OPTION_ID=$TYPE_FEATURE
fi
# If it has "enhancement" label then set the type to "Enhancement"
if [[ "${LABELS[*]}" =~ "enhancement" ]]; then
OPTION_ID=$TYPE_ENHANCEMENT
fi
# If it has "documentation" label then set the type to "Documentation"
if [[ "${LABELS[*]}" =~ "documentation" ]]; then
OPTION_ID=$TYPE_DOCUMENTATION
fi
# If it has "translation" label then set the type to "Translation"
if [[ "${LABELS[*]}" =~ "translation" ]]; then
OPTION_ID=$TYPE_TRANSLATION
fi
# Set the "Type" field to appropriate option
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $opt_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $opt_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$ITEM_ID" -f field="$TYPE_ID" -f opt_id="$OPTION_ID" --silent
fi
- name: Set "Status" field
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
STATE=${{github.event.issue.state}}
echo "State: $STATE"
OPTION_ID=$STATUS_TODO
if [[ "${STATE}" == "closed" ]]
then
OPTION_ID=$STATUS_DONE
fi
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $status_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $status_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$ITEM_ID" -f field="$STATUS_ID" -f status_id="$OPTION_ID" --silent
@@ -0,0 +1,219 @@
name: Project Automation (PR)
on:
pull_request:
types:
- opened
- ready_for_review
- reopened
- review_requested
- closed
- labeled
- unlabeled
- synchronize
jobs:
pr_automation:
runs-on: ubuntu-latest
steps:
- name: Get project data
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
ORGANIZATION: hugo-toha
PROJECT_NUMBER: 4
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
query($org: String!, $number: Int!) {
organization(login: $org){
projectNext(number: $number) {
id
fields(first:20) {
nodes {
id
name
settings
}
}
}
}
}' -f org="$ORGANIZATION" -F number=$PROJECT_NUMBER > project_data.json
echo 'PROJECT_ID='$(jq -r '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
# Read the ID of the "Type" field options
echo 'TYPE_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.id' project_data.json) >> $GITHUB_ENV
echo 'PROJECT_ID='$(jq -r '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_BUG='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Bug") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_FEATURE='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Feature") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_ENHANCEMENT='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Enhancement") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_DOCUMENTATION='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Documentation") |.id' project_data.json) >> $GITHUB_ENV
echo 'TYPE_TRANSLATION='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Type") |.settings | fromjson.options[] | select(.name=="Translation") |.id' project_data.json) >> $GITHUB_ENV
# Read the id of the "Status" field options
echo 'STATUS_ID='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_TODO='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Todo") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_IN_PROGRESS='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="In Progress") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_READY_FOR_REVIEW='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Ready for Review") |.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_DONE='$(jq -r '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") |.settings | fromjson.options[] | select(.name=="Done") |.id' project_data.json) >> $GITHUB_ENV
- name: Add PR to project
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
PR_ID: ${{ github.event.pull_request.node_id }}
run: |
item_id="$( gh api graphql -f query='
mutation($project:ID!, $pr:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $pr}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f pr="$PR_ID" --jq '.data.addProjectNextItem.projectNextItem.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
- name: Export Labels
env:
PR_DATA: ${{ toJson(github.event.pull_request) }}
run: |
echo 'LABELS='$(echo "$PR_DATA" | jq -r '[.labels[].name] | join(" ")') >> $GITHUB_ENV
- name: Set "Type" field
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
# Only execute this step if the PR contains at least one label
if [ "${#LABELS[@]}" -gt 0 ]; then
# Let by default the type is "Bug"
OPTION_ID=$TYPE_BUG
# If it has "feature" label then set the type to "Feature"
if [[ "${LABELS[*]}" =~ "feature" ]]; then
OPTION_ID=$TYPE_FEATURE
fi
# If it has "enhancement" label then set the type to "Enhancement"
if [[ "${LABELS[*]}" =~ "enhancement" ]]; then
OPTION_ID=$TYPE_ENHANCEMENT
fi
# If it has "documentation" label then set the type to "Documentation"
if [[ "${LABELS[*]}" =~ "documentation" ]]; then
OPTION_ID=$TYPE_DOCUMENTATION
fi
# If it has "translation" label then set the type to "Translation"
if [[ "${LABELS[*]}" =~ "translation" ]]; then
OPTION_ID=$TYPE_TRANSLATION
fi
# Set the "Type" field to appropriate option
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $opt_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $opt_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$ITEM_ID" -f field="$TYPE_ID" -f opt_id="$OPTION_ID" --silent
fi
- name: Set "Status" field
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
MERGED=${{github.event.pull_request.merged}}
STATE=${{github.event.pull_request.state}}
REVIEWERS=${{github.event.pull_request.requested_reviewers}}
DRAFT=${{github.event.pull_request.draft}}
echo "Merged: $MERGED"
echo "State: $STATE"
echo "Draft: $DRAFT"
echo "Reviewer: $REVIEWER"
OPTION_ID=$STATUS_TODO
if [[ ("${MERGED}" == "true") || ("${STATE}" == "closed") ]]
then
OPTION_ID=$STATUS_DONE
elif [[ ${#REVIEWERS[@]} -gt 0 ]]
then
OPTION_ID=$STATUS_READY_FOR_REVIEW
else
OPTION_ID=$STATUS_IN_PROGRESS
fi
# Expose the OPTION_ID so that it can be used in later steps
echo 'PR_STATUS='$OPTION_ID >> $GITHUB_ENV
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $status_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $status_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$ITEM_ID" -f field="$STATUS_ID" -f status_id="$OPTION_ID" --silent
- name: Find Linked Issues
id: linked_issues
uses: hossainemruz/linked-issues@main
with:
pr_url: ${{github.event.pull_request.html_url}}
format: IssueNumber
- name: Update Linked Issues Status
env:
GITHUB_TOKEN: ${{secrets.PROJECT_AUTOMATION}}
run: |
declare -a issues=(${{ steps.linked_issues.outputs.issues }})
# Loop through the every issues and update their Status to same as the PR Status
for i in "${issues[@]}"
do
# Find the Issue ID
ISSUE_ID="$(gh api graphql -f query='
query($owner: String!, $name: String!, $issue_number: Int!) {
repository(owner: $owner, name: $name) {
issue(number: $issue_number) {
id
}
}
}' -f owner="${{github.event.pull_request.head.repo.owner.login}}" -f name="${{github.event.pull_request.head.repo.name}}" -F issue_number=$i --jq='.data.repository.issue.id')"
# Find the id of the Issue at the project board
item_id="$( gh api graphql -f query='
mutation($project:ID!, $pr:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $pr}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f pr="$ISSUE_ID" --jq '.data.addProjectNextItem.projectNextItem.id')"
# Update the Issue Status
gh api graphql -f query='
mutation ($project: ID!, $item: ID!, $field: ID!, $status_id: ID!) {
updateProjectNextItemField(input: {
projectId: $project
itemId: $item
fieldId: $field
value: $status_id
}) {
projectNextItem {
id
}
}
}' -f project="$PROJECT_ID" -f item="$item_id" -f field="$STATUS_ID" -f status_id="$PR_STATUS" --silent
done
+21 -4
View File
@@ -1,6 +1,17 @@
# Toha
[![Netlify Status](https://api.netlify.com/api/v1/badges/b1b93b02-f278-440b-ae1b-304e9f4c4ab5/deploy-status)](https://app.netlify.com/sites/toha/deploys) [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fhugo-toha%2Ftoha%2Fbadge%3Fref%3Dmain&style=flat)](https://actions-badge.atrox.dev/hugo-toha/toha/goto?ref=main) ![Repository Size](https://img.shields.io/github/repo-size/hugo-toha/toha) ![Lines of Codes](https://img.shields.io/tokei/lines/github/hugo-toha/toha) ![Contributor](https://img.shields.io/github/contributors/hugo-toha/toha) ![Latest Release](https://img.shields.io/github/v/release/hugo-toha/toha?include_prereleases) ![Last Commit](https://img.shields.io/github/last-commit/hugo-toha/toha) ![Open Issues](https://img.shields.io/github/issues/hugo-toha/toha?color=important) ![Open Pull Requests](https://img.shields.io/github/issues-pr/hugo-toha/toha?color=yellowgreen) ![License](https://img.shields.io/github/license/hugo-toha/toha) ![Security Headers](https://img.shields.io/security-headers?url=https%3A%2F%2Fhugo-toha.github.io%2F) [![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/b7cb60ab/hugo-toha.github.io)
[![Netlify Status](https://api.netlify.com/api/v1/badges/b1b93b02-f278-440b-ae1b-304e9f4c4ab5/deploy-status)](https://app.netlify.com/sites/toha/deploys)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fhugo-toha%2Ftoha%2Fbadge%3Fref%3Dmain&style=flat)](https://actions-badge.atrox.dev/hugo-toha/toha/goto?ref=main)
![Repository Size](https://img.shields.io/github/repo-size/hugo-toha/toha)
![Lines of Codes](https://img.shields.io/tokei/lines/github.com/hugo-toha/toha)
![Contributor](https://img.shields.io/github/contributors/hugo-toha/toha)
![Latest Release](https://img.shields.io/github/v/release/hugo-toha/toha?include_prereleases)
![Last Commit](https://img.shields.io/github/last-commit/hugo-toha/toha)
![Open Issues](https://img.shields.io/github/issues/hugo-toha/toha?color=important)
![Open Pull Requests](https://img.shields.io/github/issues-pr/hugo-toha/toha?color=yellowgreen)
![License](https://img.shields.io/github/license/hugo-toha/toha)
![Security Headers](https://img.shields.io/security-headers?url=https%3A%2F%2Fhugo-toha.github.io%2F)
[![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/b7cb60ab/hugo-toha.github.io)
A [Hugo](https://gohugo.io/) theme for a personal portfolio with minimalist design and responsiveness.
@@ -126,10 +137,16 @@ params:
# specify whether you want to show Table of Contents in reading page
enableTOC: true
# Provide newsletter configuration. This feature hasn't been implemented yet.
# Currently, you can just hide it from the footer.
# Provide newsletter configuration.
# This feature has been implemented for Mailchimp only for now.
# You can also hide it from the footer.
newsletter:
# specify whether you want to display the newsletter form
enable: true
# specify which newsletter provider you want to use
provider: mailchimp
# specify the target URL for the subscription form
mailchimpURL: https://github.us1.list-manage.com/subscribe/post?u=19de52a4603135aae97163fd8&amp;id=094a24c76e
```
Don't forget to update `title`, `baseURL`, and `gitRepo` fields with your own information. To know about more available configuration options, please visit [here](https://toha-guides.netlify.app/posts/configuration/site-parameters/).
@@ -139,7 +156,7 @@ Don't forget to update `title`, `baseURL`, and `gitRepo` fields with your own in
Now, you can run your hugo site with `toha` theme locally with the following command:
```console
$ hugo server -t toha -w
$ hugo server --theme toha --watch
```
When you run your site for first time, it will start with the default parameters. It should look similar to the [example site](https://hugo-toha.github.io). However, it will not have any sections in the homepage as we haven't configured them yet. You can configure your site by following the guides from [here](https://toha-guides.netlify.app/posts/configuration/).
+54
View File
@@ -0,0 +1,54 @@
---
title: "অনুসন্ধানের ফলাফল"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Resultados de Búsqueda"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
Este archivo existe únicamente para responder a la URL /search con la plantilla de diseño `search` relacionada.
No se muestra ningún contenido aquí, todo el contenido se basa en la plantilla layouts/page/search.html
Establecer una prioridad muy baja en el mapa del sitio le dirá a los motores de búsqueda que éste no es un contenido importante.
Esta implementación utiliza Fusejs, jquery y mark.js
## Configuración inicial
La búsqueda depende del tipo de contenido de salida adicional de JSON en config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Búsqueda de archivos adicionales
Para buscar campos adicionales definidos en el front matter, debes añadirlo en 2 lugares.
### Editar layouts/_default/index.JSON
Esto expone los valores en /index.json: por ejemplo, para agregar `categories`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Editar las opciones de fuse.js para buscar
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "অনুসন্ধানের ফলাফল"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Resultados de Búsqueda"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
Este archivo existe únicamente para responder a la URL /search con la plantilla de diseño `search` relacionada.
No se muestra ningún contenido aquí, todo el contenido se basa en la plantilla layouts/page/search.html
Establecer una prioridad muy baja en el mapa del sitio le dirá a los motores de búsqueda que éste no es un contenido importante.
Esta implementación utiliza Fusejs, jquery y mark.js
## Configuración inicial
La búsqueda depende del tipo de contenido de salida adicional de JSON en config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Búsqueda de archivos adicionales
Para buscar campos adicionales definidos en el front matter, debes añadirlo en 2 lugares.
### Editar layouts/_default/index.JSON
Esto expone los valores en /index.json: por ejemplo, para agregar `categories`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Editar las opciones de fuse.js para buscar
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+54
View File
@@ -0,0 +1,54 @@
---
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
priority : 0.1
layout: "search"
url: search
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
\```
[outputs]
home = ["HTML", "JSON"]
\```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
\```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
\```
### Edit fuse.js options to Search
`static/js/search.js`
\```
keys: [
"title",
"contents",
"tags",
"categories"
]
\```
+13 -1
View File
@@ -8,6 +8,12 @@ other = "পোষ্ট সমূহ"
[toc_heading]
other = "সুচিপত্র"
[tags]
other = "ট্যাগ সমুহ"
[categories]
other = "বিভাগ সমুহ"
[resume]
other = "আমার জীবনবৃত্তান্ত"
@@ -30,7 +36,7 @@ other = "ইমেইল নোটিফিকেশান এর মাধ্
other = "ইমেইল প্রবেশ করান"
[newsletter_warning]
other = "আমরা আপনার ইমেল অন্য কারও সাথে শেয়ার করব না।"
other = "আপনার ইমেঠিকানা প্রবেশের মাধমে আপনি এই ওয়েবসাইটের নিউজ লেটার পেতে সম্মত হচ্ছেন।"
[submit]
other = "জমা দিন"
@@ -44,6 +50,9 @@ other = "পূর্ববর্তী"
[next]
other = "পরবর্তী"
[share_on]
other = "শেয়ার করুন"
[improve_this_page]
other = "এই পৃষ্ঠাটি উন্নত করুন"
@@ -106,3 +115,6 @@ other = "সার্টিফিকেট দেখুন"
[notes]
other = "নোট সমূহ"
[disclaimer_text]
other = "দায় বিজ্ঞপ্তি"
+44 -32
View File
@@ -1,6 +1,6 @@
# More documentation here: https://github.com/nicksnyder/go-i18n
[home]
other = "Startseite"
other = "Home"
[posts]
other = "Beiträge"
@@ -8,6 +8,12 @@ other = "Beiträge"
[toc_heading]
other = "Inhaltsverzeichnis"
[tags]
other = "Stichworte"
[categories]
other = "Kategorien"
[at]
other = "bei"
@@ -18,7 +24,7 @@ other = "Mein Lebenslauf"
other = "Navigation"
[contact_me]
other = "Kontakt aufnehmen"
other = "Kontaktiere mich:"
[email]
other = "E-Mail"
@@ -30,10 +36,10 @@ other = "Telefon"
other = "Mit dem Newsletter auf dem neuesten Stand bleiben"
[newsletter_input_placeholder]
other = "E-Mail-Adresse eingeben"
other = "E-Mail Adresse eingeben"
[newsletter_warning]
other = "Wir werden Ihre E-Mail-Adresse nicht an Dritte weitergeben."
other = "Mit der Eingabe Ihrer E-Mail-Adresse erklären Sie sich damit einverstanden, den Newsletter dieser Website zu erhalten."
[submit]
other = "Absenden"
@@ -47,65 +53,71 @@ other = "Vorherige"
[next]
other = "Nächste"
# [share_on]
# other = "Share on"
[improve_this_page]
other = "Diese Seite verbessern"
[out_of]
other = "van de"
other = "aus"
[publications]
other = "Publicaties"
other = "Publikationen"
[taken_courses]
other = "Cursussen gevolgd"
other = "Belegte Kurse"
[course_name]
other = "Cursus naam"
other = "Kursname"
[total_credit]
other = "Totaal krediet"
other = "Gesamtguthaben"
[obtained_credit]
other = "Krediet verkregen"
other = "Erhaltenes Guthaben"
[extracurricular_activities]
other = "Buitenschoolse activiteiten"
other = "Außerschulische Aktivitäten"
[show_more]
other = "Bekijk meer"
other = "Mehr anzeigen"
[show_less]
other = "Laat minder zien"
other = "Weniger anzeigen"
# [responsibilities]
# other = "Responsibilities:"
[responsibilities]
other = "Verantwortlichkeiten:"
# [present]
# other = "Present"
[present]
other = "heute"
# [comments_javascript]
# other = "Please enable JavaScript to view the"
[comments_javascript]
other = "Bitte aktiviere JavaScript um die Kommentare zu sehen"
# [comments_by]
# other = "comments powered by"
[comments_by]
other = "Kommentare Unterstützt von"
# [read]
# other = "Read"
[read]
other = "Lesen"
# [project_star]
# other = "Star"
[project_star]
other = "Star"
# [project_details]
# other = "Details"
[project_details]
other = "Details"
# [err_404]
# other = "The page you are looking for is not there yet."
[err_404]
other = "Die Seite nach der Seite ist noch nicht vorhanden."
[more]
other = "Meer"
other = "Mehr"
[view_certificate]
other = "Bekijk certificaat"
other = "Zertifikat ansehen"
[notes]
other = "Opmerkingen"
other = "Notizen"
[disclaimer_text]
other = "Haftungshinweis"
+13 -1
View File
@@ -8,6 +8,12 @@ other = "Posts"
[toc_heading]
other = "Table of Contents"
[tags]
other = "Tags"
[categories]
other = "Categories"
[at]
other = "at"
@@ -33,7 +39,7 @@ other = "Stay up to date with email notification"
other = "Enter email"
[newsletter_warning]
other = "We'll never share your email with anyone else."
other = "By entering your email address, you agree to receive the newsletter of this website."
[submit]
other = "Submit"
@@ -47,6 +53,9 @@ other = "Prev"
[next]
other = "Next"
[share_on]
other = "Share on"
[improve_this_page]
other = "Improve this page"
@@ -109,3 +118,6 @@ other = "View Certificate"
[notes]
other = "Notes"
[disclaimer_text]
other = "Liability Notice"
+29 -17
View File
@@ -8,6 +8,12 @@ other = "Posts"
[toc_heading]
other = "Contenido"
[tags]
other = "Etiquetas"
[categories]
other = "Categorías"
[at]
other = "en"
@@ -33,7 +39,7 @@ other = "Subscribirse"
other = "Ingrese email"
[newsletter_warning]
other = "Jamás compartiremos tus datos con alguién mas"
other = "Al ingresar su dirección de correo electrónico, acepta recibir el boletín de este sitio web."
[submit]
other = "Enviar"
@@ -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"
@@ -109,3 +118,6 @@ other = "Ver Certificado"
[notes]
other = "Notas"
[disclaimer_text]
other = "Aviso de responsabilidad"
+31 -19
View File
@@ -3,16 +3,22 @@
other = "Accueil"
[posts]
other = "Des postes"
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"
@@ -33,7 +39,7 @@ other = "Restez à jour par e-mail"
other = "Entrez une adresse e-mail"
[newsletter_warning]
other = "Nous ne partagerons jamais votre courriel avec quelqu'un d'autre."
other = "En renseignant votre adresse e-mail, vous acceptez de recevoir la newsletter de ce site."
[submit]
other = "Envoyer"
@@ -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,29 +86,29 @@ 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 = "Read"
[read]
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"
@@ -109,3 +118,6 @@ other = "Afficher le certificat"
[notes]
other = "Remarques"
[disclaimer_text]
other = "Avis de responsabilité"
+13 -1
View File
@@ -8,6 +8,12 @@ other = "पोस्ट"
[toc_heading]
other = "विषयसूची"
[tags]
other = "टैग"
[categories]
other = "श्रेणियाँ"
[at]
other = "अन्य"
@@ -33,7 +39,7 @@ other = "ईमेल अधिसूचना से अवगत रहें"
other = "ईमेल दर्ज करें"
[newsletter_warning]
other = "हम आपके ईमेल को कभी भी किसी और के साथ साझा नहीं करेंगे"
other = "अपना ईमेल पता दर्ज करके, आप इस वेबसाइट का न्यूज़लेटर प्राप्त करने के लिए सहमत होते हैं।"
[submit]
other = "जमा करें"
@@ -47,6 +53,9 @@ other = "पिछला"
[next]
other = "आगे"
# [share_on]
# other = "Share on"
[improve_this_page]
other = "इस पृष्ठ को सुधारें"
@@ -109,3 +118,6 @@ other = "प्रमाणपत्र देखें"
[notes]
other = "टिप्पणियाँ"
[disclaimer_text]
other = "दायित्व सूचना"
+13 -1
View File
@@ -8,6 +8,12 @@ other = "Artikel"
[toc_heading]
other = "Daftar Isi"
[tags]
other = "Tags"
[categories]
other = "Kategori"
[at]
other = "at"
@@ -33,7 +39,7 @@ other = "Ingin selalu update dengan notifikasi email"
other = "Masukkan email"
[newsletter_warning]
other = "Kami tidak pernah berbagi data email dengan siapapun."
other = "Dengan memasukkan alamat email Anda, Anda setuju untuk menerima buletin situs web ini."
[submit]
other = "Kirim"
@@ -47,6 +53,9 @@ other = "Sebelumnya"
[next]
other = "Lanjut"
# [share_on]
# other = "Share on"
[improve_this_page]
other = "Perbaiki halaman ini"
@@ -109,3 +118,6 @@ other = "Lihat Sertifikat"
[notes]
other = "Catatan"
[disclaimer_text]
other = "Pemberitahuan Kewajiban"
+14 -2
View File
@@ -8,6 +8,12 @@ other = "Post"
[toc_heading]
other = "Contenuti"
[tags]
other = "Tags"
[categories]
other = "Categorie"
[at]
other = "presso"
@@ -33,7 +39,7 @@ other = "Resta aggiornato con la notifica di email"
other = "Inserisci l'email"
[newsletter_warning]
other = "Non condivideremo l'email con altri."
other = "Inserendo il tuo indirizzo email, accetti di ricevere la newsletter di questo sito."
[submit]
other = "Invia"
@@ -47,6 +53,9 @@ other = "Precedente"
[next]
other = "Successivo"
# [share_on]
# other = "Share on"
[improve_this_page]
other = "Migliora questa pagina"
@@ -105,7 +114,10 @@ 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à"
+13 -1
View File
@@ -8,6 +8,12 @@ other = "記事"
[toc_heading]
other = "目次"
[tags]
other = "タグ"
[categories]
other = "カテゴリ"
[resume]
other = "職務経歴書"
@@ -30,7 +36,7 @@ other = "メールで最新情報を受け取る"
other = "ここにメールアドレスを入力"
[newsletter_warning]
other = "ご入力いただいたメールアドレスが他人に開示されることは決してございません。"
other = "メールアドレスを入力すると、このウェブサイトのニュースレターを受け取ることに同意したことになります。"
[submit]
other = "登録"
@@ -44,6 +50,9 @@ other = "前"
[next]
other = "次"
# [share_on]
# other = "Share on"
[improve_this_page]
other = "編集リクエストを送る"
@@ -106,3 +115,6 @@ other = "ビューの証明書"
[notes]
other = "ノート"
[disclaimer_text]
other = "責任通知"
+13 -1
View File
@@ -8,6 +8,12 @@ other = "게시글"
[toc_heading]
other = "목차"
[tags]
other = "태그"
[categories]
other = "카테고리"
[at]
other = "at"
@@ -33,7 +39,7 @@ other = "이메일 알림으로 최신 상태를 유지해보세요"
other = "이메일을 입력하세요"
[newsletter_warning]
other = "이메일을 다른 목적으로 사용하지 않습니다."
other = "이메일 주소를 입력하면이 웹 사이트의 뉴스 레터 수신에 동의하는 것입니다."
[submit]
other = "제출"
@@ -47,6 +53,9 @@ other = "이전"
[next]
other = "다음"
# [share_on]
# other = "Share on"
[improve_this_page]
other = "이 페이지를 개선"
@@ -109,3 +118,6 @@ other = "인증서보기"
[notes]
other = "메모"
[disclaimer_text]
other = "책임 고지"
+122
View File
@@ -0,0 +1,122 @@
[home]
other = "Startseite"
[posts]
other = "Beiträge"
[toc_heading]
other = "Inhaltsverzeichnis"
[tags]
other = "Tags"
[categories]
other = "Categorieën"
[at]
other = "bei"
[resume]
other = "Mein Lebenslauf"
[navigation]
other = "Navigation"
[contact_me]
other = "Kontakt aufnehmen"
[email]
other = "E-Mail"
[phone]
other = "Telefon"
[newsletter_text]
other = "Mit dem Newsletter auf dem neuesten Stand bleiben"
[newsletter_input_placeholder]
other = "E-Mail-Adresse eingeben"
[newsletter_warning]
other = "Door uw e-mailadres in te voeren, gaat u akkoord met het ontvangen van de nieuwsbrief van deze website."
[submit]
other = "Absenden"
[hugoAttributionText]
other = "Unterstützt von"
[prev]
other = "Vorherige"
[next]
other = "Nächste"
# [share_on]
# other = "Share on"
[improve_this_page]
other = "Diese Seite verbessern"
[out_of]
other = "van de"
[publications]
other = "Publicaties"
[taken_courses]
other = "Cursussen gevolgd"
[course_name]
other = "Cursus naam"
[total_credit]
other = "Totaal krediet"
[obtained_credit]
other = "Krediet verkregen"
[extracurricular_activities]
other = "Buitenschoolse activiteiten"
[show_more]
other = "Bekijk meer"
[show_less]
other = "Laat minder zien"
# [responsibilities]
# other = "Responsibilities:"
# [present]
# other = "Present"
# [comments_javascript]
# other = "Please enable JavaScript to view the"
# [comments_by]
# other = "comments powered by"
# [read]
# other = "Read"
# [project_star]
# other = "Star"
# [project_details]
# other = "Details"
# [err_404]
# other = "The page you are looking for is not there yet."
[more]
other = "Meer"
[view_certificate]
other = "Bekijk certificaat"
[notes]
other = "Opmerkingen"
[disclaimer_text]
other = "Haftungshinweis"
+13 -1
View File
@@ -8,6 +8,12 @@ other = "Посты"
[toc_heading]
other = "Оглавление"
[tags]
other = "Теги"
[categories]
other = "Категории"
[at]
other = "в"
@@ -33,7 +39,7 @@ other = "Подпишитесь на уведомления, чтобы не п
other = "Введите email"
[newsletter_warning]
other = "Ваши данные в безопасности"
other = "Вводя свой адрес электронной почты, вы соглашаетесь получать информационный бюллетень этого веб-сайта."
[submit]
other = "Подтвердить"
@@ -47,6 +53,9 @@ other = "Предыдущий"
[next]
other = "Следующий"
# [share_on]
# other = "Share on"
[improve_this_page]
other = "Улучшить эту страницу"
@@ -109,3 +118,6 @@ other = "Просмотреть сертификат"
[notes]
other = "Ноты"
[disclaimer_text]
other = "Уведомление об ответственности"
+13 -1
View File
@@ -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"
@@ -33,7 +39,7 @@ other = "Nhận email cập nhật thông tin"
other = "Nhập email"
[newsletter_warning]
other = "Chúng tôi sẽ không bao giờ chia sẻ email của bạn."
other = "Bằng cách nhập địa chỉ email của bạn, bạn đồng ý nhận bản tin của trang web này."
[submit]
other = "Gử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"
@@ -109,3 +118,6 @@ other = "Xem chứng chỉ"
[notes]
other = "Ghi chú"
[disclaimer_text]
other = "Thông báo trách nhiệm"
+29 -17
View File
@@ -8,6 +8,12 @@ other = "博文"
[toc_heading]
other = "目录"
[tags]
other = "标签"
[categories]
other = "类别"
[at]
other = "at"
@@ -33,7 +39,7 @@ other = "通过电子邮件接收最新信息"
other = "填入 E-mail"
[newsletter_warning]
other = "我们绝不会与任何人共享您的电子邮件。"
other = "输入您的电子邮件地址,即表示您同意接收本网站的时事通讯"
[submit]
other = "提交"
@@ -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 = "更多的"
@@ -109,3 +118,6 @@ other = "查看证书"
[notes]
other = "笔记"
[disclaimer_text]
other = "免责声明"
+123
View File
@@ -0,0 +1,123 @@
# 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 = "Responsibilities:"
# [present]
# other = "Present"
# [comments_javascript]
# other = "Please enable JavaScript to view the"
# [comments_by]
# other = "comments powered by"
# [read]
# other = "Read"
# [project_star]
# other = "Star"
# [project_details]
# other = "Details"
# [err_404]
# other = "The page you are looking for is not there yet."
[more]
other = "更多的"
[view_certificate]
other = "查看證書"
[notes]
other = "筆記"
[disclaimer_text]
other = "免責聲明"
+9 -1
View File
@@ -4,13 +4,20 @@
<title>{{ .Page.Title }}</title>
<!------ ADD COMMON HEADERS -------->
{{- partial "header.html" . -}}
{{ template "_internal/opengraph.html" . }}
<!------ 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 }}
</head>
@@ -30,7 +37,8 @@
</div>
<!------- ADD FOOTER ------------>
{{- partial "footer.html" . -}}
{{ $footerTemplate:= site.Params.footer.template | default "footer.html" }}
{{- partial $footerTemplate . -}}
<!------- ADD COMMON SCRIPTS ------->
{{ partial "scripts.html" . }}
+6 -2
View File
@@ -1,6 +1,9 @@
{{ 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" }}
@@ -16,7 +19,7 @@
<section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder">
<div class="sidebar" id="sidebar">
<form class="mx-auto" method="get" action="{{ "search" | absURL }}">
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form>
<div class="sidebar-tree">
@@ -36,7 +39,8 @@
<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">
{{ $paginator := .Paginate .RegularPagesRecursive 12 }}
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $paginator := .Paginate $posts 12 }}
{{ range $paginator.Pages }}
{{ if .Layout }}
{{/* ignore the search.md file*/}}
+4 -1
View File
@@ -1,6 +1,9 @@
{{ 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" }}
@@ -16,7 +19,7 @@
<section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder">
<div class="sidebar" id="sidebar">
<form class="mx-auto" method="get" action="{{ "search" | absURL }}">
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form>
<div class="sidebar-tree">
+106 -4
View File
@@ -6,6 +6,9 @@
/>
<link rel="stylesheet" href="{{ "/css/layouts/single.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" }}
@@ -16,7 +19,7 @@
<section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder">
<div class="sidebar" id="sidebar">
<form class="mx-auto" method="get" action="{{ "search" | absURL }}">
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form>
<div class="sidebar-tree">
@@ -51,29 +54,128 @@
<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 }}">
{{ 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" }}/{{ .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 -->
<hr />
{{ partial "navigators/next-prev-navigator.html" . }}
<hr />
<!----- Add comment support ----->
{{ with site.Params.features.comment }}
{{ if .enable }}
<!-- Add Disqus forum -->
{{ if .disqus.shortName }}
{{ partial "disqus.html" . }}
<!-- Add valine -->
{{ else if .valine }}
{{ partial "valine.html" . }}
<!-- Add utteranc -->
{{ else if .utteranc }}
{{ partial "utteranc.html" . }}
{{ end }}
{{ end }}
{{ end }}
<!-- Keep backward compatibility with old config.yaml -->
{{ if site.DisqusShortname }}
{{ partial "disqus.html" . }}
{{ end }}
</div>
</div>
</div>
+62
View File
@@ -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="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 }}
+13 -2
View File
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="en">
<html lang="{{ .Site.Language.Lang }}">
<head>
<title>{{- .Site.Title -}}</title>
{{ $siteDescription := .Site.Params.description }}
@@ -13,6 +13,7 @@
<!-- import common headers -->
{{- partial "header.html" . -}}
{{- partial "opengraph.html" . -}}
<!-- import index page specific headers -->
<link rel="stylesheet" href="{{ "/css/sections/home.css" | relURL }}"/>
@@ -25,9 +26,18 @@
<link rel="stylesheet" href="{{ "/css/sections/achievements.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/sections/accomplishments.css" | relURL }}"/>
<!--================= 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 }}
</head>
<body data-spy="scroll" data-target="#top-navbar" data-offset="100">
@@ -66,7 +76,8 @@
{{ end }}
<!--- ADD FOOTER ----------------------->
{{- partial "footer.html" . -}}
{{ $footerTemplate:= site.Params.footer.template | default "footer.html" }}
{{- partial $footerTemplate . -}}
<!--- ADD COMMON SCRIPTS --------------->
{{ partial "scripts.html" . }}
+11 -2
View File
@@ -20,7 +20,7 @@
<section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder">
<div class="sidebar" id="sidebar">
<form class="mx-auto" method="get" action="{{ "search" | absURL }}">
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form>
<div class="sidebar-tree">
@@ -40,7 +40,14 @@
<section class="content-section" id="content-section">
<div class="content container-fluid" id="content">
<div class="container-fluid note-card-holder" id="note-card-holder">
{{ partial "note-aggregator.html" . }}
{{ $paginator := .Paginate .RegularPagesRecursive 10 }}
{{ range $paginator.Pages }}
{{ if .Layout }}
{{/* ignore search.md file*/}}
{{ else }}
{{ .Content }}
{{ end }}
{{ end }}
</div>
<div class="paginator">
{{ template "_internal/pagination.html" . }}
@@ -51,6 +58,8 @@
{{ define "scripts" }}
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script>
<script src="{{ "/js/imagesloaded.pkgd.min.js" | relURL }}"></script>
<script src="{{ "/js/note.js" | relURL }}"></script>
<script>
hljs.initHighlightingOnLoad();
</script>
+3 -3
View File
@@ -20,7 +20,7 @@
<section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder">
<div class="sidebar" id="sidebar">
<form class="mx-auto" method="get" action="{{ "search" | absURL }}">
<form class="mx-auto" method="get" action="{{ "search" | relLangURL }}">
<input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form>
<div class="sidebar-tree">
@@ -40,16 +40,16 @@
<section class="content-section" id="content-section">
<div class="content container-fluid" id="content">
<div class="container-fluid note-card-holder" id="note-card-holder">
<div class="note-collection">
{{ .Content }}
</div>
</div>
</div>
</section>
{{ end }}
{{ define "scripts" }}
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script>
<script src="{{ "/js/imagesloaded.pkgd.min.js" | relURL }}"></script>
<script src="{{ "/js/note.js" | relURL }}"></script>
<script>
hljs.initHighlightingOnLoad();
</script>
+4 -2
View File
@@ -3,7 +3,7 @@
<div class="card-header">
<h5 class="card-title mb-0">{{ .name }}</h5>
<div class="sub-title">
<span><a href="{{ .organization.url }}" target="_blank">{{ .organization.name }}</a></span>
<span><a href="{{ .organization.url }}" title="{{ .organization.name }}" target="_blank" rel="noopener">{{ .organization.name }}</a></span>
<span class="ml-2">{{ .timeline }}</span>
</div>
</div>
@@ -11,7 +11,9 @@
<p>{{ .courseOverview | markdownify }}</p>
</div>
<div class="card-footer">
<a class="btn btn-outline-info ml-1 pl-2 mb-2" href="{{ .certificateURL | default "#"}}" target="_blank" role="button">{{ i18n "view_certificate"}}</a>
{{ if .certificateURL }}
<a class="btn btn-outline-info ml-1 pl-2 mb-2" href="{{ .certificateURL }}" target="_blank" rel="noopener" role="button">{{ i18n "view_certificate"}}</a>
{{ end }}
</div>
</div>
</div>
+5 -2
View File
@@ -4,14 +4,17 @@
>
<div class="card mt-1">
<div class="card">
<a class="card-header" href="{{ if .repo }}{{ .repo }}{{ else if .url }}{{ .url }}{{ else }}javascript:void(0){{ end }}" target="_blank">
<a class="card-header" href="{{ if .repo }}{{ .repo }}{{ else if .url }}{{ .url }}{{ else }}javascript:void(0){{ end }}" {{ if or .repo .url }}target="_blank" rel="noopener"{{ end }}>
<div>
<div class="d-flex">
{{ if .logo }}
{{ $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 }}
+2 -2
View File
@@ -1,5 +1,5 @@
<div class="col-lg-4 col-md-6 pt-2 post-card">
<a href="{{ .RelPermalink }}" class="post-card-link">
<a href="{{ .RelPermalink }}" title="{{ .Title }}" class="post-card-link">
<div class="card">
<div class="card-head">
<img class="card-img-top" src='{{ partial "helpers/get-hero.html" . }}'
@@ -12,7 +12,7 @@
</div>
<div class="card-footer">
<span class="float-left">{{ .Date.Format "January 2, 2006" }}</span>
<a href="{{ .RelPermalink }}" class="float-right btn btn-outline-info btn-sm">{{ i18n "read" }}</a>
<a href="{{ .RelPermalink }}" title="{{ i18n "read" }}" class="float-right btn btn-outline-info btn-sm">{{ i18n "read" }}</a>
</div>
</div>
</a>
+2 -2
View File
@@ -1,5 +1,5 @@
<div class="col-xs-12 col-sm-6 col-lg-4 pt-2">
<a class="skill-card-link" href="{{ if .url }}{{ .url }}{{ else }}javascript:void(0){{ end }}" target="_blank">
<a class="skill-card-link" {{ if .url }}href="{{ .url }}" title="{{ .name }}" target="_blank" rel="noopener"{{ end }}>
<div class="card">
<div class="card-head d-flex">
{{ if .logo }}
@@ -7,7 +7,7 @@
{{/* svg don't support "Fit" operation */}}
{{ if ne $logoImage.MediaType.SubType "svg" }}
{{ $logoImage := $logoImage.Fit "24x24" }}
{{ $logoImage = $logoImage.Fit "24x24" }}
{{ end }}
<img class="card-img-xs" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
+6 -1
View File
@@ -1,3 +1,8 @@
{{ $disqusShortName := site.DisqusShortname }}
{{ if site.Params.features.comment.disqus.shortName }}
{{ $disqusShortName = site.Params.features.comment.disqus.shortName }}
{{ end }}
<div id="disqus_thread"></div>
<script type="text/javascript">
(function () {
@@ -8,7 +13,7 @@
var dsq = document.createElement("script");
dsq.type = "text/javascript";
dsq.async = true;
var disqus_shortname = "{{ site.DisqusShortname }}";
var disqus_shortname = "{{ $disqusShortName }}";
dsq.src = "//" + disqus_shortname + ".disqus.com/embed.js";
(
document.getElementsByTagName("head")[0] ||
+87 -32
View File
@@ -1,41 +1,67 @@
{{ $author:= site.Data.author }}
{{ if (index site.Data site.Language.Lang).author }}
{{/* variables for enabling/disabling parts of the footer */}}
{{ $footerEnabled := site.Params.footer.enable | default true }}
{{ $navigationEnabled := site.Params.footer.navigation.enable | 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 }}
{{ $disclaimerEnabled := site.Params.footer.disclaimer.enable | default false }}
{{/* Keep backward compatibility for the newsletter function */}}
{{ if site.Params.newsletter }}
{{ if site.Params.newsletter.enable }}
{{ $newsletterEnabled = true }}
{{ else }}
{{ $newsletterEnabled = false }}
{{ end }}
{{ end }}
{{ if $footerEnabled }}
{{ $author:= site.Data.author }}
{{ if (index site.Data site.Language.Lang).author }}
{{ $author = (index site.Data site.Language.Lang).author }}
{{ end }}
{{ end }}
{{ $sections:= site.Data.sections }}
{{ if (index site.Data site.Language.Lang).sections }}
{{ $sections:= site.Data.sections }}
{{ if (index site.Data site.Language.Lang).sections }}
{{ $sections = (index site.Data site.Language.Lang).sections }}
{{ end }}
{{ end }}
{{ $copyrightNotice := "© 2020 Copyright."}}
{{ if (index site.Data site.Language.Lang).site }}
{{ $copyrightNotice := "© 2021 Copyright."}}
{{ if (index site.Data site.Language.Lang).site }}
{{ $siteConfig := (index site.Data site.Language.Lang).site }}
{{ if $siteConfig.copyright }}
{{ $copyrightNotice = $siteConfig.copyright }}
{{ end }}
{{ end }}
{{ end }}
{{/* footer logos */}}
{{ $themeLogo := "/images/theme-logo.png" }}
{{ $hugoLogo := "/images/hugo-logo.svg" }}
{{/* resize the logos. don't resize svg because it is not supported */}}
{{ $themeLogo:= resources.Get $themeLogo}}
{{ if and $themeLogo (ne $themeLogo.MediaType.SubType "svg") }}
{{ $disclaimer := "" }}
{{ $siteConfig := (index site.Data site.Language.Lang).site }}
{{ if $siteConfig.disclaimer }}
{{ $disclaimer = $siteConfig.disclaimer }}
{{ end }}
{{/* footer logos */}}
{{ $themeLogo := "/images/theme-logo.png" }}
{{ $hugoLogo := "/images/hugo-logo.svg" }}
{{/* resize the logos. don't resize svg because it is not supported */}}
{{ $themeLogo:= resources.Get $themeLogo}}
{{ if and $themeLogo (ne $themeLogo.MediaType.SubType "svg") }}
{{ $themeLogo = $themeLogo.Resize "32x" }}
{{ end }}
{{ $themeLogo = $themeLogo.RelPermalink}}
{{ end }}
{{ $themeLogo = $themeLogo.RelPermalink}}
{{ $hugoLogo:= resources.Get $hugoLogo}}
{{ if and $hugoLogo (ne $hugoLogo.MediaType.SubType "svg")}}
{{ $hugoLogo:= resources.Get $hugoLogo}}
{{ if and $hugoLogo (ne $hugoLogo.MediaType.SubType "svg")}}
{{ $hugoLogo = $hugoLogo.Resize "32x" }}
{{ end }}
{{ $hugoLogo = $hugoLogo.RelPermalink}}
{{ end }}
{{ $hugoLogo = $hugoLogo.RelPermalink}}
<footer class="container-fluid text-center align-content-center footer pb-2">
<footer class="container-fluid text-center align-content-center footer pb-2">
<div class="container pt-5">
<div class="row text-left">
{{ if $navigationEnabled }}
<div class="col-md-4 col-sm-12">
<h5>{{ i18n "navigation" }}</h5>
{{ if $sections }}
@@ -47,15 +73,15 @@
{{ $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 }}
</ul>
{{ end }}
</div>
{{ if $author }}
{{ end }}
{{ if (and $contactMeEnabled $author) }}
<div class="col-md-4 col-sm-12">
<h5>{{ i18n "contact_me" }}</h5>
<ul>
@@ -65,16 +91,26 @@
</ul>
</div>
{{ end }}
{{ if site.Params.newsletter.enable }}
<!-------------- Newsletter --------------->
{{ if $newsletterEnabled }}
{{ $provider := site.Params.footer.newsletter.provider }}
<div class="col-md-4 col-sm-12">
<!-- <h5>Newsletter</h5> -->
<p>{{ i18n "newsletter_text" }}</p>
<form>
{{ if and (eq $provider "mailchimp") site.Params.footer.newsletter.mailchimpURL }} <!-- mailchimp -->
<form
action="{{ site.Params.footer.newsletter.mailchimpURL }}"
method="post"
id="mc-embedded-subscribe-form"
name="mc-embedded-subscribe-form"
class="validate"
target="_blank"
novalidate >
<div class="form-group">
<input
type="email"
class="form-control"
id="exampleInputEmail1"
id="mce-EMAIL"
name="EMAIL"
aria-describedby="emailHelp"
placeholder="{{ i18n "newsletter_input_placeholder" }}"
/>
@@ -84,22 +120,39 @@
</div>
<button type="submit" class="btn btn-info">{{ i18n "submit" }}</button>
</form>
{{ else }}
<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>
</form>
{{ end }}
</div>
{{ end }}
</div>
</div>
{{ if and $disclaimerEnabled $disclaimer}}
<hr />
<div class="container">
<p id="disclaimer"><strong>{{ i18n "disclaimer_text" }}:</strong> {{ $disclaimer | markdownify }}</p>
</div>
{{ end }}
{{ if $credentialsEnabled }}
<hr />
<div class="container">
<div class="row text-left">
<div class="col-md-4">
<a id="theme" href="https://github.com/hossainemruz/toha" target="#">
<a id="theme" href="https://github.com/hossainemruz/toha" target="_blank" rel="noopener">
<img src="{{ $themeLogo }}" alt="Toha Theme Logo">
Toha
</a>
</div>
<div class="col-md-4 text-center">{{ $copyrightNotice | markdownify }}</div>
<div class="col-md-4 text-right">
<a id="hugo" href="https://gohugo.io/">{{ i18n "hugoAttributionText" }}
<a id="hugo" href="https://gohugo.io/" target="_blank" rel="noopener">{{ i18n "hugoAttributionText" }}
<img
src="{{ $hugoLogo }}"
alt="Hugo Logo"
@@ -109,4 +162,6 @@
</div>
</div>
</div>
</footer>
{{ end }}
</footer>
{{end}}
+14 -19
View File
@@ -1,18 +1,3 @@
{{/* default favicon */}}
{{ $favicon := "/images/favicon.png" }}
{{/* if favicon is provided in the config, then use that */}}
{{ if site.Params.logo.favicon }}
{{ $favicon = site.Params.logo.favicon }}
{{ end }}
{{/* resize the favicon. don't resize svg because it is not supported */}}
{{ $favicon := resources.Get $favicon }}
{{ if and $favicon (ne $favicon.MediaType.SubType "svg") }}
{{ $favicon = $favicon.Resize "42x" }}
{{ end }}
{{ $favicon = $favicon.RelPermalink}}
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
@@ -20,15 +5,25 @@
<!-- ============ import common css ========== -->
<link rel="stylesheet" href="{{ "/css/bootstrap.min.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/layouts/main.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/navigators/navbar.css" | relURL }}"/>
<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" />
<!--================= fab-icon =========================-->
<link rel="icon" type="image/png" href="{{ $favicon }}" />
{{/* add favicon only if the site author has provided the the favicon */}}
{{ if site.Params.logo.favicon }}
{{ $favicon := site.Params.logo.favicon }}
<!--================= custom style overrides =========================-->
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}"/>
{{/* resize the favicon. don't resize svg because it is not supported */}}
{{ $favicon = resources.Get $favicon }}
{{ if and $favicon (ne $favicon.MediaType.SubType "svg") }}
{{ $favicon = $favicon.Resize "42x" }}
{{ end }}
{{ $favicon = $favicon.RelPermalink}}
<link rel="icon" type="image/png" href="{{ $favicon }}" />
{{end}}
@@ -0,0 +1,25 @@
{{ $addNavbarSeparator:= false }}
{{/* If "blog" feature is enabled, then add navbar separator */}}
{{ if site.Params.features.blog.enable }}
{{ $addNavbarSeparator = true }}
{{ end }}
{{/* If "notes" feature is enabled, then add navbar separator */}}
{{ if site.Params.features.notes.enable }}
{{ $addNavbarSeparator = true }}
{{ end }}
{{/* If site has custom menus, then add navbar separator */}}
{{ $customMenus := site.Params.customMenus }}
{{ if (index site.Data site.Language.Lang).site.customMenus }}
{{ $customMenus = (index site.Data site.Language.Lang).site.customMenus }}
{{ end }}
{{ if $customMenus }}
{{ if gt (len $customMenus) 0 }}
{{ $addNavbarSeparator = true }}
{{ end }}
{{ end }}
{{ return $addNavbarSeparator }}
@@ -1,3 +1,4 @@
{{/* if there is no custom flag provided, we define the flag with the country code */}}
{{ $languageCode:= .Lang }}
{{/* by default the language code and the country code are same */}}
{{ $countryCode:= $languageCode }}
@@ -11,5 +12,13 @@
{{ $countryCode = "in" }}
{{ end }}
{{/* if the user specify a country code for a language via "params.flagOverwrites" field, then use it. */}}
{{ range site.Params.flagOverwrites }}
{{ if eq $languageCode .languageCode }}
{{ $countryCode = .countryCode }}
{{ end }}
{{ end }}
{{/* return the country code */}}
{{ return $countryCode }}
@@ -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") }}
{{ $authorImage := $authorImage.Fit "120x120" }}
{{ 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 }}
+10
View File
@@ -0,0 +1,10 @@
{{ $pages:= slice}}
{{ range . }}
{{ if .HasChildren }}
{{ $nestedPages:=partial "helpers/get-pages.html" .Children }}
{{ $pages = $pages | append $nestedPages }}
{{ else }}
{{ $pages = $pages | append .Page }}
{{ end }}
{{ end }}
{{ return $pages}}
+35
View File
@@ -0,0 +1,35 @@
<div class="col-6 col-lg-4 p-2">
{{ if eq .type "certification" }}
{{/* Verifiable certificate badge from https://www.credly.com */}}
<div class="">
<a href="{{ .url }}" target="_blank" rel="noopener noreferrer">
<img src="{{ .badge }}" alt="{{ .name }}" />
</a>
</div>
{{ else if eq .type "soft-skill-indicator" }}
{{/* Circular bar indicating the level of expertise in a skill */}}
{{ $predefinedColor:= true}}
{{ if hasPrefix .color "#"}}
{{ $predefinedColor = false }}
{{ end }}
<div class="circular-progress {{if $predefinedColor}}{{ .color }}{{end}}">
<span class="circular-progress-left">
<span
class="circular-progress-bar circular-progress-percentage-{{ .percentage }}"
{{ if not $predefinedColor }}
style="border-color: {{.color}};"
{{ end }}
></span>
</span>
<span class="circular-progress-right">
<span
class="circular-progress-bar"
{{ if not $predefinedColor }}
style="border-color: {{.color}};"
{{ end }}
></span>
</span>
<div class="circular-progress-value">{{ .name }}</div>
</div>
{{ end }}
</div>
+1
View File
@@ -1,3 +1,4 @@
{{/* TODO: Delete this file in version v4+ */}}
<div class="col-6 col-lg-4 p-2">
{{ $predefinedColor:= true}}
{{ if hasPrefix .color "#"}}
@@ -5,14 +5,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" .Language }}
{{ $countryCode := partial "helpers/country-code.html" . }}
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/16.png" alt="{{ $countryCode }}">
{{ 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" .Language }}
{{ $countryCode := partial "helpers/country-code.html" . }}
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/24.png" alt="{{ $countryCode }}">
{{ .Language.LanguageName }}
</a>
@@ -5,15 +5,15 @@
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="languageSelector" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ $countryCode := partial "helpers/country-code.html" .Language }}
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/16.png" alt="{{ $countryCode }}">
{{ $countryCode := partial "helpers/country-code.html" . }}
<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" .Language }}
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/24.png" alt="{{ $countryCode }}">
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ .Language.LanguageName }}
</a>
{{ end }}
@@ -1,14 +1,14 @@
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="languageSelector" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ $countryCode := partial "helpers/country-code.html" .Language }}
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/16.png" alt="{{ $countryCode }}">
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ site.Language.LanguageName }}
</a>
<div class="dropdown-menu" aria-labelledby="languageSelector">
{{ range site.Home.AllTranslations }}
<a class="dropdown-item nav-link languages-item" href="{{ .RelPermalink }}">
{{ $countryCode := partial "helpers/country-code.html" .Language }}
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/24.png" alt="{{ $countryCode }}">
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ .Language.LanguageName }}
</a>
{{ end }}
+20 -11
View File
@@ -1,28 +1,31 @@
{{/* default logos */}}
{{ $mainLogo := "/images/main-logo.png" }}
{{ $invertedLogo := "/images/inverted-logo.png" }}
{{/* by default, don't use any logo */}}
{{ $mainLogo := "" }}
{{ $invertedLogo := "" }}
{{/* if custom logo has been provided in the config file, then use them */}}
{{/* if custom logo has been provided, use them */}}
{{ if site.Params.logo.main }}
{{ $mainLogo = site.Params.logo.main }}
{{ end }}
{{ if site.Params.logo.inverted }}
{{ $invertedLogo = site.Params.logo.inverted }}
{{ end }}
{{/* resize the logos. don't resize svg because it is not supported */}}
{{ $mainLogo := resources.Get $mainLogo}}
{{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }}
{{ if $mainLogo }}
{{ $mainLogo = resources.Get $mainLogo}}
{{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }}
{{ $mainLogo = $mainLogo.Resize "42x" }}
{{ end }}
{{ $mainLogo = $mainLogo.RelPermalink}}
{{ end }}
{{ $mainLogo = $mainLogo.RelPermalink}}
{{ $invertedLogo := resources.Get $invertedLogo}}
{{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg") }}
{{ if $invertedLogo }}
{{ $invertedLogo = resources.Get $invertedLogo}}
{{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg")}}
{{ $invertedLogo = $invertedLogo.Resize "42x" }}
{{ end }}
{{ $invertedLogo = $invertedLogo.RelPermalink}}
{{ end }}
{{ $invertedLogo = $invertedLogo.RelPermalink}}
<nav class="navbar navbar-expand-xl top-navbar final-navbar shadow">
<div class="container">
@@ -30,7 +33,9 @@
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}">
{{ if $mainLogo }}
<img src="{{ $mainLogo }}" alt="Logo">
{{ end }}
{{- site.Title -}}
</a>
<button class="navbar-toggler navbar-light" id="toc-toggler" type="button" onclick="toggleTOC()">
@@ -46,6 +51,10 @@
</div>
</div>
<!-- Store the logo information in a hidden img for the JS -->
{{ if $mainLogo }}
<img src="{{ $mainLogo }}" class="d-none" id="main-logo" alt="Logo">
{{ end }}
{{ if $invertedLogo }}
<img src="{{ $invertedLogo }}" class="d-none" id="inverted-logo" alt="Inverted Logo">
{{ end }}
</nav>
+38 -18
View File
@@ -1,8 +1,17 @@
{{/* default logos */}}
{{ $mainLogo := "/images/main-logo.png" }}
{{ $invertedLogo := "/images/inverted-logo.png" }}
{{/* variables for enabling/disabling various features */}}
{{ $blogEnabled := site.Params.features.blog.enable | default false }}
{{ $notesEnabled := site.Params.features.notes.enable | default false }}
{{/* if custom logo is used, them */}}
{{/* keep backward compatibility for blog post */}}
{{ if site.Params.enableBlogPost }}
{{ $blogEnabled = true }}
{{ end }}
{{/* by default, don't use any logo */}}
{{ $mainLogo := "" }}
{{ $invertedLogo := "" }}
{{/* if custom logo has been provided, use them */}}
{{ if site.Params.logo.main }}
{{ $mainLogo = site.Params.logo.main }}
{{ end }}
@@ -11,17 +20,21 @@
{{ end }}
{{/* resize the logos. don't resize svg because it is not supported */}}
{{ $mainLogo := resources.Get $mainLogo}}
{{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }}
{{ if $mainLogo }}
{{ $mainLogo = resources.Get $mainLogo}}
{{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }}
{{ $mainLogo = $mainLogo.Resize "42x" }}
{{ end }}
{{ $mainLogo = $mainLogo.RelPermalink}}
{{ end }}
{{ $mainLogo = $mainLogo.RelPermalink}}
{{ $invertedLogo := resources.Get $invertedLogo}}
{{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg")}}
{{ if $invertedLogo }}
{{ $invertedLogo = resources.Get $invertedLogo}}
{{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg")}}
{{ $invertedLogo = $invertedLogo.Resize "42x" }}
{{ end }}
{{ $invertedLogo = $invertedLogo.RelPermalink}}
{{ end }}
{{ $invertedLogo = $invertedLogo.RelPermalink}}
{{ $customMenus := site.Params.customMenus }}
{{ if (index site.Data site.Language.Lang).site.customMenus }}
@@ -36,7 +49,9 @@
<nav class="navbar navbar-expand-xl top-navbar initial-navbar" id="top-navbar">
<div class="container">
<a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}">
{{ if $invertedLogo }}
<img src="{{ $invertedLogo }}" id="logo" alt="Logo">
{{ end }}
{{- site.Title -}}
</a>
<button
@@ -45,6 +60,7 @@
type="button"
data-toggle="collapse"
data-target="#top-nav-items"
aria-label="menu"
>
<span class="navbar-toggler-icon"></span>
</button>
@@ -83,20 +99,20 @@
</li>
{{ end }}
{{- end }}
{{ $hasCustomMenus:= false }}
{{ if $customMenus }}
{{ if gt (len $customMenus) 0 }}
{{ $hasCustomMenus = true }}
{{ end }}
{{ end }}
{{ if (or site.Params.enableBlogPost $hasCustomMenus) }}
{{ $shouldAddSeparator:= partial "helpers/add-navbar-separator.html" . }}
{{ if $shouldAddSeparator }}
<div class="dropdown-divider" id="top-navbar-divider"></div>
{{ end }}
{{ if site.Params.enableBlogPost }}
{{ if $blogEnabled }}
<li class="nav-item">
<a class="nav-link" id="blog-link" href="{{ "/posts" | relLangURL }}">{{ i18n "posts" }}</a>
</li>
{{ end }}
{{ if $notesEnabled }}
<li class="nav-item">
<a class="nav-link" id="note-link" href="{{ "/notes" | relLangURL }}">{{ i18n "notes" }}</a>
</li>
{{ end }}
{{ range $customMenus }}
<li class="nav-item">
<a class="nav-link" href="{{ .url }}">{{ .name }}</a>
@@ -109,6 +125,10 @@
</div>
</div>
<!-- Store the logo information in a hidden img for the JS -->
{{ if $mainLogo }}
<img src="{{ $mainLogo }}" class="d-none" id="main-logo" alt="Logo">
{{ end }}
{{ if $invertedLogo }}
<img src="{{ $invertedLogo }}" class="d-none" id="inverted-logo" alt="Inverted Logo">
{{ end }}
</nav>
@@ -1,33 +1,43 @@
{{ $curPage := . }}
{{ $prevPage := "" }}
{{ $nextPage := "" }}
<!-- List all the pages. It uses the sidebar menu to discover the page order. -->
{{ $pages := slice }}
{{ if isset site.Menus "sidebar" }}
{{ $pages = partial "helpers/get-pages.html" site.Menus.sidebar }}
{{ end }}
<!-- Now, find the current page index in the pages list. Then, find previous page and next page. -->
{{ $idx := 0 }}
{{ range $pages }}
{{ if eq .RelPermalink $curPage.RelPermalink }}
{{ $prevPage = index $pages (sub $idx 1) }}
{{ $nextPage = index $pages (add $idx 1) }}
{{ end }}
{{ $idx = add $idx 1 }}
{{ end }}
<div class="row next-prev-navigator">
{{ $currentPage := . }}
{{ range (where site.RegularPages.ByDate "Type" "in" site.Params.mainSections )}}
{{ if eq .RelPermalink $currentPage.RelPermalink }}
{{ if .Next }}
{{ if (in site.Params.mainSections .Next.Type) }}
{{ if $prevPage }}
<div class="col-md-6 previous-article">
<a href="{{.Next.RelPermalink}}" class="btn btn-outline-info">
<a href="{{ $prevPage.RelPermalink }}" title="{{ $prevPage.Title }}" class="btn btn-outline-info">
<div><i class="fas fa-chevron-circle-left"></i> {{ i18n "prev" }}</div>
<div class="next-prev-text">{{ .Next.Title }}</div>
<div class="next-prev-text">{{ $prevPage.Title }}</div>
</a>
</div>
{{ end }}
{{ end }}
{{ if .Prev }}
{{ if (in site.Params.mainSections .Prev.Type) }}
{{ if $nextPage }}
{{ $columnWidth:="col-md-12" }}
{{ if .Next }}
{{ if (in site.Params.mainSections .Next.Type) }}
{{ if $prevPage }}
{{ $columnWidth = "col-md-6" }}
{{ end }}
{{ end}}
<div class="{{ $columnWidth }} next-article">
<a href="{{ .Prev.RelPermalink }}" class="btn btn-outline-info">
<a href="{{ $nextPage.RelPermalink }}" title="{{ $nextPage.Title }}" class="btn btn-outline-info">
<div>{{ i18n "next" }} <i class="fas fa-chevron-circle-right"></i></div>
<div class="next-prev-text">{{ .Prev.Title }}</div>
<div class="next-prev-text">{{ $nextPage.Title }}</div>
</a>
</div>
{{ end }}
{{ end }}
{{ end }}
{{ end }}
</div>
+1 -1
View File
@@ -17,6 +17,6 @@
</li>
{{ else }}
<!-- No sub-tree. So, only add current entry -->
<li><a class="{{$class}}" href="{{ .URL }}">{{.Name}}</a></li>
<li><a class="{{$class}}" href="{{ .URL }}" title="{{ .Name }}">{{.Name}}</a></li>
{{ end }}
{{ end }}
@@ -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 }}
-18
View File
@@ -1,18 +0,0 @@
{{ $paginator := .Paginate .RegularPagesRecursive 10 }}
{{ range $paginator.Pages }}
{{ if .Layout }}
{{/* ignore search.md file*/}}
{{ else }}
{{$id := .Params.Menu.Notes.Identifier }}
<h4 class="note-collection-title" id="{{ $id }}">
<a href="#{{ $id }}"># {{ .Title }}</a>
{{$badges:= split .File.Dir "/"}}
{{ range after 1 $badges }}
<span class="badge btn-info note-badge">{{ . }}</span>
{{ end }}
</h4>
<div class="note-collection">
{{ .Content }}
</div>
{{ end }}
{{ end }}
+12
View File
@@ -0,0 +1,12 @@
{{ $title := (index site.Data site.Language.Lang).site.openGraph.title | default site.Title }}
{{ $type := (index site.Data site.Language.Lang).site.openGraph.type | default "website" }}
{{ $description := (index site.Data site.Language.Lang).site.openGraph.description | default (index site.Data site.Language.Lang).site.description }}
{{ $image := (index site.Data site.Language.Lang).site.openGraph.image | default (index site.Data site.Language.Lang).author.image }}
{{ $url := (index site.Data site.Language.Lang).site.openGraph.url | default site.BaseURL }}
<!-- ============ open graph tags ========== -->
<meta property="og:title" content="{{ $title }}"/>
<meta property="og:type" content="{{ $type }}"/>
<meta property="og:description" content="{{ $description }}"/>
<meta property="og:image" content="{{ $image | absURL }}">
<meta property="og:url" content="{{ $url }}">
+6 -5
View File
@@ -1,6 +1,7 @@
<script src="{{ "/js/jquery-3.4.1.min.js" | relURL }}"></script>
<script src="{{ "/js/popper.min.js" | relURL }}"></script>
<script src="{{ "/js/bootstrap.min.js" | relURL }}"></script>
<script type="text/javascript" src="{{ "/js/jquery-3.4.1.min.js" | relURL }}"></script>
<script type="text/javascript" src="{{ "/js/popper.min.js" | relURL }}"></script>
<script type="text/javascript" src="{{ "/js/bootstrap.min.js" | relURL }}"></script>
<script src="{{ "/js/navbar.js" | relURL }}"></script>
<script src="{{ "/js/main.js" | relURL }}"></script>
<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>
+12 -6
View File
@@ -11,13 +11,14 @@
<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">
{{ .designation }}
{{ if .company }}
{{ i18n "at"}} <a href="{{ .company.url }}" target="_blank">{{ .company.name }}</a>
{{ i18n "at"}} <a href="{{ .company.url }}" title="{{ .company.name }}" target="_blank" rel="noopener">{{ .company.name }}</a>
{{ end }}
</h5>
{{ end }}
@@ -29,18 +30,18 @@
{{ range .socialLinks }}
<li>
{{ if eq .name "Email" }}
<a href="mailto:{{ .url }}" target="/"><i class="{{ .icon }}"></i></a>
<a href="mailto:{{ .url }}" title="{{ .name }}" target="_blank" rel="noopener"><i class="{{ .icon }}"></i></a>
{{ else if eq .name "Phone" }}
<a href="tel:{{ .url }}" target="/"><i class="{{ .icon }}"></i></a>
<a href="tel:{{ .url }}" title="{{ .name }}" target="_blank" rel="noopener"><i class="{{ .icon }}"></i></a>
{{ else }}
<a href="{{ .url }}" target="/"><i class="{{ .icon }}"></i></a>
<a href="{{ .url }}" title="{{ .name }}" target="_blank" rel="noopener"><i class="{{ .icon }}"></i></a>
{{ end }}
</li>
{{ end }}
</ul>
</div>
{{ if .resume }}
<a href="{{ .resume | relURL }}" target="#"
<a href="{{ .resume | relURL }}" title="{{ i18n "resume"}}" target="#"
><button class="btn btn-dark">{{ i18n "resume"}}</button></a
>
{{ end }}
@@ -48,6 +49,11 @@
<!-- soft skills circular-progressbar -->
<div class="col-sm-6 pt-5 pl-md-4 pl-sm-3 pt-sm-0">
<div class="row">
{{ range .badges }}
{{ partial "misc/badge.html" . }}
{{ end }}
<!-- TODO: Remove this part in version v4+ -->
<!-- Keep backward compatibility with old configuration -->
{{ range .softSkills }}
{{ partial "misc/soft-skills.html" . }}
{{ end }}
@@ -3,9 +3,10 @@
{{ $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>
{{ end }}
<div class="container">
+3 -2
View File
@@ -3,9 +3,10 @@
{{ $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>
{{ end }}
<div class="container">
<div class="row" id="gallery">
+8 -4
View File
@@ -27,7 +27,7 @@
<div class="row">
<div class="col-lg-10 col-md-8">
{{ if .institution.url }}
<h5><a href="{{ .institution.url }}">{{ .institution.name }}</a></h5>
<h5><a href="{{ .institution.url }}" title="{{ .institution.name }}" target="_blank" rel="noopener">{{ .institution.name }}</a></h5>
{{ else }}
<h5>{{ .institution.name }}</h5>
{{ end }}
@@ -43,7 +43,11 @@
<h6 class="text-muted">{{i18n "publications"}}</h6>
<ul>
{{ range .publications }}
<li><a href="{{ .url }} ">{{ .title }}</a></li>
{{ if .url }}
<li><a href="{{ .url }}" title="{{ .title }}" target="_blank" rel="noopener">{{ .title }}</a></li>
{{ else }}
<li>{{ .title }}</li>
{{ end }}
{{ end }}
</ul>
</div>
@@ -78,9 +82,9 @@
{{ end }}
{{ if gt (len .takenCourses.courses) 2 }}
<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>
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 }}"
onclick="toggleCourseVisibility(this);" id="show-less-btn">{{ i18n "show_less"}}</button>
onclick="toggleCourseVisibility(this);" id="show-less-btn" aria-label="{{ i18n "show_less"}}">{{ i18n "show_less"}}</button>
{{ end }}
</div>
{{ end }}
+10 -5
View File
@@ -3,9 +3,10 @@
{{ $sectionID = .section.id }}
{{ end }}
<div class="container-fluid anchor pb-5 education-section" id="{{ $sectionID }}">
<div class="container-fluid anchor pb-5 education-section">
{{ if not (.section.hideTitle) }}
<h1 class="text-center">{{ .section.name }}</h1>
<h1 class="text-center">
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
{{ end }}
<div class="container">
@@ -27,7 +28,7 @@
<div class="row">
<div class="col-lg-10 col-md-8">
{{ if .institution.url }}
<h5><a href="{{ .institution.url }}" target="_blank">{{ .institution.name }}</a></h5>
<h5><a href="{{ .institution.url }}" title="{{ .institution.name }}" target="_blank" rel="noopener">{{ .institution.name }}</a></h5>
{{ else }}
<h5>{{ .institution.name }}</h5>
{{ end }}
@@ -43,7 +44,11 @@
<h6 class="text-muted">{{ i18n "publications"}}</h6>
<ul>
{{ range .publications }}
<li><a href="{{ .url }} " target="_blank">{{ .title }}</a></li>
{{ if .url }}
<li><a href="{{ .url }}" title="{{ .title }}" target="_blank" rel="noopener">{{ .title }}</a></li>
{{ else }}
<li>{{ .title }}</li>
{{ end }}
{{ end }}
</ul>
</div>
@@ -55,7 +60,7 @@
{{ $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>
+4 -2
View File
@@ -3,9 +3,11 @@
{{ $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>
{{ end }}
<div class="container timeline text-justify">
@@ -1,7 +1,7 @@
<div class="col-10 col-lg-8">
<div class="experience-entry-heading">
<!-- For multiple positions, give emphasis on the company name-->
<h5>{{ if .company.url }}<a href={{.company.url}} target="_blank">{{ .company.name }}</a>{{ else }}{{ .company.name }}{{ end }}</h5>
<h5>{{ if .company.url }}<a href={{.company.url}} title="{{ .company.name }}" target="_blank" rel="noopener">{{ .company.name }}</a>{{ else }}{{ .company.name }}{{ end }}</h5>
<!-- Total experience duration on a company is time between the starting date of the oldest position and ending date of most recent position -->
{{ $oldestPosition := index (last 1 .positions) 0}}
@@ -3,7 +3,7 @@
{{ $position:= index .positions 0 }}
<!-- For single position, give emphasis on the designation-->
<h5>{{ $position.designation }}</h5>
<h6>{{ if .company.url }}<a href={{.company.url}} target="_blank">{{ .company.name }}</a>{{ else }}{{ .company.name }}{{ end }}</h6>
<h6>{{ if .company.url }}<a href={{.company.url}} title="{{ .company.name }}" target="_blank" rel="noopener">{{ .company.name }}</a>{{ else }}{{ .company.name }}{{ end }}</h6>
<!-- Add experience duration info -->
<p class="text-muted">{{ $position.start }} - {{ if $position.end }}{{ $position.end }}{{ else }}{{ i18n "present" }}{{ end }},
{{ .company.location }}
+8 -2
View File
@@ -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 }}
@@ -110,6 +113,9 @@
alt="Author Image"
/>
<h1 class="greeting"> {{ $author.greeting }} {{ $name }}</h1>
{{ if $author.subtitle }}
<h2 class="greeting-subtitle">{{ $author.subtitle }}</h2>
{{ end }}
<div class="typing-carousel">
<span id="ityped" class="ityped"></span>
<span class="ityped-cursor"></span>
@@ -127,7 +133,7 @@
{{ if .section.id }}
{{ $sectionID = .section.id }}
{{ end }}
<a href="#{{ $sectionID }}"><i class="arrow bounce fa fa-chevron-down"></i></a>
<a href="#{{ $sectionID }}" aria-label="{{ i18n "read" }} {{ i18n "more" }} - {{ $name }}"><i class="arrow bounce fa fa-chevron-down"></i></a>
{{ end }}
{{ end }}
</div>
+10 -3
View File
@@ -3,13 +3,20 @@
{{ $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>
{{ 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 -2
View File
@@ -3,9 +3,10 @@
{{ $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>
{{ end }}
<div class="container d-flex-block">
<div class="row" id="primary-skills">
+22
View File
@@ -0,0 +1,22 @@
{{ $repo := site.Params.features.comment.utteranc.repo }}
{{ $issueTerm := site.Params.features.comment.utteranc.issueTerm }}
{{ $theme := site.Params.features.comment.utteranc.theme }}
<div id="utteranc_thread"></div>
<div id="comments" class="comments">
<div id="comments-container"></div>
</div>
<script type="text/javascript">
(function() {
var utterances = document.createElement('script');
utterances.type = 'text/javascript';
utterances.async = true;
utterances.setAttribute('repo','{{ $repo }}')
utterances.setAttribute('issue-term','{{ $issueTerm }}')
utterances.setAttribute('theme','{{ $theme }}')
utterances.crossorigin = 'anonymous';
utterances.src = 'https://utteranc.es/client.js';
document.getElementById('comments-container').appendChild(utterances);
})();
</script>
+17
View File
@@ -0,0 +1,17 @@
<!-- valine -->
<div id="vcomments"></div>
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<script src="//unpkg.com/valine/dist/Valine.min.js"></script>
<script type="text/javascript">
new Valine({
el: "#vcomments",
appId: "{{ .valine.appId }}",
appKey: "{{ .valine.appKey }}",
avatar: "{{ .valine.avatar }}",
placeholder: "{{ .valine.placeholder }}",
visitor: "{{ .valine.visitor }}",
lang: "{{ .valine.lang }}",
recordIP: "{{ .valine.recordIP }}",
enableQQ: "{{ .valine.enableQQ }}",
});
</script>
+5 -6
View File
@@ -1,11 +1,10 @@
<div class="note-card {{if .Get "size" }}{{.Get "size"}}-note{{end}}">
<div class="item">
<h5 class="note-title"><span>{{ .Get "title" }}</span></h5>
{{ range $idx, $val := split .Inner "---" }}
<div class="card">
<div class="card-header" style="background-color: {{ site.Params.notes.headerBackground | default "transparent" }};">
<span class="note-title" style="color: {{ site.Params.notes.headerTextColor | default "#1c2d41" }};">{{.Get "title"}}</span>
<div class="card-body">{{ $val | markdownify }}</div>
</div>
<div class="card-body">{{ .Inner | markdownify }}</div>
{{ if .Get "footer" }}
<div class="card-footer">{{ .Get "footer" }}</div>
{{end}}
{{ end }}
</div>
</div>
+13
View File
@@ -0,0 +1,13 @@
{{ $src := .Get "src" }}
{{ $type := .Get "type" }}
{{/*
A page can have multiple videos. We need to generate unique id for them.
Here, we are generating a sequence from 1 to 200 and taking the first element after a shuffle.
This will give a random number in most cases. However, if the page has many videos, we might have a collision.
We should find a better approach for doing this.
*/}}
{{ $randNumber := index (seq 200 | shuffle) 0 }}
<video class="video-player" id="video-{{ $randNumber }}" playsinline controls>
<source src="{{ $src }}" type="{{ $type | default "video/mp4" }}" />
</video>
+62
View File
@@ -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="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 }}
+636 -1105
View File
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -17,7 +17,8 @@
},
"homepage": "https://github.com/hossainemruz/toha#readme",
"devDependencies": {
"autoprefixer": "^9.8.6",
"postcss-cli": "^7.1.2"
"autoprefixer": "^10.4.0",
"postcss": "^8.3.11",
"postcss-cli": "^8.3.1"
}
}
-1
View File
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
+34 -7
View File
@@ -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 {
@@ -168,6 +168,12 @@ img.right {
font-size: 10pt;
}
.flag-icon {
width: 16px !important;
margin-top: 3px;
margin-right: 3px;
}
/* ====== codeblocks ====== */
table {
border-radius: 0.1rem;
@@ -333,6 +339,14 @@ mark {
background-color: #e5e9f2;
}
.footer #disclaimer{
color: #8392a5 !important;
text-align: justify;
}
.footer #disclaimer>strong{
color: #c0ccda!important;
}
.footer #theme {
color: #c0ccda;
}
@@ -418,16 +432,29 @@ mark {
code {
padding: 0px;
}
h1 {
font-size: 2.2rem;
}
}
/* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) {
h1 {
font-size: 2rem;
}
}
/* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) {
h1 {
font-size: 1.8rem;
}
}
/* iPhone 5 or before */
@media only screen and (max-width: 320px) {
h1 {
font-size: 1.5rem;
}
}
+26 -7
View File
@@ -25,12 +25,16 @@
.note-card-holder{
padding-top: 2rem;
display: grid;
grid-gap: 0.5rem;
grid-template-columns: repeat(auto-fill, minmax(30rem,1fr));
grid-auto-rows: 20px;
}
.note-collection {
/* .note-collection {
display: flex;
flex-wrap: wrap;
}
} */
.note-card {
align-self: flex-start;
@@ -41,7 +45,22 @@
}
.note-title{
font-weight: 800;
padding-left: 1rem;
color: #248aaa;
}
.note-title span{
background: #e5e9f2;
padding-right: 5px;
}
.note-title:before{
content:'';
display:inline-block;
width:98%;
height:100%;
margin-bottom:-26px;
border-bottom: 1px solid #248aaa;
}
.note-card .card-body{
@@ -53,7 +72,7 @@
border-radius: 3px;
}
.small-note{
/* .small-note{
max-width: 15rem;
}
@@ -65,7 +84,7 @@
max-width: 40rem;
}
.huge-note{}
.huge-note{} */
.note-badge{
font-size: 10pt;
@@ -146,8 +165,8 @@
transition: all ease-out 0.3s;
}
.content-section.hide .note-card-holder .note-card {
max-width: 100%;
.content-section.hide .note-card-holder{
grid-template-columns: repeat(auto-fill, minmax(30rem,1fr));
transition: all ease-out 0.3s;
}
}

Some files were not shown because too many files have changed in this diff Show More