[squeak-dev] The Inbox: Collections-eem.732.mcz
Eliot Miranda
eliot.miranda at gmail.com
Wed Feb 8 18:59:46 UTC 2017
Hi All,
I'd really like this to be in trunk. I've just written a blog post in
a Workspace using this code (
http://www.mirandabanda.org/cogblog/2017/02/07/smalltalk-scanning-and-shcontrol-structures/)
and it turns creating a blog post into a simple copyHtml paste operation
from a workspace to (in my case) WordPress. So any reviewers?
On Wed, Feb 8, 2017 at 10:55 AM, <commits at source.squeak.org> wrote:
> Eliot Miranda uploaded a new version of Collections to project The Inbox:
> http://source.squeak.org/inbox/Collections-eem.732.mcz
>
> ==================== Summary ====================
>
> Name: Collections-eem.732
> Author: eem
> Time: 8 February 2017, 10:55:41.894202 am
> UUID: c2c7f1c4-f586-4872-b2c7-6fb7f9cd6527
> Ancestors: Collections-dtl.731
>
> Modify HtmlReadWriter to enclose indented text within <pre></pre> to
> preserve formatting of, for example, code.
>
> =============== Diff against Collections-dtl.731 ===============
>
> Item was added:
> + ----- Method: HtmlReadWriter>>linesWithAttributesIn:do: (in category
> 'writing') -----
> + linesWithAttributesIn: aText do: aBlock
> + "Evauate aBlock with a string and the emphasis for that string,
> guaranteeing
> + that if the string contains a line break, it occurs at the end of
> the line."
> + aText runs withStartStopAndValueDo:
> + [:start :stop :attributes | | att idx startIdx |
> + startIdx := start.
> + [att := aText attributesAt: startIdx.
> + idx := aText string indexOf: Character cr from: startIdx
> to: stop ifAbsent: stop.
> + aBlock value: (aText string copyFrom: startIdx to: idx)
> value: att.
> + idx < stop]
> + whileTrue:
> + [startIdx := idx + 1]]!
>
> Item was changed:
> ----- Method: HtmlReadWriter>>nextPutText: (in category 'accessing')
> -----
> nextPutText: aText
> + | atStartOfLine inIndent cr |
> + atStartOfLine := true.
> + inIndent := false.
> + cr := Character cr.
> + self linesWithAttributesIn: aText do:
> + [:string :attributes | | indented |
> + atStartOfLine ifTrue:
> + [indented := string first == Character tab.
> + indented ~~ inIndent ifTrue:
> + [stream nextPutAll: (indented ifTrue:
> ['<pre>'] ifFalse: ['</pre>']).
> + inIndent := indented]].
> + attributes do: [:each | self writeStartTagFor: each].
> + inIndent
> + ifTrue: [self writePresentationContent: string]
> + ifFalse: [self writeContent: string].
> + attributes reverseDo: [:each | self writeEndTagFor: each].
> + atStartOfLine := string last == cr].
> + inIndent ifTrue:
> + [stream nextPutAll: '</pre>']!
> -
> - aText runs
> - withStartStopAndValueDo: [:start :stop :attributes |
> - | att str |
> - att := aText attributesAt: start.
> - str := aText string copyFrom: start to: stop.
> -
> - att do: [:each | self writeStartTagFor: each].
> - self writeContent: str.
> - att reverse do: [:each | self writeEndTagFor:
> each]]!
>
> Item was added:
> + ----- Method: HtmlReadWriter>>writePresentationContent: (in category
> 'writing') -----
> + writePresentationContent: aString
> +
> + aString do: [:char |
> + char = Character tab
> + ifTrue: [stream nextPutAll:
> ' ']
> + ifFalse: [(String htmlEntities keyAtValue: char
> ifAbsent: [])
> + ifNil: [stream nextPut: char]
> + ifNotNil: [:escapeSequence |
> + stream
> + nextPut: $&;
> + nextPutAll: escapeSequence;
> + nextPut: $;]]]!
>
> Item was added:
> + ----- Method: SequenceableCollection>>indexOf:from:to:ifAbsent: (in
> category 'accessing') -----
> + indexOf: anElement from: start to: end ifAbsent: exceptionBlock
> + "Answer the index of the first occurence of anElement from start
> to stop
> + within the receiver. If the receiver does not contain anElement
> in the,
> + range answer the result of evaluating the argument,
> exceptionBlock."
> +
> + start to: end do:
> + [:index |
> + (self at: index) = anElement ifTrue: [^index]].
> + ^exceptionBlock value!
>
>
>
--
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170208/76ef725d/attachment.html>
More information about the Squeak-dev
mailing list
|