Skip to content

Commit e8a2446

Browse files
committed
Add table row content delimiting
1 parent 33a666a commit e8a2446

File tree

1 file changed

+31
-5
lines changed

1 file changed

+31
-5
lines changed

main.cpp

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,31 @@ template <typename T> inline bool vec_has(const vector<T> &vec, T val){
102102
return std::find(vec.begin(), vec.end(), val) != vec.end();
103103
}
104104

105-
template <typename T> inline bool node_in(myhtml_tree_node_t* node, T tag){
106-
while(node){
107-
if(node->tag_id == tag) return true;
108-
node = node->parent;
109-
}
105+
template <typename ...T> inline bool node_in(myhtml_tree_node_t* node, T... tags){
106+
while((node = node->parent))
107+
for(myhtml_tag_id_t tag : {tags...})
108+
if(node->tag_id == tag) return true;
109+
110+
return false;
111+
}
112+
113+
template <typename ...T> inline bool node_before(myhtml_tree_node_t* node, T... tags){
114+
while((node = node->next) && node->tag_id <= 0x003);
115+
116+
if(node)
117+
for(myhtml_tag_id_t tag : {tags...})
118+
if(node->tag_id == tag) return true;
119+
120+
return false;
121+
}
122+
123+
template <typename ...T> inline bool node_after(myhtml_tree_node_t* node, T... tags){
124+
while((node = node->prev) && node->tag_id <= 0x003);
125+
126+
if(node)
127+
for(myhtml_tag_id_t tag : {tags...})
128+
if(node->tag_id == tag) return true;
129+
110130
return false;
111131
}
112132

@@ -199,6 +219,12 @@ static pair<const function<void(myhtml_tree_node_t*, string&)>, const function<v
199219
case MyHTML_TAG_UL:
200220
rendered += "\n";
201221
break;
222+
case MyHTML_TAG_TH:
223+
case MyHTML_TAG_TD:
224+
if(node_before(node_iter, MyHTML_TAG_TH, MyHTML_TAG_TD)){
225+
rendered += "\t";
226+
}
227+
break;
202228
}
203229

204230
if(vec_has(breaking, node_iter->tag_id)){ // <br/>

0 commit comments

Comments
 (0)