dragonman225 / nast Licence: other
A block-based intermediate representation for document-like content.
Programming Languages javascript 184084 projects - #8 most used programming language
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
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)
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)
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] .