This commit adds a new file `.github/workflows/build.yml` which contains the configuration for a GitHub Actions workflow named "Build". The workflow is triggered on push events to the `main` branch and manually through the workflow_dispatch event.
The workflow consists of two jobs: "Filter" and "Build". The "Filter" job checks for changes in specific files (`package.json` and `assets/**`) and sets an output variable `any_changed` to indicate if any of the files have changed.
The "Build" job is executed if the following conditions are met:
- The workflow is triggered on the `main` branch
- The repository is not a fork
- The "Filter" job has detected changes in the specified files
The steps in the "Build" job include:
- Checking out the repository
- Setting up Hugo with version 0.114.0 and extended mode
- Setting up pnpm version 8
- Getting the pnpm store directory and caching it
- Caching the Hugo resources directory
- Installing dependencies using pnpm
- Building the project using the `pnpm run build` command
- Pushing the built artifacts if the workflow was triggered by a merged pull request
The commit adds a new step in the workflow to set up a cache for the Hugo static site generator. This cache will store the resources used by the exampleSite, improving the build time by avoiding unnecessary downloads.
The previous commit message was updated to only commit changes if there are any. This is done to avoid unnecessary commits when there are no changes in the artifacts.
This commit adds a new workflow file `.github/workflows/eslint.yml` that sets up a workflow for running ESLint and Prettier on push to the `main` branch, pull requests targeting the `main` branch, and manually triggered workflow dispatch events.
The workflow runs on `ubuntu-latest` and consists of the following steps:
1. Checkout the repository
2. Setup pnpm version 8
3. Get the pnpm store directory path
4. Setup pnpm cache using the store path
5. Install dependencies using pnpm
6. Run ESLint and Prettier linting
7. Configure git user email and name for the commit
8. Check if there are any changes using `git diff`
9. If there are changes, add all changes and commit with the message "style: ESLint && Prettier"
10. Push the changes to the repository
The change was made to include a new step in the workflow to set up Hugo with version 0.83.0 and enable extended mode. This is necessary to ensure that the correct version of Hugo is used and that extended features are available during the build process.
This commit adds a new GitHub Actions workflow file, artifacts.yml, which is triggered on push events to the main branch. The workflow consists of two jobs: "filter" and "build".
The "filter" job checks if any of the specified files (package.json and assets/**) have changed. If any file in the scope has changed, a step is executed. Otherwise, the workflow is prevented from running.
The "build" job is executed if the branch is main and the repository is not a fork. It performs the following steps:
1. Checkout the repository
2. Setup pnpm package manager
3. Get the pnpm store directory path
4. Setup pnpm cache using actions/cache
5. Install dependencies using pnpm
6. Build the artifacts
7. Configure git user email and name
8. Add all changes to the commit and commit with the message "build: update bundled artifacts [skip ci]"
9. Push the changes to the repository
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.
- Change the "dev" script to only run the rollup:dev and hugo:dev commands, removing the unnecessary file removal step.
- Update the "build" script to use the "-f" flag when removing the bundled JS files to avoid errors if the files don't exist. Also, use "yes | cp -rf" to force overwrite the CSS files when copying.
- Change the "server" script to only run the rollup:server and hugo:server commands, removing the unnecessary file removal step.