Skip to content

Commit 05d8eae

Browse files
committed
use NSTextList, roman markers
1 parent 3e03ddf commit 05d8eae

1 file changed

Lines changed: 2 additions & 32 deletions

File tree

Aztec/Classes/TextKit/ParagraphProperty/TextList.swift

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Foundation
22
import UIKit
33

44
fileprivate let DefaultUnorderedListMarkerText = "\u{2022}"
5+
fileprivate let romanMarker = NSTextList(markerFormat: .lowercaseRoman, options: 0)
56

67
// MARK: - Text List
78
//
@@ -30,7 +31,7 @@ open class TextList: ParagraphProperty {
3031
return "\(text)."
3132
default:
3233
// marker for all levels > 2
33-
let text = getRomanNumeral(for: number)
34+
let text = romanMarker.marker(forItemNumber: number)
3435
return "\(text)."
3536
}
3637
case .unordered:
@@ -147,34 +148,3 @@ fileprivate func getLetter(for number: Int) -> String {
147148

148149
return convert(number)
149150
}
150-
151-
/// Returns the roman numeral to use as the ordered list marker text
152-
fileprivate func getRomanNumeral(for number: Int) -> String {
153-
let romanValues = [
154-
1000: "m", 900: "cm", 500: "d", 400: "cd",
155-
100: "c", 90: "xc", 50: "l", 40: "xl",
156-
10: "x", 9: "ix", 5: "v", 4: "iv", 1: "i"
157-
]
158-
159-
// used for recursion
160-
func convert(_ value: Int) -> String {
161-
guard value > 0 else {
162-
return ""
163-
}
164-
165-
if let numeral = romanValues[value] {
166-
return numeral
167-
}
168-
169-
for (key, numeral) in romanValues.sorted(by: { $0.key > $1.key }) {
170-
if value >= key {
171-
// recursive
172-
return numeral + convert(value - key)
173-
}
174-
}
175-
176-
return ""
177-
}
178-
179-
return convert(number)
180-
}

0 commit comments

Comments
 (0)