0
Fork 0
mirror of https://github.com/fastmail/Squire.git synced 2024-12-31 11:54:03 -05:00
Commit graph

221 commits

Author SHA1 Message Date
Neil Jenkins
a1ff33da9f Squire#removeAllFormatting fixes.
* Update the path after making the changes, so UI buttons can update correctly.
* Focus the editor on completion, to match the behaviour of other commands.
* Merge all the gathered text nodes if they're adjacent, so we have a normalised
  result.
2015-06-17 19:07:29 +07:00
Neil Jenkins
09167c73e4 Make it possible to delete an <img> with display other than inline
Based on pull request #85 from dryoma.
2015-06-17 17:18:34 +07:00
Neil Jenkins
345159b4c4 Better algorithm for remove all formatting action.
1. Keeps all leaf nodes not just text nodes, so images etc. are not removed.
2. If the selection is not within a single block, it is expanded to the edges
   of the blocks rather than splitting the blocks; this is unlikely to have
   been what the user wanted.
3. More efficient tree traversal and manipulation; no duplication of nodes.
4. Records undo state before performing the action.
2015-06-17 15:43:27 +07:00
Neil Jenkins
d9872fb4b2 More efficient forEachChildInRange fn.
No need for a tree walker, and we don't waste time iterating into children
that can never match the filter function.
2015-06-17 15:43:27 +07:00
Neil Jenkins
8b112b7615 Ensure removeAllFormatting always returns self. 2015-06-17 15:43:27 +07:00
Neil Jenkins
36432d45bd Fix whitespace. 2015-06-17 15:43:27 +07:00
Gert Sønderby
90660e8e4f Updated README, aligned return value with other API functions. 2015-06-17 15:43:26 +07:00
Gert Sønderby
6aba099388 Tests run in latest Chrome, FF, Safari + IE10 and 11. 2015-06-17 15:43:26 +07:00
Gert K. Sønderby
654706f15f Squire#removeAllFormatting() implemented, replaces range contents with style-sanitized version. 2015-06-17 15:43:26 +07:00
Gert K. Sønderby
d16de00a23 Added option to persist splits in inline nodes when fetching range from bookmark. 2015-06-17 15:43:26 +07:00
Neil Jenkins
42139c8399 Fix error thrown inserting tree fragment at start/end of document. 2015-06-17 15:43:26 +07:00
Neil Jenkins
c29a8c639b Wrap rather than split to replace <br>s.
Fixes #81.
2015-06-13 11:44:32 +07:00
Neil Jenkins
27b1532ca6 Add Squire#moveCursorTo(Start|End) methods.
I've got 99 GitHub issues, but #99 ain't one (any more).
2015-06-13 11:20:07 +07:00
Neil Jenkins
e59e6418af Improve merging edges of inserted tree fragment.
Fixes #87.
2015-06-12 17:48:06 +07:00
Neil Jenkins
f6cddb4626 Remove some old IE8-specific code. 2015-06-11 15:53:12 +07:00
Neil Jenkins
ae7d93a8fe Position paste area further off screen to hide IE handlebars
Fixes #84.
2015-06-09 16:38:16 +07:00
Neil Jenkins
60169dce6b Handle browser splitting paste area.
Fixes #88.
2015-06-09 16:32:20 +07:00
Neil Jenkins
884f352846 Set focus after element inserted with Squire#insertElement
Fixes #90.
2015-06-02 21:15:14 +07:00
Neil Jenkins
c524772a63 Merge branch 'npm' of https://github.com/shiawuen/Squire into shiawuen-npm 2015-05-09 17:29:50 +07:00
Neil Jenkins
a2ca4a3864 Allow setting default attributes for ul/ol/li/blockquote.
Merges #83, with fixes, tidying and squashing.
2015-05-09 17:22:54 +07:00
shiawuen
619a3abc5d fix module check getting undefined for Firefox 2015-05-07 23:40:49 +08:00
shiawuen
3f643b5718 export Squire 2015-05-07 10:52:52 +08:00
Neil Jenkins
c48e9b73f5 Code style/naming convention cleanups 2015-05-07 09:08:58 +07:00
crossjs
8d8798a673 add parameter for override default properties; initialize editor document now run after instance saved. 2015-05-05 20:28:30 +08:00
Neil Jenkins
73641ad899 Fix white-space and naming convention errors. 2015-05-03 13:18:00 +07:00
Misha Koryak
3da7b19404 fix isDefaultPrevented method ;) 2015-05-01 14:10:48 -04:00
Misha Koryak
ed10b03b9f make it possible to replace the reference to e.fragment in willPaste event, also add isDefaultPrevented method to that event 2015-05-01 14:07:28 -04:00
Neil Jenkins
223060ecf9 Add method to set key handlers.
Resolves #70
2015-04-29 11:16:11 +07:00
Umer Farooq
c249e3bc19 Document that if the current selection is not collapsed, that it will
be deleted and replaced by the html. Make style and consistency changes.
2015-04-15 16:23:36 +10:00
Umer Farooq
6fdb288e00 Add the ability to insert an HTML fragment at the cursor location. 2015-04-15 16:23:36 +10:00
Neil Jenkins
73ca65edb5 Fix pasting multiple lines into a blockquote.
Pasting is hard to get right in the general case, not least because the
browsers give so little control over the process, leaving you to resort to
crappy hacks. But we can special case the pasting to a blockquote case fairly
easily, and I can't see any particular regression it should cause.

