Skip to content

Markdown links going via tag files instead of local resolution #8680

Closed
@sawatts

Description

@sawatts

Describe the bug

Consider two nearly identical projects, aaa and bbb with the following content:

  • README.md
  • CONTRIBUTING.md
  • docs/NOTES.md

The README.md contains links to the other two documents:

- [How to Contribute](CONTRIBUTING.md)
- [Also How to Contribute](./CONTRIBUTING.md)
- [Some Notes](docs/NOTES.md)

The doxygen input includes these markdown files, which can also be viewed directly in github. Both also generate tag files which are packaged in their docsets (aaa.tag and bbb.tag); and bbb will reference the tag file from aaa.

  1. Project aaa is built first and its docset published.
  2. Project bbb is then built and its docset published, using the tag file from aaa.
  • The markdown links in aaa correctly link to the pages within aaa.
  • The markdown links in bbb also link to the pages from aaa, not to its own pages.
  • The contents menu for bbb does not include entries for the CONTENTS or NOTES pages.
  • The HTML fileset for bbb does not include files corresponding to the CONTENTS.md or NOTES.md files.

Expected behavior

  • The markdown links should resolved to matches in the local docset rather than external references.
  • Files in the INPUT list should be represented in the resultant docset;
    • CONTRIBUTING.md is explicitly listed in the INPUT.
    • docs subdirectory is listed in the INPUT, which contains NOTES.md

Screenshots

aaa main page

bbb main page

  • These two projects are essentially identical apart from bbb referencing the tag file from aaa.
  • aaa contents list includes entries for the NOTES and CONTRIBUTING pages.
  • aaa main page contains links to its own contents (bold).
  • bbb contents list missing any entries for NOTES or CONTRIBUTING.
  • bbb main page contains links to external (aaa) content (non-bold).

Note: that the "Debian Control" page is added by our build system and does not impact this issue.
This has been removed in the attached canned example.

To Reproduce

doxygen-md-links.tar.gz

Tarball with minimal case to reproduce.

Contents:

  • doxygen-md-links/build.sh - build script.
  • doxygen-md-links/aaa/ - aaa project.
  • doxygen-md-links/bbb/ - bbb project.

Each project directory contains a Doxyfile and the markdown files README.md, CONTENTS.md, and docs/NOTES.md.

Output will be created under ${PUBLISH_DIR}/{aaa,bbb}/ - where ${PUBLISH_DIR} defaults to doxygen-md-links/out. This can be overridden as its useful to output to a directory served by a webserver (eg ~/public-html/test)

Note that the Doxyfiles were originally generated by our build system, and may have settings not relevant to these small projects or this scenario. Both files are identical apart from:

  1. Project name.
  2. bbb referencing the tag file from aaa.

Version

doxygen 1.8.15

lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-ia32:base-4.0-noarch:core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 6.8 (Santiago)
Release: 6.8
Codename: Santiago

Stack trace

N/A

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementa request to enhance doxygen, not a bug

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions