The original Technical-Debt ticket T240858: Clean up implementation for "follow" cases was based on wrong assumptions, patches reverted and the ticket closed as invalid. However, the tech-debt in the Cite codebase is still there and asks for cleanup. In detail:
- Originally, the follow="…" feature was entirely untested. This is mostly fixed by now. Still some edge-cases are not covered.
- The rendering order intentionally starts with the "incomplete" follow="…" (in the order in which they appear in the source), followed by all other references. This might need more test coverage and an update of the uasort() function in Cite.
- Currently, the Cite code creates broken HTML where a <p> appears in the middle of an <ol>. This is not allowed.
RemexHtml kicks in and changes this order as best as it can. This creates a fragile dependency that's not obvious at all. Solution: Change Cite so the <p> are output before the <ol>.Update: It appears the "incomplete" entries are meant to be part of the list, and indented as the other list entries, just not numbered.
- Another issue is that this <p> is not in the code, but in a message. The message contains nothing that needs localization. The only reason to make it a message is so that a wiki can change it – or empty it. If it turns out this is not needed, we can delete the message and create the <p> in code.
Real-world example of such an "incomplete" follow="…": https://en.wikisource.org/wiki/Page:The_life_of_Matthew_Flinders.djvu/83