/** * Copyright (c) 2012 SUSE LLC * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package com.redhat.rhn.internal.doclet; import java.util.List; import java.util.Map; /** * DocBookWriter * @version $Rev$ */ public class DocBookWriter extends DocWriter { private static final String DOCBOOK_OUTPUT = "./build/reports/apidocs/docbook/"; private static final String DOCBOOK_TEMPLATES = "./buildconf/apidoc/docbook/"; private static final String[] OTHER_FILES = {"faqs", "scripts"}; /** * {@inheritDoc} */ public void write(List<Handler> handlers, Map<String, String> serializers) throws Exception { // First macro-tize the serializer's docs renderSerializers(DOCBOOK_TEMPLATES, serializers); // Lets do the index first writeFile(DOCBOOK_OUTPUT + "book.xml", generateIndex(handlers, DOCBOOK_TEMPLATES)); for (Handler handler : handlers) { writeFile(DOCBOOK_OUTPUT + handler.getClassName() + ".xml", generateHandler(handler, DOCBOOK_TEMPLATES)); } for (String file : OTHER_FILES) { writeFile(DOCBOOK_OUTPUT + file + ".xml", readFile(DOCBOOK_TEMPLATES + file + ".txt")); } } /** * Transcode simple HTML markup into DocBook XML or remove if not relevant. * * @param string any string containing HTML markup * @return string containing DocBook XML markup */ public static String transcode(String string) { String ret = ""; // Remove href, italic and br ret = string.replaceAll("<a [^>]*>", ""); ret = ret.replaceAll("</a>", ""); ret = ret.replaceAll("<i>", ""); ret = ret.replaceAll("</i>", ""); ret = ret.replaceAll("<br/>", " "); // Transform lists ret = ret.replaceAll("<ul>", "</para><itemizedlist>"); ret = ret.replaceAll("</ul>", "</itemizedlist><para>"); ret = ret.replaceAll("<li>", "<listitem><para>"); ret = ret.replaceAll("</li>", "</para></listitem>"); // Remove arbitrary stuff ret = ret.replaceAll("<Specified System>", "Specified System"); return ret; } }