summaryrefslogtreecommitdiffstats
path: root/src/boost/tools/docca/example
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/boost/tools/docca/example
parentInitial commit. (diff)
downloadceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz
ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/tools/docca/example')
-rw-r--r--src/boost/tools/docca/example/Jamfile129
-rw-r--r--src/boost/tools/docca/example/boostbook.dtd439
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_101.hpp22
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_33.hpp27
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_34.hpp37
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_38.hpp35
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_44.hpp60
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_47.hpp34
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_48.hpp47
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_52.hpp35
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_53.hpp44
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_55.hpp26
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_63.hpp41
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_69.hpp27
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_70.hpp32
-rw-r--r--src/boost/tools/docca/example/include/docca/issue_78.hpp27
-rw-r--r--src/boost/tools/docca/example/index.xml14
-rw-r--r--src/boost/tools/docca/example/main.qbk31
-rw-r--r--src/boost/tools/docca/example/makeqbk.sh13
-rw-r--r--src/boost/tools/docca/example/reference.xsl14
-rw-r--r--src/boost/tools/docca/example/xsl/custom-overrides.xsl25
21 files changed, 1159 insertions, 0 deletions
diff --git a/src/boost/tools/docca/example/Jamfile b/src/boost/tools/docca/example/Jamfile
new file mode 100644
index 000000000..4a68cc56b
--- /dev/null
+++ b/src/boost/tools/docca/example/Jamfile
@@ -0,0 +1,129 @@
+#
+# Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
+# Copyright (c) 2021 Dmitry Arkhipov (grisumbras@gmail.com)
+#
+# Distributed under the Boost Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# Official repository: https://github.com/cppalliance/json
+#
+
+project json/doc ;
+
+import boostbook ;
+import ../../../tools/docca/docca.jam ;
+
+
+# Produce the reference.qbk from C++ sources
+docca.reference reference.qbk
+ : xsl/custom-overrides.xsl
+ [ glob-tree-ex include/docca : *.hpp ]
+ : <doxygen:param>PROJECT_NAME=docca
+ <doxygen:param>PROJECT_NUMBER=
+ <doxygen:param>PROJECT_BRIEF="Documentation Library"
+ <doxygen:param>ABBREVIATE_BRIEF=
+ <doxygen:param>ALWAYS_DETAILED_SEC=YES
+ <doxygen:param>INLINE_INHERITED_MEMB=YES
+ <doxygen:param>FULL_PATH_NAMES=NO
+ <doxygen:param>JAVADOC_AUTOBRIEF=YES
+ <doxygen:param>MULTILINE_CPP_IS_BRIEF=YES
+ <doxygen:param>DISTRIBUTE_GROUP_DOC=YES
+ <doxygen:param>EXTRACT_ALL=YES
+ <doxygen:param>EXTRACT_PRIVATE=YES
+ <doxygen:param>EXTRACT_STATIC=YES
+ <doxygen:param>EXTRACT_LOCAL_CLASSES=NO
+ <doxygen:param>SHOW_INCLUDE_FILES=NO
+ <doxygen:param>INLINE_INFO=NO
+ <doxygen:param>SORT_MEMBER_DOCS=NO
+ <doxygen:param>SORT_MEMBERS_CTORS_1ST=YES
+ <doxygen:param>GENERATE_TODOLIST=NO
+ <doxygen:param>GENERATE_TESTLIST=NO
+ <doxygen:param>GENERATE_BUGLIST=NO
+ <doxygen:param>GENERATE_DEPRECATEDLIST=NO
+ <doxygen:param>SHOW_USED_FILES=NO
+ <doxygen:param>SHOW_FILES=NO
+ <doxygen:param>SHOW_NAMESPACES=NO
+ <doxygen:param>FILE_PATTERNS=
+ <doxygen:param>EXAMPLE_PATTERNS=
+ <doxygen:param>MACRO_EXPANSION=YES
+ <doxygen:param>EXPAND_ONLY_PREDEF=YES
+ <doxygen:param>PREDEFINED="\\
+ DOXYGEN \\
+ GENERATING_DOCS \\
+ _MSC_VER"
+ <doxygen:param>CLASS_DIAGRAMS=NO
+ #<doxygen:param>STRIP_FROM_PATH=$(EXAMPLE_DIR)/include/docca
+ #<doxygen:param>STRIP_FROM_INC_PATH=$(EXAMPLE_DIR)/include/docca
+ ;
+
+#-------------------------------------------------------------------------------
+#
+# Produce the reference.qbk file by running
+# the reference xml through the transform.
+#
+#make reference.qbk
+# :
+# reference.xml
+# transform.xsl
+# :
+# saxonhe.saxonhe
+# ;
+
+#-------------------------------------------------------------------------------
+#
+# Produce the Boost.Book XML from the QuickBook
+#
+
+install images
+ :
+ [ glob images/*.png ]
+ :
+ <location>html/json/images
+ ;
+
+explicit images ;
+
+xml json_doc
+ :
+ main.qbk
+ :
+ <use>reference.qbk
+ <dependency>images
+ ;
+
+explicit json_doc ;
+
+#-------------------------------------------------------------------------------
+#
+# HTML documentation for $(BOOST_ROOT)/doc/html
+#
+#-------------------------------------------------------------------------------
+
+boostbook json
+ :
+ json_doc
+ :
+ <xsl:param>boost.root=../../../..
+ <xsl:param>chapter.autolabel=1
+ <xsl:param>chunk.section.depth=8 # Depth to which sections should be chunked
+ <xsl:param>chunk.first.sections=1 # Chunk the first top-level section?
+ <xsl:param>toc.section.depth=2 # How deep should recursive sections appear in the TOC?
+ <xsl:param>toc.max.depth=8 # How many levels should be created for each TOC?
+ <xsl:param>generate.section.toc.level=8 # Control depth of TOC generation in sections
+ <xsl:param>generate.toc="chapter toc,title section nop reference nop"
+ <include>../../../tools/boostbook/dtd
+ :
+ <dependency>images
+ ;
+
+#-------------------------------------------------------------------------------
+#
+# These are used to inform the build system of the
+# means to build the integrated and stand-alone docs.
+#
+
+alias boostdoc ;
+explicit boostdoc ;
+
+alias boostrelease : json ;
+explicit boostrelease ;
diff --git a/src/boost/tools/docca/example/boostbook.dtd b/src/boost/tools/docca/example/boostbook.dtd
new file mode 100644
index 000000000..bd4c3f871
--- /dev/null
+++ b/src/boost/tools/docca/example/boostbook.dtd
@@ -0,0 +1,439 @@
+<!--
+ BoostBook DTD - development version
+
+ For further information, see: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Boost_Documentation_Format
+
+ Copyright (c) 2002 by Peter Simons <simons@cryp.to>
+ Copyright (c) 2003-2004 by Douglas Gregor <doug.gregor -at- gmail.com>
+ Copyright (c) 2007 by Frank Mori Hess <fmhess@users.sourceforge.net>
+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
+
+ The latest stable DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+ PUBLIC "-//Boost//DTD BoostBook XML V1.1//EN"
+ SYSTEM "http://www.boost.org/tools/boostbook/dtd/1.1/boostbook.dtd"
+
+ $Revision$
+ $Date$
+-->
+
+<!--========== Define XInclude features. ==========-->
+<!-- This is not really integrated into the DTD yet. Needs more
+ research. -->
+<!--
+<!ELEMENT xi:include (xi:fallback)?>
+<!ATTLIST xi:include
+ xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
+ href CDATA #REQUIRED
+ parse (xml|text) "xml"
+ encoding CDATA #IMPLIED>
+
+<!ELEMENT xi:fallback ANY>
+<!ATTLIST xi:fallback
+ xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude">
+ -->
+
+<!ENTITY % local.common.attrib "last-revision CDATA #IMPLIED">
+
+<!--========== Define the BoostBook extensions ==========-->
+<!ENTITY % boost.common.attrib "%local.common.attrib;
+ id CDATA #IMPLIED">
+
+<!ENTITY % boost.namespace.mix
+ "class|class-specialization|struct|struct-specialization|
+ union|union-specialization|typedef|enum|
+ free-function-group|function|overloaded-function|
+ namespace">
+
+<!ENTITY % boost.template.mix
+ "template-type-parameter|template-nontype-parameter|template-varargs">
+
+<!ENTITY % boost.class.members
+ "static-constant|typedef|enum|
+ copy-assignment|constructor|destructor|method-group|
+ method|overloaded-method|data-member|class|class-specialization|struct|
+ struct-specialization|union|union-specialization">
+
+<!ENTITY % boost.class.mix
+ "%boost.class.members;|free-function-group|function|overloaded-function">
+
+<!ENTITY % boost.class.content
+ "template?, inherit*, purpose?, description?,
+ (%boost.class.mix;|access)*">
+
+<!ENTITY % boost.class-specialization.content
+ "template?, specialization?, inherit?, purpose?, description?,
+ (%boost.class.mix;|access)*">
+
+<!ENTITY % boost.function.semantics
+ "purpose?, description?, requires?, effects?, postconditions?,
+ returns?, throws?, complexity?, notes?, rationale?">
+
+<!ENTITY % library.content
+ "libraryinfo, (title, ((section|library-reference|testsuite))+)?">
+
+<!ELEMENT library (%library.content;)>
+<!ATTLIST library
+ name CDATA #REQUIRED
+ dirname CDATA #REQUIRED
+ html-only CDATA #IMPLIED
+ url CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT boostbook (title, (chapter|library)*)>
+<!ATTLIST boostbook %boost.common.attrib;>
+
+<!ELEMENT libraryinfo (author+, copyright*, legalnotice*, librarypurpose, librarycategory*)>
+<!ATTLIST libraryinfo %boost.common.attrib;>
+
+<!ELEMENT librarypurpose (#PCDATA|code|ulink|functionname|methodname|classname|macroname|headername|enumname|globalname)*>
+<!ATTLIST librarypurpose %boost.common.attrib;>
+
+<!ELEMENT librarycategory (#PCDATA)>
+<!ATTLIST librarycategory
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT libraryname (#PCDATA)>
+<!ATTLIST libraryname %boost.common.attrib;>
+
+<!ELEMENT library-reference ANY>
+<!ATTLIST library-reference
+ %boost.common.attrib;>
+
+<!ELEMENT librarylist EMPTY>
+<!ATTLIST librarylist %boost.common.attrib;>
+
+<!ELEMENT librarycategorylist (librarycategorydef)*>
+<!ATTLIST librarycategorylist %boost.common.attrib;>
+
+<!ELEMENT librarycategorydef (#PCDATA)>
+<!ATTLIST librarycategorydef
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT header ANY>
+<!ATTLIST header
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT namespace (%boost.namespace.mix;)*>
+<!ATTLIST namespace
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT class (%boost.class.content;)>
+<!ATTLIST class
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT struct (%boost.class.content;)>
+<!ATTLIST struct
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT union (%boost.class.content;)>
+<!ATTLIST union
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT class-specialization (%boost.class-specialization.content;)>
+<!ATTLIST class-specialization
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT struct-specialization (%boost.class-specialization.content;)>
+<!ATTLIST struct-specialization
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT union-specialization (%boost.class-specialization.content;)>
+<!ATTLIST union-specialization
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT access (%boost.class.members;)+>
+<!ATTLIST access
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!--========= C++ Templates =========-->
+<!ELEMENT template (%boost.template.mix;)*>
+<!ATTLIST template %boost.common.attrib;>
+
+<!ELEMENT template-type-parameter (default?, purpose?)>
+<!ATTLIST template-type-parameter
+ name CDATA #REQUIRED
+ pack CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT template-nontype-parameter (type, default?, purpose?)>
+<!ATTLIST template-nontype-parameter
+ name CDATA #REQUIRED
+ pack CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT template-varargs EMPTY>
+<!ATTLIST template-varargs %boost.common.attrib;>
+
+<!ELEMENT specialization (template-arg)*>
+<!ATTLIST specialization %boost.common.attrib;>
+
+<!ELEMENT template-arg ANY>
+<!ATTLIST template-arg
+ pack CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT default ANY>
+<!ATTLIST default %boost.common.attrib;>
+
+<!ELEMENT inherit (type, purpose?)>
+<!ATTLIST inherit
+ access CDATA #IMPLIED
+ pack CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT purpose ANY>
+<!ATTLIST purpose %boost.common.attrib;>
+
+<!ELEMENT description ANY>
+<!ATTLIST description %boost.common.attrib;>
+
+<!ELEMENT type ANY>
+<!ATTLIST type %boost.common.attrib;>
+
+<!ELEMENT typedef (type, purpose?, description?)>
+<!ATTLIST typedef
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT enum (enumvalue*, purpose?, description?)>
+<!ATTLIST enum
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT enumvalue (default?, purpose?, description?)>
+<!ATTLIST enumvalue
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT static-constant (type, default, purpose?, description?)>
+<!ATTLIST static-constant
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT data-member (type, purpose?, description?)>
+<!ATTLIST data-member
+ name CDATA #REQUIRED
+ specifiers CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT paramtype ANY>
+<!ATTLIST paramtype %boost.common.attrib;>
+
+<!ELEMENT effects ANY>
+<!ATTLIST effects %boost.common.attrib;>
+
+<!ELEMENT postconditions ANY>
+<!ATTLIST postconditions %boost.common.attrib;>
+
+<!ELEMENT method-group (method|overloaded-method)*>
+<!ATTLIST method-group
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT constructor (template?, parameter*, %boost.function.semantics;)>
+<!ATTLIST constructor
+ specifiers CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT destructor (%boost.function.semantics;)>
+<!ATTLIST destructor
+ specifiers CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT method (template?, type, parameter*, %boost.function.semantics;)>
+<!ATTLIST method
+ name CDATA #REQUIRED
+ cv CDATA #IMPLIED
+ specifiers CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT function (template?, type, parameter*, %boost.function.semantics;)>
+<!ATTLIST function
+ name CDATA #REQUIRED
+ specifiers CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT overloaded-method (signature*, %boost.function.semantics;)>
+<!ATTLIST overloaded-method
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT overloaded-function (signature*, %boost.function.semantics;)>
+<!ATTLIST overloaded-function
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT signature (template?, type, parameter*)>
+<!ATTLIST signature
+ cv CDATA #IMPLIED
+ specifiers CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT requires ANY>
+<!ATTLIST requires %boost.common.attrib;>
+
+<!ELEMENT returns ANY>
+<!ATTLIST returns %boost.common.attrib;>
+
+<!ELEMENT throws ANY>
+<!ATTLIST throws %boost.common.attrib;>
+
+<!ELEMENT complexity ANY>
+<!ATTLIST complexity %boost.common.attrib;>
+
+<!ELEMENT notes ANY>
+<!ATTLIST notes %boost.common.attrib;>
+
+<!ELEMENT rationale ANY>
+<!ATTLIST rationale %boost.common.attrib;>
+
+<!ELEMENT functionname (#PCDATA)>
+<!ATTLIST functionname
+ alt CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT enumname (#PCDATA)>
+<!ATTLIST enumname
+ alt CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT macroname (#PCDATA)>
+<!ATTLIST macroname
+ alt CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT headername (#PCDATA)>
+<!ATTLIST headername
+ alt CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT globalname (#PCDATA)>
+<!ATTLIST globalname
+ alt CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT copy-assignment
+ (template?, type?, parameter*, %boost.function.semantics;)>
+<!ATTLIST copy-assignment
+ cv CDATA #IMPLIED
+ specifiers CDATA #IMPLIED
+ %boost.common.attrib;>
+
+<!ELEMENT free-function-group (function|overloaded-function)*>
+<!ATTLIST free-function-group
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT precondition ANY>
+<!ATTLIST precondition %boost.common.attrib;>
+
+<!ELEMENT code ANY>
+<!ATTLIST code %boost.common.attrib;>
+
+<!ELEMENT using-namespace EMPTY>
+<!ATTLIST using-namespace
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!ELEMENT using-class EMPTY>
+<!ATTLIST using-class
+ name CDATA #REQUIRED
+ %boost.common.attrib;>
+
+<!--========== Boost Testsuite Extensions ==========-->
+<!ENTITY % boost.testsuite.tests
+ "compile-test|link-test|run-test|
+ compile-fail-test|link-fail-test|run-fail-test">
+<!ENTITY % boost.testsuite.test.content
+ "source*, lib*, requirement*, purpose, if-fails?">
+
+<!ELEMENT testsuite ((%boost.testsuite.tests;)+)>
+<!ATTLIST testsuite %boost.common.attrib;>
+
+<!ELEMENT compile-test (%boost.testsuite.test.content;)>
+<!ATTLIST compile-test
+ filename CDATA #REQUIRED
+ name CDATA #IMPLIED>
+
+<!ELEMENT link-test (%boost.testsuite.test.content;)>
+<!ATTLIST link-test
+ filename CDATA #REQUIRED
+ name CDATA #IMPLIED>
+
+<!ELEMENT run-test (%boost.testsuite.test.content;)>
+<!ATTLIST run-test
+ filename CDATA #REQUIRED
+ name CDATA #IMPLIED>
+
+<!ELEMENT compile-fail-test (%boost.testsuite.test.content;)>
+<!ATTLIST compile-fail-test
+ filename CDATA #REQUIRED
+ name CDATA #IMPLIED>
+
+<!ELEMENT link-fail-test (%boost.testsuite.test.content;)>
+<!ATTLIST link-fail-test
+ filename CDATA #REQUIRED
+ name CDATA #IMPLIED>
+
+<!ELEMENT run-fail-test (%boost.testsuite.test.content;)>
+<!ATTLIST run-fail-test
+ filename CDATA #REQUIRED
+ name CDATA #IMPLIED>
+
+<!ELEMENT source (#PCDATA|snippet)*>
+
+<!ELEMENT snippet EMPTY>
+<!ATTLIST snippet
+ name CDATA #REQUIRED>
+
+<!ELEMENT lib (#PCDATA)>
+
+<!ELEMENT requirement (#PCDATA)>
+<!ATTLIST requirement
+ name CDATA #REQUIRED>
+
+<!ELEMENT if-fails ANY>
+
+<!ELEMENT parameter (paramtype, default?, description?)>
+<!ATTLIST parameter
+ name CDATA #IMPLIED
+ pack CDATA #IMPLIED>
+
+<!ELEMENT programlisting ANY>
+<!ATTLIST programlisting
+ name CDATA #IMPLIED>
+
+<!--========== Customize the DocBook DTD ==========-->
+<!ENTITY % local.tech.char.class "|functionname|libraryname|enumname|headername|macroname|code">
+<!ENTITY % local.para.class
+ "|using-namespace|using-class|librarylist|librarycategorylist">
+<!ENTITY % local.descobj.class "|libraryinfo">
+<!ENTITY % local.classname.attrib "alt CDATA #IMPLIED">
+<!ENTITY % local.methodname.attrib "alt CDATA #IMPLIED">
+<!ENTITY % local.refentry.class "|library-reference|testsuite">
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % programlisting.module "IGNORE">
+<!ENTITY % parameter.module "IGNORE">
+<!ENTITY % function.module "IGNORE">
+<!ENTITY % type.module "IGNORE">
+
+<!--========== Import DocBook DTD ==========-->
+<!ENTITY % DocBook PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+%DocBook;
diff --git a/src/boost/tools/docca/example/include/docca/issue_101.hpp b/src/boost/tools/docca/example/include/docca/issue_101.hpp
new file mode 100644
index 000000000..8b5b53991
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_101.hpp
@@ -0,0 +1,22 @@
+//
+// Copyright (c) 2021 Evan Lenz (evan@lenzconsulting.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_101_HPP
+#define EXAMPLE_ISSUE_101_HPP
+
+namespace example {
+
+/** Issue 101
+
+ `typename` parameters should be handled (without generating an error).
+*/
+template<typename charT, typename traits>
+class issue_101;
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_33.hpp b/src/boost/tools/docca/example/include/docca/issue_33.hpp
new file mode 100644
index 000000000..8323356c9
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_33.hpp
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2020 Krystian Stasiowski (sdkrystian@gmail.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_33_HPP
+#define EXAMPLE_ISSUE_33_HPP
+
+namespace example {
+
+/** Issue 33
+
+ The Note and See Also sections should be distinct.
+
+ @note This is a note
+
+ @see https://boost.org
+*/
+struct issue_33
+{
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_34.hpp b/src/boost/tools/docca/example/include/docca/issue_34.hpp
new file mode 100644
index 000000000..c05f8058d
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_34.hpp
@@ -0,0 +1,37 @@
+//
+// Copyright (c) 2020 Krystian Stasiowski (sdkrystian@gmail.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_34_HPP
+#define EXAMPLE_ISSUE_34_HPP
+
+namespace example {
+
+/** Issue 34
+*/
+class issue_34
+{
+ /// Should not be displayed
+ struct P
+ {
+ };
+
+public:
+ /// Base of Q
+ struct R
+ {
+ };
+
+ /** Q should be derived only from R
+ */
+ struct Q : private P, R
+ {
+ };
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_38.hpp b/src/boost/tools/docca/example/include/docca/issue_38.hpp
new file mode 100644
index 000000000..eb515033d
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_38.hpp
@@ -0,0 +1,35 @@
+//
+// Copyright (c) 2020 Evan Lenz (evan@lenzconsulting.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_38_HPP
+#define EXAMPLE_ISSUE_38_HPP
+
+namespace example {
+
+/** Issue 38
+
+ Open: [a, b]
+ Half-open: [a, b)
+ Closed: (a, b)
+
+ @li Gracefully handle brackets in javadoc comments
+*/
+class issue_38
+{
+ int i_;
+
+public:
+ /** Half-open: [a, b)
+
+ first to last exclusive, i.e. [ first, last )
+ */
+ issue_38();
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_44.hpp b/src/boost/tools/docca/example/include/docca/issue_44.hpp
new file mode 100644
index 000000000..790f77f81
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_44.hpp
@@ -0,0 +1,60 @@
+//
+// Copyright (c) 2020 Vinnie Falco (vinnie dot falco at gmail dot com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_44_HPP
+#define EXAMPLE_ISSUE_44_HPP
+
+namespace example {
+
+/** Issue 44
+
+ @li All of the constructors should be
+ grouped together on the overload
+ resolution page.
+
+ @li The class page should show three
+ unique briefs for the constructor.
+*/
+class issue_44
+{
+ int i_;
+
+public:
+ /** Default constructor.
+
+ Description.
+ */
+ issue_44();
+
+ /** Constructor.
+
+ Description.
+ */
+ /** @{ */
+ issue_44(char);
+ issue_44(short, short);
+ /** @} */
+
+ /** Constructor.
+
+ Description.
+ */
+ /** @{ */
+ issue_44(char, int);
+ issue_44(long, long);
+ /** @} */
+
+ /** Void constructor
+
+ Description.
+ */
+ issue_44(void*);
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_47.hpp b/src/boost/tools/docca/example/include/docca/issue_47.hpp
new file mode 100644
index 000000000..03324e131
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_47.hpp
@@ -0,0 +1,34 @@
+//
+// Copyright (c) 2020 Vinnie Falco (vinnie dot falco at gmail dot com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_47_HPP
+#define EXAMPLE_ISSUE_47_HPP
+
+namespace example {
+
+/** Issue 47
+
+ The function `max_size` should be
+ listed as a static member.
+*/
+class issue_47
+{
+ int i_;
+
+public:
+ /** Member
+ */
+ void f();
+
+ /** Static Member
+ */
+ static int max_size() noexcept;
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_48.hpp b/src/boost/tools/docca/example/include/docca/issue_48.hpp
new file mode 100644
index 000000000..9f0b9ea9f
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_48.hpp
@@ -0,0 +1,47 @@
+//
+// Copyright (c) 2020 Krystian Stasiowski (sdkrystian@gmail.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_48_HPP
+#define EXAMPLE_ISSUE_48_HPP
+
+namespace example {
+
+class X
+{
+};
+
+struct Y
+{
+};
+
+/** Issue 48
+
+ The class should show one regular
+ public member function and two friend
+ functions.
+*/
+class issue_48
+{
+ /// This should not be emitted.
+ friend class X;
+
+ /// This should not be emitted.
+ friend struct Y;
+
+ /// This should be emitted
+ friend void g( issue_48 );
+
+public:
+ void f();
+
+ /// This should be emitted
+ friend void h( issue_48 );
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_52.hpp b/src/boost/tools/docca/example/include/docca/issue_52.hpp
new file mode 100644
index 000000000..a39cbd493
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_52.hpp
@@ -0,0 +1,35 @@
+//
+// Copyright (c) 2020 Evan Lenz (evan@lenzconsulting.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_52_HPP
+#define EXAMPLE_ISSUE_52_HPP
+
+namespace example {
+
+/** Issue 52
+
+ Constructor and destructor are annotated as such.
+*/
+class issue_52
+{
+public:
+ /** Default constructor.
+
+ Description
+ */
+ issue_52();
+
+ /** Destructor.
+
+ Description
+ */
+ ~issue_52();
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_53.hpp b/src/boost/tools/docca/example/include/docca/issue_53.hpp
new file mode 100644
index 000000000..53cfe7521
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_53.hpp
@@ -0,0 +1,44 @@
+//
+// Copyright (c) 2020 Evan Lenz (evan@lenzconsulting.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_53_HPP
+#define EXAMPLE_ISSUE_53_HPP
+
+namespace example {
+
+/** Issue 53
+
+ @li Distinct constructor descriptions
+ should be separated by a silver em dash.
+*/
+class issue_53
+{
+ int i_;
+
+public:
+ /** Default constructor.
+
+ Description.
+ */
+ issue_53();
+
+ /** Constructor.
+
+ Description.
+ */
+ issue_53(char);
+
+ /** Void constructor
+
+ Description.
+ */
+ issue_53(void*);
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_55.hpp b/src/boost/tools/docca/example/include/docca/issue_55.hpp
new file mode 100644
index 000000000..85628f445
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_55.hpp
@@ -0,0 +1,26 @@
+//
+// Copyright (c) 2020 Krystian Stasiowski (sdkrystian@gmail.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_55_HPP
+#define EXAMPLE_ISSUE_55_HPP
+
+namespace example {
+
+/** Issue 55
+
+ Clicking @ref f should lead to the
+ overload resolution landing page.
+*/
+struct issue_55
+{
+ void f(int);
+ void f(double);
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_63.hpp b/src/boost/tools/docca/example/include/docca/issue_63.hpp
new file mode 100644
index 000000000..5b2ab07a3
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_63.hpp
@@ -0,0 +1,41 @@
+//
+// Copyright (c) 2021 Evan Lenz (evan@lenzconsulting.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_63_HPP
+#define EXAMPLE_ISSUE_63_HPP
+
+namespace example {
+
+/** Issue 63
+
+ @li Markup (@ commands) in tables should be rendered
+*/
+enum class issue_63
+{
+ /**
+ * foo brief
+
+ foo description
+
+ @see issue_55
+ */
+ foo,
+
+ /**
+ * bar brief
+
+ bar description
+
+ @li First bullet referencing @ref issue_55
+ @li Second bullet
+ */
+ bar
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_69.hpp b/src/boost/tools/docca/example/include/docca/issue_69.hpp
new file mode 100644
index 000000000..28a0d9338
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_69.hpp
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2021 Evan Lenz (evan@lenzconsulting.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_69_HPP
+#define EXAMPLE_ISSUE_69_HPP
+
+namespace example {
+
+/** Issue 69
+
+ The brackets in the @ref operator[] page's
+ code block should not appear escaped. Nor
+ should they in that link just there (in this
+ sentence).
+*/
+struct issue_69
+{
+ operator[](string_view key);
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_70.hpp b/src/boost/tools/docca/example/include/docca/issue_70.hpp
new file mode 100644
index 000000000..89271d789
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_70.hpp
@@ -0,0 +1,32 @@
+//
+// Copyright (c) 2021 Evan Lenz (evan@lenzconsulting.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_70_HPP
+#define EXAMPLE_ISSUE_70_HPP
+
+namespace example {
+
+/** Issue 70
+
+ This reference, @ref issue_70_b::foo, should link to the issue_70_b page
+ (not issue_63).
+*/
+enum class issue_70
+{
+ foo,
+ bar
+};
+
+enum class issue_70_b
+{
+ foo,
+ bar
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/include/docca/issue_78.hpp b/src/boost/tools/docca/example/include/docca/issue_78.hpp
new file mode 100644
index 000000000..f1b090516
--- /dev/null
+++ b/src/boost/tools/docca/example/include/docca/issue_78.hpp
@@ -0,0 +1,27 @@
+//
+// Copyright (c) 2021 Evan Lenz (evan@lenzconsulting.com)
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+
+#ifndef EXAMPLE_ISSUE_78_HPP
+#define EXAMPLE_ISSUE_78_HPP
+
+namespace example {
+
+/** Issue 78
+
+ foo() should show up under the heading "Static Member Functions"
+ and bar should show up under the heading "Static Members"
+*/
+class issue_78
+{
+public:
+ static foo();
+ static bar;
+};
+
+} // example
+
+#endif
diff --git a/src/boost/tools/docca/example/index.xml b/src/boost/tools/docca/example/index.xml
new file mode 100644
index 000000000..c364e4ed2
--- /dev/null
+++ b/src/boost/tools/docca/example/index.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "boostbook.dtd">
+
+<!--
+ Copyright (c) 2013-2016 Vinnie Falco (vinnie dot falco at gmail dot com)
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+-->
+
+<section id="docca.index">
+ <title>Index</title>
+ <index/>
+</section>
diff --git a/src/boost/tools/docca/example/main.qbk b/src/boost/tools/docca/example/main.qbk
new file mode 100644
index 000000000..d9938111a
--- /dev/null
+++ b/src/boost/tools/docca/example/main.qbk
@@ -0,0 +1,31 @@
+[/
+ Copyright (c) 2013-2016 Vinnie Falco (vinnie dot falco at gmail dot com)
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+]
+
+[library docca
+ [quickbook 1.6]
+ [copyright 2016 Vinnie Falco]
+ [purpose Documentation Library]
+ [license
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENSE_1_0.txt or copy at
+ [@http://www.boost.org/LICENSE_1_0.txt])
+ ]
+ [category template]
+ [category generic]
+]
+
+[template mdash[] '''&mdash; ''']
+[template indexterm1[term1] '''<indexterm><primary>'''[term1]'''</primary></indexterm>''']
+[template indexterm2[term1 term2] '''<indexterm><primary>'''[term1]'''</primary><secondary>'''[term2]'''</secondary></indexterm>''']
+
+[template include_file[path][^<'''<ulink url="https://github.com/boostorg/docca/blob/master/example/include/'''[path]'''">'''[path]'''</ulink>'''>]]
+
+[section:ref Reference]
+[include reference.qbk]
+[endsect]
+
+[xinclude index.xml]
diff --git a/src/boost/tools/docca/example/makeqbk.sh b/src/boost/tools/docca/example/makeqbk.sh
new file mode 100644
index 000000000..e6fa0c30a
--- /dev/null
+++ b/src/boost/tools/docca/example/makeqbk.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/bash
+
+# Copyright (c) 2013-2016 Vinnie Falco (vinnie dot falco at gmail dot com)
+#
+# Distributed under the Boost Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+mkdir -p temp
+doxygen source.dox
+cd temp
+xsltproc combine.xslt index.xml > all.xml
+xsltproc ../reference.xsl all.xml > ../reference.qbk
+
diff --git a/src/boost/tools/docca/example/reference.xsl b/src/boost/tools/docca/example/reference.xsl
new file mode 100644
index 000000000..de5675294
--- /dev/null
+++ b/src/boost/tools/docca/example/reference.xsl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<!-- Variables (Edit for your project) -->
+<xsl:variable name="doc-ref" select="'docca.ref.'"/>
+<xsl:variable name="doc-ns" select="'example'"/>
+<xsl:variable name="debug" select="0"/>
+<xsl:variable name="private" select="0"/>
+<!-- End Variables -->
+
+<xsl:include href="../include/docca/doxygen.xsl"/>
+
+</xsl:stylesheet>
+
diff --git a/src/boost/tools/docca/example/xsl/custom-overrides.xsl b/src/boost/tools/docca/example/xsl/custom-overrides.xsl
new file mode 100644
index 000000000..7f1a4d143
--- /dev/null
+++ b/src/boost/tools/docca/example/xsl/custom-overrides.xsl
@@ -0,0 +1,25 @@
+<xsl:stylesheet version="3.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ exclude-result-prefixes="xs"
+ expand-text="yes">
+
+ <xsl:variable name="doc-ref" select="'docca.ref'"/>
+ <xsl:variable name="doc-ns" select="'example'"/>
+ <xsl:variable name="include-private-members" select="false()"/>
+
+ <xsl:template mode="includes-template-footer" match="location">
+ <xsl:variable name="convenience-header" as="xs:string?">
+ <xsl:apply-templates mode="convenience-header" select="@file"/>
+ </xsl:variable>
+ <xsl:if test="$convenience-header">
+ <xsl:text>{$nl}</xsl:text>
+ <xsl:text>Convenience header [include_file boost/{$convenience-header}]</xsl:text>
+ <xsl:text>{$nl}</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template mode="convenience-header" match="@file[contains(., 'boost/json')]">json.hpp</xsl:template>
+ <xsl:template mode="convenience-header" match="@file"/>
+
+</xsl:stylesheet>