New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Broken links on generated documentation #7127
Comments
Is it sufficient to process the 2 .h files and 2 files without extension mentioned in the question?
|
I couldn't construct a self-contained example to trigger this problem. However, a colleague looked the generated HTML file, and he noticed that the We suspect that the
searches for the first <body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading" style="display: none;">
Loading...
</div>
<div id="SRResults">
<div id="SR_task" class="SRResult" classname="SRResult"
style="display: block;">
<div class="SREntry" classname="SREntry">
<a id="Item1" onkeydown=
"return searchResults.Nav(event,1)" onkeypress=
"return searchResults.Nav(event,1)" onkeyup=
"return searchResults.Nav(event,1)" class="SRSymbol"
classname="SRSymbol" href="../group__l4__task__api.html"
target="_parent">Task</a>
</div>
</div>
<div id="SR_thread" class="SRResult" classname="SRResult"
style="display: none;">
<div class="SREntry" classname="SREntry">
<a id="Item2" onkeydown=
"return searchResults.Nav(event,2)" onkeypress=
"return searchResults.Nav(event,2)" onkeyup=
"return searchResults.Nav(event,2)" class="SRSymbol"
classname="SRSymbol" href=
"../group__l4__thread__api.html" target=
"_parent">Thread</a>
</div>
</div>
<div id="SR_task" class="SRResult" classname="SRResult"
style="display: block;">
<div class="SREntry" classname="SREntry">
<a id="Item15" onkeydown=
"return searchResults.Nav(event,15)" onkeypress=
"return searchResults.Nav(event,15)" onkeyup=
"return searchResults.Nav(event,15)" class="SRSymbol"
classname="SRSymbol" href=
'javascript:searchResults.Toggle("SR_task")'>Task</a>
<div class="SRChildren" classname="SRChildren">
<a id="Item15_c0" onkeydown=
"return searchResults.NavChild(event,15,0)" onkeypress=
"return searchResults.NavChild(event,15,0)" onkeyup=
"return searchResults.NavChild(event,15,0)" class=
"SRScope" classname="SRScope" href=
"../classL4_1_1Task.html" target=
"_parent">L4::Task</a><a id="Item15_c1" onkeydown=
"return searchResults.NavChild(event,15,1)" onkeypress=
"return searchResults.NavChild(event,15,1)" onkeyup=
"return searchResults.NavChild(event,15,1)" class=
"SRScope" classname="SRScope" href="../task.html"
target="_parent">(Global Namespace)</a><a id=
"Item15_c2" onkeydown=
"return searchResults.NavChild(event,15,2)" onkeypress=
"return searchResults.NavChild(event,15,2)" onkeyup=
"return searchResults.NavChild(event,15,2)" class=
"SRScope" classname="SRScope" href=
"../classL4Re_1_1Env.html#a8be92795e470144b5acb15de07ea0c95"
target="_parent">L4Re::Env::task()</a><a id="Item15_c3"
onkeydown="return searchResults.NavChild(event,15,3)"
onkeypress="return searchResults.NavChild(event,15,3)"
onkeyup="return searchResults.NavChild(event,15,3)"
class="SRScope" classname="SRScope" href=
"../classL4vcpu_1_1Vcpu.html#ad3ef11adf9662db3feed1b40208032eb"
target="_parent">L4vcpu::Vcpu::task()</a>
</div>
</div>
</div>
<div id="SR_task_2eh" class="SRResult" classname="SRResult"
style="display: block;">
<div class="SREntry" classname="SREntry">
<a id="Item16" onkeydown=
"return searchResults.Nav(event,16)" onkeypress=
"return searchResults.Nav(event,16)" onkeyup=
"return searchResults.Nav(event,16)" class="SRSymbol"
classname="SRSymbol" href="../l4_2sys_2task_8h.html"
target="_parent">task.h</a>
</div>
</div>
</div>
</div>
</body> If we use the Developer Tools in Chrome to edit the page and rename the I hope this information is useful to give you a hint about what is causing the problem. If I succeed to provide a minimal working example, I will post it here. |
Sometimes it is very hard to create a minimal example, pity that you didn't succeed. |
I've just succeeded to create a minimal example! Here it goes! |
I found the example, but I didn't yet find the place where the toggle is (HTML page), maybe you can give me a hint. Renaming the group in Task.h:
to
solves the problem, but is not required solution as the texxt "task_h" would also appear in the output. I just checked the master version and here the problem is also still present. |
Make identifier in the `.js` files unique (they are only used internally)
I've just pushed a proposed patch, pull request #7133 |
Code has been integrated in master on github (please don't close the issue as this will be done at the moment of a release). |
This issue was previously marked 'fixed but not released', |
Browsing the doxygen documentation of L4Re (https://l4re.org/doc/) I noticed that the link for the documentation of some C++ classes in the search bar is broken. For example, while searching for 'Task', two results come out in the search bar. Clicking on the first takes the user to the C interface, while clicking on the second result takes no effect.
I suspect this may be related to the fact that the name 'Task' is used to name two interfaces (one in C, one in C++), but I also noticed that both interfaces for Factory are both named 'Factory', and there the links for each individual interface work as expected.
Looking into the HTML code of the page in the Chrome DevTools, I noticed that when searching for 'Factory' (which is the case where the link actually works), if I click over the link in the result panel in the search bar, it updates the SRChildren element adding the attribute:
style="display: block;"
This does not happen when I search for 'Task'. Two results appear, but only one of the links has an effect when clicked on. I also noticed that if I manually edit the content of the page in Chrome DevTools by adding
style="display: block;"
to
<div class="SRChildren" classname="SRChildren">
then it expands the sub-menu and shows the link for the Task class documentation.
Looking at the source codes for both classes (Factory/Task), I could not spot anything that was able to justify this behaviour. I wonder if this is a bug in Doxygen, or may it be some configuration missing on the source code of L4Re which is causing the link to be broken.
Link for the sources (Task C/C++ and Factory C/C++) are given here:
Task C++ Interface
[In Doxygen] https://l4re.org/doc/task_source.html
[In Github] https://github.com/kernkonzept/l4re-core/blob/master/l4sys/include/task
Task C interface
[In Doxygen] https://l4re.org/doc/task_8h_source.html
[In Github] https://github.com/kernkonzept/l4re-core/blob/master/l4sys/include/task.h
Factory C++ Interface
[In Doxygen] https://l4re.org/doc/factory_source.html
[In Github] https://github.com/kernkonzept/l4re-core/blob/master/l4sys/include/factory
Factory C Interface
[In Doxygen] https://l4re.org/doc/factory_8h_source.html
[In Github] https://github.com/kernkonzept/l4re-core/blob/master/l4sys/include/factory.h
I've tried compile the documentation myself with two versions of Doxygen: 1.8.13 and 1.8.15 (the latest), but I saw no difference with respect to the broken link.
The text was updated successfully, but these errors were encountered: