diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..d206a7d --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/minimal"] + path = themes/minimal + url = https://github.com/Nilesh2000/minimal diff --git a/themes/minimal b/themes/minimal new file mode 160000 index 0000000..3724e15 --- /dev/null +++ b/themes/minimal @@ -0,0 +1 @@ +Subproject commit 3724e15210c654043ad8464e549d24f2eb62b049 diff --git a/themes/minimal/LICENSE b/themes/minimal/LICENSE deleted file mode 100644 index 8aa2645..0000000 --- a/themes/minimal/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) [year] [fullname] - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/themes/minimal/README.md b/themes/minimal/README.md deleted file mode 100644 index 7cec74e..0000000 --- a/themes/minimal/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Theme Name - -## Features - -## Installation - -## Configuration diff --git a/themes/minimal/archetypes/default.md b/themes/minimal/archetypes/default.md deleted file mode 100644 index c6f3fce..0000000 --- a/themes/minimal/archetypes/default.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = '{{ replace .File.ContentBaseName "-" " " | title }}' -date = {{ .Date }} -draft = true -+++ diff --git a/themes/minimal/assets/css/main.css b/themes/minimal/assets/css/main.css deleted file mode 100644 index bf556c3..0000000 --- a/themes/minimal/assets/css/main.css +++ /dev/null @@ -1,473 +0,0 @@ -/* CSS Variables */ -:root { - --color-background: #ffffff; - --color-text-primary: #333; - --color-text-secondary: #666; - - --color-border: #ddd; - - --color-link: #00e; - --color-bg-strong: #f0f0f0; - --color-bg-social: linear-gradient(145deg, #ffffff, #f5f5f5); - - /* Brand Colors */ - --color-github: #24292e; - --color-linkedin: #0077b5; - --color-x-twitter: #000000; - - --color-heart: #d64545; -} - -[data-theme="dark"] { - --color-background: #1a1a1a; - --color-text-primary: #e0e0e0; - --color-text-secondary: #999; - - --color-border: #333; - - --color-link: #66b3ff; - --color-bg-strong: #2d2d2d; - --color-bg-social: linear-gradient(145deg, #222, #1a1a1a); - - /* Brand Colors */ - --color-github: #f0f6fc; - --color-linkedin: #0077b5; - --color-x-twitter: #ffffff; - - --color-heart: #e06c6c; -} - -/* Base Styles */ -body { - max-width: 768px; - min-height: 100vh; - margin: 0 auto; - padding: 1rem; - font-family: "IBM Plex Sans", serif; - font-size: 1.1rem; - line-height: 1.7; - text-align: justify; - background-color: var(--color-background); - color: var(--color-text-primary); - display: flex; - flex-direction: column; - transition: background-color 0.3s ease, color 0.3s ease; -} - -a { - color: var(--color-link); - text-decoration: none; -} - -strong { - background-color: var(--color-bg-strong); - border-radius: 3px; - font-weight: 500; - padding: 1px 4px; -} - -/* Typography */ -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: "Roboto Slab", serif; - font-weight: 400; -} - -/* Layout Components */ -header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 1rem; -} - -main { - flex: 1; -} - -footer { - border-top: 1px solid var(--color-border); - padding-bottom: 1rem; - text-align: center; -} - -.footer-content { - font-size: 0.9rem; - line-height: 1.5; -} - -/* Navigation */ -nav ul { - display: flex; - gap: 2.5rem; - list-style: none; - margin: 0; - padding: 0; - align-items: center; -} - -nav ul li a { - color: var(--color-link); - font-weight: 400; - padding: 0.5rem 0; - position: relative; -} - -nav ul li a.active { - color: var(--color-text-primary); - font-weight: 500; -} - -nav ul li a::after { - content: ''; - position: absolute; - left: 0; - bottom: 0; - width: 0; - height: 2px; - background-color: currentColor; - transition: width 0.3s ease; -} - -nav ul li a:hover::after { - width: 100%; -} - -/* Header Styles */ -.header-title { - font-size: 3rem; - font-weight: 600; - letter-spacing: -0.01em; - margin: 0; -} - -.header-title a { - color: inherit; -} - -/* Home Page Styles */ -.home-content { - max-width: 42rem; - margin: 0 auto; - font-size: 1.2rem; -} - -.home-content p { - line-height: 1.6; -} - -.home-content ul { - list-style: none; - padding: 0; -} - -.home-content li { - position: relative; - padding-left: 1.5rem; - margin: 0.75rem 0; -} - -.home-content li::before { - content: "•"; - position: absolute; - left: 0; - color: var(--color-link); -} - -/* Social Icons */ -.social-icons { - display: flex; - justify-content: center; - gap: 1.25rem; - margin: 2.5rem 0; -} - -.social-icons a { - width: 3.2rem; - height: 3.2rem; - display: flex; - align-items: center; - justify-content: center; - font-size: 1.4rem; - color: var(--color-text-primary); - background: var(--color-bg-social); - border: 1px solid rgba(0, 0, 0, 0.08); - border-radius: 10px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); - transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); -} - -.social-icons a:hover { - transform: translateY(-3px); - border-color: transparent; - box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12); -} - -.social-icons a:hover .fa-github { - color: var(--color-github); -} - -.social-icons a:hover .fa-linkedin-in { - color: var(--color-linkedin); -} - -.social-icons a:hover .fa-x-twitter { - color: var(--color-x-twitter); -} - -/* Post Styles */ -.post-header { - border-bottom: 2px solid var(--color-border); - padding-bottom: 0.1rem; -} - -.post-title { - font-size: 2.5rem; - line-height: 1.3; - margin-bottom: 0.75rem; -} - -.post-meta { - display: flex; - justify-content: space-between; - align-items: center; - font-size: 0.9rem; - color: var(--color-text-secondary); -} - -.post-meta time { - font-style: italic; -} - -.post-meta small { - margin-left: auto; -} - -/* Post Content Styles */ -.post-content h2 { - font-size: 1.8rem; - margin-top: 2.5rem; - margin-bottom: 1.25rem; -} - -.post-content h3 { - font-size: 1.4rem; - margin-bottom: 1rem; - margin-top: 2rem; -} - -.post-content p, -.post-content ul, -.post-content ol { - margin: 1.25rem 0; -} - -.post-content ul, -.post-content ol { - padding-left: 1.5rem; -} - -.post-content li { - margin: 0.5rem 0; -} - -.post-content hr { - height: 1px; - border: none; - background-color: var(--color-border); - margin: 2.5rem 0; -} - -.post-content blockquote { - border-left: 3px solid var(--color-border); - color: var(--color-text-secondary); - font-style: italic; - margin: 1.5rem 0; - padding-left: 1.25rem; -} - -.post-content code { - font-family: monospace; - font-size: 0.9em; - background-color: var(--color-bg-strong); - border-radius: 3px; - padding: 0.2em 0.4em; -} - -.post-content pre { - background-color: var(--color-bg-strong); - border-radius: 6px; - padding: 1rem; - margin: 1.5rem 0; - overflow-x: auto; -} - -.post-content pre code { - background: none; - padding: 0; -} - -.post-content img { - max-width: 100%; - height: auto; - display: block; - margin: 2rem auto; - border-radius: 6px; -} - -/* Post List Styles */ -.page-title { - border-bottom: 2px solid var(--color-border); -} - -.post-list { - list-style: none; - margin: 2rem 0; - padding: 0; -} - -.post-list li { - display: flex; - align-items: baseline; - gap: 1.5rem; - padding: 0.75rem 0; -} - -.post-list time { - min-width: 120px; - font-size: 0.9rem; - color: var(--color-text-secondary); -} - -.toggle { - align-items: center; - background: none; - border: none; - cursor: pointer; - display: flex; - height: 2rem; - justify-content: center; - padding: 0.5rem; - position: relative; - transition: transform 0.2s ease; - width: 2rem; -} - -.toggle input[type="checkbox"] { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; - white-space: nowrap; - appearance: none; - -webkit-appearance: none; -} - -.toggle:hover { - transform: scale(1.15); -} - -.toggle svg { - height: 1.8rem; - position: absolute; - transition: opacity 0.2s ease, transform 0.3s ease; - width: 1.8rem; -} - -.toggle .sun-icon { - opacity: 0; - stroke: #ffd700; - stroke-linecap: round; - stroke-width: 1.75; - transform: rotate(-90deg) scale(0.5); -} - -.toggle .sun-icon circle { - stroke-width: 1.5; -} - -.toggle .moon-icon { - fill: currentColor; - opacity: 1; - transform: rotate(0) scale(1); -} - -/* Add dark theme states */ -[data-theme="dark"] .toggle .sun-icon { - opacity: 1; - transform: rotate(0) scale(1); -} - -[data-theme="dark"] .toggle .moon-icon { - opacity: 0; - transform: rotate(90deg) scale(0.5); -} - -/* Back to Top Button */ -#back-to-top { - background: #f8f9fa; - border: 1px solid #dee2e6; - border-radius: 50%; - bottom: 20px; - color: #212529; - cursor: pointer; - display: none; - font-size: 20px; - height: 40px; - line-height: 1; - opacity: 0.8; - position: fixed; - right: 20px; - text-align: center; - transition: opacity 0.3s; - width: 40px; -} - -#back-to-top:hover { - opacity: 1; -} - -/* Icons */ -.fa-heart { - color: var(--color-heart); -} - -/* Media Queries */ -@media screen and (max-width: 768px) { - nav { - width: 100%; - } - - header { - flex-direction: column; - align-items: flex-start; - gap: 0.5rem; - padding-top: 0.5rem; - } - - nav ul { - flex-wrap: wrap; - gap: 1.6rem; - } - - .toggle { - margin-left: auto; - } - - .post-list li { - flex-direction: column; - gap: 0.25rem; - } - - .post-list time { - min-width: unset; - } -} diff --git a/themes/minimal/assets/js/main.js b/themes/minimal/assets/js/main.js deleted file mode 100644 index df95953..0000000 --- a/themes/minimal/assets/js/main.js +++ /dev/null @@ -1,27 +0,0 @@ -const elToggleTheme = document.querySelector(".toggle input[type='checkbox']"); - -elToggleTheme.checked = localStorage.theme === "dark"; -elToggleTheme.addEventListener("change", () => { - const theme = elToggleTheme.checked ? "dark" : "light"; - setTheme(theme); -}); - -document.addEventListener('DOMContentLoaded', function () { - const backToTop = document.getElementById('back-to-top'); - - window.addEventListener('scroll', function () { - if (window.scrollY > 300) { - backToTop.style.display = 'block'; - } else { - backToTop.style.display = 'none'; - } - }); - - backToTop.addEventListener('click', function (e) { - e.preventDefault(); - window.scrollTo({ - top: 0, - behavior: 'smooth' - }); - }); -}); diff --git a/themes/minimal/hugo.toml b/themes/minimal/hugo.toml deleted file mode 100644 index 3447449..0000000 --- a/themes/minimal/hugo.toml +++ /dev/null @@ -1,33 +0,0 @@ -baseURL = 'https://example.org/' -languageCode = 'en-US' -title = 'My New Hugo Site' - -[[menus.main]] -name = 'Home' -pageRef = '/' -weight = 10 - -[[menus.main]] -name = 'Posts' -pageRef = '/posts' -weight = 20 - -[[menus.main]] -name = 'TIL' -pageRef = '/til' -weight = 30 - -[[menus.main]] -name = 'Shelf' -pageRef = '/shelf' -weight = 40 - -[[menus.main]] -name = 'Tags' -pageRef = '/tags' -weight = 50 - -[module] - [module.hugoVersion] - extended = false - min = "0.116.0" diff --git a/themes/minimal/layouts/_default/baseof.html b/themes/minimal/layouts/_default/baseof.html deleted file mode 100644 index c320e7d..0000000 --- a/themes/minimal/layouts/_default/baseof.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - {{ partial "head.html" . }} - - -
- {{ partial "header.html" . }} -
-
- {{ block "main" . }}{{ end }} -
- - {{ partialCached "head/js.html" . }} - - diff --git a/themes/minimal/layouts/_default/home.html b/themes/minimal/layouts/_default/home.html deleted file mode 100644 index 66d1d52..0000000 --- a/themes/minimal/layouts/_default/home.html +++ /dev/null @@ -1,16 +0,0 @@ -{{ define "main" }} -
- {{ .Content }} -
-
- - - - - - - - - -
-{{ end }} diff --git a/themes/minimal/layouts/_default/list.html b/themes/minimal/layouts/_default/list.html deleted file mode 100644 index b3dda95..0000000 --- a/themes/minimal/layouts/_default/list.html +++ /dev/null @@ -1,21 +0,0 @@ -{{ define "main" }} -

