Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gram-data/gram-js
Gram in javascript.
https://github.com/gram-data/gram-js
ast gram graph neo4j unified
Last synced: 2 months ago
JSON representation
Gram in javascript.
- Host: GitHub
- URL: https://github.com/gram-data/gram-js
- Owner: gram-data
- Created: 2020-05-06T09:49:59.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-01-08T08:34:41.000Z (almost 2 years ago)
- Last Synced: 2024-10-12T23:01:40.413Z (3 months ago)
- Topics: ast, gram, graph, neo4j, unified
- Language: JavaScript
- Homepage: https://gram-data.github.io/gram-js
- Size: 18.7 MB
- Stars: 26
- Watchers: 2
- Forks: 1
- Open Issues: 31
-
Metadata Files:
- Readme: readme.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
- awesome-list - gram-js - data | 18 | (JavaScript)
README
`(text)-->(ast)-->(text)`
`gram.js` is a collection of packages for working with the [gram](https://gram-data.github.io)
textual format for graph data.You can parse `.gram` files into an AST.
Or, you can produce `.gram` files from an existing AST.
The AST is not a data model. But it does easily maps to a data model. For example see
[d3-gram](https://github.com/gram-data/d3-gram).## How to gram in javascript
The 2 best places to start:
1. Parse from text using [[gram-parse]]
2. Build an AST by hand using [[gram-builder]]### All packages
- [[gram]] for general use
- [[gram-ast]] defines abstract syntax tree types
- [[gram-builder]] composes a valid AST
- [[gram-identity]] generates identity. (available as a [unified plugin](https://github.com/unifiedjs/unified#plugin) )
- [[gram-ops]] extracts features from the AST
- [[gram-parse]] processes text literal `.gram` into an AST. (available as a [unified plugin](https://github.com/unifiedjs/unified#plugin) )
- [gram-preset-basic](https://github.com/gram-data/gram-js/tree/main/packages/gram-preset-basic) a [unified preset](https://github.com/unifiedjs/unified#preset) for processing `.gram` files
- [[gram-stringify]] serializes AST back to text literal format (available as a [unified plugin](https://github.com/unifiedjs/unified#plugin) )
- [[gram-value]] enrich AST text literals with JS primitive or object values## Credit
### Unified "Content as structured data"
Gram leverages the excellent [unified](https://unifiedjs.com) framework "for parsing, inspecting, transforming, and serializing content through syntax trees."