Index: jrst2/src/java/org/codelutin/jrst/JRSTReader.java diff -u jrst2/src/java/org/codelutin/jrst/JRSTReader.java:1.33 jrst2/src/java/org/codelutin/jrst/JRSTReader.java:1.34 --- jrst2/src/java/org/codelutin/jrst/JRSTReader.java:1.33 Wed Jun 6 11:58:15 2007 +++ jrst2/src/java/org/codelutin/jrst/JRSTReader.java Tue Jun 19 21:24:56 2007 @@ -23,10 +23,10 @@ * Created: 27 oct. 06 00:15:34 * * @author poussin - * @version $Revision: 1.33 $ + * @version $Revision: 1.34 $ * - * Last update: $Date: 2007/06/06 11:58:15 $ - * by : $Author: sletellier $ + * Last update: $Date: 2007/06/19 21:24:56 $ + * by : $Author: bpoussin $ */ package org.codelutin.jrst; @@ -365,18 +365,20 @@ Document result = DocumentHelper.createDocument(); result.setRootElement(root); - // remove all level attribute + root.accept(new VisitorSupport() { - public void visit(Element e) { + public void visit(Element e) { + // remove all level attribute e.addAttribute("level", null); - String type = e.attributeValue("type"); + String type = e.attributeValue("type"); if (type != null) { if (type.equals("contents")) { composeContents(e); e.addAttribute("type", null); } } + if ("true".equalsIgnoreCase(e.attributeValue("inline"))) { e.addAttribute("inline", null); try { @@ -404,7 +406,6 @@ * e */ private void composeContents(Element e) { - Element result = DocumentHelper.createElement(TOPIC); String option = e.getText(); int depth = -1; @@ -415,9 +416,15 @@ matcher = pattern.matcher(matcher.group()); if (matcher.find()) depth = Integer.parseInt(matcher.group()); + } + int levelInit = 0; + try { + levelInit = Integer.parseInt(eTitle.getFirst().attributeValue("level")); + } catch (NumberFormatException eee) { + log.error("Can't parse level in: " + eTitle.getFirst().asXML(), eee); + return; } - int levelInit = Integer.parseInt(eTitle.getFirst().attributeValue( - "level")); + LinkedList title = new LinkedList(); for (int i = 0; i < eTitle.size(); i++) { idMax++; @@ -470,7 +477,7 @@ int level = Integer.parseInt(e.attributeValue("level")); LinkedList child = new LinkedList(); - if (level == 0 && !done) { + if (level <= 0 && !done) { cnt++; title.removeFirst(); item = result.addElement(LIST_ITEM); @@ -509,14 +516,16 @@ } } while (!title.isEmpty() && level > 0 && !done); String numTmp = ""; - if (sectnum) + if (sectnum) { numTmp = num + cnt + "."; - if (item != null) + } + if (item != null) { item.add(composeLineContent(child, numTmp)); // Appel - // recursif - else + // recursif + } else { result.add(composeLineContent(child, numTmp)); // Appel - // recursif + // recursif + } } } return result;