577 Commits

Author SHA1 Message Date
Ion Gaztañaga ba221096aa Render alias templates instead of plain typedefs in the reference (#32)
Doxygen emits C++ alias templates ("template<...> using X = ...;") as
typedef memberdefs carrying a templateparamlist, but the conversion
dropped that list, so alias templates appeared as plain typedefs with
their template parameters lost.
- doxygen2boostbook.xsl: carry the templateparamlist through to a
  <template> child of the generated <typedef>.
- boostbook.dtd: allow an optional <template> inside <typedef>.
- type.xsl: when a typedef has a <template> child, render it as
  "template<...> using name = type;" and exclude it from typedef
  column alignment.
boost-1.92.0.beta1
2026-07-02 03:02:19 +03:00
Andrey Semashev dfeb783496 Refreshed Doxygen test with new reference ids. 2026-06-13 07:20:18 +03:00
Ion Gaztañaga 9683903c13 Fix reference of root-qualified name with a leading :: (#31)
A reference whose name is root-qualified with a leading :: (e.g. ::boost::container::allocator_traits) is never resolved, producing a spurious:

Cannot find class named '::boost::container::allocator_traits'

warning when generating the documentation.

The commit strips a leading :: in "generate-cxx-links". when present, requires an exact match (empty qualifiers) . Relative-name resolution is unchanged.
2026-06-13 07:17:41 +03:00
Andrey Semashev 066f3561e6 Added .gitignore in the root directory.
Ignore files that may be created by setup_boostbook.py.

Closes https://github.com/boostorg/boostbook/issues/18.
boost-1.91.0.beta1 boost-1.91.0 boost-1.90.0.beta1 boost-1.90.0 boost-1.89.0 boost-1.88.0.beta1 boost-1.88.0
2024-12-27 16:12:20 +03:00
Andrey Semashev 50db69f7e5 Updated setup_boostbook.py, removed setup_boostbook.sh.
* Ported setup_boostbook.py to Python 3.
* Updated DocBook XSL to 1.79.2, DocBook DTD to 4.5.
* Switched DocBook XSL to "nons" version, which is compatible with DocBook 4.x.
  The "ns" version is compatible with DocBook 5 and produces incorrect output
  in some cases. See the discussion in https://github.com/boostorg/boostbook/pull/13
  for more details.
* Updated download URLs to the actual ones.
* Added checking checksums for the downloaded packages to ensure authenticity.
* Added creating backup of user-config.jam before modification.
* user-config.jam modification now preserves location of the rules
  that the script modifies.
* The script now produces absolute paths in user-config.jam.

Since setup_boostbook.py now implements everything from setup_boostbook.sh
and is (presumably) more portable, removed setup_boostbook.sh to avoid
code duplication.

Closes https://github.com/boostorg/boostbook/pull/19.
boost-1.87.0.beta1 boost-1.87.0
2024-09-26 01:16:28 +03:00
René Ferdinand Rivera Morell 5efbdc20b8 Add support for modular build structure. (#25)
* Tweaks to normalize tool modular building.

* Build the dist target for tools by default.

* Add requires-b2 check to top-level build file.

* Bump B2 require to 5.2

* Simplify xslt files install glob.
2024-08-19 13:51:34 +03:00
Andrey Semashev c693753132 Added boostdoc and boostrelease targets.
These targets seems to be necessary to make BoostBook docs to be built
during the release process.
2024-08-17 23:49:24 +03:00
Andrey Semashev 322bd0adcc Change docs redirection to doc/html/index.html.
Documentation is now built from BoostBook XML, so redirect to the
generated HTML instead of the superproject.

Refs https://github.com/boostorg/boostbook/issues/29.
2024-08-15 15:33:17 +03:00
Andrey Semashev 4e5a5ab0d3 Remove redundant spaces from return types and default values/types.
Doxygen generates extra spaces in some function return types (e.g. involving
a const reference) and template parameter defaults (in partucular, when
the default is formatted across multiple lines in the C++ source).
Normalize spaces in those cases.
boost-1.86.0.beta1 boost-1.86.0
2024-07-06 19:18:27 +03:00
Andrey Semashev 73c527537e Remove extra space before default for unnamed template parameters. 2024-07-06 19:04:47 +03:00
Andrey Semashev 719af2337f Fix handling of multiple exception descriptions, support free form description.
When there are multiple \throws entries in a function documentation, the second
and further exception names were omitted from output and a combined description
was associated with the first exception. Fix this by producing separate
paragraphs, one per exception.

Additionally, support free form exception description when the exception type
is specified as "~". In this case, the exception name is not used, and the
entry description is used to initialize the paragraph in the output.

Updated test to verify these changes.
2024-07-06 17:39:23 +03:00
Andrey Semashev c220a12c17 Convert \sa to <formalpara> instead of unnamed <para>.
This makes the entries after "See Also:" to be displayed inline rather
than starting from the next line. This is consistent with other kinds
of paragraphs generated from Doxygen output.
2024-07-06 15:12:18 +03:00
Andrey Semashev d108e4d24a Disable function parameter sorting by default.
Sorted parameters are more difficult to read, as you normally expect
the parameters to be described in the order they are listed in the
function signature. This also breaks parameter grouping when adjacent
parameters are related (e.g. a pair of iterators).
2024-07-01 02:36:18 +03:00
Andrey Semashev 7f4efc149a Improved presentation of unnamed enums.
Instead of Doxygen-synthesized names like "@0", either omit the name
entirely, when the enum name is not a link to a separate definition,
or display "[unnamed]" placeholder for the name that serves as a link.
2024-06-30 20:13:19 +03:00
Andrey Semashev 5216db3959 Corrected indents. 2024-06-30 19:22:22 +03:00
Andrey Semashev 8b5189e24e Conceal template parameter defaults that refer to implementation details.
Similar to other contexts, replace default types and values in template
parameter lists that mention implementation details, as configured in
boost.doxygen.detail parameter, with "unspecified".

This fixes dangling refs to implementation detail types and values that
were removed from BoostBook output but are still mentioned in template
parameter defaults.
2024-06-30 18:16:04 +03:00
Andrey Semashev 55bd25054b Add a workaround for duplicate ids if Doxygen inlines inherited class members.
When Doxygen option INLINE_INHERITED_MEMB=YES is used, Doxygen generates
duplicate class member definitions with the same ids, when the member is
inherited from a base class. This results in duplicate ids in BoostBook output
and the corresponding errors.

Work around this by checking if the member id starts with the id of the
enclosing class. If it does then the member is assumed to be a genuine member
of the class and we generate a Doxygen id for it. Doxygen refs will point to
this definition of the member. If the member id is different then it must be
an inherited member, and we don't generate a Doxygen id for it. BoostBook
stylesheets will generate a unique id for it, which will be used to link
synopsis to reference of the member in the derived class' documentation.
2024-06-30 17:50:44 +03:00
Andrey Semashev 03120084bb Pass through contents of parblock in Doxygen.
\parblock can be used to group multiple paragraps under a block command
that expects a single paragraph as argument (e.g. \returns). So just
forward the contents of the parblock in the current context.
2024-06-29 21:13:54 +03:00
Andrey Semashev 1198d50fd9 Add support for remarks and important blocks in Doxygen.
Convert \remark commands to <note> in BoostBook. Change \attention to
<important>, and also convert \important to <important>.
2024-06-29 19:57:46 +03:00
Andrey Semashev cdb1643530 Updated Doxygen test with the added header id. 2024-06-29 17:56:14 +03:00
Andrey Semashev c701793300 Add anchors for enum values, when there are no detailed descriptions for them.
This fixes missing linkends to the enum values that are only listed in
synopsys.
2024-06-29 17:43:32 +03:00
Andrey Semashev f4f0e13720 Added id passthrough for headers. 2024-06-29 17:22:37 +03:00
Andrey Semashev b1fef2e5b9 Support for Doxygen refs.
Produce id attributes for all entities generated by Doxygen. For refs,
generate link tags referencing those ids. Preface the ids with "doxygen."
prefix to avoid potential clashes with ids that may be present in other
places of the resulting DocBook document. Also add the document refid to
the prefix to avoid potential clashes between multiple Doxygen-generated
documents with SHORT_NAMES=YES.

In order to pass through the generated ids without modification (to keep
links working in the output), change generate.id template so that it
returns the value of the id attribute, if one is present, instead of
generating a new id.

The end result is that all references generated by Doxygen (to methods,
classes, variables and so on) propagate to the final HTML output instead
of being stripped during Doxygen to BoostBook translation.
2024-06-29 15:08:43 +03:00
Andrey Semashev 8883b9b318 Removed Travis CI config as Travis CI is no longer active. 2024-05-15 02:47:04 +03:00
Andrey Semashev dbbbc2df9e GHA CI fixes. 2024-05-15 02:46:24 +03:00
Andrey Semashev 737ae951e8 GHA CI fixes. 2024-05-15 02:18:09 +03:00
Andrey Semashev 90f130432e Added GitHub Actions CI config. 2024-05-15 02:08:22 +03:00
Andrey Semashev 2c95662e24 Updated run-tests.py for compatibility with Python 3.x. 2024-05-15 01:35:06 +03:00
Andrey Semashev fe6f1a818f Compare formatted XML files in the Doxygen test.
Comparing formatted XML files makes the comparison less sensitive
to whitespace and newline differences between XML documents, and
also makes the subsequent diff more informative, if any differences
are found.
2024-05-14 03:27:40 +03:00
Andrey Semashev 5bdebb90a4 Moved .gitignore files to the nested directories. 2024-05-13 23:46:49 +03:00
Andrey Semashev 7279183c79 Updated autodoc.gold in the Doxygen test according to changes in PR #26.
Constructors, destructors and copy-assignment tags were moved under the
respective method-group tags. The rest are newline changes.
2024-05-13 23:41:00 +03:00
Andrey Semashev 4efc9a09e1 Updated reference.dtdxml according to DTD changes made in PR #26. 2024-05-13 18:17:55 +03:00
Andrey Semashev 122bf604c6 Added .gitignore. 2024-05-13 18:16:32 +03:00
Andrey Semashev 89c08751f3 Removed auto-generated reference.xml. 2024-05-13 18:15:02 +03:00
Andrey Semashev 7b52b318f1 Merge pull request #9 from Kojoley/autogenerate-reference.xml
Added reference.xml auto-generation from dtdxml
2024-05-13 18:11:56 +03:00
Andrey Semashev c930c40140 Merge pull request #26 from Lastique/feature/fix_missing_grouped_members
Fix missing members and functions in named groups in Doxygen output
2024-05-13 17:23:31 +03:00
Andrey Semashev 61ca6ef7d9 Fix missing members and functions in named groups in Doxygen output.
Previously, class members and free functions in sectiondef with
kind="user-defined" would be stripped from HTML output, making function
grouping effectively non-functional. This commit fixes this by converting
such sectiondefs to either method-group or free-function-group in BoostBook
output, depending on whether the grouping is within a class or namespace.

Additionally, previously constructors, destructors and assignment operators
were not allowed to be inside method-groups, which were another reason for
these members to be stripped from the output. This commit allows these members
in member-groups and modifies DTD accordingly.

Also, this fixes duplicate constructors, destructors and assignment operators
generated after the sections for public, private and protected member
functions. This was due to applying XSL templates twice - once when generating
method-group, and then after the method-group.
2024-05-13 15:55:20 +03:00
Andrey Semashev 0b665ad198 Merge pull request #27 from Lastique/feature/disable_params_sorting
Support disabling sorting function and template parameters
2024-05-13 15:36:09 +03:00
Andrey Semashev d5ac8b1cdd Merge pull request #24 from Lastique/feature/fix_doxygen_enum_initializers
Fix duplicate equal signs in Doxygen-generated enum value initializers
2024-05-13 15:31:28 +03:00
Andrey Semashev 44d887c5f2 Support disabling sorting function and template parameters.
This commit adds a new XSL parameter boost.sort.params, which allows
users to disable alphabetical sorting of the function and template
parameters in detailed descriptions of functions and classes. By
default, sorting is enabled, which maintains the previous behavior.

Sorting is disabled when the parameter is set to 0. In this case,
parameters are listed in the order they are listed in the BoostBook
documentation, which is normally the same as they are listed in the
function signature or template preamble.
2024-05-13 03:45:32 +03:00
Andrey Semashev 5c1e683568 Fix duplicate equal signs in Doxygen-generated enum value initializers.
Doxygen 1.9.1 generates enum <initializer> tags with text starting with
an equal sign ('=') followed by the enum value initializer. This sign
was copied under the BoostBook <default> tag, and BoostBook styleseets
add an equal sign of their own when converting this tag to HTML. This
resulted in duplicate equal signs in the HTML output.

This commit strips the leading equal sign from the initializer before
putting it into the <default> tag.
2024-05-04 13:19:03 +03:00
Glen Fernandes faacd1f26a Merge pull request #23 from Lastique/feature/fix_noexcept_dtors
Fix missing noexcept markup for destructors
boost-1.85.0.beta1 boost-1.85.0
2023-12-21 07:35:05 -05:00
Andrey Semashev 3c13dd7031 Fix missing noexcept markup for destructors.
This fixes missing noexcept specifiers for destructors in a Doxygen-generated
documentation.
2023-12-02 23:59:23 +03:00
Glen Fernandes 46c7732d06 Merge branch 'master' into develop boost-1.84.0.beta1 boost-1.84.0 boost-1.83.0.beta1 boost-1.83.0 boost-1.82.0.beta1 boost-1.82.0 2023-02-27 09:20:20 -05:00
Glen Fernandes 8becc1be28 Merge pull request #7 from vprus/meta-viewport
Generate meta viewport element.
2023-02-26 09:28:51 -05:00
Glen Fernandes 53b9e5fe04 Merge pull request #6 from vprus/copyright-footer
Make copyright footer generation simpler and more flexible.
2023-02-26 09:28:26 -05:00
Glen Fernandes 2fccdae6be Merge pull request #21 from Lastique/feature/fix_noexcept_if_trailing_paren
Fix double trailing parenthesis after `noexcept(cond)`
2023-02-26 08:06:31 -05:00
Andrey Semashev 9f7d6a21dc Fix redundant trailing parenthesis after noexcept with condition.
Fixes https://github.com/boostorg/boostbook/issues/20.
2023-02-26 04:45:30 +03:00
Andrey Semashev 61589d85e1 Removed executable permission from xsl file. 2023-02-26 04:45:08 +03:00
Glen Fernandes 8ea26491df Merge pull request #15 from evanlenz/issue-14-does-not-work-with-libxslt-1.1.35
Remove template rule conflict for text nodes
2023-02-10 17:20:45 -05:00