56 Commits

Author SHA1 Message Date
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
360 changed files with 3328 additions and 1366 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ categories:
- 'feature' - 'feature'
- 'enhancement' - 'enhancement'
- title: 'New Translations' - title: 'Translations'
label: 'translation' label: 'translation'
- title: 'Bug Fixes' - title: 'Bug Fixes'
+2 -2
View File
@@ -17,11 +17,11 @@ jobs:
- name: Run autoprefixer - name: Run autoprefixer
run: | run: |
npm install postcss-cli autoprefixer --save-dev npm install postcss postcss-cli autoprefixer --save-dev
npm run autoprefixer npm run autoprefixer
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v3.8.2 uses: peter-evans/create-pull-request@v3.10.0
with: with:
branch: autoprefixer branch: autoprefixer
branch-suffix: timestamp 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
# 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
+1 -1
View File
@@ -10,4 +10,4 @@ jobs:
# checkout to latest commit # checkout to latest commit
- uses: actions/checkout@master - uses: actions/checkout@master
# run markdown linter # run markdown linter
- uses: gaurav-nelson/github-action-markdown-link-check@v1 - uses: gaurav-nelson/github-action-markdown-link-check@1.0.12
+21 -4
View File
@@ -1,6 +1,17 @@
# Toha # 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/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. 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 # specify whether you want to show Table of Contents in reading page
enableTOC: true enableTOC: true
# Provide newsletter configuration. This feature hasn't been implemented yet. # Provide newsletter configuration.
# Currently, you can just hide it from the footer. # This feature has been implemented for Mailchimp only for now.
# You can also hide it from the footer.
newsletter: newsletter:
# specify whether you want to display the newsletter form
enable: true 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/). 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: Now, you can run your hugo site with `toha` theme locally with the following command:
```console ```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/). 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"
]
\```
+4 -1
View File
@@ -30,7 +30,7 @@ other = "ইমেইল নোটিফিকেশান এর মাধ্
other = "ইমেইল প্রবেশ করান" other = "ইমেইল প্রবেশ করান"
[newsletter_warning] [newsletter_warning]
other = "আমরা আপনার ইমেল অন্য কারও সাথে শেয়ার করব না।" other = "আপনার ইমেঠিকানা প্রবেশের মাধমে আপনি এই ওয়েবসাইটের নিউজ লেটার পেতে সম্মত হচ্ছেন।"
[submit] [submit]
other = "জমা দিন" other = "জমা দিন"
@@ -106,3 +106,6 @@ other = "সার্টিফিকেট দেখুন"
[notes] [notes]
other = "নোট সমূহ" other = "নোট সমূহ"
[disclaimer_text]
other = "দায় বিজ্ঞপ্তি"
+4 -1
View File
@@ -33,7 +33,7 @@ other = "通过电子邮件接收最新信息"
other = "填入 E-mail" other = "填入 E-mail"
[newsletter_warning] [newsletter_warning]
other = "我们绝不会与任何人共享您的电子邮件。" other = "输入您的电子邮件地址,即表示您同意接收本网站的时事通讯"
[submit] [submit]
other = "提交" other = "提交"
@@ -109,3 +109,6 @@ other = "查看证书"
[notes] [notes]
other = "笔记" other = "笔记"
[disclaimer_text]
other = "责任通知"
+35 -32
View File
@@ -1,6 +1,6 @@
# More documentation here: https://github.com/nicksnyder/go-i18n # More documentation here: https://github.com/nicksnyder/go-i18n
[home] [home]
other = "Startseite" other = "Home"
[posts] [posts]
other = "Beiträge" other = "Beiträge"
@@ -18,7 +18,7 @@ other = "Mein Lebenslauf"
other = "Navigation" other = "Navigation"
[contact_me] [contact_me]
other = "Kontakt aufnehmen" other = "Kontaktiere mich:"
[email] [email]
other = "E-Mail" other = "E-Mail"
@@ -30,10 +30,10 @@ other = "Telefon"
other = "Mit dem Newsletter auf dem neuesten Stand bleiben" other = "Mit dem Newsletter auf dem neuesten Stand bleiben"
[newsletter_input_placeholder] [newsletter_input_placeholder]
other = "E-Mail-Adresse eingeben" other = "E-Mail Adresse eingeben"
[newsletter_warning] [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] [submit]
other = "Absenden" other = "Absenden"
@@ -51,61 +51,64 @@ other = "Nächste"
other = "Diese Seite verbessern" other = "Diese Seite verbessern"
[out_of] [out_of]
other = "van de" other = "aus"
[publications] [publications]
other = "Publicaties" other = "Publikationen"
[taken_courses] [taken_courses]
other = "Cursussen gevolgd" other = "Belegte Kurse"
[course_name] [course_name]
other = "Cursus naam" other = "Kursname"
[total_credit] [total_credit]
other = "Totaal krediet" other = "Gesamtguthaben"
[obtained_credit] [obtained_credit]
other = "Krediet verkregen" other = "Erhaltenes Guthaben"
[extracurricular_activities] [extracurricular_activities]
other = "Buitenschoolse activiteiten" other = "Außerschulische Aktivitäten"
[show_more] [show_more]
other = "Bekijk meer" other = "Mehr anzeigen"
[show_less] [show_less]
other = "Laat minder zien" other = "Weniger anzeigen"
# [responsibilities] [responsibilities]
# other = "Responsibilities:" other = "Verantwortlichkeiten:"
# [present] [present]
# other = "Present" other = "heute"
# [comments_javascript] [comments_javascript]
# other = "Please enable JavaScript to view the" other = "Bitte aktiviere JavaScript um die Kommentare zu sehen"
# [comments_by] [comments_by]
# other = "comments powered by" other = "Kommentare Unterstützt von"
# [read] [read]
# other = "Read" other = "Lesen"
# [project_star] [project_star]
# other = "Star" other = "Star"
# [project_details] [project_details]
# other = "Details" other = "Details"
# [err_404] [err_404]
# other = "The page you are looking for is not there yet." other = "Die Seite nach der Seite ist noch nicht vorhanden."
[more] [more]
other = "Meer" other = "Mehr"
[view_certificate] [view_certificate]
other = "Bekijk certificaat" other = "Zertifikat ansehen"
[notes] [notes]
other = "Opmerkingen" other = "Notizen"
[disclaimer_text]
other = "Haftungshinweis"
+4 -1
View File
@@ -33,7 +33,7 @@ other = "Stay up to date with email notification"
other = "Enter email" other = "Enter email"
[newsletter_warning] [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] [submit]
other = "Submit" other = "Submit"
@@ -109,3 +109,6 @@ other = "View Certificate"
[notes] [notes]
other = "Notes" other = "Notes"
[disclaimer_text]
other = "Liability Notice"
+4 -1
View File
@@ -33,7 +33,7 @@ other = "Subscribirse"
other = "Ingrese email" other = "Ingrese email"
[newsletter_warning] [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] [submit]
other = "Enviar" other = "Enviar"
@@ -109,3 +109,6 @@ other = "Ver Certificado"
[notes] [notes]
other = "Notas" other = "Notas"
[disclaimer_text]
other = "Aviso de responsabilidad"
+7 -4
View File
@@ -3,7 +3,7 @@
other = "Accueil" other = "Accueil"
[posts] [posts]
other = "Des postes" other = "Articles"
[toc_heading] [toc_heading]
other = "Table des matières" other = "Table des matières"
@@ -33,7 +33,7 @@ other = "Restez à jour par e-mail"
other = "Entrez une adresse e-mail" other = "Entrez une adresse e-mail"
[newsletter_warning] [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] [submit]
other = "Envoyer" other = "Envoyer"
@@ -89,8 +89,8 @@ other = "Montrer moins"
# [comments_by] # [comments_by]
# other = "comments powered by" # other = "comments powered by"
# [read] [read]
# other = "Read" other = "Lire"
# [project_star] # [project_star]
# other = "Star" # other = "Star"
@@ -109,3 +109,6 @@ other = "Afficher le certificat"
[notes] [notes]
other = "Remarques" other = "Remarques"
[disclaimer_text]
other = "Avis de responsabilité"
+4 -1
View File
@@ -33,7 +33,7 @@ other = "ईमेल अधिसूचना से अवगत रहें"
other = "ईमेल दर्ज करें" other = "ईमेल दर्ज करें"
[newsletter_warning] [newsletter_warning]
other = "हम आपके ईमेल को कभी भी किसी और के साथ साझा नहीं करेंगे" other = "अपना ईमेल पता दर्ज करके, आप इस वेबसाइट का न्यूज़लेटर प्राप्त करने के लिए सहमत होते हैं।"
[submit] [submit]
other = "जमा करें" other = "जमा करें"
@@ -109,3 +109,6 @@ other = "प्रमाणपत्र देखें"
[notes] [notes]
other = "टिप्पणियाँ" other = "टिप्पणियाँ"
[disclaimer_text]
other = "दायित्व सूचना"
+4 -1
View File
@@ -33,7 +33,7 @@ other = "Ingin selalu update dengan notifikasi email"
other = "Masukkan email" other = "Masukkan email"
[newsletter_warning] [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] [submit]
other = "Kirim" other = "Kirim"
@@ -109,3 +109,6 @@ other = "Lihat Sertifikat"
[notes] [notes]
other = "Catatan" other = "Catatan"
[disclaimer_text]
other = "Pemberitahuan Kewajiban"
+4 -1
View File
@@ -33,7 +33,7 @@ other = "Resta aggiornato con la notifica di email"
other = "Inserisci l'email" other = "Inserisci l'email"
[newsletter_warning] [newsletter_warning]
other = "Non condivideremo l'email con altri." other = "Inserendo il tuo indirizzo email, accetti di ricevere la newsletter di questo sito."
[submit] [submit]
other = "Invia" other = "Invia"
@@ -109,3 +109,6 @@ other = "Féach ar an Teastas"
[notes] [notes]
other = "Appunti" other = "Appunti"
[disclaimer_text]
other = "Avviso di responsabilità"
+4 -1
View File
@@ -30,7 +30,7 @@ other = "メールで最新情報を受け取る"
other = "ここにメールアドレスを入力" other = "ここにメールアドレスを入力"
[newsletter_warning] [newsletter_warning]
other = "ご入力いただいたメールアドレスが他人に開示されることは決してございません。" other = "メールアドレスを入力すると、このウェブサイトのニュースレターを受け取ることに同意したことになります。"
[submit] [submit]
other = "登録" other = "登録"
@@ -106,3 +106,6 @@ other = "ビューの証明書"
[notes] [notes]
other = "ノート" other = "ノート"
[disclaimer_text]
other = "責任通知"
+4 -1
View File
@@ -33,7 +33,7 @@ other = "이메일 알림으로 최신 상태를 유지해보세요"
other = "이메일을 입력하세요" other = "이메일을 입력하세요"
[newsletter_warning] [newsletter_warning]
other = "이메일을 다른 목적으로 사용하지 않습니다." other = "이메일 주소를 입력하면이 웹 사이트의 뉴스 레터 수신에 동의하는 것입니다."
[submit] [submit]
other = "제출" other = "제출"
@@ -109,3 +109,6 @@ other = "인증서보기"
[notes] [notes]
other = "메모" other = "메모"
[disclaimer_text]
other = "책임 고지"
+113
View File
@@ -0,0 +1,113 @@
[home]
other = "Startseite"
[posts]
other = "Beiträge"
[toc_heading]
other = "Inhaltsverzeichnis"
[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"
[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"
+4 -1
View File
@@ -33,7 +33,7 @@ other = "Подпишитесь на уведомления, чтобы не п
other = "Введите email" other = "Введите email"
[newsletter_warning] [newsletter_warning]
other = "Ваши данные в безопасности" other = "Вводя свой адрес электронной почты, вы соглашаетесь получать информационный бюллетень этого веб-сайта."
[submit] [submit]
other = "Подтвердить" other = "Подтвердить"
@@ -109,3 +109,6 @@ other = "Просмотреть сертификат"
[notes] [notes]
other = "Ноты" other = "Ноты"
[disclaimer_text]
other = "Уведомление об ответственности"
+4 -1
View File
@@ -33,7 +33,7 @@ other = "Nhận email cập nhật thông tin"
other = "Nhập email" other = "Nhập email"
[newsletter_warning] [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] [submit]
other = "Gửi" other = "Gửi"
@@ -109,3 +109,6 @@ other = "Xem chứng chỉ"
[notes] [notes]
other = "Ghi chú" other = "Ghi chú"
[disclaimer_text]
other = "Thông báo trách nhiệm"
+10 -2
View File
@@ -4,13 +4,20 @@
<title>{{ .Page.Title }}</title> <title>{{ .Page.Title }}</title>
<!------ ADD COMMON HEADERS --------> <!------ ADD COMMON HEADERS -------->
{{- partial "header.html" . -}} {{- partial "header.html" . -}}
{{ template "_internal/opengraph.html" . }}
<!------ ADD PAGE SPECIFIC HEADERS -------> <!------ ADD PAGE SPECIFIC HEADERS ------->
{{ block "header" . }} {{ end }} {{ block "header" . }} {{ end }}
<!-- ADD GOOGLE ANALYTICS IF ENABLED --> <!-- ADD GOOGLE ANALYTICS IF ENABLED -->
{{ if site.GoogleAnalytics }} {{ if site.GoogleAnalytics }}
{{ template "_internal/google_analytics_async.html" . }} <!-- 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 }} {{ end }}
</head> </head>
@@ -30,7 +37,8 @@
</div> </div>
<!------- ADD FOOTER ------------> <!------- ADD FOOTER ------------>
{{- partial "footer.html" . -}} {{ $footerTemplate:= site.Params.footer.template | default "footer.html" }}
{{- partial $footerTemplate . -}}
<!------- ADD COMMON SCRIPTS -------> <!------- ADD COMMON SCRIPTS ------->
{{ partial "scripts.html" . }} {{ partial "scripts.html" . }}
+6 -2
View File
@@ -1,6 +1,9 @@
{{ define "header" }} {{ define "header" }}
<link rel="stylesheet" href="{{ "/css/layouts/list.css" | relURL }}"> <link rel="stylesheet" href="{{ "/css/layouts/list.css" | relURL }}">
<link rel="stylesheet" href="{{ "/css/navigators/sidebar.css" | relURL}}"> <link rel="stylesheet" href="{{ "/css/navigators/sidebar.css" | relURL}}">
<!--================= custom style overrides =========================-->
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}"/>
{{ end }} {{ end }}
{{ define "navbar" }} {{ define "navbar" }}
@@ -16,7 +19,7 @@
<section class="sidebar-section" id="sidebar-section"> <section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder"> <div class="sidebar-holder">
<div class="sidebar" id="sidebar"> <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" /> <input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form> </form>
<div class="sidebar-tree"> <div class="sidebar-tree">
@@ -36,7 +39,8 @@
<section class="content-section" id="content-section"> <section class="content-section" id="content-section">
<div class="content container-fluid" id="content"> <div class="content container-fluid" id="content">
<div class="container-fluid post-card-holder" id="post-card-holder"> <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 }} {{ range $paginator.Pages }}
{{ if .Layout }} {{ if .Layout }}
{{/* ignore the search.md file*/}} {{/* ignore the search.md file*/}}
+4 -1
View File
@@ -1,6 +1,9 @@
{{ define "header" }} {{ define "header" }}
<link rel="stylesheet" href="{{ "/css/layouts/list.css" | relURL }}"> <link rel="stylesheet" href="{{ "/css/layouts/list.css" | relURL }}">
<link rel="stylesheet" href="{{ "/css/navigators/sidebar.css" | relURL}}"> <link rel="stylesheet" href="{{ "/css/navigators/sidebar.css" | relURL}}">
<!--================= custom style overrides =========================-->
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}"/>
{{ end }} {{ end }}
{{ define "navbar" }} {{ define "navbar" }}
@@ -16,7 +19,7 @@
<section class="sidebar-section" id="sidebar-section"> <section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder"> <div class="sidebar-holder">
<div class="sidebar" id="sidebar"> <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" /> <input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form> </form>
<div class="sidebar-tree"> <div class="sidebar-tree">
+5 -2
View File
@@ -6,6 +6,9 @@
/> />
<link rel="stylesheet" href="{{ "/css/layouts/single.css" | relURL }}"/> <link rel="stylesheet" href="{{ "/css/layouts/single.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/navigators/sidebar.css" | relURL }}"> <link rel="stylesheet" href="{{ "/css/navigators/sidebar.css" | relURL }}">
<!--================= custom style overrides =========================-->
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}"/>
{{ end }} {{ end }}
{{ define "navbar" }} {{ define "navbar" }}
@@ -16,7 +19,7 @@
<section class="sidebar-section" id="sidebar-section"> <section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder"> <div class="sidebar-holder">
<div class="sidebar" id="sidebar"> <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" /> <input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form> </form>
<div class="sidebar-tree"> <div class="sidebar-tree">
@@ -59,7 +62,7 @@
<!--- Improve this page button ---> <!--- Improve this page button --->
{{ if site.Params.GitRepo }} {{ if site.Params.GitRepo }}
<div class="btn-improve-page"> <div class="btn-improve-page">
<a href="{{ site.Params.GitRepo }}/edit/{{ site.Params.GitBranch }}/content/{{ .File.Path }}"> <a href="{{ site.Params.GitRepo }}/edit/{{ site.Params.GitBranch }}/content/{{ .File.Path }}" title="{{ i18n "improve_this_page" }}" target="_blank" rel="noopener">
<i class="fas fa-code-branch"></i> <i class="fas fa-code-branch"></i>
{{ i18n "improve_this_page" }} {{ i18n "improve_this_page" }}
</a> </a>
+14 -3
View File
@@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="{{ .Site.Language.Lang }}">
<head> <head>
<title>{{- .Site.Title -}}</title> <title>{{- .Site.Title -}}</title>
{{ $siteDescription := .Site.Params.description }} {{ $siteDescription := .Site.Params.description }}
@@ -13,6 +13,7 @@
<!-- import common headers --> <!-- import common headers -->
{{- partial "header.html" . -}} {{- partial "header.html" . -}}
{{- partial "opengraph.html" . -}}
<!-- import index page specific headers --> <!-- import index page specific headers -->
<link rel="stylesheet" href="{{ "/css/sections/home.css" | relURL }}"/> <link rel="stylesheet" href="{{ "/css/sections/home.css" | relURL }}"/>
@@ -24,10 +25,19 @@
<link rel="stylesheet" href="{{ "/css/sections/recent-posts.css" | relURL }}"/> <link rel="stylesheet" href="{{ "/css/sections/recent-posts.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/sections/achievements.css" | relURL }}"/> <link rel="stylesheet" href="{{ "/css/sections/achievements.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/sections/accomplishments.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 --> <!-- Add Google Analytics if enabled in configuration -->
{{ if site.GoogleAnalytics }} {{ if site.GoogleAnalytics }}
{{ template "_internal/google_analytics_async.html" . }} <!-- 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 }} {{ end }}
</head> </head>
<body data-spy="scroll" data-target="#top-navbar" data-offset="100"> <body data-spy="scroll" data-target="#top-navbar" data-offset="100">
@@ -66,7 +76,8 @@
{{ end }} {{ end }}
<!--- ADD FOOTER -----------------------> <!--- ADD FOOTER ----------------------->
{{- partial "footer.html" . -}} {{ $footerTemplate:= site.Params.footer.template | default "footer.html" }}
{{- partial $footerTemplate . -}}
<!--- ADD COMMON SCRIPTS ---------------> <!--- ADD COMMON SCRIPTS --------------->
{{ partial "scripts.html" . }} {{ partial "scripts.html" . }}
+11 -2
View File
@@ -20,7 +20,7 @@
<section class="sidebar-section" id="sidebar-section"> <section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder"> <div class="sidebar-holder">
<div class="sidebar" id="sidebar"> <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" /> <input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form> </form>
<div class="sidebar-tree"> <div class="sidebar-tree">
@@ -40,7 +40,14 @@
<section class="content-section" id="content-section"> <section class="content-section" id="content-section">
<div class="content container-fluid" id="content"> <div class="content container-fluid" id="content">
<div class="container-fluid note-card-holder" id="note-card-holder"> <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>
<div class="paginator"> <div class="paginator">
{{ template "_internal/pagination.html" . }} {{ template "_internal/pagination.html" . }}
@@ -51,6 +58,8 @@
{{ define "scripts" }} {{ define "scripts" }}
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script> <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> <script>
hljs.initHighlightingOnLoad(); hljs.initHighlightingOnLoad();
</script> </script>
+4 -4
View File
@@ -20,7 +20,7 @@
<section class="sidebar-section" id="sidebar-section"> <section class="sidebar-section" id="sidebar-section">
<div class="sidebar-holder"> <div class="sidebar-holder">
<div class="sidebar" id="sidebar"> <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" /> <input type="text" name="keyword" value="" placeholder="Search" data-search="" id="search-box" />
</form> </form>
<div class="sidebar-tree"> <div class="sidebar-tree">
@@ -40,9 +40,7 @@
<section class="content-section" id="content-section"> <section class="content-section" id="content-section">
<div class="content container-fluid" id="content"> <div class="content container-fluid" id="content">
<div class="container-fluid note-card-holder" id="note-card-holder"> <div class="container-fluid note-card-holder" id="note-card-holder">
<div class="note-collection"> {{ .Content }}
{{ .Content }}
</div>
</div> </div>
</div> </div>
</section> </section>
@@ -50,6 +48,8 @@
{{ define "scripts" }} {{ define "scripts" }}
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script> <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> <script>
hljs.initHighlightingOnLoad(); hljs.initHighlightingOnLoad();
</script> </script>
+4 -2
View File
@@ -3,7 +3,7 @@
<div class="card-header"> <div class="card-header">
<h5 class="card-title mb-0">{{ .name }}</h5> <h5 class="card-title mb-0">{{ .name }}</h5>
<div class="sub-title"> <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> <span class="ml-2">{{ .timeline }}</span>
</div> </div>
</div> </div>
@@ -11,7 +11,9 @@
<p>{{ .courseOverview | markdownify }}</p> <p>{{ .courseOverview | markdownify }}</p>
</div> </div>
<div class="card-footer"> <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> </div>
</div> </div>
+2 -2
View File
@@ -4,14 +4,14 @@
> >
<div class="card mt-1"> <div class="card mt-1">
<div class="card"> <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>
<div class="d-flex"> <div class="d-flex">
{{ if .logo }} {{ if .logo }}
{{ $logoImage:= resources.Get .logo}} {{ $logoImage:= resources.Get .logo}}
{{ if $logoImage }} {{ if $logoImage }}
{{ $logoImage := $logoImage.Fit "24x24" }} {{ $logoImage = $logoImage.Fit "24x24" }}
<img class="card-img-xs" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" /> <img class="card-img-xs" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
{{ end }} {{ end }}
+2 -2
View File
@@ -1,5 +1,5 @@
<div class="col-lg-4 col-md-6 pt-2 post-card"> <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">
<div class="card-head"> <div class="card-head">
<img class="card-img-top" src='{{ partial "helpers/get-hero.html" . }}' <img class="card-img-top" src='{{ partial "helpers/get-hero.html" . }}'
@@ -12,7 +12,7 @@
</div> </div>
<div class="card-footer"> <div class="card-footer">
<span class="float-left">{{ .Date.Format "January 2, 2006" }}</span> <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>
</div> </div>
</a> </a>
+2 -2
View File
@@ -1,5 +1,5 @@
<div class="col-xs-12 col-sm-6 col-lg-4 pt-2"> <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">
<div class="card-head d-flex"> <div class="card-head d-flex">
{{ if .logo }} {{ if .logo }}
@@ -7,7 +7,7 @@
{{/* svg don't support "Fit" operation */}} {{/* svg don't support "Fit" operation */}}
{{ if ne $logoImage.MediaType.SubType "svg" }} {{ if ne $logoImage.MediaType.SubType "svg" }}
{{ $logoImage := $logoImage.Fit "24x24" }} {{ $logoImage = $logoImage.Fit "24x24" }}
{{ end }} {{ end }}
<img class="card-img-xs" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" /> <img class="card-img-xs" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
+155 -100
View File
@@ -1,112 +1,167 @@
{{ $author:= site.Data.author }} {{/* variables for enabling/disabling parts of the footer */}}
{{ if (index site.Data site.Language.Lang).author }} {{ $footerEnabled := site.Params.footer.enable | default true }}
{{ $author = (index site.Data site.Language.Lang).author }} {{ $navigationEnabled := site.Params.footer.navigation.enable | default true }}
{{ end }} {{ $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 }}
{{ $sections:= site.Data.sections }} {{/* Keep backward compatibility for the newsletter function */}}
{{ if (index site.Data site.Language.Lang).sections }} {{ if site.Params.newsletter }}
{{ $sections = (index site.Data site.Language.Lang).sections }} {{ if site.Params.newsletter.enable }}
{{ end }} {{ $newsletterEnabled = true }}
{{ else }}
{{ $copyrightNotice := "© 2020 Copyright."}} {{ $newsletterEnabled = false }}
{{ 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 }} {{ end }}
{{/* footer logos */}} {{ if $footerEnabled }}
{{ $themeLogo := "/images/theme-logo.png" }} {{ $author:= site.Data.author }}
{{ $hugoLogo := "/images/hugo-logo.svg" }} {{ if (index site.Data site.Language.Lang).author }}
{{ $author = (index site.Data site.Language.Lang).author }}
{{ end }}
{{/* resize the logos. don't resize svg because it is not supported */}} {{ $sections:= site.Data.sections }}
{{ $themeLogo:= resources.Get $themeLogo}} {{ if (index site.Data site.Language.Lang).sections }}
{{ if and $themeLogo (ne $themeLogo.MediaType.SubType "svg") }} {{ $sections = (index site.Data site.Language.Lang).sections }}
{{ $themeLogo = $themeLogo.Resize "32x" }} {{ end }}
{{ end }}
{{ $themeLogo = $themeLogo.RelPermalink}}
{{ $hugoLogo:= resources.Get $hugoLogo}} {{ $copyrightNotice := "© 2021 Copyright."}}
{{ if and $hugoLogo (ne $hugoLogo.MediaType.SubType "svg")}} {{ if (index site.Data site.Language.Lang).site }}
{{ $hugoLogo = $hugoLogo.Resize "32x" }} {{ $siteConfig := (index site.Data site.Language.Lang).site }}
{{ end }} {{ if $siteConfig.copyright }}
{{ $hugoLogo = $hugoLogo.RelPermalink}} {{ $copyrightNotice = $siteConfig.copyright }}
{{ end }}
{{ end }}
<footer class="container-fluid text-center align-content-center footer pb-2">
<div class="container pt-5"> {{ $disclaimer := "" }}
<div class="row text-left"> {{ $siteConfig := (index site.Data site.Language.Lang).site }}
<div class="col-md-4 col-sm-12"> {{ if $siteConfig.disclaimer }}
<h5>{{ i18n "navigation" }}</h5> {{ $disclaimer = $siteConfig.disclaimer }}
{{ if $sections }} {{ end }}
<ul>
{{- range sort $sections "section.weight" }} {{/* footer logos */}}
{{ if and (.section.enable) (.section.showOnNavbar)}} {{ $themeLogo := "/images/theme-logo.png" }}
{{ $sectionID := replace (lower .section.name) " " "-" }} {{ $hugoLogo := "/images/hugo-logo.svg" }}
{{ if .section.id }}
{{ $sectionID = .section.id }} {{/* 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}}
{{ $hugoLogo:= resources.Get $hugoLogo}}
{{ if and $hugoLogo (ne $hugoLogo.MediaType.SubType "svg")}}
{{ $hugoLogo = $hugoLogo.Resize "32x" }}
{{ end }}
{{ $hugoLogo = $hugoLogo.RelPermalink}}
<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 }}
<ul>
{{- range sort $sections "section.weight" }}
{{ if and (.section.enable) (.section.showOnNavbar)}}
{{ $sectionID := replace (lower .section.name) " " "-" }}
{{ if .section.id }}
{{ $sectionID = .section.id }}
{{ end }}
<li class="nav-item">
<a class="smooth-scroll" href="/#{{ $sectionID }}">{{ .section.name }}</a>
</li>
{{ end }} {{ end }}
<li class="nav-item"> {{- end }}
<a class="smooth-scroll" href="/#{{ $sectionID }}">{{ .section.name }}</a> </ul>
</li>
{{ end }}
{{- end }}
</ul>
{{ end }}
</div>
{{ if $author }}
<div class="col-md-4 col-sm-12">
<h5>{{ i18n "contact_me" }}</h5>
<ul>
{{ range $key,$value:= $author.contactInfo }}
<li><span>{{ title $key }}: </span> <span>{{ $value }}</span></li>
{{ end }} {{ end }}
</ul> </div>
</div> {{ end }}
{{ end }} {{ if (and $contactMeEnabled $author) }}
{{ if site.Params.newsletter.enable }} <div class="col-md-4 col-sm-12">
<div class="col-md-4 col-sm-12"> <h5>{{ i18n "contact_me" }}</h5>
<!-- <h5>Newsletter</h5> --> <ul>
<p>{{ i18n "newsletter_text" }}</p> {{ range $key,$value:= $author.contactInfo }}
<form> <li><span>{{ title $key }}: </span> <span>{{ $value }}</span></li>
<div class="form-group"> {{ end }}
<input </ul>
type="email" </div>
class="form-control" {{ end }}
id="exampleInputEmail1" <!-------------- Newsletter --------------->
aria-describedby="emailHelp" {{ if $newsletterEnabled }}
placeholder="{{ i18n "newsletter_input_placeholder" }}" {{ $provider := site.Params.footer.newsletter.provider }}
/> <div class="col-md-4 col-sm-12">
<small id="emailHelp" class="form-text text-muted" <p>{{ i18n "newsletter_text" }}</p>
>{{ i18n "newsletter_warning" }}</small {{ 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="mce-EMAIL"
name="EMAIL"
aria-describedby="emailHelp"
placeholder="{{ i18n "newsletter_input_placeholder" }}"
/>
<small id="emailHelp" class="form-text text-muted"
>{{ i18n "newsletter_warning" }}</small
>
</div>
<button type="submit" class="btn btn-info">{{ i18n "submit" }}</button>
</form>
{{ else }}
<!-- a dummy form -->
<form>
<div class="form-group">
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="{{ i18n "newsletter_input_placeholder" }}"/>
<small id="emailHelp" class="form-text text-muted">{{ i18n "newsletter_warning" }}</small>
</div>
<button type="submit" class="btn btn-info">{{ i18n "submit" }}</button>
</form>
{{ end }}
</div> </div>
<button type="submit" class="btn btn-info">{{ i18n "submit" }}</button> {{ end }}
</form>
</div>
{{ end }}
</div>
</div>
<hr />
<div class="container">
<div class="row text-left">
<div class="col-md-4">
<a id="theme" href="https://github.com/hossainemruz/toha" target="#">
<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" }}
<img
src="{{ $hugoLogo }}"
alt="Hugo Logo"
height="18"
/>
</a>
</div> </div>
</div> </div>
</div> {{ if and $disclaimerEnabled $disclaimer}}
</footer> <hr />
<div class="container">
<p id="disclaimer"><strong>{{ i18n "disclaimer_text" }}:</strong> {{ $disclaimer }}</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="_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/" target="_blank" rel="noopener">{{ i18n "hugoAttributionText" }}
<img
src="{{ $hugoLogo }}"
alt="Hugo Logo"
height="18"
/>
</a>
</div>
</div>
</div>
{{ 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 charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" />
@@ -20,15 +5,25 @@
<!-- ============ import common css ========== --> <!-- ============ import common css ========== -->
<link rel="stylesheet" href="{{ "/css/bootstrap.min.css" | relURL }}"/> <link rel="stylesheet" href="{{ "/css/bootstrap.min.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/layouts/main.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/navigators/navbar.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/plyr.css" | relURL }}"/>
<link rel="stylesheet" href="{{ "/css/flag-icon.min.css" | relURL }}"/>
<!--=================== cdn ==============================--> <!--=================== cdn ==============================-->
<link href="https://fonts.googleapis.com/css2?family=Muli:wght@300;400;500;600" rel="stylesheet"> <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" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css" />
<!--================= fab-icon =========================--> <!--================= 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 =========================--> {{/* resize the favicon. don't resize svg because it is not supported */}}
<link rel="stylesheet" href="{{ "/css/style.css" | relURL }}"/> {{ $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 }}
+11 -2
View File
@@ -1,8 +1,9 @@
{{/* if there is no custom flag provided, we define the flag with the country code */}}
{{ $languageCode:= .Lang }} {{ $languageCode:= .Lang }}
{{/* by default the language code and the country code are same */}} {{/* by default the language code and the country code are same */}}
{{ $countryCode:= $languageCode }} {{ $countryCode:= $languageCode }}
{{/* language code and country code are not same for some countries. we need to fix them. */}} {{/* language code and country code are not same for some countries. we need to fix them. */}}
{{ if eq $languageCode "en" }} {{ if eq $languageCode "en" }}
{{ $countryCode = "gb" }} {{ $countryCode = "gb" }}
{{ else if eq $languageCode "bn" }} {{ else if eq $languageCode "bn" }}
@@ -11,5 +12,13 @@
{{ $countryCode = "in" }} {{ $countryCode = "in" }}
{{ end }} {{ 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 the country code */}}
{{ return $countryCode }} {{ return $countryCode }}
@@ -21,7 +21,7 @@
{{/* apply image processing. don't use "Fit" in svg because its not supported */}} {{/* apply image processing. don't use "Fit" in svg because its not supported */}}
{{ $authorImage:= resources.Get $authorImage}} {{ $authorImage:= resources.Get $authorImage}}
{{ if and $authorImage (ne $authorImage.MediaType.SubType "svg") }} {{ if and $authorImage (ne $authorImage.MediaType.SubType "svg") }}
{{ $authorImage := $authorImage.Fit "120x120" }} {{ $authorImage = $authorImage.Fit "120x120" }}
{{ end }} {{ end }}
{{/* return the author image link */}} {{/* return the author image link */}}
+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" >
<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"> <div class="col-6 col-lg-4 p-2">
{{ $predefinedColor:= true}} {{ $predefinedColor:= true}}
{{ if hasPrefix .color "#"}} {{ if hasPrefix .color "#"}}
@@ -5,17 +5,17 @@
<div class="dropdown languageSelector"> <div class="dropdown languageSelector">
<a class="btn dropdown-toggle" href="#" id="languageSelector" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <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 }}"> <img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/16.png" alt="{{ $countryCode }}">
{{ site.Language.LanguageName }} {{ site.Language.LanguageName }}
</a> </a>
<div class="dropdown-menu" aria-labelledby="languageSelector"> <div class="dropdown-menu" aria-labelledby="languageSelector">
{{ range .Translations }} {{ range .Translations }}
<a class="dropdown-item nav-link languages-item" href="{{ path.Join "/" (cond (eq .Language.Lang "en") "" .Language.Lang) $pageURL }}"> <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 }}"> <img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/24.png" alt="{{ $countryCode }}">
{{ .Language.LanguageName }} {{ .Language.LanguageName }}
</a> </a>
{{ end }} {{ end }}
</div> </div>
</div> </div>
@@ -5,17 +5,17 @@
<li class="nav-item dropdown"> <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"> <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 }} {{ $countryCode := partial "helpers/country-code.html" . }}
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/16.png" alt="{{ $countryCode }}"> <span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ site.Language.LanguageName }} {{ site.Language.LanguageName }}
</a> </a>
<div class="dropdown-menu" aria-labelledby="languageSelector"> <div class="dropdown-menu" aria-labelledby="languageSelector">
{{ range .Translations }} {{ range .Translations }}
<a class="dropdown-item nav-link languages-item" href="{{ path.Join "/" (cond (eq .Language.Lang "en") "" .Language.Lang) $pageURL }}"> <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 }}"> <span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ .Language.LanguageName }} {{ .Language.LanguageName }}
</a> </a>
{{ end }} {{ end }}
</div> </div>
</li> </li>
@@ -1,16 +1,16 @@
<li class="nav-item dropdown"> <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"> <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 }} {{ $countryCode := partial "helpers/country-code.html" . }}
<img class="flag" src="https://www.countryflags.io/{{ $countryCode }}/flat/16.png" alt="{{ $countryCode }}"> <span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ site.Language.LanguageName }} {{ site.Language.LanguageName }}
</a> </a>
<div class="dropdown-menu" aria-labelledby="languageSelector"> <div class="dropdown-menu" aria-labelledby="languageSelector">
{{ range site.Home.AllTranslations }} {{ range site.Home.AllTranslations }}
<a class="dropdown-item nav-link languages-item" href="{{ .RelPermalink }}"> <a class="dropdown-item nav-link languages-item" href="{{ .RelPermalink }}">
{{ $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 }}"> <span class="flag-icon flag-icon-{{$countryCode}}"></span>
{{ .Language.LanguageName }} {{ .Language.LanguageName }}
</a> </a>
{{ end }} {{ end }}
</div> </div>
</li> </li>
+25 -16
View File
@@ -1,28 +1,31 @@
{{/* default logos */}} {{/* by default, don't use any logo */}}
{{ $mainLogo := "/images/main-logo.png" }} {{ $mainLogo := "" }}
{{ $invertedLogo := "/images/inverted-logo.png" }} {{ $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 }} {{ if site.Params.logo.main }}
{{ $mainLogo = site.Params.logo.main }} {{ $mainLogo = site.Params.logo.main }}
{{ end }} {{ end }}
{{ if site.Params.logo.inverted }} {{ if site.Params.logo.inverted }}
{{ $invertedLogo = site.Params.logo.inverted }} {{ $invertedLogo = site.Params.logo.inverted }}
{{ end }} {{ end }}
{{/* resize the logos. don't resize svg because it is not supported */}} {{/* resize the logos. don't resize svg because it is not supported */}}
{{ $mainLogo := resources.Get $mainLogo}} {{ if $mainLogo }}
{{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }} {{ $mainLogo = resources.Get $mainLogo}}
{{ $mainLogo = $mainLogo.Resize "42x" }} {{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }}
{{ $mainLogo = $mainLogo.Resize "42x" }}
{{ end }}
{{ $mainLogo = $mainLogo.RelPermalink}}
{{ end }} {{ end }}
{{ $mainLogo = $mainLogo.RelPermalink}}
{{ $invertedLogo := resources.Get $invertedLogo}} {{ if $invertedLogo }}
{{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg") }} {{ $invertedLogo = resources.Get $invertedLogo}}
{{ $invertedLogo = $invertedLogo.Resize "42x" }} {{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg")}}
{{ $invertedLogo = $invertedLogo.Resize "42x" }}
{{ end }}
{{ $invertedLogo = $invertedLogo.RelPermalink}}
{{ end }} {{ end }}
{{ $invertedLogo = $invertedLogo.RelPermalink}}
<nav class="navbar navbar-expand-xl top-navbar final-navbar shadow"> <nav class="navbar navbar-expand-xl top-navbar final-navbar shadow">
<div class="container"> <div class="container">
@@ -30,7 +33,9 @@
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
</button> </button>
<a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}"> <a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}">
<img src="{{ $mainLogo }}" alt="Logo"> {{ if $mainLogo }}
<img src="{{ $mainLogo }}" alt="Logo">
{{ end }}
{{- site.Title -}} {{- site.Title -}}
</a> </a>
<button class="navbar-toggler navbar-light" id="toc-toggler" type="button" onclick="toggleTOC()"> <button class="navbar-toggler navbar-light" id="toc-toggler" type="button" onclick="toggleTOC()">
@@ -46,6 +51,10 @@
</div> </div>
</div> </div>
<!-- Store the logo information in a hidden img for the JS --> <!-- Store the logo information in a hidden img for the JS -->
<img src="{{ $mainLogo }}" class="d-none" id="main-logo" alt="Logo"> {{ if $mainLogo }}
<img src="{{ $invertedLogo }}" class="d-none" id="inverted-logo" alt="Inverted Logo"> <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> </nav>
+43 -23
View File
@@ -1,8 +1,17 @@
{{/* default logos */}} {{/* variables for enabling/disabling various features */}}
{{ $mainLogo := "/images/main-logo.png" }} {{ $blogEnabled := site.Params.features.blog.enable | default false }}
{{ $invertedLogo := "/images/inverted-logo.png" }} {{ $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 }} {{ if site.Params.logo.main }}
{{ $mainLogo = site.Params.logo.main }} {{ $mainLogo = site.Params.logo.main }}
{{ end }} {{ end }}
@@ -11,17 +20,21 @@
{{ end }} {{ end }}
{{/* resize the logos. don't resize svg because it is not supported */}} {{/* resize the logos. don't resize svg because it is not supported */}}
{{ $mainLogo := resources.Get $mainLogo}} {{ if $mainLogo }}
{{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }} {{ $mainLogo = resources.Get $mainLogo}}
{{ $mainLogo = $mainLogo.Resize "42x" }} {{ if and $mainLogo (ne $mainLogo.MediaType.SubType "svg") }}
{{ $mainLogo = $mainLogo.Resize "42x" }}
{{ end }}
{{ $mainLogo = $mainLogo.RelPermalink}}
{{ end }} {{ end }}
{{ $mainLogo = $mainLogo.RelPermalink}}
{{ $invertedLogo := resources.Get $invertedLogo}} {{ if $invertedLogo }}
{{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg")}} {{ $invertedLogo = resources.Get $invertedLogo}}
{{ $invertedLogo = $invertedLogo.Resize "42x" }} {{ if and $invertedLogo (ne $invertedLogo.MediaType.SubType "svg")}}
{{ $invertedLogo = $invertedLogo.Resize "42x" }}
{{ end }}
{{ $invertedLogo = $invertedLogo.RelPermalink}}
{{ end }} {{ end }}
{{ $invertedLogo = $invertedLogo.RelPermalink}}
{{ $customMenus := site.Params.customMenus }} {{ $customMenus := site.Params.customMenus }}
{{ if (index site.Data site.Language.Lang).site.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"> <nav class="navbar navbar-expand-xl top-navbar initial-navbar" id="top-navbar">
<div class="container"> <div class="container">
<a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}"> <a class="navbar-brand" href="{{ site.BaseURL | relLangURL }}">
<img src="{{ $invertedLogo }}" id="logo" alt="Logo"> {{ if $invertedLogo }}
<img src="{{ $invertedLogo }}" id="logo" alt="Logo">
{{ end }}
{{- site.Title -}} {{- site.Title -}}
</a> </a>
<button <button
@@ -45,6 +60,7 @@
type="button" type="button"
data-toggle="collapse" data-toggle="collapse"
data-target="#top-nav-items" data-target="#top-nav-items"
aria-label="menu"
> >
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
</button> </button>
@@ -83,20 +99,20 @@
</li> </li>
{{ end }} {{ end }}
{{- end }} {{- end }}
{{ $hasCustomMenus:= false }} {{ $shouldAddSeparator:= partial "helpers/add-navbar-separator.html" . }}
{{ if $customMenus }} {{ if $shouldAddSeparator }}
{{ if gt (len $customMenus) 0 }}
{{ $hasCustomMenus = true }}
{{ end }}
{{ end }}
{{ if (or site.Params.enableBlogPost $hasCustomMenus) }}
<div class="dropdown-divider" id="top-navbar-divider"></div> <div class="dropdown-divider" id="top-navbar-divider"></div>
{{ end }} {{ end }}
{{ if site.Params.enableBlogPost }} {{ if $blogEnabled }}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="blog-link" href="{{ "/posts" | relLangURL }}">{{ i18n "posts" }}</a> <a class="nav-link" id="blog-link" href="{{ "/posts" | relLangURL }}">{{ i18n "posts" }}</a>
</li> </li>
{{ end }} {{ end }}
{{ if $notesEnabled }}
<li class="nav-item">
<a class="nav-link" id="note-link" href="{{ "/notes" | relLangURL }}">{{ i18n "notes" }}</a>
</li>
{{ end }}
{{ range $customMenus }} {{ range $customMenus }}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{{ .url }}">{{ .name }}</a> <a class="nav-link" href="{{ .url }}">{{ .name }}</a>
@@ -109,6 +125,10 @@
</div> </div>
</div> </div>
<!-- Store the logo information in a hidden img for the JS --> <!-- Store the logo information in a hidden img for the JS -->
<img src="{{ $mainLogo }}" class="d-none" id="main-logo" alt="Logo"> {{ if $mainLogo }}
<img src="{{ $invertedLogo }}" class="d-none" id="inverted-logo" alt="Inverted Logo"> <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> </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"> <div class="row next-prev-navigator">
{{ $currentPage := . }} {{ if $prevPage }}
{{ range (where site.RegularPages.ByDate "Type" "in" site.Params.mainSections )}} <div class="col-md-6 previous-article">
{{ if eq .RelPermalink $currentPage.RelPermalink }} <a href="{{ $prevPage.RelPermalink }}" title="{{ $prevPage.Title }}" class="btn btn-outline-info">
{{ if .Next }} <div><i class="fas fa-chevron-circle-left"></i> {{ i18n "prev" }}</div>
{{ if (in site.Params.mainSections .Next.Type) }} <div class="next-prev-text">{{ $prevPage.Title }}</div>
<div class="col-md-6 previous-article"> </a>
<a href="{{.Next.RelPermalink}}" class="btn btn-outline-info"> </div>
<div><i class="fas fa-chevron-circle-left"></i> {{ i18n "prev" }}</div> {{ end }}
<div class="next-prev-text">{{ .Next.Title }}</div> {{ if $nextPage }}
{{ $columnWidth:="col-md-12" }}
{{ if $prevPage }}
{{ $columnWidth = "col-md-6" }}
{{ end}}
<div class="{{ $columnWidth }} next-article">
<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">{{ $nextPage.Title }}</div>
</a> </a>
</div> </div>
{{ end }}
{{ end }} {{ end }}
{{ if .Prev }}
{{ if (in site.Params.mainSections .Prev.Type) }}
{{ $columnWidth:="col-md-12" }}
{{ if .Next }}
{{ if (in site.Params.mainSections .Next.Type) }}
{{ $columnWidth = "col-md-6" }}
{{ end }}
{{ end}}
<div class="{{ $columnWidth }} next-article">
<a href="{{ .Prev.RelPermalink }}" 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>
</a>
</div>
{{ end }}
{{ end }}
{{ end }}
{{ end }}
</div> </div>
+1 -1
View File
@@ -17,6 +17,6 @@
</li> </li>
{{ else }} {{ else }}
<!-- No sub-tree. So, only add current entry --> <!-- 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 }}
{{ 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 type="text/javascript" src="{{ "/js/jquery-3.4.1.min.js" | relURL }}"></script>
<script src="{{ "/js/popper.min.js" | relURL }}"></script> <script type="text/javascript" src="{{ "/js/popper.min.js" | relURL }}"></script>
<script src="{{ "/js/bootstrap.min.js" | relURL }}"></script> <script type="text/javascript" src="{{ "/js/bootstrap.min.js" | relURL }}"></script>
<script src="{{ "/js/navbar.js" | relURL }}"></script> <script type="text/javascript" src="{{ "/js/navbar.js" | relURL }}"></script>
<script src="{{ "/js/main.js" | relURL }}"></script> <script type="text/javascript" src="{{ "/js/plyr.js" | relURL }}"></script>
<script type="text/javascript" src="{{ "/js/main.js" | relURL }}"></script>
+10 -5
View File
@@ -17,7 +17,7 @@
<h5 class="p-1"> <h5 class="p-1">
{{ .designation }} {{ .designation }}
{{ if .company }} {{ 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 }} {{ end }}
</h5> </h5>
{{ end }} {{ end }}
@@ -29,18 +29,18 @@
{{ range .socialLinks }} {{ range .socialLinks }}
<li> <li>
{{ if eq .name "Email" }} {{ 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" }} {{ 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 }} {{ 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 }} {{ end }}
</li> </li>
{{ end }} {{ end }}
</ul> </ul>
</div> </div>
{{ if .resume }} {{ if .resume }}
<a href="{{ .resume | relURL }}" target="#" <a href="{{ .resume | relURL }}" title="{{ i18n "resume"}}" target="#"
><button class="btn btn-dark">{{ i18n "resume"}}</button></a ><button class="btn btn-dark">{{ i18n "resume"}}</button></a
> >
{{ end }} {{ end }}
@@ -48,6 +48,11 @@
<!-- soft skills circular-progressbar --> <!-- soft skills circular-progressbar -->
<div class="col-sm-6 pt-5 pl-md-4 pl-sm-3 pt-sm-0"> <div class="col-sm-6 pt-5 pl-md-4 pl-sm-3 pt-sm-0">
<div class="row"> <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 }} {{ range .softSkills }}
{{ partial "misc/soft-skills.html" . }} {{ partial "misc/soft-skills.html" . }}
{{ end }} {{ end }}
+8 -4
View File
@@ -27,7 +27,7 @@
<div class="row"> <div class="row">
<div class="col-lg-10 col-md-8"> <div class="col-lg-10 col-md-8">
{{ if .institution.url }} {{ 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 }} {{ else }}
<h5>{{ .institution.name }}</h5> <h5>{{ .institution.name }}</h5>
{{ end }} {{ end }}
@@ -43,7 +43,11 @@
<h6 class="text-muted">{{i18n "publications"}}</h6> <h6 class="text-muted">{{i18n "publications"}}</h6>
<ul> <ul>
{{ range .publications }} {{ 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 }} {{ end }}
</ul> </ul>
</div> </div>
@@ -78,9 +82,9 @@
{{ end }} {{ end }}
{{ if gt (len .takenCourses.courses) 2 }} {{ 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 }}" <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 }}" <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 }} {{ end }}
</div> </div>
{{ end }} {{ end }}
+6 -2
View File
@@ -27,7 +27,7 @@
<div class="row"> <div class="row">
<div class="col-lg-10 col-md-8"> <div class="col-lg-10 col-md-8">
{{ if .institution.url }} {{ 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 }} {{ else }}
<h5>{{ .institution.name }}</h5> <h5>{{ .institution.name }}</h5>
{{ end }} {{ end }}
@@ -43,7 +43,11 @@
<h6 class="text-muted">{{ i18n "publications"}}</h6> <h6 class="text-muted">{{ i18n "publications"}}</h6>
<ul> <ul>
{{ range .publications }} {{ 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 }} {{ end }}
</ul> </ul>
</div> </div>
@@ -1,7 +1,7 @@
<div class="col-10 col-lg-8"> <div class="col-10 col-lg-8">
<div class="experience-entry-heading"> <div class="experience-entry-heading">
<!-- For multiple positions, give emphasis on the company name--> <!-- 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 --> <!-- 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}} {{ $oldestPosition := index (last 1 .positions) 0}}
@@ -3,7 +3,7 @@
{{ $position:= index .positions 0 }} {{ $position:= index .positions 0 }}
<!-- For single position, give emphasis on the designation--> <!-- For single position, give emphasis on the designation-->
<h5>{{ $position.designation }}</h5> <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 --> <!-- Add experience duration info -->
<p class="text-muted">{{ $position.start }} - {{ if $position.end }}{{ $position.end }}{{ else }}{{ i18n "present" }}{{ end }}, <p class="text-muted">{{ $position.start }} - {{ if $position.end }}{{ $position.end }}{{ else }}{{ i18n "present" }}{{ end }},
{{ .company.location }} {{ .company.location }}
+5 -2
View File
@@ -26,7 +26,7 @@
{{ $authorImage = $author.image }} {{ $authorImage = $author.image }}
{{ end }} {{ end }}
{{ $authorImage := resources.Get $authorImage }} {{ $authorImage := resources.Get $authorImage }}
{{ $authorImage := $authorImage.Fit "148x148" }} {{ $authorImage = $authorImage.Fit "148x148" }}
{{/* get file that matches the filename as specified as src="" in shortcode */}} {{/* get file that matches the filename as specified as src="" in shortcode */}}
{{ $src := resources.Get $backgroundImage }} {{ $src := resources.Get $backgroundImage }}
@@ -110,6 +110,9 @@
alt="Author Image" alt="Author Image"
/> />
<h1 class="greeting"> {{ $author.greeting }} {{ $name }}</h1> <h1 class="greeting"> {{ $author.greeting }} {{ $name }}</h1>
{{ if $author.subtitle }}
<h2 class="greeting-subtitle">{{ $author.subtitle }}</h2>
{{ end }}
<div class="typing-carousel"> <div class="typing-carousel">
<span id="ityped" class="ityped"></span> <span id="ityped" class="ityped"></span>
<span class="ityped-cursor"></span> <span class="ityped-cursor"></span>
@@ -127,7 +130,7 @@
{{ if .section.id }} {{ if .section.id }}
{{ $sectionID = .section.id }} {{ $sectionID = .section.id }}
{{ end }} {{ 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 }}
{{ end }} {{ end }}
</div> </div>
+7 -8
View File
@@ -1,11 +1,10 @@
<div class="note-card {{if .Get "size" }}{{.Get "size"}}-note{{end}}"> <div class="note-card {{if .Get "size" }}{{.Get "size"}}-note{{end}}">
<div class="card"> <div class="item">
<div class="card-header" style="background-color: {{ site.Params.notes.headerBackground | default "transparent" }};"> <h5 class="note-title"><span>{{ .Get "title" }}</span></h5>
<span class="note-title" style="color: {{ site.Params.notes.headerTextColor | default "#1c2d41" }};">{{.Get "title"}}</span> {{ range $idx, $val := split .Inner "---" }}
</div> <div class="card">
<div class="card-body">{{ .Inner | markdownify }}</div> <div class="card-body">{{ $val | markdownify }}</div>
{{ if .Get "footer" }} </div>
<div class="card-footer">{{ .Get "footer" }}</div> {{ end }}
{{end}}
</div> </div>
</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>
+808 -988
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", "homepage": "https://github.com/hossainemruz/toha#readme",
"devDependencies": { "devDependencies": {
"autoprefixer": "^9.8.6", "autoprefixer": "^10.2.6",
"postcss-cli": "^7.1.2" "postcss": "^8.3.5",
"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
+27
View File
@@ -168,6 +168,12 @@ img.right {
font-size: 10pt; font-size: 10pt;
} }
.flag-icon {
width: 16px !important;
margin-top: 3px;
margin-right: 3px;
}
/* ====== codeblocks ====== */ /* ====== codeblocks ====== */
table { table {
border-radius: 0.1rem; border-radius: 0.1rem;
@@ -333,6 +339,14 @@ mark {
background-color: #e5e9f2; background-color: #e5e9f2;
} }
.footer #disclaimer{
color: #8392a5 !important;
text-align: justify;
}
.footer #disclaimer>strong{
color: #c0ccda!important;
}
.footer #theme { .footer #theme {
color: #c0ccda; color: #c0ccda;
} }
@@ -418,16 +432,29 @@ mark {
code { code {
padding: 0px; padding: 0px;
} }
h1 {
font-size: 2.2rem;
}
} }
/* iPhoneX, iPhone 6,7,8 */ /* iPhoneX, iPhone 6,7,8 */
@media only screen and (max-width: 375px) { @media only screen and (max-width: 375px) {
h1 {
font-size: 2rem;
}
} }
/* Galaxy S5, Moto G4 */ /* Galaxy S5, Moto G4 */
@media only screen and (max-width: 360px) { @media only screen and (max-width: 360px) {
h1 {
font-size: 1.8rem;
}
} }
/* iPhone 5 or before */ /* iPhone 5 or before */
@media only screen and (max-width: 320px) { @media only screen and (max-width: 320px) {
h1 {
font-size: 1.5rem;
}
} }
+26 -7
View File
@@ -25,12 +25,16 @@
.note-card-holder{ .note-card-holder{
padding-top: 2rem; 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; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} } */
.note-card { .note-card {
align-self: flex-start; align-self: flex-start;
@@ -41,7 +45,22 @@
} }
.note-title{ .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{ .note-card .card-body{
@@ -53,7 +72,7 @@
border-radius: 3px; border-radius: 3px;
} }
.small-note{ /* .small-note{
max-width: 15rem; max-width: 15rem;
} }
@@ -65,7 +84,7 @@
max-width: 40rem; max-width: 40rem;
} }
.huge-note{} .huge-note{} */
.note-badge{ .note-badge{
font-size: 10pt; font-size: 10pt;
@@ -146,8 +165,8 @@
transition: all ease-out 0.3s; transition: all ease-out 0.3s;
} }
.content-section.hide .note-card-holder .note-card { .content-section.hide .note-card-holder{
max-width: 100%; grid-template-columns: repeat(auto-fill, minmax(30rem,1fr));
transition: all ease-out 0.3s; transition: all ease-out 0.3s;
} }
} }
-1
View File
@@ -37,7 +37,6 @@ body {
} }
.toc-holder { .toc-holder {
position: -webkit-sticky;
position: sticky; position: sticky;
top: 4.5rem; top: 4.5rem;
overflow-x: hidden; overflow-x: hidden;
-3
View File
@@ -8,7 +8,6 @@
.sidebar-holder { .sidebar-holder {
top: 2.5rem; top: 2.5rem;
position: -webkit-sticky;
position: sticky; position: sticky;
background-color: #f9fafc; background-color: #f9fafc;
height: 100vh; height: 100vh;
@@ -192,7 +191,6 @@ a.focused {
transition: all ease-out 0.3s; transition: all ease-out 0.3s;
} }
.sidebar-holder { .sidebar-holder {
position: -webkit-sticky;
position: sticky; position: sticky;
top: 2.5rem; top: 2.5rem;
width: 100%; width: 100%;
@@ -222,7 +220,6 @@ a.focused {
transition: all ease-out 0.3s; transition: all ease-out 0.3s;
} }
.sidebar-holder { .sidebar-holder {
position: -webkit-sticky;
position: sticky; position: sticky;
top: 2.5rem; top: 2.5rem;
width: 100%; width: 100%;
File diff suppressed because one or more lines are too long
+21
View File
@@ -496,11 +496,24 @@
.about-section.container { .about-section.container {
max-width: 100%; max-width: 100%;
} }
.circular-progress {
width: 135px;
height: 135px;
}
} }
/* Small devices (landscape phones, 576px and up) */ /* Small devices (landscape phones, 576px and up) */
@media only screen and (max-width: 576px) { @media only screen and (max-width: 576px) {
.circular-progress {
width: 150px;
height: 150px;
}
.circular-progress .circular-progress-value {
font-size: 1rem;
}
} }
/* iPhoneX, iPhone 6,7,8 */ /* iPhoneX, iPhone 6,7,8 */
@@ -513,4 +526,12 @@
/* iPhone 5 or before */ /* iPhone 5 or before */
@media only screen and (max-width: 320px) { @media only screen and (max-width: 320px) {
.col-6 {
flex: auto;
max-width: 100%;
}
.social-link {
flex-wrap: wrap;
}
} }
+1 -1
View File
@@ -45,7 +45,7 @@
margin-bottom: 10px; margin-bottom: 10px;
} }
.home .greeting { .home .greeting, .home .greeting-subtitle {
color: #f9fafc; color: #f9fafc;
} }
+2 -1
View File
@@ -19,6 +19,7 @@
.skills-section .card { .skills-section .card {
margin-top: 0.5rem; margin-top: 0.5rem;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
height: 100%;
} }
.skills-section .card .card-body { .skills-section .card .card-body {
@@ -57,7 +58,7 @@
padding-right: 0; padding-right: 0;
} }
.skills-section .container { .skills-section .container {
max-width: 100%; max-width: 95%;
} }
} }
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 32 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ae" viewBox="0 0 640 480"><path fill="#00732f" d="M0 0h640v160H0z"/><path fill="#fff" d="M0 160h640v160H0z"/><path d="M0 320h640v160H0z"/><path fill="red" d="M0 0h220v480H0z"/></svg>

After

Width:  |  Height:  |  Size: 240 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ag" viewBox="0 0 640 480"><defs><clipPath id="ag-a"><path fill-opacity=".7" d="M-79.7 0H603v512H-79.7z"/></clipPath></defs><g fill-rule="evenodd" clip-path="url(#ag-a)" transform="translate(74.7) scale(.9375)"><path fill="#fff" d="M-120 0h763.3v511.5H-120z"/><path d="M-118.3.6h760.9v216.1h-761z"/><path fill="#0061ff" d="M21.3 203.2h505V317h-505z"/><path fill="#e20000" d="M642.8 1.8V512H262L642.8 1.7zm-761.5 0V512H262L-118.7 1.7z"/><path fill="#ffd600" d="M440.4 203.3L364 184l64.9-49-79.7 11.4 41-69.5-70.7 41L332.3 37l-47.9 63.8-19.3-74-21.7 76.3-47.8-65 13.7 83.2L138.5 78l41 69.5-77.4-12.5 63.8 47.8L86 203.3h354.3z"/></g></svg>

After

Width:  |  Height:  |  Size: 693 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 45 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-al" viewBox="0 0 640 480"><path fill="#e41e20" d="M0 0h640v480H0z"/><path id="a" d="M272 93.3c-4.6 0-12.3 1.5-12.2 5-13-2.1-14.3 3.2-13.5 8 1.2-1.9 2.7-3 3.9-3.1 1.7-.3 3.5.3 5.4 1.4a21.6 21.6 0 014.8 4.1c-4.6 1.1-8.2.4-11.8-.2a16.5 16.5 0 01-5.7-2.4c-1.5-1-2-2-4.3-4.3-2.7-2.8-5.6-2-4.7 2.3 2.1 4 5.6 5.8 10 6.6 2.1.3 5.3 1 8.9 1 3.6 0 7.6-.5 9.8 0-1.3.8-2.8 2.3-5.8 2.8-3 .6-7.5-1.8-10.3-2.4.3 2.3 3.3 4.5 9.1 5.7 9.6 2 17.5 3.6 22.8 6.5a37.3 37.3 0 0110.9 9.2c4.7 5.5 5 9.8 5.2 10.8 1 8.8-2.1 13.8-7.9 15.4-2.8.7-8-.7-9.8-2.9-2-2.2-3.7-6-3.2-12 .5-2.2 3.1-8.3.9-9.5a273.7 273.7 0 00-32.3-15.1c-2.5-1-4.5 2.4-5.3 3.8a50.2 50.2 0 01-36-23.7c-4.2-7.6-11.3 0-10.1 7.3 1.9 8 8 13.8 15.4 18 7.5 4.1 17 8.2 26.5 8 5.2 1 5.1 7.6-1 8.9-12.1 0-21.8-.2-30.9-9-6.9-6.3-10.7 1.2-8.8 5.4 3.4 13.1 22.1 16.8 41 12.6 7.4-1.2 3 6.6 1 6.7-8 5.7-22.1 11.2-34.6 0-5.7-4.4-9.6-.8-7.4 5.5 5.5 16.5 26.7 13 41.2 5 3.7-2.1 7.1 2.7 2.6 6.4-18.1 12.6-27.1 12.8-35.3 8-10.2-4.1-11 7.2-5 11 6.7 4 23.8 1 36.4-7 5.4-4 5.6 2.3 2.2 4.8-14.9 12.9-20.8 16.3-36.3 14.2-7.7-.6-7.6 8.9-1.6 12.6 8.3 5.1 24.5-3.3 37-13.8 5.3-2.8 6.2 1.8 3.6 7.3a53.9 53.9 0 01-21.8 18c-7 2.7-13.6 2.3-18.3.7-5.8-2-6.5 4-3.3 9.4 1.9 3.3 9.8 4.3 18.4 1.3 8.6-3 17.8-10.2 24.1-18.5 5.5-4.9 4.9 1.6 2.3 6.2-12.6 20-24.2 27.4-39.5 26.2-6.7-1.2-8.3 4-4 9 7.6 6.2 17 6 25.4-.2 7.3-7 21.4-22.4 28.8-30.6 5.2-4.1 6.9 0 5.3 8.4-1.4 4.8-4.8 10-14.3 13.6-6.5 3.7-1.6 8.8 3.2 9 2.7 0 8.1-3.2 12.3-7.8 5.4-6.2 5.8-10.3 8.8-19.9 2.8-4.6 7.9-2.4 7.9 2.4-2.5 9.6-4.5 11.3-9.5 15.2-4.7 4.5 3.3 6 6 4.1 7.8-5.2 10.6-12 13.2-18.2 2-4.4 7.4-2.3 4.8 5-6 17.4-16 24.2-33.3 27.8-1.7.3-2.8 1.3-2.2 3.3l7 7c-10.7 3.2-19.4 5-30.2 8l-14.8-9.8c-1.3-3.2-2-8.2-9.8-4.7-5.2-2.4-7.7-1.5-10.6 1 4.2 0 6 1.2 7.7 3.1 2.2 5.7 7.2 6.3 12.3 4.7 3.3 2.7 5 4.9 8.4 7.7l-16.7-.5c-6-6.3-10.6-6-14.8-1-3.3.5-4.6.5-6.8 4.4 3.4-1.4 5.6-1.8 7.1-.3 6.3 3.7 10.4 2.9 13.5 0l17.5 1.1c-2.2 2-5.2 3-7.5 4.8-9-2.6-13.8 1-15.4 8.3a17 17 0 00-1.2 9.3c.8-3 2.3-5.5 4.9-7 8 2 11-1.3 11.5-6.1 4-3.2 9.8-3.9 13.7-7.1 4.6 1.4 6.8 2.3 11.4 3.8 1.6 5 5.3 6.9 11.3 5.6 7 .2 5.8 3.2 6.4 5.5 2-3.3 1.9-6.6-2.5-9.6-1.6-4.3-5.2-6.3-9.8-3.8-4.4-1.2-5.5-3-9.9-4.3 11-3.5 18.8-4.3 29.8-7.8l7.7 6.8c1.5.9 2.9 1.1 3.8 0 6.9-10 10-18.7 16.3-25.3 2.5-2.8 5.6-6.4 9-7.3 1.7-.5 3.8-.2 5.2 1.3 1.3 1.4 2.4 4.1 2 8.2-.7 5.7-2.1 7.6-3.7 11-1.7 3.5-3.6 5.6-5.7 8.3-4 5.3-9.4 8.4-12.6 10.5-6.4 4.1-9 2.3-14 2-6.4.7-8 3.8-2.8 8.1 4.8 2.6 9.2 2.9 12.8 2.2 3-.6 6.6-4.5 9.2-6.6 2.8-3.3 7.6.6 4.3 4.5-5.9 7-11.7 11.6-19 11.5-7.7 1-6.2 5.3-1.2 7.4 9.2 3.7 17.4-3.3 21.6-8 3.2-3.5 5.5-3.6 5 1.9-3.3 9.9-7.6 13.7-14.8 14.2-5.8-.6-5.9 4-1.6 7 9.6 6.6 16.6-4.8 19.9-11.6 2.3-6.2 5.9-3.3 6.3 1.8 0 6.9-3 12.4-11.3 19.4 6.3 10.1 13.7 20.4 20 30.5l19.2-214L320 139c-2-1.8-8.8-9.8-10.5-11-.7-.6-1-1-.1-1.4.9-.4 3-.8 4.5-1-4-4.1-7.6-5.4-15.3-7.6 1.9-.8 3.7-.4 9.3-.6a30.2 30.2 0 00-13.5-10.2c4.2-3 5-3.2 9.2-6.7a86.3 86.3 0 01-19.5-3.8 37.4 37.4 0 00-12-3.4zm.8 8.4c3.8 0 6.1 1.3 6.1 2.9 0 1.6-2.3 2.9-6.1 2.9s-6.2-1.5-6.2-3c0-1.6 2.4-2.8 6.2-2.8z"/><use width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)" xlink:href="#a"/></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-am" viewBox="0 0 640 480"><path fill="red" d="M0 0h640v160H0z"/><path fill="#00f" d="M0 160h640v160H0z"/><path fill="orange" d="M0 320h640v160H0z"/></svg>

After

Width:  |  Height:  |  Size: 212 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ao" viewBox="0 0 640 480"><g fill-rule="evenodd" stroke-width="1pt"><path fill="red" d="M0 0h640v243.6H0z"/><path d="M0 236.4h640V480H0z"/></g><path fill="#ffec00" fill-rule="evenodd" d="M228.7 148.2c165.2 43.3 59 255.6-71.3 167.2l-8.8 13.6c76.7 54.6 152.6 10.6 174-46.4 22.2-58.8-7.6-141.5-92.6-150l-1.3 15.6z"/><path fill="#ffec00" fill-rule="evenodd" d="M170 330.8l21.7 10.1-10.2 21.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9l22.3-8.6 8.7 22.3-22.3 8.7zm-26-29.1l17.1-16.9 16.9 17-17 16.9zm-26.2-39.8l22.4 8.4-8.5 22.4-22.4-8.4zM316 270l22.3 8.9-9 22.2-22.2-8.9zm-69.9 70l22-9.3 9.5 22-22 9.4zm-39.5 2.8h24v24h-24zm41.3-116l-20.3-15-20.3 14.6 8-23-20.3-15h24.5l8.5-22.6 7.8 22.7 24.7-.3-19.6 15.3 7 23.4z"/><path fill="#fe0" fill-rule="evenodd" d="M336 346.4c-1.2.4-6.2 12.4-9.7 18.2l3.7 1c13.6 4.8 20.4 9.2 26.2 17.5a7.9 7.9 0 0010.2.7s2.8-1 6.4-5c3-4.5 2.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3z"/><path fill-rule="evenodd" d="M365.3 372.8a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.6 0zm-21.4-13.6a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0zm10.9 7a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0z"/><path fill="#fe0" fill-rule="evenodd" d="M324.5 363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9 1.2-2.3 2.8-1.8 3.4-.5 1.5 8 6 16.3 11.4 21.5A5288 5288 0 01334 345.6c-3.4 5.8-6 12.3-9.5 18z"/><path fill="#ffec00" fill-rule="evenodd" d="M297.2 305.5l17.8 16-16 17.8-17.8-16z"/><path fill="none" stroke="#000" stroke-width="3" d="M331.5 348.8l-125-75.5m109.6 58.1L274 304.1m18.2 42.7L249.3 322"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

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