<template>
<ParentLayout>
- <template #navbar-search>
- <AlgoliaSearchBox :options="$site.themeConfig.algolia" />
- </template>
<template #page-top-ads><span /></template>
<template #page-top>
<CarbonAds
import DefaultTheme from 'vitepress/dist/client/theme-default'
import CarbonAds from './components/CarbonAds.vue'
import BuySellAds from './components/BuySellAds.vue'
-import AlgoliaSearchBox from './components/AlgoliaSearchBox.vue'
export default {
name: 'Layout',
ParentLayout: DefaultTheme.Layout,
CarbonAds,
BuySellAds,
- AlgoliaSearchBox,
},
}
</script>
+++ /dev/null
-<template>
- <div id="docsearch"></div>
-</template>
-
-<script lang="ts">
-import { AlgoliaSearchOptions } from 'algoliasearch'
-// import docsearch from '@docsearch/js'
-// import '@docsearch/css'
-import { useRoute, useRouter } from 'vitepress'
-import { getCurrentInstance, onMounted, PropType, watch } from 'vue'
-
-function isSpecialClick(event: MouseEvent) {
- return (
- event.button === 1 ||
- event.altKey ||
- event.ctrlKey ||
- event.metaKey ||
- event.shiftKey
- )
-}
-
-function getRelativePath(absoluteUrl: string) {
- const { pathname, hash } = new URL(absoluteUrl)
- // const url = pathname.replace(this.$site.base, '/') + hash
- const url = pathname + hash
-
- return url
-}
-
-export default {
- name: 'AlgoliaSearchBox',
-
- props: {
- options: {
- type: Object as PropType<AlgoliaSearchOptions>,
- required: true,
- },
- },
-
- setup(props) {
- const route = useRoute()
- const router = useRouter()
- const vm = getCurrentInstance()
-
- watch(
- () => props.options,
- newValue => {
- update(newValue)
- }
- )
-
- function update(options: any) {
- if (vm && vm.vnode.el) {
- vm.vnode.el.innerHTML = '<div id="docsearch"></div>'
- initialize(options)
- }
- }
-
- function initialize(userOptions: any) {
- Promise.all([
- import('@docsearch/js'),
- import('@docsearch/css'),
- // import(/* webpackChunkName: "docsearch" */ '@docsearch/js'),
- // Promise.resolve(docsearch),
- // import(/* webpackChunkName: "docsearch" */ '@docsearch/css'),
- ]).then(([docsearch]) => {
- docsearch = docsearch.default
-
- docsearch(
- Object.assign({}, userOptions, {
- container: '#docsearch',
- // #697 Make DocSearch work well in i18n mode.
- searchParameters: Object.assign(
- {},
- // lang && {
- // facetFilters: [`lang:${lang}`].concat(
- // userOptions.facetFilters || []
- // )
- // },
- userOptions.searchParameters
- ),
- navigator: {
- navigate: ({ suggestionUrl }: { suggestionUrl: string }) => {
- const { pathname: hitPathname } = new URL(
- window.location.origin + suggestionUrl
- )
-
- // Vue Router doesn't handle same-page navigation so we use
- // the native browser location API for anchor navigation.
- if (route.path === hitPathname) {
- window.location.assign(window.location.origin + suggestionUrl)
- } else {
- router.go(suggestionUrl)
- }
- },
- },
- transformItems: items => {
- return items.map(item => {
- return Object.assign({}, item, {
- url: getRelativePath(item.url),
- })
- })
- },
- hitComponent: ({ hit, children }) => {
- const relativeHit = hit.url.startsWith('http')
- ? getRelativePath(hit.url as string)
- : hit.url
-
- return {
- type: 'a',
- ref: undefined,
- constructor: undefined,
- key: undefined,
- props: {
- href: hit.url,
- onClick: (event: MouseEvent) => {
- if (isSpecialClick(event)) {
- return
- }
-
- // We rely on the native link scrolling when user is
- // already on the right anchor because Vue Router doesn't
- // support duplicated history entries.
- if (route.path === relativeHit) {
- return
- }
-
- // If the hits goes to another page, we prevent the native link behavior
- // to leverage the Vue Router loading feature.
- if (route.path !== relativeHit) {
- event.preventDefault()
- }
-
- router.go(relativeHit)
- },
- children,
- },
- }
- },
- })
- )
- })
- }
-
- onMounted(() => {
- initialize(props.options)
- })
- },
-}
-</script>
-
-<style>
-.DocSearch {
- --docsearch-primary-color: #42b983;
- --docsearch-highlight-color: var(--docsearch-primary-color);
- --docsearch-searchbox-shadow: inset 0 0 0 2px var(--docsearch-primary-color);
-}
-</style>
"nightwatch": "^1.5.1",
"nightwatch-helpers": "^1.2.0",
"prettier": "^2.2.1",
- "rollup": "^2.36.1",
+ "rollup": "^2.37.0",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.29.0",
"selenium-server": "^3.141.59",
"ts-loader": "^8.0.14",
"ts-node": "^9.1.1",
"typescript": "^4.1.3",
- "vitepress": "^0.11.2",
+ "vitepress": "^0.11.4",
"vue": "^3.0.5",
"vue-loader": "^16.1.2",
- "webpack": "^5.15.0",
+ "webpack": "^5.16.0",
"webpack-bundle-analyzer": "^4.3.0",
- "webpack-cli": "^4.3.1",
+ "webpack-cli": "^4.4.0",
"webpack-dev-server": "^3.11.2",
"yorkie": "^2.0.0"
}
dependencies:
"@types/node" "*"
-"@vitejs/plugin-vue@^1.0.3":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.0.4.tgz#124b06b185a8b536210bdb00948c17e52ab589fe"
- integrity sha512-VaXpbmriAOeCdstHKjw3L8/8GZ33fcshBbWlN6IocKQW+GOGV4Xm8Vp0Oa/VpPVCSTHMcqvKyQ4gGEBpDHdWHg==
+"@vitejs/plugin-vue@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.1.0.tgz#8ae0b11388897b07259c9e5198c0e3fb5e4b37d9"
+ integrity sha512-ExlAt3nb3PB31jV9AgRZSMoGd+aQRU53fc/seghV8/l0JCzaX2mqlgpG8iytWkRxbBPgtAx4TpCPdiVKnTFT/A==
"@vue/compiler-core@3.0.5":
version "3.0.5"
"@webassemblyjs/ast" "1.11.0"
"@xtuc/long" "4.2.2"
+"@webpack-cli/configtest@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.0.tgz#2aff5f1ebc6f793c13ba9b2a701d180eab17f5ee"
+ integrity sha512-Un0SdBoN1h4ACnIO7EiCjWuyhNI0Jl96JC+63q6xi4HDUYRZn8Auluea9D+v9NWKc5J4sICVEltdBaVjLX39xw==
+
"@webpack-cli/info@^1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.1.tgz#af98311f983d0b9fce7284cfcf1acaf1e9f4879c"
dependencies:
envinfo "^7.7.3"
-"@webpack-cli/serve@^1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.2.1.tgz#7513d7a769e3f97958de799b5b49874425ae3396"
- integrity sha512-Zj1z6AyS+vqV6Hfi7ngCjFGdHV5EwZNIHo6QfFTNe9PyW+zBU1zJ9BiOW1pmUEq950RC4+Dym6flyA/61/vhyw==
+"@webpack-cli/serve@^1.2.2":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.2.2.tgz#1f8eee44f96524756268f5e3f43e9d943f864d41"
+ integrity sha512-03GkWxcgFfm8+WIwcsqJb9agrSDNDDoxaNnexPnCCexP5SCE4IgFd9lNpSy+K2nFqVMpgTFw6SwbmVAVTndVew==
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
strip-ansi "^6.0.0"
wrap-ansi "^6.2.0"
+clone-deep@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
resolve "1.17.0"
tslib "2.0.1"
-rollup@^2.35.1, rollup@^2.36.1:
+rollup@^2.35.1:
version "2.36.1"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.36.1.tgz#2174f0c25c7b400d57b05628d0e732c7ae8d2178"
integrity sha512-eAfqho8dyzuVvrGqpR0ITgEdq0zG2QJeWYh+HeuTbpcaXk8vNFc48B7bJa1xYosTCKx0CuW+447oQOW8HgBIZQ==
optionalDependencies:
fsevents "~2.1.2"
+rollup@^2.37.0:
+ version "2.37.0"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.37.0.tgz#5baf631dc224a56d7eb88dd11b20aa28c1e8dc6f"
+ integrity sha512-cbxuxkMGCQV+TnVh+yZSUerbVb5i8soRydbzHYoMNojgt7MMi+jDLLs24U9HHCssKkwkXmsj+LXcOZMldTbz2w==
+ optionalDependencies:
+ fsevents "~2.1.2"
+
rsvp@^4.8.4:
version "4.8.5"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
+shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
+
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
core-util-is "1.0.2"
extsprintf "^1.2.0"
-vite@^2.0.0-beta.21:
- version "2.0.0-beta.26"
- resolved "https://registry.yarnpkg.com/vite/-/vite-2.0.0-beta.26.tgz#70e2277003de609b218ddb33d740f76d01f01dc2"
- integrity sha512-/OZ5X5nq9xV3UKO2x3Xl83RQM0DsRWsa4htaRyzZ6e+G5Z+SfMiUlveJctSoPJ3JjoIBm4bbDAe0rXM5Mt2tlw==
+vite@^2.0.0-beta.32:
+ version "2.0.0-beta.33"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-2.0.0-beta.33.tgz#8f420e1c679ccc7bcba78a796996ce2458f4a614"
+ integrity sha512-vg7rZbO19w1+nkV3fXsk0ggfI7J8DBDm74olVKgN7/SarrlisOZI/YWwP4XybGVNPnsSsOG9pKXhXl1mY6Oe5A==
dependencies:
esbuild "^0.8.26"
postcss "^8.2.1"
optionalDependencies:
fsevents "~2.1.2"
-vitepress@^0.11.2:
- version "0.11.2"
- resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-0.11.2.tgz#cc8562a30002ad28cd9b5bb49c084bbe16e82490"
- integrity sha512-YzbiCevZLJ6yWFibUAu3xDTCDFvoL7bTin+DU/m7lza9OeVf5jvpHQoUz8t2EaqaUEbfFuJ+lPgUuEBCuKaZzQ==
+vitepress@^0.11.4:
+ version "0.11.4"
+ resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-0.11.4.tgz#0ca9c406d0f0f10cf7baa4117184d05890bc75dc"
+ integrity sha512-WvofLFpPxgaaHeAF72uv2XHKtuQ7ouwJu2n3wuDyAOwU1BeyL9YpnVQPBw/L7LAjApJe9bdbK7om0J/hloXN0g==
dependencies:
"@docsearch/css" "^1.0.0-alpha.28"
"@docsearch/js" "^1.0.0-alpha.28"
- "@vitejs/plugin-vue" "^1.0.3"
+ "@vitejs/plugin-vue" "^1.1.0"
"@vue/compiler-sfc" "^3.0.5"
"@vue/server-renderer" "^3.0.5"
chalk "^4.1.0"
prismjs "^1.20.0"
sirv "^1.0.10"
slash "^3.0.0"
- vite "^2.0.0-beta.21"
+ vite "^2.0.0-beta.32"
vue "^3.0.5"
vue-loader@^16.1.2:
sirv "^1.0.7"
ws "^7.3.1"
-webpack-cli@^4.3.1:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.3.1.tgz#87a7873bc9c6a4708aa657759274b691e72a04a8"
- integrity sha512-/F4+9QNZM/qKzzL9/06Am8NXIkGV+/NqQ62Dx7DSqudxxpAgBqYn6V7+zp+0Y7JuWksKUbczRY3wMTd+7Uj6OA==
+webpack-cli@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.4.0.tgz#38c7fa01ea31510f5c490245dd1bb28018792f1b"
+ integrity sha512-/Qh07CXfXEkMu5S8wEpjuaw2Zj/CC0hf/qbTDp6N8N7JjdGuaOjZ7kttz+zhuJO/J5m7alQEhNk9lsc4rC6xgQ==
dependencies:
"@discoveryjs/json-ext" "^0.5.0"
+ "@webpack-cli/configtest" "^1.0.0"
"@webpack-cli/info" "^1.2.1"
- "@webpack-cli/serve" "^1.2.1"
+ "@webpack-cli/serve" "^1.2.2"
colorette "^1.2.1"
commander "^6.2.0"
enquirer "^2.3.6"
interpret "^2.2.0"
rechoir "^0.7.0"
v8-compile-cache "^2.2.0"
- webpack-merge "^4.2.2"
+ webpack-merge "^5.7.3"
webpack-dev-middleware@^3.7.2:
version "3.7.2"
ansi-colors "^3.0.0"
uuid "^3.3.2"
-webpack-merge@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
- integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==
+webpack-merge@^5.7.3:
+ version "5.7.3"
+ resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213"
+ integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==
dependencies:
- lodash "^4.17.15"
+ clone-deep "^4.0.1"
+ wildcard "^2.0.0"
webpack-sources@^2.1.1:
version "2.2.0"
source-list-map "^2.0.1"
source-map "^0.6.1"
-webpack@^5.15.0:
- version "5.15.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.15.0.tgz#63d7b6228a4e15ee8c89899c2cfdd993e809bdd2"
- integrity sha512-y/xG+ONDz78yn3VvP6gAvGr1/gkxOgitvHSXBmquyN8KDtrGEyE3K9WkXOPB7QmfcOBCpO4ELXwNcCYQnEmexA==
+webpack@^5.16.0:
+ version "5.16.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.16.0.tgz#796e093c2d92c229f013aefefde82b50c0572570"
+ integrity sha512-QOkctcjYfEGxcYg4AzPJafyAQ7ANc266/URkX881uFA7b2k31E0Dmpy1ExfppHOTp1kHDTsRh9sXojVUvgPF0g==
dependencies:
"@types/eslint-scope" "^3.7.0"
"@types/estree" "^0.0.45"
dependencies:
string-width "^1.0.2 || 2"
+wildcard@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
+ integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
+
word-wrap@~1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"