3 Commits

Author SHA1 Message Date
Emruz Hossain 7691a4692e Merge branch 'main' into html-proof 2024-01-01 14:58:37 +06:00
hossainemruz b22c606137 Ignore # URL
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2024-01-01 13:33:20 +06:00
hossainemruz 0a84f2773a Add HTML proofer action
Signed-off-by: hossainemruz <hossainemruz@gmail.com>
2024-01-01 13:33:20 +06:00
95 changed files with 452 additions and 781 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.7
uses: actions/checkout@v4.1.1
- 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@v6
uses: peter-evans/create-pull-request@v5
with:
branch: autoprefixer
branch-suffix: timestamp
+1 -1
View File
@@ -39,7 +39,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
uses: actions/checkout@v4.1.1
# 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@v6.0.0
- uses: release-drafter/release-drafter@v5.25.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+39 -7
View File
@@ -10,18 +10,18 @@ jobs:
runs-on: ubuntu-latest
steps:
# checkout to the commit that has been pushed
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.1.1
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 18
- name: Install node modules
run: npm install
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3.0.0
uses: peaceiris/actions-hugo@v2.6.0
with:
hugo-version: 'latest'
extended: true
@@ -35,12 +35,12 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.1.1
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 18
- name: Install node modules
run: npm install
@@ -62,7 +62,7 @@ jobs:
NETLIFY_TOKEN: ${{secrets.NETLIFY_TOKEN}}
- name: Run Lighthouse
uses: foo-software/lighthouse-check-action@v12.0.1
uses: foo-software/lighthouse-check-action@v10.0.0
id: lighthouseCheck
with:
accessToken: ${{ secrets.LIGHTHOUSE_TOKEN }}
@@ -87,6 +87,38 @@ jobs:
runs-on: ubuntu-latest
steps:
# checkout to latest commit
- uses: actions/checkout@v4.1.7
- uses: actions/checkout@v4.1.1
# run markdown linter
- 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: "#"
+26 -70
View File
@@ -1,6 +1,3 @@
> [!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)
@@ -38,7 +35,6 @@ A [Hugo](https://gohugo.io/) theme for a personal portfolio with minimalist desi
- counter.dev
- Google Analytics
- Matomo/Piwik
- [Umami](https://umami.is/)
- Comment Support
- [Disqus](https://disqus.com/)
- [Valine](https://valine.js.org/)
@@ -68,8 +64,6 @@ For more details about the features please visit [here](https://toha-guides.netl
- Português Europeu
- Català
- Português Brasileiro
- Nederlands
- Hebrew
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).
@@ -111,7 +105,7 @@ hugo mod init github.com/<your username>/<your repo name>
##### 2. Add this theme as your module dependency
Now, in your `hugo.yaml` file, add a `module` section.
Now, in your `config.yaml` file, add a `module` section.
```yaml
# Use Hugo modules to add theme
@@ -120,7 +114,7 @@ module:
- path: github.com/hugo-toha/toha/v4
```
Check this sample [hugo.yaml](https://github.com/hugo-toha/hugo-toha.github.io/blob/main/hugo.yaml) for further reference.
Check this sample [config.yaml](https://github.com/hugo-toha/hugo-toha.github.io/blob/main/config.yaml) for further reference.
##### 3. Update your module
@@ -191,72 +185,34 @@ 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,
#### Running the forked theme against the example site
**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:**
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
# 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 `hugo.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
# 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
```
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,8 +39,6 @@ window.addEventListener('load', async () => {
// save preference to local storage
saveScheme(newScheme)
setImages(theme)
}
setScheme(loadScheme())
@@ -52,19 +50,3 @@ 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'
}
}
}
+1 -8
View File
@@ -79,13 +79,6 @@ 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,
@@ -93,7 +86,7 @@ window.addEventListener('DOMContentLoaded', () => {
date: value.item.date,
summary: value.item.summary,
link: value.item.permalink,
tags: adaptTags(),
tags: value.item.tags,
categories: value.item.categories,
snippet
})
+1 -1
View File
@@ -15,7 +15,7 @@ window.addEventListener('DOMContentLoaded', () => {
}
}
// =============== Make TOC Compatible with Bootstrap Scroll Spy ========
// =============== Make TOC Compatible wit Bootstrap Scroll Spy ========
// add "navbar" class to the "nav" element
const toc = document.getElementById('TableOfContents')
if (toc) {
+2 -2
View File
@@ -1,6 +1,6 @@
import { getDeviceState } from '../core'
function fourColumnRow (gallery, entries, i) {
function fourColumRow (gallery, entries, i) {
const entry1 = document.createElement('div')
entry1.classList.add('col-lg-6', 'm-0', 'p-0')
entry1.appendChild(entries[i].cloneNode(true))
@@ -140,7 +140,7 @@ function showAchievements () {
if (isLaptop) {
if (i + 4 <= len) {
if (rowNumber % 2) {
fourColumnRow(gallery, entries, i)
fourColumRow(gallery, entries, i)
} else {
fourColumnReversedRow(gallery, entries, i)
}
+13 -9
View File
@@ -49,15 +49,6 @@
color: get-light-color('muted-text-color');
}
.navbar-toggler {
border: none;
&:focus {
border: none;
outline: none !important;
box-shadow: none;
}
}
.tags {
text-align: left;
padding-top: 0.5em;
@@ -65,12 +56,14 @@
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;
}
}
@@ -150,6 +143,17 @@ 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;
-1
View File
@@ -50,7 +50,6 @@
.post-card-link {
text-decoration: none !important;
color: get-light-color('text-color');
}
.card {
-10
View File
@@ -46,13 +46,3 @@ html[data-theme='dark'] {
.svg-inverted {
filter: invert(1);
}
.logo-holder {
height: 64px;
margin-bottom: 1em;
}
.company-logo {
max-height: 100%;
width: auto;
}
+4 -20
View File
@@ -2,10 +2,6 @@ a {
color: get-light-color('accent-color');
@include transition();
&:link {
text-decoration: none;
}
&:hover,
&:focus {
text-decoration: get-light-color('hover-over-accent-color') underline;
@@ -14,11 +10,10 @@ a {
}
}
.list-link, .taxonomy-term {
.list-link {
text-decoration: none !important;
color: get-light-color('text-color');
@include transition();
&.active {
display: inline;
color: get-light-color('accent-color');
@@ -34,7 +29,6 @@ a {
a.header-anchor {
text-decoration: none;
color: get-light-color('heading-color');
i,
svg {
font-size: 10pt;
@@ -42,15 +36,12 @@ a.header-anchor {
display: none;
margin-left: 0.5rem;
}
&:hover {
i,
svg {
display: inline-block;
}
}
code {
color: get-light-color('inline-code-color');
}
@@ -63,33 +54,26 @@ 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, .taxonomy-term {
.list-link {
color: get-dark-color('text-color');
&:hover,
&.active {
&:hover {
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');
}
}
}
}
+1 -2
View File
@@ -72,8 +72,7 @@ html[data-theme='dark'] {
h2,
h3,
h4,
h5,
h6 {
h5 {
color: get-dark-color('heading-color');
}
-1
View File
@@ -184,7 +184,6 @@ body.kind-page {
#scroll-to-top {
position: fixed;
border: none;
bottom: 0rem;
right: 1rem;
color: get-light-color('accent-color');
-1
View File
@@ -27,7 +27,6 @@
.navbar-brand {
color: get-light-color('heading-color');
text-decoration: none !important;
font-weight: 600;
img {
width: 42px;
+1 -1
View File
@@ -1,6 +1,6 @@
/* override this file for custom css */
/* you can import bootstrap mixins */
/* you can import boostrap mixins */
// @import 'bootstrap/scss/mixins';
// Example usage
// .some-class {
-11
View File
@@ -129,12 +129,6 @@
margin-bottom: 0;
}
}
.custom-section {
.custom-content {
padding-bottom: 0.5em;
}
}
}
}
}
@@ -229,11 +223,6 @@ html[data-theme='dark'] {
border-left: 2px solid get-dark-color('accent-color');
}
}
.custom-section {
.custom-content {
color: get-dark-color('text-color');
}
}
}
}
}
+3 -14
View File
@@ -32,14 +32,14 @@
&::after {
content: '';
position: relative;
position: absolute;
border-left: 3px solid get-light-color('accent-color');
z-index: 1;
height: 100%;
left: -23px;
left: 50%;
}
&:nth-child(even)::after {
left: -26px;
left: calc(50% - 3px) !important;
}
}
.horizontal-line {
@@ -52,7 +52,6 @@
margin: 0;
top: 17px;
position: relative;
opacity: 1;
}
.timeline-side-div {
display: flex;
@@ -93,16 +92,6 @@
}
}
.company-heading {
h5 {
display: inline;
margin-right: 0.25em;
}
p {
display: inline;
}
}
@include media('<=medium') {
.container {
max-width: 100%;
-4
View File
@@ -35,10 +35,6 @@
.project-card-footer {
display: flex;
.badge {
margin-left: 0.1em;
margin-right: 0.1em;
}
}
.project-tags-holder {
+1 -4
View File
@@ -1,7 +1,4 @@
module:
hugoVersion:
min: "0.122.0"
extended: true
mounts:
- source: content
target: content
@@ -22,4 +19,4 @@ module:
- source: ../../node_modules/@fontsource/mulish/files
target: static/files
- source: ../../node_modules/katex/dist/fonts
target: static/fonts
target: static/fonts
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -24,7 +24,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+2 -2
View File
@@ -1,5 +1,5 @@
---
title: "Suchergebnisse"
title: "Search Results"
date: 2010-06-08T08:06:25+06:00
weight: 999999
sitemap:
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
+1 -1
View File
@@ -26,7 +26,7 @@ Search depends on additional output content type of JSON in config.toml
home = ["HTML", "JSON"]
\```
## Searching additional fields
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
@@ -33,18 +33,14 @@ module:
# For any more details, you can check the official documentation: https://gohugo.io/content-management/multilingual/
languages:
en:
languageCode: en
languageName: English
title: "John's Blog"
weight: 1
bn:
languageCode: bn
languageName: বাংলা
title: "জনের ব্লগ"
weight: 2
weight: 3
# default language for the content
defaultContentLanguage: en
# Force a locale to be use, really useful to develop the application ! Should be commented in production, the "weight" should rocks.
# DefaultContentLanguage: bn
# Allow raw html in markdown file
markup:
@@ -102,7 +98,6 @@ params:
# Enable and configure blog posts
blog:
enable: true
showAuthor: true
# Share post on different social media
shareButtons:
facebook: true
@@ -174,11 +169,6 @@ params:
# matomo:
# instance: matomo.example.com
# siteId: 1 # Or any other number
# # Umami
# umami:
# scheme: https
# instance: umami.example.com
# id: <your umami site id>
# Enable Support
support:
+5 -5
View File
@@ -1,10 +1,10 @@
module github.com/hugo-toha/toha/exampleSite
go 1.21
replace github.com/hugo-toha/toha/v4 => ../
go 1.19
require (
github.com/hugo-toha/hugo-toha.github.io v0.0.0-20240510202502-b4192719c87f // indirect
github.com/hugo-toha/toha/v4 v4.5.0 // indirect
github.com/hugo-toha/hugo-toha.github.io v0.0.0-20231031082630-2c32a26d2207 // indirect
github.com/hugo-toha/toha/v4 v4.0.0-20231113175302-e5230e8c93d8 // indirect
)
replace github.com/hugo-toha/toha/v4 => ../
+4 -2
View File
@@ -1,2 +1,4 @@
github.com/hugo-toha/hugo-toha.github.io v0.0.0-20240510202502-b4192719c87f h1:EpJlxR6ruHtcBIHLVlmfgpoPGAjpAvopGq8h1wscEwY=
github.com/hugo-toha/hugo-toha.github.io v0.0.0-20240510202502-b4192719c87f/go.mod h1:0gXAIE/H9B3kwsNvyqXXP0gTLCzi/DKwoIOz8Bb9j9c=
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=
+25 -28
View File
@@ -11,7 +11,7 @@
"@fontsource/mulish": "4.5.13",
"@fortawesome/fontawesome-free": "^6.2.0",
"autoprefixer": "^10.4.13",
"bootstrap": "^5.3.3",
"bootstrap": "^4.6.2",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
"eslint-config-standard": "^17.0.0",
@@ -27,12 +27,12 @@
"imagesloaded": "^5.0.0",
"include-media": "^1.4.10",
"ityped": "^1.0.3",
"katex": "^0.16.10",
"katex": "^0.16.3",
"mark.js": "^8.11.1",
"mermaid": "^9.2.1",
"plyr": "^3.7.2",
"popper.js": "^1.16.1",
"postcss": "^8.4.31",
"postcss": "^8.4.21",
"postcss-cli": "^8.3.1"
}
},
@@ -191,17 +191,6 @@
"node": ">= 8"
}
},
"node_modules/@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"dev": true,
"peer": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
@@ -485,9 +474,9 @@
}
},
"node_modules/bootstrap": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
"integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz",
"integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==",
"dev": true,
"funding": [
{
@@ -500,7 +489,8 @@
}
],
"peerDependencies": {
"@popperjs/core": "^2.11.8"
"jquery": "1.9.1 - 3",
"popper.js": "^1.16.1"
}
},
"node_modules/brace-expansion": {
@@ -514,12 +504,12 @@
}
},
"node_modules/braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"dependencies": {
"fill-range": "^7.1.1"
"fill-range": "^7.0.1"
},
"engines": {
"node": ">=8"
@@ -1983,9 +1973,9 @@
}
},
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -2789,6 +2779,13 @@
"integrity": "sha512-46Qnh3qs+6EJlWDHmvWRW6qiz5jFy2mkh9UvtTvQmLJMZIjKrdz4du68le7hLX4tAWCp6QTKiq/OuLv6huHxZg==",
"dev": true
},
"node_modules/jquery": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz",
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==",
"dev": true,
"peer": true
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -2844,9 +2841,9 @@
}
},
"node_modules/katex": {
"version": "0.16.10",
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz",
"integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==",
"version": "0.16.9",
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz",
"integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==",
"dev": true,
"funding": [
"https://opencollective.com/katex",
+3 -3
View File
@@ -35,7 +35,7 @@
"@fontsource/mulish": "4.5.13",
"@fortawesome/fontawesome-free": "^6.2.0",
"autoprefixer": "^10.4.13",
"bootstrap": "^5.3.3",
"bootstrap": "^4.6.2",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
"eslint-config-standard": "^17.0.0",
@@ -51,12 +51,12 @@
"imagesloaded": "^5.0.0",
"include-media": "^1.4.10",
"ityped": "^1.0.3",
"katex": "^0.16.10",
"katex": "^0.16.3",
"mark.js": "^8.11.1",
"mermaid": "^9.2.1",
"plyr": "^3.7.2",
"popper.js": "^1.16.1",
"postcss": "^8.4.31",
"postcss": "^8.4.21",
"postcss-cli": "^8.3.1"
},
"name": "exampleSite",
+1 -1
View File
@@ -1,3 +1,3 @@
module github.com/hugo-toha/toha/v4
go 1.21
go 1.19
-4
View File
@@ -124,7 +124,3 @@ other = "Vastuuilmoitus"
[search]
other = "Haku"
[minute]
one = "minuutti"
other = "minuuttia"
+2 -2
View File
@@ -117,7 +117,7 @@ other = "Suite"
other = "Afficher le certificat"
[notes]
other = "Notes"
other = "Remarques"
[disclaimer_text]
other = "Avis de responsabilité"
@@ -127,4 +127,4 @@ other = "Chercher"
[minute]
one = "minute"
other = "minutes"
other = "minutes"
-126
View File
@@ -1,126 +0,0 @@
# More documentation here: https://github.com/nicksnyder/go-i18n
[home]
other = "בית"
[posts]
other = "פוסטים"
[toc_heading]
other = "תוכן העניינים"
[tags]
other = "תגים"
[categories]
other = "קטגוריות"
[at]
other = "ב"
[resume]
other = "הקורות החיים שלי"
[navigation]
other = "ניווט"
[contact_me]
other = "צור קשר:"
[email]
other = "דוא\"ל"
[phone]
other = "טלפון"
[newsletter_text]
other = "הישאר מעודכן עם התראות בדוא\"ל"
[newsletter_input_placeholder]
other = "הכנס דוא\"ל"
[newsletter_warning]
other = "על ידי הזנת כתובת הדוא\"ל שלך, אתה מסכים לקבל את הניוזלטר של אתר זה."
[submit]
other = "שלח"
[hugoAttributionText]
other = "מופעל ע\"י"
[prev]
other = "הקודם"
[next]
other = "הבא"
[share_on]
other = "שתף ב"
[improve_this_page]
other = "שפר את הדף הזה"
[out_of]
other = "מתוך"
[publications]
other = "פרסומים"
[taken_courses]
other = "קורסים"
[course_name]
other = "שם הקורס"
[total_credit]
other = "נקודות זכות סך הכל"
[obtained_credit]
other = "נקודות זכות שהושגו"
[extracurricular_activities]
other = "פעילויות חוץ לימודיות"
[show_more]
other = "הצג יותר"
[show_less]
other = "הצג פחות"
[responsibilities]
other = "אחריות:"
[present]
other = "נוכחי"
[comments_javascript]
other = "אנא הפעל את JavaScript כדי לראות את"
[comments_by]
other = "תגובות מופעלות ע\"י"
[read]
other = "קרא"
[project_star]
other = "כוכב"
[project_details]
other = "פרטים"
[err_404]
other = "הדף שאתה מחפש אינו קיים עדיין."
[more]
other = "עוד"
[view_certificate]
other = "צפה בתעודה"
[notes]
other = "הערות"
[disclaimer_text]
other = "הבהרת אחריות"
[search]
other = "חיפוש"
+3 -7
View File
@@ -93,16 +93,16 @@ other = "Sorumluluklar:"
other = "Halen"
[comments_javascript]
other = "Görüntüleyebilmek için lüften JavaScript etkinleştirin"
other = "Görüntüleyebilmek için lüften Javascript etkinleştirin"
[comments_by]
other = "Yorum sağlayıcı"
other = "comments powered by"
[read]
other = "Oku"
[project_star]
other = "Yıldız"
other = "Star"
[project_details]
other = "Detaylar"
@@ -124,7 +124,3 @@ other = "Yükümlülük Bildirisi"
[search]
other = "Ara"
[minute]
one = "dakika"
other = "dakika"
+1 -1
View File
@@ -24,7 +24,7 @@
</script>
</head>
<body class="type-{{ .Page.Type }} kind-{{ .Page.Kind }}" data-bs-spy="scroll" data-bs-target="#TableOfContents" data-bs-offset="80">
<body class="type-{{ .Page.Type }} kind-{{ .Page.Kind }}" data-spy="scroll" data-target="#TableOfContents" data-offset="80">
<div class="container-fluid bg-secondary wrapper">
<!----- ADD NAVBAR --------------->
{{ block "navbar" . }} {{ end }}
+2 -3
View File
@@ -4,7 +4,7 @@
{{ define "sidebar" }}
{{ $homePage:="#" }}
{{ if hugo.IsMultilingual }}
{{ if site.IsMultiLingual }}
{{ $homePage = (path.Join (cond ( eq .Language.Lang "en") "" .Language.Lang) .Type) }}
{{ end }}
@@ -32,8 +32,7 @@
<div class="content container-fluid" id="content">
<div class="container-fluid post-card-holder" id="post-card-holder">
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $numShow := site.Params.features.pagination.maxPostsPerPage | default 12}}
{{ $paginator := .Paginate $posts $numShow }}
{{ $paginator := .Paginate $posts 12 }}
{{ range $paginator.Pages }}
{{ if .Layout }}
{{/* ignore the search.md file*/}}
+4 -4
View File
@@ -19,9 +19,9 @@
<link>{{ .Permalink }}</link>
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
<language>{{.}}</language>{{end}}{{ with .Site.Params.Author.email }}
<managingEditor>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Params.Author.email }}
<webMaster>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
<language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
<managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
<webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
{{- with .OutputFormats.Get "RSS" -}}
@@ -33,7 +33,7 @@
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
{{ with .Site.Params.Author.email }}<author>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</author>{{end}}
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
<guid>{{ .Permalink }}</guid>
<description>{{ .Summary | html }}</description>
</item>
+9 -21
View File
@@ -4,7 +4,7 @@
{{ define "sidebar" }}
{{ $homePage:="#" }}
{{ if hugo.IsMultilingual }}
{{ if site.IsMultiLingual }}
{{ $homePage = (path.Join (cond ( eq .Language.Lang "en") "" .Language.Lang) .Type) }}
{{ end }}
@@ -28,40 +28,28 @@
{{ 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" style="display: flex; flex-wrap: wrap;">
<div id="search-results">
<script id="search-result-template" type="text/x-js-template">
<div class="post-card">
<div class="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-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">
<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 }}
<h5 class="card-title">${title}</h5>
<p class="card-text post-summary">${summary}</p>
</div>
<div class="card-footer">
<span class="float-start">${date}</span>
<a href="${link}" class="float-end btn btn-outline-info btn-sm">Read</a>
<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>
+7 -18
View File
@@ -36,26 +36,15 @@
<!--Content Start-->
<div class="page-content">
{{ if site.Params.features.blog.showAuthor | default true }}
<div class="author-profile ms-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">
<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 ms-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 }}
@@ -64,7 +53,7 @@
</div>
<!-- Share or Contribute -->
<div class="row ps-3 pe-3">
<div class="row pl-3 pr-3">
<!--Social Media Share Buttons-->
<div class="col-md-6 share-buttons">
{{ if site.Params.features.blog.shareButtons }}
@@ -157,15 +146,15 @@
{{ end }}
<!-- Keep backward compatibility with old config.yaml -->
{{ if .Site.Config.Services.Disqus.Shortname }}
{{ partial "comments/disqus.html" (dict (slice "disqus" "shortName") .Site.Config.Services.Disqus.Shortname) }}
{{ if site.DisqusShortname }}
{{ partial "comments/disqus.html" (dict (slice "disqus" "shortName") site.DisqusShortname) }}
{{ end }}
</div>
</div>
</div>
<!--scroll back to top-->
<a id="scroll-to-top" class="btn" type="button" data-bs-toggle="tooltip" data-bs-placement="left" title="Scroll to top">
<a id="scroll-to-top" class="btn" data-toggle="tooltip" data-placement="left" title="Scroll to top">
<i class="fas fa-chevron-circle-up"></i>
</a>
</section>
@@ -175,7 +164,7 @@
<section class="toc-section" id="toc-section">
{{ if and site.Params.features.toc.enable ( .Params.enableTOC | default true ) }}
<div class="toc-holder">
<h5 class="text-center ps-3">{{ i18n "toc_heading" }}</h5>
<h5 class="text-center pl-3">{{ i18n "toc_heading" }}</h5>
<hr>
<div class="toc">
{{ .TableOfContents }}
+2 -3
View File
@@ -4,7 +4,7 @@
{{ define "sidebar" }}
{{ $homePage:="#" }}
{{ if hugo.IsMultilingual }}
{{ if site.IsMultiLingual }}
{{ $homePage = (path.Join (cond ( eq .Language.Lang "en") "" .Language.Lang) .Type) }}
{{ end }}
@@ -33,8 +33,7 @@
<div class="content container-fluid" id="content">
<div class="container-fluid post-card-holder" id="post-card-holder">
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $numShow := site.Params.features.pagination.maxPostsPerPage | default 12}}
{{ $paginator := .Paginate $posts $numShow }}
{{ $paginator := .Paginate $posts 12 }}
{{ range $paginator.Pages }}
{{ if .Layout }}
{{/* ignore the search.md file*/}}
+1 -1
View File
@@ -29,7 +29,7 @@
document.documentElement.setAttribute('data-theme', theme);
</script>
</head>
<body data-bs-spy="scroll" data-bs-target="#top-navbar" data-bs-offset="100">
<body data-spy="scroll" data-target="#top-navbar" data-offset="100">
<!--- NAVBAR ------------------------->
{{- partial "navigators/navbar.html" . -}}
+1 -1
View File
@@ -4,7 +4,7 @@
{{ define "sidebar" }}
{{ $homePage:="#" }}
{{ if hugo.IsMultilingual }}
{{ if site.IsMultiLingual }}
{{ $homePage = (path.Join (cond ( eq .Language.Lang "en") "" .Language.Lang) .Type) }}
{{ end }}
+1 -1
View File
@@ -4,7 +4,7 @@
{{ define "sidebar" }}
{{ $homePage:="#" }}
{{ if hugo.IsMultilingual }}
{{ if site.IsMultiLingual }}
{{ $homePage = (path.Join (cond ( eq .Language.Lang "en") "" .Language.Lang) .Type) }}
{{ end }}
+46 -52
View File
@@ -2,66 +2,60 @@
{{ with site.Params.features.analytics }}
{{ if or .enable .enabled }}
{{ with .services }}
<!-- Google Analytics -->
{{ with .google }}
{{ $privacyConfig:= dict (slice "Site" "Config" "Privacy" "GoogleAnalytics") $.Site.Config.Privacy.GoogleAnalytics }}
{{ $analyticsConfig := dict (slice "Site" "Config" "Services" "GoogleAnalytics" "ID") .id }}
{{ template "_internal/google_analytics.html" (merge $privacyConfig $analyticsConfig) }}
{{ end }}
<!-- Google Analytics -->
{{ with .google }}
{{ $privacyConfig:= dict (slice "Site" "Config" "Privacy" "GoogleAnalytics") $.Site.Config.Privacy.GoogleAnalytics }}
{{ $analyticsConfig := dict (slice "Site" "GoogleAnalytics") .id }}
{{ template "_internal/google_analytics.html" (merge $privacyConfig $analyticsConfig) }}
{{ end }}
<!-- Counter.dev -->
{{ with .counterDev }}
<script src="https://cdn.counter.dev/script.js"
data-id="{{ .id }}"
data-utcoffset="1"
></script>
{{ end }}
<!-- Counter.dev -->
{{ with .counterDev }}
<script src="https://cdn.counter.dev/script.js"
data-id="{{ .id }}"
data-utcoffset="1"
></script>
{{ end }}
<!-- GoatCounter -->
{{ with .goatCounter }}
{{ with .code }}
<script data-goatcounter="https://{{ . }}.goatcounter.com/count" async src="//gc.zgo.at/count.js"></script>
{{ else }}
<script data-goatcounter="https://{{ .instance }}/count" async src="https://{{ .instance }}/count.js"></script>
{{ end }}
{{ end }}
<!-- GoatCounter -->
{{ with .goatCounter }}
{{ with .code }}
<script data-goatcounter="https://{{ . }}.goatcounter.com/count" async src="//gc.zgo.at/count.js"></script>
{{ else }}
<script data-goatcounter="https://{{ .instance }}/count" async src="https://{{ .instance }}/count.js"></script>
{{ end }}
{{ end }}
<!-- Piwik/Matomo -->
{{ with .matomo }}
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//{{ .instance }}/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '{{ .siteId }}']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
{{ end }}
<!-- Piwik/Matomo -->
{{ with .matomo }}
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//{{ .instance }}/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '{{ .siteId }}']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
{{ end }}
{{ with .cloudflare }}
<!-- Cloudflare Web Analytics -->
<script defer src='https://static.cloudflareinsights.com/beacon.min.js'
data-cf-beacon='{"token": "{{ .token }}"}'
></script>
<!-- End Cloudflare Web Analytics -->
{{ end }}
{{ with .umami }}
<!-- Umami analytics -->
<script defer src='{{ or .scheme "https" }}://{{ or .instance "analytics.eu.umami.is" }}/script.js' data-website-id="{{ .id }}"></script>
<!-- End Umami analytics -->
{{end}}
{{ with .cloudflare }}
<!-- Cloudflare Web Analytics -->
<script defer src='https://static.cloudflareinsights.com/beacon.min.js'
data-cf-beacon='{"token": "{{ .token }}"}'
></script>
<!-- End Cloudflare Web Analytics -->
{{ end }}
{{ end }}
{{ end }}
{{ end }}
<!-- Keep backwards compatibility and consistency with HUGO defaults -->
{{ if .Site.Config.Services.GoogleAnalytics.ID }}
{{ if site.GoogleAnalytics }}
{{ template "_internal/google_analytics.html" . }}
{{ end }}
+2 -2
View File
@@ -4,7 +4,7 @@
<h5 class="card-title mb-0">{{ .name }}</h5>
<div class="sub-title">
<span><a href="{{ .organization.url }}" title="{{ .organization.name }}" target="_blank" rel="noopener">{{ .organization.name }}</a></span>
<span class="ms-2">{{ .timeline }}</span>
<span class="ml-2">{{ .timeline }}</span>
</div>
</div>
<div class="card-body">
@@ -12,7 +12,7 @@
</div>
<div class="card-footer">
{{ if .certificateURL }}
<a class="btn btn-outline-info ms-1 ps-2 mb-2" href="{{ .certificateURL }}" target="_blank" rel="noopener" role="button">{{ i18n "view_certificate"}}</a>
<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>
+18 -20
View File
@@ -1,26 +1,24 @@
<div class="post-card">
<div class="card">
<div class="card-head">
<a href="{{ .RelPermalink | relLangURL }}" class="post-card-link">
<a href="{{ .RelPermalink | relLangURL }}" class="post-card-link">
<div class="card">
<div class="card-head">
<img class="card-img-top" src='{{ partial "helpers/get-hero.html" . }}' alt="Hero Image">
</a>
</div>
<div class="card-body">
<a href="{{ .RelPermalink | relLangURL }}" class="post-card-link">
</div>
<div class="card-body">
<h5 class="card-title">{{ .Title }}</h5>
<p class="card-text post-summary">{{ .Summary }}</p>
</a>
{{ if and site.Params.features.tags.enable site.Params.features.tags.on_card }}
{{ partial "misc/tags.html" .Params.tags }}
{{ end }}
{{ 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>
</div>
<div class="card-footer">
<span class="float-start">
{{ .Date | time.Format ":date_full" }}
{{ if site.Params.features.readingTime }} | {{.ReadingTime}} {{ i18n "minute" .ReadingTime }} {{ end }}</span>
<a
href="{{ .RelPermalink | relLangURL }}"
class="float-end btn btn-outline-info btn-sm">{{ i18n "read" }}</a>
</div>
</div>
</a>
</div>
+9 -17
View File
@@ -9,24 +9,16 @@
<div class="d-flex">
{{ if .logo }}
{{ if eq (len (findRE ".*/.*" .logo) ) 0 }}
<i style="padding-right: 0.25em" class="{{.logo}} h4"></i>
{{ else }}
{{ $logoImage:= resources.Get .logo}}
{{ if $logoImage }}
{{/* svg don't support "Fit" operation */}}
{{ if ne $logoImage.MediaType.SubType "svg" }}
{{ $logoImage = $logoImage.Fit "24x24" }}
{{ end }}
<img class="card-img-xs" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
{{ end }}
{{ end }}
{{ $logoImage:= resources.Get .logo}}
{{ if $logoImage }}
{{/* svg don't support "Fit" operation */}}
{{ if ne $logoImage.MediaType.SubType "svg" }}
{{ $logoImage = $logoImage.Fit "24x24" }}
{{ end }}
<img class="card-img-xs" src="{{ $logoImage.RelPermalink }}" alt="{{ .name }}" />
{{ end }}
{{ end }}
<h5 class="card-title mb-0">{{ .name }}</h5>
</div>
<div class="sub-title">
+4 -4
View File
@@ -12,11 +12,11 @@
<h5 class="card-title mb-0">{{ .title }}</h5>
<div class="sub-title">
<span><a class="" href="{{.publishedIn.url}}">{{ .publishedIn.name }}</a></span>
<span class="ms-2">{{ .publishedIn.date }}</span>
<span class="ml-2">{{ .publishedIn.date }}</span>
</div>
<div class="authors">
{{ range $index,$author:= .authors }}
<span class="me-2"><a class="" href="{{.url}}">{{ .name }}</a></span>
<span class="mr-2"><a class="" href="{{.url}}">{{ .name }}</a></span>
{{ end }}
</div>
</div>
@@ -26,13 +26,13 @@
<div class="card-footer">
<div class="tags">
{{ range $index,$tag:= .tags }}
<span class="btn badge btn-info ms-1 p-2">
<span class="btn badge btn-info ml-1 p-2">
{{ $tag }}
</span>
{{ end }}
</div>
<div class="details-btn">
<a class="btn btn-outline-info ms-1 ps-2 mb-2" href="{{ .paper.url }}" target="_blank" rel="noopener" role="button">{{ i18n "project_details"}}</a>
<a class="btn btn-outline-info ml-1 pl-2 mb-2" href="{{ .paper.url }}" target="_blank" rel="noopener" role="button">{{ i18n "project_details"}}</a>
</div>
</div>
</div>
+3 -7
View File
@@ -66,7 +66,7 @@
<footer id="footer" class="container-fluid text-center align-content-center footer pb-2">
<div class="container pt-5">
<div class="row text-start">
<div class="row text-left">
{{ if $navigationEnabled }}
<div class="col-md-4 col-sm-12">
<h5>{{ i18n "navigation" }}</h5>
@@ -115,10 +115,6 @@
<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"))}}
@@ -193,7 +189,7 @@
{{ if $credentialsEnabled }}
<hr />
<div class="container">
<div class="row text-start">
<div class="row text-left">
<div class="col-md-4">
<a id="theme" href="https://github.com/hugo-toha/toha" target="_blank" rel="noopener">
<img src="{{ $themeLogo }}" alt="Toha Theme Logo">
@@ -201,7 +197,7 @@
</a>
</div>
<div class="col-md-4 text-center">{{ $copyrightNotice | markdownify }}</div>
<div class="col-md-4 text-end">
<div class="col-md-4 text-right">
<a id="hugo" href="https://gohugo.io/" target="_blank" rel="noopener">{{ i18n "hugoAttributionText" }}
<img
src="{{ $hugoLogo }}"
@@ -1,7 +1,7 @@
{{/* Uses the top level site's config for a single author across all locales */}}
{{ $authorName:= site.Params.author.name }}
{{/* Overrides with the locale specific author if provided */}}
{{/* Overrides with the locale specifc author if provided */}}
{{ if (index site.Data site.Language.Lang).author }}
{{ $authorName = (index site.Data site.Language.Lang).author.name }}
{{ end }}
+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 btn-info">{{ . }}</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">{{ . }}</a></li>
{{ end }}
</ul>
</div>
@@ -1,9 +1,9 @@
{{ $pageURL:= .RelPermalink }}
{{ if hugo.IsMultilingual }}
{{ if site.IsMultiLingual }}
{{ $pageURL = strings.TrimPrefix (path.Join "/" .Language.Lang) $pageURL }}
{{ end }}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="languageSelector" role="button" data-bs-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">
{{ if ne site.Params.features.flags.enable false }}
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
@@ -12,7 +12,7 @@
</a>
<div class="dropdown-menu" aria-labelledby="languageSelector">
{{ range site.Home.AllTranslations }}
<a class="dropdown-item nav-link languages-item" href="{{ path.Join "/" (cond (eq .Language.Lang $.Sites.First.Language.Lang) "" .Language.Lang) $pageURL }}">
<a class="dropdown-item nav-link languages-item" href="{{ path.Join "/" (cond (eq .Language.Lang "en") "" .Language.Lang) $pageURL }}">
{{ if ne site.Params.features.flags.enable false }}
{{ $countryCode := partial "helpers/country-code.html" . }}
<span class="flag-icon flag-icon-{{$countryCode}}"></span>
+7 -14
View File
@@ -1,8 +1,6 @@
{{/* variables for enabling/disabling various features */}}
{{ $blogEnabled := site.Params.features.blog.enable | default false }}
{{ $blogTitle := site.Params.features.blog.title | default (i18n "posts") }}
{{ $notesEnabled := site.Params.features.notes.enable | default false }}
{{ $notesTitle := site.Params.features.notes.title | default (i18n "notes") }}
{{ $maxVisibleSections := site.Params.topNavbar.maxVisibleSections | default 5 }}
{{/* keep backward compatibility for blog post */}}
@@ -54,11 +52,6 @@
{{ $sections = (index site.Data site.Language.Lang).sections }}
{{ end }}
{{ $navBarTitle := (index site.Data site.Language.Lang).site.navBarTitle }}
{{ if not $navBarTitle }}
{{ $navBarTitle = site.Title }}
{{ end }}
<nav class="navbar navbar-expand-xl top-navbar shadow {{ if .IsHome}}transparent-navbar homepage{{end}}" id="top-navbar">
<div class="container">
{{ if not .IsHome }}
@@ -70,21 +63,21 @@
{{ if $logo }}
<img src="{{ $logo }}" id="logo" alt="Logo">
{{ end }}
{{- $navBarTitle -}}
{{- site.Title -}}
</a>
<button
class="navbar-toggler {{if .IsHome}}navbar-dark{{else}}navbar-light{{end}}"
id="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#top-nav-items"
data-toggle="collapse"
data-target="#top-nav-items"
aria-label="menu"
>
<i data-feather="menu"></i>
</button>
<div class="collapse navbar-collapse dynamic-navbar" id="top-nav-items">
<ul class="nav navbar-nav ms-auto">
<ul class="nav navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="{{ if .IsHome }}#home{{else}}{{ site.BaseURL | relLangURL }}#home{{end}}">{{ i18n "home" }}</a>
</li>
@@ -102,7 +95,7 @@
{{- end }}
{{ if gt $sectionCount $maxVisibleSections }}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{i18n "more" }}</a>
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{i18n "more" }}</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
{{ $sectionCount := 1 }}
{{ range sort $sections "section.weight" }}
@@ -123,12 +116,12 @@
{{ end }}
{{ if $blogEnabled }}
<li class="nav-item">
<a class="nav-link" id="blog-link" href="{{ path.Join (site.BaseURL | relLangURL) "posts" }}">{{ $blogTitle }}</a>
<a class="nav-link" id="blog-link" href="{{ path.Join (site.BaseURL | relLangURL) "posts" }}">{{ i18n "posts" }}</a>
</li>
{{ end }}
{{ if $notesEnabled }}
<li class="nav-item">
<a class="nav-link" id="note-link" href="{{ path.Join (site.BaseURL | relLangURL) "notes" }}">{{ $notesTitle }}</a>
<a class="nav-link" id="note-link" href="{{ path.Join (site.BaseURL | relLangURL) "notes" }}">{{ i18n "notes" }}</a>
</li>
{{ end }}
{{ range $customMenus }}
@@ -1,6 +1,6 @@
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="themeSelector" role="button"
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img id="navbar-theme-icon-svg" class="theme-icon" src="{{ "icons/moon-svgrepo-com.svg" | relURL }}" width=20 alt="Dark Theme">
</a>
<div id="themeMenu" class="dropdown-menu dropdown-menu-icons-only" aria-labelledby="themeSelector">
+2 -2
View File
@@ -25,7 +25,7 @@
<p class="p-1 text-justify">
{{ .summary | markdownify }}
</p>
<div class="text-container ms-auto">
<div class="text-container ml-auto">
<ul class="social-link d-flex">
{{ range .socialLinks }}
<li>
@@ -52,7 +52,7 @@
{{ end }}
</div>
<!-- soft skills circular-progressbar -->
<div class="col-sm-6 pt-5 ps-md-4 ps-sm-3 pt-sm-0">
<div class="col-sm-6 pt-5 pl-md-4 pl-sm-3 pt-sm-0">
<div class="row">
{{ range .badges }}
{{ partial "misc/badge.html" . }}
@@ -13,7 +13,7 @@
{{ end }}
<div class="container">
<div class="row" id="accomplishment-card-holder">
<div class="row" id="acomplishment-card-holder">
{{ range .accomplishments }}
{{ partial "cards/accomplishments" . }}
{{ end }}
@@ -17,11 +17,11 @@
<i class="fa-solid fa-xmark hidden"></i>
<i class="fa-solid fa-magnifying-glass-plus" id="enlarge-icon"></i>
<h4 class="title" id="achievement-title">{{ .title }}</h4>
<div class="caption hidden col-lg-6 text-start" id="caption">
<div class="caption hidden col-lg-6 text-left" id="caption">
<h4>{{ .title }}</h4>
<p>{{ .summary | markdownify }}</p>
{{ if .url }}
<a class="btn btn-info ms-1 ps-2 mb-2" href="{{ .url }}" target="_blank" rel="noopener" role="button">{{ i18n "project_details"}}</a>
<a class="btn btn-info ml-1 pl-2 mb-2" href="{{ .url }}" target="_blank" rel="noopener" role="button">{{ i18n "project_details"}}</a>
{{ end }}
</div>
<span style="background-image: url('{{ $achievementImageSm }}');" class="d-none" id="SmallImage" active="true"></span>
+2 -22
View File
@@ -31,18 +31,6 @@
</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 }}
@@ -101,9 +89,9 @@
</ul>
{{ end }}
{{ if gt (len .takenCourses.courses) $collapseAfter }}
<button type="button" class="btn btn-link show-more-btn pt-0 {{ if .takenCourses.showGrades }}ms-1{{ else }}ms-2{{ end }}"
<button type="button" class="btn btn-link show-more-btn pt-0 {{ if .takenCourses.showGrades }}ml-1{{ else }}ml-2{{ end }}"
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 }}ms-1{{ else }}ms-2{{ end }}"
<button type="button" class="btn btn-link show-more-btn hidden pt-0 {{ if .takenCourses.showGrades }}ml-1{{ else }}ml-2{{ end }}"
id="show-less-btn" aria-label="{{ i18n "show_less"}}">{{ i18n "show_less"}}</button>
{{ end }}
</div>
@@ -118,14 +106,6 @@
</ul>
</div>
{{ end }}
{{ if .customSections }}
<div class="custom-section">
{{ range .customSections }}
<h6 class="text-heading">{{ .name }}: </h6>
<div class="custom-content">{{ .content | markdownify }}</div>
{{ end }}
</div>
{{ end }}
</div>
</td>
<td class="line">
+2 -22
View File
@@ -31,18 +31,6 @@
</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 }}
@@ -101,9 +89,9 @@
</ul>
{{ end }}
{{ if gt (len .takenCourses.courses ) $collapseAfter }}
<button type="button" class="btn btn-link show-more-btn pt-0 {{ if .takenCourses.showGrades }}ms-1{{ else }}ms-2{{ end }}"
<button type="button" class="btn btn-link show-more-btn pt-0 {{ if .takenCourses.showGrades }}ml-1{{ else }}ml-2{{ end }}"
id="show-more-btn">{{ i18n "show_more"}}</button>
<button type="button" class="btn btn-link show-more-btn hidden pt-0 {{ if .takenCourses.showGrades }}ms-1{{ else }}ms-2{{ end }}"
<button type="button" class="btn btn-link show-more-btn hidden pt-0 {{ if .takenCourses.showGrades }}ml-1{{ else }}ml-2{{ end }}"
id="show-less-btn">{{ i18n "show_less"}}</button>
{{ end }}
</div>
@@ -118,14 +106,6 @@
</ul>
</div>
{{ end }}
{{ if .customSections }}
<div class="custom-section">
{{ range .customSections }}
<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/positions.html" $experience }}
{{ partial "sections/experiences/experience-info.html" $experience }}
</div>
{{else}}
<div class="row align-items-center justify-content-end d-flex">
{{ partial "sections/experiences/positions.html" $experience }}
{{ partial "sections/experiences/experience-info.html" $experience }}
{{ partial "sections/experiences/vertical-line.html" $index }}
</div>
{{ end }}
@@ -0,0 +1,5 @@
{{ if gt (len .positions) 1 }}
{{ partial "sections/experiences/multiple-positions.html" . }}
{{ else }}
{{ partial "sections/experiences/single-position.html" . }}
{{ end }}
@@ -0,0 +1,29 @@
<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>
@@ -1,46 +0,0 @@
<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>
@@ -0,0 +1,23 @@
<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>
@@ -1,3 +1,3 @@
<div class="col-1 col-lg-2 text-center vertical-line d-inline-flex justify-content-center">
<div class="circle fw-bold">{{ add . 1 }}</div>
<div class="circle font-weight-bold">{{ add . 1 }}</div>
</div>
+1 -1
View File
@@ -11,7 +11,7 @@
<h1 class="text-center" style="display: none">
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
{{ end }}
<div class="container ms-auto text-center">
<div class="container ml-auto text-center">
<div class="btn-group flex-wrap" role="group" id="project-filter-buttons">
{{ range .buttons }}
<button type="button" class="btn btn-dark project-filtr-control" data-filter="{{ .filter }}">
+1 -1
View File
@@ -11,7 +11,7 @@
<h1 class="text-center" style="display: none">
<span id="{{ $sectionID }}"></span>{{ .section.name }}</h1>
{{ end }}
<div class="container ms-auto text-center">
<div class="container ml-auto text-center">
<div class="btn-group flex-wrap" role="pub-group" id="publication-filter-buttons">
{{ range .buttons }}
<button type="button" class="btn btn-dark pub-filtr-control" data-filter="pub-{{ .filter }}">
+1 -1
View File
@@ -29,7 +29,7 @@
display: flex;
align-items: center;
justify-content: center;">
<a href="/posts/" title="Show More" class="float-end btn btn-outline-info btn-sm" >
<a href="/posts/" title="Show More" class="float-right btn btn-outline-info btn-sm" >
{{ i18n "show_more"}}</a>
</div>
{{ end }}
+2 -3
View File
@@ -4,7 +4,7 @@
{{ define "sidebar" }}
{{ $homePage:="#" }}
{{ if hugo.IsMultilingual }}
{{ if site.IsMultiLingual }}
{{ $homePage = (path.Join (cond ( eq .Language.Lang "en") "" .Language.Lang) .Type) }}
{{ end }}
@@ -33,8 +33,7 @@
<div class="content container-fluid" id="content">
<div class="container-fluid post-card-holder" id="post-card-holder">
{{ $posts := where .RegularPagesRecursive "Layout" "!=" "search" }}
{{ $numShow := site.Params.features.pagination.maxPostsPerPage | default 12}}
{{ $paginator := .Paginate $posts $numShow }}
{{ $paginator := .Paginate $posts 12 }}
{{ range $paginator.Pages }}
{{ if .Layout }}
{{/* ignore the search.md file*/}}
+12 -12
View File
@@ -5,34 +5,34 @@ publish = "exampleSite/public"
[context.production.environment]
HUGO_ENABLEGITINFO = "true"
HUGO_ENV = "production"
HUGO_VERSION = "0.126.2"
NODE_VERSION = "v20.11.1"
NPM_VERSION = "10.5.0"
HUGO_VERSION = "0.120.1"
NODE_VERSION = "v18.12.1"
NPM_VERSION = "8.19.2"
[context.split1]
command = "cd exampleSite && hugo mod tidy && hugo mod npm pack && npm install && hugo --gc --minify --enableGitInfo"
[context.split1.environment]
HUGO_ENV = "production"
HUGO_VERSION = "0.124.0"
NODE_VERSION = "v20.11.1"
NPM_VERSION = "10.5.0"
HUGO_VERSION = "0.120.1"
NODE_VERSION = "v18.12.1"
NPM_VERSION = "8.19.2"
[context.deploy-preview]
command = "cd exampleSite && hugo mod tidy && hugo mod npm pack && npm install && hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL"
[context.deploy-preview.environment]
HUGO_VERSION = "0.126.2"
NODE_VERSION = "v20.11.1"
NPM_VERSION = "10.5.0"
HUGO_VERSION = "0.120.1"
NODE_VERSION = "v18.12.1"
NPM_VERSION = "8.19.2"
[context.branch-deploy]
command = "cd exampleSite && hugo mod tidy && hugo mod npm pack && npm install && hugo --gc --minify -b $DEPLOY_PRIME_URL"
[context.branch-deploy.environment]
HUGO_VERSION = "0.126.2"
NODE_VERSION = "v20.11.1"
NPM_VERSION = "10.5.0"
HUGO_VERSION = "0.120.1"
NODE_VERSION = "v18.12.1"
NPM_VERSION = "8.19.2"
[context.next.environment]
HUGO_ENABLEGITINFO = "true"
+46 -49
View File
@@ -12,7 +12,7 @@
"@fontsource/mulish": "4.5.13",
"@fortawesome/fontawesome-free": "^6.2.0",
"autoprefixer": "^10.4.13",
"bootstrap": "^5.3.3",
"bootstrap": "^4.6.2",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
"eslint-config-standard": "^17.0.0",
@@ -28,7 +28,7 @@
"imagesloaded": "^5.0.0",
"include-media": "^1.4.10",
"ityped": "^1.0.3",
"katex": "^0.16.10",
"katex": "^0.16.3",
"mark.js": "^8.11.1",
"mermaid": "^9.2.1",
"plyr": "^3.7.2",
@@ -150,17 +150,6 @@
"node": ">= 8"
}
},
"node_modules/@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"dev": true,
"peer": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
@@ -363,9 +352,9 @@
}
},
"node_modules/bootstrap": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
"integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz",
"integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==",
"dev": true,
"funding": [
{
@@ -378,7 +367,8 @@
}
],
"peerDependencies": {
"@popperjs/core": "^2.11.8"
"jquery": "1.9.1 - 3",
"popper.js": "^1.16.1"
}
},
"node_modules/brace-expansion": {
@@ -392,12 +382,12 @@
}
},
"node_modules/braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"dependencies": {
"fill-range": "^7.1.1"
"fill-range": "^7.0.1"
},
"engines": {
"node": ">=8"
@@ -1707,9 +1697,9 @@
}
},
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -2532,6 +2522,13 @@
"integrity": "sha512-46Qnh3qs+6EJlWDHmvWRW6qiz5jFy2mkh9UvtTvQmLJMZIjKrdz4du68le7hLX4tAWCp6QTKiq/OuLv6huHxZg==",
"dev": true
},
"node_modules/jquery": {
"version": "3.6.3",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz",
"integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==",
"dev": true,
"peer": true
},
"node_modules/js-sdsl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
@@ -2591,16 +2588,16 @@
}
},
"node_modules/katex": {
"version": "0.16.10",
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz",
"integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==",
"version": "0.16.4",
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.4.tgz",
"integrity": "sha512-WudRKUj8yyBeVDI4aYMNxhx5Vhh2PjpzQw1GRu/LVGqL4m1AxwD1GcUp0IMbdJaf5zsjtj8ghP0DOQRYhroNkw==",
"dev": true,
"funding": [
"https://opencollective.com/katex",
"https://github.com/sponsors/katex"
],
"dependencies": {
"commander": "^8.3.0"
"commander": "^8.0.0"
},
"bin": {
"katex": "cli.js"
@@ -3934,13 +3931,6 @@
"fastq": "^1.6.0"
}
},
"@popperjs/core": {
"version": "2.11.8",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
"integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
"dev": true,
"peer": true
},
"@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
@@ -4073,9 +4063,9 @@
"dev": true
},
"bootstrap": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
"integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz",
"integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==",
"dev": true,
"requires": {}
},
@@ -4090,12 +4080,12 @@
}
},
"braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
"fill-range": "^7.1.1"
"fill-range": "^7.0.1"
}
},
"browserslist": {
@@ -5073,9 +5063,9 @@
}
},
"fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
@@ -5662,6 +5652,13 @@
"integrity": "sha512-46Qnh3qs+6EJlWDHmvWRW6qiz5jFy2mkh9UvtTvQmLJMZIjKrdz4du68le7hLX4tAWCp6QTKiq/OuLv6huHxZg==",
"dev": true
},
"jquery": {
"version": "3.6.3",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz",
"integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==",
"dev": true,
"peer": true
},
"js-sdsl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
@@ -5709,12 +5706,12 @@
}
},
"katex": {
"version": "0.16.10",
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz",
"integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==",
"version": "0.16.4",
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.4.tgz",
"integrity": "sha512-WudRKUj8yyBeVDI4aYMNxhx5Vhh2PjpzQw1GRu/LVGqL4m1AxwD1GcUp0IMbdJaf5zsjtj8ghP0DOQRYhroNkw==",
"dev": true,
"requires": {
"commander": "^8.3.0"
"commander": "^8.0.0"
}
},
"khroma": {
+3 -3
View File
@@ -27,18 +27,18 @@
"eslint-plugin-n": "^15.6.0",
"eslint-plugin-no-jquery": "^2.7.0",
"eslint-plugin-promise": "^6.1.1",
"postcss": "^8.4.31",
"postcss": "^8.4.21",
"postcss-cli": "^8.3.1",
"@fontsource/mulish": "4.5.13",
"@fortawesome/fontawesome-free": "^6.2.0",
"bootstrap": "^5.3.3",
"bootstrap": "^4.6.2",
"filterizr": "^2.2.4",
"flag-icon-css": "^4.1.7",
"fuse.js": "^6.6.2",
"highlight.js": "^11.6.0",
"imagesloaded": "^5.0.0",
"ityped": "^1.0.3",
"katex": "^0.16.10",
"katex": "^0.16.3",
"mark.js": "^8.11.1",
"mermaid": "^9.2.1",
"plyr": "^3.7.2",
+2 -2
View File
@@ -40,7 +40,7 @@
"@fontsource/mulish": "4.5.13",
"@fortawesome/fontawesome-free": "^6.2.0",
"autoprefixer": "^10.4.13",
"bootstrap": "^5.3.3",
"bootstrap": "^4.6.2",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
"eslint-config-standard": "^17.0.0",
@@ -56,7 +56,7 @@
"imagesloaded": "^5.0.0",
"include-media": "^1.4.10",
"ityped": "^1.0.3",
"katex": "^0.16.10",
"katex": "^0.16.3",
"mark.js": "^8.11.1",
"mermaid": "^9.2.1",
"plyr": "^3.7.2",
+20 -27
View File
@@ -1,14 +1,24 @@
name = "Toha"
# 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/"
license = "MIT"
licenselink = "https://github.com/hugo-toha/toha/blob/master/LICENSE"
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/"
min_version = "0.118.0"
name = "Toha"
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",
@@ -24,24 +34,7 @@ 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"
[module]
[module.hugoVersion]
extended = true
min = "0.118.0"
homepage = "https://hossainemruz.github.io"
name = "Emruz Hossain"