Skip to content

Commit 702d676

Browse files
committed
feat: support algolia search per locale
1 parent 5c3ae19 commit 702d676

File tree

3 files changed

+39
-12
lines changed

3 files changed

+39
-12
lines changed

Diff for: docs/.vuepress/config.js

+12
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ module.exports = {
4747
link: '/default-theme-config/'
4848
}
4949
],
50+
algolia: {
51+
appId: 'BH4D9OD16A',
52+
apiKey: '85cc3221c9f23bfbaa4e3913dd7625ea',
53+
indexName: 'vuejs',
54+
algoliaOptions: { facetFilters: ["version:v2"] }
55+
},
5056
sidebar: {
5157
'/guide/': genSidebarConfig('Guide')
5258
}
@@ -55,6 +61,12 @@ module.exports = {
5561
label: '简体中文',
5662
selectText: '选择语言',
5763
editLinkText: '在 GitHub 上编辑此页',
64+
algolia: {
65+
appId: 'BH4D9OD16A',
66+
apiKey: '5638280abff9d207417bb03be05f0b25',
67+
indexName: 'vuejs_cn2',
68+
algoliaOptions: { facetFilters: ["version:v2"] }
69+
},
5870
nav: [
5971
{
6072
text: '指南',

Diff for: lib/default-theme/AlgoliaSearchBox.vue

+22-10
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,34 @@
11
<template>
22
<form id="search-form" class="algolia-search-wrapper search-box">
3-
<input id="algolia-search-input" class="search-query st-default-search-input">
3+
<input id="algolia-search-input" class="search-query">
44
</form>
55
</template>
66

77
<script>
88
export default {
99
props: ['options'],
1010
mounted () {
11-
Promise.all([
12-
import(/* webpackChunkName: "docsearch" */ 'docsearch.js/dist/cdn/docsearch.min.js'),
13-
import(/* webpackChunkName: "docsearch" */ 'docsearch.js/dist/cdn/docsearch.min.css')
14-
]).then(([docsearch]) => {
15-
docsearch = docsearch.default
16-
docsearch(Object.assign(this.options, {
17-
inputSelector: '#algolia-search-input'
18-
}))
19-
})
11+
this.initialize()
12+
},
13+
methods: {
14+
initialize () {
15+
Promise.all([
16+
import(/* webpackChunkName: "docsearch" */ 'docsearch.js/dist/cdn/docsearch.min.js'),
17+
import(/* webpackChunkName: "docsearch" */ 'docsearch.js/dist/cdn/docsearch.min.css')
18+
]).then(([docsearch]) => {
19+
docsearch = docsearch.default
20+
docsearch(Object.assign(this.options, {
21+
debug: true,
22+
inputSelector: '#algolia-search-input'
23+
}))
24+
})
25+
}
26+
},
27+
watch: {
28+
options (newValue) {
29+
this.$el.innerHTML = '<input id="algolia-search-input" class="search-query">'
30+
this.initialize(newValue)
31+
}
2032
}
2133
}
2234
</script>

Diff for: lib/default-theme/Navbar.vue

+5-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</span>
1313
</router-link>
1414
<div class="links">
15-
<AlgoliaSearchBox v-if="isAlgoliaSearch" :options="$site.themeConfig.algolia"/>
15+
<AlgoliaSearchBox v-if="isAlgoliaSearch" :options="algolia"/>
1616
<SearchBox v-if="isSearch"/>
1717
<NavLinks class="can-hide"/>
1818
</div>
@@ -28,8 +28,11 @@ import NavLinks from './NavLinks.vue'
2828
export default {
2929
components: { SidebarButton, NavLinks, SearchBox, AlgoliaSearchBox },
3030
computed: {
31+
algolia () {
32+
return this.$themeLocaleConfig.algolia || this.$site.themeConfig.algolia || {}
33+
},
3134
isAlgoliaSearch () {
32-
const { algolia } = this.$site.themeConfig
35+
const algolia = this.algolia
3336
return algolia && algolia.appId && algolia.apiKey && algolia.indexName
3437
},
3538
isSearch() {

0 commit comments

Comments
 (0)