#FEATURE by exept
authorClaus Gittinger <cg@exept.de>
Wed, 28 Aug 2019 10:07:42 +0200
changeset 4484 f6a820ac5792
parent 4483 7de46789b10d
child 4485 11de50dd8c35
#FEATURE by exept class: HTMLDocGenerator changed: #extractExamplesFromClass: #printOutHTMLMethodProtocol:on:showClassName:classRef:picturePath: allow examples to be formatted as: <pre> ... </pre> or as: <html> ... </html>
HTMLDocGenerator.st
--- 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>'.