lijunle / Vsxmd

VS XML documentation -> Markdown syntax.
MIT License
217 stars 52 forks source link

Generated constructor links do not work #54

Closed wkoeter closed 5 years ago

wkoeter commented 6 years ago

When commenting constructor it is also added in table of contents.

Example:

ctor(param1,param2,param3)

When clicking link

Expected: Go to section Actual: Nothing happens

lijunle commented 5 years ago

Hi, @wkoeter I don't understand what is "commenting constructor". Could you please a code snippet to repro this issue?

wkoeter commented 5 years ago

I found it is not related to the constructor. The broken link happens when you use <> tags in an input variable (e.g. List).

The generated link will not work.

/// <summary>
/// Class A
/// </summary>
public class ClassA
{
    /// <summary>
    /// Class A
    /// </summary>
    /// <param name="a">collection a</param>
    /// <param name="b">string b</param>
    public ClassA(IEnumerable<string> a, string b)
    {

    }

    /// <summary>
    /// Something Happened
    /// </summary>
    /// <param name="a">collection a</param>    
    public void SomethingHappened(IEnumerable<string> a)
    {

    }
}

produces :

- [ClassA](#T-ClassA 'ClassA')
  - [#ctor(a,b)](#M-ClassA-#ctor-System-Collections-Generic-IEnumerable{System-String},System-String- 'ClassA.#ctor(System.Collections.Generic.IEnumerable{System.String},System.String)')
  - [SomethingHappened(a)](#M-ClassA-SomethingHappened-System-Collections-Generic-IEnumerable{System-String}- 'ClassA.SomethingHappened(System.Collections.Generic.IEnumerable{System.String})')
<a name='T-ClassA'></a>
## ClassA `type`

##### Namespace

##### Summary

Class A

<a name='M-ClassA-#ctor-System-Collections-Generic-IEnumerable{System-String},System-String-'></a>
### #ctor(a,b) `constructor`

##### Summary

Class A

##### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| a | [System.Collections.Generic.IEnumerable{System.String}](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Collections.Generic.IEnumerable 'System.Collections.Generic.IEnumerable{System.String}') | collection a |
| b | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | string b |

<a name='M-ClassA-SomethingHappened-System-Collections-Generic-IEnumerable{System-String}-'></a>
### SomethingHappened(a) `method`

##### Summary

Something Happened

##### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| a | [System.Collections.Generic.IEnumerable{System.String}](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Collections.Generic.IEnumerable 'System.Collections.Generic.IEnumerable{System.String}') | collection a |
lijunle commented 5 years ago

@wkoeter I still don't understand, I copy the generated ToC and content to a Markdown file. It is working well.

wkoeter commented 5 years ago

In my BitBucket repository the links do not work. Also not in the Markdown Editor Visual Studio extension but that is not a problem perse (more an inconvenience).

when the link changes from

- [SomethingHappened(a)](#M-ClassA-SomethingHappened-System-Collections-Generic-IEnumerable{System-String}- 'ClassA.SomethingHappened(System.Collections.Generic.IEnumerable{System.String})')

<a name='M-ClassA-SomethingHappened-System-Collections-Generic-IEnumerable{System-String}-'></a>

to


- [SomethingHappened(a)](#M-ClassA-SomethingHappened-System-Collections-Generic-IEnumerableSystem-String- 'ClassA.SomethingHappened(System.Collections.Generic.IEnumerable{System.String})')

<a name='M-ClassA-SomethingHappened-System-Collections-Generic-IEnumerableSystem-String-'></a>

It does work in BitBucket

lijunle commented 5 years ago

From my testing, BitBucket.org completely not supports <a name=''></a> tag. How do you get your example working in BitBucket?

lijunle commented 5 years ago

Close the issue due to no response.