From 88b46e3db46ff8d8754797fcff8fe9eba19f7ddd Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Fri, 15 Nov 2013 14:00:35 +0530 Subject: now, scruf does'nt wrap

around text inside HTML blocks in scruffy markup file. With this, I guess, HTML can be written in scruffy marked up files. --- parsers/DetectHTMLTag.java | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) (limited to 'parsers/DetectHTMLTag.java') diff --git a/parsers/DetectHTMLTag.java b/parsers/DetectHTMLTag.java index 562b793..4572927 100644 --- a/parsers/DetectHTMLTag.java +++ b/parsers/DetectHTMLTag.java @@ -22,16 +22,20 @@ package scruf.parsers; import java.util.*; import java.util.regex.*; +import scruf.status.*; public class DetectHTMLTag { private List closingHtmlTags = new ArrayList(); private Pattern htmlTagPattern = Pattern.compile("^\\<((\\w+?).*?)\\>.*?(\\<\\/\\2\\>)", Pattern.DOTALL); + private String lastHtmlBlock = null; private boolean insideHtmlBlock = false; + private boolean htmlInScruffy = false; public boolean isHtmlTag(String text) { Matcher htmlTagMatcher = htmlTagPattern.matcher(text); if(htmlTagMatcher.find()) { + lastHtmlBlock = htmlTagMatcher.group(); closingHtmlTags.add(htmlTagMatcher.group(3)); insideHtmlBlock = true; return true; @@ -43,16 +47,45 @@ public class DetectHTMLTag { private boolean isClosingHtmlTag(String text) { for(String closingTag: closingHtmlTags) { if(text.startsWith(closingTag)) { + lastHtmlBlock = closingTag; closingHtmlTags.remove(closingTag); + if(closingHtmlTags.isEmpty()) + insideHtmlBlock = false; return true; } } - if(closingHtmlTags.isEmpty()) - insideHtmlBlock = false; return false; } + public boolean isHtmlInScruffy(String text) { + Integer blankLineCounter; + + if(isHtmlTag(text)) { + Pattern qText = Pattern.compile("\\Q"+lastHtmlBlock+"\\E"); + htmlInScruffy = qText.matcher(PresentFile.fileContent).find(); + + Pattern pBlankLine = Pattern.compile("\\n\\n"); + Matcher mBlankLine = pBlankLine.matcher(lastHtmlBlock); + blankLineCounter = 0; + + while(mBlankLine.find()) + ++blankLineCounter; + + if(blankLineCounter == 0) { + closingHtmlTags.clear(); + resetEverything(); + } + } + return insideHtmlBlock && htmlInScruffy; + } + public boolean insideHtmlBlock() { return insideHtmlBlock; } -} + + public void resetEverything() { + insideHtmlBlock = false; + htmlInScruffy = false; + lastHtmlBlock = null; + } +} \ No newline at end of file -- cgit v1.2.3