Logo

0x3d.Site

is designed for aggregating information.
Welcome
check repository here

Regex Nodes

This node-based regular expression editor helps you understand and edit regular expressions for use in your Javascript code.

If your regular expressions are complex enough to give this editor relevance, you probably should consider not using regular expressions, haha.

Why Nodes?

One of the problems with regular expressions is that they get quite messy very quickly. Operator precedence is not always obvious and can be misleading. Nodes, on the other hand, are a visual hierarchy. A text-based regex cannot simply be broken into several lines or indented, because that would alter the meaning of the expression.

The other major benefit of nodes is that the editor will prevent you from producing invalid expressions. Other regex editors analyze the possibly incorrect regular expression that the user has come up with. The node editor will allow you to enter your intention and generate a correct regular expression.

In addition, nodes offer various other advantages, such as reusing subexpressions, automatic character escaping, grouping and parameterizing expressions, and automatic optimizations.

Core Features

  • Construct regular expressions using a visual editor
  • Load existing regular expressions from your Javascript code into the editor and edit it utilizing nodes
  • Use the generated expression in Javascript
  • See effects of the regular expression live using a customizable example text
  • Coming Soon: Reuse common patterns to not spend time reinventing the regex wheel

How to use

See this blog post. It explains how to handle the nodes and what the buttons do.

Build

With elm installed on your system, run elm make src/Main.elm --output=html/built.js. Also, see compiling elm with optimization enabled.

Alternatively, use modd or npm run watch in this directory to compile on every file save.

Roadmap

  1. As I have realized that node groups would not be worth development time right now, the editor should offer common regex patterns as hard-coded nodes. When parsing a regular expression, those patterns should be recognized.
  2. To fully quality as an editor, the parser must support repetition ranges in curly braces and Unicode literals at all costs.
  3. Simply connecting and rearranging properties of set nodes and sequence nodes.

Project Songs (archived here for future nostalgia)

  • Sorsari: Children of Gaia
  • Barnacle Boi: Downpour
  • Yedgar: Asura

Shoutout

BrowserStack Logo

Thanks to BrowserStack, we can make sure this website runs on any browser, for free. BrowserStack loves Open Source, and Open Source loves BrowserStack.

To Do

  • Add automated tests
  • Example text for instant feedback
  • Implement all node types
  • Automatic node width calculation
  • Initial node setup for an easy start
    • After improving parsing, add a more interesting start setup
  • Build Scripts + Build to Github Pages
    • Use optimized builds instead of debug builds for github pages
  • Use node width and property count when layouting parsed nodes Or use iterative physics approach (force-directed layout)
  • While in "Add Nodes", press enter to pick the first option
  • Parse regex code in "Add Nodes"
    • Charset [abc]
      • Char ranges [a-bc-d][^a-b]
      • Fix composed negation being ignored
    • Alternation (a|b)
    • Escaped Characters \W
      • Unicode literals? \x01
    • Sequences the( |_)
    • Look Ahead a(?!b)
    • Quantifiers a?b{0,3}
      • a?b??c+?d*?
      • b{0,3} c{1,} d{5}
    • Positioning (^, $)
  • How to delete nodes
    • Option: Delete with children
    • Option: When deleting a node, try to retain connections (If the deleted node is a single property node, connect the otherwise now opened connections)
  • Do not adjust example for every node move
  • Middle mouse button view movement
    • Blur text input on non-middle-mouse-clicking anywhere
  • Simplify UX of changing order in "Set Node"s
  • Prevent cyclic connections
  • Tooltips
    • Custom, styled tooltips?
  • Live Explanations!!
  • Move node including all input nodes? (Next to duplicate and delete)
  • Iterative Auto-layout using physics simulation?
    • UX: Animate while holding button down instead of once per click
  • Reconnect replaced connections when reverting connection prototype
  • Instantiate Nodes centered to the screen
    • Using the real window size
  • Consider rewriting Css to Sass
  • On input focus select container node
  • Premade Reusable Node Patterns!
    • UX: A node, which by default is collapsed, and on click reveals all connected nodes which are otherwise hidden (Think of it more like a section in a wiki which is summarized by the header)
  • Unicode in the output regex
  • Unicode literal node?
  • Support mobile devices
  • Enable sharing node graphs by url?
    • Do not always update URI, but only when user wants to share?
  • Reset view button when panned too far away
  • Deduplicate parsed node graph
  • Turn this whole project into a NodeJS monster just for testing and minification of the generated javascript.... or wait until a better solution arrives.
