Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
a419c76
Add blog section with summary display on listing page :: Created cont…
bits-and-atoms Jan 29, 2025
fbfb57d
added new line to each files and removed test files
bits-and-atoms Feb 1, 2025
d5ff76b
Merge branch 'snapcrafters:main' into dev
bits-and-atoms Feb 1, 2025
d289510
Basic structure creation for single blog page
bits-and-atoms Feb 5, 2025
4f9474d
added breadcrumb navigation for a single blog page
bits-and-atoms Feb 7, 2025
fd17897
adding vanilla framework for breadcrumb navigation
bits-and-atoms Feb 7, 2025
3f814e3
adding meta data of blog
bits-and-atoms Feb 11, 2025
1b8aee5
adding author data
bits-and-atoms Feb 11, 2025
c1018d1
table of content added styling is remaining
bits-and-atoms Feb 11, 2025
0693253
bottom navigation for blog added without styling
bits-and-atoms Feb 11, 2025
e364624
incorporating features to single blog page
bits-and-atoms Feb 11, 2025
3d55743
adding new line at end of files
bits-and-atoms Feb 11, 2025
b067f2a
Delete assets/css/breadcrumbs.css
bits-and-atoms Feb 11, 2025
2477f99
adding emojify
bits-and-atoms Feb 17, 2025
95d9fb5
changing title
bits-and-atoms Feb 17, 2025
3e25052
adding list page with necessary objects
bits-and-atoms Feb 17, 2025
9926d5b
meta data file for list page of blog
bits-and-atoms Feb 17, 2025
edf7141
minor bug fixes
bits-and-atoms Feb 17, 2025
11ed6d4
adding tag taxonomy
bits-and-atoms Feb 17, 2025
3a00367
Merge branch 'snapcrafters:main' into dev
bits-and-atoms Feb 17, 2025
0d01daa
styling of blog list,term and single page done
bits-and-atoms Feb 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions content/blog/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: "Blogs"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
title: "Blogs"
title: "Blog"

description: "Latest updates and articles"
DisplayBreadCrumbs: true
---
5 changes: 5 additions & 0 deletions hugo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,8 @@ favicon = "https://avatars.githubusercontent.com/u/29598503?s=128"

[markup.goldmark.renderer]
unsafe = true

summaryLength = 70
enableEmoji = true
[taxonomies]
tag = "tags"
60 changes: 60 additions & 0 deletions layouts/_default/term.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{{- define "main" }}
<div class="blog-list-container">
{{- if not .IsHome | and .Title }}
<header class="blog-header">
{{ partial "breadcrumbs-for-tags.html" . }}
<h1 class="blog-page-title">{{ .Title }}</h1>
{{- if .Description }}
<div class="blog-page-description">
{{ .Description | markdownify | emojify | safeHTML}}
</div>
{{- end }}
</header>
{{- end }}

{{- if .Content }}
<div class="blog-content">
{{ .Content }}
</div>
{{- end }}

{{- $pages := slice }}
{{- if .IsHome }}
{{- $sections := site.Params.mainSections | default (slice "tags") }}
{{- range site.RegularPages }}
{{- if (and (in $sections .Section) (not .Params.hiddenInHomeList)) }}
{{- $pages = $pages | append . }}
{{- end }}
{{- end }}
{{- else }}
{{- $pages = .RegularPages }}
{{- end }}

{{- $paginator := .Paginate $pages }}

{{- range $paginator.Pages }}
<article class="blog-card">
<a class="blog-card-link-wrapper" href="{{ .Permalink }}">
<header class="blog-card-header">
<h2 class="blog-card-title">
{{ .Title | emojify | safeHTML }}
{{- if .Draft }} <span class="draft-badge">[Draft]</span> {{- end }}
</h2>
</header>

{{- if not .Params.hideSummary }}
<div class="blog-card-summary">
<p>{{ .Summary | plainify | htmlUnescape | emojify | truncate 250 | safeHTML}}{{ if .Truncated }}...{{ end }}</p>
</div>
{{- end }}

{{- if not .Params.hideMeta }}
<footer class="blog-card-meta">
{{- partial "blog-only-date.html" . }}
</footer>
{{- end }}
</a>
</article>
{{- end }}
</div>
{{- end }}
60 changes: 60 additions & 0 deletions layouts/blog/list.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{{- define "main" }}
<div class="blog-list-container">
{{- if not .IsHome | and .Title }}
<header class="blog-header">
{{ partial "breadcrumbs.html" . }}
<h1 class="blog-page-title">{{ .Title }}</h1>
{{- if .Description }}
<div class="blog-page-description">
{{ .Description | markdownify | emojify | safeHTML}}
</div>
{{- end }}
</header>
{{- end }}

{{- if .Content }}
<div class="blog-content">
{{ .Content | markdownify | emojify | safeHTML}}
</div>
{{- end }}

