refactor: prefine for version v1.0.2 (#269)

* refactor: refactor navigateVector logic and remove unused functions

* refactor: refactor HTML structure and styling in single.html

- Modify the `.info` class to `article` in `_article.scss`
- Remove the `nav.html` partial in `single.html`
- Change the class name from `info` to `article` in `single.html`
- Add the `nav.html` partial in `single.html`

* refactor: update handling of 404 page
- Now hugo will set unknown page title as "404"
- Add condition to return an empty image array if the document title starts with "404"

* docs: update documentation
This commit is contained in:
Spedon
2024-02-05 16:02:10 +08:00
committed by GitHub
parent a98c6a4a60
commit ba07636f8f
8 changed files with 39 additions and 31 deletions

View File

@@ -1,4 +1,4 @@
.info { article {
padding: var(--space-standard); padding: var(--space-standard);
max-width: 25em; max-width: 25em;
@@ -42,7 +42,7 @@
} }
@media (max-width: $tablet), (hover: none) { @media (max-width: $tablet), (hover: none) {
.info { article {
margin-top: var(--nav-height); margin-top: var(--nav-height);
} }
} }

View File

@@ -50,6 +50,7 @@ export function slideUp(): void {
}) })
setTimeout(() => { setTimeout(() => {
// cleanup
scrollable.set(false) scrollable.set(false)
isAnimating.set(false) isAnimating.set(false)
}, 1400) }, 1400)
@@ -58,7 +59,6 @@ export function slideUp(): void {
function slideDown(): void { function slideDown(): void {
if (isAnimating.get()) return if (isAnimating.get()) return
isAnimating.set(true) isAnimating.set(true)
lastIndex = -1 // cleanup
scrollToActive() scrollToActive()
_gsap.to(gallery, { _gsap.to(gallery, {
@@ -74,8 +74,10 @@ function slideDown(): void {
}) })
setTimeout(() => { setTimeout(() => {
// cleanup
scrollable.set(true) scrollable.set(true)
isAnimating.set(false) isAnimating.set(false)
lastIndex = -1
}, 1600) }, 1600)
} }
@@ -106,12 +108,14 @@ export function initGallery(ijs: ImageJSON[]): void {
return // change slide only when index is changed return // change slide only when index is changed
else if (lastIndex === -1) else if (lastIndex === -1)
navigateVector.set('none') // lastIndex before set navigateVector.set('none') // lastIndex before set
else if (o.index < lastIndex) navigateVector.set('prev') else if (o.index < lastIndex)
else if (o.index > lastIndex) navigateVector.set('next') navigateVector.set('prev') // set navigate vector for galleryLoadImages
else navigateVector.set('none') else if (o.index > lastIndex)
changeSlide(o.index) navigateVector.set('next') // set navigate vector for galleryLoadImages
updateIndexText() else navigateVector.set('none') // default
lastIndex = o.index changeSlide(o.index) // change slide to new index
updateIndexText() // update index text
lastIndex = o.index // update last index
}) })
// mounted watcher // mounted watcher
mounted.addWatcher((o) => { mounted.addWatcher((o) => {

View File

@@ -11,6 +11,9 @@ export interface ImageJSON {
} }
export async function initResources(): Promise<ImageJSON[]> { export async function initResources(): Promise<ImageJSON[]> {
if (document.title.split(' | ')[0] === '404') {
return [] // no images on 404 page
}
try { try {
const response = await fetch(`${window.location.href}index.json`, { const response = await fetch(`${window.location.href}index.json`, {
headers: { headers: {

View File

@@ -163,12 +163,12 @@ replacements = "github.com/Sped0n/bridget -> ../.."
path = "github.com/Sped0n/bridget" path = "github.com/Sped0n/bridget"
``` ```
- If you have <u>installation with Git</u> - If you have _installation with Git_
- `replacement`: replace the <u>path after the arrow</u>(`../..`) with the location of your local theme file (⚠️⚠️⚠️**relative path only**, example: `themes/bridget`) - `replacement`: replace the _path after the arrow_(`../..`) with the location of your local theme file (⚠️⚠️⚠️**relative path only**, example: `themes/bridget`)
- `path`: no change - `path`: no change
- If you have <u>installation with Module</u>, **remove the `replacements` configuration**. - If you have _installation with Module_, **remove the `replacements` configuration**.
### `markup.toml` ### `markup.toml`
@@ -199,17 +199,17 @@ https://gohugo.io/templates/sitemap-template/#configuration
> If you want to modify js/ts file, please use option 2. > If you want to modify js/ts file, please use option 2.
1. Use hugo create a site and move the bridget theme into the theme directory. 1. Use hugo create a site and move the bridget theme into the theme directory.
2. Run `npm install` in the <u>bridget theme root dir</u>, not <u>your hugo site root dir</u>. 2. Run `npm install` in the _bridget theme root dir_, not _your hugo site root dir_.
3. After the command is done, copy the `node_modules` dir from <u>bridget theme root dir</u> to <u>your hugo site root dir</u>. 3. After the command is done, copy the `node_modules` dir from _bridget theme root dir_ to _your hugo site root dir_.
4. In <u>your hugo site root dir</u>, write/modify configuration files according to your needs, remember to set `bundled` option to `false`, so hugo will not use prebuilt css file. 4. In _your hugo site root dir_, write/modify configuration files according to your needs, remember to set `bundled` option to `false`, so hugo will not use prebuilt css file.
5. Run `hugo server` in <u>your hugo site root dir</u>, and you are good to go. 5. Run `hugo server` in _your hugo site root dir_, and you are good to go.
### Option 2: recommended way ### Option 2: recommended way
1. Use hugo create a site and move the bridget theme into the theme directory. 1. Use hugo create a site and move the bridget theme into the theme directory.
2. Run `npm install` in the <u>bridget theme root dir</u>, not <u>your hugo site root dir</u>. 2. Run `npm install` in the _bridget theme root dir_, not _your hugo site root dir_.
3. Run `npm run dev` in the <u>bridget theme root dir</u>, we will use content in exampleSite to debug. 3. Run `npm run dev` in the _bridget theme root dir_, we will use content in exampleSite to debug.
4. Make your customization. 4. Make your customization.
5. After modification, run `npm run build` in the <u>bridget theme root dir</u> to build artifacts. 5. After modification, run `npm run build` in the _bridget theme root dir_ to build artifacts.
6. In <u>your hugo site root dir</u>, write/modify configuration files according to your needs, remember to set `bundled` option to `true`, so hugo will use the artifacts you built in step 5. 6. In _your hugo site root dir_, write/modify configuration files according to your needs, remember to set `bundled` option to `true`, so hugo will use the artifacts you built in step 5.
7. Run `hugo server` in <u>your hugo site root dir</u>, and you are good to go. 7. Run `hugo server` in _your hugo site root dir_, and you are good to go.

View File

@@ -12,11 +12,11 @@ unifiedAlt: ''
Bridget is a _minimal_ Hugo theme designed for photographers/visual artists. Bridget is a _minimal_ Hugo theme designed for photographers/visual artists.
The inspiration for this theme came from a video by <u>[Hyperlexed](https://www.youtube.com/@Hyperplexed)</u>, which can be found <u>[here](https://www.youtube.com/watch?v=Jt3A2lNN2aE)</u>. Initially, it was developed using raw TypeScript and CSS. However, after website designer <u>[Tyler McRobert](https://tylermcrobert.com)</u> made the source code publicly available, I realized that I have invented many unnecessary components, and this project was modified to porting the original design to hugo while focusing on _performance_. The inspiration for this theme came from a video by <u>[Hyperlexed](https://www.youtube.com/@Hyperplexed)</u>, which can be found <u>[here](https://www.youtube.com/watch?v=Jt3A2lNN2aE)</u>. Initially, it was developed using no third-party dependencies. However, after website designer <u>[Tyler McRobert](https://tylermcrobert.com)</u> made the source code publicly available, I realized that I have invented many unnecessary wheels, and this project was modified to porting the original design to hugo while focusing on _performance_.
Once again, great shout out to <u>[Tyler McRobert](https://tylermcrobert.com)</u> for his inspiration to this project. Once again, great shout out to <u>[Tyler McRobert](https://tylermcrobert.com)</u> for his inspiration to this project.
[Repo ↗](https://github.com/Sped0n/bridget) [GitHub Repo ↗](https://github.com/Sped0n/bridget)
Original site design by <u>[Tyler McRobert](https://tylermcrobert.com)</u>. Original site design by <u>[Tyler McRobert](https://tylermcrobert.com)</u>.

View File

@@ -1,10 +1,10 @@
{{- define "main" -}} {{- define "main" -}}
<div class="container"> <div class="container">
{{- partial "nav.html" . -}} {{- partial "nav.html" . -}}
</div> <article>
<article class="info">
<p class="error">&#9949; <u>404</u>&nbsp;{{- i18n 404 -}}&nbsp;&#9949;</p> <p class="error">&#9949; <u>404</u>&nbsp;{{- i18n 404 -}}&nbsp;&#9949;</p>
<p class="error">&#9949; <u>404</u>&nbsp;{{- i18n 404 -}}&nbsp;&#9949;</p> <p class="error">&#9949; <u>404</u>&nbsp;{{- i18n 404 -}}&nbsp;&#9949;</p>
<p class="error">&#9949; <u>404</u>&nbsp;{{- i18n 404 -}}&nbsp;&#9949;</p> <p class="error">&#9949; <u>404</u>&nbsp;{{- i18n 404 -}}&nbsp;&#9949;</p>
</article> </article>
</div>
{{- end -}} {{- end -}}

View File

@@ -6,11 +6,12 @@
data-close="{{- i18n "close" -}}" data-close="{{- i18n "close" -}}"
data-loading="{{- i18n "loading" -}}" data-loading="{{- i18n "loading" -}}"
> >
{{- partial "nav.html" . -}}
{{- with .Content -}} {{- with .Content -}}
<article class="info"> <article>
{{- . -}} {{- . -}}
</article> </article>
{{- end -}} {{- end -}}
{{- partial "nav.html" . -}}
</div> </div>
{{- end -}} {{- end -}}

View File

@@ -1,7 +1,7 @@
{{- $currentPage := . -}} {{- $currentPage := . -}}
{{- $identifier := "" -}} {{- $identifier := "" -}}
{{- $title := "" -}} {{- $title := "404" -}}
{{- $weight := -1 -}} {{- $weight := -1 -}}
{{- range site.Menus.main -}} {{- range site.Menus.main -}}