22 Commits

Author SHA1 Message Date
Bernat Borràs Civil 1ec4cd2688 Add tags in post cards from search results (#895)
* Add tags in post cards from search results

* Use on_card parameter to decide to show the cards or not

* Fix search cards height

* Minor fix

* Fix null tags

* Fix CSS not applied properly in search page

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

---------

Signed-off-by: hossainemruz <hossainemruz@gmail.com>
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2024-02-23 23:37:35 +06:00
Bernat Borràs Civil 9f5a44e24e Fix logos (#898) 2024-02-19 15:11:18 +06:00
Bernat Borràs Civil 32e95a572f Update theme.toml for hugoThemesSiteBuilder (#896)
* Update theme.toml

* Add min hugo version
2024-02-16 20:34:13 +06:00
Bernat Borràs Civil b8bee52c7c Fix hovering tags in posts (#894) 2024-02-14 02:01:20 +06:00
Bernat Borràs Civil 35bca71987 Add spacing between project tags (#892)
* Add spacing between project tags

* Fix
2024-02-13 01:35:55 +06:00
Bernat Borràs Civil cbdb07dbf1 Add custom subsections in education (#888)
* Add custom subsections in education

* Apply requested changes
2024-02-12 23:24:21 +06:00
Bernat Borràs Civil 970656789c Fix anchors in post cards (#891)
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2024-02-12 13:31:09 +06:00
Bernat Borràs Civil df78c743c8 Fix Tags sidebar font color (#890)
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2024-02-12 13:29:12 +06:00
Bernat Borràs Civil 96768ade2d Add dutch in Readme (#883)
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2024-02-12 13:27:15 +06:00
Bernat Borràs Civil 11bddc36a2 Add company and school logos (#882)
* Add education logo

* Fix width

* Update css

* Add logos to company

* Add multiple positions

* Update Styling

* Strenghten poistion title

* Improve timeline

* Fix missing curly braces

* Fix curly braces

* Add space

* Add space between position and date

* Make single and multiple experiences more consistent

* Remove single-position layout

* Remove duplicated comment
2024-02-12 13:26:12 +06:00
Emruz Hossain e8b0cfb32e Fix active menu on sidebar not getting highlighted in dark mode (#881)
Signed-off-by: Emruz Hossain <emruz.hossain@qdrant.com>
2024-02-02 18:31:03 +00:00
Emruz Hossain de1cee3951 Fix replace directive in local development guide (#880) 2024-02-02 17:02:12 +00:00
Bernat Borràs Civil 3283a3b844 Add param profile to hide author in post (#870)
* Add param profile

* Fix date duplicated when profile not set

* Change param localization

---------

Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2024-02-02 22:57:18 +06:00
Nico 3d1b8f830f Changing the translation of 'Notes' (#875)
Changed the translation for the word "Notes" from "Remarques" to "Notes" (as in English).

Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2024-02-02 16:18:06 +00:00
dependabot[bot] 5159cdf6bb Bump peter-evans/create-pull-request from 5 to 6 (#877)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2024-02-02 11:46:19 +00:00
dependabot[bot] b3aae4de33 Bump release-drafter/release-drafter from 5.25.0 to 6.0.0 (#879)
Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 5.25.0 to 6.0.0.
- [Release notes](https://github.com/release-drafter/release-drafter/releases)
- [Commits](https://github.com/release-drafter/release-drafter/compare/v5.25.0...v6.0.0)

---
updated-dependencies:
- dependency-name: release-drafter/release-drafter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-02 11:45:20 +00:00
Emruz Hossain c74672c1c1 Update local development guide (#869)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2024-01-24 10:06:35 +06:00
Bernat Borràs Civil def5ce662e Add select maximum number of posts per page (#866)
* Add select maximum number of posts per page

* Rename ans simplify posts to show

* Fix
2024-01-19 19:00:11 +00:00
Dieter Vansteenwegen 1aa27921d0 Add Researchgate as contact option (#864) 2024-01-17 18:56:07 +06:00
Emruz Hossain 2c5cbeee94 Update README.md (#863) 2024-01-14 13:43:18 +06:00
hossainemruz b9713b5461 Add link to migration guide
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2024-01-13 19:09:23 +06:00
Emruz Hossain 0c0072eac1 Add hugoVersion info in config.yaml (#861)
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2024-01-07 02:08:05 +06:00
31 changed files with 298 additions and 194 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ jobs:
npm run autoprefixer npm run autoprefixer
- name: Create Pull Request - name: Create Pull Request
uses: peter-evans/create-pull-request@v5 uses: peter-evans/create-pull-request@v6
with: with:
branch: autoprefixer branch: autoprefixer
branch-suffix: timestamp branch-suffix: timestamp
+1 -1
View File
@@ -10,6 +10,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
# Create/Update release draft # Create/Update release draft
- uses: release-drafter/release-drafter@v5.25.0 - uses: release-drafter/release-drafter@v6.0.0
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-32
View File
@@ -90,35 +90,3 @@ jobs:
- uses: actions/checkout@v4.1.1 - uses: actions/checkout@v4.1.1
# run markdown linter # run markdown linter
- uses: gaurav-nelson/github-action-markdown-link-check@1.0.15 - uses: gaurav-nelson/github-action-markdown-link-check@1.0.15
proof-html:
runs-on: ubuntu-latest
steps:
# checkout to the commit that has been pushed
- uses: actions/checkout@v4.1.1
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install node modules
run: npm install
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2.6.0
with:
hugo-version: 'latest'
extended: true
- name: Build
run: |
cd exampleSite
hugo --minify
# Run HTML Proofer
- uses: anishathalye/proof-html@v2.1.2
with:
directory: exampleSite/public
enforce_https: false
ignore_url: "#"
+66 -24
View File
@@ -1,3 +1,6 @@
> [!IMPORTANT]
> If you are migrating from v3 (`git submodule` based) theme to v4 (`hugo modules` based) theme, please read this [migration guide](https://toha-guides.netlify.app/posts/update-v3-to-v4/).
# 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) [![Netlify Status](https://api.netlify.com/api/v1/badges/b1b93b02-f278-440b-ae1b-304e9f4c4ab5/deploy-status)](https://app.netlify.com/sites/toha/deploys)
@@ -64,6 +67,7 @@ For more details about the features please visit [here](https://toha-guides.netl
- Português Europeu - Português Europeu
- Català - Català
- Português Brasileiro - Português Brasileiro
- Nederlands
To know more about how to translate your site, please visit [here](https://toha-guides.netlify.app/posts/translation/). Follow, the data and post format from this [example site](https://hugo-toha.github.io). To know more about how to translate your site, please visit [here](https://toha-guides.netlify.app/posts/translation/). Follow, the data and post format from this [example site](https://hugo-toha.github.io).
@@ -185,34 +189,72 @@ For local development, you can make changes in the theme submodule and test the
At first, fork [this repo](https://github.com/hugo-toha/toha). Then, follow the following steps to use the forked theme for local developments, At first, fork [this repo](https://github.com/hugo-toha/toha). Then, follow the following steps to use the forked theme for local developments,
**Using the forked theme in your own site:** #### Running the forked theme against the example site
If you want to run your local development against your own site, follow the following steps:
```bash
# add the original theme as a submodule of your site if you haven't done already
$ git submodule add https://github.com/hugo-toha/toha.git themes/toha
# navigate into the toha theme folder
$ cd themes/toha
# add your own fork as a remote
$ git remote add my-fork https://github.com/<your-github-user>/toha
# create a new branch for your changes
$ git checkout -b my-feature-branch
```
**Using the forked theme in the example site:**
If your want to run your local development against this [example site](https://github.com/hugo-toha/hugo-toha.github.io), follow the following steps: If your want to run your local development against this [example site](https://github.com/hugo-toha/hugo-toha.github.io), follow the following steps:
```bash ```bash
# clone the example site along with the submodules # go to exampleSite directory
$ git clone git@github.com:hugo-toha/hugo-toha.github.io.git --recursive $ cd exampleSite
# navigate into the toha theme folder # install hugo modules
$ cd themes/toha $ hugo mod tidy
# add your own fork as a remote # install dependencies
$ git remote add my-fork https://github.com/<your-github-user>/toha $ hugo mod npm pack
# create a new branch for your changes $ npm install
$ git checkout -b my-feature-branch # run the example site locally
$ hugo server -w
```
Now, you can make change in the theme and they will be reflected immediately on the running site. If you need to change any configuration, you can do that in the `config.yaml` file inside `exampleSite` folder. If you need to add any content or data, you can create the respective folder inside `exampleSite` directory and add your desired content or data there.
#### Running the forked theme against your own site
If you want to run your local development against your own site, follow the following steps:
**Replace the theme module:**
Open your site's `go.mod` file and replace the `github.com/hugo-toha/toha/v4` with your forked repo's path. For example, if your forked repo is `github.com/<your-github-user>/toha`, then replace the `github.com/hugo-toha/toha/v4` with `github.com/<your-github-user>/toha/v4`.
```go
module github.com/hugo-toha/hugo-toha.github.io
go 1.19
require github.com/hugo-toha/toha/v4 v4.0.1-0.20231229170427-d3968ca711ef // indirect
replace(
github.com/hugo-toha/toha/v4 => github.com/<your-github-user>/toha/v4 <git branch>
)
```
For interactive development, you can replace the theme with your locally cloned fork. For example, if you have cloned your fork in `/home/my-projects/toha`, then replace the `github.com/hugo-toha/toha/v4` with `/home/my-projects/toha`.
```go
module github.com/hugo-toha/hugo-toha.github.io
go 1.19
require github.com/hugo-toha/toha/v4 v4.0.1-0.20231229170427-d3968ca711ef // indirect
replace(
github.com/hugo-toha/toha/v4 => /home/my-projects/toha
)
```
**Update dependencies:**
```bash
# update hugo modules
$ hugo mod tidy
# install dependencies
$ hugo mod npm pack
$ npm install
```
**Run your site locally:**
```bash
$ hugo server -w
``` ```
From there you can make changes to the source code of the theme while testing with your running Hugo site or the example site. From there you can make changes to the source code of the theme while testing with your running Hugo site or the example site.
+8 -1
View File
@@ -79,6 +79,13 @@ window.addEventListener('DOMContentLoaded', () => {
// pull template from hugo template definition // pull template from hugo template definition
const templateDefinition = document.getElementById('search-result-template').innerHTML const templateDefinition = document.getElementById('search-result-template').innerHTML
// replace values // replace values
function adaptTags() {
const tags = value.item.tags;
let string = '';
if (tags) tags.forEach((t) => {string += '<li class="rounded"><a href="/tags/' + t.toLowerCase() + '/" class="btn btn-sm btn-info">' + t + "</a></li>"});
return string;
}
const output = render(templateDefinition, { const output = render(templateDefinition, {
key, key,
title: value.item.title, title: value.item.title,
@@ -86,7 +93,7 @@ window.addEventListener('DOMContentLoaded', () => {
date: value.item.date, date: value.item.date,
summary: value.item.summary, summary: value.item.summary,
link: value.item.permalink, link: value.item.permalink,
tags: value.item.tags, tags: adaptTags(),
categories: value.item.categories, categories: value.item.categories,
snippet snippet
}) })
-13
View File
@@ -56,14 +56,12 @@
font-size: 0.5em; font-size: 0.5em;
list-style-type: none; list-style-type: none;
display: inline-block; display: inline-block;
background: get-light-color('accent-color');
margin-left: 0.2em; margin-left: 0.2em;
margin-right: 0.2em; margin-right: 0.2em;
margin-top: 0.6em; margin-top: 0.6em;
margin-bottom: 0.6em; margin-bottom: 0.6em;
} }
a { a {
color: get-light-color('text-over-accent-color');
text-decoration: none !important; text-decoration: none !important;
} }
} }
@@ -143,17 +141,6 @@ html[data-theme='dark'] {
color: get-dark-color('muted-text-color'); color: get-dark-color('muted-text-color');
} }
.tags {
li {
background: get-dark-color('accent-color');
a {
background-color: get-dark-color('bg-card');
border: 1px solid get-dark-color('muted-text-color');
color: get-dark-color('text-over-accent-color');
}
}
}
.icon-button { .icon-button {
background-color: get-dark-color('muted-text-color'); background-color: get-dark-color('muted-text-color');
color: get-dark-color('text-over-accent-color') !important; color: get-dark-color('text-over-accent-color') !important;
+10
View File
@@ -46,3 +46,13 @@ html[data-theme='dark'] {
.svg-inverted { .svg-inverted {
filter: invert(1); filter: invert(1);
} }
.logo-holder {
height: 64px;
margin-bottom: 1em;
}
.company-logo {
max-height: 100%;
width: auto;
}
+15 -3
View File
@@ -10,10 +10,11 @@ a {
} }
} }
.list-link { .list-link, .taxonomy-term {
text-decoration: none !important; text-decoration: none !important;
color: get-light-color('text-color'); color: get-light-color('text-color');
@include transition(); @include transition();
&.active { &.active {
display: inline; display: inline;
color: get-light-color('accent-color'); color: get-light-color('accent-color');
@@ -29,6 +30,7 @@ a {
a.header-anchor { a.header-anchor {
text-decoration: none; text-decoration: none;
color: get-light-color('heading-color'); color: get-light-color('heading-color');
i, i,
svg { svg {
font-size: 10pt; font-size: 10pt;
@@ -36,12 +38,15 @@ a.header-anchor {
display: none; display: none;
margin-left: 0.5rem; margin-left: 0.5rem;
} }
&:hover { &:hover {
i, i,
svg { svg {
display: inline-block; display: inline-block;
} }
} }
code { code {
color: get-light-color('inline-code-color'); color: get-light-color('inline-code-color');
} }
@@ -54,24 +59,31 @@ a.header-anchor {
html[data-theme='dark'] { html[data-theme='dark'] {
a { a {
color: get-dark-color('accent-color'); color: get-dark-color('accent-color');
&:hover, &:hover,
&:focus { &:focus {
text-decoration: get-dark-color('hover-over-accent-color') underline; text-decoration: get-dark-color('hover-over-accent-color') underline;
color: get-dark-color('hover-over-accent-color'); color: get-dark-color('hover-over-accent-color');
} }
} }
.list-link {
.list-link, .taxonomy-term {
color: get-dark-color('text-color'); color: get-dark-color('text-color');
&:hover {
&:hover,
&.active {
color: get-dark-color('accent-color'); color: get-dark-color('accent-color');
} }
} }
a.header-anchor { a.header-anchor {
color: get-dark-color('heading-color'); color: get-dark-color('heading-color');
i, i,
svg { svg {
color: get-dark-color('text-color'); color: get-dark-color('text-color');
} }
code { code {
color: get-dark-color('inline-code-color'); color: get-dark-color('inline-code-color');
} }
+6
View File
@@ -129,6 +129,12 @@
margin-bottom: 0; margin-bottom: 0;
} }
} }
.custom-section {
.custom-content {
padding-bottom: 0.5em;
}
}
} }
} }
} }
+10
View File
@@ -92,6 +92,16 @@
} }
} }
.company-heading {
h5 {
display: inline;
margin-right: 0.25em;
}
p {
display: inline;
}
}
@include media('<=medium') { @include media('<=medium') {
.container { .container {
max-width: 100%; max-width: 100%;
+4
View File
@@ -35,6 +35,10 @@
.project-card-footer { .project-card-footer {
display: flex; display: flex;
.badge {
margin-left: 0.1em;
margin-right: 0.1em;
}
} }
.project-tags-holder { .project-tags-holder {
+3
View File
@@ -1,4 +1,7 @@
module: module:
hugoVersion:
min: "0.118.0"
extended: true
mounts: mounts:
- source: content - source: content
target: content target: content
+1
View File
@@ -98,6 +98,7 @@ params:
# Enable and configure blog posts # Enable and configure blog posts
blog: blog:
enable: true enable: true
showAuthor: true
# Share post on different social media # Share post on different social media
shareButtons: shareButtons:
facebook: true facebook: true
-2
View File
@@ -1,4 +1,2 @@
github.com/hugo-toha/hugo-toha.github.io v0.0.0-20221228191121-007f31838bd6 h1:TPFhOZAnuH4wjLIdzimswCRa2qCcc1teKVTatADJU2g=
github.com/hugo-toha/hugo-toha.github.io v0.0.0-20221228191121-007f31838bd6/go.mod h1:OMMaP9Hh9NsKd41lVIazBQRPa0s6Z57AfJoY3DcCNNY=
github.com/hugo-toha/hugo-toha.github.io v0.0.0-20231031082630-2c32a26d2207 h1:T71lEaGpHYpdy8yKM5vaVwm+CJGt8wjHvPgVM+GjCJM= github.com/hugo-toha/hugo-toha.github.io v0.0.0-20231031082630-2c32a26d2207 h1:T71lEaGpHYpdy8yKM5vaVwm+CJGt8wjHvPgVM+GjCJM=
github.com/hugo-toha/hugo-toha.github.io v0.0.0-20231031082630-2c32a26d2207/go.mod h1:aTn1lQX1rbcbfbwNuWHG/L5DPtD+bEzQro49QyFlbEg= github.com/hugo-toha/hugo-toha.github.io v0.0.0-20231031082630-2c32a26d2207/go.mod h1:aTn1lQX1rbcbfbwNuWHG/L5DPtD+bEzQro49QyFlbEg=
+1 -1
View File
@@ -117,7 +117,7 @@ other = "Suite"
other = "Afficher le certificat" other = "Afficher le certificat"
[notes] [notes]
other = "Remarques" other = "Notes"
[disclaimer_text] [disclaimer_text]
other = "Avis de responsabilité" other = "Avis de responsabilité"
+2 -1
View File
@@ -32,7 +32,8 @@
<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">
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }} {{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $paginator := .Paginate $posts 12 }} {{ $numShow := site.Params.features.pagination.maxPostsPerPage | default 12}}
{{ $paginator := .Paginate $posts $numShow }}
{{ range $paginator.Pages }} {{ range $paginator.Pages }}
{{ if .Layout }} {{ if .Layout }}
{{/* ignore the search.md file*/}} {{/* ignore the search.md file*/}}
+16 -4
View File
@@ -28,28 +28,40 @@
{{ end }} {{ end }}
{{ define "content" }} {{ define "content" }}
<script>
document.body.classList.replace('kind-page', 'kind-section');
</script>
<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">
<div id="search-results"> <div id="search-results" style="display: flex;">
<script id="search-result-template" type="text/x-js-template"> <script id="search-result-template" type="text/x-js-template">
<div class="post-card"> <div class="post-card">
<a href="${link}" class="post-card-link"> <div class="card">
<div class="card" style="min-height: 352px;"><a href="${link}" class="post-card-link">
<div class="card-head"> <div class="card-head">
<a href="${link}" class="post-card-link">
<img class="card-img-top" src="${hero}" alt="Card Heading Image"> <img class="card-img-top" src="${hero}" alt="Card Heading Image">
</a>
</div> </div>
<div class="card-body"> <div class="card-body">
<a href="${link}" class="post-card-link">
<h5 class="card-title">${title}</h5> <h5 class="card-title">${title}</h5>
<p class="card-text post-summary">${summary}</p> <p class="card-text post-summary">${summary}</p>
</a>
{{ if site.Params.features.tags.on_card }}
<div class="tags">
<ul style="padding-left: 0;">
${tags}
</ul>
</div>
{{ end }}
</div> </div>
<div class="card-footer"> <div class="card-footer">
<span class="float-left">${date}</span> <span class="float-left">${date}</span>
<a href="${link}" class="float-right btn btn-outline-info btn-sm">Read</a> <a href="${link}" class="float-right btn btn-outline-info btn-sm">Read</a>
</div> </div>
</div> </div>
</a>
</div> </div>
</script> </script>
+11
View File
@@ -36,15 +36,26 @@
<!--Content Start--> <!--Content Start-->
<div class="page-content"> <div class="page-content">
{{ if site.Params.features.blog.showAuthor | default true }}
<div class="author-profile ml-auto align-self-lg-center"> <div class="author-profile ml-auto align-self-lg-center">
<img class="rounded-circle" src='{{ partial "helpers/get-author-image.html" . }}' alt="Author Image"> <img class="rounded-circle" src='{{ partial "helpers/get-author-image.html" . }}' alt="Author Image">
<h5 class="author-name">{{ partial "helpers/get-author-name.html" . }}</h5> <h5 class="author-name">{{ partial "helpers/get-author-name.html" . }}</h5>
<p class="text-muted">{{ .Page.Date | time.Format ":date_full" }}{{ if site.Params.features.readingTime }} | {{ .ReadingTime }} {{i18n "minute" .ReadingTime }}{{ end }}</p> <p class="text-muted">{{ .Page.Date | time.Format ":date_full" }}{{ if site.Params.features.readingTime }} | {{ .ReadingTime }} {{i18n "minute" .ReadingTime }}{{ end }}</p>
</div> </div>
{{ else }}
<div style="margin-bottom: 80px;"></div>
{{ end }}
<div class="title"> <div class="title">
<h1>{{ .Page.Title }}</h1> <h1>{{ .Page.Title }}</h1>
</div> </div>
{{ if not (site.Params.features.blog.showAuthor | default true) }}
<div class="author-profile ml-auto align-self-lg-center">
<p class="text-muted">{{ .Page.Date | time.Format ":date_full" }}{{ if site.Params.features.readingTime }} | {{ .ReadingTime }} {{i18n "minute" .ReadingTime }}{{ end }}</p>
</div>
{{ end }}
{{ if site.Params.features.tags.enable }} {{ if site.Params.features.tags.enable }}
{{partial "misc/tags.html" .Params.tags }} {{partial "misc/tags.html" .Params.tags }}
{{ end }} {{ end }}
+2 -1
View File
@@ -33,7 +33,8 @@
<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">
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }} {{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $paginator := .Paginate $posts 12 }} {{ $numShow := site.Params.features.pagination.maxPostsPerPage | default 12}}
{{ $paginator := .Paginate $posts $numShow }}
{{ range $paginator.Pages }} {{ range $paginator.Pages }}
{{ if .Layout }} {{ if .Layout }}
{{/* ignore the search.md file*/}} {{/* ignore the search.md file*/}}
+4 -2
View File
@@ -1,12 +1,15 @@
<div class="post-card"> <div class="post-card">
<a href="{{ .RelPermalink | relLangURL }}" class="post-card-link">
<div class="card"> <div class="card">
<div class="card-head"> <div class="card-head">
<a href="{{ .RelPermalink | relLangURL }}" class="post-card-link">
<img class="card-img-top" src='{{ partial "helpers/get-hero.html" . }}' alt="Hero Image"> <img class="card-img-top" src='{{ partial "helpers/get-hero.html" . }}' alt="Hero Image">
</a>
</div> </div>
<div class="card-body"> <div class="card-body">
<a href="{{ .RelPermalink | relLangURL }}" class="post-card-link">
<h5 class="card-title">{{ .Title }}</h5> <h5 class="card-title">{{ .Title }}</h5>
<p class="card-text post-summary">{{ .Summary }}</p> <p class="card-text post-summary">{{ .Summary }}</p>
</a>
{{ if and site.Params.features.tags.enable site.Params.features.tags.on_card }} {{ if and site.Params.features.tags.enable site.Params.features.tags.on_card }}
{{ partial "misc/tags.html" .Params.tags }} {{ partial "misc/tags.html" .Params.tags }}
{{ end }} {{ end }}
@@ -20,5 +23,4 @@
class="float-right btn btn-outline-info btn-sm">{{ i18n "read" }}</a> class="float-right btn btn-outline-info btn-sm">{{ i18n "read" }}</a>
</div> </div>
</div> </div>
</a>
</div> </div>
+4
View File
@@ -115,6 +115,10 @@
<li><a href={{ printf "https://github.com/%s" $value }} target="_blank" rel="noopener"> <li><a href={{ printf "https://github.com/%s" $value }} target="_blank" rel="noopener">
<span><i class="fab fa-github"></i></span> <span>{{ $value }}</span> <span><i class="fab fa-github"></i></span> <span>{{ $value }}</span>
</a></li> </a></li>
{{ else if (eq $key "researchgate") }}
<li><a href={{ printf "https://www.researchgate.net/profile/%s" $value }} target="_blank" rel="noopener">
<span><i class="fab fa-researchgate"></i></span> <span>{{ $author.name }}</span>
</a></li>
{{ else if reflect.IsMap $value }} {{ else if reflect.IsMap $value }}
<li> <li>
{{ if (and (isset $value "url") (isset $value "icon"))}} {{ if (and (isset $value "url") (isset $value "icon"))}}
+1 -1
View File
@@ -2,7 +2,7 @@
<ul style="padding-left: 0;"> <ul style="padding-left: 0;">
{{ range . }} {{ range . }}
{{ $url:= printf "tags/%s/" . }} {{ $url:= printf "tags/%s/" . }}
<li class="rounded"><a href="{{ $url | urlize | relLangURL }}" class="btn, btn-sm">{{ . }}</a></li> <li class="rounded"><a href="{{ $url | urlize | relLangURL }}" class="btn btn-sm btn-info">{{ . }}</a></li>
{{ end }} {{ end }}
</ul> </ul>
</div> </div>
@@ -31,6 +31,14 @@
</td> </td>
<td class="details"> <td class="details">
<div class="degree-info card"> <div class="degree-info card">
{{ $logoImage:= resources.Get .institution.logo}}
{{ if $logoImage }}
<div class="logo-holder">
<img class="company-logo" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
</div>
{{ end }}
<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 }}
@@ -106,6 +114,14 @@
</ul> </ul>
</div> </div>
{{ end }} {{ end }}
{{ if .custonSections }}
<div class="custom-section">
{{ range .custonSections }}
<h6 class="text-heading">{{ .name }}: </h6>
<div class="custom-content">{{ .content | markdownify }}</div>
{{ end }}
</div>
{{ end }}
</div> </div>
</td> </td>
<td class="line"> <td class="line">
+16
View File
@@ -31,6 +31,14 @@
</td> </td>
<td class="details"> <td class="details">
<div class="degree-info card"> <div class="degree-info card">
{{ $logoImage:= resources.Get .institution.logo}}
{{ if $logoImage }}
<div class="logo-holder">
<img class="company-logo" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
</div>
{{ end }}
<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 }}
@@ -106,6 +114,14 @@
</ul> </ul>
</div> </div>
{{ end }} {{ end }}
{{ if .custonSections }}
<div class="custom-section">
{{ range .custonSections }}
<h6 class="text-heading">{{ .name }}: </h6>
<div class="custom-content">{{ .content | markdownify }}</div>
{{ end }}
</div>
{{ end }}
</div> </div>
</td> </td>
</tr> </tr>
+2 -2
View File
@@ -18,11 +18,11 @@
{{ if eq (mod $index 2) 0 }} {{ if eq (mod $index 2) 0 }}
<div class="row align-items-center d-flex"> <div class="row align-items-center d-flex">
{{ partial "sections/experiences/vertical-line.html" $index }} {{ partial "sections/experiences/vertical-line.html" $index }}
{{ partial "sections/experiences/experience-info.html" $experience }} {{ partial "sections/experiences/positions.html" $experience }}
</div> </div>
{{else}} {{else}}
<div class="row align-items-center justify-content-end d-flex"> <div class="row align-items-center justify-content-end d-flex">
{{ partial "sections/experiences/experience-info.html" $experience }} {{ partial "sections/experiences/positions.html" $experience }}
{{ partial "sections/experiences/vertical-line.html" $index }} {{ partial "sections/experiences/vertical-line.html" $index }}
</div> </div>
{{ end }} {{ end }}
@@ -1,5 +0,0 @@
{{ if gt (len .positions) 1 }}
{{ partial "sections/experiences/multiple-positions.html" . }}
{{ else }}
{{ partial "sections/experiences/single-position.html" . }}
{{ end }}
@@ -1,29 +0,0 @@
<div class="col-10 col-lg-8">
<div class="experience-entry-heading">
<!-- For multiple positions, give emphasis on the company name-->
<h5>{{ if .company.url }}<a href={{.company.url}} title="{{ .company.name }}" target="_blank" rel="noopener">{{ .company.name }}</a>{{ else }}{{ .company.name }}{{ end }}</h5>
<!-- Total experience duration on a company is time between the starting date of the oldest position and ending date of most recent position -->
{{ $oldestPosition := index (last 1 .positions) 0}}
{{ $mostRecentPosition := index (first 1 .positions) 0}}
<p class="text-muted">
{{ $oldestPosition.start }} - {{ if $mostRecentPosition.end }}{{ $mostRecentPosition.end }}{{ else }}{{ i18n "present" }}{{ end }},
{{ .company.location }}
</p>
<!-- Add company overview -->
<p>{{ .company.overview | markdownify }}</p>
</div>
<!-- Add the positions information -->
<div class="positions">
{{ range $index,$position:= .positions }}
<h6 class="designation">{{ $position.designation }}</h6>
<p class="text-muted">{{ $position.start }} - {{if $position.end }} {{ $position.end }} {{else}} {{ i18n "present" }} {{end}}</p>
<!-- Add the responsibilities handled at this position -->
<ul class="justify-content-around">
{{ range $position.responsibilities }}
<li>{{ . | markdownify }}</li>
{{ end }}
</ul>
{{ end }}
</div>
</div>
@@ -0,0 +1,42 @@
<div class="col-10 col-lg-8">
<div class="experience-entry-heading">
{{ $logoImage:= resources.Get .company.logo}}
{{ if $logoImage }}
<div class="logo-holder">
<img class="company-logo" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
</div>
{{ end }}
<!-- 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}}
{{ $mostRecentPosition := index (first 1 .positions) 0}}
<div class="company-heading">
<h5>{{ if .company.url }}<a href={{.company.url}} title="{{ .company.name }}" target="_blank" rel="noopener">{{ .company.name }}</a>{{ else }}{{ .company.name }}{{ end }}</h5>
<p class="text-muted">
{{ $oldestPosition.start }} - {{ if $mostRecentPosition.end }}{{ $mostRecentPosition.end }}{{ else }}{{ i18n "present" }}{{ end }}
</p>
</div>
<p class="text-muted">
<i class="fa-solid fa-location-dot"></i> {{ .company.location }}
</p>
<!-- Add company overview -->
<p>{{ .company.overview | markdownify }}</p>
</div>
<!-- Add the positions information -->
<div class="positions">
{{ range $index,$position:= .positions }}
<div class="company-heading">
<h5 class="designation">{{ $position.designation }}</h5>
<p class="text-muted">{{ $position.start }} - {{if $position.end }} {{ $position.end }} {{else}} {{ i18n "present" }} {{end}}</p>
</div>
<!-- Add the responsibilities handled at this position -->
{{ if $position.responsibilities }}
<h6 class="text-heading">{{ i18n "responsibilities" }}</h6>
<ul class="justify-content-around">
{{ range $position.responsibilities }}
<li>{{ . | markdownify }}</li>
{{ end }}
</ul>
{{ end }}
{{ end }}
</div>
</div>
@@ -1,23 +0,0 @@
<div class="col-10 col-lg-8">
<div class="experience-entry-heading">
{{ $position:= index .positions 0 }}
<!-- For single position, give emphasis on the designation-->
<h5>{{ $position.designation }}</h5>
<h6>{{ if .company.url }}<a href={{.company.url}} title="{{ .company.name }}" target="_blank" rel="noopener">{{ .company.name }}</a>{{ else }}{{ .company.name }}{{ end }}</h6>
<!-- Add experience duration info -->
<p class="text-muted">{{ $position.start }} - {{ if $position.end }}{{ $position.end }}{{ else }}{{ i18n "present" }}{{ end }},
{{ .company.location }}
</p>
</div>
<!-- Add company overview -->
<p>{{ .company.overview | markdownify }}</p>
<!-- Add the responsibilities handled at this position -->
{{ if $position.responsibilities }}
<h6 class="text-heading">{{ i18n "responsibilities" }}</h6>
<ul class="justify-content-around">
{{ range $position.responsibilities }}
<li>{{ . | markdownify }}</li>
{{ end }}
</ul>
{{ end }}
</div>
+2 -1
View File
@@ -33,7 +33,8 @@
<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">
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }} {{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $paginator := .Paginate $posts 12 }} {{ $numShow := site.Params.features.pagination.maxPostsPerPage | default 12}}
{{ $paginator := .Paginate $posts $numShow }}
{{ range $paginator.Pages }} {{ range $paginator.Pages }}
{{ if .Layout }} {{ if .Layout }}
{{/* ignore the search.md file*/}} {{/* ignore the search.md file*/}}
+25 -18
View File
@@ -1,24 +1,14 @@
# theme.toml template for a Hugo theme name = "Toha"
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
description = "A simple hugo theme for personal portfolio"
homepage = "https://hugo-toha.github.io/"
license = "MIT" license = "MIT"
licenselink = "https://github.com/hugo-toha/toha/blob/master/LICENSE" licenselink = "https://github.com/hugo-toha/toha/blob/master/LICENSE"
min_version = "0.118.0" description = "A simple hugo theme for personal portfolio"
name = "Toha"
# The home page of the theme, where the source can be found.
homepage = "https://github.com/hugo-toha/toha"
# If you have a running demo of the theme.
demosite = "https://hugo-toha.github.io/"
features = [
"Minimalist Design",
"Fully Responsive",
"Multiple Language Support",
"Carefully Designed Cards",
"Experience Timeline",
"Achievement Gallery",
"Sidebar to Categorize the Posts",
"Short Codes",
"Google Analytics Support",
"Disqus Comment Support",
]
tags = [ tags = [
"Portfolio", "Portfolio",
"Blog", "Blog",
@@ -34,7 +24,24 @@ tags = [
"Bootstrap", "Bootstrap",
"Syntax highlighting", "Syntax highlighting",
] ]
features = [
"Minimalist Design",
"Fully Responsive",
"Multiple Language Support",
"Carefully Designed Cards",
"Experience Timeline",
"Achievement Gallery",
"Sidebar to Categorize the Posts",
"Short Codes",
"Google Analytics Support",
"Disqus Comment Support",
]
[author] [author]
homepage = "https://hossainemruz.github.io" homepage = "https://hossainemruz.github.io"
name = "Emruz Hossain" name = "Emruz Hossain"
[module]
[module.hugoVersion]
extended = true
min = "0.118.0"