{{ .Title }}

-{{ .Content }} - -{{ end }} diff --git a/themes/minimal/layouts/_default/single.html b/themes/minimal/layouts/_default/single.html deleted file mode 100644 index 4dc05e1..0000000 --- a/themes/minimal/layouts/_default/single.html +++ /dev/null @@ -1,23 +0,0 @@ -{{ define "main" }} -{{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }} -{{ $dateHuman := .Date | time.Format ":date_long" }} -{{ $wordCount := countwords .Content }} -{{ $readingTime := math.Ceil (div $wordCount 238.0) }} - -
-

{{ .Title }}

-
- - {{ $wordCount }} words ({{ $readingTime }} min read) -
-
- -
- {{ .Content }} -
-{{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }} - - -{{ end }} diff --git a/themes/minimal/layouts/partials/footer.html b/themes/minimal/layouts/partials/footer.html deleted file mode 100644 index acc8b76..0000000 --- a/themes/minimal/layouts/partials/footer.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/themes/minimal/layouts/partials/head.html b/themes/minimal/layouts/partials/head.html deleted file mode 100644 index cd9a957..0000000 --- a/themes/minimal/layouts/partials/head.html +++ /dev/null @@ -1,11 +0,0 @@ - - -{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }} - - - - -{{ partialCached "head/css.html" . }} -{{ partialCached "head/js.html" . }} diff --git a/themes/minimal/layouts/partials/head/css.html b/themes/minimal/layouts/partials/head/css.html deleted file mode 100644 index 91b928d..0000000 --- a/themes/minimal/layouts/partials/head/css.html +++ /dev/null @@ -1,9 +0,0 @@ -{{- with resources.Get "css/main.css" }} - {{- if eq hugo.Environment "development" }} - - {{- else }} - {{- with . | minify | fingerprint }} - - {{- end }} - {{- end }} -{{- end }} diff --git a/themes/minimal/layouts/partials/head/js.html b/themes/minimal/layouts/partials/head/js.html deleted file mode 100644 index 103a620..0000000 --- a/themes/minimal/layouts/partials/head/js.html +++ /dev/null @@ -1,13 +0,0 @@ -{{- with resources.Get "js/main.js" }} - {{- if eq hugo.Environment "development" }} - {{- with . | js.Build }} - - {{- end }} - {{- else }} - {{- $opts := dict "minify" true }} - {{- with . | js.Build $opts | fingerprint }} - - - {{- end }} - {{- end }} -{{- end }} diff --git a/themes/minimal/layouts/partials/header.html b/themes/minimal/layouts/partials/header.html deleted file mode 100644 index 28aefad..0000000 --- a/themes/minimal/layouts/partials/header.html +++ /dev/null @@ -1,6 +0,0 @@ -

