All Projects → dragonman225 → nast

dragonman225 / nast

Licence: other
A block-based intermediate representation for document-like content.

Programming Languages

typescript
32286 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to nast

Orgajs
parse org-mode content into AST
Stars: ✭ 417 (+1091.43%)
Mutual labels:  ast, org-mode
vscode-text-tables
VSCode extension that brings the power of Emacs table editing
Stars: ✭ 36 (+2.86%)
Mutual labels:  org-mode
BBob
⚡️Blazing-fast js-bbcode-parser, bbcode js, that transforms and parses to AST with plugin support in pure javascript, no dependencies
Stars: ✭ 133 (+280%)
Mutual labels:  ast
subpy
Python subsets
Stars: ✭ 41 (+17.14%)
Mutual labels:  ast
uniorg
An accurate Org-mode parser
Stars: ✭ 190 (+442.86%)
Mutual labels:  org-mode
open-fortran-parser-xml
XML output generator for Open Fortran Parser, and Python wrapper for it.
Stars: ✭ 21 (-40%)
Mutual labels:  ast
org-table-sticky-header
Sticky header for org-mode tables
Stars: ✭ 31 (-11.43%)
Mutual labels:  org-mode
language-rust
Parser and pretty-printer for the Rust language
Stars: ✭ 78 (+122.86%)
Mutual labels:  ast
idle-org-agenda
A package that shows your agenda when Emacs is idle
Stars: ✭ 40 (+14.29%)
Mutual labels:  org-mode
macro-visit
A macro-based generic visitor generator
Stars: ✭ 23 (-34.29%)
Mutual labels:  ast
TypeScriptAST
.NET port of Microsoft's TypeScript parser for simple AST manipulation
Stars: ✭ 37 (+5.71%)
Mutual labels:  ast
notion-cli-list-manager
A simple command-line tool for managing Notion databases.
Stars: ✭ 76 (+117.14%)
Mutual labels:  notion
cards
Turn your Notion database into a deck of cards
Stars: ✭ 37 (+5.71%)
Mutual labels:  notion
tickety-tick
A browser extension that helps you name branches and write better commit messages
Stars: ✭ 55 (+57.14%)
Mutual labels:  notion
lilt
LILT: noun, A characteristic rising and falling of the voice when speaking; a pleasant gentle accent.
Stars: ✭ 18 (-48.57%)
Mutual labels:  ast
eva
Emacs-based Virtual Assistant
Stars: ✭ 133 (+280%)
Mutual labels:  org-mode
notion-scholar
Reference management solution using Python and Notion.
Stars: ✭ 77 (+120%)
Mutual labels:  notion
notion-heroku
Heroku hosted application that performs Notion actions (i.e., new task, new note) based on voice requests via IFTTT Webhooks and Google Assistant.
Stars: ✭ 41 (+17.14%)
Mutual labels:  notion
typora notion-theme
My customisations for Typora to look a little more like Notion.so
Stars: ✭ 32 (-8.57%)
Mutual labels:  notion
snapdragon-util
Utilities for the snapdragon parser/compiler.
Stars: ✭ 17 (-51.43%)
Mutual labels:  ast

NAST

A block-based intermediate representation for document-like content.

Packages

Name Description Status
nast-types A TypeScript type definition module to specify data models for intermediate representation of data. Experimental
nast-util-from-notionapi Import data from a Notion page. Stable
nast-util-from-orgzly Import data from an org-mode file exported by Orgzly. Proof of Concept
nast-util-to-react Render data to JSX.Element or HTML. (Preferred) Stable
npdl Download Notion pages as self-contained / single-file HTML files. Stable
nast-util-to-svelte Render data to HTML using Svelte. -
  • Stability : Stable > Experimental > Proof of Concept

Development

Clone the repo and cd into it

git clone https://github.com/dragonman225/nast.git && cd nast

Install dependencies

  • yarn (required)

    npm i -g yarn

    We use yarn to manage package dependencies.

  • lerna (required)

    This project is a monorepo managed with lerna. If you haven't heard of it before, this tutorial is a good starting point.

  • typedoc (optional)

    npm i -g typedoc

    typedoc needs to be available in the command-line for reference document generation.

  • Graphviz (optional)

    # For Arch Linux
    pacman -S graphviz
    
    # For macOS via Homebrew
    brew install graphviz 

    dot needs to available in the command-line for dependency graph generation.

Setup the project

yarn # Install and link dependencies
npx lerna run build # Build all packages

Testing

  • Test the overall functionality with npdl.

    Download a Notion page and render it to HTML. Use the CSS theme at packages/nast-util-to-react/src/theme.css.

    node packages/npdl/index.js -i=<notion_page_url> output.html

    Use an external theme.

    node packages/npdl/index.js -i=<notion_page_url> --theme=<path_to_css> output.html

    Just download a Notion page without rendering to HTML.

    node packages/npdl/index.js -i=<notion_page_url> --tree output.json

    npdl has more features, which can be listed with

    node packages/npdl/index.js

    You can also install npdl globally.

    cd packages/npdl && npm i -g .
  • Each package may have its own test suite, which is not covered here.

Contributing to NAST

Troubleshooting

  • npx nx graph to check if the packages are correctly linked.
    • If a package is published with a new version, don't forget to update other packages that are using it.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].