Consider the following problem - Pier 2 allows one to create pages that have non-standard text (like MS curly quotes, dashes, and ...). Pier 3 raises errors when a page has the multi-character coding present (if the text is added manually, it is converted - ie the curly quote turns to Character value: 8217).
One way of discovering how quantify how much needs fixed is the following workspace code:
(PRPathLookup start: (PRKernel instances detect: [:e | e name = 'Pier']) root path: '/path/to/Documentation') enumerator everything select: [:page | page hasDocument and: [page contents contains: [:char | char asciiValue = 226]]].
To print them out in the transcript:
| hasPrintedName string | PRKernel instances anyOne root enumerator everything do: [:page | page hasDocument and: [ hasPrintedName := false. string := page contents. string withIndexDo: [:char :index | char asciiValue = 226 ifTrue: [ hasPrintedName ifFalse: [hasPrintedName := true. Transcript cr; show: page absolutePath]. Transcript cr; show: (string copyFrom: (index - 10 max: 1) to: (index + 12 min: string size)) ]]]]
The class Pier2ToPier3Converter in ClassicPier has been setup specifically for this.