Skip to content

Commit

Permalink
handle align and direction attributes on paste
Browse files Browse the repository at this point in the history
  • Loading branch information
benbro committed Sep 6, 2016
1 parent 0a2496f commit 6d3ca28
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 6 deletions.
3 changes: 2 additions & 1 deletion formats/align.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ let config = {
whitelist: ['right', 'center', 'justify']
};

let AlignAttribute = new Parchment.Attributor.Attribute('align', 'align', config);
let AlignClass = new Parchment.Attributor.Class('align', 'ql-align', config);
let AlignStyle = new Parchment.Attributor.Style('align', 'text-align', config);

export { AlignClass, AlignStyle };
export { AlignAttribute, AlignClass, AlignStyle };
3 changes: 2 additions & 1 deletion formats/direction.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ let config = {
whitelist: ['rtl']
};

let DirectionAttribute = new Parchment.Attributor.Attribute('direction', 'dir', config);
let DirectionClass = new Parchment.Attributor.Class('direction', 'ql-direction', config);
let DirectionStyle = new Parchment.Attributor.Style('direction', 'direction', config);

export { DirectionClass, DirectionStyle };
export { DirectionAttribute, DirectionClass, DirectionStyle };
16 changes: 14 additions & 2 deletions modules/clipboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import Quill from '../core/quill';
import logger from '../core/logger';
import Module from '../core/module';

import { AlignStyle } from '../formats/align';
import { AlignAttribute, AlignStyle } from '../formats/align';
import { BackgroundStyle } from '../formats/background';
import { ColorStyle } from '../formats/color';
import { DirectionStyle } from '../formats/direction';
import { DirectionAttribute, DirectionStyle } from '../formats/direction';
import { FontStyle } from '../formats/font';
import { SizeStyle } from '../formats/size';

Expand All @@ -26,6 +26,14 @@ const CLIPBOARD_CONFIG = [
['style', matchIgnore]
];

const ATTRIBUTE_ATTRIBUTORS = [
AlignAttribute,
DirectionAttribute
].reduce(function(memo, attr) {
memo[attr.keyName] = attr;
return memo;
}, {});

const STYLE_ATTRIBUTORS = [
AlignStyle,
BackgroundStyle,
Expand Down Expand Up @@ -170,6 +178,10 @@ function matchAttributor(node, delta) {
formats[attr.attrName] = attr.value(node);
if (formats[attr.attrName]) return;
}
if (ATTRIBUTE_ATTRIBUTORS[name] != null) {
attr = ATTRIBUTE_ATTRIBUTORS[name];
formats[attr.attrName] = attr.value(node);
}
if (STYLE_ATTRIBUTORS[name] != null) {
attr = STYLE_ATTRIBUTORS[name];
formats[attr.attrName] = attr.value(node);
Expand Down
7 changes: 5 additions & 2 deletions quill.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Quill from './core';

import { AlignClass, AlignStyle } from './formats/align';
import { DirectionClass, DirectionStyle } from './formats/direction';
import { AlignAttribute, AlignClass, AlignStyle } from './formats/align';
import { DirectionAttribute, DirectionClass, DirectionStyle } from './formats/direction';
import { IndentClass as Indent } from './formats/indent';

import Blockquote from './formats/blockquote';
Expand Down Expand Up @@ -40,6 +40,9 @@ import SnowTheme from './themes/snow';


Quill.register({
'attributors/attribute/align': AlignAttribute,
'attributors/attribute/direction': DirectionAttribute,

'attributors/class/align': AlignClass,
'attributors/class/background': BackgroundClass,
'attributors/class/color': ColorClass,
Expand Down

0 comments on commit 6d3ca28

Please sign in to comment.