{{- $pages := slice }}
{{- if .IsHome }}
{{- $sections := site.Params.mainSections | default (slice "blogs") }}
{{- range site.RegularPages }}
{{- if (and (in $sections .Section) (not .Params.hiddenInHomeList)) }}
{{- $pages = $pages | append . }}
{{- end }}
{{- end }}
{{- else }}
{{- $pages = .RegularPages }}
{{- end }}

{{- $paginator := .Paginate $pages }}

{{- range $paginator.Pages }}
<article class="blog-card">
<a class="blog-card-link-wrapper" href="{{ .Permalink }}">
<header class="blog-card-header">
<h2 class="blog-card-title">
{{ .Title | emojify | safeHTML }}
{{- if .Draft }} <span class="draft-badge">[Draft]</span> {{- end }}
</h2>
</header>

{{- if not .Params.hideSummary }}
<div class="blog-card-summary">
<p>{{ .Summary | plainify | htmlUnescape | emojify | truncate 250 | safeHTML}}{{ if .Truncated }}...{{ end }}</p>
</div>
{{- end }}

{{- if not .Params.hideMeta }}
<footer class="blog-card-meta">
{{- partial "blog-only-date.html" . }}
</footer>
{{- end }}
</a>
</article>
{{- end }}
</div>
{{- end }}
43 changes: 43 additions & 0 deletions layouts/blog/single.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{{- define "main" }}
<div class="blog-single-container">
<div class="">
<article class="">
<header class="blog-header">
{{ partial "breadcrumbs.html" . }}
<h1 class="blog-page-title">
{{ .Title | emojify | safeHTML}}
</h1>
{{- if (.Param "DisplayMeta") }}
<div class="blog-meta">
{{- partial "blog-meta.html" . -}}
</div>
{{- end }}
{{- if (.Param "DisplayCanonicalLink") }}
<div class="">
{{- partial "blog-canonical.html" . -}}
</div>
{{- end }}
</header>
{{- if (.Param "ShowToc") }}
{{- partial "blog-table-of-content.html" . }}
{{- end }}
{{- if .Content }}
<div class="">
{{ .Content | emojify | safeHTML}}
</div>
{{- end }}
<footer class="blog-footer">
{{- $tags := "tags" }}
<ul class="tag-list">
{{- range ($.GetTerms $tags) }}
<li class="tag-card"><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
{{- end }}
</ul>
{{- if (.Param "ShowFooterNav") }}
{{- partial "blog-footer-nav.html" . }}
{{- end }}
</footer>
</article>
</div>
</div>
{{- end }}
10 changes: 10 additions & 0 deletions layouts/partials/blog-author.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{{- if (or .Params.author site.Params.author) -}}
{{- $author := (.Params.author | default site.Params.author) -}}
{{- $authorType := printf "%T" $author -}}

{{- if (or (eq $authorType "[]string") (eq $authorType "[]interface {}")) -}}
{{- delimit $author ", " -}}
{{- else -}}
{{- $author -}}
{{- end -}}
{{- end -}}
8 changes: 8 additions & 0 deletions layouts/partials/blog-canonical.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{{ if and (.Params.CanonicalLink) (.Params.DisplayCanonicalLink ) -}}
{{ $url := urls.Parse .Params.CanonicalLink }}

<span class="blog-canonical">
{{- (site.Params.CanonicalLinkText | default .Params.CanonicalLinkText) | default "Read more at" -}}
&nbsp;<a href="{{ trim .Params.CanonicalLink " " }}" title="{{ trim .Params.CanonicalLink " " }}" target="_blank" rel="noopener noreferrer">{{ $url.Host }}</a>
</span>
{{- end }}
20 changes: 20 additions & 0 deletions layouts/partials/blog-footer-nav.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{{- $filteredPages := where site.RegularPages "Type" "in" site.Params.mainSections }}
{{- if and (gt (len $filteredPages) 1) (in $filteredPages .) }}
<nav class="footer-nav-card">
{{- with $filteredPages.Next . }}
<a class="footer-nav-link footer-nav-prev" href="{{ .Permalink }}">
<span class="footer-nav-text">{{ i18n "prev_page" }}</span>
<br>
<span class="footer-nav-title">{{ .Name | truncate 30 }}</span>
</a>
{{- end }}

{{- with $filteredPages.Prev . }}
<a class="footer-nav-link footer-nav-next" href="{{ .Permalink }}">
<span class="footer-nav-text">{{ i18n "next_page" }}</span>
<br>
<span class="footer-nav-title">{{ .Name | truncate 30 }}</span>
</a>
{{- end }}
</nav>
{{- end }}
26 changes: 26 additions & 0 deletions layouts/partials/blog-meta.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{{- $scratch := newScratch }}

{{- if not .Date.IsZero -}}
{{- $dateFormatted := printf "<span title='%s'>%s</span>" (.Date) (.Date | time.Format (default "January 2, 2006" site.Params.DateFormat)) }}
{{- $scratch.Add "meta" (slice $dateFormatted) }}
{{- end -}}

