PetitCommonMark/software/PetitMarkdown/PPCommonMarkUtils.class.st

73 lines
1.9 KiB
Smalltalk

Class {
#name : 'PPCommonMarkUtils',
#superclass : 'Object',
#classInstVars : [
'Instance'
],
#category : 'PetitMarkdown-Parser'
}
{ #category : 'as yet unclassified' }
PPCommonMarkUtils class >> instance [
Instance isNil ifTrue: [ Instance := PPCommonMarkUtils new ].
^ Instance
]
{ #category : 'as yet unclassified' }
PPCommonMarkUtils >> decodeEntities: string [
| retval |
retval := string.
retval := retval copyReplaceAll: 'ö' with: 'ö'.
retval := retval copyReplaceAll: '&' with: '&'.
retval := retval copyReplaceAll: '"' with: '"'.
^ retval
]
{ #category : 'as yet unclassified' }
PPCommonMarkUtils >> encodeEntities: string [
| retval |
retval := string.
retval := retval copyReplaceAll: '&' with: '&'.
retval := retval copyReplaceAll: '"' with: '"'.
retval := retval copyReplaceAll: '>' with: '>'.
retval := retval copyReplaceAll: '<' with: '&lt;'.
^ retval
]
{ #category : 'as yet unclassified' }
PPCommonMarkUtils >> escape: string [
| retval regex |
retval := string.
retval := retval copyReplaceAll: '\\' with: '\'.
"Remove backlashes, \! -> !"
regex := '\\[!#$%''()*+,-./:;=?@^_`{|}~]' asRegex.
retval := regex copy: retval translatingMatchesUsing: [ :match | match second asString ].
retval := retval copyReplaceAll: '\"' with: '"'.
retval := retval copyReplaceAll: '\[' with: '['.
retval := retval copyReplaceAll: '\]' with: ']'.
retval := retval copyReplaceAll: '\\' with: '\'.
^ retval
]
{ #category : 'as yet unclassified' }
PPCommonMarkUtils >> escapeUrl: string [
| retval |
retval := string.
retval := retval copyReplaceAll: ' ' with: '%20'.
retval := retval copyReplaceAll: '"' with: '%22'.
retval := retval copyReplaceAll: '\' with: '%5C'.
retval := retval copyReplaceAll: '[' with: '%5B'.
retval := retval copyReplaceAll: '`' with: '%60'.
retval := retval copyReplaceAll: '&auml;' with: '%C3%A4'.
retval := retval copyReplaceAll: '&ouml;' with: '%C3%B6'.
^ retval
]