Comments (3)
It looks like this is a problem with the autolinker, while it does check whether modules and functions exist in the current project it doesn't do so for types.
from ex_doc.
I spent a little bit of time looking at this and here's what I found. Suspect you guys already knew most of it, but I'm going to say it out loud for my understanding.
For the Version.Schema.t
example, Version.Schema
is a defrecord
inside Version
which does not have any documentation. ExDoc.Retriever.verify_module/2
removes these records from the list of modules to build documentation pages for. There is a comment calling out this fact in the code. Something about waiting for maps...
When ExDoc.HTMLFormatter.Autolink.typespec/3
runs, it calls ExDoc.HTMLFormatter.Autolink.get_source/2
which doesn't find Version.Schema
in the local aliases
list, but does find the beam file in the elixir lib path. At that point it constructs a link to where the doc page would be (had it not been stripped by the Retriever
). You need this elixir lib path check in general to catch other generic types (like String
).
Based on this, I don't see an easy way to catch this case. One option would be to allow doc pages to be created for these records. Or find some way to check __info__
and figure out it's not something we should be linking to.
from ex_doc.
Closing in favor of #192.
from ex_doc.
Related Issues (20)
- Sidebar overflow is not showing a scrollbar on my browsers HOT 1
- SVG logo is not shown HOT 3
- Getting an invalid epub format
- EPUB: Links to anchors like #&&/2 cause a fatal error while parsing the file
- Autolink private dependencies HOT 1
- UX issues related to search bar location HOT 6
- Linebreaks in the middle of `++` HOT 8
- Head of document missing when printing HOT 3
- Equivalent for edocs's {sort_functions, false} HOT 5
- Admonitions not styled properly within cheat sheets HOT 7
- Text of code block within a info admonition block is barely legible in darkmode HOT 5
- Allow adding *.exs files to the docs HOT 2
- Introduce meta tags to customize search HOT 1
- Search thinks there are ids for <h4> HOT 3
- Building docs when module compiled using `+deterministic` fails HOT 4
- Ability to configure skipping of types and specs in doc generation HOT 10
- Question concerning usage of EarmarkParser HOT 4
- Version dropdown doesn't work in v0.32.0 HOT 1
- Generating both Erlang and Elixir docs at once HOT 4
- Empty source AST HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ex_doc.