Elm
Elm
Elm is a functional programming language designed for building front-end web applications. It emphasizes simplicity, performance, and reliability, producing no runtime errors. Elm is ideal for creating robust user interfaces.
compiler/hints at master · elm/compiler
compiler/hints at master · elm/compiler
GitHub - rogeriochaves/spades: Start an Elm SPA ready to the real world
GitHub - rogeriochaves/spades: Start an Elm SPA ready to the real world
GitHub - huytd/kanelm: Kanban board built with Elm
GitHub - huytd/kanelm: Kanban board built with Elm
GitHub - lydell/elm-watch: `elm make` in watch mode. Fast and reliable.
GitHub - lydell/elm-watch: `elm make` in watch mode. Fast and reliable.
GitHub - stereobooster/type-o-rama: 👾 JS type systems interportability
GitHub - stereobooster/type-o-rama: 👾 JS type systems interportability
GitHub - tarbh-engineering/journal: The secure, private journal.
GitHub - tarbh-engineering/journal: The secure, private journal.
GitHub - ashellwig/generator-elm-mdl: Yeoman generator for elm-mdl in pure elm
GitHub - ashellwig/generator-elm-mdl: Yeoman generator for elm-mdl in pure elm
GitHub - elmariofredo/elm-hn-pwa: Hacker News as a PWA built with Elm
GitHub - elmariofredo/elm-hn-pwa: Hacker News as a PWA built with Elm
GitHub - simonewebdesign/elm-new: 💾 Generate a new Elm project from the command line (Elm 0.16+)
GitHub - simonewebdesign/elm-new: 💾 Generate a new Elm project from the command line (Elm 0.16+)
GitHub - stil4m/elm-analyse: A tool that allows you to analyse your Elm code, identify deficiencies and apply best practices.
GitHub - stil4m/elm-analyse: A tool that allows you to analyse your Elm code, identify deficiencies and apply best practices.
GitHub - pzp1997/elm-ios: Bringing the wonders of Elm to the iOS platform
GitHub - pzp1997/elm-ios: Bringing the wonders of Elm to the iOS platform
GitHub - agrafix/elm-bridge: Haskell: Derive Elm types from Haskell types
GitHub - agrafix/elm-bridge: Haskell: Derive Elm types from Haskell types
articles/switching_from_imperative_to_functional_programming_with_games_in_Elm.md at master · Dobiasd/articles
articles/switching_from_imperative_to_functional_programming_with_games_in_Elm.md at master · Dobiasd/articles
GitHub - evancz/elm-todomvc: The TodoMVC app written in Elm, nice example for beginners.
GitHub - evancz/elm-todomvc: The TodoMVC app written in Elm, nice example for beginners.
GitHub - jschomay/elm-narrative-engine: A tool for building interactive fiction style stories in Elm.
GitHub - jschomay/elm-narrative-engine: A tool for building interactive fiction style stories in Elm.
GitHub - rtfeldman/grunt-elm: Grunt plugin that compiles Elm files to JavaScript.
GitHub - rtfeldman/grunt-elm: Grunt plugin that compiles Elm files to JavaScript.
GitHub - jfairbank/run-elm: Run Elm code from the command line
GitHub - jfairbank/run-elm: Run Elm code from the command line
GitHub - JustusAdam/elm-init: Initialise scaffolding for a new Elm project
GitHub - JustusAdam/elm-init: Initialise scaffolding for a new Elm project
GitHub - halfzebra/create-elm-app: 🍃 Create Elm apps with zero configuration
GitHub - halfzebra/create-elm-app: 🍃 Create Elm apps with zero configuration
GitHub - halfzebra/elm-examples: :book: Practical examples in Elm
GitHub - halfzebra/elm-examples: :book: Practical examples in Elm
GitHub - khusnetdinov/elmkit: :school_satchel: Elm kit is web application boilerplate kit for development. This kit build on Brunch, Node, Sass, Elm-lang. It helps you to start development more productive following best practices.
GitHub - khusnetdinov/elmkit: :school_satchel: Elm kit is web application boilerplate kit for development. This kit build on Brunch, Node, Sass, Elm-lang. It helps you to start development more productive following best practices.
GitHub - rofrol/elm-games: All Elm Games (hopefully)
GitHub - rofrol/elm-games: All Elm Games (hopefully)
GitHub - Chadtech/elmish-wasm: Experiment to compile something Elm-ish to Wasm
GitHub - Chadtech/elmish-wasm: Experiment to compile something Elm-ish to Wasm
GitHub - robertjlooby/elm-koans: A set of koans for learning Elm
GitHub - robertjlooby/elm-koans: A set of koans for learning Elm
Rework Vim install instructions · Issue #610 · avh4/elm-format
Rework Vim install instructions · Issue #610 · avh4/elm-format
GitHub - evancz/elm-architecture-tutorial: How to create modular Elm code that scales nicely with your app
GitHub - evancz/elm-architecture-tutorial: How to create modular Elm code that scales nicely with your app
GitHub - brian-watkins/elm-spec: Describe the behavior of Elm programs
GitHub - brian-watkins/elm-spec: Describe the behavior of Elm programs
GitHub - zwilias/elm-json: Install, upgrade and uninstall Elm dependencies
GitHub - zwilias/elm-json: Install, upgrade and uninstall Elm dependencies
GitHub - gicentre/litvis: Literate Visualization: Theory, software and examples
GitHub - gicentre/litvis: Literate Visualization: Theory, software and examples
GitHub - eeue56/elm-for-web-developers: A collection of tips for people using Elm from a web-dev background
GitHub - eeue56/elm-for-web-developers: A collection of tips for people using Elm from a web-dev background
Elm
More on Elm

Programming Tips & Tricks

Code smarter, not harder—insider tips and tricks for developers.

Error Solutions

Turn frustration into progress—fix errors faster than ever.

Shortcuts

The art of speed—shortcuts to supercharge your workflow.
  1. Collections 😎
  2. Frequently Asked Question's 🤯

Tools

available to use.

Made with ❤️

to provide resources in various ares.