A simple solution (that doesn't include ordered lists):
Not as simple to implement as John's, but no html in the wiki markup, which I think is better.
Call the function doList iteratively from the existing
Private Function parseLists (txt As String) As String<br/>
'** lines beginning with a * should be bullet lists<br/>
'** 10 levels of indent should be enough for anyone<br/>
Dim i As Integer<br/>
parseLists = doList (txt, 10)<br/>
For i = 9 To 1 Step -1<br/>
parseLists = doList (parseLists, i) <br/>
Next<br/>
End Function<br/>
<br/>
' Create list items for each * found at the beginning of a line<br/>
' param txt - the whole wiki page text<br/>
' param amount - the number of bullets to search for<br/>
Private Function doList (txt As String, amount As Integer) As String<br/>
doList = ReplaceRangeEnds(txt, Chr(10) & Ustring(amount, "*"), Chr(10), _<br/>
"<li class='level" & amount & "'>" , " </li>" & Chr(10), Chr(10) , False) <br/>
<br/>
doList = ReplaceRangeEnds(doList, Chr(10) & Ustring(amount, "*"), Chr(10), _<br/>
"<li class='level" & amount & "'>" , " </li>" & Chr(10), Chr(10) , False) <br/>
<br/>
doList = ReplaceRangeEnds(doList, Chr(10) & Ustring(amount, "*"), Chr(10), _<br/>
"<li class='level" & amount & "'>" , " </li>" & Chr(10), Chr(10) , False) <br/>
End Function