Some minor fixes to style translation. Quote blocks should be working now. Some extra carriage returns are removed. Some extra style debug output to figure out if there are problems. Extend the test.md file to better cover cases I care about (versus cases the md parser cares about).
This commit is contained in:
parent
9e3562dd5f
commit
0c001196b1
|
@ -35,6 +35,7 @@
|
|||
|
||||
char * commandName;
|
||||
int debugEnabled = 0;
|
||||
int debugIndentLevel = 0;
|
||||
|
||||
|
||||
// Implementation
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
extern char * commandName;
|
||||
extern int debugEnabled;
|
||||
extern int debugIndentLevel;
|
||||
|
||||
|
||||
#endif /* main_h */
|
||||
|
|
|
@ -222,6 +222,10 @@ void setStyle(tStyleType styleType, uint16_t textMask, uint16_t headerSize)
|
|||
// Check to see if the previous style actually emitted any characters and if not,
|
||||
// then just overwrite it with this new style.
|
||||
currentPos = outputPos();
|
||||
|
||||
if (debugEnabled)
|
||||
fprintf(stderr, "%*ssetStyle(%u,%u,%u) @ offset %lu\n", debugIndentLevel, "", (uint16_t)styleType, textMask, headerSize, currentPos);
|
||||
|
||||
if (styleChangedAt == currentPos) {
|
||||
formatPtr->styleItems[lastStyleIndex].dataOffset = styleOffset;
|
||||
return;
|
||||
|
|
|
@ -1,45 +1,84 @@
|
|||
# h1
|
||||
## h2
|
||||
### h3
|
||||
#### h4
|
||||
##### h5
|
||||
###### h6
|
||||
# h1 *emphasis* **strong** ***stremphasis***
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
## h2 *emphasis* **strong** ***stremphasis***
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
### h3 *emphasis* **strong** ***stremphasis***
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
#### h4 *emphasis* **strong** ***stremphasis***
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
##### h5 *emphasis* **strong** ***stremphasis***
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
###### h6 *emphasis* **strong** ***stremphasis***
|
||||
|
||||
h1
|
||||
==
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
h2
|
||||
--
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
--------------------
|
||||
|
||||
indented code
|
||||
* list item code
|
||||
1. number list code
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
// indented code
|
||||
for (i = 0; i < 100; i++)
|
||||
printf("Hello, world!\n");
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
```
|
||||
fenced code
|
||||
* list item code
|
||||
1. number list code
|
||||
// fenced code
|
||||
for (i = 0; i < 100; i++)
|
||||
printf("Hello, world!\n");
|
||||
```
|
||||
|
||||
<tag attr='val' attr2="val2">
|
||||
> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
>
|
||||
> Quote which leads to a list of bullet items:
|
||||
> * list quote1
|
||||
> * list quote2
|
||||
> * list quote3
|
||||
>
|
||||
> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
> Quote which leads to a list of numbered items:
|
||||
> 1. number list quote1
|
||||
> 1. number list quote2
|
||||
> 1. number list quote3
|
||||
>
|
||||
> Quote with *emphasis* **strong** ***stremphasis***.
|
||||
|
||||
> quote
|
||||
> * list quote
|
||||
> 1. number list quote
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
* list item
|
||||
1. list item
|
||||
Paragraph which leads to a list of bullet items:
|
||||
* list item1
|
||||
* list item2
|
||||
* list item3
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
Paragraph which leads to a list of numbered items:
|
||||
1. list item1
|
||||
1. list item2
|
||||
1. list item3
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
|
||||
[ref]: /url
|
||||
|
||||
paragraph
|
||||
paragraph with *emphasis* **strong** ***stremphasis***
|
||||
A©&xA9;© Ӓ ꯍ
|
||||
`code`
|
||||
*emph* **strong** ***strong emph***
|
||||
_emph_ __strong__ ___strong emph___
|
||||
[ref] [ref][] [link](/url)
|
||||
![ref] ![ref][] ![img](/url)
|
||||
<http://example.com> <doe@example.com>
|
||||
\\ \* \. \` \
|
||||
|
|
|
@ -64,8 +64,6 @@ static MD_PARSER parser = {
|
|||
NULL // syntax
|
||||
};
|
||||
|
||||
static int debugIndentLevel = 0;
|
||||
|
||||
static tBlockListItem * blockList = NULL;
|
||||
|
||||
static uint16_t textStyleMask = STYLE_TEXT_PLAIN;
|
||||
|
@ -318,7 +316,8 @@ static int enterBlockHook(MD_BLOCKTYPE type, void * detail, void * userdata)
|
|||
newBlock->numTabs = blockList->numTabs;
|
||||
if (blockList->styleType == STYLE_TYPE_QUOTE)
|
||||
newBlock->styleType = STYLE_TYPE_QUOTE;
|
||||
newBlock->styleType = STYLE_TYPE_TEXT;
|
||||
else
|
||||
newBlock->styleType = STYLE_TYPE_TEXT;
|
||||
}
|
||||
newBlock->next = blockList;
|
||||
blockList = newBlock;
|
||||
|
@ -505,11 +504,9 @@ static int leaveBlockHook(MD_BLOCKTYPE type, void * detail, void * userdata)
|
|||
break;
|
||||
|
||||
case MD_BLOCK_UL:
|
||||
writeChar('\r');
|
||||
break;
|
||||
|
||||
case MD_BLOCK_OL:
|
||||
writeChar('\r');
|
||||
break;
|
||||
|
||||
case MD_BLOCK_LI:
|
||||
|
@ -521,11 +518,12 @@ static int leaveBlockHook(MD_BLOCKTYPE type, void * detail, void * userdata)
|
|||
break;
|
||||
|
||||
case MD_BLOCK_H:
|
||||
if (blockList != NULL)
|
||||
setStyle(blockList->styleType, textStyleMask, 0);
|
||||
writeChar('\r');
|
||||
break;
|
||||
|
||||
case MD_BLOCK_CODE:
|
||||
writeChar('\r');
|
||||
break;
|
||||
|
||||
case MD_BLOCK_P:
|
||||
|
|
Loading…
Reference in New Issue