[squeak-dev] The Inbox: Collections-fn.740.mcz

Fabio Niephaus lists at fniephaus.com
Tue Mar 7 11:00:15 UTC 2017


I'm afraid I didn't see the discussion and also I'm not a core dev.
But please feel free to recategorize the HtmlReadWriter. :)

Fabio

-- 

On Tue, Mar 7, 2017 at 11:34 AM H. Hirzel <hannes.hirzel at gmail.com> wrote:

> It was discussed earlier that 'HtmlReadWriter' is not well placed in
> the 'Collections' category.
>
> It should be moved to a different category.
>
> Or into a new one.
>
> --Hannes
>
>
> On Tue, 7 Mar 2017 09:49:56 0000, commits at source.squeak.org
> <commits at source.squeak.org> wrote:
> > Fabio Niephaus uploaded a new version of Collections to project The
> Inbox:
> > http://source.squeak.org/inbox/Collections-fn.740.mcz
> >
> > ==================== Summary ====================
> >
> > Name: Collections-fn.740
> > Author: fn
> > Time: 7 March 2017, 10:49:27.466847 am
> > UUID: 1133e89d-10ca-4fa1-a98c-c1082fd360e6
> > Ancestors: Collections-ul.739, Collections-fn.712
> >
> > HtmlReadWriter: Add support for style attributes in div and span
> containers
> > and numberic HTML entities.
> >
> > =============== Diff against Collections-ul.739 ===============
> >
> > Item was added:
> > + ----- Method: HtmlReadWriter>>mapContainerTag: (in category 'mapping')
> > -----
> > + mapContainerTag: aTag
> > +
> > +     | result styleStart styleEnd styleAttributes |
> > +     result := OrderedCollection new.
> > +     styleStart := (aTag findString: 'style="' ) + 7.
> > +     styleStart <= 7 ifTrue: [^#()].
> > +     styleEnd := (aTag findString: '"' startingAt: styleStart) - 1.
> > +     styleAttributes := (aTag copyFrom: styleStart to: styleEnd)
> subStrings:
> > ';'.
> > +     styleAttributes do: [:ea | |keyValue key value|
> > +             keyValue := (ea subStrings: ':') collect: [:s | s
> withBlanksTrimmed].
> > +             key := keyValue first asLowercase.
> > +             value := keyValue second.
> > +             keyValue size = 2 ifTrue: [
> > +                     key = 'color' ifTrue: [result add: (TextColor
> color: (Color fromString:
> > value))].
> > +                     (key beginsWith: 'font') ifTrue: [
> > +                             (value includesSubstring: 'bold')
> > +                                     ifTrue: [result add: TextEmphasis
> bold].
> > +                             (value includesSubstring: 'italic')
> > +                                     ifTrue: [result add: TextEmphasis
> italic]]]].
> > +     ^ result!
> >
> > Item was changed:
> >   ----- Method: HtmlReadWriter>>mapTagToAttribute: (in category
> 'mapping')
> > -----
> >   mapTagToAttribute: aTag
> >
> >       aTag = '<b>' ifTrue: [^ {TextEmphasis bold}].
> >       aTag = '<i>' ifTrue: [^ {TextEmphasis italic}].
> >       aTag = '<u>' ifTrue: [^ {TextEmphasis underlined}].
> >       aTag = '<s>' ifTrue: [^ {TextEmphasis struckOut}].
> >       aTag = '<code>' ifTrue: [^ self mapCodeTag].
> >       aTag = '<pre>' ifTrue: [self breakLines: false. ^ {}].
> > +     (#('<div' '<span' '<center>' ) anySatisfy: [:ea | aTag beginsWith:
> ea])
> > +             ifTrue: [^(self mapAlignmentTag: aTag) union: (self
> mapContainerTag:
> > aTag)].
> > -     (aTag = '<center>' or: [aTag beginsWith: '<div'])
> > -             ifTrue: [^ self mapAlignmentTag: aTag].
> >       (aTag beginsWith: '<font') ifTrue: [^ self mapFontTag: aTag].
> >       (aTag beginsWith: '<a') ifTrue: [^ self mapATag: aTag].
> >
> >       "h1, h2, h3, ..."
> >       (aTag second = $h and: [aTag third isDigit])
> >               ifTrue: [^ {TextEmphasis bold}].
> >
> >       ^ {}!
> >
> > Item was changed:
> >   ----- Method: HtmlReadWriter>>processHtmlEscape: (in category
> 'reading')
> > -----
> >   processHtmlEscape: aString
> > +     | escapeSequence |
> > +     escapeSequence := aString copyFrom: 2 to: aString size - 1.
> > +     escapeSequence first = $# ifTrue: [^ self processHtmlEscapeNumber:
> > escapeSequence allButFirst].
> > -
> >       (String htmlEntities at: (aString copyFrom: 2 to: aString size - 1)
> > ifAbsent: [])
> >               ifNotNil: [:char |
> >                       string add: char.
> >                       count := count + 1].!
> >
> > Item was added:
> > + ----- Method: HtmlReadWriter>>processHtmlEscapeNumber: (in category
> > 'reading') -----
> > + processHtmlEscapeNumber: aString
> > +     | number |
> > +     number := aString first = $x
> > +             ifTrue: [ '16r', aString allButFirst ]
> > +             ifFalse: [ aString ].
> > +     string add: number asNumber asCharacter!
> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170307/f15879f8/attachment.html>


More information about the Squeak-dev mailing list