Merge pull request #2568 from tm-linkwerk/feature-2567-contentcollector-keyvalue-attributes
Feature #2567 Added workaround to enable contentcollector to write key-v...pull/2509/merge
commit
ab2a3b83af
|
@ -203,6 +203,13 @@ Things in context:
|
||||||
|
|
||||||
This hook is called before the content of a node is collected by the usual methods. The cc object can be used to do a bunch of things that modify the content of the pad. See, for example, the heading1 plugin for etherpad original.
|
This hook is called before the content of a node is collected by the usual methods. The cc object can be used to do a bunch of things that modify the content of the pad. See, for example, the heading1 plugin for etherpad original.
|
||||||
|
|
||||||
|
E.g. if you need to apply an attribute to newly inserted characters,
|
||||||
|
call cc.doAttrib(state, "attributeName") which results in an attribute attributeName=true.
|
||||||
|
|
||||||
|
If you want to specify also a value, call cc.doAttrib(state, "attributeName:value")
|
||||||
|
which results in an attribute attributeName=value.
|
||||||
|
|
||||||
|
|
||||||
## collectContentImage
|
## collectContentImage
|
||||||
Called from: src/static/js/contentcollector.js
|
Called from: src/static/js/contentcollector.js
|
||||||
|
|
||||||
|
|
|
@ -297,7 +297,23 @@ function makeContentCollector(collectStyles, abrowser, apool, domInterface, clas
|
||||||
{
|
{
|
||||||
if (state.attribs[a])
|
if (state.attribs[a])
|
||||||
{
|
{
|
||||||
lst.push([a, 'true']);
|
// The following splitting of the attribute name is a workaround
|
||||||
|
// to enable the content collector to store key-value attributes
|
||||||
|
// see https://github.com/ether/etherpad-lite/issues/2567 for more information
|
||||||
|
// in long term the contentcollector should be refactored to get rid of this workaround
|
||||||
|
var ATTRIBUTE_SPLIT_STRING = "::";
|
||||||
|
|
||||||
|
// see if attributeString is splittable
|
||||||
|
var attributeSplits = a.split(ATTRIBUTE_SPLIT_STRING);
|
||||||
|
if (attributeSplits.length > 1) {
|
||||||
|
// the attribute name follows the convention key::value
|
||||||
|
// so save it as a key value attribute
|
||||||
|
lst.push([attributeSplits[0], attributeSplits[1]]);
|
||||||
|
} else {
|
||||||
|
// the "normal" case, the attribute is just a switch
|
||||||
|
// so set it true
|
||||||
|
lst.push([a, 'true']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (state.authorLevel > 0)
|
if (state.authorLevel > 0)
|
||||||
|
|
Loading…
Reference in New Issue