summaryrefslogtreecommitdiffstats
path: root/parsers/WordDecoration.java
diff options
context:
space:
mode:
authorrsiddharth <rsiddharth@ninthfloor.org>2012-12-21 13:25:10 +0530
committerrsiddharth <rsiddharth@ninthfloor.org>2012-12-21 13:25:10 +0530
commit7f46c19441f6690bde92c1359c535321cb8c3025 (patch)
tree73ad82bfba3ed35fa9707d73ae7c0dd4c63c6eb6 /parsers/WordDecoration.java
parentbed3dc00c9112d70966990ca66ab0a078b5ca0b5 (diff)
parent03ab823d0318865544c54baaaa0b4ebb63fae4fa (diff)
merged from devel branch.
removed: Scruf.java todo added: Run.java TODO parsers/SymbolMap.java modified: conversion/ConvertDirectory.java parsers/BackButton.java parsers/CodeBlocks.java parsers/WordDecoration.java styling/StyleChecker.java styling/style.css pending merges: rsiddharth 2012-12-21 [bug-fix]: when the default style sheet is newer than the style sheet rsiddharth 2012-12-21 Scruf.java has been renamed to Run.java rsiddharth 2012-12-21 [method named changed]: The method named 'resolve()' in styling/StyleChecker.java is changed ... rsiddharth 2012-12-21 [bug-fix]: Each directory is checked if it contains the style.css, if rsiddharth 2012-12-21 added license text to parsers/SymbolMap.java. rsiddharth 2012-12-21 updated TODO rsiddharth 2012-12-20 [bug-fix]: From now on, all the special characters in the string rsiddharth 2012-12-20 SymbolMap class which was in CodeBlock.java is shifted to a dedicated rsiddharth 2012-12-20 [bug-fix]: Back Buttons were not put in webpages that were present in rsiddharth 2012-12-15 bunch of new todos; 'todo' renamed to 'TODO'.
Diffstat (limited to 'parsers/WordDecoration.java')
-rw-r--r--parsers/WordDecoration.java30
1 files changed, 28 insertions, 2 deletions
diff --git a/parsers/WordDecoration.java b/parsers/WordDecoration.java
index 1df8cc6..e7cc0ac 100644
--- a/parsers/WordDecoration.java
+++ b/parsers/WordDecoration.java
@@ -28,13 +28,14 @@ import scruf.io.*;
public class WordDecoration implements Parser {
private HashMap<String, String> tagMap;
+ private SymbolMap symbolMap;
public WordDecoration() {
tagMap = new HashMap<String, String>();
tagMap.put("''","<i>$7</i>");
tagMap.put("__","<u>$7</u>");
tagMap.put("'''","<b>$7</b>");
tagMap.put("%%%","<blockquote>$7</blockquote>");
- tagMap.put("`","<span class=\"monospace\">$7</span>");
+ symbolMap = new SymbolMap();
}
public String parse(String fileContent) {
Pattern pattern =
@@ -44,10 +45,35 @@ public class WordDecoration implements Parser {
StringBuffer sbuffer = new StringBuffer();
String replacement;
while(matcher.find()) {
- replacement = tagMap.get(matcher.group(1));
+ // if the block found is a monospace block,
+ // get the replacement from 'monospaceBlock'
+ // method, else get it from the 'tagMap':
+ if(matcher.group(6)!=null) {
+ // group 7 is the string inside the word decorated
+ // mark up. (see the pattern above)
+ replacement = monospaceBlock(matcher.group(7));
+ }else {
+ replacement = tagMap.get(matcher.group(1));
+ }
matcher.appendReplacement(sbuffer,replacement);
}
matcher.appendTail(sbuffer);
return sbuffer.toString();
}
+
+ // monopace blocks need special treatment, therefore,
+ // this method for its construction:
+ private String monospaceBlock(String content) {
+ // quote all special characters in the monospace
+ // block:
+ String quotedContent= symbolMap.quote(content);
+
+ // build monospace HTML block:
+ StringBuilder sb = new StringBuilder();
+ sb.append("<span class=\"monospace\">");
+ sb.append(quotedContent);
+ sb.append("</span>");
+
+ return sb.toString();
+ }
}