Drupal: tidy – správné označování konců řádků (jen tam, kde už je nějaký text)
authorFrantišek Kučera <franta-hg@frantovo.cz>
Wed, 19 Oct 2011 17:23:53 +0200
changeset 10008c9fb6fb017
parent 99 dd361cf60002
child 101 d54786065fa3
Drupal: tidy – správné označování konců řádků (jen tam, kde už je nějaký text)
src/org/sonews/storage/DrupalMessage.java
     1.1 --- a/src/org/sonews/storage/DrupalMessage.java	Tue Oct 18 22:55:43 2011 +0200
     1.2 +++ b/src/org/sonews/storage/DrupalMessage.java	Wed Oct 19 17:23:53 2011 +0200
     1.3 @@ -64,6 +64,7 @@
     1.4  	private static final String CRLF = "\r\n";
     1.5  	public static final String CHARSET = "UTF-8";
     1.6  	private static final String XHTML_CONTENT_TYPE = "text/html; charset=" + CHARSET;
     1.7 +	private static final String ZNAKČKA_KONCE_ŘÁDKU = "◆";
     1.8  	private String messageID;
     1.9  
    1.10  	/**
    1.11 @@ -198,7 +199,7 @@
    1.12  		 *		- použít delší zástupný řetězec, ne jen jeden znak
    1.13  		 *		- umísťovat ho jen tam, kde už nějaký text je (ne mezi >\s*<)
    1.14  		 */
    1.15 -		inputText = inputText.replaceAll("\\n", "◆\n");
    1.16 +		inputText = označKonceŘádků(inputText);
    1.17  
    1.18  		Runtime r = Runtime.getRuntime();
    1.19  		Process p = r.exec(new String[]{"tidy", // http://tidy.sourceforge.net
    1.20 @@ -219,12 +220,23 @@
    1.21  
    1.22  		String outputText = streamToString(p.getInputStream());
    1.23  
    1.24 -		outputText = outputText.replaceAll("◆\\n", "\n");
    1.25 -		outputText = outputText.replaceAll("◆", "\n");
    1.26 +		outputText = vraťKonceŘádků(outputText);
    1.27  
    1.28  		return outputText;
    1.29  	}
    1.30  
    1.31 +	private static String označKonceŘádků(String text) {
    1.32 +		text = text.replaceAll(">\\s+<", "> <");
    1.33 +		text = text.replaceAll("\\n", ZNAKČKA_KONCE_ŘÁDKU + "\n");
    1.34 +		return text;
    1.35 +	}
    1.36 +
    1.37 +	private static String vraťKonceŘádků(String text) {
    1.38 +		text = text.replaceAll(ZNAKČKA_KONCE_ŘÁDKU + "\\n", "\n");
    1.39 +		text = text.replaceAll(ZNAKČKA_KONCE_ŘÁDKU, "\n");
    1.40 +		return text;
    1.41 +	}
    1.42 +
    1.43  	/**
    1.44  	 * TODO: refaktorovat, přesunout
    1.45  	 */