Handle deeper interpolations.
parent
d258e2c749
commit
725cb7bb92
|
@ -1,7 +1,7 @@
|
|||
import { visitParents } from 'unist-util-visit-parents';
|
||||
import { createContext, runInContext } from 'vm';
|
||||
|
||||
export function interpolate (node, rootData, options = {}) {
|
||||
export function interpolate(node, rootData, options = {}) {
|
||||
if (!node.data) {
|
||||
node.data = {};
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ export function interpolate (node, rootData, options = {}) {
|
|||
return node;
|
||||
}
|
||||
|
||||
function getMaskedData (node, ancestors) {
|
||||
function getMaskedData(node, ancestors) {
|
||||
let masked = { ...node.data };
|
||||
|
||||
for (let i = ancestors.length - 1; i >= 0; i--) {
|
||||
|
@ -25,9 +25,10 @@ function getMaskedData (node, ancestors) {
|
|||
return masked;
|
||||
}
|
||||
|
||||
function interpolateNode (node, ancestors) {
|
||||
function interpolateNode(node, ancestors) {
|
||||
const data = getMaskedData(node, ancestors);
|
||||
|
||||
// Interpolate properties
|
||||
if (node.properties && typeof node.properties === 'object') {
|
||||
for (const key in node.properties) {
|
||||
if (typeof node.properties[key] === 'string') {
|
||||
|
@ -43,6 +44,11 @@ function interpolateNode (node, ancestors) {
|
|||
}
|
||||
}
|
||||
|
||||
// Interpolate text content for text nodes
|
||||
if (node.type === 'text' && node.value) {
|
||||
node.value = interpolateString(node.value, data.interp);
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue