Delete multilingual i18n files for UI labels. Add English labels to
params.toml under [labels]. Update 404.html, single.html, and nav.html
to use site.Params.labels instead of i18n.
Signed-off-by: Sped0n <hi@sped0n.com>
Simplify to Geist font family for all languages. Update README, SCSS,
partials, and config. Fix style template execution order.
Signed-off-by: Sped0n <hi@sped0n.com>
* refactor: migrate part of the sass compilation to vite
now `bundled` option is deprecated
* fix: update build script
* chore: add a “type” field to the package.json file to resolve Vite’s complaints about CommonJS modules.
* 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
* feat: refactor file structure and imports in mobile and desktop components
- Removed the import of `scrollable` from `assets/ts/mobile/scroll.ts`
- Renamed `assets/ts/mobile/mounted.ts` to `assets/ts/mobile/state.ts`
- Changed the import of `active` from `./stage` to `./state` in `assets/ts/desktop/customCursor.ts`
- Changed the import of `active` from `../state` to `../globalState` in `assets/ts/desktop/stage.ts`
- Changed the import of `active` from `./stage` to `./state` in `assets/ts/desktop/stageNav.ts`
- Renamed `assets/ts/state.ts` to `assets/ts/globalState.ts`
- Created a new file `assets/ts/desktop/state.ts`
- Added the interface `HistoryItem` to `assets/ts/desktop/state.ts`
- Added the variables `cordHist`, `isOpen`, `active`, and `isLoading` to `assets/ts/desktop/state.ts`
- Deleted the function `loader` from `assets/ts/desktop/stage.ts` and replaced it with `setLoaderForImage`
- Deleted the import of `./stage` from `assets/ts/desktop/stageNav.ts`
- Added the import of `minimizeImage` from `./stage` in `assets/ts/desktop/stageNav.ts`
- Deleted the import of `./mounted` from `assets/ts/mobile/collection.ts`
- Changed the import of `mounted` from `./mounted` to `./state` in `
* refactor: refactor the `onVisible` function to improve performance
- Modify the type of the `onVisible` function parameter `T` to extend `HTMLElement`
- Change the `entries.forEach` loop in the `onVisible` function to `entries.every`
* feat: add new function for detecting opacity changes in element
- Add a new function `onOpacityOne` in `assets/ts/utils.ts`
- The function uses a `MutationObserver` to check for opacity changes on an element
- When the element's opacity reaches `1`, the provided callback function is called
- The `MutationObserver` is disconnected after the callback is executed
* refactor: refactor function names and parameters in intersection and mutation observers
- Change the function name `onVisible` to `onIntersection`
- Modify the `callback` parameter in the `onIntersection` function to accept `IntersectionObserverEntry[]` and `IntersectionObserver` parameters
- Remove the code block that checks for intersection ratio and immediately calls the `callback` function in the `onIntersection` function
- Modify the function name `onOpacityOne` to `onMutation`
- Modify the `callback` parameter in the `onMutation` function to accept `MutationRecord[]` and `MutationObserver` parameters
- Add a default value for the `observeOptions` parameter in the `onMutation` function
* refactor: refine preload logic on both mobile and desktop
* refactor: refactor import statements and add new files
- The import statement for `Watchable` in `assets/ts/globalState.ts` has been changed from `../utils` to `../globalUtils`
- The import statement for `Watchable` in `assets/ts/desktop/state.ts` has been changed from `../utils` to `../globalUtils`
- The import statement for `decrement` and `increment` in `assets/ts/desktop/stageNav.ts` has been changed from `../utils` to `../globalUtils`
- A new file `utils.ts` has been added in the `assets/ts/desktop` directory
- The import statements for `getRandom`, `onIntersection`, and `type MobileImage` in `assets/ts/mobile/collection.ts` have been changed from `../utils` to `./utils`
- The `imgs` array in `assets/ts/mobile/collection.ts` has been changed from an array of `HTMLImageElement` to an array of `MobileImage`
- The import statements for `expand`, `loadGsap`, `loadSwiper`, and `removeDuplicates` in `assets/ts/mobile/gallery.ts` have been changed from `../utils` to `../globalUtils`
- The import statement for `type MobileImage` in `assets/ts/mobile/gallery.ts` has been changed from `./utils` to `../mobile/utils`
- The `galleryLoadImages` function in `assets/ts/mobile/gallery.ts` has been removed
- A new file `utils.ts`
* refactor: refactor swiper import and functions in mobile and global utils
* refactor: refactor navigation and image loading logic in desktop and mobile
* refactor: remove print function and optimize removeDuplicates return
* refactor: update text variable assignments and attributes
* refactor: update variable types in galleryImages and collectionImages in mobile/gallery.ts
* refactor: refactor variable types for consistency with naming conventions
* refactor: update animation durations and types in gallery functions
* refactor: refactor image loading logic and add console logs
* refactor: refactor sass hierarchy
* refactor: remove console logs in multiple files
* refactor: output article element when needed
* refactor: refactor container styles and media queries
- Add the `$tablet` variable to `_container.scss`
- Add a media query to `_container.scss`
- Import `_container.scss` in `critical.scss`
- Remove the import of `_container.scss` in `style.scss`
* feat: add new CSS rule for hiding elements
- Add a new CSS rule for the class "hide" with a display property set to "none".
* feat: refactor image loading and navigation logic on desktop
- Add a line of code in `assets/ts/desktop/stage.ts` to reset the `src` of `elc` and add a class `hide` to it
- Add a line of code in `assets/ts/desktop/stage.ts` to call the `loader` function with `elc` as an argument
- Add a function `loader` in `assets/ts/desktop/stage.ts` to handle image loading and error events
- Modify the `initStageNav` function in `assets/ts/desktop/stageNav.ts` to watch the `isLoading` state and set custom cursor accordingly
- Modify the `initStageNav` function in `assets/ts/desktop/stageNav.ts` to handle close click events by calling the `handleClick` function and setting `isLoading` state to false
- Modify the `initStageNav` function in `assets/ts/desktop/stageNav.ts` to handle previous/next click events by calling the `handleClick` function only if `isLoading` is false
- Modify the `initStageNav` function in `assets/ts/desktop/stageNav.ts` to handle previous/next hover events by setting `loadedText` and updating custom cursor depending on `isLoading` state
* feat: refactor createGallery function and enhance loading functionality on mobile
- Add a loading text element to the gallery.scss file
- Add a loading indicator to the createGallery function in gallery.ts
- Modify the createGallery function in gallery.ts to hide the loading text element on image load
- Move the image element append logic to the parent container in the createGallery function in gallery.ts
* feat: update translations and add new loading translation in i18n files
* chore: remove css source map
* chore: modify build command to ignore css source map
* refactor: remove unnecessary style
* fix: fix desktop cursor text transition bug
* feat: refactor image retrieval logic and improve variable initialization
- Add a new file `layouts/partials/function/getImageSlice.html`
- Initialize variables `$context`, `$Path`, and `$params`
- Set `$Path` based on the result of the `partial/function/currentMenuItem.html` partial
- Retrieve the page `$gallery` based on `$Path`
- Return all resources of type `image` from `$gallery`
* refactor: adapt getImageSlice function to `single.json`
* feat: refactor navigation UI components to use static go template
* feat: update navigation functionality and threshold rendering
* feat: refactor condition for checking `site.Params.bundled`
- Add default condition for checking if `site.Params.bundled` is true or false
* refactor: update info page content
* chore: update site description
* refactor: refactor variable assignments and return statement in menu template
- Change the variable assignment from `.DirName` to `.Identifier` in the file `layouts/_default/single.json`
- Change the variable assignments in the file `layouts/partials/function/currentMenuItem.html`:
- From `$dirName := ""` to `$identifier := ""`
- From `$id := -1` to `$title := ""` and `$weight := -1`
- From `$dirName = .Identifier` to `$identifier = .Identifier`, `$title = .Title`, and `$weight = .Weight`
- Change the return statement in the file `layouts/partials/function/currentMenuItem.html` from `(dict "DirName" $dirName "ID" $id)` to `(dict "Identifier" $identifier "Title" $title "Weight" $weight)`
* feat: update nav links structure for current link styling
- Remove javascript code related to setting current link style and title
- Update nav links to use updated HTML structure for current link styling
* feat: update page titles and meta tags in layout files
- Update the `baseof.html` layout to include the current page title in the `<title>` tag
- Add OpenGraph meta tags for the page title and description in `meta.html` layout
* chore(Geist): bump geist font to v1.0.1
* refactor(_typography.scss): split the CSS lang tag to ensure compatibility with Chromium-based browsers
* refactor(stage.ts): bump up preload count on desktop
* feat(params.toml): add support for user defined resize option
* feat(_fonts.scss): add a new font file to better support fullwidth plus and minus
* refactor(info): update info
* chore(build.yml): update branch name for updating bundled artifacts to include the current date
* chore(package.json): update version from 0.0.1 to v0.0.2 to reflect changes made in the codebase
* feat: refactor initialization process for retrieving and sorting image data
- Modify `main.ts` to use async initialization of resources
- Change the return type of `initResources` function to `Promise<ImageJSON[]>`
- Add try-catch block to handle errors in `initResources` function
- Use fetch API to retrieve image data from `index.json`
- Sort the image data based on the index field
* refactor: update file naming and variable assignments in layouts
- Add new file `exampleSite/config/_default/outputs.toml` with the contents `page = ["HTML", "JSON"]`
- Rename file `layouts/partials/resources/imageJSON.html` to `layouts/_default/single.json`
- Modify variable assignments and references in the `single.json` layou
* chore: remove code that includes imageJSON.html partials in layouts
- Remove the code that includes the "resources/imageJSON.html" partial in the 404.html layout
- Remove the code that includes the "resources/imageJSON.html" partial in the single.html layout
* chore(Geist): bump geist font to v1.0.1
* refactor(_typography.scss): split the CSS lang tag to ensure compatibility with Chromium-based browsers
* refactor(stage.ts): bump up preload count on desktop
* feat(params.toml): add support for user defined resize option
* feat(_fonts.scss): add a new font file to better support fullwidth plus and minus
* refactor(info): update info
* chore(build.yml): update branch name for updating bundled artifacts to include the current date
* chore(package.json): update version from 0.0.1 to v0.0.2 to reflect changes made in the codebase
* feat(params.toml): enable analytics and configure Umami Analytics
Enable analytics by setting `enable` to `true` in the `[analytics]` section of the `params.toml` file. Also, configure Umami Analytics by providing the `data_website_id`, `src`, and `data_domains` values.
* feat(404.html): replace hardcoded "404 page not found" text with translated version to improve localization
* feat(README.md): add README.md file with information about the Bridget theme and its features
feat(getStarted.md): add getStarted.md file with instructions on how to get started with the Bridget theme, including installation and content management instructions
feat(analytics.html): create partial to include analytics scripts for various analytics services (Google Analytics, Fathom Analytics, Baidu Analytics, Umami Analytics, Plausible Analytics, Cloudflare Analytics, Splitbee Analytics) to track website traffic and user behavior
The `script.html` partial template has been added to handle the rendering of script tags with various attributes and options. It supports the following features:
- If the `Content` variable is provided, it will be rendered as the content of the script tag.
- If the `Source` variable starts with "<script", it will be rendered as safe HTML.
- If the `Source` variable is provided and is a local resource, it will be processed as a template and minified if specified.
- If the `Fingerprint` variable is provided, the resource will be fingerprinted and the integrity attribute will be set accordingly.
- The `Link` variable can be used to specify an external script URL.
- The `Esm` variable can be set to true to render the script tag as a module.
- The `Crossorigin` variable can be set to true to add the crossorigin attribute.
- The `Async` variable can be set to true to add the async attribute.
- The `Defer` variable can be set to true to add the defer attribute.
- The `Attr` variable can be used to add additional attributes to the script tag.
This new partial template provides flexibility and customization options for rendering script tags in the application.
The sitemap.xml layout file is added to the project. This layout file generates a sitemap for the website using the data from the pages. The sitemap includes URLs for all pages except those in the "gallery" section. Each URL includes the location, last modified date (if available), change frequency (if available), and priority (if available). If a page is translated, alternate links are included for each translation.
The robots.txt file is added to the layouts directory. This file includes rules to block specific bots from crawling the site. The following bots are blocked: MJ12bot, AhrefsBot, BLEXBot, SISTRIX Crawler, sistrix, 007ac9, 007ac9 Crawler, UptimeRobot/2.0, Ezooms Robot, Perl LWP, netEstate NE Crawler (+http://www.website-datenbank.de/), WiseGuys Robot, Turnitin Robot, Heritrix, pricepi, SurdotlyBot, and ZoominfoBot. All other bots are allowed to crawl the site. The file also includes a sitemap directive to point to the sitemap.xml file.
The meta.html file was modified to add three meta tags. The first meta tag sets the description of the website using the `site.Params.description` value. The second meta tag sets the application name using the `site.Params.app.title` value or falls back to the site title if not provided. The third meta tag sets the apple-mobile-web-app-title using the same logic as the second meta tag. These changes were made to improve the SEO and user experience of the website.
The `langCode.html` partial template is added to the `layouts/partials/function` directory. This template is used to check if the current language code matches the site's language code. It iterates over the language codes and sets a boolean variable `$res` to `true` if there is a match. The template then returns the value of `$res`. This partial template can be used in other templates to conditionally render content based on the language code.
refactor(baseof.html): update page title to use site.Title variable for consistency and easier maintenance
refactor(nav.html): update anchor tags to use relURL instead of relLangURL for correct URL generation
refactor(nav.html): update link text to use .Title instead of .Identifier for better readability
chore(link.html): update main style source and options to improve performance and maintainability
chore(link.html): remove unused meta.html file
chore(nav.html): update decrement and increment buttons to use Unicode characters for better accessibility
chore(plugin/style.html): update style plugin to support inline styles for critical CSS
chore(plugin/style.html): update style plugin to support minification and fingerprinting for main CSS
chore(plugin/style.html): remove script plugin as it is no longer used
chore(plugin/style.html): update style plugin to support inline styles for critical CSS
chore(plugin/style.html): update style plugin to support minification and fingerprinting for main CSS
chore(resources/imageJSON.html): update image resize options for better performance and quality
The 404.html file is a new file added to the layouts directory. This file defines the layout for the 404 page. It includes a container div, a navigation partial, and an article element with three paragraphs displaying the "404 page not found" message. This layout will be used when a user navigates to a non-existent page on the website.
chore(params.toml): add website title parameter for better customization
chore(baseof.html): update page title to use the website title parameter
chore(nav.html): update navigation link to use the website title parameter
refactor(imageJSON.html): modify image resizing logic to generate separate low resolution and high resolution image URLs, heights, and widths to improve performance and optimize image loading
The `year.html` file is a new file that has been added. It contains a shortcode that displays the current year using the `now.Year` variable. This shortcode can be used in the layout templates to dynamically display the current year.
The imageJSON.html partial template has been added to the layouts/partials/resources directory. This template generates JSON data for image resources on a page. It retrieves the page context and the gallery resources using the site.GetPage and .Resources.ByType functions. It then iterates over the image resources, resizing them and adding their information to a Scratch variable. Finally, it outputs the JSON data as a script tag with the id "imagesSource". This JSON data can be used to dynamically load and display images on the page.
The `script.html` partial template has been added to handle the rendering of script tags with various options. This template supports the following features:
- If the `Content` variable is provided, it will be rendered as the content of the script tag.
- If the `Source` variable starts with "<script", it will be rendered as safe HTML.
- If the `Source` variable is provided and is a local resource, it will be processed as a template and minified if specified. If the `Fingerprint` variable is provided, the resource will also be fingerprinted and the integrity attribute will be set accordingly.
- If the `Link` variable is provided, it will be used as the source of the script tag.
- The `Crossorigin` variable can be used to add the crossorigin attribute to the script tag.
- The `Async` variable can be used to add the async attribute to the script tag.
- The `Defer` variable can be used to add the defer attribute to the script tag.
- The `Attr` variable can be used to add additional attributes to the script tag.
This new partial template provides flexibility in rendering script tags with different options based on the provided variables.
The currentMenuItem.html template partial is added to the layouts/partials/function directory. This partial is used to retrieve the current menu item based on the current page URL. It iterates through the main menu items defined in the site configuration and compares the URL of each menu item with the URL of the current page. If a match is found, the name and ID of the menu item are stored in variables. Finally, a dictionary containing the name and ID is returned. This partial can be used to highlight the current menu item in the navigation menu.
This commit adds a new layout template called baseof.html. This template is used as the base layout for all other templates in the project. It includes the basic HTML structure, meta tags, and a placeholder for the main content.
The purpose of this change is to provide a consistent and reusable base layout for all pages in the project, reducing code duplication and improving maintainability.
---
feat(layouts): add single.html layout template
This commit adds a new layout template called single.html. This template is used for rendering individual content pages. It includes a block for the main content and some additional logic for handling the current menu item and generating image JSON.
The purpose of this change is to provide a specific layout for individual content pages, allowing for customization and flexibility in their presentation.
---
refactor(layouts): remove index.html layout template and related partials
This commit removes the index.html layout template and its associated partials (footer.html, head.html, link.html, meta.html, seo.html, mobile_wrapper.html, and nav.html).
The index.html layout template was no longer needed as the project has transitioned to using the baseof.html and single.html templates for rendering pages. The associated partials were also no longer used and can be safely removed.
The purpose of this change is to clean up unused code and reduce clutter in the project.
feat(container.ts): create container module to handle scrollable behavior and add/remove disableScroll class
fix(customCursor.ts): update append target for cursor element to use container instead of main
fix(stage.ts): update append target for stage element to use container instead of main
fix(stageNav.ts): update append target for navOverlay element to use container instead of main
feat(main.ts): initialize container module and conditionally initialize stage and stageNav modules based on device type
fix(nav.ts): update references to state module functions to use state.get() instead of getState()