Commit Graph

387 Commits

Author SHA1 Message Date
Jeff Avallone
90253b69c9 Integrating Sentry for JS error tracking 2017-07-29 17:37:06 -04:00
Jeff Avallone
3dbdd2dadd Removing deprecated bourbon mixins and old prefixing as a result 2017-07-29 17:01:20 -04:00
Jeff Avallone
d49a59331b Removing dead path 2016-10-15 17:44:37 -04:00
Jeff Avallone
6efa287c4e Fixing lint warning that came with the new version of JSCS
Also some other minor code cleanup
2016-07-31 11:47:56 -04:00
Jeff Avallone
1b22d0b717 Cleaning up some of the arrow function syntax
Don't need to use `return` as much as I had been
2016-07-31 11:45:48 -04:00
Jeff Avallone
2ceb94fc42 Adding support for including ^ and $ in the middle of an expression
Closes #29
2016-07-31 11:45:48 -04:00
Jeff Avallone
7e914a5d1e Tweaking how title elements are created for tooltips
Using Snap().el was leading to several <svg> elements being created on
the page
2016-07-31 11:44:33 -04:00
Jeff Avallone
7f6980541c Removing extraneous console.log 2016-07-31 11:38:46 -04:00
Thibaud Colas
71489c5f67 Add loop label tooltip to graph with help cursor 2016-07-31 17:47:26 +03:00
Thibaud Colas
26779038aa Add logic to create loop label tooltip message 2016-07-31 17:46:11 +03:00
Jeff Avallone
30634d8eab Fixing styling of SVG icons 2016-05-31 08:43:00 -04:00
Jeff Avallone
21b4915f41 Revert "Moving SVG CSS to the main page CSS"
This reverts commit ac0389c7fa.
2016-05-31 08:36:44 -04:00
Jeff Avallone
6a0999f644 Refactoring tracking code
This is to support the new Google Analytics setup
2016-05-23 21:10:50 -04:00
Jeff Avallone
6a1a679fc9 Updating lodash version 2016-03-10 17:45:20 -05:00
Jeff Avallone
f68a410ac1 Embedding icons into markup 2016-03-10 17:45:14 -05:00
Jeff Avallone
ac0389c7fa Moving SVG CSS to the main page CSS 2016-03-10 16:52:57 -05:00
Jeff Avallone
a7dc1a1357 Switching icons from font to SVG images 2016-03-08 21:47:27 -05:00
Jeff Avallone
fd27e28918 Merge pull request #24 from Byron/repeat-edge-cases
'{0}' label is not shown anymore
2016-03-03 07:19:01 -05:00
Sebastian Thiel
b08a9d95f7 '{0}' label is not shown anymore
Previously, '{0}' would be labelled as '-1 Times', which is not actually the case.
Also I am not sure to best visualize such a pattern, right now, except for the label,
'a{0}' looks similar to 'a?', even though they don't have the same effect.
2016-01-03 18:27:34 +01:00
Sebastian Thiel
7a591bb4a8 cleanup special 'definedProperties' field in Node
'definedProperties' seems like module-meta-data, which shouldn't be on a Node instance.
2016-01-03 15:59:50 +01:00
Jeff Avallone
966ab5f2d6 Fixing lint errors 2015-11-01 10:28:37 -05:00
Jeff Avallone
025636d559 Switching from compass to node-sass and Bourbon 2015-10-31 22:45:36 -04:00
Jeff Avallone
dc72b2d4e4 Switching template rendering to use Handlebars
- Extracting the IE8 notice and SVG templates out into partials
- Moving changelog details into a data file
2015-10-31 13:12:14 -04:00
Jeff Avallone
d98e2ed384 Updating changelog 2015-09-17 05:57:24 -04:00
Jeff Avallone
0f3677658d Changing content used for empty match
When an empty expression is used in alternation with something else
(such as `(|test)`) the empty expression was using its empty group as a
placeholder element for calculating its anchor position. This
calculation was incorrect and was leading to the alternation not being
centered vertically. Using any element with height and width fixes this.

