/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.harvard.iq.dataverse.util;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.safety.Whitelist;
/**
* Wrapper for Jsoup clean
*
* @author rmp553
*/
public class MarkupChecker {
/**
* Wrapper around Jsoup clean method with the basic White list
* http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer
* @param unsafe
* @return
*/
public static String sanitizeBasicHTML(String unsafe){
if (unsafe == null){
return null;
}
// basic includes: a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul
//Whitelist wl = Whitelist.basic().addTags("img", "h1", "h2", "h3", "kbd", "hr", "s", "del");
Whitelist wl = Whitelist.basicWithImages().addTags( "h1", "h2", "h3", "kbd", "hr", "s", "del","map","area").addAttributes("img", "usemap")
.addAttributes("map", "name").addAttributes("area", "shape","coords","href","title","alt")
.addEnforcedAttribute("a", "target", "_blank");
return Jsoup.clean(unsafe, wl);
}
/**
* Strip all HTMl tags
*
* http://jsoup.org/apidocs/org/jsoup/safety/Whitelist.html#none%28%29
*
* @param unsafe
* @return
*/
public static String stripAllTags(String unsafe){
if (unsafe == null){
return null;
}
return Jsoup.clean(unsafe, Whitelist.none());
}
}