<div dir="ltr">I'm afraid I didn't see the discussion and also I'm not a core dev.<div>But please feel free to recategorize the HtmlReadWriter. :)</div><div><br></div><div>Fabio<br><br><div class="gmail_quote"><div class="GmSign">-- <br><br></div><div dir="ltr">On Tue, Mar 7, 2017 at 11:34 AM H. Hirzel <<a href="mailto:hannes.hirzel@gmail.com">hannes.hirzel@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It was discussed earlier that 'HtmlReadWriter' is not well placed in<br class="gmail_msg">
the 'Collections' category.<br class="gmail_msg">
<br class="gmail_msg">
It should be moved to a different category.<br class="gmail_msg">
<br class="gmail_msg">
Or into a new one.<br class="gmail_msg">
<br class="gmail_msg">
--Hannes<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
On Tue, 7 Mar 2017 09:49:56 0000, <a href="mailto:commits@source.squeak.org" class="gmail_msg" target="_blank">commits@source.squeak.org</a><br class="gmail_msg">
<<a href="mailto:commits@source.squeak.org" class="gmail_msg" target="_blank">commits@source.squeak.org</a>> wrote:<br class="gmail_msg">
> Fabio Niephaus uploaded a new version of Collections to project The Inbox:<br class="gmail_msg">
> <a href="http://source.squeak.org/inbox/Collections-fn.740.mcz" rel="noreferrer" class="gmail_msg" target="_blank">http://source.squeak.org/inbox/Collections-fn.740.mcz</a><br class="gmail_msg">
><br class="gmail_msg">
> ==================== Summary ====================<br class="gmail_msg">
><br class="gmail_msg">
> Name: Collections-fn.740<br class="gmail_msg">
> Author: fn<br class="gmail_msg">
> Time: 7 March 2017, 10:49:27.466847 am<br class="gmail_msg">
> UUID: 1133e89d-10ca-4fa1-a98c-c1082fd360e6<br class="gmail_msg">
> Ancestors: Collections-ul.739, Collections-fn.712<br class="gmail_msg">
><br class="gmail_msg">
> HtmlReadWriter: Add support for style attributes in div and span containers<br class="gmail_msg">
> and numberic HTML entities.<br class="gmail_msg">
><br class="gmail_msg">
> =============== Diff against Collections-ul.739 ===============<br class="gmail_msg">
><br class="gmail_msg">
> Item was added:<br class="gmail_msg">
> + ----- Method: HtmlReadWriter>>mapContainerTag: (in category 'mapping')<br class="gmail_msg">
> -----<br class="gmail_msg">
> + mapContainerTag: aTag<br class="gmail_msg">
> +<br class="gmail_msg">
> +     | result styleStart styleEnd styleAttributes |<br class="gmail_msg">
> +     result := OrderedCollection new.<br class="gmail_msg">
> +     styleStart := (aTag findString: 'style="' ) + 7.<br class="gmail_msg">
> +     styleStart <= 7 ifTrue: [^#()].<br class="gmail_msg">
> +     styleEnd := (aTag findString: '"' startingAt: styleStart) - 1.<br class="gmail_msg">
> +     styleAttributes := (aTag copyFrom: styleStart to: styleEnd) subStrings:<br class="gmail_msg">
> ';'.<br class="gmail_msg">
> +     styleAttributes do: [:ea | |keyValue key value|<br class="gmail_msg">
> +             keyValue := (ea subStrings: ':') collect: [:s | s withBlanksTrimmed].<br class="gmail_msg">
> +             key := keyValue first asLowercase.<br class="gmail_msg">
> +             value := keyValue second.<br class="gmail_msg">
> +             keyValue size = 2 ifTrue: [<br class="gmail_msg">
> +                     key = 'color' ifTrue: [result add: (TextColor color: (Color fromString:<br class="gmail_msg">
> value))].<br class="gmail_msg">
> +                     (key beginsWith: 'font') ifTrue: [<br class="gmail_msg">
> +                             (value includesSubstring: 'bold')<br class="gmail_msg">
> +                                     ifTrue: [result add: TextEmphasis bold].<br class="gmail_msg">
> +                             (value includesSubstring: 'italic')<br class="gmail_msg">
> +                                     ifTrue: [result add: TextEmphasis italic]]]].<br class="gmail_msg">
> +     ^ result!<br class="gmail_msg">
><br class="gmail_msg">
> Item was changed:<br class="gmail_msg">
>   ----- Method: HtmlReadWriter>>mapTagToAttribute: (in category 'mapping')<br class="gmail_msg">
> -----<br class="gmail_msg">
>   mapTagToAttribute: aTag<br class="gmail_msg">
><br class="gmail_msg">
>       aTag = '<b>' ifTrue: [^ {TextEmphasis bold}].<br class="gmail_msg">
>       aTag = '<i>' ifTrue: [^ {TextEmphasis italic}].<br class="gmail_msg">
>       aTag = '<u>' ifTrue: [^ {TextEmphasis underlined}].<br class="gmail_msg">
>       aTag = '<s>' ifTrue: [^ {TextEmphasis struckOut}].<br class="gmail_msg">
>       aTag = '<code>' ifTrue: [^ self mapCodeTag].<br class="gmail_msg">
>       aTag = '<pre>' ifTrue: [self breakLines: false. ^ {}].<br class="gmail_msg">
> +     (#('<div' '<span' '<center>' ) anySatisfy: [:ea | aTag beginsWith: ea])<br class="gmail_msg">
> +             ifTrue: [^(self mapAlignmentTag: aTag) union: (self mapContainerTag:<br class="gmail_msg">
> aTag)].<br class="gmail_msg">
> -     (aTag = '<center>' or: [aTag beginsWith: '<div'])<br class="gmail_msg">
> -             ifTrue: [^ self mapAlignmentTag: aTag].<br class="gmail_msg">
>       (aTag beginsWith: '<font') ifTrue: [^ self mapFontTag: aTag].<br class="gmail_msg">
>       (aTag beginsWith: '<a') ifTrue: [^ self mapATag: aTag].<br class="gmail_msg">
><br class="gmail_msg">
>       "h1, h2, h3, ..."<br class="gmail_msg">
>       (aTag second = $h and: [aTag third isDigit])<br class="gmail_msg">
>               ifTrue: [^ {TextEmphasis bold}].<br class="gmail_msg">
><br class="gmail_msg">
>       ^ {}!<br class="gmail_msg">
><br class="gmail_msg">
> Item was changed:<br class="gmail_msg">
>   ----- Method: HtmlReadWriter>>processHtmlEscape: (in category 'reading')<br class="gmail_msg">
> -----<br class="gmail_msg">
>   processHtmlEscape: aString<br class="gmail_msg">
> +     | escapeSequence |<br class="gmail_msg">
> +     escapeSequence := aString copyFrom: 2 to: aString size - 1.<br class="gmail_msg">
> +     escapeSequence first = $# ifTrue: [^ self processHtmlEscapeNumber:<br class="gmail_msg">
> escapeSequence allButFirst].<br class="gmail_msg">
> -<br class="gmail_msg">
>       (String htmlEntities at: (aString copyFrom: 2 to: aString size - 1)<br class="gmail_msg">
> ifAbsent: [])<br class="gmail_msg">
>               ifNotNil: [:char |<br class="gmail_msg">
>                       string add: char.<br class="gmail_msg">
>                       count := count + 1].!<br class="gmail_msg">
><br class="gmail_msg">
> Item was added:<br class="gmail_msg">
> + ----- Method: HtmlReadWriter>>processHtmlEscapeNumber: (in category<br class="gmail_msg">
> 'reading') -----<br class="gmail_msg">
> + processHtmlEscapeNumber: aString<br class="gmail_msg">
> +     | number |<br class="gmail_msg">
> +     number := aString first = $x<br class="gmail_msg">
> +             ifTrue: [ '16r', aString allButFirst ]<br class="gmail_msg">
> +             ifFalse: [ aString ].<br class="gmail_msg">
> +     string add: number asNumber asCharacter!<br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div></div></div>