Fixes #59.
2015-04-09 20:16:04 +07:00
Neil Jenkins
7db0ae059a Fix cleanup empty <a> on enter in WebKit/Blink
Need to consider zero-width space equivalent to no content.
Also cleanup empty inline nodes in general when cleaning up zero-width spaces
inside them.

Fixes #58
2015-04-08 18:02:23 +07:00
Neil Jenkins
1c0fa1a50f Rewrite getSelectedText method.
Fixes #57.

* Fixes bug where it could return text outside selection
* Inserts new line between blocks.
2015-04-08 17:13:21 +07:00
Neil Jenkins
e6ae25b589 Fix formatting commands when selection has no text nodes
Fixes #60
2015-04-08 15:33:27 +07:00
Neil Jenkins
1b9606452e Check for redundant WS when ensuring bottom line.
Fixes #55.
2015-03-29 18:56:32 +11:00
Neil Jenkins
4c63ad696e Only maintain LI numbering when splitting OL if in BLOCKQUOTE.
Fixes #53
2015-03-29 18:39:50 +11:00
Neil Jenkins
3c8eaa1fcc Use default block settings when fixCursor called on body 2015-03-29 18:36:58 +11:00
Allen Heavey
eced74244d fix typo: ndoes -> nodes 2015-03-19 14:55:45 +08:00
Neil Jenkins
1362383aea Fire "select" event whenever selected range is not collapsed
Fixes #50.
2015-03-18 18:19:15 +08:00
masonicboom
eba853a0f7 allow "audio" elements
http://www.w3.org/wiki/HTML/Elements/audio
2015-03-05 16:57:33 -08:00
Neil Jenkins
ed0ebdae49 Merge adjacent text nodes after extracting range. 2015-03-04 14:50:44 +08:00
Neil Jenkins
5865eb032a Maintain li numbering when splitting OL 2015-02-06 14:19:06 +07:00
Neil Jenkins
5b8e348232 Fix invalid caching of selection nodes in paste handler.
Fixes error thrown when pasting text twice in succession (or more generally,
when pasting it into non-normalised text nodes).
2015-02-06 14:18:38 +07:00
Neil Jenkins
dfed911833 Add .jshintrc file so JSHint checks it correctly.
Resolves #25.
2015-01-08 12:25:54 +07:00
Neil Jenkins
8e8874b554 Don't fire an input event on setHTML call. 2014-12-30 10:22:39 +07:00
Neil Jenkins
249ea93c13 Allow defaultBlockTag to be configured
Resolves #23
2014-12-27 15:02:26 +07:00
Neil Jenkins
b69a1635de Use mutation observers where possible to detect change
We need to know when the document is modified in order to fire an "input" event
and set the undo/redo state correctly. Observing keyup is imprecise, as it's
hard to tell whether the key press actually modified anything. Newer browsers
support mutation observers, which tell you precisely when something has changed.
For IE9/10, Opera 12 and other older browsers, we fall back to observing keyup
again.

Fixes #26.
2014-12-27 13:48:15 +07:00
Neil Jenkins
5b5d65f684 Record undo checkpoint before deleting any selection. 2014-12-26 20:04:42 +07:00
Neil Jenkins
797dbf46fb Fix selection lost on action in Presto 2014-12-26 20:01:36 +07:00
Neil Jenkins
54b428aaa6 Fix deleting selection across block boundary. 2014-12-26 14:48:13 +07:00