Skip to content

Commit

Permalink
bug; on template designer
Browse files Browse the repository at this point in the history
The bug was abe not working into attribute if concatened to some string

WORKING: `<img src='{{abe type='image' key='somekey' desc='somedesc' tab='default'}}' />`

NOT WORKING: `<img src='test_string/{{abe type='image' key='somekey' desc='somedesc' tab='default'}}' />`
NOT WORKING: `<img src='{{#if somevar}}hello{{else}}no hello{{/if}}{{abe type='image' key='somekey' desc='somedesc' tab='default'}}' />`

Fixed
  • Loading branch information
nicolaslabbe committed Dec 6, 2016
1 parent 8058e8a commit 9e5425c
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 7 deletions.
3 changes: 2 additions & 1 deletion src/cli/cms/data/regex.js
@@ -1,6 +1,7 @@
export let abePattern = /[^"']({{abe.*?type=[\'|\"][text|rich|textarea]+[\'|\"][\s\S].*?}})/g;
// This pattern finds all abe tags enclosed in a HTML tag attribute
export let abeAsAttributePattern = /( [A-Za-z0-9\-\_]+=["|']{1}{{abe.*?}})/g;
// export let abeAsAttributePattern = /( [A-Za-z0-9\-\_]+=["|']{1}{{abe.*?}})/g;
export let abeAsAttributePattern = /( [A-Za-z0-9\-\_]+=["|']{1}).*?({{abe.*?}})/g;
// This pattern finds all {{#each ...}}...{{/each}} blocks
export let eachBlockPattern = />\s*(\{\{#each (\r|\t|\n|.)*?\/each\}\})/g;
// This pattern finds all {{#each ...}}...{{/each}} blocks
Expand Down
21 changes: 17 additions & 4 deletions src/cli/cms/templates/prepare.js
Expand Up @@ -40,19 +40,32 @@ data-abe-image_key="image_key" src="{{abe type='image' key='image_key' tab='defa
* @param {[type]} template [description]
*/
export function addAbeDataAttrForHtmlAttributes(template) {
template = template.replace(/<([A-Za-z]+)/g, '\nABE_SPLIT<$1')
var match
while (match = cmsData.regex.abeAsAttributePattern.exec(template)) { // While regexp match {{attribut}}, ex: link, image ...
if(cmsData.regex.isSingleAbe(match[0], template)){
if(cmsData.regex.isSingleAbe(match[2], template)){
var more_attr = ''
var getattr = cmsData.regex.getAttr(match, 'key').replace(/\./g, '-')
var toReplace = match[0].replace(
new RegExp(match[1]),
' data-abe-attr-' + cmsData.regex.validDataAbe(getattr) + '="' + (match[0].split('=')[0]).trim() + '"' +
' data-abe-' + cmsData.regex.validDataAbe(getattr) + '="' + getattr + '"' + match[1])

toReplace = toReplace.replace(
new RegExp(match[2]),
match[2].replace('}}', ' has-abe=1}}')
)

console.log('* * * * * * * * * * * * * * * * * * * * * * * * * * * * *')
console.log('toReplace', toReplace)

template = template.replace(
new RegExp(match[0]),
' data-abe-attr-' + cmsData.regex.validDataAbe(getattr) + '="' + (match[0].split('=')[0]).trim() + '"' +
' data-abe-' + cmsData.regex.validDataAbe(getattr) + '="' + getattr + '"' +
more_attr + match[0].replace('}}', ' has-abe=1}}')
toReplace
)
}
}
template = template.replace(/\nABE_SPLIT</g, '<')

return template
}
Expand Down
4 changes: 4 additions & 0 deletions test/cms/templates/prepare.js
Expand Up @@ -24,6 +24,7 @@ describe('cmsTemplates.prepare', function() {
visibleFalse: fse.readFileSync(path.join(process.cwd(), 'test', 'fixtures', 'templates', 'prepare-tag-visible-false.html'), 'utf-8'),
text: fse.readFileSync(path.join(process.cwd(), 'test', 'fixtures', 'templates', 'prepare-tag-abe-text.html'), 'utf-8'),
attribute: fse.readFileSync(path.join(process.cwd(), 'test', 'fixtures', 'templates', 'prepare-tag-abe-attribute.html'), 'utf-8'),
attributeConcat: fse.readFileSync(path.join(process.cwd(), 'test', 'fixtures', 'templates', 'prepare-tag-abe-attribute-concat.html'), 'utf-8'),
source: fse.readFileSync(path.join(process.cwd(), 'test', 'fixtures', 'templates', 'prepare-tag-abe-source.html'), 'utf-8'),
each: fse.readFileSync(path.join(process.cwd(), 'test', 'fixtures', 'templates', 'prepare-tag-abe-each.html'), 'utf-8'),
rawHandlebar: fse.readFileSync(path.join(process.cwd(), 'test', 'fixtures', 'templates', 'prepare-raw-handlebars.html'), 'utf-8')
Expand Down Expand Up @@ -55,6 +56,9 @@ describe('cmsTemplates.prepare', function() {
// test
var template = cmsTemplates.prepare.addAbeDataAttrForHtmlAttributes(this.fixture.attribute)
chai.expect(template.indexOf('data-abe-attr-')).to.be.above(-1);

var templateConcat = cmsTemplates.prepare.addAbeDataAttrForHtmlAttributes(this.fixture.attributeConcat)
chai.expect(templateConcat.indexOf('data-abe-attr-')).to.be.above(-1);
});

/**
Expand Down
@@ -0,0 +1 @@
<img src="{{#if ttt}}test{{else}}{{/if}}{{abe type='image' key='image_key' tab='default'}}" alt="">
4 changes: 2 additions & 2 deletions test/manager.js
Expand Up @@ -28,14 +28,14 @@ describe('Manager', function() {
it('getStructureAndTemplates()', function() {
const data = Manager.instance.getStructureAndTemplates()
chai.assert.equal(data['templates'][0].name, 'article-each-abe', 'failed !')
chai.assert.equal(data['templates'].length, 19, 'failed !')
chai.assert.equal(data['templates'].length, 20, 'failed !')
});

it('updateStructureAndTemplates()', function() {
Manager.instance.updateStructureAndTemplates()
const data = Manager.instance.getStructureAndTemplates()
chai.assert.equal(data['templates'][0].name, 'article-each-abe', 'failed !')
chai.assert.equal(data['templates'].length, 19, 'failed !')
chai.assert.equal(data['templates'].length, 20, 'failed !')
});

it('getList()', function() {
Expand Down

0 comments on commit 9e5425c

Please sign in to comment.