From 5d415392c5bec9e3b4d901bc9df77b6657054a12 Mon Sep 17 00:00:00 2001 From: Andrew Welch Date: Sat, 27 Apr 2024 15:16:36 -0400 Subject: [PATCH 01/13] refactor: Remove vestigial `.craftplugin` file --- .craftplugin | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .craftplugin diff --git a/.craftplugin b/.craftplugin deleted file mode 100644 index f144fbb..0000000 --- a/.craftplugin +++ /dev/null @@ -1 +0,0 @@ -{"pluginName":"Twig Profiler","pluginDescription":"Twig Profiler allows you to profile sections of your Twig templates, and see the resulting timings in the Yii2 Debug Toolbar","pluginVersion":"1.0.0","pluginAuthorName":"nystudio107","pluginVendorName":"nystudio107","pluginAuthorUrl":"https://nystudio107.com/","pluginAuthorGithub":"nystudio107","codeComments":"","pluginComponents":["services","settings","twigextensions"],"consolecommandName":"","controllerName":"","cpsectionName":"","elementName":"","fieldName":"","modelName":"Settings","purchasableName":"","recordName":"","serviceName":"Profile","taskName":"","utilityName":"","widgetName":"","apiVersion":"api_version_3_0"} \ No newline at end of file From 737cfdcc4ec53bb0738fef0498cfcb9fe713b771 Mon Sep 17 00:00:00 2001 From: Andrew Welch Date: Sat, 27 Apr 2024 15:22:56 -0400 Subject: [PATCH 02/13] feat: Add/update GitHub workflows --- .github/workflows/build-and-deploy-docs.yml | 8 ++--- .github/workflows/code-analysis.yaml | 40 +++++++++++++++++++++ .github/workflows/create-release.yml | 21 +++++++++++ 3 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/code-analysis.yaml create mode 100644 .github/workflows/create-release.yml diff --git a/.github/workflows/build-and-deploy-docs.yml b/.github/workflows/build-and-deploy-docs.yml index adaef28..b461949 100644 --- a/.github/workflows/build-and-deploy-docs.yml +++ b/.github/workflows/build-and-deploy-docs.yml @@ -1,6 +1,6 @@ name: Build and Deploy Docs env: - DOCS_DEST_DIR: /twig-profiler/ + DOCS_DEST_DIR: /twig-profiler/v1/ on: push: branches: @@ -22,11 +22,11 @@ jobs: strategy: fail-fast: true matrix: - node-version: [ 14.x ] + node-version: [ 20.x ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - run: npm ci diff --git a/.github/workflows/code-analysis.yaml b/.github/workflows/code-analysis.yaml new file mode 100644 index 0000000..d4bf3fa --- /dev/null +++ b/.github/workflows/code-analysis.yaml @@ -0,0 +1,40 @@ +name: Code Analysis + +on: + pull_request: null + push: + branches: + - develop + workflow_dispatch: +permissions: + contents: read +jobs: + code_analysis: + strategy: + fail-fast: false + matrix: + actions: + - name: 'PHPStan' + run: composer phpstan + - name: 'Coding Standards' + run: composer fix-cs + name: ${{ matrix.actions.name }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Cache Composer dependencies + uses: actions/cache@v4 + with: + path: /tmp/composer-cache + key: ${{ runner.os }}-${{ hashFiles('**/composer.lock') }} + - name: Setup PHP + id: setup-php + uses: shivammathur/setup-php@v2 + with: + php-version: 8.2 + extensions: 'ctype,curl,dom,iconv,imagick,intl,json,mbstring,openssl,pcre,pdo,reflection,spl,zip' + ini-values: post_max_size=256M, max_execution_time=180, memory_limit=512M + tools: composer:v2 + - name: Install Composer dependencies + run: composer install --no-interaction --no-ansi --no-progress + - run: ${{ matrix.actions.run }} diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml new file mode 100644 index 0000000..8e33492 --- /dev/null +++ b/.github/workflows/create-release.yml @@ -0,0 +1,21 @@ +name: Create Release +run-name: Create release for ${{ github.event.client_payload.version }} + +on: + repository_dispatch: + types: + - craftcms/new-release + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: ncipollo/release-action@v1 + with: + body: ${{ github.event.client_payload.notes }} + makeLatest: ${{ github.event.client_payload.latest }} + name: ${{ github.event.client_payload.version }} + prerelease: ${{ github.event.client_payload.prerelease }} + tag: ${{ github.event.client_payload.tag }} From 9570c050419a723c012c4a9c19a00d620cc23567 Mon Sep 17 00:00:00 2001 From: Andrew Welch Date: Sat, 27 Apr 2024 15:25:09 -0400 Subject: [PATCH 03/13] feat: Add `phpstan` and `ecs` code linting --- composer.json | 101 +++++++++++++++++++++++++++++++------------------- ecs.php | 13 +++++++ phpstan.neon | 7 ++++ 3 files changed, 82 insertions(+), 39 deletions(-) create mode 100644 ecs.php create mode 100644 phpstan.neon diff --git a/composer.json b/composer.json index 70f018d..d33df1e 100644 --- a/composer.json +++ b/composer.json @@ -1,44 +1,67 @@ { - "name": "nystudio107/craft-twigprofiler", - "description": "Twig Profiler allows you to profile sections of your Twig templates, and see the resulting timings in the Yii2 Debug Toolbar", - "type": "craft-plugin", - "version": "1.0.1", - "keywords": [ - "craft", - "cms", - "craftcms", - "craft-plugin", - "twig profiler" - ], - "support": { - "docs": "https://nystudio107.com/plugins/twig-profiler/documentation", - "issues": "https://nystudio107.com/plugins/twig-profiler/support" - }, - "license": "MIT", - "authors": [ - { - "name": "nystudio107", - "homepage": "https://nystudio107.com/" - } - ], - "require": { - "craftcms/cms": "^3.0.0" - }, - "autoload": { - "psr-4": { - "nystudio107\\twigprofiler\\": "src/" - } + "name": "nystudio107/craft-twigprofiler", + "description": "Twig Profiler allows you to profile sections of your Twig templates, and see the resulting timings in the Yii2 Debug Toolbar", + "type": "craft-plugin", + "version": "1.0.2", + "keywords": [ + "craft", + "cms", + "craftcms", + "craft-plugin", + "twig profiler" + ], + "support": { + "docs": "https://nystudio107.com/plugins/twig-profiler/documentation", + "issues": "https://nystudio107.com/plugins/twig-profiler/support" + }, + "license": "MIT", + "authors": [ + { + "name": "nystudio107", + "homepage": "https://nystudio107.com/" + } + ], + "require": { + "craftcms/cms": "^3.0.0" + }, + "require-dev": { + "craftcms/ecs": "dev-main", + "craftcms/phpstan": "dev-main", + "craftcms/rector": "dev-main" + }, + "scripts": { + "phpstan": "phpstan --ansi --memory-limit=1G", + "check-cs": "ecs check --ansi", + "fix-cs": "ecs check --fix --ansi" + }, + "config": { + "allow-plugins": { + "craftcms/plugin-installer": true, + "yiisoft/yii2-composer": true }, - "extra": { - "name": "Twig Profiler", - "handle": "twig-profiler", - "hasCpSettings": false, - "hasCpSection": false, - "changelogUrl": "https://raw.githubusercontent.com/nystudio107/craft-twigprofiler/master/CHANGELOG.md", - "components": { - "profile": "nystudio107\\twigprofiler\\services\\Profile" - }, - "class": "nystudio107\\twigprofiler\\TwigProfiler" + "optimize-autoloader": true, + "sort-packages": true + }, + "autoload": { + "psr-4": { + "nystudio107\\minify\\": "src/" } + }, + "autoload": { + "psr-4": { + "nystudio107\\twigprofiler\\": "src/" + } + }, + "extra": { + "name": "Twig Profiler", + "handle": "twig-profiler", + "hasCpSettings": false, + "hasCpSection": false, + "changelogUrl": "https://raw.githubusercontent.com/nystudio107/craft-twigprofiler/master/CHANGELOG.md", + "components": { + "profile": "nystudio107\\twigprofiler\\services\\Profile" + }, + "class": "nystudio107\\twigprofiler\\TwigProfiler" + } } diff --git a/ecs.php b/ecs.php new file mode 100644 index 0000000..dfff63b --- /dev/null +++ b/ecs.php @@ -0,0 +1,13 @@ +paths([ + __DIR__ . '/src', + __FILE__, + ]); + $ecsConfig->parallel(); + $ecsConfig->sets([SetList::CRAFT_CMS_3]); +}; diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 0000000..9ad1308 --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,7 @@ +includes: + - %currentWorkingDirectory%/vendor/craftcms/phpstan/phpstan.neon + +parameters: + level: 5 + paths: + - src From b24bc130e02b61d506265458dee2c1c08d6a0f72 Mon Sep 17 00:00:00 2001 From: Andrew Welch Date: Sat, 27 Apr 2024 15:25:51 -0400 Subject: [PATCH 04/13] chore: Remove year --- LICENSE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index db2cb88..16af3d5 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,9 +1,9 @@ The MIT License (MIT) -Copyright (c) 2018 nystudio107 +Copyright (c) nystudio107 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. \ No newline at end of file +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. From 57c7704ec32eb79a8c736b961308b6494f5511a4 Mon Sep 17 00:00:00 2001 From: Andrew Welch Date: Sat, 27 Apr 2024 15:26:09 -0400 Subject: [PATCH 05/13] refactor: Updated docs to use node 20 & a new sitemap plugin --- docs/.gitignore | 2 + docs/Dockerfile | 6 +- docs/Makefile | 78 +- docs/README.md | 74 + docs/docs/.vitepress/config.js | 26 - docs/docs/.vitepress/config.ts | 48 + .../theme/{SidebarBottom.vue => NYSLogo.vue} | 11 +- docs/docs/.vitepress/theme/custom.css | 4 + docs/docs/.vitepress/theme/index.js | 42 - docs/docs/.vitepress/theme/index.ts | 42 + docs/docs/@types/shims.d.ts | 7 + .../{resources => public}/img/nys-logo.svg | 0 docs/docs/public/img/plugin-logo.svg | 21 + docs/docs/vite.config.js | 26 - docs/docs/vite.config.ts | 26 + docs/package-lock.json | 5973 ++++++++++++----- docs/package.json | 8 +- docs/tsconfig.json | 16 + 18 files changed, 4593 insertions(+), 1817 deletions(-) create mode 100644 docs/README.md delete mode 100644 docs/docs/.vitepress/config.js create mode 100644 docs/docs/.vitepress/config.ts rename docs/docs/.vitepress/theme/{SidebarBottom.vue => NYSLogo.vue} (81%) delete mode 100644 docs/docs/.vitepress/theme/index.js create mode 100644 docs/docs/.vitepress/theme/index.ts create mode 100644 docs/docs/@types/shims.d.ts rename docs/docs/{resources => public}/img/nys-logo.svg (100%) create mode 100644 docs/docs/public/img/plugin-logo.svg delete mode 100644 docs/docs/vite.config.js create mode 100644 docs/docs/vite.config.ts create mode 100644 docs/tsconfig.json diff --git a/docs/.gitignore b/docs/.gitignore index 26d6131..41eaf24 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1,2 +1,4 @@ /vendor /node_modules +/docs/.vitepress/dist +/docs/.vitepress/cache diff --git a/docs/Dockerfile b/docs/Dockerfile index 3dba116..f73791f 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -1,5 +1,7 @@ -ARG TAG=14-alpine -FROM nystudio107/node-dev-base:$TAG +ARG TAG=20-alpine +FROM node:$TAG + +RUN npm install -g npm@^10.0.0 WORKDIR /app/ diff --git a/docs/Makefile b/docs/Makefile index 45fa538..89b64a6 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,45 +1,47 @@ -TAG?=14-alpine -CONTAINER?=$(shell basename $(dir $(CURDIR)))-docs -DOCKERRUN=docker container run \ - --name ${CONTAINER} \ - --rm \ - -p 3002:3002 \ - -t \ - -v `pwd`:/app \ - ${CONTAINER}:${TAG} -DOCSDEST?=../../../sites/nystudio107/web/docs/twig-profiler +MAJOR_VERSION?=1 +TAG?=20-alpine +CONTAINER?=$(shell basename $(dir $(CURDIR)))-v${MAJOR_VERSION}-docs +DOCS_DEV_PORT?=400${MAJOR_VERSION} +DOCS_DEST?=../../../sites/nystudio107/web/docs/twig-profiler/v1 +IMAGE_INFO=$(shell docker image inspect $(CONTAINER):$(TAG)) +IMAGE_NAME=${CONTAINER}:${TAG} +DOCKER_RUN=docker container run --rm -it -v "${CURDIR}":/app -.PHONY: docker build dev fix install lint clean npm +.PHONY: build clean dev fix image-build image-check lint npm ssh -docker: - docker build \ - . \ - -t ${CONTAINER}:${TAG} \ - --build-arg TAG=${TAG} \ - --no-cache -build: clean docker install - ${DOCKERRUN} \ - run docs:build - rm -rf ${DOCSDEST} - mv ./docs/.vitepress/dist ${DOCSDEST} -dev: docker install - ${DOCKERRUN} \ - run docs:dev -fix: docker install - ${DOCKERRUN} \ - run docs:fix -install: docker - ${DOCKERRUN} \ - install -lint: docker install - ${DOCKERRUN} \ - run docs:lint -clean: docker +# Perform a dist build via npm run docs:build +build: image-check + ${DOCKER_RUN} --name ${CONTAINER}-$@ ${IMAGE_NAME} run docs:build + rm -rf ${DOCS_DEST} + mv ./docs/.vitepress/dist ${DOCS_DEST} +# Remove node_modules/ & package-lock.json +clean: rm -rf node_modules/ rm -f package-lock.json -npm: docker - ${DOCKERRUN} \ - $(filter-out $@,$(MAKECMDGOALS)) +# Run the development server via npm run docs:dev +dev: image-check + ${DOCKER_RUN} --name ${CONTAINER}-$@ -e DOCS_DEV_PORT="${DOCS_DEV_PORT}" -p ${DOCS_DEV_PORT}:${DOCS_DEV_PORT} ${IMAGE_NAME} run docs:dev +# Fix the docs with textlint via npm run docs:fix +fix: image-check + ${DOCKER_RUN} --name ${CONTAINER}-$@ ${IMAGE_NAME} run docs:fix +# Build the Docker image & run npm install +image-build: + docker build . -t ${IMAGE_NAME} --build-arg TAG=${TAG} --no-cache + ${DOCKER_RUN} --name ${CONTAINER}-$@ ${IMAGE_NAME} install +# Ensure the image has been created +image-check: +ifeq ($(IMAGE_INFO), []) +image-check: image-build +endif +# Lint the docs with textlint via npm run docs:lint +lint: image-check + ${DOCKER_RUN} --name ${CONTAINER}-$@ ${IMAGE_NAME} run docs:lint +# Run the passed in npm command +npm: image-check + ${DOCKER_RUN} --name ${CONTAINER}-$@ ${IMAGE_NAME} $(filter-out $@,$(MAKECMDGOALS)) $(MAKEFLAGS) +# Open a shell inside of the container +ssh: image-check + ${DOCKER_RUN} --name ${CONTAINER}-$@ --entrypoint=/bin/sh ${IMAGE_NAME} %: @: # ref: https://stackoverflow.com/questions/6273608/how-to-pass-argument-to-makefile-from-command-line diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..c825cc4 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,74 @@ +# `twig-profiler` docs + +This buildchain is a self-contained build system for the `twig-profiler` documentation. + +## Overview + +The buildchain uses [VitePress](https://vitepress.dev/) via a Docker container to facilitate writing the docs as [markdown](https://vitepress.dev/guide/markdown), linting them via [textlint](https://textlint.github.io/), building them as HTML files with bundled assets, and publishing them automatically via a [GitHub action](https://docs.github.com/en/actions). + +It also uses a [Rollup](https://rollupjs.org/) [sitemap plugin](https://github.com/aminnairi/rollup-plugin-sitemap) to generate a `sitemap.xml` for the generated docs. + +The markdown sources for the docs and assets are in the `docs/docs/` directory. + +The built distribution docs are created via the `build-and-deploy-docs.yaml` + +## Prerequisites + +To run the buildchain for development purposes: + +- You must have [Docker Desktop](https://www.docker.com/products/docker-desktop/) (or the equivalent) installed + +## Commands + +This buildchain uses `make` as an interface to the buildchain. The following commands are available from the `buildchain/` directory: + +- `make image-build` - Build the Docker image & run `npm install`. This command must be run once before using the Docker container. +- `make dev` - Start Vite HMR dev server while writing/editing the docs. Click on the link displayed in the terminal to open the docs up +- `make lint` - Run `textlint` on the docs, reporting on any errors and warnings +- `make fix` - Run `textlint` on the docs, automatically fixing any errors, and reporting any warnings +- `make clean` - Remove `node_modules/` and `package-lock.json` to start clean (need to run `make image-build` after doing this, see below) +- `make npm XXX` - Run an `npm` command inside the container, e.g.: `make npm run lint` or `make npm install` +- `make ssh` - Open up a shell session into the buildchain Docker container +- `make build` - Do a local distribution build of the docs; normally not needed since they are built & deployed via GitHub action + +## Docs versioning + +Each major version of the plugin corresponds to a major version of Craft. + +Each major version of the plugin has separate documentation that needs to be updated when changes span plugin versions. + +The latest version of the docs that correspond to the latest version of the plugin is always the root of the docs tree, with older versions appearing in sub-directories: + +``` +│ index.html +├── v4 +│ └── index.html +├── v3 +│ └── index.html +``` + +The docs are entirely separate, but linked to eachother via a version menu, configured in the `docs/docs/.vitepress/config.ts` file. + +## Algolia Docsearch + +The docs uses [Algolia Docsearch](https://docsearch.algolia.com/) to index them, and allow for easy searching via a search field with auto-complete. + +Algolia Docsearch is configured in the `docs/docs/.vitepress/config.ts` file. + +## textlint + +The buildchain uses [textlint](https://textlint.github.io/) to automatically fix errors on build, and also issue writing style warnings. + +`textlint` automatically uses any rules added to the `docs/package.json` file, which can be overridden or customized via the `docs/.textlintrc.js` file. + +See the [textlint docs](https://textlint.github.io/docs/getting-started.html) for details. + +## Overriding environment variables + +The `Makefile` contains sane defaults for most things, but you can override them via environment variables if you need to. + +For instance, if you want to change the `DOCS_DEST` environment variable to change where `make build` builds the docs locally, you can set it before running any buildchain `make` commands: +```bash +env DOCS_DEST=../path/to/some/dir make build +``` +...or use any other method for [setting environment variables](https://www.twilio.com/blog/how-to-set-environment-variables.html). This environment variable needs to be set in the shell where you run the buildchain's various `make` commands from, so setting it in your project's `.env` file won't work. diff --git a/docs/docs/.vitepress/config.js b/docs/docs/.vitepress/config.js deleted file mode 100644 index 48cc420..0000000 --- a/docs/docs/.vitepress/config.js +++ /dev/null @@ -1,26 +0,0 @@ -module.exports = { - title: 'Twig Profiler Plugin Documentation', - description: 'Documentation for the Twig Profiler plugin', - base: '/docs/twig-profiler/', - lang: 'en-US', - head: [ - ['meta', {content: 'https://github.com/nystudio107', property: 'og:see_also',}], - ['meta', {content: 'https://twitter.com/nystudio107', property: 'og:see_also',}], - ['meta', {content: 'https://youtube.com/nystudio107', property: 'og:see_also',}], - ['meta', {content: 'https://www.facebook.com/newyorkstudio107', property: 'og:see_also',}], - ], - themeConfig: { - repo: 'nystudio107/craft-twigprofiler', - docsDir: 'docs/docs', - docsBranch: 'v1', - algolia: { - appId: 'V60OC8MPVK', - apiKey: 'f0f7f91f8388d5b8d8c7f78dbcc4ea97', - indexName: 'nystudio107-twig-profiler' - }, - editLinks: true, - editLinkText: 'Edit this page on GitHub', - lastUpdated: 'Last Updated', - sidebar: 'auto', - }, -}; diff --git a/docs/docs/.vitepress/config.ts b/docs/docs/.vitepress/config.ts new file mode 100644 index 0000000..eff0e05 --- /dev/null +++ b/docs/docs/.vitepress/config.ts @@ -0,0 +1,48 @@ +import {defineConfig} from 'vitepress' + +export default defineConfig({ + title: 'Twig Profiler Plugin', + description: 'Documentation for the Twig Profiler plugin', + base: '/docs/twig-profiler/v1/', + lang: 'en-US', + head: [ + ['meta', {content: 'https://github.com/nystudio107', property: 'og:see_also',}], + ['meta', {content: 'https://twitter.com/nystudio107', property: 'og:see_also',}], + ['meta', {content: 'https://youtube.com/nystudio107', property: 'og:see_also',}], + ['meta', {content: 'https://www.facebook.com/newyorkstudio107', property: 'og:see_also',}], + ], + themeConfig: { + socialLinks: [ + {icon: 'github', link: 'https://github.com/nystudio107'}, + {icon: 'twitter', link: 'https://twitter.com/nystudio107'}, + ], + logo: '/img/plugin-logo.svg', + editLink: { + pattern: 'https://github.com/nystudio107/craft-twigprofiler/edit/develop/docs/docs/:path', + text: 'Edit this page on GitHub' + }, + algolia: { + appId: 'V60OC8MPVK', + apiKey: 'f0f7f91f8388d5b8d8c7f78dbcc4ea97', + indexName: 'nystudio107-twig-profiler', + searchParameters: { + facetFilters: ["version:v1"], + }, + }, + lastUpdatedText: 'Last Updated', + sidebar: [], + nav: [ + {text: 'Home', link: 'https://nystudio107.com/plugins/twig-profiler'}, + {text: 'Store', link: 'https://plugins.craftcms.com/twig-profiler'}, + {text: 'Changelog', link: 'https://nystudio107.com/plugins/twig-profiler/changelog'}, + {text: 'Issues', link: 'https://github.com/nystudio107/craft-twigprofiler/issues'}, + { + text: 'v1', items: [ + {text: 'v5', link: 'https://nystudio107.com/docs/twig-profiler/'}, + {text: 'v4', link: 'https://nystudio107.com/docs/twig-profiler/v4/'}, + {text: 'v1', link: '/'}, + ], + }, + ] + }, +}); diff --git a/docs/docs/.vitepress/theme/SidebarBottom.vue b/docs/docs/.vitepress/theme/NYSLogo.vue similarity index 81% rename from docs/docs/.vitepress/theme/SidebarBottom.vue rename to docs/docs/.vitepress/theme/NYSLogo.vue index a2691f3..5a69068 100644 --- a/docs/docs/.vitepress/theme/SidebarBottom.vue +++ b/docs/docs/.vitepress/theme/NYSLogo.vue @@ -6,18 +6,15 @@ target="_blank" rel="noopener" > - + /> -