#FEATURE by exept
class: HTMLDocGenerator
changed:
#extractExamplesFromClass:
#printOutHTMLMethodProtocol:on:showClassName:classRef:picturePath:
allow examples to be formatted as:
<pre>
...
</pre>
or as:
<html>
...
</html>
--- a/HTMLDocGenerator.st Tue Aug 27 11:21:33 2019 +0200
+++ b/HTMLDocGenerator.st Wed Aug 28 10:07:42 2019 +0200
@@ -1621,7 +1621,7 @@
!
extractExamplesFromClass:aClass
- |m examples|
+ |m examples lines makePre isHtml|
m := aClass theMetaclass compiledMethodAt:#examples.
m isNil ifTrue:[ ^ nil].
@@ -1629,6 +1629,24 @@
examples := m comment.
examples isEmptyOrNil ifTrue:[ ^ nil].
+ makePre := isHtml := false.
+ lines := examples asStringCollection.
+ (lines first withoutSeparators = '<pre>') ifTrue:[
+ makePre := true.
+ lines removeFirst.
+ (lines last withoutSeparators = '</pre>') ifTrue:[
+ lines removeLast.
+ ].
+ examples := lines asString.
+ ] ifFalse:[
+ (lines first withoutSeparators = '<html>') ifTrue:[
+ (lines last withoutSeparators = '</html>') ifTrue:[
+ lines removeLast.
+ ].
+ ^ lines
+ ].
+ ].
+
examples := self withSpecialHTMLCharactersEscaped:examples.
examples := examples asStringCollection.
@@ -1643,9 +1661,13 @@
].
examples isEmpty ifTrue:[ ^ nil].
-
- examples := self undentedToFirstLinesIndent:examples.
- ^ examples
+ makePre ifTrue:[
+ examples addFirst:'<pre>'.
+ examples addLast:'</pre>'.
+ ^ examples
+ ] ifFalse:[
+ ^ self undentedToFirstLinesIndent:examples.
+ ].
!
extractProtocolCategoriesFrom:aClass
@@ -2007,7 +2029,7 @@
isSubres ifTrue:[
aStream nextPutLine:'<BR>'.
- aStream nextPutLine:'<I>** This method raises an error - it must be redefined in concrete classes **</I>'.
+ aStream nextPutLine:'<I>** This method must be redefined in concrete classes (subclassResponsibility) **</I>'.
].
isObsolete ifTrue:[
aStream nextPutLine:'<BR>'.