Hi John,
I published a new version of SmallWiki to the public
repository. I
rewrote
the parser. It is ~8x faster parsing the introduction page. Also, it
doesn't
need an extra CR at the end of the stream. Finally, it has support for
special characters inside the text (e.g., ** is parsed as text for *
not an
empty link -- you can also use \*), and also support for nested list
items
(e.g., ## to nest two numbered lists). However, the last two aren't
hooked
up for round tripping yet (i.e., when you re-edit the page, it won't
display
properly).
that looks great and is also much shorter than the previous parser.
I've fixed the wiki-renderer to allow a full round-trip and created a
class testing parsing and rendering, however the old tests are still
there. The ** doesn't seem to work, but that is all-right with me as I
prefer the escaping using the backslash.
Besides the SmallWiki changes, I published a package
(SmallWiki
WikiWorks
Importer) that extracts pages from a WikiWorks site. You can run it
using
"WikiWorksWikiExtractor download: 'Refactoring Browser' from:
'http://wiki.cs.uiuc.edu/RefactoringBrowser'". It will download the
page and
everything in the wiki reachable from that page. I've used it to
download
the RB and VW wikis from
http://wiki.cs.uiuc.edu.
That is really a cool extension, I've tried it and it works just great!
Alexandre is working on the SWiki importer and when this is done, we
should be able to import most Wiki of the Smalltalk community.
BTW, I'd suggest caching the Structure>>id.
After I loaded the VW wiki
into
SmallWiki and did a search, it was about 5x slower than the
wiki.cs.uiuc.edu
search (and my machine is likely 10x faster). 90% of the search time
was the
asWikiIdentifier from Structure>>id.
Actually this had been implemented in an older version of SmallWiki,
but then removed again. Recreating the id all the time again seems to
take a lot of time, as a new string-stream has to be created. The
current implementation caches the id, but it is lazy initialized to not
break SmallWiki's currently running. This feature will be removed again
for the final version.
Thanks a lot for your help,
Lukas
--
Lukas Renggli
http://renggli.freezope.org