26 Commits

Author SHA1 Message Date
Andreas Deininger a69388d9b8 Fix deprecation warning emitted by hugo (#904)
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2024-03-19 22:26:49 +06:00
dependabot[bot] 600c50c71c Bump actions/checkout from 4.1.1 to 4.1.2 (#905)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.1...v4.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 11:25:06 +00:00
Bernat Borràs Civil 36e3e4c09c Add dark logos (#903)
Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
2024-03-10 16:02:51 +06:00
Bernat Borràs Civil 803821d7e8 Fixes posts in search results (#900) 2024-02-25 15:20:00 +06:00
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
34 changed files with 336 additions and 170 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout to latest commit
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
- name: Setup Node
uses: actions/setup-node@v4
@@ -21,7 +21,7 @@ jobs:
npm run autoprefixer
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v6
with:
branch: autoprefixer
branch-suffix: timestamp
+1 -1
View File
@@ -39,7 +39,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.1
uses: actions/checkout@v4.1.2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
+1 -1
View File
@@ -10,6 +10,6 @@ jobs:
runs-on: ubuntu-latest
steps:
# Create/Update release draft
- uses: release-drafter/release-drafter@v5.25.0
- uses: release-drafter/release-drafter@v6.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+3 -3
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
# checkout to the commit that has been pushed
- uses: actions/checkout@v4.1.1
- uses: actions/checkout@v4.1.2
- name: Setup Node
uses: actions/setup-node@v4
@@ -35,7 +35,7 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.1
- uses: actions/checkout@v4.1.2
- name: Setup Node
uses: actions/setup-node@v4
@@ -87,6 +87,6 @@ jobs:
runs-on: ubuntu-latest
steps:
# checkout to latest commit
- uses: actions/checkout@v4.1.1
- uses: actions/checkout@v4.1.2
# run markdown linter
- uses: gaurav-nelson/github-action-markdown-link-check@1.0.15
+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
[![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
- Català
- 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).
@@ -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,
**Using the forked theme in your own 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:**
#### Running the forked theme against 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:
```bash
# clone the example site along with the submodules
$ git clone git@github.com:hugo-toha/hugo-toha.github.io.git --recursive
# 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
# go to exampleSite directory
$ cd exampleSite
# install hugo modules
$ hugo mod tidy
# install dependencies
$ hugo mod npm pack
$ npm install
# 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.
+18
View File
@@ -39,6 +39,8 @@ window.addEventListener('load', async () => {
// save preference to local storage
saveScheme(newScheme)
setImages(newScheme)
}
setScheme(loadScheme())
@@ -50,3 +52,19 @@ window.addEventListener('load', async () => {
})
})
})
function setImages(newScheme) {
const els = Array.from(document.getElementsByClassName('logo-holder'));
for (const el of els) {
const light = el.querySelector('.light-logo');
const dark = el.querySelector('.dark-logo');
if (newScheme === "dark" && dark !== null) {
if (light !== null) light.style.display = 'none'
dark.style.display = 'inline'
}
else {
if (light !== null) light.style.display = 'inline'
if (dark !== null) dark.style.display = 'none'
}
}
}
+8 -1
View File
@@ -79,6 +79,13 @@ window.addEventListener('DOMContentLoaded', () => {
// pull template from hugo template definition
const templateDefinition = document.getElementById('search-result-template').innerHTML
// 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, {
key,
title: value.item.title,
@@ -86,7 +93,7 @@ window.addEventListener('DOMContentLoaded', () => {
date: value.item.date,
summary: value.item.summary,
link: value.item.permalink,
tags: value.item.tags,
tags: adaptTags(),
categories: value.item.categories,
snippet
})
-13
View File
@@ -56,14 +56,12 @@
font-size: 0.5em;
list-style-type: none;
display: inline-block;
background: get-light-color('accent-color');
margin-left: 0.2em;
margin-right: 0.2em;
margin-top: 0.6em;
margin-bottom: 0.6em;
}
a {
color: get-light-color('text-over-accent-color');
text-decoration: none !important;
}
}
@@ -143,17 +141,6 @@ html[data-theme='dark'] {
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 {
background-color: get-dark-color('muted-text-color');
color: get-dark-color('text-over-accent-color') !important;
+10
View File
@@ -46,3 +46,13 @@ html[data-theme='dark'] {
.svg-inverted {
filter: invert(1);
}
.logo-holder {
height: 64px;
margin-bottom: 1em;
}
.company-logo {
max-height: 100%;
width: auto;
}
+16 -4
View File
@@ -10,10 +10,11 @@ a {
}
}
.list-link {
.list-link, .taxonomy-term {
text-decoration: none !important;
color: get-light-color('text-color');
@include transition();
&.active {
display: inline;
color: get-light-color('accent-color');
@@ -29,6 +30,7 @@ a {
a.header-anchor {
text-decoration: none;
color: get-light-color('heading-color');
i,
svg {
font-size: 10pt;
@@ -36,12 +38,15 @@ a.header-anchor {
display: none;
margin-left: 0.5rem;
}
&:hover {
i,
svg {
display: inline-block;
}
}
code {
color: get-light-color('inline-code-color');
}
@@ -54,26 +59,33 @@ a.header-anchor {
html[data-theme='dark'] {
a {
color: get-dark-color('accent-color');
&:hover,
&:focus {
text-decoration: get-dark-color('hover-over-accent-color') underline;
color: get-dark-color('hover-over-accent-color');
}
}
.list-link {
.list-link, .taxonomy-term {
color: get-dark-color('text-color');
&:hover {
&:hover,
&.active {
color: get-dark-color('accent-color');
}
}
a.header-anchor {
color: get-dark-color('heading-color');
i,
svg {
color: get-dark-color('text-color');
}
code {
color: get-dark-color('inline-code-color');
}
}
}
}
+6
View File
@@ -129,6 +129,12 @@
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') {
.container {
max-width: 100%;
+4
View File
@@ -35,6 +35,10 @@
.project-card-footer {
display: flex;
.badge {
margin-left: 0.1em;
margin-right: 0.1em;
}
}
.project-tags-holder {
+4 -1
View File
@@ -1,4 +1,7 @@
module:
hugoVersion:
min: "0.118.0"
extended: true
mounts:
- source: content
target: content
@@ -19,4 +22,4 @@ module:
- source: ../../node_modules/@fontsource/mulish/files
target: static/files
- source: ../../node_modules/katex/dist/fonts
target: static/fonts
target: static/fonts
+1
View File
@@ -98,6 +98,7 @@ params:
# Enable and configure blog posts
blog:
enable: true
showAuthor: true
# Share post on different social media
shareButtons:
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/go.mod h1:aTn1lQX1rbcbfbwNuWHG/L5DPtD+bEzQro49QyFlbEg=
+2 -2
View File
@@ -117,7 +117,7 @@ other = "Suite"
other = "Afficher le certificat"
[notes]
other = "Remarques"
other = "Notes"
[disclaimer_text]
other = "Avis de responsabilité"
@@ -127,4 +127,4 @@ other = "Chercher"
[minute]
one = "minute"
other = "minutes"
other = "minutes"
+2 -1
View File
@@ -32,7 +32,8 @@
<div class="content container-fluid" id="content">
<div class="container-fluid post-card-holder" id="post-card-holder">
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $paginator := .Paginate $posts 12 }}
{{ $numShow := site.Params.features.pagination.maxPostsPerPage | default 12}}
{{ $paginator := .Paginate $posts $numShow }}
{{ range $paginator.Pages }}
{{ if .Layout }}
{{/* ignore the search.md file*/}}
+18 -6
View File
@@ -28,28 +28,40 @@
{{ end }}
{{ define "content" }}
<script>
document.body.classList.replace('kind-page', 'kind-section');
</script>
<section class="content-section" id="content-section">
<div class="content container-fluid" id="content">
<div class="container-fluid post-card-holder" id="post-card-holder">
<div id="search-results">
<div id="search-results" style="display: flex; flex-wrap: wrap;">
<script id="search-result-template" type="text/x-js-template">
<div class="post-card">
<a href="${link}" class="post-card-link">
<div class="card" style="min-height: 352px;"><a href="${link}" class="post-card-link">
<div class="card">
<div class="card-head">
<a href="${link}" class="post-card-link">
<img class="card-img-top" src="${hero}" alt="Card Heading Image">
</a>
</div>
<div class="card-body">
<h5 class="card-title">${title}</h5>
<p class="card-text post-summary">${summary}</p>
<a href="${link}" class="post-card-link">
<h5 class="card-title">${title}</h5>
<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 class="card-footer">
<span class="float-left">${date}</span>
<a href="${link}" class="float-right btn btn-outline-info btn-sm">Read</a>
</div>
</div>
</a>
</div>
</script>
+14 -3
View File
@@ -36,15 +36,26 @@
<!--Content Start-->
<div class="page-content">
{{ if site.Params.features.blog.showAuthor | default true }}
<div class="author-profile ml-auto align-self-lg-center">
<img class="rounded-circle" src='{{ partial "helpers/get-author-image.html" . }}' alt="Author Image">
<h5 class="author-name">{{ partial "helpers/get-author-name.html" . }}</h5>
<p class="text-muted">{{ .Page.Date | time.Format ":date_full" }}{{ if site.Params.features.readingTime }} | {{ .ReadingTime }} {{i18n "minute" .ReadingTime }}{{ end }}</p>
</div>
{{ else }}
<div style="margin-bottom: 80px;"></div>
{{ end }}
<div class="title">
<h1>{{ .Page.Title }}</h1>
</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 }}
{{partial "misc/tags.html" .Params.tags }}
{{ end }}
@@ -146,8 +157,8 @@
{{ end }}
<!-- Keep backward compatibility with old config.yaml -->
{{ if site.DisqusShortname }}
{{ partial "comments/disqus.html" (dict (slice "disqus" "shortName") site.DisqusShortname) }}
{{ if .Site.Config.Services.Disqus.Shortname }}
{{ partial "comments/disqus.html" (dict (slice "disqus" "shortName") .Site.Config.Services.Disqus.Shortname) }}
{{ end }}
</div>
+2 -1
View File
@@ -33,7 +33,8 @@
<div class="content container-fluid" id="content">
<div class="container-fluid post-card-holder" id="post-card-holder">
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $paginator := .Paginate $posts 12 }}
{{ $numShow := site.Params.features.pagination.maxPostsPerPage | default 12}}
{{ $paginator := .Paginate $posts $numShow }}
{{ range $paginator.Pages }}
{{ if .Layout }}
{{/* ignore the search.md file*/}}
+1 -1
View File
@@ -56,6 +56,6 @@
{{ end }}
<!-- Keep backwards compatibility and consistency with HUGO defaults -->
{{ if site.GoogleAnalytics }}
{{ if .Site.Config.Services.GoogleAnalytics.ID }}
{{ template "_internal/google_analytics.html" . }}
{{ end }}
+20 -18
View File
@@ -1,24 +1,26 @@
<div class="post-card">
<a href="{{ .RelPermalink | relLangURL }}" class="post-card-link">
<div class="card">
<div class="card-head">
<div class="card">
<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">
</div>
<div class="card-body">
</a>
</div>
<div class="card-body">
<a href="{{ .RelPermalink | relLangURL }}" class="post-card-link">
<h5 class="card-title">{{ .Title }}</h5>
<p class="card-text post-summary">{{ .Summary }}</p>
{{ if and site.Params.features.tags.enable site.Params.features.tags.on_card }}
{{ partial "misc/tags.html" .Params.tags }}
{{ end }}
</div>
<div class="card-footer">
<span class="float-left">
{{ .Date | time.Format ":date_full" }}
{{ if site.Params.features.readingTime }} | {{.ReadingTime}} {{ i18n "minute" .ReadingTime }} {{ end }}</span>
<a
href="{{ .RelPermalink | relLangURL }}"
class="float-right btn btn-outline-info btn-sm">{{ i18n "read" }}</a>
</div>
</a>
{{ if and site.Params.features.tags.enable site.Params.features.tags.on_card }}
{{ partial "misc/tags.html" .Params.tags }}
{{ end }}
</div>
</a>
<div class="card-footer">
<span class="float-left">
{{ .Date | time.Format ":date_full" }}
{{ if site.Params.features.readingTime }} | {{.ReadingTime}} {{ i18n "minute" .ReadingTime }} {{ end }}</span>
<a
href="{{ .RelPermalink | relLangURL }}"
class="float-right btn btn-outline-info btn-sm">{{ i18n "read" }}</a>
</div>
</div>
</div>
+4
View File
@@ -115,6 +115,10 @@
<li><a href={{ printf "https://github.com/%s" $value }} target="_blank" rel="noopener">
<span><i class="fab fa-github"></i></span> <span>{{ $value }}</span>
</a></li>
{{ else 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 }}
<li>
{{ if (and (isset $value "url") (isset $value "icon"))}}
+6 -6
View File
@@ -1,8 +1,8 @@
<div class="tags">
<ul style="padding-left: 0;">
{{ range . }}
{{ $url:= printf "tags/%s/" . }}
<li class="rounded"><a href="{{ $url | urlize | relLangURL }}" class="btn, btn-sm">{{ . }}</a></li>
{{ end }}
</ul>
<ul style="padding-left: 0;">
{{ range . }}
{{ $url:= printf "tags/%s/" . }}
<li class="rounded"><a href="{{ $url | urlize | relLangURL }}" class="btn btn-sm btn-info">{{ . }}</a></li>
{{ end }}
</ul>
</div>
@@ -31,6 +31,18 @@
</td>
<td class="details">
<div class="degree-info card">
{{ $logoImage:= resources.Get .institution.logo}}
{{ $darkLogoImage:= resources.Get .institution.darkLogo}}
{{ if $logoImage }}
<div class="logo-holder">
<img class="company-logo light-logo" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
{{ if $darkLogoImage }}
<img class="company-logo dark-logo" src="{{ $darkLogoImage.RelPermalink }}" alt="{{ .name }}" />
{{ end }}
</div>
{{ end }}
<div class="row">
<div class="col-lg-10 col-md-8">
{{ if .institution.url }}
@@ -106,6 +118,14 @@
</ul>
</div>
{{ 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>
</td>
<td class="line">
+20
View File
@@ -31,6 +31,18 @@
</td>
<td class="details">
<div class="degree-info card">
{{ $logoImage:= resources.Get .institution.logo}}
{{ $darkLogoImage:= resources.Get .institution.darkLogo}}
{{ if $logoImage }}
<div class="logo-holder">
<img class="company-logo light-logo" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
{{ if $darkLogoImage }}
<img class="company-logo dark-logo" src="{{ $darkLogoImage.RelPermalink }}" alt="{{ .name }}" />
{{ end }}
</div>
{{ end }}
<div class="row">
<div class="col-lg-10 col-md-8">
{{ if .institution.url }}
@@ -106,6 +118,14 @@
</ul>
</div>
{{ 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>
</td>
</tr>
+2 -2
View File
@@ -18,11 +18,11 @@
{{ if eq (mod $index 2) 0 }}
<div class="row align-items-center d-flex">
{{ partial "sections/experiences/vertical-line.html" $index }}
{{ partial "sections/experiences/experience-info.html" $experience }}
{{ partial "sections/experiences/positions.html" $experience }}
</div>
{{else}}
<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 }}
</div>
{{ 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,46 @@
<div class="col-10 col-lg-8">
<div class="experience-entry-heading">
{{ $logoImage:= resources.Get .company.logo}}
{{ $darkLogoImage:= resources.Get .company.darkLogo}}
{{ if $logoImage }}
<div class="logo-holder">
<img class="company-logo light-logo" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
{{ if $darkLogoImage }}
<img class="company-logo dark-logo" src="{{ $darkLogoImage.RelPermalink }}" alt="{{ .name }}" />
{{ end }}
</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="container-fluid post-card-holder" id="post-card-holder">
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $paginator := .Paginate $posts 12 }}
{{ $numShow := site.Params.features.pagination.maxPostsPerPage | default 12}}
{{ $paginator := .Paginate $posts $numShow }}
{{ range $paginator.Pages }}
{{ if .Layout }}
{{/* ignore the search.md file*/}}
+27 -20
View File
@@ -1,24 +1,14 @@
# theme.toml template for a Hugo theme
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
description = "A simple hugo theme for personal portfolio"
homepage = "https://hugo-toha.github.io/"
name = "Toha"
license = "MIT"
licenselink = "https://github.com/hugo-toha/toha/blob/master/LICENSE"
min_version = "0.118.0"
name = "Toha"
description = "A simple hugo theme for personal portfolio"
# 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 = [
"Portfolio",
"Blog",
@@ -34,7 +24,24 @@ tags = [
"Bootstrap",
"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]
homepage = "https://hossainemruz.github.io"
name = "Emruz Hossain"
homepage = "https://hossainemruz.github.io"
name = "Emruz Hossain"
[module]
[module.hugoVersion]
extended = true
min = "0.118.0"