@Override public void added(String doctype) { ModelExtractors.getInstance().registerExtractorsForCustomTypes(doctype); } }
/** * Creates a new instance of Renderer with supplied references to folders. * * @param db The database holding the content * @param config Project configuration */ public Renderer(ContentStore db, JBakeConfiguration config) { this.config = config; this.renderingEngine = new DelegatingTemplateEngine(db, config); this.db = db; }
private void registerEngine(final JBakeConfiguration config, final ContentStore db, String className, String... extensions) { AbstractTemplateEngine engine = tryLoadEngine(config, db, className); if (engine != null) { for (String extension : extensions) { registerEngine(extension, engine); } } } }
private void resetDocumentTypesAndExtractors() { DocumentTypes.resetDocumentTypes(); ModelExtractors.getInstance().reset(); }
public <Type> Type extractAndTransform(ContentStore db, String key, Map map, TemplateEngineAdapter<Type> adapter) throws NoModelExtractorException { if (extractors.containsKey(key)) { Object extractedValue = extractors.get(key).get(db, map, key); return adapter.adapt(key, extractedValue); } else { throw new NoModelExtractorException("no model extractor for key \"" + key + "\""); } }
@Override public Object get(final Object property) { if (property instanceof String || property instanceof GString) { String key = property.toString(); try { put(key, extractors.extractAndTransform(db, key, model, new TemplateEngineAdapter.NoopAdapter())); } catch (NoModelExtractorException e) { // should never happen, as we iterate over existing extractors } } return super.get(property); } };
@Override public void renderDocument(final Map<String, Object> model, final String templateName, final Writer writer) throws RenderingException { try { Template template = findTemplate(templateName); Writable writable = template.make(wrap(model)); writable.writeTo(writer); } catch (Exception e) { throw new RenderingException(e); } }
private void initializeContext(Locale locale, Map<String, Object> model) { context.clearVariables(); context.setLocale(locale); context.setVariables(model); for (String key : extractors.keySet()) { context.setVariable(key, new ContextVariable(db,key,model)); } }
public GroovyMarkupTemplateEngine(final JBakeConfiguration config, final ContentStore db) { super(config, db); setupTemplateConfiguration(); initializeTemplateEngine(); }
private void loadAndRegisterEngine(String className, String... extensions) { ModelExtractor engine = tryLoadEngine(className); if (engine != null) { for (String extension : extensions) { registerEngine(extension, engine); } } }
@Override public void renderDocument(Map<String, Object> model, String templateName, Writer writer) throws RenderingException { try { JadeTemplate template = jadeConfiguration.getTemplate(templateName); renderTemplate(template, model, writer); } catch (IOException e) { throw new RenderingException(e); } }
@Override public void renderDocument(final Map<String, Object> model, final String templateName, final Writer writer) throws RenderingException { try { Template template = templateCfg.getTemplate(templateName); template.process(new LazyLoadingModel(templateCfg.getObjectWrapper(), model, db), writer); } catch (IOException e) { throw new RenderingException(e); } catch (TemplateException e) { throw new RenderingException(e); } }
@Override public Object get(final Object property) { String key = property.toString(); try { return extractors.extractAndTransform(db, key, this, new TemplateEngineAdapter.NoopAdapter()); } catch(NoModelExtractorException e) { // fallback to parent model } return super.get(property); } };
@Override public void renderDocument(final Map<String, Object> model, final String templateName, final Writer writer) throws RenderingException { try { Template template = templateEngine.createTemplateByPath(templateName); Map<String, Object> wrappedModel = wrap(model); Writable writable = template.make(wrappedModel); writable.writeTo(writer); } catch (Exception e) { throw new RenderingException(e); } }
public FreemarkerTemplateEngine(final JBakeConfiguration config, final ContentStore db) { super(config, db); createTemplateConfiguration(); }
public DelegatingTemplateEngine(final ContentStore db, final JBakeConfiguration config) { super(config, db); this.renderers = new TemplateEngines(config, db); }
@After public void tearDown() throws Exception { ModelExtractors.getInstance().reset(); }
/** * @deprecated Use {@link #GroovyMarkupTemplateEngine(JBakeConfiguration, ContentStore)} instead */ @Deprecated public GroovyMarkupTemplateEngine(final CompositeConfiguration config, final ContentStore db, final File destination, final File templatesPath) { super(config, db, destination, templatesPath); setupTemplateConfiguration(); initializeTemplateEngine(); }
@Deprecated public FreemarkerTemplateEngine(final CompositeConfiguration config, final ContentStore db, final File destination, final File templatesPath) { super(config, db, destination, templatesPath); createTemplateConfiguration(); }
/** * @deprecated Use {@link #DelegatingTemplateEngine(ContentStore, JBakeConfiguration)} instead. */ @Deprecated public DelegatingTemplateEngine(final CompositeConfiguration config, final ContentStore db, final File destination, final File templatesPath) { super(config, db, destination, templatesPath); this.renderers = new TemplateEngines(this.config, db); }