https://github.com/nymag/cuneiform-cmpt
Functions for saving and rendering Cuneiform components
https://github.com/nymag/cuneiform-cmpt
Last synced: 4 months ago
JSON representation
Functions for saving and rendering Cuneiform components
- Host: GitHub
- URL: https://github.com/nymag/cuneiform-cmpt
- Owner: nymag
- Created: 2018-05-02T16:59:31.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-01-23T15:25:05.000Z (over 2 years ago)
- Last Synced: 2024-12-28T04:51:16.598Z (6 months ago)
- Language: JavaScript
- Size: 27.3 KB
- Stars: 0
- Watchers: 37
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# cuneiform-cmpt
A wrapper for the save and render functions of a Cuneiform component. This is used for a set of NyMag components that display data from the `published-articles` index and which have **content descriptors**, which are properties that editors use to define what articles should populate them.
The `save` function automaticallys sets `cuneiformQuery`, `cuneiformPinned`, and `cuneiformScopes` based on the component's **content descriptors**.
The render function simply converts array content descriptors to and from a format compatible with Kiln.
## Usage
You can simply invoke either of these functions in the equivalent functions of the component that is using them:
```
module.exports.save = (ref, data, locals) => {
cuneiformCmpt.save(ref, data, locals);
// ...
return data;
}
``````
module.exports.render = (ref, data, locals) => {
cuneiformCmpt.render(ref, data, locals);
// ...
return data;
});
```## Content Descriptor Glossary
* `overrideUrl` - Force the article at the specified URL into the slot, regardless of the other content descriptors. (Sets `cuneiformPinned`).
* `dedupeContexts` - Prevents the same article from being duplicated between two or more cuneiform components. See below. (Sets `cuneiformScopes`).
* `botIgnore` - If set, the microservice will ignore this component entirely. (Sets `cuneiformIgnore`).The following content descriptors are joined by OR relationships:
* `siteSlugs` - Match articles belonging to a site with ANY of these site slugs.
* `sitePrefixes` - Match articles with ANY of these URL prefixes (expects protocol and port).
* `crossposts` - Match articles crossposted to ANY of these sites, expressed via slug (e.g. `thecut`).The following content descriptors are joined by AND relationships:
* `includeFeatureTypes` - Match articles with ANY of these feature types.
* `excludeFeatureTypes` - Exclude articles with ANY of these feature types.
* `includeTags` - Match articles with ANY of these tags.
* `excludeTags` - Exclude articles with ANY of these tags.
* `includeContentChannels` - Match articles with ANY of these content channels.
* `includeStoryCharacteristics` - Match articles with ALL of these story characteristics.
* `excludeStoryCharacteristics` - Exclude articles with ANY of these story characteristics.
* `includeFeeds` - Include articles set to appear in ALL of these feeds.
* `excludeFeeds` - Exclude articles set to appear in ANY of these feeds.