Fixes #16
2015-09-17 05:51:38 -04:00
Jeff Avallone
6c9f5d4cb6 Fixing label rendering for repetition
Rendering a text element with a string leads to just a <text/> element.
Rendering with an array leads to <text><tspan/></text>. Decided to use
the latter since it matches with the majority of text rendering
currently in use.
2015-09-03 17:08:20 -04:00
Jeff Avallone
4169720eb2 Updating changelog 2015-09-02 17:04:35 -04:00
Christophe Coevoet
4875dd17c4 Fix exposing the error
Using a promise for the setTimeout call is broken in this case, as the error would again be thrown in a promise operation, and so not exposed
2015-09-02 12:41:21 +02:00
Jeff Avallone
bdd64b7141 Updating changelog 2015-07-05 18:33:34 -04:00
Jeff Avallone
7fc7affd9f Belatedly adding changelog notes that have been sitting around 2015-07-05 18:32:20 -04:00
Jeff Avallone
4c556a39a1 Tweaking buggy hash detection
This should more appropriately detect the presence of the URL
constructor, and will silently ignore any exceptions (and assume the
hash isn't buggy)
2015-06-22 22:05:03 -04:00
Jeff Avallone
8ac6e7bf9b Updating changelog 2015-06-16 20:32:31 -04:00
Jeff Avallone
e1f5891a3a Support for FF's buggy location.hash
FF decodes location.hash for you, so decoding is unnecessary and breaks
when the regex contains a "%"

Fixes #12
2015-06-16 20:22:04 -04:00
Jeff Avallone
06a7ffc110 Moving skip and loop line calculation into Repeat nodes
This code seems more at home in Repeat instead of MatchFragment since
Repeat knows about the dimensions of the lines for the contentPosition
value.
2015-04-23 20:03:25 -04:00
Jeff Avallone
ff9e84f20e Adding documentation to subexp.js 2015-04-23 19:50:01 -04:00
Jeff Avallone
661e7fa6fb Adding documentation to root.js 2015-04-23 19:37:24 -04:00
Jeff Avallone
c6af61659f Adding documentation to repeat.js and some logic simplification 2015-04-23 19:31:36 -04:00
Jeff Avallone
6beeddb83a Adding documentation to repeat_spec.js 2015-04-23 19:08:35 -04:00
Jeff Avallone
beb5a6fb52 Adding documentation to repeat_required.js 2015-04-21 20:53:11 -04:00
Jeff Avallone
bd67d7826e Adding documentation to repeat_optional.js 2015-04-21 20:52:21 -04:00
Jeff Avallone
042d44c044 Adding documentation to repeat_any.js 2015-04-21 20:51:27 -04:00
Jeff Avallone
01e920c31c Adding documentation to regexp.js 2015-04-21 20:48:12 -04:00
Jeff Avallone
1b03663473 Adding documentation to match.js 2015-04-21 20:24:56 -04:00
Jeff Avallone
ce41796f8b Adding documentation to match_fragment.js 2015-04-21 20:24:56 -04:00
Jeff Avallone
424eca0a2a Adding documentation to literal.js 2015-04-21 20:24:56 -04:00
Jeff Avallone
51c2f87765 Adding documentation to escape.js 2015-04-21 20:24:56 -04:00
Jeff Avallone
d8a635fa8f Adding documentation to charset_range.js 2015-04-21 20:24:53 -04:00
Jeff Avallone
7ca4b95cd7 Adding documentation to charset.js 2015-04-21 20:24:49 -04:00
Jeff Avallone
c22656a75d Adding documentation to charset_escape.js 2015-04-21 20:24:46 -04:00
Jeff Avallone
01abba224a Adding documentation to any_character.js 2015-04-21 20:24:41 -04:00
Jeff Avallone
2777da518e Replacing an array join with a JS template 2015-04-19 16:45:06 -04:00
Jeff Avallone
1ef8bd7500 Adding documentation and a few tweaks to node.js 2015-04-19 16:40:53 -04:00
Jeff Avallone
8796c1329c Reorganizing and cleanup of base Node code 2015-04-19 12:06:22 -04:00
Jeff Avallone
b2e7bade04 Adding more documentation 2015-04-16 17:52:50 -04:00
Jeff Avallone
5917d2b035 Updating getBBox and anchor code to improve performance
This change will reduce the number of calls to this.container.getBBox
when calculating the bounding box of a node
2015-04-16 17:13:12 -04:00
Jeff Avallone
5601c6a398 Removing some long dead code 2015-04-16 17:13:00 -04:00
Jeff Avallone
6cf4e3fe9b Tweaking normalizeBBox
Using defaults instead of extend seems to more clearly illustrate the
intent.
2015-04-16 17:10:30 -04:00
Jeff Avallone
35e817b105 Updating changelog 2015-04-14 21:52:41 -04:00
Jeff Avallone
0fdd210741 Optimizing spaceHorizontall and spaceVertically methods
Each method was transforming each item twice, and I found that Snap
appears to generate at least one timer per transform. Reducing it to one
transform per item.
2015-04-14 21:46:14 -04:00
Jeff Avallone
d918f956ef Adding documentation to regexper.js and some minor tweaks 2015-04-12 17:03:13 -04:00
Jeff Avallone
7de958dc25 Adding documentation to util.js 2015-04-12 17:03:13 -04:00
Jeff Avallone
d4b4b2111e Adding documentation to main.js 2015-04-12 17:03:13 -04:00
Jeff Avallone
1b3a1819c8 Updating changelog 2015-03-14 17:35:57 -04:00
Jeff Avallone
06e66c0f24 Creating helper methods for the setTimeout uses
Abstracting out some of the setTimeout patterns that have popped up in
the code to make the intention clearer.
2015-03-14 17:27:59 -04:00
Jeff Avallone
0093db8e20 Replacing Q promises with ES6 promises 2015-03-14 17:11:14 -04:00
Jeff Avallone
3970224302 Removing use of notify to update progress bar 2015-03-14 14:01:25 -04:00
Jeff Avallone
ef11adb67c Updating changelog 2015-03-13 20:24:03 -04:00
Jeff Avallone
7328825204 Changing when subexpression numbers are generated
Generating subexp numbers during setup was leading to nested expressions
being numbered in reverse order.

Fixes #7
2015-03-13 20:23:04 -04:00
Jeff Avallone
1a117e3672 Updating changelog 2015-02-11 20:11:55 -05:00
Jeff Avallone
bd40a71ece Tweaking styling of header links
Fixes #5
2015-02-11 20:06:01 -05:00
Jeff Avallone
1170a1be76 Displaying the hex code of escaped characters
This is only done where appropriate (escapes like "word boundary" don't
have a hex value, and displaying it for hex or unicode escapes would be
a little redundant).
2015-01-25 17:44:07 -05:00
Jeff Avallone
80e96c7bd3 Trapping errors in URL formatting and displaying an error message 2015-01-19 10:15:34 -05:00
Jeff Avallone
66c9d445da Adjusting how JS errors are tracked.
- Checking for a valid lineno instead of the filename to filter out
  "(0): Script error." logging
- Tracking stack traces separately from exceptions to make debugging
  easier
2015-01-04 18:50:16 -05:00
Jeff Avallone
0600d18bb5 Adding more detailed exception tracking 2015-01-01 12:24:11 -05:00
Jeff Avallone
491c9535a9 Adding code to track expression rendering time 2015-01-01 11:57:11 -05:00
Jeff Avallone
37fca15bc8 Removing _trackEvent method
It has become an unnecessary abstraction around _gaq.push
2015-01-01 11:56:36 -05:00
Jeff Avallone
fd8014d326 Updating changelog 2014-12-30 17:10:13 -05:00
Jeff Avallone
cb359bf4dd Adding support for rendering empty subexpressions
Fixes #1
2014-12-30 17:06:29 -05:00
Jeff Avallone
facd4f6ac4 Changing how permalink and download links are hidden
Using a class name instead of setting the display CSS property. This
way, the ::after of the download link can be hidden when the permalink
is gone
2014-12-30 16:20:37 -05:00
Jeff Avallone
6c49d6ba8e Condensing some styles 2014-12-30 15:54:20 -05:00
Jeff Avallone
fc6ffbd73a Merging some shared styles 2014-12-30 10:17:55 -05:00
Jeff Avallone
998e2a5574 Updating changelog 2014-12-29 21:39:20 -05:00
Jeff Avallone
e271115d24 Merging the rendering code from main.js and regexper.js 2014-12-29 21:31:36 -05:00
Jeff Avallone
d6e81a2932 Beginning to merge rendering code in main.js and regexper.js 2014-12-29 18:37:21 -05:00
Jeff Avallone
8dda135960 Animating the progress bar 2014-12-29 18:01:10 -05:00
Jeff Avallone
f83e0c6ea8 Removing spinner
It has seemed a little excessive since adding the progress bar
2014-12-29 17:55:57 -05:00
Jeff Avallone
d538d7b62a Adding progress bars to the inline diagrams in the documentation 2014-12-29 17:53:54 -05:00
Jeff Avallone
e890fe7d2c Updating progress using the promise notify feature 2014-12-29 17:35:18 -05:00
Jeff Avallone
99c4c078fb No longer setting parseError attribute on error object
This was causing some JS exceptions to be logged
2014-12-29 16:32:08 -05:00
Jeff Avallone
5406487ae0 Adjusting how errors are logged
This should allow for working out any JS failures that may occur
2014-12-28 17:37:11 -05:00
Jeff Avallone
cfaa3afa78 Changing date formatting on the changelog to be unambigious 2014-12-27 23:07:12 -05:00
Jeff Avallone
eae4959f41 Updating event tracking to reduce noise in reporting
No need to report a "parse error" as an "exception"
2014-12-27 15:54:32 -05:00
Jeff Avallone
66836e0552 Fixing issue with multiple SVG elements being rendered at once 2014-12-26 17:08:37 -05:00
Jeff Avallone
24971eb09f Setting date in changelog 2014-12-26 16:49:41 -05:00
Jeff Avallone
b292a764ff Embedding a template for SVG element instead of just styles 2014-12-26 15:38:22 -05:00
Jeff Avallone
2007fd9e01 Styling tweaks 2014-12-26 15:24:19 -05:00
Jeff Avallone
efbd3aa762 Reformatting header nav links 2014-12-26 14:57:13 -05:00
Jeff Avallone
aa6c792867 Adding tests for Match nodes 2014-12-26 12:48:02 -05:00
Jeff Avallone
cf159c28a5 Finishing tests for MatchFragment nodes 2014-12-26 10:57:46 -05:00
Jeff Avallone
68e4bed048 Adding a deprecation notice for IE8
I may add similar notices for other old browsers, but IE8 was
particularly bad since it does not render most of the styles
2014-12-25 07:59:03 -05:00
Jeff Avallone
d21846e872 Fixing how styles are added to SVG documents to please IE
This also allowed the SVG element to be created in a single place
2014-12-24 23:01:32 -05:00
Jeff Avallone
000809752e Removing some unnecessary extend calls 2014-12-23 23:27:09 -05:00
Jeff Avallone
6793b342ae Using fancy quotes for literals 2014-12-23 23:07:51 -05:00
Jeff Avallone
d909312b94 Starting tests for MatchFragment nodes 2014-12-23 22:23:03 -05:00
Jeff Avallone
11cf4c74dc I accidentally a whole word 2014-12-23 11:19:01 -05:00
Jeff Avallone
e11058688f Some cleanup of Match and MatchFragment in prep for tests 2014-12-23 11:17:28 -05:00
Jeff Avallone
f264eee5f9 Adding tests for Regexp nodes 2014-12-23 11:02:15 -05:00
Jeff Avallone
e3eedb17af Adding tests for Root nodes 2014-12-22 20:35:49 -05:00
Jeff Avallone
f842b424cc Adding warnings for non-standard escape sequence usage 2014-12-22 16:57:30 -05:00
Jeff Avallone
a4f831bc60 Cleaning up some messy code in the grammar 2014-12-22 16:28:46 -05:00
Jeff Avallone
9e6f066763 Reducing duplication in grammar 2014-12-22 16:26:08 -05:00
Jeff Avallone
b35dece228 Fixing character set ranges
Certain escape sequences are not considered in ranges, and lead to the
hyphen to be part of the matched set of characters
2014-12-22 16:09:27 -05:00
Jeff Avallone
d882ee8e08 Adding check that charset range is in correct order 2014-12-22 15:18:49 -05:00
Jeff Avallone
9b8eef9c02 Setting ordinals for literals 2014-12-22 15:11:37 -05:00
Jeff Avallone
d4b648fa43 Setting ordinal for control code escapes 2014-12-22 15:11:20 -05:00
Jeff Avallone
580af045d6 Adjusting grammar to match \c escape "correctly"
\c followed by something other than a-z leads to inconsistent behavior
across browsers. Most will treat it as a series of literals (/\c#/ will
match the string "\\c#" for example)
2014-12-22 15:00:38 -05:00
Jeff Avallone
101b457260 Adding ordinal values to escapes
Work still needs to be done to get control characters correct, and
ordinals will need to be added for literals as well. This is in
preparation for reporting incorrectly ordered charset ranges
2014-12-22 12:44:19 -05:00
Jeff Avallone
33bbd11af6 Simplifying how parts of a charset are checked for uniqueness 2014-12-22 11:31:20 -05:00
Jeff Avallone
961d4812e9 Adding tests for Charset nodes 2014-12-22 10:57:16 -05:00
Jeff Avallone
8021775880 Adding a 404 page 2014-12-21 19:59:07 -05:00
Jeff Avallone
49ac4d118b Changing nav styling 2014-12-21 18:06:31 -05:00
Jeff Avallone
e0825b7850 Fixing bug in charset code 2014-12-21 18:02:28 -05:00
Jeff Avallone
4bec717f84 Adding documentation 2014-12-21 18:02:18 -05:00
Jeff Avallone
445cec7c7f Replacing "container" class with "application" 2014-12-21 15:22:59 -05:00
Jeff Avallone
55ee380817 Adding ability to easily render demo images 2014-12-21 15:22:01 -05:00
Jeff Avallone
e466e7e548 Moving the SVG styles out of the svg element
They are now processed with compass
2014-12-21 14:48:43 -05:00
Jeff Avallone
fbb8c4187d Tweaking styling in preparation for writing documentation 2014-12-21 14:26:09 -05:00
Jeff Avallone
fe645a7c4b Tweaking changelog 2014-12-21 12:17:41 -05:00
Jeff Avallone
9bf5328da7 Adding specs for Subexp nodes 2014-12-21 12:05:55 -05:00
Jeff Avallone
82ca4f40f7 Adding initial tests for Repeat nodes 2014-12-20 13:03:57 -05:00
Jeff Avallone
79cda13dc5 Adding a few more points to the changelog 2014-12-20 12:31:00 -05:00
Jeff Avallone
9a79b95337 Finally writing the changelog (at least for now) 2014-12-20 11:18:15 -05:00
Jeff Avallone
55657a792b Adding check for out of order numbers 2014-12-20 10:53:01 -05:00
Jeff Avallone
ccdb29224a Rejecting promise when parsing fails 2014-12-20 10:47:41 -05:00
Jeff Avallone
6c5b36f334 Changing util.js to export an object
This allows the methods to be spied on in tests
2014-12-20 10:25:32 -05:00
Jeff Avallone
8a9a129856 Adding tests for CharsetRange nodes 2014-12-20 10:18:00 -05:00
Jeff Avallone
d27831a265 Adding tests for CharsetEscape nodes 2014-12-19 21:56:56 -05:00
Jeff Avallone
24e21834f6 Adding tests for Escape nodes 2014-12-19 21:49:11 -05:00
Jeff Avallone
32a28ede90 Adding tests for Literal nodes 2014-12-19 21:35:03 -05:00
Jeff Avallone
69ae3f0fe1 Moving parser setup code into a separate file 2014-12-19 20:41:02 -05:00
Jeff Avallone
43eaf493e6 Removing some cruft in the grammar 2014-12-19 20:35:20 -05:00
Jeff Avallone
70789258ab Removing CharsetLiteral
It was no different from just Literal (and most likely won't be any
different)
2014-12-19 20:23:32 -05:00
Jeff Avallone
2d4694f447 Simplifying some modules 2014-12-19 20:18:19 -05:00
Jeff Avallone
a50ba68a21 Moving spaceHorizontally and spaceVertically to util.js 2014-12-19 12:11:44 -05:00
Jeff Avallone
870b2e6ed4 Moving normalizeBBox to util.js 2014-12-19 12:06:21 -05:00
Jeff Avallone
be145e3fac Adding rest of tests for Node class 2014-12-19 11:48:09 -05:00
Jeff Avallone
91581afe2c Adding more Node tests 2014-12-19 11:00:47 -05:00
Jeff Avallone
78917d44e6 Extracting custom event creation into a util module 2014-12-19 10:24:45 -05:00
Jeff Avallone
e43033d789 Updating Regexper class specs 2014-12-18 18:29:40 -05:00
Jeff Avallone
80ec29cd6b Refactoring parser code to remove global state
This allows canceling an in-progress render and moves some of the
rendering code to a more appropriate location.
2014-12-18 11:13:15 -05:00