This is an automated email from the ASF dual-hosted git repository.
zhaoc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new 47bce08 [website] Support documents' fulltext searching (master)
(#3535)
47bce08 is described below
commit 47bce081d2a47b641fd24bb28b2e29e0c5219fb3
Author: hffariel <[email protected]>
AuthorDate: Wed May 13 21:18:42 2020 +0800
[website] Support documents' fulltext searching (master) (#3535)
add documents' fulltext search powered by algolia
---
.travis.yml | 3 -
docs/.vuepress/config.js | 24 ++++-
docs/README.md | 8 ++
docs/readme.md | 247 -----------------------------------------------
4 files changed, 28 insertions(+), 254 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 3265388..d4e6bf3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -31,9 +31,6 @@ install:
before_script:
- export
PR=https://api.github.com/repos/$TRAVIS_REPO_SLUG/pulls/$TRAVIS_PULL_REQUEST
- export BRANCH=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then echo
$TRAVIS_BRANCH; else echo `curl -s $PR | jq -r .head.ref`; fi)
- - echo $BRANCH
- - sed -i 's/base:.*,/base:\"\/'$BRANCH'\/\",/g' .vuepress/config.js
- - sed -i 's/docsBranch:.*,/docsBranch:\"'$BRANCH'\",/g' .vuepress/config.js
- find ./ -name "*.md" -exec sed -i -e 's/!\[\(.*\)\][(]\(.*\)[)]/<img
\:src=\"$withBase\('\''\2'\''\)\" alt=\"\1\">/g' {} \;
- rm -rf site-repo
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 09778f7..883b0e2 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -16,6 +16,11 @@
* limitations under the License.
*/
+// Values would be replaced automatically during the travis' building
+const BUILDING_BRANCH = process.env.BRANCH || ''
+const ALGOLIA_API_KEY = process.env.ALGOLIA_API_KEY || ''
+const ALGOLIA_INDEX_NAME = process.env.ALGOLIA_INDEX_NAME || ''
+
function convertSidebar(list, path) {
if (list.length > 0) {
list.forEach((element, i) => {
@@ -30,8 +35,18 @@ function convertSidebar(list, path) {
return list
}
+function buildAlgoliaSearchConfig(lang) {
+ return {
+ apiKey: ALGOLIA_API_KEY,
+ indexName: ALGOLIA_INDEX_NAME,
+ algoliaOptions: {
+ facetFilters: ['lang:' + lang, 'version:' + BUILDING_BRANCH]
+ }
+ }
+}
+
module.exports = {
- base: '',
+ base: BUILDING_BRANCH.length > 0 ? '/' + BUILDING_BRANCH + '/' : '',
locales: {
'/en/': {
lang: 'en',
@@ -65,14 +80,15 @@ module.exports = {
lastUpdated: 'Last Updated',
editLinks: true,
docsDir: 'docs',
- docsBranch: '',
+ docsBranch: BUILDING_BRANCH,
+ searchPlaceholder: 'Search',
locales: {
'/en/': {
+ algolia: buildAlgoliaSearchConfig('en'),
selectText: 'Languages',
label: 'English',
ariaLabel: 'Languages',
editLinkText: 'Edit this page on GitHub',
- algolia: {},
nav: [
{
text: 'Home', link: '/en/'
@@ -90,6 +106,7 @@ module.exports = {
sidebar: convertSidebar(require('./sidebar/en.js'), '/en/')
},
'/zh-CN/': {
+ algolia: buildAlgoliaSearchConfig('zh-CN'),
selectText: 'Languages',
label: '简体中文',
editLinkText: '在 GitHub 上编辑此页',
@@ -107,7 +124,6 @@ module.exports = {
text: 'Apache', link: 'https://www.apache.org/', target: '_blank'
}
],
- algolia: {},
sidebar: {
'/zh-CN/': convertSidebar(require('./sidebar/zh-CN.js'), '/zh-CN/')
}
diff --git a/docs/README.md b/docs/README.md
index fa82195..ae96e46 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -159,6 +159,14 @@ npm ERR! Failed at the docs@ lint script.
```
+## FullText search
+
+We use [Algolia DocSearch](https://docsearch.algolia.com/) as our fulltext
search engine.
+
+One thing we need to do is that [Config.json From
DocSearch](https://github.com/algolia/docsearch-configs/blob/master/configs/apache_doris.json)
should be updated if a new language or branch is created.
+
+For more detail of the docsearch's configuration, please refer to
[Configuration of DocSearch](https://docsearch.algolia.com/docs/config-file)
+
## Deployment
Just start a PR, and all things will be done automatically.
diff --git a/docs/readme.md b/docs/readme.md
deleted file mode 100644
index fa82195..0000000
--- a/docs/readme.md
+++ /dev/null
@@ -1,247 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-# Doris Document
-
-[Vuepress](https://github.com/vuejs/vuepress.git) is used as our document site
generator, configurations are in `./docs/.vuepress` folder.
-
-## Getting Started
-
-Download and install [nodejs](http://nodejs.cn/download/)
-
-```bash
-npm config set registry https://registry.npm.taobao.org // Only if you are in
Mainland China.
-cd docs && npm install
-npm run dev
-```
-
-Open your browser and navigate to `localhost:8080/en/` or
`localhost:8080/zh-CN/`.
-
-## Docs' Directories
-
-```bash
- .
- ├─ docs/
- │ ├─ .vuepress
- │ │ ├─ dist // Built site files.
- │ │ ├─ public // Assets
- │ │ ├─ sidebar // Side bar configurations.
- │ │ │ ├─ en.js
- │ │ │ └─ zh-CN.js
- │ ├─ theme // Global styles and customizations.
- │ └─ config.js // Vuepress configurations.
- ├─ zh-CN/
- │ ├─ xxxx.md
- │ └─ README.md // Will be rendered as entry page.
- └─ en/
- ├─ one.md
- └─ README.md // Will be rendered as entry page.
-```
-
-## Start Writing
-
-1. Write markdown files in multi languages and put them in separated folders
`./en/` and `./zh-CN/`. **But they should be with the same name.**
-
- ```bash
- .
- ├─ en/
- │ ├─ one.md
- │ └─ two.md
- └─ zh-CN/
- │ ├─ one.md
- │ └─ two.md
- ```
-
-2. Frontmatters like below should always be on the top of each file:
-
- ```markdown
- ---
- {
- "title": "Backup and Recovery", // sidebar title
- "language": "en" // writing language
- }
- ---
- ```
-
-3. Assets are in `.vuepress/public/`.
-
- Assuming that there exists a png `.vuepress/public/images/image_x.png`,
then it can be used like:
-
- ```markdown
- 
- ```
-
-4. Remember to update the sidebar configurations in `.vuepress/sidebar/` after
adding a new file or a folder.
-
- Assuming that the directories are:
-
- ```bash
- .
- ├─ en/
- │ ├─ subfolder
- │ │ ├─ one.md
- │ │ └─ two.md
- │ └─ three.md
- └─ zh-CN/
- ├─ subfolder
- │ ├─ one.md
- │ └─ two.md
- └─ three.md
- ```
-
- Then the sidebar configurations would be like:
-
- ```javascript
- // .vuepress/sidebar/en.js`
- module.exports = [
- {
- title: "subfolder name",
- directoryPath: "subfolder/",
- children: ["one", "two"]
- },
- "three"
- ]
- ```
-
- ```javascript
- // .vuepress/sidebar/zh-CN.js
- module.exports = [
- {
- title: "文件夹名称",
- directoryPath: "subfolder/",
- children: ["one", "two"]
- },
- "three"
- ]
- ```
-
-5. Run `npm run lint` before starting a PR.
-
- Surely that there will be lots of error logs if the mardown files are not
following the rules, and these logs will all be printed in the console:
-
-```shell
-
-en/administrator-guide/alter-table/alter-table-bitmap-index.md:92
MD040/fenced-code-language Fenced code blocks should have a language specified
[Context: " ```"]
-en/administrator-guide/alter-table/alter-table-rollup.md:45
MD040/fenced-code-language Fenced code blocks should have a language specified
[Context: "```"]
-en/administrator-guide/alter-table/alter-table-rollup.md:77
MD040/fenced-code-language Fenced code blocks should have a language specified
[Context: "```"]
-en/administrator-guide/alter-table/alter-table-rollup.md:178
MD046/code-block-style Code block style [Expected: fenced; Actual: indented]
-en/administrator-guide/alter-table/alter-table-schema-change.md:50
MD040/fenced-code-language Fenced code blocks should have a language specified
[Context: "```"]
-en/administrator-guide/alter-table/alter-table-schema-change.md:82
MD040/fenced-code-language Fenced code blocks should have a language specified
[Context: "```"]
-en/administrator-guide/alter-table/alter-table-schema-change.md:127
MD040/fenced-code-language Fenced code blocks should have a language specified
[Context: "```"]
-en/administrator-guide/alter-table/alter-table-schema-change.md:144
MD040/fenced-code-language Fenced code blocks should have a language specified
[Context: "```"]
-en/administrator-guide/alter-table/alter-table-schema-change.md:153
MD040/fenced-code-language Fenced code blocks should have a language specified
[Context: "```"]
-en/administrator-guide/alter-table/alter-table-schema-change.md:199
MD046/code-block-style Code block style [Expected: fenced; Actual: indented]
-en/administrator-guide/backup-restore.md:45:1 MD029/ol-prefix Ordered list
item prefix [Expected: 1; Actual: 2; Style: 1/1/1]
-en/administrator-guide/backup-restore.md:57:1 MD029/ol-prefix Ordered list
item prefix [Expected: 1; Actual: 2; Style: 1/1/1]
-en/administrator-guide/backup-restore.md:61:1 MD029/ol-prefix Ordered list
item prefix [Expected: 1; Actual: 3; Style: 1/1/1]
-npm ERR! code ELIFECYCLE
-npm ERR! errno 1
-npm ERR! docs@ lint: `markdownlint '**/*.md' -f`
-npm ERR! Exit status 1
-npm ERR!
-npm ERR! Failed at the docs@ lint script.
-
-```
-
-## Deployment
-
-Just start a PR, and all things will be done automatically.
-
-## What Travis Does
-
-Once a PR accepted, travis ci will be triggered to build and deploy the whole
website within its own branch. Here is what `.travis.yml` does:
-
-1. Prepare nodejs and vuepress enviorment.
-
-2. Use current branch's name as the relative url path in
`.vuepress/config.js`(which is the `base` property).
-
-3. Build the documents into a website all by vuepress.
-
-4. Fetch asf-site repo to local directory, and copy `.vupress/dist/` into
`{BRANCH}/`.
-
-5. Push the new site to asf-site repo with `GitHub Token`(which is preset in
Travis console as a variable used in .travis.yml).
-
-## asf-site repository
-
-Finally the asf-site repository will be like:
-
-```bash
-.
-├─ master/
-│ ├─ en/
-│ │ ├─ subfolder
-│ │ │ ├─ one.md
-│ │ └─ three.md
-│ └─ zh-CN/
-│ ├─ subfolder
-│ │ ├─ one.md
-│ └─ three.md
-├─ incubating-0.11/
-│ ├─ en/
-│ │ ├─ subfolder
-│ │ │ ├─ one.md
-│ │ └─ three.md
-│ └─ zh-CN/
-│ ├─ subfolder
-│ │ ├─ one.md
-│ └─ three.md
-├─ index.html // user entry, and auto redirected to master folder
-└─ versions.json // all versions that can be seleted on the website are
defined here
-```
-
-And the `versions.json` is like:
-
-```json
-{
- "en": [
- {
- "text": "Versions", // dropdown label
- "items": [
- {
- "text": "master", // dropdown-item label
- "link": "/../master/en/installing/compilation.html", // entry page
for this version
- "target": "_blank"
- },
- {
- "text": "branch-0.11",
- "link": "/../branch-0.11/en/installing/compilation.html",
- "target": "_blank"
- }
- ]
- }
- ],
- "zh-CN": [
- {
- "text": "版本",
- "items": [
- {
- "text": "master",
- "link": "/../master/zh-CN/installing/compilation.html",
- "target": "_blank"
- },
- {
- "text": "branch-0.11",
- "link": "/../branch-0.11/zh-CN/installing/compilation.html",
- "target": "_blank"
- }
- ]
- }
- ]
-}
-```
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]