diff options
-rw-r--r-- | conversion/FileSieve.java | 2 | ||||
-rw-r--r-- | parsers/Footer.java | 2 | ||||
-rw-r--r-- | parsers/Header.java | 5 | ||||
-rw-r--r-- | parsers/Images.java | 9 | ||||
-rw-r--r-- | parsers/Links.java | 7 | ||||
-rw-r--r-- | parsers/Paragraphs.java | 27 | ||||
-rw-r--r-- | parsers/ParserList.java | 4 |
7 files changed, 37 insertions, 19 deletions
diff --git a/conversion/FileSieve.java b/conversion/FileSieve.java index 8d6c643..71be04a 100644 --- a/conversion/FileSieve.java +++ b/conversion/FileSieve.java @@ -7,7 +7,7 @@ public class FileSieve implements FileFilter { // this method return true, if this file doesn't represent // a html file. public boolean accept(File pathname) { - Pattern pattern = Pattern.compile("(.+\\.(html|png|jpg|css|tar|ttf))|(.+?\\~)|(index)|(\\..+)"); + Pattern pattern = Pattern.compile("(.+\\.(html|png|jpg|css|tar|ttf))|(.+?\\~)|(index)|(\\..+)|(\\#.+?\\#)"); Matcher matcher = pattern.matcher(pathname.getName()); boolean bool = matcher.find(); return !bool; diff --git a/parsers/Footer.java b/parsers/Footer.java index 4ff50ed..d949017 100644 --- a/parsers/Footer.java +++ b/parsers/Footer.java @@ -8,7 +8,7 @@ public class Footer implements Parser { Matcher matcher = pattern.matcher(fileContent); StringBuffer sbuffer = new StringBuffer(); while(matcher.find()) { - PresentFile.footer = "<footer>"+matcher.group(1)+"</footer>"; + PresentFile.footer = "<footer>"+matcher.group(1)+"</footer>\n"; fileContent = new NullIt().nullIt(fileContent,matcher.group()); } diff --git a/parsers/Header.java b/parsers/Header.java index 96ffa05..946613a 100644 --- a/parsers/Header.java +++ b/parsers/Header.java @@ -14,6 +14,7 @@ public class Header implements Parser { // Embed necessay headers. sbuilder.append("<!DOCTYPE html> \n"); sbuilder.append("<head> \n"); + sbuilder.append("<meta charset=\"UTF-8\">\n"); sbuilder.append(" <link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" /> \n"); sbuilder.append("<title>"); sbuilder.append(PresentFile.name); @@ -24,12 +25,12 @@ public class Header implements Parser { sbuilder.append("<article>\n"); // insert File Content. sbuilder.append(fileContent); - // insert back button. - sbuilder.append(PresentFile.backButton); // add footer if footer is available. if(PresentFile.footer!=null) { sbuilder.append(PresentFile.footer); } + // insert back button. + sbuilder.append(PresentFile.backButton); sbuilder.append("</article>\n"); // add "powered by scruf" at bottom of page. sbuilder.append("<div class=\"scruf\">\n"); diff --git a/parsers/Images.java b/parsers/Images.java index f049f34..803537c 100644 --- a/parsers/Images.java +++ b/parsers/Images.java @@ -4,10 +4,10 @@ import java.util.regex.*; public class Images implements Parser { // set of strings to build the img tag - private String openTag = "<img src=\"$1\""; + private String openTag = "<img src=\"$1\" alt=\"$"; private String closeTag = " />"; public String parse(String fileContent) { - Pattern pattern = Pattern.compile("\\{\\{(.+\\.(png|jpg))(\\|(.+))?\\}\\}", Pattern.DOTALL); + Pattern pattern = Pattern.compile("\\{\\{(.+?\\.(png|jpg))(\\|(.+?))?\\}\\}", Pattern.DOTALL); Matcher matcher = pattern.matcher(fileContent); StringBuffer sbuffer = new StringBuffer(); StringBuilder replacementString =new StringBuilder(); @@ -18,7 +18,10 @@ public class Images implements Parser { replacementString.append(openTag); // if the "title" is given add to the _img_ tag. if(matcher.group(3)!=null) { - replacementString.append("alt=\"$4\" title=\"$4\""); + replacementString.append("4\" title=\"$4\""); + } + else { + replacementString.append("1\""); } // close the _img_ tag. replacementString.append(closeTag); diff --git a/parsers/Links.java b/parsers/Links.java index 87e4109..0253846 100644 --- a/parsers/Links.java +++ b/parsers/Links.java @@ -4,10 +4,10 @@ import java.util.regex.*; public class Links implements Parser { // set of strings to build the html link - private String openTag = "<a href=\"$1\" target=\"_blank\">"; + private String openTag = "<a href=\"$1\">"; private String closeTag = "</a>"; public String parse(String fileContent) { - Pattern pattern = Pattern.compile("\\[\\[(.+?)(\\|(.+?))\\]\\]", Pattern.DOTALL); + Pattern pattern = Pattern.compile("\\[\\[(.+?)(\\|(.+?))?\\]\\]", Pattern.DOTALL); Matcher matcher = pattern.matcher(fileContent); StringBuffer sbuffer = new StringBuffer(); StringBuilder replacementString = new StringBuilder(); @@ -20,6 +20,9 @@ public class Links implements Parser { if(matcher.group(3)!=null) { replacementString.append(matcher.group(3)); } + else { + replacementString.append(matcher.group(1)); + } // close the <a> tag replacementString.append(closeTag); matcher.appendReplacement(sbuffer,replacementString.toString()); diff --git a/parsers/Paragraphs.java b/parsers/Paragraphs.java index 0d6fda6..295d14a 100644 --- a/parsers/Paragraphs.java +++ b/parsers/Paragraphs.java @@ -3,17 +3,28 @@ package scruf.parsers; import java.util.regex.*; public class Paragraphs implements Parser { - + private String paragraph = "<p>\n $5</p>\n"; public String parse(String fileContent) { - - Pattern pattern = Pattern.compile("((^.+$)\\n)+",Pattern.MULTILINE); + /** + * This regex contains two parts seperated by a '|'; + * the first part is regex for a html Heading (See Heading.java) + * and the second part is the regex for a paragraph. For an input, + * if the first part of the regex is matched, then it is necessarily + * a Heading, so, we ignore it; but if the second part of the regex is + * matched for an input, then it is a paragraph, so, we put the necessary + * tags in place. + */ + Pattern pattern = Pattern.compile("((\\={10,})\\n(.+?)\\n(\\2))|((^.+$\\n)+)",Pattern.MULTILINE); Matcher matcher = pattern.matcher(fileContent); - StringBuilder sbuilder = new StringBuilder(); + StringBuffer sbuffer = new StringBuffer(); while(matcher.find()) { - sbuilder.append("\n<p>\n"); - sbuilder.append(matcher.group()); - sbuilder.append("</p>\n"); + // group 1 contains the regex for the Heading, so + // if that is null, then it means that we have actually + // found a paragraph. + if(matcher.group(1)==null) + matcher.appendReplacement(sbuffer,paragraph); } - return sbuilder.toString(); + matcher.appendTail(sbuffer); + return sbuffer.toString(); } }
\ No newline at end of file diff --git a/parsers/ParserList.java b/parsers/ParserList.java index 11e3de0..f5c1ebf 100644 --- a/parsers/ParserList.java +++ b/parsers/ParserList.java @@ -6,12 +6,12 @@ public class ParserList { private List<Parser> parsers; public ParserList() { parsers = new ArrayList<Parser>(); - // add Parsers. + // add Parsers. NOTE: parser order is significant. parsers.add(new DocumentName()); parsers.add(new WordDecoration()); parsers.add(new CodeBlocks()); - parsers.add(new Headings()); parsers.add(new Paragraphs()); + parsers.add(new Headings()); parsers.add(new Links()); parsers.add(new Images()); parsers.add(new Footer()); |