Skip to content

External hyperlink produces garbled HTML when end of URL happens to overlap with name of identifier #817

Open
@vrama628

Description

@vrama628

Problem Description

pdoc produces incorrect HTML when trying to link to a URL whenever the end of the URL happens to be a . followed by any identifier that appears in the project. This results in HTML that displays incorrectly and links to the wrong place. This seems to happen regardless of whether the link is written via Markdown syntax or reStructuredText syntax.

Steps to reproduce the behavior:

  1. Create issue/__init__.py like this:
    def com():
        """
        [something](https://example.com)
        """
        pass
  2. Run pdoc issue to generate documentation
  3. Observe the generated documentation for the com function. It produces HTML that looks like this:
    <a href="https://example<a href=" #com"="">.com</a>"&gt;something
    which visually renders as:
    .com">something
    
    where the .com text seems to link to the invalid URL https://example<a href=.

System Information

pdoc: 15.0.4
Python: 3.11.12
Platform: macOS-15.3.1-arm64-arm-64bit

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions