backstage/mkdocs-monorepo-plugin

[feature] Support for mono-repo that use symlinks

bartvandenende-wm opened this issue · 0 comments

Summary

Request to add support for mono-repos that use symlinks

Details

We are exploring the usage of mkdocs for a typescript mono-repo that uses symlinks via pnpm package manager to link packages.

An example folder tree structure would be

- docs/*.md
- node_modules/{package-name}/mkdocs.yml << {package-name} is a folder symlink
- mkdocs.yml

with a mkdocs.yml config:

nav:
  - Intro: 'index.md'
  - Libraries: '*include ./node_modules/*/mkdocs.yml'

Unfortunately the above config does not work as mkdocs-monorepo-plugin resolves the symlinks to absolute paths which are outside of the project directory.

I was curious if there is a need to resolve symlinks for the plugin and if the below two resolve actions?

site[str(mkdocs_config)] = f"{INCLUDE_STATEMENT}{mkdocs_config.resolve()}"

site[site_name] = f"{INCLUDE_STATEMENT}{mkdocs_config.resolve()}"

Proposal

A suggested change proposal would be to update the above path method .resolve() to .absolute(), which still resolves the absolute path but does not resolve the symlink per https://docs.python.org/3/library/pathlib.html#pathlib.Path.absolute