From 1079b6ad13aba074e19f4549b2aa1f867cb7ed27 Mon Sep 17 00:00:00 2001 From: Robert Schmid Date: Sun, 18 May 2014 15:38:42 +0200 Subject: [PATCH 1/5] Setup css processing, handle font-style: italic --- .../DHtmlFormatter.class/instance/endHeader..st | 4 +--- .../DHtmlFormatter.class/instance/endStyles.st | 3 +++ .../DHtmlFormatter.class/instance/headerFont..st | 2 +- .../instance/parseTextAttributes..st | 10 ++++++++++ .../DHtmlFormatter.class/instance/startFont..st | 5 ++++- .../DHtmlFormatter.class/instance/startHeader..st | 7 +++++-- .../DHtmlFormatter.class/instance/startStyles..st | 6 ++++++ .../DHtmlFormatter.class/methodProperties.json | 11 +++++++---- .../instance/addToFormatter..st | 7 ------- .../HtmlBLOCKQUOTENode.class/instance/endStyles..st | 4 ++++ .../HtmlBLOCKQUOTENode.class/instance/startStyles..st | 4 ++++ .../HtmlBLOCKQUOTENode.class/methodProperties.json | 3 ++- .../HtmlDDNode.class/instance/addToFormatter..st | 6 ------ .../HtmlDDNode.class/instance/endStyles..st | 3 +++ .../HtmlDDNode.class/instance/startStyles..st | 4 ++++ .../HtmlDDNode.class/methodProperties.json | 3 ++- .../HtmlDLNode.class/instance/addToFormatter..st | 4 ---- .../HtmlDLNode.class/instance/endStyles..st | 3 +++ .../HtmlDLNode.class/methodProperties.json | 2 +- .../HtmlDOMNode.class/instance/addToFormatter..st | 7 +++++++ .../HtmlDOMNode.class/instance/endStyles..st | 3 +++ .../HtmlDOMNode.class/instance/startStyles..st | 3 +++ .../HtmlDOMNode.class/methodProperties.json | 3 +++ .../HtmlDTNode.class/instance/addToFormatter..st | 4 ---- .../HtmlDTNode.class/instance/startStyles..st | 3 +++ .../HtmlDTNode.class/methodProperties.json | 2 +- packages/HTML.package/HtmlDocument.class/README.md | 1 + .../HTML.package/HtmlDocument.class/properties.json | 2 +- .../HtmlFORMNode.class/instance/addToFormatter..st | 6 ------ .../HtmlFORMNode.class/instance/endStyles..st | 4 ++++ .../HtmlFORMNode.class/instance/startStyles..st | 3 +++ .../HtmlFORMNode.class/methodProperties.json | 3 ++- .../HtmlH1Node.class/instance/addToFormatter..st | 5 ----- .../HtmlH1Node.class/instance/endStyles..st | 4 ++++ .../HtmlH1Node.class/instance/startStyles..st | 4 ++++ .../HtmlH1Node.class/methodProperties.json | 3 ++- .../HtmlH2Node.class/instance/addToFormatter..st | 5 ----- .../HtmlH2Node.class/instance/endStyles..st | 4 ++++ .../HtmlH2Node.class/instance/startStyles..st | 4 ++++ .../HtmlH2Node.class/methodProperties.json | 3 ++- .../HtmlH3Node.class/instance/addToFormatter..st | 5 ----- .../HtmlH3Node.class/instance/endStyles..st | 4 ++++ .../HtmlH3Node.class/instance/startStyles..st | 4 ++++ .../HtmlH3Node.class/methodProperties.json | 3 ++- .../HtmlH4Node.class/instance/addToFormatter..st | 5 ----- .../HtmlH4Node.class/instance/endStyles..st | 4 ++++ .../HtmlH4Node.class/instance/startStyles..st | 4 ++++ .../HtmlH4Node.class/methodProperties.json | 3 ++- .../HtmlH5Node.class/instance/addToFormatter..st | 5 ----- .../HtmlH5Node.class/instance/endStyles..st | 4 ++++ .../HtmlH5Node.class/instance/startStyles..st | 4 ++++ .../HtmlH5Node.class/methodProperties.json | 3 ++- .../HtmlH6Node.class/instance/addToFormatter..st | 5 ----- .../HtmlH6Node.class/instance/endStyles..st | 4 ++++ .../HtmlH6Node.class/instance/startStyles..st | 4 ++++ .../HtmlH6Node.class/methodProperties.json | 3 ++- .../HtmlLINode.class/instance/addToFormatter..st | 5 ----- .../HtmlLINode.class/instance/endStyles..st | 3 +++ .../HtmlLINode.class/instance/startStyles..st | 3 +++ .../HtmlLINode.class/methodProperties.json | 3 ++- .../HtmlOLNode.class/instance/addToFormatter..st | 5 ----- .../HtmlOLNode.class/instance/endStyles..st | 3 +++ .../HtmlOLNode.class/instance/startStyles..st | 3 +++ .../HtmlOLNode.class/methodProperties.json | 3 ++- .../HtmlPNode.class/instance/addToFormatter..st | 4 ---- .../HtmlPNode.class/instance/startStyles..st | 3 +++ .../HtmlPNode.class/methodProperties.json | 2 +- .../HtmlPRENode.class/instance/addToFormatter..st | 7 ------- .../HtmlPRENode.class/instance/endStyles..st | 4 ++++ .../HtmlPRENode.class/instance/startStyles..st | 4 ++++ .../HtmlPRENode.class/methodProperties.json | 3 ++- .../HtmlParseNode.class/methodProperties.json | 2 +- .../HtmlTABLENode.class/instance/addToFormatter..st | 5 ----- .../HtmlTABLENode.class/instance/endStyles..st | 3 +++ .../HtmlTABLENode.class/instance/startStyles..st | 3 +++ .../HtmlTABLENode.class/methodProperties.json | 3 ++- .../HtmlTDNode.class/instance/addToFormatter..st | 4 ---- .../HtmlTDNode.class/instance/endStyles..st | 3 +++ .../HtmlTDNode.class/methodProperties.json | 2 +- .../HtmlTRNode.class/instance/addToFormatter..st | 4 ---- .../HtmlTRNode.class/instance/endStyles..st | 3 +++ .../HtmlTRNode.class/methodProperties.json | 2 +- .../HtmlULNode.class/instance/addToFormatter..st | 5 ----- .../HtmlULNode.class/instance/endStyles..st | 3 +++ .../HtmlULNode.class/instance/startStyles..st | 3 +++ .../HtmlULNode.class/methodProperties.json | 3 ++- packages/HTML.package/monticello.meta/version | 2 +- .../HTML-rs.62_490d92c9-c11c-4246-9fdd-18681b5bd6d8 | 1 + .../Scamper.class/instance/displayTextHtmlPage..st | 1 + .../Scamper.class/methodProperties.json | 2 +- packages/Scamper-Core.package/monticello.meta/version | 2 +- ...er-Core-rs.25_45ccc723-fce1-42dc-a27a-ad63054640a0 | 1 + 92 files changed, 212 insertions(+), 131 deletions(-) create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/endStyles.st create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlDDNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlDDNode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlDDNode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlDLNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlDLNode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlDOMNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlDOMNode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlDOMNode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlDTNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlDTNode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlFORMNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlFORMNode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlFORMNode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlH1Node.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlH1Node.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlH1Node.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlH2Node.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlH2Node.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlH2Node.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlH3Node.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlH3Node.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlH3Node.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlH4Node.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlH4Node.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlH4Node.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlH5Node.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlH5Node.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlH5Node.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlH6Node.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlH6Node.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlH6Node.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlLINode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlLINode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlLINode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlOLNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlOLNode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlOLNode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlPNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlPNode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlPRENode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlPRENode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlPRENode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlTABLENode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlTABLENode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlTABLENode.class/instance/startStyles..st delete mode 100644 packages/HTML.package/HtmlTDNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlTDNode.class/instance/endStyles..st delete mode 100644 packages/HTML.package/HtmlTRNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlTRNode.class/instance/endStyles..st delete mode 100644 packages/HTML.package/HtmlULNode.class/instance/addToFormatter..st create mode 100644 packages/HTML.package/HtmlULNode.class/instance/endStyles..st create mode 100644 packages/HTML.package/HtmlULNode.class/instance/startStyles..st create mode 100644 packages/HTML.package/monticello.meta/version.d/HTML-rs.62_490d92c9-c11c-4246-9fdd-18681b5bd6d8 create mode 100644 packages/Scamper-Core.package/monticello.meta/version.d/Scamper-Core-rs.25_45ccc723-fce1-42dc-a27a-ad63054640a0 diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/endHeader..st b/packages/HTML.package/DHtmlFormatter.class/instance/endHeader..st index 800122af..6004ab69 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/endHeader..st +++ b/packages/HTML.package/DHtmlFormatter.class/instance/endHeader..st @@ -1,5 +1,3 @@ formatting commands endHeader: level - boldLevel := boldLevel - 1. "self decreaseBold" - self ensureNewlines: 2. - self endFont: nil. \ No newline at end of file + self ensureNewlines: 2 \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/endStyles.st b/packages/HTML.package/DHtmlFormatter.class/instance/endStyles.st new file mode 100644 index 00000000..b9780d96 --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/endStyles.st @@ -0,0 +1,3 @@ +formatting commands +endStyles + self endFont: nil \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/headerFont..st b/packages/HTML.package/DHtmlFormatter.class/instance/headerFont..st index f5ed9ebf..9b8bbbf9 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/headerFont..st +++ b/packages/HTML.package/DHtmlFormatter.class/instance/headerFont..st @@ -1,3 +1,3 @@ formatting commands headerFont: level - ^{TextFontChange fontNumber: ((5 - level) max: 1)} \ No newline at end of file + ^TextFontChange fontNumber: ((5 - level) max: 1) \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st b/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st new file mode 100644 index 00000000..8d9e0678 --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st @@ -0,0 +1,10 @@ +formatting commands +parseTextAttributes: styles + | attribs | + attribs := OrderedCollection new. + styles do: [ :style | + style properties do: [ :prop | + (prop propertyName = 'font-style' + and: [ prop propertyString = 'italic']) + ifTrue: [ attribs add: TextEmphasis italic ] ] ]. + ^ attribs \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/startFont..st b/packages/HTML.package/DHtmlFormatter.class/instance/startFont..st index 2fd0620e..aade0467 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/startFont..st +++ b/packages/HTML.package/DHtmlFormatter.class/instance/startFont..st @@ -2,5 +2,8 @@ formatting commands startFont: aTextAttribList "aTextAttribList is a collection of TextAttributes" fontSpecs ifNil: [fontSpecs := OrderedCollection new]. - fontSpecs add: aTextAttribList. + fontSpecs add: + (aTextAttribList isArray + ifTrue: [ OrderedCollection newFrom: aTextAttribList ] + ifFalse: [ aTextAttribList ]). self setAttributes \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/startHeader..st b/packages/HTML.package/DHtmlFormatter.class/instance/startHeader..st index 0ae15367..57fea79e 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/startHeader..st +++ b/packages/HTML.package/DHtmlFormatter.class/instance/startHeader..st @@ -1,5 +1,8 @@ formatting commands startHeader: level + | attribs | self ensureNewlines: 3. - boldLevel := boldLevel + 1. "self increaseBold" - self startFont: (self headerFont: level). \ No newline at end of file + attribs := fontSpecs last. + attribs add: (self headerFont: level); + add: TextEmphasis bold. + self setAttributes \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/startStyles..st b/packages/HTML.package/DHtmlFormatter.class/instance/startStyles..st new file mode 100644 index 00000000..e70bff5c --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/startStyles..st @@ -0,0 +1,6 @@ +formatting commands +startStyles: styles + | textAttributes | + textAttributes := self parseTextAttributes: styles. + self startFont: textAttributes. + self setAttributes \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/methodProperties.json b/packages/HTML.package/DHtmlFormatter.class/methodProperties.json index 9f75a6ed..5ed91b4b 100644 --- a/packages/HTML.package/DHtmlFormatter.class/methodProperties.json +++ b/packages/HTML.package/DHtmlFormatter.class/methodProperties.json @@ -4,11 +4,14 @@ "instance" : { "decreaseFontBy:" : "bolot 5/18/2000 11:55", "endFont:" : "bolot 5/18/2000 11:23", - "endHeader:" : "LaurentLaffont 2/26/2010 23:13", - "headerFont:" : "bolot 5/18/2000 12:00", + "endHeader:" : "rs 5/18/2014 14:16:30.63", + "endStyles" : "rs 5/18/2014 14:00:49.41", + "headerFont:" : "rs 5/18/2014 14:15:07.55", "increaseFontBy:" : "bolot 5/18/2000 11:50", "lastFontSize" : "LaurentLaffont 2/26/2010 23:13", + "parseTextAttributes:" : "rs 5/18/2014 13:40:29.526", "resetFont" : "bolot 5/18/2000 11:57", "setAttributes" : "LaurentLaffont 2/26/2010 23:13", - "startFont:" : "LaurentLaffont 2/26/2010 23:13", - "startHeader:" : "LaurentLaffont 2/26/2010 23:13" } } + "startFont:" : "rs 5/18/2014 13:53:54.124", + "startHeader:" : "rs 5/18/2014 14:14:54.344", + "startStyles:" : "rs 5/18/2014 14:01:58.816" } } diff --git a/packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/addToFormatter..st deleted file mode 100644 index e88f3da9..00000000 --- a/packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/addToFormatter..st +++ /dev/null @@ -1,7 +0,0 @@ -as yet unclassified -addToFormatter: formatter - formatter ensureNewlines: 2. - formatter increaseIndent. - super addToFormatter: formatter. - formatter decreaseIndent. - formatter ensureNewlines: 2. \ No newline at end of file diff --git a/packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/endStyles..st b/packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/endStyles..st new file mode 100644 index 00000000..e5957b84 --- /dev/null +++ b/packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/endStyles..st @@ -0,0 +1,4 @@ +as yet unclassified +endStyles: aFormatter + aFormatter decreaseIndent. + aFormatter ensureNewlines: 2 \ No newline at end of file diff --git a/packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/startStyles..st b/packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/startStyles..st new file mode 100644 index 00000000..604c7fd7 --- /dev/null +++ b/packages/HTML.package/HtmlBLOCKQUOTENode.class/instance/startStyles..st @@ -0,0 +1,4 @@ +as yet unclassified +startStyles: aFormatter + aFormatter ensureNewlines: 2. + aFormatter increaseIndent \ No newline at end of file diff --git a/packages/HTML.package/HtmlBLOCKQUOTENode.class/methodProperties.json b/packages/HTML.package/HtmlBLOCKQUOTENode.class/methodProperties.json index 786b836b..97600574 100644 --- a/packages/HTML.package/HtmlBLOCKQUOTENode.class/methodProperties.json +++ b/packages/HTML.package/HtmlBLOCKQUOTENode.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 13:33", + "endStyles:" : "rs 5/18/2014 14:49:05.49", + "startStyles:" : "rs 5/18/2014 14:48:47.252", "tag" : "" } } diff --git a/packages/HTML.package/HtmlDDNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlDDNode.class/instance/addToFormatter..st deleted file mode 100644 index 159aa13d..00000000 --- a/packages/HTML.package/HtmlDDNode.class/instance/addToFormatter..st +++ /dev/null @@ -1,6 +0,0 @@ -as yet unclassified -addToFormatter: formatter - formatter ensureNewlines: 1. - formatter increaseIndent. - super addToFormatter: formatter. - formatter decreaseIndent. \ No newline at end of file diff --git a/packages/HTML.package/HtmlDDNode.class/instance/endStyles..st b/packages/HTML.package/HtmlDDNode.class/instance/endStyles..st new file mode 100644 index 00000000..50a0e4d8 --- /dev/null +++ b/packages/HTML.package/HtmlDDNode.class/instance/endStyles..st @@ -0,0 +1,3 @@ +as yet unclassified +endStyles: aFormatter + aFormatter decreaseIndent. \ No newline at end of file diff --git a/packages/HTML.package/HtmlDDNode.class/instance/startStyles..st b/packages/HTML.package/HtmlDDNode.class/instance/startStyles..st new file mode 100644 index 00000000..5a44a1c0 --- /dev/null +++ b/packages/HTML.package/HtmlDDNode.class/instance/startStyles..st @@ -0,0 +1,4 @@ +as yet unclassified +startStyles: aFormatter + aFormatter ensureNewlines: 1. + aFormatter increaseIndent \ No newline at end of file diff --git a/packages/HTML.package/HtmlDDNode.class/methodProperties.json b/packages/HTML.package/HtmlDDNode.class/methodProperties.json index a3afae1a..38335131 100644 --- a/packages/HTML.package/HtmlDDNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlDDNode.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 13:34", + "endStyles:" : "rs 5/18/2014 14:50:58.516", + "startStyles:" : "rs 5/18/2014 14:50:46.004", "tag" : "" } } diff --git a/packages/HTML.package/HtmlDLNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlDLNode.class/instance/addToFormatter..st deleted file mode 100644 index db21fecb..00000000 --- a/packages/HTML.package/HtmlDLNode.class/instance/addToFormatter..st +++ /dev/null @@ -1,4 +0,0 @@ -as yet unclassified -addToFormatter: formatter - super addToFormatter: formatter. - formatter ensureNewlines: 1. \ No newline at end of file diff --git a/packages/HTML.package/HtmlDLNode.class/instance/endStyles..st b/packages/HTML.package/HtmlDLNode.class/instance/endStyles..st new file mode 100644 index 00000000..9951a47d --- /dev/null +++ b/packages/HTML.package/HtmlDLNode.class/instance/endStyles..st @@ -0,0 +1,3 @@ +as yet unclassified +endStyles: aFormatter + aFormatter ensureNewlines: 1. \ No newline at end of file diff --git a/packages/HTML.package/HtmlDLNode.class/methodProperties.json b/packages/HTML.package/HtmlDLNode.class/methodProperties.json index a3afae1a..8f06f014 100644 --- a/packages/HTML.package/HtmlDLNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlDLNode.class/methodProperties.json @@ -2,5 +2,5 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 13:34", + "endStyles:" : "rs 5/18/2014 14:51:30.776", "tag" : "" } } diff --git a/packages/HTML.package/HtmlDOMNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlDOMNode.class/instance/addToFormatter..st new file mode 100644 index 00000000..4851202c --- /dev/null +++ b/packages/HTML.package/HtmlDOMNode.class/instance/addToFormatter..st @@ -0,0 +1,7 @@ +as yet unclassified +addToFormatter: aFormatter + aFormatter startStyles: self styles. + self startStyles: aFormatter. + self children do: [:e | e addToFormatter: aFormatter ]. + self endStyles: aFormatter. + aFormatter endStyles \ No newline at end of file diff --git a/packages/HTML.package/HtmlDOMNode.class/instance/endStyles..st b/packages/HTML.package/HtmlDOMNode.class/instance/endStyles..st new file mode 100644 index 00000000..d67b3aad --- /dev/null +++ b/packages/HTML.package/HtmlDOMNode.class/instance/endStyles..st @@ -0,0 +1,3 @@ +as yet unclassified +endStyles: aFormatter + "Do nothing" \ No newline at end of file diff --git a/packages/HTML.package/HtmlDOMNode.class/instance/startStyles..st b/packages/HTML.package/HtmlDOMNode.class/instance/startStyles..st new file mode 100644 index 00000000..47823189 --- /dev/null +++ b/packages/HTML.package/HtmlDOMNode.class/instance/startStyles..st @@ -0,0 +1,3 @@ +accessing +startStyles: aFormatter + "Do nothing" \ No newline at end of file diff --git a/packages/HTML.package/HtmlDOMNode.class/methodProperties.json b/packages/HTML.package/HtmlDOMNode.class/methodProperties.json index a181900a..a96d05ce 100644 --- a/packages/HTML.package/HtmlDOMNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlDOMNode.class/methodProperties.json @@ -5,6 +5,7 @@ "tagContents:" : "SebastianSastre 1/15/2012 16:41" }, "instance" : { "addStyle:" : "j.c 6/14/2007 12:24", + "addToFormatter:" : "rs 5/18/2014 15:33:20.542", "attributes" : "tb 11/30/2005 12:26", "attributes:" : "tb 7/12/2007 11:04", "childDTDTags" : "tb 12/1/2005 09:11", @@ -17,6 +18,7 @@ "dtd" : "tb 12/2/2005 09:43", "dtd:" : "tb 12/1/2005 10:39", "dtdTag" : "tb 12/5/2005 12:07", + "endStyles:" : "rs 5/18/2014 15:33:59.432", "endTagMissing" : "tb 12/5/2005 12:02", "endTagMissing:" : "sebastian.sastre 9/20/2010 11:53", "hasTrailingSlash" : "tb 1/3/2006 17:29", @@ -36,6 +38,7 @@ "parseContents:" : "SebastianSastre 1/15/2012 16:40", "rawTag" : "tb 12/2/2005 20:33", "recoverFromLTIn:stream:" : "tb 12/10/2005 21:41", + "startStyles:" : "rs 5/18/2014 15:33:41.852", "styles" : "tb 12/30/2005 20:08", "styles:" : "tb 12/30/2005 20:08", "tag" : "tb 12/2/2005 10:47", diff --git a/packages/HTML.package/HtmlDTNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlDTNode.class/instance/addToFormatter..st deleted file mode 100644 index 6cd6b2b9..00000000 --- a/packages/HTML.package/HtmlDTNode.class/instance/addToFormatter..st +++ /dev/null @@ -1,4 +0,0 @@ -as yet unclassified -addToFormatter: formatter - formatter ensureNewlines: 1. - super addToFormatter: formatter. \ No newline at end of file diff --git a/packages/HTML.package/HtmlDTNode.class/instance/startStyles..st b/packages/HTML.package/HtmlDTNode.class/instance/startStyles..st new file mode 100644 index 00000000..b998bb98 --- /dev/null +++ b/packages/HTML.package/HtmlDTNode.class/instance/startStyles..st @@ -0,0 +1,3 @@ +as yet unclassified +startStyles: aFormatter + aFormatter ensureNewlines: 1 \ No newline at end of file diff --git a/packages/HTML.package/HtmlDTNode.class/methodProperties.json b/packages/HTML.package/HtmlDTNode.class/methodProperties.json index a3afae1a..56a609cb 100644 --- a/packages/HTML.package/HtmlDTNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlDTNode.class/methodProperties.json @@ -2,5 +2,5 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 13:34", + "startStyles:" : "rs 5/18/2014 14:51:53.01", "tag" : "" } } diff --git a/packages/HTML.package/HtmlDocument.class/README.md b/packages/HTML.package/HtmlDocument.class/README.md index e69de29b..d0e55f56 100644 --- a/packages/HTML.package/HtmlDocument.class/README.md +++ b/packages/HTML.package/HtmlDocument.class/README.md @@ -0,0 +1 @@ +an entire HTML document. It should have exactly two sub-entities when completed: a HEAD and a BODY \ No newline at end of file diff --git a/packages/HTML.package/HtmlDocument.class/properties.json b/packages/HTML.package/HtmlDocument.class/properties.json index 696d0352..7d097377 100644 --- a/packages/HTML.package/HtmlDocument.class/properties.json +++ b/packages/HTML.package/HtmlDocument.class/properties.json @@ -4,7 +4,7 @@ ], "classvars" : [ ], - "commentStamp" : "", + "commentStamp" : "", "instvars" : [ "docType", "content", diff --git a/packages/HTML.package/HtmlFORMNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlFORMNode.class/instance/addToFormatter..st deleted file mode 100644 index 8ca495ad..00000000 --- a/packages/HTML.package/HtmlFORMNode.class/instance/addToFormatter..st +++ /dev/null @@ -1,6 +0,0 @@ -as yet unclassified -addToFormatter: formatter - formatter startForm: self. - super addToFormatter: formatter. - formatter currentFormData reset. - formatter endForm. \ No newline at end of file diff --git a/packages/HTML.package/HtmlFORMNode.class/instance/endStyles..st b/packages/HTML.package/HtmlFORMNode.class/instance/endStyles..st new file mode 100644 index 00000000..1d5d0eb7 --- /dev/null +++ b/packages/HTML.package/HtmlFORMNode.class/instance/endStyles..st @@ -0,0 +1,4 @@ +as yet unclassified +endStyles: aFormatter + aFormatter currentFormData reset. + aFormatter endForm \ No newline at end of file diff --git a/packages/HTML.package/HtmlFORMNode.class/instance/startStyles..st b/packages/HTML.package/HtmlFORMNode.class/instance/startStyles..st new file mode 100644 index 00000000..0ac18f98 --- /dev/null +++ b/packages/HTML.package/HtmlFORMNode.class/instance/startStyles..st @@ -0,0 +1,3 @@ +as yet unclassified +startStyles: aFormatter + aFormatter startForm: self \ No newline at end of file diff --git a/packages/HTML.package/HtmlFORMNode.class/methodProperties.json b/packages/HTML.package/HtmlFORMNode.class/methodProperties.json index 3ff754bf..0f660ed4 100644 --- a/packages/HTML.package/HtmlFORMNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlFORMNode.class/methodProperties.json @@ -2,8 +2,9 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 14:30", "encoding" : "pf 5/18/2014 14:31", + "endStyles:" : "rs 5/18/2014 15:24:37.044", "method" : "pf 5/18/2014 14:31", + "startStyles:" : "rs 5/18/2014 15:24:15.682", "tag" : "", "url" : "pf 5/18/2014 14:30" } } diff --git a/packages/HTML.package/HtmlH1Node.class/instance/addToFormatter..st b/packages/HTML.package/HtmlH1Node.class/instance/addToFormatter..st deleted file mode 100644 index a89dd686..00000000 --- a/packages/HTML.package/HtmlH1Node.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -as yet unclassified -addToFormatter: aFormatter - aFormatter startHeader: 1. - super addToFormatter: aFormatter. - aFormatter endHeader: 1. \ No newline at end of file diff --git a/packages/HTML.package/HtmlH1Node.class/instance/endStyles..st b/packages/HTML.package/HtmlH1Node.class/instance/endStyles..st new file mode 100644 index 00000000..e9adaffb --- /dev/null +++ b/packages/HTML.package/HtmlH1Node.class/instance/endStyles..st @@ -0,0 +1,4 @@ +accessing +endStyles: aFormatter + + aFormatter endHeader: 1 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH1Node.class/instance/startStyles..st b/packages/HTML.package/HtmlH1Node.class/instance/startStyles..st new file mode 100644 index 00000000..11e5a90f --- /dev/null +++ b/packages/HTML.package/HtmlH1Node.class/instance/startStyles..st @@ -0,0 +1,4 @@ +accessing +startStyles: aFormatter + + aFormatter startHeader: 1 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH1Node.class/methodProperties.json b/packages/HTML.package/HtmlH1Node.class/methodProperties.json index db9dbbf3..755e885c 100644 --- a/packages/HTML.package/HtmlH1Node.class/methodProperties.json +++ b/packages/HTML.package/HtmlH1Node.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 12:23", + "endStyles:" : "rs 5/18/2014 14:40:19.562", + "startStyles:" : "rs 5/18/2014 14:39:26.672", "tag" : "" } } diff --git a/packages/HTML.package/HtmlH2Node.class/instance/addToFormatter..st b/packages/HTML.package/HtmlH2Node.class/instance/addToFormatter..st deleted file mode 100644 index 2ff8a4af..00000000 --- a/packages/HTML.package/HtmlH2Node.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -accessing -addToFormatter: aFormatter - aFormatter startHeader: 2. - super addToFormatter: aFormatter. - aFormatter endHeader: 2. \ No newline at end of file diff --git a/packages/HTML.package/HtmlH2Node.class/instance/endStyles..st b/packages/HTML.package/HtmlH2Node.class/instance/endStyles..st new file mode 100644 index 00000000..fb0617d0 --- /dev/null +++ b/packages/HTML.package/HtmlH2Node.class/instance/endStyles..st @@ -0,0 +1,4 @@ +accessing +endStyles: aFormatter + + aFormatter endHeader: 2 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH2Node.class/instance/startStyles..st b/packages/HTML.package/HtmlH2Node.class/instance/startStyles..st new file mode 100644 index 00000000..26f7db40 --- /dev/null +++ b/packages/HTML.package/HtmlH2Node.class/instance/startStyles..st @@ -0,0 +1,4 @@ +accessing +startStyles: aFormatter + + aFormatter startHeader: 2 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH2Node.class/methodProperties.json b/packages/HTML.package/HtmlH2Node.class/methodProperties.json index 89a6a6c8..d0b92b66 100644 --- a/packages/HTML.package/HtmlH2Node.class/methodProperties.json +++ b/packages/HTML.package/HtmlH2Node.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 12:24", + "endStyles:" : "rs 5/18/2014 14:41:32.796", + "startStyles:" : "rs 5/18/2014 14:40:59.524", "tag" : "" } } diff --git a/packages/HTML.package/HtmlH3Node.class/instance/addToFormatter..st b/packages/HTML.package/HtmlH3Node.class/instance/addToFormatter..st deleted file mode 100644 index 6c5378b0..00000000 --- a/packages/HTML.package/HtmlH3Node.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -as yet unclassified -addToFormatter: aFormatter - aFormatter startHeader: 3. - super addToFormatter: aFormatter. - aFormatter endHeader: 3. \ No newline at end of file diff --git a/packages/HTML.package/HtmlH3Node.class/instance/endStyles..st b/packages/HTML.package/HtmlH3Node.class/instance/endStyles..st new file mode 100644 index 00000000..4e18b710 --- /dev/null +++ b/packages/HTML.package/HtmlH3Node.class/instance/endStyles..st @@ -0,0 +1,4 @@ +accessing +endStyles: aFormatter + + aFormatter endHeader: 3 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH3Node.class/instance/startStyles..st b/packages/HTML.package/HtmlH3Node.class/instance/startStyles..st new file mode 100644 index 00000000..ef48204d --- /dev/null +++ b/packages/HTML.package/HtmlH3Node.class/instance/startStyles..st @@ -0,0 +1,4 @@ +accessing +startStyles: aFormatter + + aFormatter startHeader: 3 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH3Node.class/methodProperties.json b/packages/HTML.package/HtmlH3Node.class/methodProperties.json index 89a6a6c8..c2838600 100644 --- a/packages/HTML.package/HtmlH3Node.class/methodProperties.json +++ b/packages/HTML.package/HtmlH3Node.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 12:24", + "endStyles:" : "rs 5/18/2014 14:41:36.486", + "startStyles:" : "rs 5/18/2014 14:41:07.23", "tag" : "" } } diff --git a/packages/HTML.package/HtmlH4Node.class/instance/addToFormatter..st b/packages/HTML.package/HtmlH4Node.class/instance/addToFormatter..st deleted file mode 100644 index 0cbf3d3d..00000000 --- a/packages/HTML.package/HtmlH4Node.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -as yet unclassified -addToFormatter: aFormatter - aFormatter startHeader: 4. - super addToFormatter: aFormatter. - aFormatter endHeader: 4. \ No newline at end of file diff --git a/packages/HTML.package/HtmlH4Node.class/instance/endStyles..st b/packages/HTML.package/HtmlH4Node.class/instance/endStyles..st new file mode 100644 index 00000000..77505636 --- /dev/null +++ b/packages/HTML.package/HtmlH4Node.class/instance/endStyles..st @@ -0,0 +1,4 @@ +accessing +endStyles: aFormatter + + aFormatter endHeader: 4 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH4Node.class/instance/startStyles..st b/packages/HTML.package/HtmlH4Node.class/instance/startStyles..st new file mode 100644 index 00000000..63b09526 --- /dev/null +++ b/packages/HTML.package/HtmlH4Node.class/instance/startStyles..st @@ -0,0 +1,4 @@ +accessing +startStyles: aFormatter + + aFormatter startHeader: 4 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH4Node.class/methodProperties.json b/packages/HTML.package/HtmlH4Node.class/methodProperties.json index 89a6a6c8..48fca0e6 100644 --- a/packages/HTML.package/HtmlH4Node.class/methodProperties.json +++ b/packages/HTML.package/HtmlH4Node.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 12:24", + "endStyles:" : "rs 5/18/2014 14:41:39.854", + "startStyles:" : "rs 5/18/2014 14:41:12.152", "tag" : "" } } diff --git a/packages/HTML.package/HtmlH5Node.class/instance/addToFormatter..st b/packages/HTML.package/HtmlH5Node.class/instance/addToFormatter..st deleted file mode 100644 index 6a7c3121..00000000 --- a/packages/HTML.package/HtmlH5Node.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -as yet unclassified -addToFormatter: aFormatter - aFormatter startHeader: 5. - super addToFormatter: aFormatter. - aFormatter endHeader: 5. \ No newline at end of file diff --git a/packages/HTML.package/HtmlH5Node.class/instance/endStyles..st b/packages/HTML.package/HtmlH5Node.class/instance/endStyles..st new file mode 100644 index 00000000..0c6197f9 --- /dev/null +++ b/packages/HTML.package/HtmlH5Node.class/instance/endStyles..st @@ -0,0 +1,4 @@ +accessing +endStyles: aFormatter + + aFormatter endHeader: 5 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH5Node.class/instance/startStyles..st b/packages/HTML.package/HtmlH5Node.class/instance/startStyles..st new file mode 100644 index 00000000..29199ef6 --- /dev/null +++ b/packages/HTML.package/HtmlH5Node.class/instance/startStyles..st @@ -0,0 +1,4 @@ +accessing +startStyles: aFormatter + + aFormatter startHeader: 5 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH5Node.class/methodProperties.json b/packages/HTML.package/HtmlH5Node.class/methodProperties.json index 89a6a6c8..790cc178 100644 --- a/packages/HTML.package/HtmlH5Node.class/methodProperties.json +++ b/packages/HTML.package/HtmlH5Node.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 12:24", + "endStyles:" : "rs 5/18/2014 14:41:43.39", + "startStyles:" : "rs 5/18/2014 14:41:18.362", "tag" : "" } } diff --git a/packages/HTML.package/HtmlH6Node.class/instance/addToFormatter..st b/packages/HTML.package/HtmlH6Node.class/instance/addToFormatter..st deleted file mode 100644 index 490df1d0..00000000 --- a/packages/HTML.package/HtmlH6Node.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -as yet unclassified -addToFormatter: aFormatter - aFormatter startHeader: 6. - super addToFormatter: aFormatter. - aFormatter endHeader: 6. \ No newline at end of file diff --git a/packages/HTML.package/HtmlH6Node.class/instance/endStyles..st b/packages/HTML.package/HtmlH6Node.class/instance/endStyles..st new file mode 100644 index 00000000..58ee9a01 --- /dev/null +++ b/packages/HTML.package/HtmlH6Node.class/instance/endStyles..st @@ -0,0 +1,4 @@ +accessing +endStyles: aFormatter + + aFormatter endHeader: 6 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH6Node.class/instance/startStyles..st b/packages/HTML.package/HtmlH6Node.class/instance/startStyles..st new file mode 100644 index 00000000..3b72828d --- /dev/null +++ b/packages/HTML.package/HtmlH6Node.class/instance/startStyles..st @@ -0,0 +1,4 @@ +accessing +startStyles: aFormatter + + aFormatter startHeader: 6 \ No newline at end of file diff --git a/packages/HTML.package/HtmlH6Node.class/methodProperties.json b/packages/HTML.package/HtmlH6Node.class/methodProperties.json index 89a6a6c8..4aacbc86 100644 --- a/packages/HTML.package/HtmlH6Node.class/methodProperties.json +++ b/packages/HTML.package/HtmlH6Node.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 12:24", + "endStyles:" : "rs 5/18/2014 14:41:47.064", + "startStyles:" : "rs 5/18/2014 14:41:23.012", "tag" : "" } } diff --git a/packages/HTML.package/HtmlLINode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlLINode.class/instance/addToFormatter..st deleted file mode 100644 index 99de2a3e..00000000 --- a/packages/HTML.package/HtmlLINode.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -accessing -addToFormatter: formatter - formatter startListItem. - super addToFormatter: formatter. - formatter endListItem. \ No newline at end of file diff --git a/packages/HTML.package/HtmlLINode.class/instance/endStyles..st b/packages/HTML.package/HtmlLINode.class/instance/endStyles..st new file mode 100644 index 00000000..287e737c --- /dev/null +++ b/packages/HTML.package/HtmlLINode.class/instance/endStyles..st @@ -0,0 +1,3 @@ +accessing +endStyles: aFormatter + aFormatter endListItem. \ No newline at end of file diff --git a/packages/HTML.package/HtmlLINode.class/instance/startStyles..st b/packages/HTML.package/HtmlLINode.class/instance/startStyles..st new file mode 100644 index 00000000..49cebbdb --- /dev/null +++ b/packages/HTML.package/HtmlLINode.class/instance/startStyles..st @@ -0,0 +1,3 @@ +accessing +startStyles: aFormatter + aFormatter startListItem \ No newline at end of file diff --git a/packages/HTML.package/HtmlLINode.class/methodProperties.json b/packages/HTML.package/HtmlLINode.class/methodProperties.json index 08f740e8..c3e85119 100644 --- a/packages/HTML.package/HtmlLINode.class/methodProperties.json +++ b/packages/HTML.package/HtmlLINode.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 12:58", + "endStyles:" : "rs 5/18/2014 14:53:44.932", + "startStyles:" : "rs 5/18/2014 14:53:32.876", "tag" : "" } } diff --git a/packages/HTML.package/HtmlOLNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlOLNode.class/instance/addToFormatter..st deleted file mode 100644 index 879757bc..00000000 --- a/packages/HTML.package/HtmlOLNode.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -accessing -addToFormatter: formatter - formatter startOrderedList. - super addToFormatter: formatter. - formatter endOrderedList. \ No newline at end of file diff --git a/packages/HTML.package/HtmlOLNode.class/instance/endStyles..st b/packages/HTML.package/HtmlOLNode.class/instance/endStyles..st new file mode 100644 index 00000000..7d47f5c4 --- /dev/null +++ b/packages/HTML.package/HtmlOLNode.class/instance/endStyles..st @@ -0,0 +1,3 @@ +accessing +endStyles: aFormatter + aFormatter endOrderedList. \ No newline at end of file diff --git a/packages/HTML.package/HtmlOLNode.class/instance/startStyles..st b/packages/HTML.package/HtmlOLNode.class/instance/startStyles..st new file mode 100644 index 00000000..590e9ee6 --- /dev/null +++ b/packages/HTML.package/HtmlOLNode.class/instance/startStyles..st @@ -0,0 +1,3 @@ +accessing +startStyles: aFormatter + aFormatter startOrderedList \ No newline at end of file diff --git a/packages/HTML.package/HtmlOLNode.class/methodProperties.json b/packages/HTML.package/HtmlOLNode.class/methodProperties.json index 4d290783..8251389a 100644 --- a/packages/HTML.package/HtmlOLNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlOLNode.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 12:56", + "endStyles:" : "rs 5/18/2014 14:54:30.58", + "startStyles:" : "rs 5/18/2014 14:54:13.638", "tag" : "" } } diff --git a/packages/HTML.package/HtmlPNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlPNode.class/instance/addToFormatter..st deleted file mode 100644 index ca81dc32..00000000 --- a/packages/HTML.package/HtmlPNode.class/instance/addToFormatter..st +++ /dev/null @@ -1,4 +0,0 @@ -as yet unclassified -addToFormatter: formatter - formatter ensureNewlines: 2. - super addToFormatter: formatter. \ No newline at end of file diff --git a/packages/HTML.package/HtmlPNode.class/instance/startStyles..st b/packages/HTML.package/HtmlPNode.class/instance/startStyles..st new file mode 100644 index 00000000..78bd239e --- /dev/null +++ b/packages/HTML.package/HtmlPNode.class/instance/startStyles..st @@ -0,0 +1,3 @@ +as yet unclassified +startStyles: aFormatter + aFormatter ensureNewlines: 2 \ No newline at end of file diff --git a/packages/HTML.package/HtmlPNode.class/methodProperties.json b/packages/HTML.package/HtmlPNode.class/methodProperties.json index d0963112..ca35546f 100644 --- a/packages/HTML.package/HtmlPNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlPNode.class/methodProperties.json @@ -2,5 +2,5 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 13:43", + "startStyles:" : "rs 5/18/2014 15:26:21.108", "tag" : "" } } diff --git a/packages/HTML.package/HtmlPRENode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlPRENode.class/instance/addToFormatter..st deleted file mode 100644 index fd2f04d7..00000000 --- a/packages/HTML.package/HtmlPRENode.class/instance/addToFormatter..st +++ /dev/null @@ -1,7 +0,0 @@ -as yet unclassified -addToFormatter: formatter - formatter ensureNewlines: 1. - formatter increasePreformatted. - super addToFormatter: formatter. - formatter decreasePreformatted. - formatter ensureNewlines: 1. \ No newline at end of file diff --git a/packages/HTML.package/HtmlPRENode.class/instance/endStyles..st b/packages/HTML.package/HtmlPRENode.class/instance/endStyles..st new file mode 100644 index 00000000..e1af85fa --- /dev/null +++ b/packages/HTML.package/HtmlPRENode.class/instance/endStyles..st @@ -0,0 +1,4 @@ +as yet unclassified +endStyles: formatter + formatter decreasePreformatted. + formatter ensureNewlines: 1 \ No newline at end of file diff --git a/packages/HTML.package/HtmlPRENode.class/instance/startStyles..st b/packages/HTML.package/HtmlPRENode.class/instance/startStyles..st new file mode 100644 index 00000000..256a435d --- /dev/null +++ b/packages/HTML.package/HtmlPRENode.class/instance/startStyles..st @@ -0,0 +1,4 @@ +as yet unclassified +startStyles: formatter + formatter ensureNewlines: 1. + formatter increasePreformatted \ No newline at end of file diff --git a/packages/HTML.package/HtmlPRENode.class/methodProperties.json b/packages/HTML.package/HtmlPRENode.class/methodProperties.json index d0963112..08863772 100644 --- a/packages/HTML.package/HtmlPRENode.class/methodProperties.json +++ b/packages/HTML.package/HtmlPRENode.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 13:43", + "endStyles:" : "rs 5/18/2014 15:27:12.668", + "startStyles:" : "rs 5/18/2014 15:26:54.702", "tag" : "" } } diff --git a/packages/HTML.package/HtmlParseNode.class/methodProperties.json b/packages/HTML.package/HtmlParseNode.class/methodProperties.json index 429e2de6..25403ce3 100644 --- a/packages/HTML.package/HtmlParseNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlParseNode.class/methodProperties.json @@ -4,7 +4,7 @@ "instance" : { "addChild:" : "tb 1/3/2006 16:47", "addError:" : "tb 1/3/2006 16:47", - "addToFormatter:" : "pf 5/18/2014 11:56", + "addToFormatter:" : "rs 5/18/2014 15:33:29.322", "allErrors" : "tb 1/3/2006 16:47", "allErrorsMatching:" : "tb 1/4/2006 10:46", "asString" : "tb 1/3/2006 17:36", diff --git a/packages/HTML.package/HtmlTABLENode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlTABLENode.class/instance/addToFormatter..st deleted file mode 100644 index 0bbed164..00000000 --- a/packages/HTML.package/HtmlTABLENode.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -as yet unclassified -addToFormatter: formatter - formatter ensureNewlines: 1. - super addToFormatter: formatter. - formatter ensureNewlines: 1. \ No newline at end of file diff --git a/packages/HTML.package/HtmlTABLENode.class/instance/endStyles..st b/packages/HTML.package/HtmlTABLENode.class/instance/endStyles..st new file mode 100644 index 00000000..5422b4a4 --- /dev/null +++ b/packages/HTML.package/HtmlTABLENode.class/instance/endStyles..st @@ -0,0 +1,3 @@ +as yet unclassified +endStyles: aFormatter + aFormatter ensureNewlines: 1 \ No newline at end of file diff --git a/packages/HTML.package/HtmlTABLENode.class/instance/startStyles..st b/packages/HTML.package/HtmlTABLENode.class/instance/startStyles..st new file mode 100644 index 00000000..b998bb98 --- /dev/null +++ b/packages/HTML.package/HtmlTABLENode.class/instance/startStyles..st @@ -0,0 +1,3 @@ +as yet unclassified +startStyles: aFormatter + aFormatter ensureNewlines: 1 \ No newline at end of file diff --git a/packages/HTML.package/HtmlTABLENode.class/methodProperties.json b/packages/HTML.package/HtmlTABLENode.class/methodProperties.json index b349b432..7eead23b 100644 --- a/packages/HTML.package/HtmlTABLENode.class/methodProperties.json +++ b/packages/HTML.package/HtmlTABLENode.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 13:44", + "endStyles:" : "rs 5/18/2014 14:55:25.474", + "startStyles:" : "rs 5/18/2014 14:55:12.512", "tag" : "" } } diff --git a/packages/HTML.package/HtmlTDNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlTDNode.class/instance/addToFormatter..st deleted file mode 100644 index eb96bb74..00000000 --- a/packages/HTML.package/HtmlTDNode.class/instance/addToFormatter..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -addToFormatter: formatter - super addToFormatter: formatter. - formatter ensureSpaces: 1. \ No newline at end of file diff --git a/packages/HTML.package/HtmlTDNode.class/instance/endStyles..st b/packages/HTML.package/HtmlTDNode.class/instance/endStyles..st new file mode 100644 index 00000000..bd175d31 --- /dev/null +++ b/packages/HTML.package/HtmlTDNode.class/instance/endStyles..st @@ -0,0 +1,3 @@ +accessing +endStyles: aFormatter + aFormatter ensureSpaces: 1 \ No newline at end of file diff --git a/packages/HTML.package/HtmlTDNode.class/methodProperties.json b/packages/HTML.package/HtmlTDNode.class/methodProperties.json index b349b432..1b1b9a84 100644 --- a/packages/HTML.package/HtmlTDNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlTDNode.class/methodProperties.json @@ -2,5 +2,5 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 13:44", + "endStyles:" : "rs 5/18/2014 14:55:51.054", "tag" : "" } } diff --git a/packages/HTML.package/HtmlTRNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlTRNode.class/instance/addToFormatter..st deleted file mode 100644 index 60b26f00..00000000 --- a/packages/HTML.package/HtmlTRNode.class/instance/addToFormatter..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -addToFormatter: formatter - super addToFormatter: formatter. - formatter ensureNewlines: 1. \ No newline at end of file diff --git a/packages/HTML.package/HtmlTRNode.class/instance/endStyles..st b/packages/HTML.package/HtmlTRNode.class/instance/endStyles..st new file mode 100644 index 00000000..7d92697c --- /dev/null +++ b/packages/HTML.package/HtmlTRNode.class/instance/endStyles..st @@ -0,0 +1,3 @@ +accessing +endStyles: aFormatter + aFormatter ensureNewlines: 1 \ No newline at end of file diff --git a/packages/HTML.package/HtmlTRNode.class/methodProperties.json b/packages/HTML.package/HtmlTRNode.class/methodProperties.json index b349b432..8d9639ab 100644 --- a/packages/HTML.package/HtmlTRNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlTRNode.class/methodProperties.json @@ -2,5 +2,5 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 13:44", + "endStyles:" : "rs 5/18/2014 14:57:15.828", "tag" : "" } } diff --git a/packages/HTML.package/HtmlULNode.class/instance/addToFormatter..st b/packages/HTML.package/HtmlULNode.class/instance/addToFormatter..st deleted file mode 100644 index 3d7773e0..00000000 --- a/packages/HTML.package/HtmlULNode.class/instance/addToFormatter..st +++ /dev/null @@ -1,5 +0,0 @@ -accessing -addToFormatter: formatter - formatter startUnorderedList. - super addToFormatter: formatter. - formatter endUnorderedList. \ No newline at end of file diff --git a/packages/HTML.package/HtmlULNode.class/instance/endStyles..st b/packages/HTML.package/HtmlULNode.class/instance/endStyles..st new file mode 100644 index 00000000..340bca05 --- /dev/null +++ b/packages/HTML.package/HtmlULNode.class/instance/endStyles..st @@ -0,0 +1,3 @@ +accessing +endStyles: aFormatter + aFormatter endUnorderedList \ No newline at end of file diff --git a/packages/HTML.package/HtmlULNode.class/instance/startStyles..st b/packages/HTML.package/HtmlULNode.class/instance/startStyles..st new file mode 100644 index 00000000..8ec487be --- /dev/null +++ b/packages/HTML.package/HtmlULNode.class/instance/startStyles..st @@ -0,0 +1,3 @@ +accessing +startStyles: aFormatter + aFormatter startUnorderedList \ No newline at end of file diff --git a/packages/HTML.package/HtmlULNode.class/methodProperties.json b/packages/HTML.package/HtmlULNode.class/methodProperties.json index 4d290783..dee31c86 100644 --- a/packages/HTML.package/HtmlULNode.class/methodProperties.json +++ b/packages/HTML.package/HtmlULNode.class/methodProperties.json @@ -2,5 +2,6 @@ "class" : { }, "instance" : { - "addToFormatter:" : "pf 5/18/2014 12:56", + "endStyles:" : "rs 5/18/2014 14:56:45.248", + "startStyles:" : "rs 5/18/2014 14:56:27.388", "tag" : "" } } diff --git a/packages/HTML.package/monticello.meta/version b/packages/HTML.package/monticello.meta/version index 39cb599a..34536751 100644 --- a/packages/HTML.package/monticello.meta/version +++ b/packages/HTML.package/monticello.meta/version @@ -1 +1 @@ -1d7ba9a9-8620-9d42-9f5d-41ab1a195e0a \ No newline at end of file +490d92c9-c11c-4246-9fdd-18681b5bd6d8 \ No newline at end of file diff --git a/packages/HTML.package/monticello.meta/version.d/HTML-rs.62_490d92c9-c11c-4246-9fdd-18681b5bd6d8 b/packages/HTML.package/monticello.meta/version.d/HTML-rs.62_490d92c9-c11c-4246-9fdd-18681b5bd6d8 new file mode 100644 index 00000000..bacd7744 --- /dev/null +++ b/packages/HTML.package/monticello.meta/version.d/HTML-rs.62_490d92c9-c11c-4246-9fdd-18681b5bd6d8 @@ -0,0 +1 @@ +(name 'HTML-rs.62' message 'Setup css processing, handle font-style: italic' id '490d92c9-c11c-4246-9fdd-18681b5bd6d8' date '18 May 2014' time '3:38:03.361 pm' author 'rs' ancestors ((id '1d7ba9a9-8620-9d42-9f5d-41ab1a195e0a')) stepChildren ()) \ No newline at end of file diff --git a/packages/Scamper-Core.package/Scamper.class/instance/displayTextHtmlPage..st b/packages/Scamper-Core.package/Scamper.class/instance/displayTextHtmlPage..st index 88139826..257dc2f4 100644 --- a/packages/Scamper-Core.package/Scamper.class/instance/displayTextHtmlPage..st +++ b/packages/Scamper-Core.package/Scamper.class/instance/displayTextHtmlPage..st @@ -7,6 +7,7 @@ displayTextHtmlPage: newSource self status: 'parsing...' translated. document := (HtmlDocument new parseContents: (ReadStream on: pageSource)). self status: 'laying out...' translated. + document applyStyles. formatter := HtmlFormatter preferredFormatterClass new. formatter browser: self. formatter baseUrl: currentUrl. diff --git a/packages/Scamper-Core.package/Scamper.class/methodProperties.json b/packages/Scamper-Core.package/Scamper.class/methodProperties.json index fa749c42..fffaec8a 100644 --- a/packages/Scamper-Core.package/Scamper.class/methodProperties.json +++ b/packages/Scamper-Core.package/Scamper.class/methodProperties.json @@ -38,7 +38,7 @@ "displayHistory" : "LaurentLaffont 2/26/2010 23:08", "displayImagePage:" : "LaurentLaffont 2/26/2010 23:08", "displayPlainTextPage:" : "LaurentLaffont 2/26/2010 23:08", - "displayTextHtmlPage:" : "pf 5/18/2014 11:57", + "displayTextHtmlPage:" : "rs 5/18/2014 12:54:58.778", "doItContext" : "ls 9/14/1998 20:15", "doItReceiver" : "ls 9/14/1998 20:15", "document" : "ls 7/14/1998 02:47", diff --git a/packages/Scamper-Core.package/monticello.meta/version b/packages/Scamper-Core.package/monticello.meta/version index a4dc28bc..6eb10bf8 100644 --- a/packages/Scamper-Core.package/monticello.meta/version +++ b/packages/Scamper-Core.package/monticello.meta/version @@ -1 +1 @@ -2901973b-1aa8-ca42-8c41-cb2812ad663e \ No newline at end of file +45ccc723-fce1-42dc-a27a-ad63054640a0 \ No newline at end of file diff --git a/packages/Scamper-Core.package/monticello.meta/version.d/Scamper-Core-rs.25_45ccc723-fce1-42dc-a27a-ad63054640a0 b/packages/Scamper-Core.package/monticello.meta/version.d/Scamper-Core-rs.25_45ccc723-fce1-42dc-a27a-ad63054640a0 new file mode 100644 index 00000000..7a3fce04 --- /dev/null +++ b/packages/Scamper-Core.package/monticello.meta/version.d/Scamper-Core-rs.25_45ccc723-fce1-42dc-a27a-ad63054640a0 @@ -0,0 +1 @@ +(name 'Scamper-Core-rs.25' message 'Setup css processing, handle font-style: italic' id '45ccc723-fce1-42dc-a27a-ad63054640a0' date '18 May 2014' time '3:37:29.012 pm' author 'rs' ancestors ((id '2901973b-1aa8-ca42-8c41-cb2812ad663e')) stepChildren ()) \ No newline at end of file From 7d35e59beb2145aa9dd80a5c345b3bdfd4c57b83 Mon Sep 17 00:00:00 2001 From: Robert Schmid Date: Sun, 18 May 2014 16:27:42 +0200 Subject: [PATCH 2/5] Add font-weight: bold support --- .../instance/getTextAttributesFrom..st | 7 +++++++ .../instance/parseTextAttributes..st | 11 +++-------- .../instance/readFontAttribute.to..st | 6 ++++++ .../instance/readFontAttributesFrom..st | 14 ++++++++++++++ .../instance/readFontStyleAttribute.to..st | 9 +++++++++ .../instance/readFontWeightAttribute.to..st | 9 +++++++++ .../DHtmlFormatter.class/methodProperties.json | 7 ++++++- packages/HTML.package/monticello.meta/version | 2 +- ...HTML-rs.63_1ff7030b-6f35-4796-8a66-16bfab0e08b2 | 1 + 9 files changed, 56 insertions(+), 10 deletions(-) create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/readFontAttribute.to..st create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/readFontAttributesFrom..st create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/readFontStyleAttribute.to..st create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/readFontWeightAttribute.to..st create mode 100644 packages/HTML.package/monticello.meta/version.d/HTML-rs.63_1ff7030b-6f35-4796-8a66-16bfab0e08b2 diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st b/packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st new file mode 100644 index 00000000..e7e1375a --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st @@ -0,0 +1,7 @@ +formatting commands +getTextAttributesFrom: aDictionary + | attribs | + attribs := OrderedCollection new. + (aDictionary at: #italic ifAbsent: [nil]) ifNotNil: [:italic | italic ifTrue: [ attribs add: TextEmphasis italic ]]. + (aDictionary at: #bold ifAbsent: [nil]) ifNotNil: [:bold | bold ifTrue: [ attribs add: TextEmphasis bold ]]. + ^ attribs \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st b/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st index 8d9e0678..fe83db45 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st +++ b/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st @@ -1,10 +1,5 @@ formatting commands parseTextAttributes: styles - | attribs | - attribs := OrderedCollection new. - styles do: [ :style | - style properties do: [ :prop | - (prop propertyName = 'font-style' - and: [ prop propertyString = 'italic']) - ifTrue: [ attribs add: TextEmphasis italic ] ] ]. - ^ attribs \ No newline at end of file + | fontAttribs | + fontAttribs := self readFontAttributesFrom: styles. + ^ self getTextAttributesFrom: fontAttribs. \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttribute.to..st b/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttribute.to..st new file mode 100644 index 00000000..f2e3c75d --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttribute.to..st @@ -0,0 +1,6 @@ +formatting commands +readFontAttribute: aString to: aDictionary + (aString beginsWith: 'italic') ifTrue: [ aDictionary at: #italic put: true ]. + (aString beginsWith: 'normal') ifTrue: [ aDictionary at: #italic put: false ]. + + (aString beginsWith: 'bold') ifTrue: [ aDictionary at: #bold put: true ] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttributesFrom..st b/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttributesFrom..st new file mode 100644 index 00000000..b8825906 --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttributesFrom..st @@ -0,0 +1,14 @@ +formatting commands +readFontAttributesFrom: styles + | fontAttribs | + fontAttribs := Dictionary new. + styles do: [ :style | + style properties do: [ :prop | + prop propertyName = 'font' + ifTrue: [ self readFontAttribute: prop propertyString to: fontAttribs ]. + prop propertyName = 'font-style' + ifTrue: [ self readFontStyleAttribute: prop propertyString to: fontAttribs ]. + prop propertyName = 'font-weight' + ifTrue: [ self readFontWeightAttribute: prop propertyString to: fontAttribs ] ] ]. + + ^ fontAttribs \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/readFontStyleAttribute.to..st b/packages/HTML.package/DHtmlFormatter.class/instance/readFontStyleAttribute.to..st new file mode 100644 index 00000000..5d0bef6f --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/readFontStyleAttribute.to..st @@ -0,0 +1,9 @@ +formatting commands +readFontStyleAttribute: aString to: aDictionary + | map | + map := Dictionary newFrom: { + 'italic' -> true. + 'normal' -> false + }. + + (map at: aString ifAbsent: [nil]) ifNotNilDo: [:value | aDictionary at: #italic put: value] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/readFontWeightAttribute.to..st b/packages/HTML.package/DHtmlFormatter.class/instance/readFontWeightAttribute.to..st new file mode 100644 index 00000000..367e4b74 --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/readFontWeightAttribute.to..st @@ -0,0 +1,9 @@ +formatting commands +readFontWeightAttribute: aString to: aDictionary + | map | + map := Dictionary newFrom: { + 'bold' -> true. + 'normal' -> false + }. + + (map at: aString ifAbsent: [nil]) ifNotNilDo: [:value | aDictionary at: #bold put: value] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/methodProperties.json b/packages/HTML.package/DHtmlFormatter.class/methodProperties.json index 5ed91b4b..1d111605 100644 --- a/packages/HTML.package/DHtmlFormatter.class/methodProperties.json +++ b/packages/HTML.package/DHtmlFormatter.class/methodProperties.json @@ -6,10 +6,15 @@ "endFont:" : "bolot 5/18/2000 11:23", "endHeader:" : "rs 5/18/2014 14:16:30.63", "endStyles" : "rs 5/18/2014 14:00:49.41", + "getTextAttributesFrom:" : "rs 5/18/2014 16:25:16.964", "headerFont:" : "rs 5/18/2014 14:15:07.55", "increaseFontBy:" : "bolot 5/18/2000 11:50", "lastFontSize" : "LaurentLaffont 2/26/2010 23:13", - "parseTextAttributes:" : "rs 5/18/2014 13:40:29.526", + "parseTextAttributes:" : "rs 5/18/2014 16:01:54.658", + "readFontAttribute:to:" : "rs 5/18/2014 16:24:39.692", + "readFontAttributesFrom:" : "rs 5/18/2014 16:22:28.276", + "readFontStyleAttribute:to:" : "rs 5/18/2014 16:19:51.282", + "readFontWeightAttribute:to:" : "rs 5/18/2014 16:21:38.476", "resetFont" : "bolot 5/18/2000 11:57", "setAttributes" : "LaurentLaffont 2/26/2010 23:13", "startFont:" : "rs 5/18/2014 13:53:54.124", diff --git a/packages/HTML.package/monticello.meta/version b/packages/HTML.package/monticello.meta/version index 34536751..650bcc80 100644 --- a/packages/HTML.package/monticello.meta/version +++ b/packages/HTML.package/monticello.meta/version @@ -1 +1 @@ -490d92c9-c11c-4246-9fdd-18681b5bd6d8 \ No newline at end of file +1ff7030b-6f35-4796-8a66-16bfab0e08b2 \ No newline at end of file diff --git a/packages/HTML.package/monticello.meta/version.d/HTML-rs.63_1ff7030b-6f35-4796-8a66-16bfab0e08b2 b/packages/HTML.package/monticello.meta/version.d/HTML-rs.63_1ff7030b-6f35-4796-8a66-16bfab0e08b2 new file mode 100644 index 00000000..473e435b --- /dev/null +++ b/packages/HTML.package/monticello.meta/version.d/HTML-rs.63_1ff7030b-6f35-4796-8a66-16bfab0e08b2 @@ -0,0 +1 @@ +(name 'HTML-rs.63' message 'Add font-weight: bold support' id '1ff7030b-6f35-4796-8a66-16bfab0e08b2' date '18 May 2014' time '4:27:15.053 pm' author 'rs' ancestors ((id '490d92c9-c11c-4246-9fdd-18681b5bd6d8')) stepChildren ()) \ No newline at end of file From 3ccdf471122777fbd6ed59b4392c8a79f651370b Mon Sep 17 00:00:00 2001 From: Robert Schmid Date: Mon, 19 May 2014 22:16:07 +0200 Subject: [PATCH 3/5] Tests and Refactoring --- .../HTML.package/CSSFontFormatter.class/README.md | 0 .../instance/attributeMap.st | 9 +++++++++ .../instance/getTextAttributesFrom..st | 2 +- .../instance/parseTextAttributesFrom..st | 5 +++++ .../instance/readAttributesFrom..st | 9 +++++++++ .../instance/readFontAttribute.to..st | 8 ++++++++ .../instance/readFontStyleAttribute.to..st | 2 +- .../instance/readFontWeightAttribute.to..st | 2 +- .../CSSFontFormatter.class/methodProperties.json | 11 +++++++++++ .../CSSFontFormatter.class/properties.json | 14 ++++++++++++++ .../CSSFontFormatterTest.class/README.md | 0 .../instance/fontFormatter..st | 4 ++++ .../instance/fontFormatter.st | 4 ++++ .../CSSFontFormatterTest.class/instance/setUp.st | 3 +++ ...cBoldShouldBeConvertedToCorrectTextEmphasis.st | 11 +++++++++++ ...talicShouldBeConvertedToCorrectTextEmphasis.st | 10 ++++++++++ ...tBoldShouldBeConvertedToCorrectTextEmphasis.st | 10 ++++++++++ .../methodProperties.json | 10 ++++++++++ .../CSSFontFormatterTest.class/properties.json | 14 ++++++++++++++ .../HTML.package/CSSFormatter.class/README.md | 0 .../instance/parseTextAttributesFrom..st | 3 +++ .../CSSFormatter.class/methodProperties.json | 5 +++++ .../CSSFormatter.class/properties.json | 14 ++++++++++++++ .../HTML.package/CSSFormatterMock.class/README.md | 0 .../class/newWithReturnValue..st | 6 ++++++ .../instance/parseTextAttributesFrom..st | 3 +++ .../instance/textAttributes..st | 4 ++++ .../instance/textAttributes.st | 4 ++++ .../CSSFormatterMock.class/methodProperties.json | 7 +++++++ .../CSSFormatterMock.class/properties.json | 14 ++++++++++++++ .../instance/cssPrefixMap..st | 4 ++++ .../DHtmlFormatter.class/instance/cssPrefixMap.st | 6 ++++++ .../DHtmlFormatter.class/instance/getPrefixOf..st | 4 ++++ .../instance/parseTextAttributes..st | 14 +++++++++++--- .../instance/readFontAttribute.to..st | 6 ------ .../instance/readFontAttributesFrom..st | 14 -------------- .../DHtmlFormatter.class/methodProperties.json | 10 ++++------ .../DHtmlFormatter.class/properties.json | 3 ++- .../DHtmlFormatterTest.class/README.md | 0 .../instance/htmlFormatter..st | 4 ++++ .../instance/htmlFormatter.st | 4 ++++ .../DHtmlFormatterTest.class/instance/setUp.st | 3 +++ ...tylesShouldBeForwardedToTheCorrectFormatter.st | 15 +++++++++++++++ .../methodProperties.json | 8 ++++++++ .../DHtmlFormatterTest.class/properties.json | 14 ++++++++++++++ packages/HTML.package/monticello.meta/version | 2 +- ...TML-rs.64_1683b020-3fe3-49fa-af0a-4cd62d18fc2f | 1 + 47 files changed, 266 insertions(+), 34 deletions(-) create mode 100644 packages/HTML.package/CSSFontFormatter.class/README.md create mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/attributeMap.st rename packages/HTML.package/{DHtmlFormatter.class => CSSFontFormatter.class}/instance/getTextAttributesFrom..st (94%) create mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom..st create mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/readAttributesFrom..st create mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/readFontAttribute.to..st rename packages/HTML.package/{DHtmlFormatter.class => CSSFontFormatter.class}/instance/readFontStyleAttribute.to..st (91%) rename packages/HTML.package/{DHtmlFormatter.class => CSSFontFormatter.class}/instance/readFontWeightAttribute.to..st (91%) create mode 100644 packages/HTML.package/CSSFontFormatter.class/methodProperties.json create mode 100644 packages/HTML.package/CSSFontFormatter.class/properties.json create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/README.md create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/fontFormatter..st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/fontFormatter.st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/setUp.st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis.st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis.st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis.st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/methodProperties.json create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/properties.json create mode 100644 packages/HTML.package/CSSFormatter.class/README.md create mode 100644 packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom..st create mode 100644 packages/HTML.package/CSSFormatter.class/methodProperties.json create mode 100644 packages/HTML.package/CSSFormatter.class/properties.json create mode 100644 packages/HTML.package/CSSFormatterMock.class/README.md create mode 100644 packages/HTML.package/CSSFormatterMock.class/class/newWithReturnValue..st create mode 100644 packages/HTML.package/CSSFormatterMock.class/instance/parseTextAttributesFrom..st create mode 100644 packages/HTML.package/CSSFormatterMock.class/instance/textAttributes..st create mode 100644 packages/HTML.package/CSSFormatterMock.class/instance/textAttributes.st create mode 100644 packages/HTML.package/CSSFormatterMock.class/methodProperties.json create mode 100644 packages/HTML.package/CSSFormatterMock.class/properties.json create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap..st create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap.st create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/getPrefixOf..st delete mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/readFontAttribute.to..st delete mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/readFontAttributesFrom..st create mode 100644 packages/HTML.package/DHtmlFormatterTest.class/README.md create mode 100644 packages/HTML.package/DHtmlFormatterTest.class/instance/htmlFormatter..st create mode 100644 packages/HTML.package/DHtmlFormatterTest.class/instance/htmlFormatter.st create mode 100644 packages/HTML.package/DHtmlFormatterTest.class/instance/setUp.st create mode 100644 packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st create mode 100644 packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json create mode 100644 packages/HTML.package/DHtmlFormatterTest.class/properties.json create mode 100644 packages/HTML.package/monticello.meta/version.d/HTML-rs.64_1683b020-3fe3-49fa-af0a-4cd62d18fc2f diff --git a/packages/HTML.package/CSSFontFormatter.class/README.md b/packages/HTML.package/CSSFontFormatter.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/attributeMap.st b/packages/HTML.package/CSSFontFormatter.class/instance/attributeMap.st new file mode 100644 index 00000000..240a4c05 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/instance/attributeMap.st @@ -0,0 +1,9 @@ +accessing +attributeMap + + ^ attributeMap ifNil: + [ Dictionary newFrom: { + 'font' -> [ :prop :fontAttribs | self readFontAttribute: prop propertyString to: fontAttribs ]. + 'font-style' -> [ :prop :fontAttribs | self readFontStyleAttribute: prop propertyString to: fontAttribs ]. + 'font-weight' -> [ :prop :fontAttribs | self readFontWeightAttribute: prop propertyString to: fontAttribs ] + }] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st b/packages/HTML.package/CSSFontFormatter.class/instance/getTextAttributesFrom..st similarity index 94% rename from packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st rename to packages/HTML.package/CSSFontFormatter.class/instance/getTextAttributesFrom..st index e7e1375a..898d8e42 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st +++ b/packages/HTML.package/CSSFontFormatter.class/instance/getTextAttributesFrom..st @@ -1,4 +1,4 @@ -formatting commands +parsing getTextAttributesFrom: aDictionary | attribs | attribs := OrderedCollection new. diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom..st b/packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom..st new file mode 100644 index 00000000..6d30ff88 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom..st @@ -0,0 +1,5 @@ +parsing +parseTextAttributesFrom: aCSSProperty + | fontAttribs | + fontAttribs := self readAttributesFrom: aCSSProperty. + ^ self getTextAttributesFrom: fontAttribs. \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/readAttributesFrom..st b/packages/HTML.package/CSSFontFormatter.class/instance/readAttributesFrom..st new file mode 100644 index 00000000..c96528a4 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/instance/readAttributesFrom..st @@ -0,0 +1,9 @@ +parsing +readAttributesFrom: aCSSProperty + | fontAttribs | + fontAttribs := Dictionary new. + + (self attributeMap at: aCSSProperty propertyName ifAbsent: [nil]) + ifNotNilDo: [ :process | process value: aCSSProperty value: fontAttribs ]. + + ^ fontAttribs \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/readFontAttribute.to..st b/packages/HTML.package/CSSFontFormatter.class/instance/readFontAttribute.to..st new file mode 100644 index 00000000..40ddf296 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/instance/readFontAttribute.to..st @@ -0,0 +1,8 @@ +parsing +readFontAttribute: aString to: aDictionary + | values | + values := aString splitOn: ' '. + (values includes: 'italic') ifTrue: [ aDictionary at: #italic put: true ]. + (values includes: 'normal') ifTrue: [ aDictionary at: #italic put: false ]. + + (values includes: 'bold') ifTrue: [ aDictionary at: #bold put: true ] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/readFontStyleAttribute.to..st b/packages/HTML.package/CSSFontFormatter.class/instance/readFontStyleAttribute.to..st similarity index 91% rename from packages/HTML.package/DHtmlFormatter.class/instance/readFontStyleAttribute.to..st rename to packages/HTML.package/CSSFontFormatter.class/instance/readFontStyleAttribute.to..st index 5d0bef6f..db591875 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/readFontStyleAttribute.to..st +++ b/packages/HTML.package/CSSFontFormatter.class/instance/readFontStyleAttribute.to..st @@ -1,4 +1,4 @@ -formatting commands +parsing readFontStyleAttribute: aString to: aDictionary | map | map := Dictionary newFrom: { diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/readFontWeightAttribute.to..st b/packages/HTML.package/CSSFontFormatter.class/instance/readFontWeightAttribute.to..st similarity index 91% rename from packages/HTML.package/DHtmlFormatter.class/instance/readFontWeightAttribute.to..st rename to packages/HTML.package/CSSFontFormatter.class/instance/readFontWeightAttribute.to..st index 367e4b74..8c1bee10 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/readFontWeightAttribute.to..st +++ b/packages/HTML.package/CSSFontFormatter.class/instance/readFontWeightAttribute.to..st @@ -1,4 +1,4 @@ -formatting commands +parsing readFontWeightAttribute: aString to: aDictionary | map | map := Dictionary newFrom: { diff --git a/packages/HTML.package/CSSFontFormatter.class/methodProperties.json b/packages/HTML.package/CSSFontFormatter.class/methodProperties.json new file mode 100644 index 00000000..bf2979f2 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/methodProperties.json @@ -0,0 +1,11 @@ +{ + "class" : { + }, + "instance" : { + "attributeMap" : "rs 5/19/2014 18:15:39.442", + "getTextAttributesFrom:" : "rs 5/19/2014 17:57:02.148", + "parseTextAttributesFrom:" : "rs 5/19/2014 18:23:59.342", + "readAttributesFrom:" : "rs 5/19/2014 18:25:26.94", + "readFontAttribute:to:" : "rs 5/19/2014 20:08:45.188", + "readFontStyleAttribute:to:" : "rs 5/19/2014 17:57:47.586", + "readFontWeightAttribute:to:" : "rs 5/19/2014 17:57:55.022" } } diff --git a/packages/HTML.package/CSSFontFormatter.class/properties.json b/packages/HTML.package/CSSFontFormatter.class/properties.json new file mode 100644 index 00000000..16eb8b82 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "HTML-Formatter", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "attributeMap" ], + "name" : "CSSFontFormatter", + "pools" : [ + ], + "super" : "CSSFormatter", + "type" : "normal" } diff --git a/packages/HTML.package/CSSFontFormatterTest.class/README.md b/packages/HTML.package/CSSFontFormatterTest.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/fontFormatter..st b/packages/HTML.package/CSSFontFormatterTest.class/instance/fontFormatter..st new file mode 100644 index 00000000..19205e39 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/fontFormatter..st @@ -0,0 +1,4 @@ +accessing +fontFormatter: anObject + + fontFormatter := anObject \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/fontFormatter.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/fontFormatter.st new file mode 100644 index 00000000..e86975ab --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/fontFormatter.st @@ -0,0 +1,4 @@ +accessing +fontFormatter + + ^ fontFormatter \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/setUp.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/setUp.st new file mode 100644 index 00000000..37c97c4a --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/setUp.st @@ -0,0 +1,3 @@ +running +setUp + self fontFormatter: CSSFontFormatter new \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis.st new file mode 100644 index 00000000..c97bd010 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis.st @@ -0,0 +1,11 @@ +testing +test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis + | prop result | + prop := CSSProperty new + propertyName: 'font'; + propertyString: 'italic bold'; + yourself. + result := self fontFormatter parseTextAttributesFrom: prop. + self assert: result size equals: 2. + self assert: (result anySatisfy: [:attr | attr emphasisCode = TextEmphasis italic emphasisCode ]). + self assert: (result anySatisfy: [:attr | attr emphasisCode = TextEmphasis bold emphasisCode ]). \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis.st new file mode 100644 index 00000000..b7bb9266 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis.st @@ -0,0 +1,10 @@ +testing +test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis + | prop result | + prop := CSSProperty new + propertyName: 'font-style'; + propertyString: 'italic'; + yourself. + result := self fontFormatter parseTextAttributesFrom: prop. + self assert: result size equals: 1. + self assert: result first emphasisCode equals: TextEmphasis italic emphasisCode \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis.st new file mode 100644 index 00000000..82ebb4ef --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis.st @@ -0,0 +1,10 @@ +testing +test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis + | prop result | + prop := CSSProperty new + propertyName: 'font-weight'; + propertyString: 'bold'; + yourself. + result := self fontFormatter parseTextAttributesFrom: prop. + self assert: result size equals: 1. + self assert: result first emphasisCode equals: TextEmphasis bold emphasisCode \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/methodProperties.json b/packages/HTML.package/CSSFontFormatterTest.class/methodProperties.json new file mode 100644 index 00000000..344653b5 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/methodProperties.json @@ -0,0 +1,10 @@ +{ + "class" : { + }, + "instance" : { + "fontFormatter" : "rs 5/19/2014 19:50:21.108", + "fontFormatter:" : "rs 5/19/2014 19:50:21.12", + "setUp" : "rs 5/19/2014 19:50:35.284", + "test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis" : "rs 5/19/2014 20:14:17.246", + "test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis" : "rs 5/19/2014 20:14:23.122", + "test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis" : "rs 5/19/2014 20:14:27.71" } } diff --git a/packages/HTML.package/CSSFontFormatterTest.class/properties.json b/packages/HTML.package/CSSFontFormatterTest.class/properties.json new file mode 100644 index 00000000..9a27a8f2 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "HTML-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "fontFormatter" ], + "name" : "CSSFontFormatterTest", + "pools" : [ + ], + "super" : "TestCase", + "type" : "normal" } diff --git a/packages/HTML.package/CSSFormatter.class/README.md b/packages/HTML.package/CSSFormatter.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom..st b/packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom..st new file mode 100644 index 00000000..6fa68607 --- /dev/null +++ b/packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom..st @@ -0,0 +1,3 @@ +as yet unclassified +parseTextAttributesFrom: styles + self subclassResponsibility \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatter.class/methodProperties.json b/packages/HTML.package/CSSFormatter.class/methodProperties.json new file mode 100644 index 00000000..8a1beaa3 --- /dev/null +++ b/packages/HTML.package/CSSFormatter.class/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "parseTextAttributesFrom:" : "rs 5/19/2014 18:23:19.114" } } diff --git a/packages/HTML.package/CSSFormatter.class/properties.json b/packages/HTML.package/CSSFormatter.class/properties.json new file mode 100644 index 00000000..0baaf67f --- /dev/null +++ b/packages/HTML.package/CSSFormatter.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "HTML-Formatter", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + ], + "name" : "CSSFormatter", + "pools" : [ + ], + "super" : "Object", + "type" : "normal" } diff --git a/packages/HTML.package/CSSFormatterMock.class/README.md b/packages/HTML.package/CSSFormatterMock.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/HTML.package/CSSFormatterMock.class/class/newWithReturnValue..st b/packages/HTML.package/CSSFormatterMock.class/class/newWithReturnValue..st new file mode 100644 index 00000000..ed388cc3 --- /dev/null +++ b/packages/HTML.package/CSSFormatterMock.class/class/newWithReturnValue..st @@ -0,0 +1,6 @@ +instance creation +newWithReturnValue: textAttributes + + ^ self new + textAttributes: textAttributes; + yourself \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatterMock.class/instance/parseTextAttributesFrom..st b/packages/HTML.package/CSSFormatterMock.class/instance/parseTextAttributesFrom..st new file mode 100644 index 00000000..23f1428d --- /dev/null +++ b/packages/HTML.package/CSSFormatterMock.class/instance/parseTextAttributesFrom..st @@ -0,0 +1,3 @@ +as yet unclassified +parseTextAttributesFrom: aCSSProperty + ^ self textAttributes \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes..st b/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes..st new file mode 100644 index 00000000..cd419aa9 --- /dev/null +++ b/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes..st @@ -0,0 +1,4 @@ +accessing +textAttributes: anObject + + textAttributes := anObject \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes.st b/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes.st new file mode 100644 index 00000000..20870a7f --- /dev/null +++ b/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes.st @@ -0,0 +1,4 @@ +accessing +textAttributes + + ^ textAttributes \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatterMock.class/methodProperties.json b/packages/HTML.package/CSSFormatterMock.class/methodProperties.json new file mode 100644 index 00000000..ae0abd6c --- /dev/null +++ b/packages/HTML.package/CSSFormatterMock.class/methodProperties.json @@ -0,0 +1,7 @@ +{ + "class" : { + "newWithReturnValue:" : "rs 5/19/2014 22:01:17.5" }, + "instance" : { + "parseTextAttributesFrom:" : "rs 5/19/2014 20:24:41.542", + "textAttributes" : "rs 5/19/2014 20:24:27.132", + "textAttributes:" : "rs 5/19/2014 20:24:27.144" } } diff --git a/packages/HTML.package/CSSFormatterMock.class/properties.json b/packages/HTML.package/CSSFormatterMock.class/properties.json new file mode 100644 index 00000000..9f5802ea --- /dev/null +++ b/packages/HTML.package/CSSFormatterMock.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "HTML-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "textAttributes" ], + "name" : "CSSFormatterMock", + "pools" : [ + ], + "super" : "CSSFormatter", + "type" : "normal" } diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap..st b/packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap..st new file mode 100644 index 00000000..67b89c4a --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap..st @@ -0,0 +1,4 @@ +accessing +cssPrefixMap: anObject + + cssPrefixMap := anObject \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap.st b/packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap.st new file mode 100644 index 00000000..fe3658e6 --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap.st @@ -0,0 +1,6 @@ +accessing +cssPrefixMap + ^ cssPrefixMap ifNil: [ + Dictionary newFrom: { + 'font' -> CSSFontFormatter new + }] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/getPrefixOf..st b/packages/HTML.package/DHtmlFormatter.class/instance/getPrefixOf..st new file mode 100644 index 00000000..6ec9dae1 --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/getPrefixOf..st @@ -0,0 +1,4 @@ +formatting commands +getPrefixOf: aString + (aString beginsWith: 'font') ifTrue: [ ^ 'font' ]. + ^ nil \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st b/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st index fe83db45..c3f00ca2 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st +++ b/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st @@ -1,5 +1,13 @@ formatting commands parseTextAttributes: styles - | fontAttribs | - fontAttribs := self readFontAttributesFrom: styles. - ^ self getTextAttributesFrom: fontAttribs. \ No newline at end of file + | textAttributes | + textAttributes := OrderedCollection new. + + styles do: [:style | + style properties do: [:prop | + | prefix | + prefix := self getPrefixOf: prop propertyName. + (self cssPrefixMap at: prefix ifAbsent: [nil]) + ifNotNilDo: [:formatter | textAttributes addAll: (formatter parseTextAttributesFrom: prop)]]]. + + ^ textAttributes \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttribute.to..st b/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttribute.to..st deleted file mode 100644 index f2e3c75d..00000000 --- a/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttribute.to..st +++ /dev/null @@ -1,6 +0,0 @@ -formatting commands -readFontAttribute: aString to: aDictionary - (aString beginsWith: 'italic') ifTrue: [ aDictionary at: #italic put: true ]. - (aString beginsWith: 'normal') ifTrue: [ aDictionary at: #italic put: false ]. - - (aString beginsWith: 'bold') ifTrue: [ aDictionary at: #bold put: true ] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttributesFrom..st b/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttributesFrom..st deleted file mode 100644 index b8825906..00000000 --- a/packages/HTML.package/DHtmlFormatter.class/instance/readFontAttributesFrom..st +++ /dev/null @@ -1,14 +0,0 @@ -formatting commands -readFontAttributesFrom: styles - | fontAttribs | - fontAttribs := Dictionary new. - styles do: [ :style | - style properties do: [ :prop | - prop propertyName = 'font' - ifTrue: [ self readFontAttribute: prop propertyString to: fontAttribs ]. - prop propertyName = 'font-style' - ifTrue: [ self readFontStyleAttribute: prop propertyString to: fontAttribs ]. - prop propertyName = 'font-weight' - ifTrue: [ self readFontWeightAttribute: prop propertyString to: fontAttribs ] ] ]. - - ^ fontAttribs \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/methodProperties.json b/packages/HTML.package/DHtmlFormatter.class/methodProperties.json index 1d111605..e4c9a747 100644 --- a/packages/HTML.package/DHtmlFormatter.class/methodProperties.json +++ b/packages/HTML.package/DHtmlFormatter.class/methodProperties.json @@ -2,19 +2,17 @@ "class" : { }, "instance" : { + "cssPrefixMap" : "rs 5/19/2014 18:30:36.49", + "cssPrefixMap:" : "rs 5/19/2014 20:18:13.29", "decreaseFontBy:" : "bolot 5/18/2000 11:55", "endFont:" : "bolot 5/18/2000 11:23", "endHeader:" : "rs 5/18/2014 14:16:30.63", "endStyles" : "rs 5/18/2014 14:00:49.41", - "getTextAttributesFrom:" : "rs 5/18/2014 16:25:16.964", + "getPrefixOf:" : "rs 5/19/2014 18:31:23.964", "headerFont:" : "rs 5/18/2014 14:15:07.55", "increaseFontBy:" : "bolot 5/18/2000 11:50", "lastFontSize" : "LaurentLaffont 2/26/2010 23:13", - "parseTextAttributes:" : "rs 5/18/2014 16:01:54.658", - "readFontAttribute:to:" : "rs 5/18/2014 16:24:39.692", - "readFontAttributesFrom:" : "rs 5/18/2014 16:22:28.276", - "readFontStyleAttribute:to:" : "rs 5/18/2014 16:19:51.282", - "readFontWeightAttribute:to:" : "rs 5/18/2014 16:21:38.476", + "parseTextAttributes:" : "rs 5/19/2014 20:17:01.466", "resetFont" : "bolot 5/18/2000 11:57", "setAttributes" : "LaurentLaffont 2/26/2010 23:13", "startFont:" : "rs 5/18/2014 13:53:54.124", diff --git a/packages/HTML.package/DHtmlFormatter.class/properties.json b/packages/HTML.package/DHtmlFormatter.class/properties.json index 85554d28..0785941b 100644 --- a/packages/HTML.package/DHtmlFormatter.class/properties.json +++ b/packages/HTML.package/DHtmlFormatter.class/properties.json @@ -6,7 +6,8 @@ ], "commentStamp" : "", "instvars" : [ - "fontSpecs" ], + "fontSpecs", + "cssPrefixMap" ], "name" : "DHtmlFormatter", "pools" : [ ], diff --git a/packages/HTML.package/DHtmlFormatterTest.class/README.md b/packages/HTML.package/DHtmlFormatterTest.class/README.md new file mode 100644 index 00000000..e69de29b diff --git a/packages/HTML.package/DHtmlFormatterTest.class/instance/htmlFormatter..st b/packages/HTML.package/DHtmlFormatterTest.class/instance/htmlFormatter..st new file mode 100644 index 00000000..8a1c4bfd --- /dev/null +++ b/packages/HTML.package/DHtmlFormatterTest.class/instance/htmlFormatter..st @@ -0,0 +1,4 @@ +accessing +htmlFormatter: anObject + + htmlFormatter := anObject \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatterTest.class/instance/htmlFormatter.st b/packages/HTML.package/DHtmlFormatterTest.class/instance/htmlFormatter.st new file mode 100644 index 00000000..a5e8d4f0 --- /dev/null +++ b/packages/HTML.package/DHtmlFormatterTest.class/instance/htmlFormatter.st @@ -0,0 +1,4 @@ +accessing +htmlFormatter + + ^ htmlFormatter \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatterTest.class/instance/setUp.st b/packages/HTML.package/DHtmlFormatterTest.class/instance/setUp.st new file mode 100644 index 00000000..4da64e2f --- /dev/null +++ b/packages/HTML.package/DHtmlFormatterTest.class/instance/setUp.st @@ -0,0 +1,3 @@ +running +setUp + self htmlFormatter: DHtmlFormatter new \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st b/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st new file mode 100644 index 00000000..161ed242 --- /dev/null +++ b/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st @@ -0,0 +1,15 @@ +testing +test01StylesShouldBeForwardedToTheCorrectFormatter + | props result map prefixes | + map := Dictionary new. + self htmlFormatter cssPrefixMap: map. + prefixes := { + {'font'. {'font'. 'font-style'. 'font-weight'}}}. + + prefixes do: [:prefix | + map at: prefix first put: (CSSFormatterMock newWithReturnValue: {prefix first}). + prefix last do: [:attributeName | + props := CSSStyleRule new addProperty: (CSSProperty propertyNamed: attributeName). + result := self htmlFormatter parseTextAttributes: (OrderedCollection newFrom: {props}). + + self assert: result includes: prefix first ] ] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json b/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json new file mode 100644 index 00000000..65bb7b2d --- /dev/null +++ b/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json @@ -0,0 +1,8 @@ +{ + "class" : { + }, + "instance" : { + "htmlFormatter" : "rs 5/19/2014 20:11:21.806", + "htmlFormatter:" : "rs 5/19/2014 20:11:21.816", + "setUp" : "rs 5/19/2014 20:11:34.988", + "test01StylesShouldBeForwardedToTheCorrectFormatter" : "rs 5/19/2014 22:02:54.186" } } diff --git a/packages/HTML.package/DHtmlFormatterTest.class/properties.json b/packages/HTML.package/DHtmlFormatterTest.class/properties.json new file mode 100644 index 00000000..db60e94d --- /dev/null +++ b/packages/HTML.package/DHtmlFormatterTest.class/properties.json @@ -0,0 +1,14 @@ +{ + "category" : "HTML-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "htmlFormatter" ], + "name" : "DHtmlFormatterTest", + "pools" : [ + ], + "super" : "TestCase", + "type" : "normal" } diff --git a/packages/HTML.package/monticello.meta/version b/packages/HTML.package/monticello.meta/version index 650bcc80..63e24969 100644 --- a/packages/HTML.package/monticello.meta/version +++ b/packages/HTML.package/monticello.meta/version @@ -1 +1 @@ -1ff7030b-6f35-4796-8a66-16bfab0e08b2 \ No newline at end of file +1683b020-3fe3-49fa-af0a-4cd62d18fc2f \ No newline at end of file diff --git a/packages/HTML.package/monticello.meta/version.d/HTML-rs.64_1683b020-3fe3-49fa-af0a-4cd62d18fc2f b/packages/HTML.package/monticello.meta/version.d/HTML-rs.64_1683b020-3fe3-49fa-af0a-4cd62d18fc2f new file mode 100644 index 00000000..3e5879ca --- /dev/null +++ b/packages/HTML.package/monticello.meta/version.d/HTML-rs.64_1683b020-3fe3-49fa-af0a-4cd62d18fc2f @@ -0,0 +1 @@ +(name 'HTML-rs.64' message 'Tests and Refactoring' id '1683b020-3fe3-49fa-af0a-4cd62d18fc2f' date '19 May 2014' time '10:14:39.49 pm' author 'rs' ancestors ((id '1ff7030b-6f35-4796-8a66-16bfab0e08b2')) stepChildren ()) \ No newline at end of file From e02e0cf948398127d12ecd287afb7a8602276a6a Mon Sep 17 00:00:00 2001 From: Robert Schmid Date: Tue, 20 May 2014 00:14:19 +0200 Subject: [PATCH 4/5] Fix DHtmlFormatter test --- .../test01StylesShouldBeForwardedToTheCorrectFormatter.st | 2 +- .../HTML.package/DHtmlFormatterTest.class/methodProperties.json | 2 +- packages/HTML.package/monticello.meta/version | 2 +- .../version.d/HTML-rs.65_9af0226a-b83f-42c9-9b7d-004fc21eb8e2 | 1 + .../version.d/HTML-rs.66_450d8b9a-7893-4b88-a37b-4c14f026976b | 1 + 5 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 packages/HTML.package/monticello.meta/version.d/HTML-rs.65_9af0226a-b83f-42c9-9b7d-004fc21eb8e2 create mode 100644 packages/HTML.package/monticello.meta/version.d/HTML-rs.66_450d8b9a-7893-4b88-a37b-4c14f026976b diff --git a/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st b/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st index 161ed242..24a9a0d1 100644 --- a/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st +++ b/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st @@ -12,4 +12,4 @@ test01StylesShouldBeForwardedToTheCorrectFormatter props := CSSStyleRule new addProperty: (CSSProperty propertyNamed: attributeName). result := self htmlFormatter parseTextAttributes: (OrderedCollection newFrom: {props}). - self assert: result includes: prefix first ] ] \ No newline at end of file + self assert: (result includes: prefix first) ] ] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json b/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json index 65bb7b2d..78a34597 100644 --- a/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json +++ b/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json @@ -5,4 +5,4 @@ "htmlFormatter" : "rs 5/19/2014 20:11:21.806", "htmlFormatter:" : "rs 5/19/2014 20:11:21.816", "setUp" : "rs 5/19/2014 20:11:34.988", - "test01StylesShouldBeForwardedToTheCorrectFormatter" : "rs 5/19/2014 22:02:54.186" } } + "test01StylesShouldBeForwardedToTheCorrectFormatter" : "rs 5/20/2014 00:11:49.748" } } diff --git a/packages/HTML.package/monticello.meta/version b/packages/HTML.package/monticello.meta/version index 63e24969..513d46cd 100644 --- a/packages/HTML.package/monticello.meta/version +++ b/packages/HTML.package/monticello.meta/version @@ -1 +1 @@ -1683b020-3fe3-49fa-af0a-4cd62d18fc2f \ No newline at end of file +450d8b9a-7893-4b88-a37b-4c14f026976b \ No newline at end of file diff --git a/packages/HTML.package/monticello.meta/version.d/HTML-rs.65_9af0226a-b83f-42c9-9b7d-004fc21eb8e2 b/packages/HTML.package/monticello.meta/version.d/HTML-rs.65_9af0226a-b83f-42c9-9b7d-004fc21eb8e2 new file mode 100644 index 00000000..1d220690 --- /dev/null +++ b/packages/HTML.package/monticello.meta/version.d/HTML-rs.65_9af0226a-b83f-42c9-9b7d-004fc21eb8e2 @@ -0,0 +1 @@ +(name 'HTML-rs.65' message 'empty log message' id '9af0226a-b83f-42c9-9b7d-004fc21eb8e2' date '20 May 2014' time '12:09:26.02 am' author 'rs' ancestors ((id '1683b020-3fe3-49fa-af0a-4cd62d18fc2f')) stepChildren ()) \ No newline at end of file diff --git a/packages/HTML.package/monticello.meta/version.d/HTML-rs.66_450d8b9a-7893-4b88-a37b-4c14f026976b b/packages/HTML.package/monticello.meta/version.d/HTML-rs.66_450d8b9a-7893-4b88-a37b-4c14f026976b new file mode 100644 index 00000000..91c80c07 --- /dev/null +++ b/packages/HTML.package/monticello.meta/version.d/HTML-rs.66_450d8b9a-7893-4b88-a37b-4c14f026976b @@ -0,0 +1 @@ +(name 'HTML-rs.66' message 'Fix DHtmlFormatter test' id '450d8b9a-7893-4b88-a37b-4c14f026976b' date '20 May 2014' time '12:13:51.278 am' author 'rs' ancestors ((id '9af0226a-b83f-42c9-9b7d-004fc21eb8e2')) stepChildren ()) \ No newline at end of file From 1ec427d823818238cb678a1633176c2e49a7f695 Mon Sep 17 00:00:00 2001 From: Robert Schmid Date: Wed, 21 May 2014 16:26:52 +0200 Subject: [PATCH 5/5] Improve parsing, add font-size and tests, refactor --- .../instance/attributeMap.st | 3 +- .../instance/isValidStyleValue..st | 4 +++ .../instance/isValidWeightValue..st | 4 +++ .../instance/parseTextAttributesFrom..st | 5 ---- .../instance/parseTextAttributesFrom.into..st | 5 ++++ .../instance/readAttributesFrom..st | 9 ------ .../instance/readFontAttribute.to..st | 24 +++++++++++---- .../instance/readFontSizeAttribute.to..st | 30 +++++++++++++++++++ .../instance/readFontStyleAttribute.to..st | 4 +-- .../instance/readFontWeightAttribute.to..st | 4 +-- .../methodProperties.json | 15 +++++----- ...dShouldBeConvertedToCorrectTextEmphasis.st | 11 ------- ...01FontItalicBoldShouldBeParsedCorrectly.st | 11 +++++++ ...cShouldBeConvertedToCorrectTextEmphasis.st | 10 ------- ...2FontStyleItalicShouldBeParsedCorrectly.st | 10 +++++++ ...dShouldBeConvertedToCorrectTextEmphasis.st | 10 ------- ...03FontWeightBoldShouldBeParsedCorrectly.st | 10 +++++++ ...ComplexFontValueShouldBeParsedCorrectly.st | 12 ++++++++ .../methodProperties.json | 7 +++-- ...m..st => parseTextAttributesFrom.into..st} | 2 +- .../CSSFormatter.class/methodProperties.json | 2 +- .../CSSFormatterMock.class/README.md | 0 .../class/newWithReturnValue..st | 6 ---- .../instance/parseTextAttributesFrom..st | 3 -- .../instance/textAttributes..st | 4 --- .../instance/textAttributes.st | 4 --- .../methodProperties.json | 7 ----- .../CSSFormatterMock.class/properties.json | 14 --------- .../instance/cssPrefixMap..st | 4 --- .../instance/getFormatterFor..st | 5 ++++ .../instance/getTextAttributesFrom..st | 3 +- .../instance/parseCSSProperty.into..st | 5 ++++ .../instance/parseTextAttributes..st | 15 ++++------ .../methodProperties.json | 6 ++-- ...sShouldBeForwardedToTheCorrectFormatter.st | 20 ++++++------- .../test02LastRuleShouldOverrideAllOthers.st | 14 +++++++++ .../methodProperties.json | 3 +- packages/HTML.package/monticello.meta/version | 2 +- ...rs.67_89d4deb0-f0c3-47c1-855e-a3591c752c28 | 1 + 39 files changed, 173 insertions(+), 135 deletions(-) create mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/isValidStyleValue..st create mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/isValidWeightValue..st delete mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom..st create mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom.into..st delete mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/readAttributesFrom..st create mode 100644 packages/HTML.package/CSSFontFormatter.class/instance/readFontSizeAttribute.to..st delete mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis.st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeParsedCorrectly.st delete mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis.st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeParsedCorrectly.st delete mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis.st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeParsedCorrectly.st create mode 100644 packages/HTML.package/CSSFontFormatterTest.class/instance/test04ComplexFontValueShouldBeParsedCorrectly.st rename packages/HTML.package/CSSFormatter.class/instance/{parseTextAttributesFrom..st => parseTextAttributesFrom.into..st} (50%) delete mode 100644 packages/HTML.package/CSSFormatterMock.class/README.md delete mode 100644 packages/HTML.package/CSSFormatterMock.class/class/newWithReturnValue..st delete mode 100644 packages/HTML.package/CSSFormatterMock.class/instance/parseTextAttributesFrom..st delete mode 100644 packages/HTML.package/CSSFormatterMock.class/instance/textAttributes..st delete mode 100644 packages/HTML.package/CSSFormatterMock.class/instance/textAttributes.st delete mode 100644 packages/HTML.package/CSSFormatterMock.class/methodProperties.json delete mode 100644 packages/HTML.package/CSSFormatterMock.class/properties.json delete mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap..st create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/getFormatterFor..st rename packages/HTML.package/{CSSFontFormatter.class => DHtmlFormatter.class}/instance/getTextAttributesFrom..st (71%) create mode 100644 packages/HTML.package/DHtmlFormatter.class/instance/parseCSSProperty.into..st create mode 100644 packages/HTML.package/DHtmlFormatterTest.class/instance/test02LastRuleShouldOverrideAllOthers.st create mode 100644 packages/HTML.package/monticello.meta/version.d/HTML-rs.67_89d4deb0-f0c3-47c1-855e-a3591c752c28 diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/attributeMap.st b/packages/HTML.package/CSSFontFormatter.class/instance/attributeMap.st index 240a4c05..3614f84b 100644 --- a/packages/HTML.package/CSSFontFormatter.class/instance/attributeMap.st +++ b/packages/HTML.package/CSSFontFormatter.class/instance/attributeMap.st @@ -5,5 +5,6 @@ attributeMap [ Dictionary newFrom: { 'font' -> [ :prop :fontAttribs | self readFontAttribute: prop propertyString to: fontAttribs ]. 'font-style' -> [ :prop :fontAttribs | self readFontStyleAttribute: prop propertyString to: fontAttribs ]. - 'font-weight' -> [ :prop :fontAttribs | self readFontWeightAttribute: prop propertyString to: fontAttribs ] + 'font-weight' -> [ :prop :fontAttribs | self readFontWeightAttribute: prop propertyString to: fontAttribs ]. + 'font-size' -> [ :prop :fontAttribs | self readFontSizeAttribute: prop propertyString to: fontAttribs ] }] \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/isValidStyleValue..st b/packages/HTML.package/CSSFontFormatter.class/instance/isValidStyleValue..st new file mode 100644 index 00000000..89b780cd --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/instance/isValidStyleValue..st @@ -0,0 +1,4 @@ +parsing +isValidStyleValue: aString + + ^ {'normal'. 'italic'. 'oblique'. 'initial'. 'inherit'} includes: aString \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/isValidWeightValue..st b/packages/HTML.package/CSSFontFormatter.class/instance/isValidWeightValue..st new file mode 100644 index 00000000..7637e16b --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/instance/isValidWeightValue..st @@ -0,0 +1,4 @@ +parsing +isValidWeightValue: aString + + ^ {'normal'. 'bold'. 'bolder'. 'lighter'. '100'. '200'. '300'. '400'. '500'. '600'. '700'. '800'. '900'. 'initial'. 'inherit'} includes: aString \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom..st b/packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom..st deleted file mode 100644 index 6d30ff88..00000000 --- a/packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom..st +++ /dev/null @@ -1,5 +0,0 @@ -parsing -parseTextAttributesFrom: aCSSProperty - | fontAttribs | - fontAttribs := self readAttributesFrom: aCSSProperty. - ^ self getTextAttributesFrom: fontAttribs. \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom.into..st b/packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom.into..st new file mode 100644 index 00000000..53b6bb38 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/instance/parseTextAttributesFrom.into..st @@ -0,0 +1,5 @@ +parsing +parseTextAttributesFrom: aCSSProperty into: aContext + + (self attributeMap at: aCSSProperty propertyName ifAbsent: [nil]) + ifNotNilDo: [ :process | process value: aCSSProperty value: aContext ] \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/readAttributesFrom..st b/packages/HTML.package/CSSFontFormatter.class/instance/readAttributesFrom..st deleted file mode 100644 index c96528a4..00000000 --- a/packages/HTML.package/CSSFontFormatter.class/instance/readAttributesFrom..st +++ /dev/null @@ -1,9 +0,0 @@ -parsing -readAttributesFrom: aCSSProperty - | fontAttribs | - fontAttribs := Dictionary new. - - (self attributeMap at: aCSSProperty propertyName ifAbsent: [nil]) - ifNotNilDo: [ :process | process value: aCSSProperty value: fontAttribs ]. - - ^ fontAttribs \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/readFontAttribute.to..st b/packages/HTML.package/CSSFontFormatter.class/instance/readFontAttribute.to..st index 40ddf296..cc2defdd 100644 --- a/packages/HTML.package/CSSFontFormatter.class/instance/readFontAttribute.to..st +++ b/packages/HTML.package/CSSFontFormatter.class/instance/readFontAttribute.to..st @@ -1,8 +1,22 @@ parsing -readFontAttribute: aString to: aDictionary - | values | +readFontAttribute: aString to: aContext + | values shorthandContext | + shorthandContext := Dictionary newFrom: { + #italic -> false. + #bold -> false. + #size -> TextStyle default defaultFontIndex + }. + values := aString splitOn: ' '. - (values includes: 'italic') ifTrue: [ aDictionary at: #italic put: true ]. - (values includes: 'normal') ifTrue: [ aDictionary at: #italic put: false ]. + values size >= 2 ifTrue: [ + self readFontSizeAttribute: (values nextToLast splitOn: '/') first to: shorthandContext]. + values size >= 3 ifTrue: [ + (self isValidStyleValue: values first) + ifTrue: [ self readFontStyleAttribute: values first to: shorthandContext. + values size >= 4 + ifTrue: [self readFontWeightAttribute: values second to: shorthandContext ]] + ifFalse: [ + (self isValidWeightValue: values first) + ifTrue: [self readFontWeightAttribute: values first to: shorthandContext ]]]. - (values includes: 'bold') ifTrue: [ aDictionary at: #bold put: true ] \ No newline at end of file + aContext addAll: shorthandContext \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/readFontSizeAttribute.to..st b/packages/HTML.package/CSSFontFormatter.class/instance/readFontSizeAttribute.to..st new file mode 100644 index 00000000..c466aa54 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatter.class/instance/readFontSizeAttribute.to..st @@ -0,0 +1,30 @@ +parsing +readFontSizeAttribute: aString to: aContext + "Lots of value types possible: http://www.w3schools.com/cssref/pr_font_font-size.asp" + | defaultSize sizeFactors | + defaultSize := TextStyle default defaultFontIndex. + ((aString endsWith: '%') or: (aString endsWith: 'em')) ifTrue: [ + | parentFontSize | + "This is actually not the parent font size but the font size of a rule that should be overridden" + parentFontSize := aContext at: #size ifAbsent: [ defaultSize ]. + aString asNumber ifNotNil: [:value | + (aString endsWith: '%') + ifTrue: [ aContext at: #size put: ((parentFontSize * (value / 100)) max: 1) asInteger ] + ifFalse: [ aContext at: #size put: ((parentFontSize * value) max: 1) asInteger ]]. + ^ self ]. + + (aString endsWith: 'cm') ifTrue: + [ aString asNumber ifNotNil: [:value | aContext at: #size put: (value * 4) asInteger]. + ^ self]. + + sizeFactors := Dictionary newFrom: { + 'initial' -> 1. + 'xx-small' -> 0.5. + 'x-small' -> 0.6. + 'small' -> 0.8. + 'medium' -> 1. + 'large' -> 1.5. + 'x-large' -> 2. + 'xx-large' -> 3. + }. + aContext at: #size put: ((sizeFactors at: aString ifAbsent: [1]) * defaultSize) asInteger \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/readFontStyleAttribute.to..st b/packages/HTML.package/CSSFontFormatter.class/instance/readFontStyleAttribute.to..st index db591875..8ab2de6c 100644 --- a/packages/HTML.package/CSSFontFormatter.class/instance/readFontStyleAttribute.to..st +++ b/packages/HTML.package/CSSFontFormatter.class/instance/readFontStyleAttribute.to..st @@ -1,9 +1,9 @@ parsing -readFontStyleAttribute: aString to: aDictionary +readFontStyleAttribute: aString to: aContext | map | map := Dictionary newFrom: { 'italic' -> true. 'normal' -> false }. - (map at: aString ifAbsent: [nil]) ifNotNilDo: [:value | aDictionary at: #italic put: value] \ No newline at end of file + (map at: aString ifAbsent: [nil]) ifNotNilDo: [:value | aContext at: #italic put: value] \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/readFontWeightAttribute.to..st b/packages/HTML.package/CSSFontFormatter.class/instance/readFontWeightAttribute.to..st index 8c1bee10..d805c256 100644 --- a/packages/HTML.package/CSSFontFormatter.class/instance/readFontWeightAttribute.to..st +++ b/packages/HTML.package/CSSFontFormatter.class/instance/readFontWeightAttribute.to..st @@ -1,9 +1,9 @@ parsing -readFontWeightAttribute: aString to: aDictionary +readFontWeightAttribute: aString to: aContext | map | map := Dictionary newFrom: { 'bold' -> true. 'normal' -> false }. - (map at: aString ifAbsent: [nil]) ifNotNilDo: [:value | aDictionary at: #bold put: value] \ No newline at end of file + (map at: aString ifAbsent: [nil]) ifNotNilDo: [:value | aContext at: #bold put: value] \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/methodProperties.json b/packages/HTML.package/CSSFontFormatter.class/methodProperties.json index bf2979f2..763fb6d3 100644 --- a/packages/HTML.package/CSSFontFormatter.class/methodProperties.json +++ b/packages/HTML.package/CSSFontFormatter.class/methodProperties.json @@ -2,10 +2,11 @@ "class" : { }, "instance" : { - "attributeMap" : "rs 5/19/2014 18:15:39.442", - "getTextAttributesFrom:" : "rs 5/19/2014 17:57:02.148", - "parseTextAttributesFrom:" : "rs 5/19/2014 18:23:59.342", - "readAttributesFrom:" : "rs 5/19/2014 18:25:26.94", - "readFontAttribute:to:" : "rs 5/19/2014 20:08:45.188", - "readFontStyleAttribute:to:" : "rs 5/19/2014 17:57:47.586", - "readFontWeightAttribute:to:" : "rs 5/19/2014 17:57:55.022" } } + "attributeMap" : "rs 5/21/2014 12:46:49.11", + "isValidStyleValue:" : "rs 5/21/2014 15:44:29.914", + "isValidWeightValue:" : "rs 5/21/2014 15:43:47.846", + "parseTextAttributesFrom:into:" : "rs 5/21/2014 12:21:23.822", + "readFontAttribute:to:" : "rs 5/21/2014 16:06:04.462", + "readFontSizeAttribute:to:" : "rs 5/21/2014 16:15:51.59", + "readFontStyleAttribute:to:" : "rs 5/21/2014 11:48:15.832", + "readFontWeightAttribute:to:" : "rs 5/21/2014 11:48:27.886" } } diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis.st deleted file mode 100644 index c97bd010..00000000 --- a/packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis.st +++ /dev/null @@ -1,11 +0,0 @@ -testing -test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis - | prop result | - prop := CSSProperty new - propertyName: 'font'; - propertyString: 'italic bold'; - yourself. - result := self fontFormatter parseTextAttributesFrom: prop. - self assert: result size equals: 2. - self assert: (result anySatisfy: [:attr | attr emphasisCode = TextEmphasis italic emphasisCode ]). - self assert: (result anySatisfy: [:attr | attr emphasisCode = TextEmphasis bold emphasisCode ]). \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeParsedCorrectly.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeParsedCorrectly.st new file mode 100644 index 00000000..354b0d53 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/test01FontItalicBoldShouldBeParsedCorrectly.st @@ -0,0 +1,11 @@ +testing +test01FontItalicBoldShouldBeParsedCorrectly + | prop result | + result := Dictionary new. + prop := CSSProperty new + propertyName: 'font'; + propertyString: 'italic bold medium Verdana'; + yourself. + self fontFormatter parseTextAttributesFrom: prop into: result. + self assert: true equals: (result at: #italic). + self assert: true equals: (result at: #bold) \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis.st deleted file mode 100644 index b7bb9266..00000000 --- a/packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis.st +++ /dev/null @@ -1,10 +0,0 @@ -testing -test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis - | prop result | - prop := CSSProperty new - propertyName: 'font-style'; - propertyString: 'italic'; - yourself. - result := self fontFormatter parseTextAttributesFrom: prop. - self assert: result size equals: 1. - self assert: result first emphasisCode equals: TextEmphasis italic emphasisCode \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeParsedCorrectly.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeParsedCorrectly.st new file mode 100644 index 00000000..e7aeb32d --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/test02FontStyleItalicShouldBeParsedCorrectly.st @@ -0,0 +1,10 @@ +testing +test02FontStyleItalicShouldBeParsedCorrectly + | prop result | + result := Dictionary new. + prop := CSSProperty new + propertyName: 'font-style'; + propertyString: 'italic'; + yourself. + self fontFormatter parseTextAttributesFrom: prop into: result. + self assert: (result at: #italic) equals: true \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis.st deleted file mode 100644 index 82ebb4ef..00000000 --- a/packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis.st +++ /dev/null @@ -1,10 +0,0 @@ -testing -test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis - | prop result | - prop := CSSProperty new - propertyName: 'font-weight'; - propertyString: 'bold'; - yourself. - result := self fontFormatter parseTextAttributesFrom: prop. - self assert: result size equals: 1. - self assert: result first emphasisCode equals: TextEmphasis bold emphasisCode \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeParsedCorrectly.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeParsedCorrectly.st new file mode 100644 index 00000000..13c0cb44 --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/test03FontWeightBoldShouldBeParsedCorrectly.st @@ -0,0 +1,10 @@ +testing +test03FontWeightBoldShouldBeParsedCorrectly + | prop result | + result := Dictionary new. + prop := CSSProperty new + propertyName: 'font-weight'; + propertyString: 'bold'; + yourself. + self fontFormatter parseTextAttributesFrom: prop into: result. + self assert: (result at: #bold) equals: true. \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/instance/test04ComplexFontValueShouldBeParsedCorrectly.st b/packages/HTML.package/CSSFontFormatterTest.class/instance/test04ComplexFontValueShouldBeParsedCorrectly.st new file mode 100644 index 00000000..4c8a691b --- /dev/null +++ b/packages/HTML.package/CSSFontFormatterTest.class/instance/test04ComplexFontValueShouldBeParsedCorrectly.st @@ -0,0 +1,12 @@ +testing +test04ComplexFontValueShouldBeParsedCorrectly + | prop result | + result := Dictionary new. + prop := CSSProperty new + propertyName: 'font'; + propertyString: 'bold xx-large/180% Verdana'; + yourself. + self fontFormatter parseTextAttributesFrom: prop into: result. + self assert: false equals: (result at: #italic). + self assert: true equals: (result at: #bold). + self assert: 3*2 equals: (result at: #size) \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatterTest.class/methodProperties.json b/packages/HTML.package/CSSFontFormatterTest.class/methodProperties.json index 344653b5..8ba309e5 100644 --- a/packages/HTML.package/CSSFontFormatterTest.class/methodProperties.json +++ b/packages/HTML.package/CSSFontFormatterTest.class/methodProperties.json @@ -5,6 +5,7 @@ "fontFormatter" : "rs 5/19/2014 19:50:21.108", "fontFormatter:" : "rs 5/19/2014 19:50:21.12", "setUp" : "rs 5/19/2014 19:50:35.284", - "test01FontItalicBoldShouldBeConvertedToCorrectTextEmphasis" : "rs 5/19/2014 20:14:17.246", - "test02FontStyleItalicShouldBeConvertedToCorrectTextEmphasis" : "rs 5/19/2014 20:14:23.122", - "test03FontWeightBoldShouldBeConvertedToCorrectTextEmphasis" : "rs 5/19/2014 20:14:27.71" } } + "test01FontItalicBoldShouldBeParsedCorrectly" : "rs 5/21/2014 16:21:36.626", + "test02FontStyleItalicShouldBeParsedCorrectly" : "rs 5/21/2014 16:21:29.714", + "test03FontWeightBoldShouldBeParsedCorrectly" : "rs 5/21/2014 16:21:22.976", + "test04ComplexFontValueShouldBeParsedCorrectly" : "rs 5/21/2014 16:21:15.452" } } diff --git a/packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom..st b/packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom.into..st similarity index 50% rename from packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom..st rename to packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom.into..st index 6fa68607..565acf54 100644 --- a/packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom..st +++ b/packages/HTML.package/CSSFormatter.class/instance/parseTextAttributesFrom.into..st @@ -1,3 +1,3 @@ as yet unclassified -parseTextAttributesFrom: styles +parseTextAttributesFrom: styles into: aContext self subclassResponsibility \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatter.class/methodProperties.json b/packages/HTML.package/CSSFormatter.class/methodProperties.json index 8a1beaa3..40ccf297 100644 --- a/packages/HTML.package/CSSFormatter.class/methodProperties.json +++ b/packages/HTML.package/CSSFormatter.class/methodProperties.json @@ -2,4 +2,4 @@ "class" : { }, "instance" : { - "parseTextAttributesFrom:" : "rs 5/19/2014 18:23:19.114" } } + "parseTextAttributesFrom:into:" : "rs 5/21/2014 11:55:57.472" } } diff --git a/packages/HTML.package/CSSFormatterMock.class/README.md b/packages/HTML.package/CSSFormatterMock.class/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/HTML.package/CSSFormatterMock.class/class/newWithReturnValue..st b/packages/HTML.package/CSSFormatterMock.class/class/newWithReturnValue..st deleted file mode 100644 index ed388cc3..00000000 --- a/packages/HTML.package/CSSFormatterMock.class/class/newWithReturnValue..st +++ /dev/null @@ -1,6 +0,0 @@ -instance creation -newWithReturnValue: textAttributes - - ^ self new - textAttributes: textAttributes; - yourself \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatterMock.class/instance/parseTextAttributesFrom..st b/packages/HTML.package/CSSFormatterMock.class/instance/parseTextAttributesFrom..st deleted file mode 100644 index 23f1428d..00000000 --- a/packages/HTML.package/CSSFormatterMock.class/instance/parseTextAttributesFrom..st +++ /dev/null @@ -1,3 +0,0 @@ -as yet unclassified -parseTextAttributesFrom: aCSSProperty - ^ self textAttributes \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes..st b/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes..st deleted file mode 100644 index cd419aa9..00000000 --- a/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -textAttributes: anObject - - textAttributes := anObject \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes.st b/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes.st deleted file mode 100644 index 20870a7f..00000000 --- a/packages/HTML.package/CSSFormatterMock.class/instance/textAttributes.st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -textAttributes - - ^ textAttributes \ No newline at end of file diff --git a/packages/HTML.package/CSSFormatterMock.class/methodProperties.json b/packages/HTML.package/CSSFormatterMock.class/methodProperties.json deleted file mode 100644 index ae0abd6c..00000000 --- a/packages/HTML.package/CSSFormatterMock.class/methodProperties.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "class" : { - "newWithReturnValue:" : "rs 5/19/2014 22:01:17.5" }, - "instance" : { - "parseTextAttributesFrom:" : "rs 5/19/2014 20:24:41.542", - "textAttributes" : "rs 5/19/2014 20:24:27.132", - "textAttributes:" : "rs 5/19/2014 20:24:27.144" } } diff --git a/packages/HTML.package/CSSFormatterMock.class/properties.json b/packages/HTML.package/CSSFormatterMock.class/properties.json deleted file mode 100644 index 9f5802ea..00000000 --- a/packages/HTML.package/CSSFormatterMock.class/properties.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "category" : "HTML-Tests", - "classinstvars" : [ - ], - "classvars" : [ - ], - "commentStamp" : "", - "instvars" : [ - "textAttributes" ], - "name" : "CSSFormatterMock", - "pools" : [ - ], - "super" : "CSSFormatter", - "type" : "normal" } diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap..st b/packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap..st deleted file mode 100644 index 67b89c4a..00000000 --- a/packages/HTML.package/DHtmlFormatter.class/instance/cssPrefixMap..st +++ /dev/null @@ -1,4 +0,0 @@ -accessing -cssPrefixMap: anObject - - cssPrefixMap := anObject \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/getFormatterFor..st b/packages/HTML.package/DHtmlFormatter.class/instance/getFormatterFor..st new file mode 100644 index 00000000..474378bb --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/getFormatterFor..st @@ -0,0 +1,5 @@ +formatting commands +getFormatterFor: aCSSProperty + | prefix | + prefix := self getPrefixOf: aCSSProperty propertyName. + ^ self cssPrefixMap at: prefix ifAbsent: [nil] \ No newline at end of file diff --git a/packages/HTML.package/CSSFontFormatter.class/instance/getTextAttributesFrom..st b/packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st similarity index 71% rename from packages/HTML.package/CSSFontFormatter.class/instance/getTextAttributesFrom..st rename to packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st index 898d8e42..d509ff05 100644 --- a/packages/HTML.package/CSSFontFormatter.class/instance/getTextAttributesFrom..st +++ b/packages/HTML.package/DHtmlFormatter.class/instance/getTextAttributesFrom..st @@ -1,7 +1,8 @@ -parsing +private-formatting getTextAttributesFrom: aDictionary | attribs | attribs := OrderedCollection new. (aDictionary at: #italic ifAbsent: [nil]) ifNotNil: [:italic | italic ifTrue: [ attribs add: TextEmphasis italic ]]. (aDictionary at: #bold ifAbsent: [nil]) ifNotNil: [:bold | bold ifTrue: [ attribs add: TextEmphasis bold ]]. + (aDictionary at: #size ifAbsent: [nil]) ifNotNil: [:size | attribs add: (TextFontChange fontNumber: size)]. ^ attribs \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/parseCSSProperty.into..st b/packages/HTML.package/DHtmlFormatter.class/instance/parseCSSProperty.into..st new file mode 100644 index 00000000..4d22013c --- /dev/null +++ b/packages/HTML.package/DHtmlFormatter.class/instance/parseCSSProperty.into..st @@ -0,0 +1,5 @@ +formatting commands +parseCSSProperty: aCSSProperty into: aContext + + (self getFormatterFor: aCSSProperty) + ifNotNilDo: [:formatter | formatter parseTextAttributesFrom: aCSSProperty into: aContext ] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st b/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st index c3f00ca2..acfbd1f7 100644 --- a/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st +++ b/packages/HTML.package/DHtmlFormatter.class/instance/parseTextAttributes..st @@ -1,13 +1,8 @@ formatting commands parseTextAttributes: styles - | textAttributes | - textAttributes := OrderedCollection new. - + | styleContext | + styleContext := Dictionary new. styles do: [:style | - style properties do: [:prop | - | prefix | - prefix := self getPrefixOf: prop propertyName. - (self cssPrefixMap at: prefix ifAbsent: [nil]) - ifNotNilDo: [:formatter | textAttributes addAll: (formatter parseTextAttributesFrom: prop)]]]. - - ^ textAttributes \ No newline at end of file + style properties do: [:prop | self parseCSSProperty: prop into: styleContext ]]. + + ^ self getTextAttributesFrom: styleContext \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatter.class/methodProperties.json b/packages/HTML.package/DHtmlFormatter.class/methodProperties.json index e4c9a747..d475921e 100644 --- a/packages/HTML.package/DHtmlFormatter.class/methodProperties.json +++ b/packages/HTML.package/DHtmlFormatter.class/methodProperties.json @@ -3,16 +3,18 @@ }, "instance" : { "cssPrefixMap" : "rs 5/19/2014 18:30:36.49", - "cssPrefixMap:" : "rs 5/19/2014 20:18:13.29", "decreaseFontBy:" : "bolot 5/18/2000 11:55", "endFont:" : "bolot 5/18/2000 11:23", "endHeader:" : "rs 5/18/2014 14:16:30.63", "endStyles" : "rs 5/18/2014 14:00:49.41", + "getFormatterFor:" : "rs 5/21/2014 12:18:05.082", "getPrefixOf:" : "rs 5/19/2014 18:31:23.964", + "getTextAttributesFrom:" : "rs 5/21/2014 12:45:42.142", "headerFont:" : "rs 5/18/2014 14:15:07.55", "increaseFontBy:" : "bolot 5/18/2000 11:50", "lastFontSize" : "LaurentLaffont 2/26/2010 23:13", - "parseTextAttributes:" : "rs 5/19/2014 20:17:01.466", + "parseCSSProperty:into:" : "rs 5/21/2014 12:18:30.34", + "parseTextAttributes:" : "rs 5/21/2014 12:22:27.848", "resetFont" : "bolot 5/18/2000 11:57", "setAttributes" : "LaurentLaffont 2/26/2010 23:13", "startFont:" : "rs 5/18/2014 13:53:54.124", diff --git a/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st b/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st index 24a9a0d1..a91de8c5 100644 --- a/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st +++ b/packages/HTML.package/DHtmlFormatterTest.class/instance/test01StylesShouldBeForwardedToTheCorrectFormatter.st @@ -1,15 +1,13 @@ testing test01StylesShouldBeForwardedToTheCorrectFormatter - | props result map prefixes | - map := Dictionary new. - self htmlFormatter cssPrefixMap: map. - prefixes := { - {'font'. {'font'. 'font-style'. 'font-weight'}}}. + | result mappings | + mappings := { + {CSSFontFormatter. {'font'. 'font-style'. 'font-weight'. 'font-size'}}}. - prefixes do: [:prefix | - map at: prefix first put: (CSSFormatterMock newWithReturnValue: {prefix first}). - prefix last do: [:attributeName | - props := CSSStyleRule new addProperty: (CSSProperty propertyNamed: attributeName). - result := self htmlFormatter parseTextAttributes: (OrderedCollection newFrom: {props}). + mappings do: [:mapping | + mapping last do: [:attributeName | + | prop | + prop := CSSProperty propertyNamed: attributeName. + result := self htmlFormatter getFormatterFor: prop. - self assert: (result includes: prefix first) ] ] \ No newline at end of file + self assert: result class equals: mapping first ] ] \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatterTest.class/instance/test02LastRuleShouldOverrideAllOthers.st b/packages/HTML.package/DHtmlFormatterTest.class/instance/test02LastRuleShouldOverrideAllOthers.st new file mode 100644 index 00000000..1e31a112 --- /dev/null +++ b/packages/HTML.package/DHtmlFormatterTest.class/instance/test02LastRuleShouldOverrideAllOthers.st @@ -0,0 +1,14 @@ +testing +test02LastRuleShouldOverrideAllOthers + "https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties" + | props result | + + props := CSSStyleRule new + addProperty: ((CSSProperty propertyNamed: 'font-style') propertyString: 'italic'); + addProperty: ((CSSProperty propertyNamed: 'font-weight') propertyString: 'bold'); + addProperty: ((CSSProperty propertyNamed: 'font') propertyString: 'normal'). + + result := self htmlFormatter parseTextAttributes: (OrderedCollection newFrom: {props}). + + self deny: (result anySatisfy: [:textAttr | textAttr emphasisCode = TextEmphasis italic emphasisCode]). + self deny: (result anySatisfy: [:textAttr | textAttr emphasisCode = TextEmphasis bold emphasisCode]) \ No newline at end of file diff --git a/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json b/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json index 78a34597..24bf9eec 100644 --- a/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json +++ b/packages/HTML.package/DHtmlFormatterTest.class/methodProperties.json @@ -5,4 +5,5 @@ "htmlFormatter" : "rs 5/19/2014 20:11:21.806", "htmlFormatter:" : "rs 5/19/2014 20:11:21.816", "setUp" : "rs 5/19/2014 20:11:34.988", - "test01StylesShouldBeForwardedToTheCorrectFormatter" : "rs 5/20/2014 00:11:49.748" } } + "test01StylesShouldBeForwardedToTheCorrectFormatter" : "rs 5/21/2014 12:26:17.124", + "test02LastRuleShouldOverrideAllOthers" : "rs 5/21/2014 00:09:20.766" } } diff --git a/packages/HTML.package/monticello.meta/version b/packages/HTML.package/monticello.meta/version index 513d46cd..01aebb60 100644 --- a/packages/HTML.package/monticello.meta/version +++ b/packages/HTML.package/monticello.meta/version @@ -1 +1 @@ -450d8b9a-7893-4b88-a37b-4c14f026976b \ No newline at end of file +89d4deb0-f0c3-47c1-855e-a3591c752c28 \ No newline at end of file diff --git a/packages/HTML.package/monticello.meta/version.d/HTML-rs.67_89d4deb0-f0c3-47c1-855e-a3591c752c28 b/packages/HTML.package/monticello.meta/version.d/HTML-rs.67_89d4deb0-f0c3-47c1-855e-a3591c752c28 new file mode 100644 index 00000000..ea20a9ac --- /dev/null +++ b/packages/HTML.package/monticello.meta/version.d/HTML-rs.67_89d4deb0-f0c3-47c1-855e-a3591c752c28 @@ -0,0 +1 @@ +(name 'HTML-rs.67' message 'Improve parsing, add font-size and tests, refactor' id '89d4deb0-f0c3-47c1-855e-a3591c752c28' date '21 May 2014' time '4:25:14.799 pm' author 'rs' ancestors ((id '450d8b9a-7893-4b88-a37b-4c14f026976b')) stepChildren ()) \ No newline at end of file