Link API Members from Conceptual

Mar 27, 2013 at 5:31 PM
Hi! I'm trying to link the "All methods"/members page of a class from the conceptual.

*The one that says The "class" type exposes the following members.

Something like this:

<codeEntityReference qualifyHint="false" autoUpgrade="true">Methods:NameSpace.Class</codeEntityReference>
Editor
Mar 27, 2013 at 7:32 PM
You just need to get the ID in the correct format:
<codeEntityReference qualifyHint="false">AllMembers.T:NameSpace.Class</codeEntityReference>

<codeEntityReference qualifyHint="false">Methods.T:NameSpace.Class</codeEntityReference>
Also, please note that this project has been discontinued and may not be monitored as frequently. For future questions concerning Sandcastle or SHFB, post them over on the Sandcastle Help File Builder project's discussion page. Thanks.

Eric
Mar 28, 2013 at 1:37 PM
thanks!

The same way. How could I get the list of classes only?
Editor
Mar 28, 2013 at 7:32 PM
You can use the namespace ID to go to its page (N:NamespaceId). You can use the Entity References Window in the SHFB standalone GUI or Visual Studio package to add references to API members such as namespaces, types, and methods, etc. Select the Code Entities option in its drop down. It won't list the group entries such as AllMembers though since they are added at build time by the presentation style if it supports them.

Eric
Mar 28, 2013 at 7:35 PM
I meant something like this:


<codeEntityReference qualifyHint="false">Classes.T:NameSpace.Class</codeEntityReference>

But it doesn't seem to work
Editor
Mar 28, 2013 at 7:40 PM
If you want a list of all classes in a namespace, the namespace ID will work as noted above. If you want a list of all namespaces, the R:Project_[ProjectName] ID should do it. Replace "[ProjectName]" with the name from your SHFB Project's Help Name property with any spaces replaced by underscores.

If your intent is to list classes nested within some other arbitrary class, there isn't a way to do that since the presentation styles don't generate anything for nested classes within another class. Each class gets its own top-level entry in the TOC and the namespace list pages even if it's nested within another class. The nested classes are prefixed with their parent class's name.

Eric
Mar 14, 2014 at 5:11 PM
EWoodruff wrote:
If you want a list of all classes in a namespace, the namespace ID will work as noted above. If you want a list of all namespaces, the R:Project_[ProjectName] ID should do it. Replace "[ProjectName]" with the name from your SHFB Project's Help Name property with any spaces replaced by underscores.

If your intent is to list classes nested within some other arbitrary class, there isn't a way to do that since the presentation styles don't generate anything for nested classes within another class. Each class gets its own top-level entry in the TOC and the namespace list pages even if it's nested within another class. The nested classes are prefixed with their parent class's name.

Eric
When I use R:Project_[ProjectName] I have no control how the link text will look, I get [R:Project_[ProjectName]] as output. Is there a way to set the text or to make the actual root container title or project name be displayed instead?
Editor
Mar 14, 2014 at 7:27 PM
This was brought up in a recent thread in the SHFB project. I added support for a linkText attribute that lets you override the default member name link text. It'll be in the next release. See this thread for the update needed: https://shfb.codeplex.com/discussions/538726

Eric