@@ -83,32 +83,77 @@ DEF PROCtext
8383 PROCshowCursor
8484ENDPROC
8585
86+ DEF FNmarkdown_header$(L$)
87+ R$ = ""
88+ IF LEFT$(L$, 7) = "###### " THEN R$ = "###### "
89+ IF LEFT$(L$, 6) = "##### " THEN R$ = "##### "
90+ IF LEFT$(L$, 5) = "#### " THEN R$ = "#### "
91+ IF LEFT$(L$, 4) = "### " THEN R$ = "### "
92+ IF LEFT$(L$, 3) = "## " THEN R$ = "## "
93+ IF LEFT$(L$, 2) = "# " THEN R$ = "# "
94+ = R$
95+
96+ DEF FNmarkdown_wrap_pos(L$, width)
97+ depth = 0
98+ last_space = 0
99+ i = 1
100+ result = 0
101+
102+ IF LEN(L$) <= width THEN
103+ result = LEN(L$)
104+ ELSE
105+ REPEAT
106+ C$ = MID$(L$, i, 1)
107+ IF C$ = "[" THEN depth = depth + 1
108+ IF C$ = "(" AND depth > 0 THEN depth = depth + 1
109+ IF C$ = ")" AND depth > 0 THEN depth = depth - 1
110+ IF C$ = "]" AND depth > 0 THEN depth = depth - 1
111+ IF C$ = " " AND depth = 0 THEN last_space = i
112+ i = i + 1
113+ UNTIL i > width
114+ IF last_space > 0 THEN
115+ result = last_space
116+ ELSE
117+ i = width + 1
118+ REPEAT
119+ C$ = MID$(L$, i, 1)
120+ IF C$ = "]" THEN depth = 0
121+ IF C$ = ")" THEN depth = 0
122+ IF C$ = " " AND depth = 0 AND result = 0 THEN result = i
123+ i = i + 1
124+ UNTIL i > LEN(L$) OR result <> 0
125+ IF result = 0 THEN result = LEN(L$)
126+ ENDIF
127+ ENDIF
128+ = result
129+
86130REM load a file into the array, translating TAB to four spaces
87131DEF PROCload(file$)
88- PROChttp_get("https ://brainbox.cc /")
132+ PROChttp_get("http ://frogfind.com /")
89133 body$ = FNhttp_result$("body")
134+ body$ = MARKDOWN$(body$)
90135 body$ = REPLACE$(body$, CHR$(13) + CHR$(10), CHR$(13))
91136 body$ = REPLACE$(body$, CHR$(10) + CHR$(13), CHR$(13))
92137 body$ = REPLACE$(body$, CHR$(10), CHR$(13))
93138 lines = 0
94139 REPEAT
95140 CONT$ = TOKENIZE$(body$, CHR$(13))
96- IF LEN(CONT$) > TERMWIDTH - 2 THEN
97- REPEAT
98- L$ = LEFT$(CONT$, TERMWIDTH - 2)
99- CONT$ = MID$(CONT$, TERMWIDTH - 2, LEN(CONT$))
141+ header$ = FNmarkdown_header$(CONT$)
142+ REPEAT
143+ cut = FNmarkdown_wrap_pos(CONT$, TERMWIDTH - 2)
144+ IF cut < LEN(CONT$) THEN
145+ L$ = LEFT$(CONT$, cut)
100146 content$(lines) = L$
101147 lines = lines + 1
102- IF lines = max THEN
103- PROCgrow
104- ENDIF
105- UNTIL LEN(CONT$) <= TERMWIDTH - 2
106- ENDIF
148+ IF lines >= max THEN PROCgrow
149+ CONT$ = MID$(CONT$, cut + 1, LEN(CONT$))
150+ IF LEFT$(CONT$, 1) = " " THEN CONT$ = MID$(CONT$, 2, LEN(CONT$))
151+ IF header$ <> "" THEN CONT$ = header$ + CONT$
152+ ENDIF
153+ UNTIL cut >= LEN(CONT$)
107154 content$(lines) = CONT$
108155 lines = lines + 1
109- IF lines = max THEN
110- PROCgrow
111- ENDIF
156+ IF lines >= max THEN PROCgrow
112157 UNTIL body$ = ""
113158ENDPROC
114159
0 commit comments