From 0489c213b6313c5fc8c854c725d23c79ce45d628 Mon Sep 17 00:00:00 2001 From: Sylvain Pace Date: Wed, 22 Aug 2018 17:24:52 +0200 Subject: [PATCH 01/29] Doc/update content (#422) * # This is a combination of 2 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: chore(deps): update dependency onchange to v4.1.0 integrate previous work enhance tyle/content reformat part 1 wait for review adance start_urls enhance attributes description fix typo proofread documentation/docsearch add apiKey mention intefrate review and small fixes finished proofreading update sclient-rendering use unseen review # This is the commit message #2: update README #269 # This is the commit message #3: fix json # This is the commit message #2: enhance as algolia/docsearch-configs#387 # This is the commit message #3: updating flavicon # This is the commit message #2: Update 1-customize-configuration-file.html.md.erb * # This is a combination of 2 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: chore(deps): update dependency onchange to v4.1.0 integrate previous work enhance tyle/content reformat part 1 wait for review adance start_urls enhance attributes description fix typo proofread documentation/docsearch add apiKey mention intefrate review and small fixes finished proofreading update sclient-rendering use unseen review # This is the commit message #2: update README #269 # This is the commit message #3: fix json # This is the commit message #2: enhance as algolia/docsearch-configs#387 # This is the commit message #3: updating flavicon # This is the commit message #2: Update 1-customize-configuration-file.html.md.erb * documenting algolia/docsearch-scraper#387 * documenting algolia/docsearch-scraper#387 * fixing changelog * fixing typo * # This is a combination of 2 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: chore(deps): update dependency onchange to v4.1.0 integrate previous work enhance tyle/content reformat part 1 wait for review adance start_urls enhance attributes description fix typo proofread documentation/docsearch add apiKey mention intefrate review and small fixes finished proofreading update sclient-rendering use unseen review # This is the commit message #2: update README #269 # This is the commit message #3: fix json # This is the commit message #2: enhance as algolia/docsearch-configs#387 # This is the commit message #3: updating flavicon # This is the commit message #2: Update 1-customize-configuration-file.html.md.erb * # This is a combination of 2 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: chore(deps): update dependency onchange to v4.1.0 integrate previous work enhance tyle/content reformat part 1 wait for review adance start_urls enhance attributes description fix typo proofread documentation/docsearch add apiKey mention intefrate review and small fixes finished proofreading update sclient-rendering use unseen review # This is the commit message #2: update README #269 # This is the commit message #3: fix json # This is the commit message #2: enhance as algolia/docsearch-configs#387 # This is the commit message #3: updating flavicon # This is the commit message #2: Update 1-customize-configuration-file.html.md.erb * documenting algolia/docsearch-scraper#387 * documenting algolia/docsearch-scraper#387 * fixing typo * fixing style issue * fixing recurrnet issue * general github handle * fixing missed conflict * fix and closes algolia/docsearch-configs-private#82 * remove builded content * adding hitsperpage * fix --- docs/src/config-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/config-file.md b/docs/src/config-file.md index 60fe4c13..38c6b43a 100644 --- a/docs/src/config-file.md +++ b/docs/src/config-file.md @@ -399,7 +399,7 @@ If used, `min_indexed_level` is ignored. ### `scrape_start_urls` _Optional_ By default, the crawler will extract content from the pages defined in -`starts_urls`. If you do have valuable content on your `starts_urls` or these pages are duplicates from another one, you should set +`starts_urls`. If you do not have any valuable content on your `starts_urls` or that some pages are duplicates from another one, you should set this to `false`. ```json From 638593a9c8ac055e263557c13f076a98553487e2 Mon Sep 17 00:00:00 2001 From: Sylvain Pace Date: Wed, 22 Aug 2018 17:37:36 +0200 Subject: [PATCH 02/29] Doc/update content (#423) * # This is a combination of 2 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: chore(deps): update dependency onchange to v4.1.0 integrate previous work enhance tyle/content reformat part 1 wait for review adance start_urls enhance attributes description fix typo proofread documentation/docsearch add apiKey mention intefrate review and small fixes finished proofreading update sclient-rendering use unseen review # This is the commit message #2: update README #269 # This is the commit message #3: fix json # This is the commit message #2: enhance as algolia/docsearch-configs#387 # This is the commit message #3: updating flavicon # This is the commit message #2: Update 1-customize-configuration-file.html.md.erb * # This is a combination of 2 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: chore(deps): update dependency onchange to v4.1.0 integrate previous work enhance tyle/content reformat part 1 wait for review adance start_urls enhance attributes description fix typo proofread documentation/docsearch add apiKey mention intefrate review and small fixes finished proofreading update sclient-rendering use unseen review # This is the commit message #2: update README #269 # This is the commit message #3: fix json # This is the commit message #2: enhance as algolia/docsearch-configs#387 # This is the commit message #3: updating flavicon # This is the commit message #2: Update 1-customize-configuration-file.html.md.erb * documenting algolia/docsearch-scraper#387 * documenting algolia/docsearch-scraper#387 * fixing changelog * fixing typo * # This is a combination of 2 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: chore(deps): update dependency onchange to v4.1.0 integrate previous work enhance tyle/content reformat part 1 wait for review adance start_urls enhance attributes description fix typo proofread documentation/docsearch add apiKey mention intefrate review and small fixes finished proofreading update sclient-rendering use unseen review # This is the commit message #2: update README #269 # This is the commit message #3: fix json # This is the commit message #2: enhance as algolia/docsearch-configs#387 # This is the commit message #3: updating flavicon # This is the commit message #2: Update 1-customize-configuration-file.html.md.erb * # This is a combination of 2 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: # This is a combination of 3 commits. # This is the 1st commit message: chore(deps): update dependency onchange to v4.1.0 integrate previous work enhance tyle/content reformat part 1 wait for review adance start_urls enhance attributes description fix typo proofread documentation/docsearch add apiKey mention intefrate review and small fixes finished proofreading update sclient-rendering use unseen review # This is the commit message #2: update README #269 # This is the commit message #3: fix json # This is the commit message #2: enhance as algolia/docsearch-configs#387 # This is the commit message #3: updating flavicon # This is the commit message #2: Update 1-customize-configuration-file.html.md.erb * documenting algolia/docsearch-scraper#387 * documenting algolia/docsearch-scraper#387 * fixing typo * fixing style issue * fixing recurrnet issue * general github handle * fixing missed conflict * fix and closes algolia/docsearch-configs-private#82 * remove builded content * adding hitsperpage * fix * enhance --- docs/src/faq.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/src/faq.md b/docs/src/faq.md index 21894713..86301cf0 100644 --- a/docs/src/faq.md +++ b/docs/src/faq.md @@ -48,6 +48,8 @@ dashboard, that will let you have more data about the anonymized searches that were done on your website. You'll be able to see the most searched terms, or those with no results. +You will understand what people do not. + _If you don't have Analytics access, send us an email and we'll enable it._ ### Where is my data hosted? From 474fd98ecc115a707b58612db37ce87e0dc381de Mon Sep 17 00:00:00 2001 From: Pixelastic Date: Wed, 22 Aug 2018 14:27:09 +0200 Subject: [PATCH 03/29] docs(logos): Replacing Stripe with MomentJS --- docs/src/_layouts/homepage.pug | 6 +++--- docs/src/assets/logos/momentjs.jpg | Bin 0 -> 27129 bytes 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 docs/src/assets/logos/momentjs.jpg diff --git a/docs/src/_layouts/homepage.pug b/docs/src/_layouts/homepage.pug index 34cfa980..ddf6cf99 100644 --- a/docs/src/_layouts/homepage.pug +++ b/docs/src/_layouts/homepage.pug @@ -60,6 +60,9 @@ block content .glide__slide img(src="assets/logos/jekyll.jpg", alt="DocSearch + Jekyll", width=60) .glide__caption Jekyll + .glide__slide + img(src="assets/logos/momentjs.jpg", alt="DocSearch + MomentJS", width=60) + .glide__caption MomentJS .glide__slide img(src="assets/logos/netlify.jpg", alt="DocSearch + Netlify", width=60) .glide__caption Netlify @@ -81,9 +84,6 @@ block content .glide__slide img(src="assets/logos/socketio.jpg", alt="DocSearch + Socket.io" , width=60) .glide__caption Socket.io - .glide__slide - img(src="assets/logos/stripe.jpg", alt="DocSearch + Stripe", width=60) - .glide__caption Stripe .glide__slide img(src="assets/logos/trello.jpg", alt="DocSearch + Trello", width=60) .glide__caption Trello diff --git a/docs/src/assets/logos/momentjs.jpg b/docs/src/assets/logos/momentjs.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a8cc3c72f4b88456ef1f5c6ecdfc6664d9d3ec4 GIT binary patch literal 27129 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

=IJVFIEpK(xchL&r!@#^O|N;2 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 Date: Wed, 22 Aug 2018 19:55:20 +0200 Subject: [PATCH 04/29] Add Markdown linting --- docs/.eslintignore | 1 + docs/.remarkrc.js | 38 ++++++++++++ docs/config.json | 11 ++-- docs/package.json | 14 ++++- docs/scripts/deploy | 2 + docs/scripts/lint | 5 +- docs/scripts/lint-css | 3 + docs/scripts/lint-js | 7 +++ docs/scripts/lint-md | 7 +++ docs/scripts/lint-md-fix | 7 +++ docs/scripts/{precommit => prepush} | 0 docs/src/apply.md | 3 +- docs/src/behavior.md | 3 + docs/src/run-your-own.md | 94 ++++++++++++++++------------- docs/src/styling.md | 6 +- docs/src/test.md | 9 +++ docs/src/tips.md | 1 - docs/src/updated.md | 9 +++ docs/src/what-is-docsearch.md | 2 +- docs/src/who-can-apply.md | 10 ++- package.json | 3 +- 21 files changed, 174 insertions(+), 61 deletions(-) create mode 100644 docs/.eslintignore create mode 100644 docs/.remarkrc.js create mode 100755 docs/scripts/lint-css create mode 100755 docs/scripts/lint-js create mode 100755 docs/scripts/lint-md create mode 100755 docs/scripts/lint-md-fix rename docs/scripts/{precommit => prepush} (100%) create mode 100644 docs/src/test.md create mode 100644 docs/src/updated.md diff --git a/docs/.eslintignore b/docs/.eslintignore new file mode 100644 index 00000000..93bbd9bd --- /dev/null +++ b/docs/.eslintignore @@ -0,0 +1 @@ +!.*.js diff --git a/docs/.remarkrc.js b/docs/.remarkrc.js new file mode 100644 index 00000000..6ec248af --- /dev/null +++ b/docs/.remarkrc.js @@ -0,0 +1,38 @@ +/* eslint-disable import/no-commonjs */ +const remarkMode = process.env.REMARK_MODE; +/** + * Linting config. + * Check the followin links for the list of all rules: + * - https://github.com/remarkjs/remark-lint/tree/master/packages/remark-preset-lint-consistent + * - https://github.com/remarkjs/remark-lint/tree/master/packages/remark-preset-lint-recommended + * - https://github.com/remarkjs/remark-lint/tree/master/packages/remark-preset-lint-markdown-style-guide + **/ +const lintConfig = { + plugins: [ + 'frontmatter', + 'remark-preset-lint-consistent', + 'remark-preset-lint-recommended', + 'preset-lint-markdown-style-guide', + + 'lint-no-trailing-spaces', // No trailing spaces + ['lint-emphasis-marker', '_'], // Italic with _, bold with ** + ['lint-list-item-indent', 'space'], // Indent list items with one space + ], +}; +const fixConfig = { + settings: { + emphasis: '_', // Italic with _ + strong: '*', // Bold with * + listItemIndent: 1, // Indent list items with one space + }, + plugins: { + frontmatter: true, + 'reference-links': true, + 'word-wrap': true, + }, +}; + +const config = remarkMode === 'fix' ? fixConfig : lintConfig; + +exports.plugins = config.plugins; +exports.settings = config.settings; diff --git a/docs/config.json b/docs/config.json index 8caf5758..1ee0b18e 100644 --- a/docs/config.json +++ b/docs/config.json @@ -83,7 +83,7 @@ } ], "redirects": [ - { + { "from": "documentation/docsearch/introduction/index.html", "to": "what-is-docsearch.html" }, @@ -104,15 +104,18 @@ "to": "config-file.html" }, { - "from": "documentation/docsearch-autocomplete/customize-autocomplete-styles/index.html", + "from": + "documentation/docsearch-autocomplete/customize-autocomplete-styles/index.html", "to": "styling.html" }, { - "from": "documentation/docsearch-autocomplete/configuring-the-search/index.html", + "from": + "documentation/docsearch-autocomplete/configuring-the-search/index.html", "to": "behavior.html" }, { - "from": "documentation/docsearch-FAQ/customize-configuration-file/index.html", + "from": + "documentation/docsearch-FAQ/customize-configuration-file/index.html", "to": "config-file.html" }, { diff --git a/docs/package.json b/docs/package.json index 67a37d94..cae4dfc4 100644 --- a/docs/package.json +++ b/docs/package.json @@ -5,7 +5,11 @@ "build": "NODE_ENV=production babel-node ./scripts/build.js", "deploy": "./scripts/deploy", "lint": "./scripts/lint", - "precommit": "./scripts/precommit", + "lint:js": "./scripts/lint-js", + "lint:css": "./scripts/lint-css", + "lint:md": "./scripts/lint-md", + "lint:md:fix": "./scripts/lint-md-fix", + "prepush": "./scripts/prepush", "serve": "babel-node ./scripts/serve.js" }, "devDependencies": { @@ -50,6 +54,14 @@ "prettier": "1.9.2", "pug": "^2.0.3", "puppeteer": "^1.6.1", + "remark-cli": "^5.0.0", + "remark-frontmatter": "^1.2.1", + "remark-lint-no-trailing-spaces": "^2.0.0", + "remark-preset-lint-consistent": "^2.0.2", + "remark-preset-lint-markdown-style-guide": "^2.1.2", + "remark-preset-lint-recommended": "^3.0.2", + "remark-reference-links": "^4.0.2", + "remark-word-wrap": "^2.0.2", "stylelint": "^9.3.0", "stylelint-csstree-validator": "^1.3.0", "tailwindcss": "^0.6.4" diff --git a/docs/scripts/deploy b/docs/scripts/deploy index 621f0b1e..4b4e5de3 100755 --- a/docs/scripts/deploy +++ b/docs/scripts/deploy @@ -1,6 +1,8 @@ #!/usr/bin/env sh set -e +yarn run lint + rm -rf ./dist yarn run build gh-pages -d dist diff --git a/docs/scripts/lint b/docs/scripts/lint index 1aba1ac3..ebc58f44 100755 --- a/docs/scripts/lint +++ b/docs/scripts/lint @@ -1,5 +1,6 @@ #!/usr/bin/env sh set -e -eslint ./scripts/**/*.js ./src/*.js ./*.js -stylelint ./src/style.css ./src/_styles/*.css +yarn run lint:js +yarn run lint:css +# yarn run lint:md diff --git a/docs/scripts/lint-css b/docs/scripts/lint-css new file mode 100755 index 00000000..25bdc77e --- /dev/null +++ b/docs/scripts/lint-css @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +stylelint ./src/style.css ./src/_styles/*.css diff --git a/docs/scripts/lint-js b/docs/scripts/lint-js new file mode 100755 index 00000000..817bae6d --- /dev/null +++ b/docs/scripts/lint-js @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +eslint \ + ./*.js \ + ./.*.js \ + ./src/**/*.js \ + ./scripts/**/*.js diff --git a/docs/scripts/lint-md b/docs/scripts/lint-md new file mode 100755 index 00000000..631a0dec --- /dev/null +++ b/docs/scripts/lint-md @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +remark \ + --no-stdout \ + --quiet \ + --frail \ + ./src/*.md diff --git a/docs/scripts/lint-md-fix b/docs/scripts/lint-md-fix new file mode 100755 index 00000000..2d9cee1b --- /dev/null +++ b/docs/scripts/lint-md-fix @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +REMARK_MODE=fix \ + remark \ + --quiet \ + --output ./src/updated.md \ + ./src/test.md diff --git a/docs/scripts/precommit b/docs/scripts/prepush similarity index 100% rename from docs/scripts/precommit rename to docs/scripts/prepush diff --git a/docs/src/apply.md b/docs/src/apply.md index 2247cead..34fc3828 100644 --- a/docs/src/apply.md +++ b/docs/src/apply.md @@ -4,7 +4,6 @@ title: Applying to DocSearch includeForm: true --- -__Please make sure you [read the checklist][1] before applying.__ - +**Please make sure you [read the checklist][1] before applying.** [1]: who-can-apply.html diff --git a/docs/src/behavior.md b/docs/src/behavior.md index c249c927..00e1b57c 100644 --- a/docs/src/behavior.md +++ b/docs/src/behavior.md @@ -29,6 +29,7 @@ redirect the browser to the page matching part of the page, but you can override it to add your own behavior. The method is called with three arguments: + - `input`, a reference to the search `input` element. It comes with the `.open()`, `.close()`, `.getVal()` and `.setVal()` methods. - `event`, the actual event triggering the selection. This can come from a click @@ -114,6 +115,8 @@ docsearch({ [1]: https://github.com/algolia/autocomplete.js + [2]: https://github.com/algolia/autocomplete.js#options + [3]: https://www.algolia.com/doc/api-reference/api-parameters/ [4]: https://www.algolia.com/doc/api-reference/api-parameters/hitsPerPage/ diff --git a/docs/src/run-your-own.md b/docs/src/run-your-own.md index 5fedb319..9dc62adb 100644 --- a/docs/src/run-your-own.md +++ b/docs/src/run-your-own.md @@ -3,51 +3,54 @@ layout: two-columns title: Run your own --- -The version of DocSearch we provide for free is one hosted on our own servers, -running every 24 hours. If you need to update your results more often than that, -or need to index content sitting behind a firewall, you might want to run the -crawler yourself. +The version of DocSearch we provide for free is one hosted on our own +servers, running every 24 hours. If you need to update your results +more often than that, or need to index content sitting behind a +firewall, you might want to run the crawler yourself. -The code of DocSearch is Open-Source, and we packaged it as a Docker image to -make this even easier for you to use. +The code of DocSearch is Open-Source, and we packaged it as a Docker +image to make this even easier for you to use. ## Installation -Start by cloning [the repo][1] and then running `./docsearch docker:build` to -create the local image. +Start by cloning [the repo][1] and then running `./docsearch +docker:build` to create the local image. -Even if not recommended, you can run DocSearch directly from you host. For -that, you'll need to have `python` and `pip` installed, and then run `pip -install --user -r requirements.txt`. +Even if not recommended, you can run DocSearch directly from you host. +For that, you'll need to have `python` and `pip` installed, and then +run `pip install --user -r requirements.txt`. ## Configuration -You'll need to set your Algolia application ID and admin API key as environment -variables. If you don't have an Algolia account, you should [create one][2]. +You'll need to set your Algolia application ID and admin API key as +environment variables. If you don't have an Algolia account, you +should [create one][2]. - `APPLICATION_ID` should be set to your Application ID -- `API_KEY` should be set to your API Key. Make sure to use an API key with - **write** access to your index. -For convenience, you can create a `.env` file in the repository root with the -following format and DocSearch will use those values. +- `API_KEY` should be set to your API Key. Make sure to use an API key + with **write** access to your index. -``` +For convenience, you can create a `.env` file in the repository root +with the following format and DocSearch will use those values. + +```sh APPLICATION_ID=YOUR_APP_ID API_KEY=YOUR_API_KEY ``` ## Creating a new config -To create your config, run `./docsearch bootstrap`. A prompt will ask you for -a some information and will then output a JSON config you can use as a base. +To create your config, run `./docsearch bootstrap`. A prompt will ask +you for a some information and will then output a JSON config you can +use as a base. ```sh $ ./docsearch bootstrap # Enter your documentation url -start url: http://www.example.com/docs/ +start url: http://www.example.com/docs/ # You most probably don't need variables -Does the start_urls require variables ? [y/n]: n +Does the start_urls require variables ? [y/n]: n # Pick another name, or press enter index_name is example [enter to confirm]: @@ -70,42 +73,43 @@ index_name is example [enter to confirm]: ================= ``` -Copy-paste the content into a file name `example.json`, we'll use it later to -start the crawling. You can find the complete list of available options in [our -documentation][3], or browse the [list of live configs][4]. +Copy-paste the content into a file name `example.json`, we'll use it +later to start the crawling. You can find the complete list of +available options in [our documentation][3], or browse the [list of +live configs][4]. ## Running your config -Now that you have your environment variables set, you can run the crawler -according to your config. +Now that you have your environment variables set, you can run the +crawler according to your config. ```sh $ ./docsearch docker:run /path/to/your/config.json ``` -This will crawl all pages, extract content from them and then push it to -Algolia. +This will crawl all pages, extract content from them and then push it +to Algolia. ## Testing your results -You can test your results by running `./docsearch playground`. This will open -a web page with a search input where you can do live tests against the indexed -results. +You can test your results by running `./docsearch playground`. This +will open a web page with a search input where you can do live tests +against the indexed results. Playground -_Note that if the command fails (it can happen on non-Mac machines), you can get -the same result by running a live server in the `./playground` subdirectory.`_ +_Note that if the command fails (it can happen on non-Mac machines), +you can get the same result by running a live server in the ` +./playground` subdirectory.\`_ ## Integration -Once you're satisfied with your config, you can integrate the dropdown menu in -your website by following the [instructions here][5]. +Once you're satisfied with your config, you can integrate the dropdown +menu in your website by following the [instructions here][5]. The difference is that you'll also have to add the `appId` key to your -`docsearch()` instance. Also don't forget to use a **search** API key here (ie. -not the **write** API key you used for the crawling). - +`docsearch()` instance. Also don't forget to use a **search** API key +here (ie. not the **write** API key you used for the crawling). ```javascript docsearch({ @@ -117,14 +121,18 @@ docsearch({ ## Help -You can run `./docsearch` without any argument to see the list of all available -commands. +You can run `./docsearch` without any argument to see the list of all +available commands. -Note that we use this CLI tool internally at Algolia to run the free hosted -version, so you might not need all the listed commands. +Note that we use this CLI tool internally at Algolia to run the free +hosted version, so you might not need all the listed commands. [1]: https://github.com/algolia/docsearch-scraper + [2]: https://www.algolia.com/pricing#community + [3]: ./config-file.html + [4]: https://github.com/algolia/docsearch-configs/tree/master/configs + [5]: ./dropdown.html diff --git a/docs/src/styling.md b/docs/src/styling.md index da121d2a..316556b8 100644 --- a/docs/src/styling.md +++ b/docs/src/styling.md @@ -87,8 +87,6 @@ two-column layout shown in the screenshot is used on larger screens. You can media queries (for example `@media (min-width: 768px) {}`) to target one or the other display. - - ## Advanced styling If you want to more heavily style the results, feel free to have a look at the @@ -99,8 +97,10 @@ You can generate your own CSS file by cloning the repo and running `yarn run build:css`. The resulting file will be generated in `./dist/cdn`, and should be used instead of the default one. - [1]: ./assets/default-colorscheme.png + [2]: https://www.algolia.com/pricing + [3]: ./crawler-overview.html + [4]: https://github.com/algolia/docsearch/tree/master/src/styles diff --git a/docs/src/test.md b/docs/src/test.md new file mode 100644 index 00000000..26946034 --- /dev/null +++ b/docs/src/test.md @@ -0,0 +1,9 @@ +--- +layout: two-columns +title: Tips for a good search +--- + +DocSearch can work with almost any website, but we found that some +site structure yield more relevant result and/or faster indexing time. +In this page we'll share some tips on how you can make the most out of +DocSearch. diff --git a/docs/src/tips.md b/docs/src/tips.md index d374fb60..0470b834 100644 --- a/docs/src/tips.md +++ b/docs/src/tips.md @@ -75,5 +75,4 @@ class to the `Installation` and `Troubleshooting` links in your sidebar. The name of the CSS class does not matter, as long as it's something that can be used as part of a CSS selector. - [1]: https://www.sitemaps.org/index.html diff --git a/docs/src/updated.md b/docs/src/updated.md new file mode 100644 index 00000000..26946034 --- /dev/null +++ b/docs/src/updated.md @@ -0,0 +1,9 @@ +--- +layout: two-columns +title: Tips for a good search +--- + +DocSearch can work with almost any website, but we found that some +site structure yield more relevant result and/or faster indexing time. +In this page we'll share some tips on how you can make the most out of +DocSearch. diff --git a/docs/src/what-is-docsearch.md b/docs/src/what-is-docsearch.md index 0444d0f7..acbcf3f3 100644 --- a/docs/src/what-is-docsearch.md +++ b/docs/src/what-is-docsearch.md @@ -6,7 +6,7 @@ title: What is DocSearch? DocSearch is born out of the need to scratch our own itch. As developers, we spent a lot of time reading documentation, and we often found it hard to find relevant information we need quickly. We're not blaming anyone here; building -a good search is a challenge. +a good search is a challenge. It just happens that we are a search company and we actually have a lot of experience building search interfaces. We wanted to put those skills to good diff --git a/docs/src/who-can-apply.md b/docs/src/who-can-apply.md index bf8b1635..5b15c68f 100644 --- a/docs/src/who-can-apply.md +++ b/docs/src/who-can-apply.md @@ -18,12 +18,15 @@ points: - You must be the **owner** of the website, or at least have the power to update its content. You'll have to include a JavaScript snippet to enable DocSearch. + - Your website must be **publicly available**. We cannot index websites that are sitting behind an authentication or available on your machine. + - Your website must be a **documentation website**. We do not index blogs and commercial one-pagers. -- Your website must **have some content**. We won't index empty websites nor those - filled with lorem ipsum placeholder content. Please, wait until you have + +- Your website must **have some content**. We won't index empty websites nor + those filled with lorem ipsum placeholder content. Please, wait until you have written some documentation before applying. If in doubt, don't hesitate to [apply][1] and we'll figure it out together. @@ -42,13 +45,14 @@ following criteria: - 🙂 If your project is Open-Source, we'll handle it before any other close-source product. We care about the OSS community and want to help as much as we can. + - 🙂 If you're using one of our [official integrations][2], creating your config will be much faster for us. + - â˜šī¸ If your website is rendered in the browser through JavaScript, it means that we'll have to crawl it through a browser emulation which is much slower than a typical crawl. We highly recommend that you implement server-side rendering if you can. - [1]: ./apply.html [2]: ./integrations.html diff --git a/package.json b/package.json index 0ff4cc35..43454220 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "release:beta": "./scripts/release-beta", "serve": "./scripts/serve", "test": "./scripts/test", - "test:watch": "./scripts/test-watch" + "test:watch": "./scripts/test-watch", + "postinstall": "cd ./docs && yarn install" }, "files": [ "dist/" From 9c4d0cbb30ee2826e2cbe32661820584a1c4c58e Mon Sep 17 00:00:00 2001 From: Pixelastic Date: Wed, 22 Aug 2018 20:06:54 +0200 Subject: [PATCH 05/29] Fix linting errors --- docs/.remarkrc.js | 3 ++- docs/package.json | 1 - docs/scripts/lint-md-fix | 4 ++-- docs/src/behavior.md | 2 ++ docs/src/config-file.md | 24 +++++++++++++----------- docs/src/crawler-overview.md | 2 ++ docs/src/dropdown.md | 21 ++++++++++----------- docs/src/faq.md | 28 +++++++++++++++++----------- docs/src/how-does-it-work.md | 4 ---- docs/src/inside-the-engine.md | 11 ++++------- docs/src/integrations.md | 7 +++++++ docs/src/run-your-own.md | 3 +-- docs/src/what-is-docsearch.md | 4 +++- docs/src/who-can-apply.md | 1 + 14 files changed, 64 insertions(+), 51 deletions(-) diff --git a/docs/.remarkrc.js b/docs/.remarkrc.js index 6ec248af..ec3b4a37 100644 --- a/docs/.remarkrc.js +++ b/docs/.remarkrc.js @@ -17,6 +17,8 @@ const lintConfig = { 'lint-no-trailing-spaces', // No trailing spaces ['lint-emphasis-marker', '_'], // Italic with _, bold with ** ['lint-list-item-indent', 'space'], // Indent list items with one space + ['lint-maximum-heading-length', 80], // Warn on heading that can be too long + ['lint-maximum-line-length', 120], // Warn on lines that are too long ], }; const fixConfig = { @@ -28,7 +30,6 @@ const fixConfig = { plugins: { frontmatter: true, 'reference-links': true, - 'word-wrap': true, }, }; diff --git a/docs/package.json b/docs/package.json index cae4dfc4..b2204bc6 100644 --- a/docs/package.json +++ b/docs/package.json @@ -61,7 +61,6 @@ "remark-preset-lint-markdown-style-guide": "^2.1.2", "remark-preset-lint-recommended": "^3.0.2", "remark-reference-links": "^4.0.2", - "remark-word-wrap": "^2.0.2", "stylelint": "^9.3.0", "stylelint-csstree-validator": "^1.3.0", "tailwindcss": "^0.6.4" diff --git a/docs/scripts/lint-md-fix b/docs/scripts/lint-md-fix index 2d9cee1b..ae825426 100755 --- a/docs/scripts/lint-md-fix +++ b/docs/scripts/lint-md-fix @@ -3,5 +3,5 @@ REMARK_MODE=fix \ remark \ --quiet \ - --output ./src/updated.md \ - ./src/test.md + ./src/*.md \ + --output diff --git a/docs/src/behavior.md b/docs/src/behavior.md index 00e1b57c..f33537a8 100644 --- a/docs/src/behavior.md +++ b/docs/src/behavior.md @@ -32,8 +32,10 @@ The method is called with three arguments: - `input`, a reference to the search `input` element. It comes with the `.open()`, `.close()`, `.getVal()` and `.setVal()` methods. + - `event`, the actual event triggering the selection. This can come from a click or a keyboard navigation. + - `suggestion`, the object representing the current selection. ```javascript diff --git a/docs/src/config-file.md b/docs/src/config-file.md index 38c6b43a..5d8eee96 100644 --- a/docs/src/config-file.md +++ b/docs/src/config-file.md @@ -27,7 +27,7 @@ A DocSearch looks like this: } ``` -## ``index_name`` +## `index_name` This is the name of the Algolia index where your records will be pushed. The `apiKey` we will share with you will be restricted to work on this index. @@ -80,9 +80,9 @@ The following example will make it clearer: ``` The beneficial side effect of using this syntax is that all records that will -then be extracted from crawling `http://www.example.com/docs/en/latest` will have -`lang: en` and `version: latest` added to it, allowing you to then filter based on -those values. +then be extracted from crawling `http://www.example.com/docs/en/latest` will +have `lang: en` and `version: latest` added to it, allowing you to then filter +based on those values. The following example shows how you can filter results matching specifics language and version from the front-end @@ -342,7 +342,9 @@ recommend changing it as the default settings are meant to work for all websites. One use case would be to configure the `separatorsToIndex` setting. By default -Algolia will consider all special character as a word separator. In some contexts, like for method names, you might want `_`, `/` or `#` to keep their meaning. +Algolia will consider all special character as a word separator. In some +contexts, like for method names, you might want `_`, `/` or `#` to keep their +meaning. ```json { @@ -354,7 +356,6 @@ Algolia will consider all special character as a word separator. In some context Check the [Algolia documentation][2] for more information on the settings. - ### `min_indexed_level` _Optional_ The default value is `0`. By increasing it, you can chose to not index some @@ -485,11 +486,11 @@ With the above config and the `sitemap.xml` below, both `http://www.example.com/docs/` and `http://www.example.com/docs/de/` will be crawled. -``` - - http://www.example.com/docs/ - - +```html + + http://www.example.com/docs/ + + ``` ## JavaScript rendering @@ -547,4 +548,5 @@ DocSearch to index all your content. ``` [1]: https://github.com/algolia/docsearch-configs/tree/master/configs + [2]: https://www.algolia.com/doc/api-reference/settings-api-parameters/ diff --git a/docs/src/crawler-overview.md b/docs/src/crawler-overview.md index c73c41ee..f5a79710 100644 --- a/docs/src/crawler-overview.md +++ b/docs/src/crawler-overview.md @@ -27,5 +27,7 @@ open-source][3] and even packaged as a Docker image. Just grab it, and run it with your own credentials. [1]: https://scrapy.org/ + [2]: ./crawler-config.html + [3]: https://github.com/algolia/docsearch-scraper diff --git a/docs/src/dropdown.md b/docs/src/dropdown.md index cb58093d..c881c4f6 100644 --- a/docs/src/dropdown.md +++ b/docs/src/dropdown.md @@ -8,23 +8,22 @@ the `docsearch.js` library into your website as per the following example. Your `apiKey` and `indexName` credentials will be given to you as soon as we've created your config. - ```html - + - - +