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.
|
||||
|
||||
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
|
||||
Called from: src/static/js/contentcollector.js
|
||||
|
||||
|
|
|
@ -297,7 +297,23 @@ function makeContentCollector(collectStyles, abrowser, apool, domInterface, clas
|
|||
{
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue