You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.6 KiB
91 lines
3.6 KiB
# hexo-algoliasearch |
|
[![coveralls status](https://img.shields.io/coveralls/LouisBarranqueiro/hexo-algoliasearch.svg?style=flat-square)](https://coveralls.io/github/LouisBarranqueiro/hexo-algoliasearch) |
|
[![gitter chat](https://img.shields.io/gitter/room/LouisBarranqueiro/hexo-algoliasearch.svg?style=flat-square)](https://gitter.im/LouisBarranqueiro/hexo-algoliasearch) |
|
|
|
A plugin to index posts of your Hexo blog on Algolia |
|
|
|
## Installation |
|
|
|
``` |
|
npm install hexo-algoliasearch --save |
|
``` |
|
|
|
If Hexo detect automatically all plugins, that's all. |
|
|
|
If that is not the case, register the plugin in your `_config.yml` file : |
|
``` |
|
plugins: |
|
- hexo-algoliasearch |
|
``` |
|
|
|
## Configuration |
|
|
|
You can configure this plugin in your `_config.yml` file : |
|
|
|
``` yml |
|
algolia: |
|
appId: "Z7A3XW4R2I" |
|
apiKey: "12db1ad54372045549ef465881c17e743" |
|
adminApiKey: "40321c7c207e7f73b63a19aa24c4761b" |
|
chunkSize: 5000 |
|
indexName: "my-hexo-blog" |
|
fields: |
|
- content:strip:truncate,0,500 |
|
- excerpt:strip |
|
- gallery |
|
- permalink |
|
- photos |
|
- slug |
|
- tags |
|
- title |
|
``` |
|
|
|
| Key | Type | Default | Description | |
|
| -------------- | ------ | ------- | ----------- | |
|
| appId | String | | Your application ID. Optional, if the environment variable `ALGOLIA_APP_ID` is set| |
|
| apiKey | String | | Your API key (read only). It is use to search in an index. Optional, if the environment variable `ALGOLIA_API_KEY` is set| |
|
| adminApiKey | String | | Your adminAPI key. It is use to create, delete, update your indexes. Optional, if the environment variable `ALGOLIA_ADMIN_API_KEY` is set | |
|
| chunkSize | Number | 5000 | Records/posts are split in chunks to upload them. Algolia recommend to use `5000` for best performance. Be careful, if you are indexing post content, It can fail because of size limit. To overcome this, decrease size of chunks until it pass. | |
|
| indexName | String | | The name of the index in which posts are stored. Optional, if the environment variable `ALGOLIA_INDEX_NAME` is set| |
|
| fields | List | | The list of the field names to index. Separate field name and filters with `:`. Read [Filters](#filters) for more information | |
|
|
|
#### Filters |
|
|
|
Filters give you the ability to process value of fields before indexation. |
|
Filters are separated each others by colons (`:`) and may have optional arguments separated by commas (`,`). |
|
Multiple filters can be chained. The output of one filter is applied to the next. |
|
|
|
##### List of filters: |
|
|
|
|
|
| Filter | Signature | Syntax | Description | |
|
| ---------- | -------------------------------------- | ---------------- | ----------- | |
|
| strip | `strip()` | `strip` | Strip HTML. It can be useful for excerpt and content value to not index HTML tags and attributes. | |
|
| truncate | `truncate(start: number, end: number)` | `truncate,0,300` | Truncate string from `start` index to `end` index. Algolia has some limitations about record size so it might be useful to cut post contents. | |
|
|
|
|
|
##### Example |
|
|
|
``` yml |
|
fields: |
|
- content:strip:truncate,0,200 |
|
``` |
|
|
|
It will strip HTML from `content` value then truncate the result starting from index `0` to index `200` before indexation. |
|
This property will be added to algolia records as `contentStripTruncate` |
|
|
|
## Usage |
|
|
|
``` |
|
hexo algolia |
|
``` |
|
|
|
#### Options |
|
|
|
| Options | Description | |
|
| -------------- | ----------- | |
|
| -n, --no-clear | Does not clear the existing index | |
|
|
|
# Licence |
|
|
|
hexo-algoliasearch is under [MIT](https://github.com/LouisBarranqueiro/hexo-algoliasearch/blob/master/LICENSE)
|
|
|