mirror of
				https://github.com/SphericalKat/medium.rip.git
				synced 2025-10-30 18:35:57 +00:00 
			
		
		
		
	fix(markup): handle UTF-16
Signed-off-by: Sphericalkat <amolele@gmail.com>
This commit is contained in:
		
							parent
							
								
									aacabdd54d
								
							
						
					
					
						commit
						f1ec8f7729
					
				| @ -14,7 +14,7 @@ import ( | ||||
| ) | ||||
| 
 | ||||
| func PostData(postId string) (*entities.MediumResponse, error) { | ||||
| 	if config.Conf.Env == "devd" { | ||||
| 	if config.Conf.Env == "dev" { | ||||
| 		file, err := os.ReadFile("response.json") | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
|  | ||||
| @ -4,6 +4,7 @@ import ( | ||||
| 	"fmt" | ||||
| 	"sort" | ||||
| 	"strings" | ||||
| 	"unicode/utf16" | ||||
| 
 | ||||
| 	"github.com/medium.rip/pkg/entities" | ||||
| ) | ||||
| @ -36,7 +37,7 @@ func ranges(text string, markups []entities.Markup) []RangeWithMarkup { | ||||
| 
 | ||||
| 	// include the start and end indexes of the text
 | ||||
| 	markupBoundaries = append([]int{0}, markupBoundaries...) | ||||
| 	markupBoundaries = append(markupBoundaries, len([]rune(text))) | ||||
| 	markupBoundaries = append(markupBoundaries, len(utf16.Encode([]rune(text)))) | ||||
| 
 | ||||
| 	// remove duplicates
 | ||||
| 	markupBoundaries = unique(markupBoundaries) | ||||
| @ -72,8 +73,10 @@ func ranges(text string, markups []entities.Markup) []RangeWithMarkup { | ||||
| func ConvertMarkup(text string, markups []entities.Markup) string { | ||||
| 	var markedUp strings.Builder | ||||
| 	for _, r := range ranges(text, markups) { | ||||
| 		runeText := []rune(text) // very important otherwise we can't handle UTF-8
 | ||||
| 		textToWrap := string(runeText[r.Range[0]:r.Range[1]]) | ||||
| 		// handle utf-16
 | ||||
| 		utf16Text := utf16.Encode([]rune(text)) | ||||
| 		ranged := utf16Text[r.Range[0]:r.Range[1]] | ||||
| 		textToWrap := string(utf16.Decode(ranged)) | ||||
| 		markedUp.WriteString(wrapInMarkups(textToWrap, r.Markups)) | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										1949
									
								
								response.json
									
									
									
									
									
								
							
							
						
						
									
										1949
									
								
								response.json
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user