0.2.0 • Published 8 years ago

scribe-plugin-span-style v0.2.0

Weekly downloads
6
License
ISC
Repository
github
Last release
8 years ago

scribe-plugin-span-style

A Scribe Plugin for adding inline styles through <span> elements.

The description <span> is probably not accurate anymore. From 0.2.0 on, the plugin will now use any available tags it can find, that includes <b>,<i>,<strong>,<em>,<li>,etc. Only if it is not able to use one of those will it create a <span> to wrap the selection into.

Example:

import Scribe from 'scribe-editor';
import ScribeSpanStyleCommand from 'scribe-plugin-span-style';

// ...............

let scribe = new Scribe(document.querySelector('#my-editor'));
scribe.use(ScribeSpanStyleCommand('color'));
scribe.use(ScribeSpanStyleCommand('fontSize'));
scribe.use(ScribeSpanStyleCommand('fontFamily'));

// ...............

let command = scribe.getCommand('fontSize');
command.execute('24px');

// ...............

let command = scribe.getCommand('fontSize');
let originalRange = scribe.selection.range;

// Some more code that causes the selection to lose focus...

command.execute({
    value: '24px',
    range: originalRange
});

Requirements

  • Scribe should always put <p> or <div> tags as the root nodes of your lines

Known Issues / Todo

  • Heavily nested <span> nodes sometimes do not get unwrapped properly
  • Untested performance on a lot of text ("logical" algorithm might be a bit slow for that)
  • Untested in older browsers

Changelog

v0.2.0

  • Complete code makeover
  • Multi-line selections are supported mostly reliable now (even cross browser)
  • Implemented "logical" algorithm to keep the nesting as clean as possible
  • Supports the passing of an object as value now ({value: '12px', range: originalRange}) to support input elements that might cause losing the selection before execution of the command
0.2.0

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.5

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago