Add list parsing
This commit is contained in:
parent
65cf0357f2
commit
221ec20578
|
@ -10,7 +10,8 @@ void addH2 (const char *line);
|
||||||
void addH3 (const char *line);
|
void addH3 (const char *line);
|
||||||
void addLink (const char *url, const char *text);
|
void addLink (const char *url, const char *text);
|
||||||
void addCode (const char *meta, const char *code);
|
void addCode (const char *meta, const char *code);
|
||||||
void addQuote (const char *line);
|
void addQuote (const char *text);
|
||||||
|
void addUList (const char *text);
|
||||||
|
|
||||||
// general functions
|
// general functions
|
||||||
|
|
||||||
|
@ -115,21 +116,68 @@ parseFile (char *path)
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (fgets(codeline, 4096, fileToParse) == NULL)
|
if (fgets (codeline, 4096, fileToParse) == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
size = strlen(codeline);
|
size = strlen (codeline);
|
||||||
if (size < 3 || codeline[0] != '`' || codeline[1] != '`' || codeline[2] != '`')
|
if (size < 3 || codeline[0] != '`' || codeline[1] != '`' || codeline[2] != '`')
|
||||||
strcat(code, codeline);
|
strcat (code, codeline);
|
||||||
}
|
}
|
||||||
while (codeline[0] != '`' || codeline[1] != '`' || codeline[2] != '`');
|
while (codeline[0] != '`' || codeline[1] != '`' || codeline[2] != '`');
|
||||||
|
|
||||||
// Remove tailing '\n' for both meta and code
|
// Remove tailing '\n' for both meta and code
|
||||||
size = strlen(code);
|
size = strlen (code);
|
||||||
code[size - 1] = '\0';
|
code[size - 1] = '\0';
|
||||||
|
|
||||||
addCode (line + 3, code);
|
addCode (line + 3, code);
|
||||||
}
|
}
|
||||||
|
else if (size > 1 && line[0] == '*')
|
||||||
|
{
|
||||||
|
char text[4096] = "";
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
char buffer[4096] = "";
|
||||||
|
int linePos = 1;
|
||||||
|
int bufferPos;
|
||||||
|
|
||||||
|
strcat (buffer, "•");
|
||||||
|
bufferPos = strlen (buffer);
|
||||||
|
buffer[bufferPos++] = ' ';
|
||||||
|
|
||||||
|
// remove heading space
|
||||||
|
while (line[linePos] == ' ' && linePos < size)
|
||||||
|
linePos++;
|
||||||
|
|
||||||
|
while (line[linePos] != '\n' && linePos < size)
|
||||||
|
{
|
||||||
|
buffer[bufferPos] = line[linePos];
|
||||||
|
linePos++;
|
||||||
|
bufferPos++;
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer[bufferPos] = '\n';
|
||||||
|
buffer[bufferPos + 1] = '\0';
|
||||||
|
|
||||||
|
strcat (text, buffer);
|
||||||
|
|
||||||
|
if (fgets (line, 4096, fileToParse) == NULL)
|
||||||
|
break;
|
||||||
|
|
||||||
|
size = strlen (line);
|
||||||
|
}
|
||||||
|
while (line[0] == '*');
|
||||||
|
|
||||||
|
//we seek the previous line
|
||||||
|
if (! feof (fileToParse))
|
||||||
|
fseek (fileToParse, -size, SEEK_CUR);
|
||||||
|
|
||||||
|
// Remove tailing '\n' for both meta and code
|
||||||
|
size = strlen(text);
|
||||||
|
text[size - 1] = '\0';
|
||||||
|
|
||||||
|
addUList (text);
|
||||||
|
}
|
||||||
else if (size > 1 && line[0] == '>')
|
else if (size > 1 && line[0] == '>')
|
||||||
{
|
{
|
||||||
int i = 1;
|
int i = 1;
|
||||||
|
@ -168,21 +216,21 @@ main (int argc,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
addH1 (const char *text)
|
addH1 (const char *line)
|
||||||
{
|
{
|
||||||
printf ("h1 {\n%s\n}\n", text);
|
printf ("h1 {\n%s\n}\n", line);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
addH2 (const char *text)
|
addH2 (const char *line)
|
||||||
{
|
{
|
||||||
printf ("h2 {\n%s\n}\n", text);
|
printf ("h2 {\n%s\n}\n", line);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
addH3 (const char *text)
|
addH3 (const char *line)
|
||||||
{
|
{
|
||||||
printf ("h3 {\n%s\n}\n", text);
|
printf ("h3 {\n%s\n}\n", line);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -207,4 +255,10 @@ addQuote (const char *text)
|
||||||
printf ("quote {\n%s\n}\n", text);
|
printf ("quote {\n%s\n}\n", text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
addUList (const char *text)
|
||||||
|
{
|
||||||
|
printf ("ulist {\n%s\n}\n", text);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue