void title() { out << "<title>" << std::endl; std::wstring text=L"unset"; if (dom->children.size() > 0) { htmlencode(out,gettext(dom->children[0])); } out << "</title>" << std::endl; }
void process(NodeSP child) { switch(child->type()) { case Node::STATEMENTS: for (size_t i=0; i<child->children.size(); ++i) { process(child->children[i]); if(in_paragraph == true && (current > p_count || p_count == 1)){ out<<"</p>"; in_paragraph = false; } } break; case Node::PARAGRAPH: if(in_paragraph == false){ out << "<p>"; in_paragraph = true; } current++; htmlencode(out,gettext(child)); /* if(in_paragraph == true && current == p_count){ out << "</p>"; in_paragraph = false; } */ break; case Node::MARKUP: out << "<b>"; for (size_t i=0; i<child->children.size(); ++i) { process(child->children[i]); } out << "</b>"; break; } }
string HtmlToGG::filter(const string& str) { vector<HtmlTag> tagsList; unsigned int i=0, max=str.size(); string ret, name, inside; bool tagName=false; // wciaz trwa nazwa tagu (nie bylo spacji) HtmlTag temp; while(i<max) { if(str[i]=='<') { temp.start = i; name.clear(); tagName=true; } else if(str[i]==' ') { tagName=false; } else if(str[i]=='>' && name.size()>2) { tagName=false; temp.end = i; name.assign(name.substr(1,name.size()-1)); temp.name.assign(name); tagsList.push_back(temp); temp.start=0; temp.end=0; temp.name.clear(); } if(tagName) { name+=str[i]; } i++; } unsigned int last = 0; if(tagsList.empty()) return str; for(i=0;i<tagsList.size();i++) { ret += str.substr(last,tagsList[i].start-last); last = tagsList[i].end+1; if(isOkTag(tagsList[i].name)) { ret += str.substr(tagsList[i].start,tagsList[i].end-tagsList[i].start+1); } else { ret += htmlencode(str.substr(tagsList[i].start,tagsList[i].end-tagsList[i].start+1)); } } ret += str.substr(last,str.size()-last); return ret; }
void MarkupNode::print(std::ostream &out) const { htmlencode(out,markup); Node::print(out); out << std::endl; }
void ParagraphNode::print(std::ostream &out) const { out << "Paragraph[content=<p>"; htmlencode(out,content); out << "</p>]"; Node::print(out); }