- - {{ site.Title }} - -

-{{ partial "menu.html" (dict "menuID" "main" "page" .) }} diff --git a/themes/minimal/layouts/partials/menu.html b/themes/minimal/layouts/partials/menu.html deleted file mode 100644 index b16d7c4..0000000 --- a/themes/minimal/layouts/partials/menu.html +++ /dev/null @@ -1,77 +0,0 @@ -{{- /* -Renders a menu for the given menu ID with a theme switcher. - -@context {page} page The current page. -@context {string} menuID The menu ID. - -@example: {{ partial "menu.html" (dict "menuID" "main" "page" .) }} -*/}} - -{{- $page := .page }} -{{- $menuID := .menuID }} - -{{- with index site.Menus $menuID }} - -{{- end }} - -{{- define "partials/inline/menu/walk.html" }} - {{- $page := .page }} - {{- range .menuEntries }} - {{- $attrs := dict "href" .URL }} - {{- if $page.IsMenuCurrent .Menu . }} - {{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }} - {{- else if $page.HasMenuCurrent .Menu .}} - {{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }} - {{- end }} - {{- $name := .Name }} - {{- with .Identifier }} - {{- with T . }} - {{- $name = . }} - {{- end }} - {{- end }} -
  • - {{ $name }} - {{- with .Children }} - - {{- end }} -
  • - {{- end }} -{{- end }} diff --git a/themes/minimal/layouts/partials/terms.html b/themes/minimal/layouts/partials/terms.html deleted file mode 100644 index 8a6ebec..0000000 --- a/themes/minimal/layouts/partials/terms.html +++ /dev/null @@ -1,23 +0,0 @@ -{{- /* -For a given taxonomy, renders a list of terms assigned to the page. - -@context {page} page The current page. -@context {string} taxonomy The taxonomy. - -@example: {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }} -*/}} - -{{- $page := .page }} -{{- $taxonomy := .taxonomy }} - -{{- with $page.GetTerms $taxonomy }} - {{- $label := (index . 0).Parent.LinkTitle }} -
    -
    {{ $label }}:
    - -
    -{{- end }} diff --git a/themes/minimal/layouts/shelf/single.html b/themes/minimal/layouts/shelf/single.html deleted file mode 100644 index 2415e4e..0000000 --- a/themes/minimal/layouts/shelf/single.html +++ /dev/null @@ -1,20 +0,0 @@ -{{ define "main" }} - {{ $wordCount := countwords .Content }} - {{ $readingTime := math.Ceil (div $wordCount 238.0) }} - -
    -

    {{ .Title }}

    -
    - {{ $wordCount }} words ({{ $readingTime }} min read) -
    -
    - -
    - {{ .Content }} -
    - {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }} - - -{{ end }} diff --git a/themes/minimal/static/favicon.ico b/themes/minimal/static/favicon.ico deleted file mode 100644 index 67f8b77..0000000 Binary files a/themes/minimal/static/favicon.ico and /dev/null differ diff --git a/themes/minimal/theme.toml b/themes/minimal/theme.toml deleted file mode 100644 index 3ba3164..0000000 --- a/themes/minimal/theme.toml +++ /dev/null @@ -1,31 +0,0 @@ -name = 'Theme name' -license = 'MIT' -licenselink = 'https://github.com/owner/repo/LICENSE' -description = 'Theme description' - -# The home page of the theme, where the source can be found -homepage = 'https://github.com/owner/repo' - -# If you have a running demo of the theme -demosite = 'https://owner.github.io/repo' - -# Taxonomy terms -tags = ['blog', 'company'] -features = ['some', 'awesome', 'features'] - -# If the theme has multiple authors -authors = [ - {name = 'Name of author', homepage = 'Website of author'}, - {name = 'Name of author', homepage = 'Website of author'} -] - -# If the theme has a single author -[author] - name = 'Your name' - homepage = 'Your website' - -# If porting an existing theme -[original] - author = 'Name of original author' - homepage = 'Website of original author' - repo = 'https://github.com/owner/repo'