@Override protected List<Block> parseContent(P parameters, String content, MacroTransformationContext context) throws MacroExecutionException { // Don't execute transformations explicitly. They'll be executed on the generated content later on. List<Block> children = getMacroContentParser().parse(content, context, false, context.isInline()).getChildren(); return Collections.singletonList(new MetaDataBlock(children, this.getNonGeneratedContentMetaData())); } }
@Override public List<Block> execute(ContentMacroParameters parameters, String content, MacroTransformationContext context) throws MacroExecutionException { try { List<Block> blocks = getSyntaxParser(parameters.getSyntax()).parse(new StringReader(content)).getChildren(); MetaDataBlock metaDataBlock = new MetaDataBlock(blocks, MetaData.SYNTAX, parameters.getSyntax().toIdString()); metaDataBlock.getMetaData().addMetaData(this.getNonGeneratedContentMetaData()); return Collections.singletonList(metaDataBlock); } catch (ParseException e) { throw new MacroExecutionException( String.format("Failed to parse macro content in syntax [%s]", parameters.getSyntax()), e); } }
private void maybeFixExpandedMacroAncestor(Block block) { ExpandedMacroBlock expandedMacro = block.getFirstBlock(new ClassBlockMatcher(ExpandedMacroBlock.class), Block.Axes.ANCESTOR_OR_SELF); if (expandedMacro != null) { Block parent = expandedMacro.getParent(); if (!(parent instanceof MetaDataBlock) || !((MetaDataBlock) parent).getMetaData().contains(MODULE_NAME)) { MetaDataBlock metaData = new MetaDataBlock(Collections.<Block>emptyList()); // Use a syntax that supports relative path resource references (we use relative paths to include the // temporary files). metaData.getMetaData().addMetaData(MetaData.SYNTAX, Syntax.XWIKI_2_1); metaData.getMetaData().addMetaData(MODULE_NAME, true); parent.replaceChild(metaData, expandedMacro); metaData.addChild(expandedMacro); } } }
private Block tranform(XDOM xdom, Block block) throws RenderingException { TransformationContext transformationContext = new TransformationContext(xdom, this.configuration.getDefaultSyntax(), false); transformationContext.setTargetSyntax(this.configuration.getTargetSyntax()); transformationContext.setId(this.configuration.getTransformationId()); transform(block, transformationContext); // The result is often inserted in a bigger content so we remove the XDOM around it if (block instanceof XDOM) { return new MetaDataBlock(block.getChildren(), ((XDOM) block).getMetaData()); } return block; } }
MetaDataBlock metadata = new MetaDataBlock(result.getChildren(), result.getMetaData()); String source = this.defaultEntityReferenceSerializer.serialize(includedReference); metadata.getMetaData().addMetaData(MetaData.SOURCE, source);
MetaDataBlock metadata = new MetaDataBlock(result.getChildren(), result.getMetaData()); String source = this.defaultEntityReferenceSerializer.serialize(includedReference); metadata.getMetaData().addMetaData(MetaData.SOURCE, source);
new MetaDataBlock(Collections.<Block>singletonList(wikiMacroMarker), macroXDOM.getMetaData());