Jerome Velociter wrote:
> Sergiu Dumitriu wrote:
>> jvelociter (SVN) wrote:
>>> Author: jvelociter
>>> Date: 2009-03-14 23:32:39 +0100 (Sat, 14 Mar 2009)
>>> New Revision: 17629
>>>
>>> Modified:
>>>
>>> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/render/filter/XWikiHeadingFilter.java
>>> Log:
>>> XWIKI-3360 Including a document with first or second heading level breaks
>>> the including document section edit links (Syntax 1.0)
>>>
>>> Internal count of section was incremented for headings of included
>>> documents while they are not part of the document and thus not subject to
>>> section edit in an included context. In doubt I left the comment related to
>>> the increment, though I am not sure it is relevant.
>>>
>>>
>>> Modified:
>>> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/render/filter/XWikiHeadingFilter.java
>>> ===================================================================
>>> ---
>>> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/render/filter/XWikiHeadingFilter.java
>>> 2009-03-14 15:43:17 UTC (rev 17628)
>>> +++
>>> platform/core/branches/xwiki-core-1.8/xwiki-core/src/main/java/com/xpn/xwiki/render/filter/XWikiHeadingFilter.java
>>> 2009-03-14 22:32:39 UTC (rev 17629)
>>> @@ -158,15 +158,15 @@
>>> }
>>>
>>> if (level.equals("1") || level.equals("1.1")) {
>>> - // TODO: This is unstable, meaning that it works in the
>>> current skin, but it might
>>> - // fail if there are other headings processed before the
>>> document content.
>>> - sectionNumber++;
>>> // This check is needed so that only the document content
>>> generates sectionedit
>>> // links.
>>> // TODO: Find a better way to make this check, as this
>>> prevents generating links for
>>> // titles that are transformed by velocity (1.1 about
>>> $doc.fullName) or by radeox
>>> // (1.1 This is *important*).
>>> if (doc != null && doc.getContent().indexOf(title.trim())
>>> != -1) {
>>> + // TODO: This is unstable, meaning that it works in
>>> the current skin, but it might
>>> + // fail if there are other headings processed before
>>> the document content.
>>> + sectionNumber++;
>>> StringBuffer editparams = new StringBuffer();
>>> if
>>> (xcontext.getWiki().getEditorPreference(xcontext).equals("wysiwyg")) {
>>>
>>> editparams.append("xpage=wysiwyg&section=").append(sectionNumber);
>> You just re-introduced http://jira.xwiki.org/jira/browse/XWIKI-1176
>> Too bad there was no test for it (my fault).
>>
>> The problem is that the section edit buttons should be added just for
>> real sections in the current document, but it is hard to do that. The
>> current code does a simple check to see if the current header (wiki
>> syntax) is found in the document. This raises two issues: since radeox
>> is executed after velocity, if the document source contained a heading
>> with velocity, this check raises a false negative. Now:
>>
>> - if we put the increment inside the if, the sections will be wrong
>> because of this false negative
>> - if we leave it outside, true negatives (like imported content or
>> headers generated inside loops) will also shift section numbers
>>
>> So either way, the whole code is wrong.
>
> Ok, I see. I think we should keep he increment inside the clause and either:
>
> - Improve the check as the TODO suggests (but I don't really see how now)
> - Decide that "1.1 About $doc.fullName" (or other title with
> radeox/velocity) is not a section, and change Document#getSections to
> reflect that (checking each title against a regular expressions for
> example, and discard it if it contains velocity or radeox).
OK for 2. There is little chance of finding a better fix, since regular
expressions are a very bad foundation.
> Having the increment outside the clause sounds wrong any case.
>
> XWIKI-3360 can be experienced on the only edit link of Main.WebHome of a
> fresh XE, so I prefer not to revert for now, and reopen XWIKI-1176 if needed.
>
> Jerome.
>
>> For reference, this was the change I made:
>> http://fisheye2.atlassian.com/changelog/xwiki?cs=4485 (for some unknown
>> reason svn fails to show the changes, although it says that 3 lines were
>> added and one removed).
--
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs