Ticket #8825: doxygen_xml2qbk.patch
File doxygen_xml2qbk.patch, 5.5 KB (added by , 9 years ago) |
---|
-
libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp
.../tools/doxygen_xml2qbk/doxygen_elements.hpp | 2 +- .../tools/doxygen_xml2qbk/doxygen_xml_parser.hpp | 43 +++++++++++++++++++--- .../tools/doxygen_xml2qbk/quickbook_output.hpp | 29 +++++++++++++-- 3 files changed, 64 insertions(+), 10 deletions(-) diff --git a/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp b/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp index 04d50dc..43fc98b 100644
a b struct class_or_struct : public element 164 164 std::vector<function> functions; 165 165 166 166 std::vector<base_element> typedefs; 167 std::vector< base_element> variables;167 std::vector<parameter> variables; 168 168 169 169 std::vector<base_class> base_classes; 170 170 }; -
libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp
diff --git a/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp b/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp index 0a98f42..119a573 100644
a b static void parse(rapidxml::xml_node<>* node, configuration const& config, docum 691 691 } 692 692 else if (kind == "variable") 693 693 { 694 if (boost::equals(get_attribute(node, "static"), "yes") 695 && boost::equals(get_attribute(node, "mutable"), "no") 696 && boost::equals(get_attribute(node, "prot"), "public")) 694 if (boost::equals(get_attribute(node, "prot"), "public")) 697 695 { 698 std::string name = parse_named_node(node->first_node(), "name"); 699 doc.cos.variables.push_back(base_element(name)); 700 doc.cos.variables.back().id = id; 696 parameter p; 697 p.id = id; 698 for(rapidxml::xml_node<>* var_node = node->first_node(); var_node; var_node=var_node->next_sibling()) 699 { 700 if(boost::equals(var_node->name(), "name")) 701 { 702 p.name = var_node->value(); 703 } 704 else if(boost::equals(var_node->name(), "type")) 705 { 706 get_contents(var_node->first_node(), p.fulltype); 707 p.type = p.fulltype; 708 //boost::replace_all(p.type, " const", ""); 709 //boost::trim(p.type); 710 //boost::replace_all(p.type, "&", ""); 711 //boost::replace_all(p.type, "*", ""); 712 boost::trim(p.type); 713 714 // If alt output is used retrieve type with QBK links 715 if ( configuration::alt == config.output_style ) 716 { 717 p.fulltype_without_links = p.fulltype; 718 p.fulltype.clear(); 719 parse_para(var_node->first_node(), config, p.fulltype, p.skip); 720 } 721 } 722 else if(boost::equals(var_node->name(), "briefdescription")) 723 { 724 parse_para(var_node->first_node(), config, p.brief_description, p.skip); 725 } 726 else if(p.brief_description.empty() && boost::equals(var_node->name(), "detaileddescription")) 727 { 728 parse_para(var_node->first_node(), config, p.brief_description, p.skip); 729 } 730 } 731 doc.cos.variables.push_back(p); 701 732 } 702 733 } 703 734 -
libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp
diff --git a/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp b/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp index 34295b7..0cb6f24 100644
a b void quickbook_output(class_or_struct const& cos, configuration const& config, s 544 544 out << std::endl; 545 545 } 546 546 547 out << "{" << std::endl 548 << " // ..." << std::endl 549 << "};" << std::endl 547 out << "{" << std::endl; 548 if (! cos.variables.empty()) 549 { 550 size_t maxlength = 0; 551 BOOST_FOREACH(parameter const& p, cos.variables) 552 { 553 if (! p.skip) 554 { 555 size_t length = 6 + p.fulltype.size() + p.name.size(); 556 if (length > maxlength) maxlength = length; 557 } 558 } 559 BOOST_FOREACH(parameter const& p, cos.variables) 560 { 561 if (! p.skip) 562 { 563 size_t length = 4 + p.fulltype.size() + p.name.size(); 564 out << " " << p.fulltype << " " << p.name << ";"; 565 while(length++ < maxlength) out << " "; 566 out << "// " << p.brief_description << std::endl; 567 } 568 } 569 } 570 else 571 out << " // ..." << std::endl; 572 out << "};" << std::endl 550 573 << "``" << std::endl << std::endl; 551 574 quickbook_markup(cos.qbk_markup, markup_after, markup_synopsis, out); 552 575