{{- if (.Param "ReadingTime") -}}
{{- $readingTime := i18n "read_time" .ReadingTime | default (printf "%d min" .ReadingTime) }}
{{- $scratch.Add "meta" (slice $readingTime) }}
{{- end -}}

{{- if (.Param "WordCount") -}}
{{- $wordCount := i18n "words" .WordCount | default (printf "%d words" .WordCount) }}
{{- $scratch.Add "meta" (slice $wordCount) }}
{{- end -}}

{{- if not (.Param "HideAuthor") -}}
{{- with (partial "blog-author.html" .) }}
{{- $scratch.Add "meta" (slice .) }}
{{- end -}}
{{- end -}}

{{- with ($scratch.Get "meta") -}}
{{- delimit . "&nbsp;·&nbsp;" | safeHTML -}}
{{- end -}}
4 changes: 4 additions & 0 deletions layouts/partials/blog-only-date.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{{- $scratch := newScratch }}
{{- if not .Date.IsZero -}}
<span title="{{ .Date }}">{{ .Date | time.Format "January 2, 2006 15:04" }}</span>
{{- end -}}
39 changes: 39 additions & 0 deletions layouts/partials/blog-table-of-content.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{{- $headers := findRE "<h[1-6].*?>(.|\n])+?</h[1-6]>" .Content -}}
{{- $has_headers := ge (len $headers) 1 -}}
{{- if $has_headers -}}
<div class="toc-card">
<details {{ if (.Param "DefaultOpenTOC" ) }} open{{ end }}>
<summary accesskey="z">
<span class="toc-title">{{ "Table of Contents" }}</span>
</summary>

<div class="toc-content">
{{- $headerLevels := slice -}}
{{- $.Scratch.Set "currentLevel" 1 -}}

<ul class="toc-list">
{{- range $i, $header := $headers -}}
{{- $headerLevel := len (seq (index (findRE "[1-6]" . 1) 0)) -}}
{{- $cleanedID := replaceRE ".*id=\"([^\"]+)\".*" "$1" $header -}}
{{- if lt $headerLevel ($.Scratch.Get "currentLevel") }}
</ul>
{{- else if gt $headerLevel ($.Scratch.Get "currentLevel") }}
<ul>
{{- end -}}

<li class="toc-item">
<a href="#{{- $cleanedID }}" aria-label="{{- $header | plainify | safeHTML }}">
{{- $header | plainify | safeHTML }}
</a>
</li>

{{- $.Scratch.Set "currentLevel" $headerLevel -}}
{{- end -}}
{{- range seq ($.Scratch.Get "currentLevel") 1 -}}
</ul>
{{- end -}}
</ul>
</div>
</details>
</div>
{{- end }}
22 changes: 22 additions & 0 deletions layouts/partials/breadcrumbs-for-tags.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<div class="breadcrumbs">
{{- $url := replace .Permalink (printf "%s" site.Home.Permalink) "" -}}
{{- $lang_url := strings.TrimPrefix (printf "%s/" .Lang) $url -}}

<a href="{{ "" | absLangURL }}">
{{ i18n "home" | default "Home" }}
</a>

{{- $scratch := newScratch -}}
{{- range $index, $element := split $lang_url "/" -}}
{{- if and (ne $element "tags") (gt (len $element) 0) -}}
{{- $scratch.Add "path" (printf "%s/" $element ) -}}
{{- $bc_pg := site.GetPage ($scratch.Get "path") -}}
{{- if $bc_pg -}}
{{- print "&nbsp;&nbsp;" | safeHTML -}}
<a href="{{ $bc_pg.Permalink }}">
{{ $bc_pg.Name }}
</a>
{{- end -}}
{{- end -}}
{{- end -}}
</div>
22 changes: 22 additions & 0 deletions layouts/partials/breadcrumbs.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{{- if (.Param "DisplayBreadCrumbs") -}}
<div class="breadcrumbs">
{{- $url := replace .Permalink (printf "%s" site.Home.Permalink) "" -}}
{{- $lang_url := strings.TrimPrefix (printf "%s/" .Lang) $url -}}

<a href="{{ "" | absLangURL }}">
{{ i18n "home" | default "Home" }}
</a>

{{- $scratch := newScratch -}}
{{- range $index, $element := split $lang_url "/" -}}
{{- $scratch.Add "path" (printf "%s" $element ) -}}
{{- $bc_pg := site.GetPage ($scratch.Get "path") -}}
{{- if (and ($bc_pg) (gt (len . ) 0)) -}}
{{- print "&nbsp;&nbsp;" | safeHTML -}}
<a href="{{ $bc_pg.Permalink }}">
{{ $bc_pg.Name }}
</a>
{{- end -}}
{{- end -}}
</div>
{{- end -}}
Loading