4
4
* https://github.com/marknote/MarknoteParser
5
5
*/
6
6
7
- import UIKit
7
+ import Foundation
8
8
9
9
public class MarkNoteParser : NSObject {
10
10
@@ -76,20 +76,20 @@ public class MarkNoteParser: NSObject {
76
76
// found
77
77
if left [ endTag - 1 ] == " / " {
78
78
//auto close: <XXX />
79
- self . output += left. substringToIndex ( advance ( left. startIndex, endTag + 1 ) )
79
+ self . output += left. substringToIndex ( left. startIndex. advancedBy ( endTag + 1 ) )
80
80
if endTag < left. length - 2 {
81
- proceedHTMLTags ( left. substringFromIndex ( advance ( left. startIndex, endTag + 1 ) ) )
81
+ proceedHTMLTags ( left. substringFromIndex ( left. startIndex. advancedBy ( endTag + 1 ) ) )
82
82
}
83
83
} else {
84
84
// there is a close tag
85
85
currentPos = endTag
86
86
if endTag <= left. length - 1 {
87
- left = left. substringFromIndex ( advance ( left. startIndex, endTag + 1 ) )
87
+ left = left. substringFromIndex ( left. startIndex. advancedBy ( endTag + 1 ) )
88
88
endTag = left. indexOf ( " > " )
89
89
if endTag > 0 {
90
90
self . output += input. substring ( tagBegin, end: tagBegin + endTag + currentPos + 1 ) //+ left.substringToIndex(advance(left.startIndex,endTag ))
91
91
if endTag < left. length - 1 {
92
- left = left. substringFromIndex ( advance ( left. startIndex, endTag + 1 ) )
92
+ left = left. substringFromIndex ( left. startIndex. advancedBy ( endTag + 1 ) )
93
93
proceedHTMLTags ( left)
94
94
return
95
95
}
@@ -178,7 +178,7 @@ public class MarkNoteParser: NSObject {
178
178
var cssClass = " no-highlight "
179
179
if line. length > " ``` " . length {
180
180
//prettyprint javascript prettyprinted
181
- let remaining = line. substringFromIndex ( advance ( line. startIndex, " ``` " . length) )
181
+ let remaining = line. substringFromIndex ( line. startIndex. advancedBy ( " ``` " . length) )
182
182
cssClass = " prettyprint lang- \( remaining) "
183
183
}
184
184
output += " <pre class= \" \( cssClass) \" > \n "
@@ -211,7 +211,7 @@ public class MarkNoteParser: NSObject {
211
211
handleLine ( line)
212
212
if isCurrentLineNeedBr
213
213
&& lines [ i] . length >= 2
214
- && lines [ i] . substringFromIndex ( advance ( lines [ i] . startIndex, lines [ i] . length - 2 ) ) == " " {
214
+ && lines [ i] . substringFromIndex ( lines [ i] . startIndex. advancedBy ( lines [ i] . length - 2 ) ) == " " {
215
215
output += " <br/> "
216
216
}
217
217
@@ -296,7 +296,7 @@ public class MarkNoteParser: NSObject {
296
296
var nFindHead = 0
297
297
var pos : String . Index = line. startIndex
298
298
for var i = 0 ; i <= 6 && i < line. characters. count; i++ {
299
- pos = advance ( line. startIndex, i)
299
+ pos = line. startIndex. advancedBy ( i)
300
300
if line [ pos] == headerChar {
301
301
nFindHead = i + 1
302
302
} else {
@@ -322,7 +322,7 @@ public class MarkNoteParser: NSObject {
322
322
323
323
if line [ 0 ] == " > " {
324
324
output += " <blockquote> "
325
- line = line. substringFromIndex ( advance ( line. startIndex, " > " . length) )
325
+ line = line. substringFromIndex ( line. startIndex. advancedBy ( " > " . length) )
326
326
endTags. append ( " </blockquote> " )
327
327
}
328
328
@@ -332,7 +332,7 @@ public class MarkNoteParser: NSObject {
332
332
333
333
output += " <h \( nFindHead) > "
334
334
endTags. append ( " </h \( nFindHead) > " )
335
- pos = advance ( pos, nFindHead)
335
+ pos = pos. advancedBy ( nFindHead)
336
336
} else {
337
337
beginParagraph ( )
338
338
}
@@ -355,7 +355,7 @@ public class MarkNoteParser: NSObject {
355
355
let len = line. length
356
356
let start = line. startIndex
357
357
for var i = 0 ; i < len ; i++ {
358
- let ch : Character = line [ advance ( start, i) ]
358
+ let ch : Character = line [ start. advancedBy ( i) ]
359
359
360
360
switch ch {
361
361
case " * " , " _ " , " ~ " :
@@ -367,26 +367,26 @@ public class MarkNoteParser: NSObject {
367
367
if ch == " ~ " {
368
368
strong = " del "
369
369
}
370
- if line [ advance ( start, i + 1 ) ] == ch {
370
+ if line [ start. advancedBy ( i + 1 ) ] == ch {
371
371
//possible **
372
- let remaining = line. substringFromIndex ( advance ( start, i + 2 ) )
372
+ let remaining = line. substringFromIndex ( start. advancedBy ( i + 2 ) )
373
373
i += scanClosedChar ( MarkNoteParser . charArray ( ch, len: 2 ) , inStr: remaining, tag: strong) + 1
374
374
} else {
375
- let remaining = line. substringFromIndex ( advance ( start, i + 1 ) )
375
+ let remaining = line. substringFromIndex ( start. advancedBy ( i + 1 ) )
376
376
i += scanClosedChar ( " \( ch) " , inStr: remaining, tag: " em " )
377
377
}
378
378
case " ` " :
379
- let remaining = line. substringFromIndex ( advance ( start, i + 1 ) )
379
+ let remaining = line. substringFromIndex ( start. advancedBy ( i + 1 ) )
380
380
i += scanClosedChar ( " ` " , inStr: remaining, tag: " code " )
381
381
isCurrentLineNeedBr = false
382
382
383
383
case " ! " :
384
- if i >= line. length - 1 || line [ advance ( start, i + 1 ) ] != " [ " {
384
+ if i >= line. length - 1 || line [ start. advancedBy ( i + 1 ) ] != " [ " {
385
385
output. append ( ch)
386
386
continue
387
387
}
388
388
i++
389
- let remaining = line. substringFromIndex ( advance ( start, i + 1 ) )
389
+ let remaining = line. substringFromIndex ( start. advancedBy ( i + 1 ) )
390
390
let posArray = MarkNoteParser . detectPositions ( [ " ] " , " ( " , " ) " ] , inStr: remaining)
391
391
if posArray. count == 3 {
392
392
let img = ImageTag ( )
@@ -413,7 +413,7 @@ public class MarkNoteParser: NSObject {
413
413
}
414
414
415
415
case " [ " :
416
- let remaining = line. substringFromIndex ( advance ( start, i + 1 ) )
416
+ let remaining = line. substringFromIndex ( start. advancedBy ( i + 1 ) )
417
417
let posArray = MarkNoteParser . detectPositions ( [ " ] " , " ( " , " ) " ] , inStr: remaining)
418
418
if posArray. count == 3 {
419
419
let link = LinkTag ( )
@@ -427,8 +427,8 @@ public class MarkNoteParser: NSObject {
427
427
if pos > 0 && pos < remaining. length - " ]: " . length {
428
428
// is reference definition
429
429
let info = ReferenceDefinition ( )
430
- info. key = remaining. substringToIndex ( advance ( remaining. startIndex, pos ) )
431
- let remaining2 = remaining. substringFromIndex ( advance ( remaining. startIndex, pos + " ]: " . length ) )
430
+ info. key = remaining. substringToIndex ( remaining. startIndex. advancedBy ( pos ) )
431
+ let remaining2 = remaining. substringFromIndex ( remaining. startIndex. advancedBy ( pos + " ]: " . length ) )
432
432
info. url = URLTag ( url: remaining2)
433
433
self . arrReferenceInfo. append ( info)
434
434
i += pos + " ]: " . length + remaining2. length
@@ -470,7 +470,7 @@ public class MarkNoteParser: NSObject {
470
470
let count = toFind. count
471
471
var lastPos = 0
472
472
for var i = 0 ; i < count ; i++ {
473
- let pos = inStr. substringFromIndex ( advance ( inStr. startIndex, lastPos) ) . indexOf ( toFind [ i] )
473
+ let pos = inStr. substringFromIndex ( inStr. startIndex. advancedBy ( lastPos) ) . indexOf ( toFind [ i] )
474
474
lastPos += pos
475
475
if pos >= 0 {
476
476
posArray. append ( lastPos)
@@ -484,7 +484,7 @@ public class MarkNoteParser: NSObject {
484
484
func scanClosedChar( ch: String , inStr: String , tag: String ) -> Int {
485
485
let pos = inStr. indexOf ( ch)
486
486
if pos > 0 {
487
- output += " < \( tag) > " + inStr. substringToIndex ( advance ( inStr. startIndex, pos ) ) + " </ \( tag) > "
487
+ output += " < \( tag) > " + inStr. substringToIndex ( inStr. startIndex. advancedBy ( pos ) ) + " </ \( tag) > "
488
488
} else {
489
489
output += ch
490
490
}
@@ -495,8 +495,8 @@ public class MarkNoteParser: NSObject {
495
495
let trimmed = input. trim ( )
496
496
let pos = trimmed. indexOf ( " " )
497
497
if pos > 0 {
498
- array. append ( trimmed. substringToIndex ( advance ( trimmed. startIndex, pos) ) )
499
- array. append ( trimmed. substringFromIndex ( advance ( trimmed. startIndex, pos + 1 ) ) )
498
+ array. append ( trimmed. substringToIndex ( trimmed. startIndex. advancedBy ( pos) ) )
499
+ array. append ( trimmed. substringFromIndex ( trimmed. startIndex. advancedBy ( pos + 1 ) ) )
500
500
} else {
501
501
array. append ( trimmed)
502
502
}
0 commit comments