|
Friki example source code file (HTMLRenderer.java)
The Friki HTMLRenderer.java source codepackage com.efsol.friki; import java.util.Map; import java.util.HashMap; import java.io.StringReader; import java.io.Writer; import java.io.StringWriter; import java.io.IOException; import org.stringtree.factory.CachedStringFetcher; import org.stringtree.factory.StringFetcher; import org.stringtree.factory.memory.MapStringRepository; import org.stringtree.template.TemplateEngine; import org.stringtree.util.tract.Tract; public class HTMLRenderer implements Renderer { private TemplateEngine engine; private ContentFilter filter; private StringFetcher templates; private String unknown; public HTMLRenderer(ContentFilter filter, StringFetcher templates, String unknown) { engine = new TemplateEngine('@'); this.filter = filter; this.templates = new CachedStringFetcher(templates); this.unknown = unknown; } private String convert(String content) throws IOException { StringWriter out = new StringWriter(); filter.filter(new StringReader(content), out); return out.toString(); } private String splitTitle(String name) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < name.length(); ++i) { char c = name.charAt(i); if (c == '_') { buf.append(' '); } else { if (i > 0 && Character.isUpperCase(c)) { buf.append(' '); } buf.append(c); } } return buf.toString(); } private void putDefaultValues(Map map) { map.put("previous.version", "old/EmptyPage"); map.put("page.name", "old/EmptyPage"); map.put("last.edit", "never"); } public void render(Tract page, String mode, Writer out, boolean isFiltered) throws IOException { String content = page.getContent(); if (isFiltered) { content = convert(content); } Map tokens = new HashMap(); putDefaultValues(tokens); tokens.putAll(page); tokens.put("CONTENT", content); tokens.put("TITLE", splitTitle((String)tokens.get("page.name"))); String template = templates.get(mode); engine.expand(new StringReader(template), out, new MapStringRepository(tokens)); } } Other Friki examples (source code examples)Here is a short list of links related to this Friki HTMLRenderer.java source code file: |
... this post is sponsored by my books ... | |
![]() #1 New Release! |
![]() FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.