IdFormatter class >> #appendFormat:request:response:shelf:book:page: appendFormat: text request: request response: response shelf: shelf book: book page: page | append content today string color signPos colorPos | content _ String streamContents: [:stream | (text includes: $_) ifTrue: [ "_ means appends are seperated by lines" stream nextPutAll: '_'; nextPutAll: String cr]. string _ (((book settingsAt: 'saveFormatter') format: (request fieldsKey: 'append') request: request response: response shelf: shelf book: book page: page)) asString. (text includes: $%) ifTrue: [ "% means appends color tag" color _ ((signPos _ string reverse findString: '--') > 0 and: [ ((colorPos _ string lastIndexOf: $%) > 0) and: [ (colorPos _ string size - colorPos) < signPos]]) ifTrue: [self estimBrowerColor: (string copyLast: colorPos) withoutTrailingBlanks asLowercase] ifFalse: [nil]. color ifNotNil: [ stream nextPutAll: '<font color=', color, '>'. string _ string copyFrom: 1 to: string size - colorPos - 1]]. stream nextPutAll: string. color ifNotNil: [stream nextPutAll: '</font>']. (text includes: $@) ifTrue: [ "@ means appends include timestamps" today _ Date today. stream nextPutAll: ' <tt><em><font color=gray>- '; nextPutAll: today yyyymmdd; nextPutAll: ', '; nextPutAll: Time now print24. stream nextPutAll: '</font></em></tt>']. stream nextPutAll: String cr]. "+ means appends are self replicating ^ means append areas stay at top and appends go down" append _ text, String cr. ^((text occurrencesOf: $+) > 1) ifTrue: [append, content, append] ifFalse: [(text includes: $^) ifTrue: [append, content] ifFalse: [content, append]]
IdFormatter class estimBrowerColor: {utility} estimBrowerColor: aString | match m color | match _ 0. #(navy green maroon darkblue darkred midnightblue mediumblue darkslategray indigo forestgreen saddlebrown darkolivegreen firebrick brown blue lime red teal purple olive seagreen darkslateblue darkcyan darkmagenta olivedrab sienna crimson limegreen dimgray orangered darkgoldenrod chocolate mediumseagreen mediumvioletred darkviolet lawngreen lightseagreen steelblue springgreen chartreuse slategray gray indianred royalblue darkorange slateblue peru mediumspringgreen blueviolet darkorchid lightslategray yellowgreen cadetblue darkturquoise goldenrod orange deeppink tomato dodgerblue deepskyblue coral mediumslateblue gold darkseagreen rosybrown greenyellow mediumaquamarine mediumpurple palevioletred darkkhaki mediumorchid mediumturquoise cornflowerblue salmon turquoise lightcoral sandybrown darksalmon darkgray cyan aqua magenta fuchsia yellow lightgreen tan lightsalmon hotpink burlywood orchid palegreen skyblue silver lightskyblue aquamarine lightsteelblue plum violet khaki lightblue thistle powderblue lightpink lightgrey palegoldenrod wheat pink navajowhite paleturquoise peachpuff gainsboro moccasin bisque blanchedalmond antiquewhite papayawhip mistyrose lavender beige lightgoldenrodyellow lemonchiffon linen cornsilk oldlace lightcyan lightyellow honeydew whitesmoke seashell lavenderblush aliceblue floralwhite azure mintcream ivory ghostwhite snow) do: [:c | match < (m _ c howManyMatch: aString) ifTrue: [color _ c. match _ m]]. ^ color
このページを編集 (3413 bytes)
以下の 1 ページから参照されています。 |
This page has been visited 2863 times.