We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I've been using plates this weekend and I ran into a very strange rendering issue. Using the following HTML snippet:
plates
<div class="page-details"> <div class="author"> <a href="http://github.com/github" class="github">Author Github</a> </div> </div>
rendering it:
var plates = require('plates'); var map = plates.Map(); var metadata = { 'page-details': { author: { github: 'indexzero' } } }; map.class('page-details').use('page-details'); map.class('author').use('author'); map.class('github').use('github'); map.where('href').has(/github$/).replace(/github$/, metadata['page-details'].author.github); console.log(plates.bind( [ '<div class="page-details">', ' <div class="author">', ' <a href="http://github.com/github" class="github">Author Github</a>', ' </div>', '</div>' ].join('\n'), metadata, map ));
Produces the following output:
<div class="page-details"> <div class="author"> <a href="http://github.com/indexzero" class="indexzero">Author Github</a> </div> </div>
The expected output is:
<div class="page-details"> <div class="author"> <a href="http://github.com/indexzero" class="github">indexzero</a> </div> </div>
Basically I'm just trying to render http://github.com/github to http://github.com/indexzero and replace the innerHTML. It seems like the two clauses:
http://github.com/github
http://github.com/indexzero
map.class('github').use('github'); map.where('href').has(/github$/).replace(/github$/, metadata['page-details'].author.github);
should do this. What am I doing wrong? Or is this a bug?
cc/ @hij1nx @3rd-Eden
The text was updated successfully, but these errors were encountered:
Worth noting that removing either of these two clauses does one of the two expected operations, but both will not work together.
Sorry, something went wrong.
I don't think this is related to multiple clauses. The bug seems to be that when there is an explicit replacement it is used in all attributes:
https://github.com/flatiron/plates/blob/master/lib/plates.js#L324
A possible solution could be:
replace https://github.com/flatiron/plates/blob/master/lib/plates.js#L316
with
if (shouldSetAttribute && mapping.replace !== key || remove || ('replacePartial1' in mapping && mapping.attribute !== key)) {
Sorry that I don't know enough about the code to make a proper patch.
No branches or pull requests
I've been using
plates
this weekend and I ran into a very strange rendering issue. Using the following HTML snippet:rendering it:
Produces the following output:
The expected output is:
Basically I'm just trying to render
http://github.com/github
tohttp://github.com/indexzero
and replace the innerHTML. It seems like the two clauses:should do this. What am I doing wrong? Or is this a bug?
cc/ @hij1nx @3rd-Eden
The text was updated successfully, but these errors were encountered: