From 225cecbdc0529b13922b8846c1946722fe5f709c Mon Sep 17 00:00:00 2001 From: joshua-light Date: Tue, 19 Dec 2023 19:04:59 +0200 Subject: [PATCH 1/3] Implement simple index page --- docs/README.md | 102 ++++++++++++++++++++ docs/Summary.Markdown.RenderMarkdownPipe.md | 4 +- src/Plugins/Markdown/RenderMarkdownPipe.cs | 35 ++++++- 3 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..38fb9de --- /dev/null +++ b/docs/README.md @@ -0,0 +1,102 @@ +# Summary +- [**Summary.Doc**](Summary.Doc.md) +- [**Summary.DocComment**](Summary.DocComment.md) +- [**Summary.DocCommentElement**](Summary.DocCommentElement.md) +- [**Summary.DocCommentElementAttribute**](Summary.DocCommentElementAttribute.md) +- [**Summary.DocCommentInheritDoc**](Summary.DocCommentInheritDoc.md) +- [**Summary.DocCommentLink**](Summary.DocCommentLink.md) +- [**Summary.DocCommentLiteral**](Summary.DocCommentLiteral.md) +- [**Summary.DocCommentNode**](Summary.DocCommentNode.md) +- [**Summary.DocCommentParamRef**](Summary.DocCommentParamRef.md) +- [**Summary.DocDeprecation**](Summary.DocDeprecation.md) +- [**Summary.DocEvent**](Summary.DocEvent.md) +- [**Summary.DocExtensions**](Summary.DocExtensions.md) +- [**Summary.DocField**](Summary.DocField.md) +- [**Summary.DocIndexer**](Summary.DocIndexer.md) +- [**Summary.DocLocation**](Summary.DocLocation.md) +- [**Summary.DocMember**](Summary.DocMember.md) +- [**Summary.DocMethod**](Summary.DocMethod.md) +- [**Summary.DocParam**](Summary.DocParam.md) +- [**Summary.DocProperty**](Summary.DocProperty.md) +- [**Summary.DocPropertyAccessor**](Summary.DocPropertyAccessor.md) +- [**Summary.DocType**](Summary.DocType.md) +- [**Summary.DocTypeDeclaration**](Summary.DocTypeDeclaration.md) +- [**Summary.DocTypeParam**](Summary.DocTypeParam.md) + +# Summary.Tests +- [**Summary.Tests.Extensions**](Summary.Tests.Extensions.md) + +# Summary.Cli.Logging +- [**Summary.Cli.Logging.ConsoleLoggerFactory**](Summary.Cli.Logging.ConsoleLoggerFactory.md) + +# Summary.Caching +- [**Summary.Caching.CrefCache**](Summary.Caching.CrefCache.md) + +# Summary.Pipelines +- [**Summary.Pipelines.SummaryPipeline**](Summary.Pipelines.SummaryPipeline.md) +- [**Summary.Pipelines.SummaryPipeline.Options**](Summary.Pipelines.SummaryPipeline.Options.md) +- [**Summary.Pipelines.SummaryPipelineExtensions**](Summary.Pipelines.SummaryPipelineExtensions.md) +- [**Summary.Pipelines.FilteringExtensions**](Summary.Pipelines.FilteringExtensions.md) + +# Summary.Pipes +- [**Summary.Pipes.FoldPipe**](Summary.Pipes.FoldPipe{O}.md) +- [**Summary.Pipes.FuncPipe**](Summary.Pipes.FuncPipe{I,O}.md) +- [**Summary.Pipes.IPipe**](Summary.Pipes.IPipe{I,O}.md) +- [**Summary.Pipes.PipeExtensions**](Summary.Pipes.PipeExtensions.md) +- [**Summary.Pipes.TeePipe**](Summary.Pipes.TeePipe{I,O}.md) +- [**Summary.Pipes.ThenForEach**](Summary.Pipes.ThenForEach{I,O1,O2}.md) +- [**Summary.Pipes.ThenPipe**](Summary.Pipes.ThenPipe{I,O1,O2}.md) +- [**Summary.Pipes.Unit**](Summary.Pipes.Unit.md) + +# Summary.Samples +- [**Summary.Samples.InheritDocBase**](Summary.Samples.InheritDocBase.md) +- [**Summary.Samples.InheritDoc_Child**](Summary.Samples.InheritDoc_Child.md) +- [**Summary.Samples.InheritDoc_Child2**](Summary.Samples.InheritDoc_Child2.md) +- [**Summary.Samples.InheritDoc_CrefBase**](Summary.Samples.InheritDoc_CrefBase.md) +- [**Summary.Samples.InheritDoc_CrefBase_Child**](Summary.Samples.InheritDoc_CrefBase_Child.md) +- [**Summary.Samples.InheritDoc_Child_OverrideSummary**](Summary.Samples.InheritDoc_Child_OverrideSummary.md) +- [**Summary.Samples.InheritDoc_Child_OverrideSummary2**](Summary.Samples.InheritDoc_Child_OverrideSummary2.md) +- [**Summary.Samples.IInheritDocBase**](Summary.Samples.IInheritDocBase.md) +- [**Summary.Samples.InheritDoc_InterfaceChild**](Summary.Samples.InheritDoc_InterfaceChild.md) +- [**Summary.Samples.InheritDocRecordBase**](Summary.Samples.InheritDocRecordBase.md) +- [**Summary.Samples.InheritDocRecordBase_Child**](Summary.Samples.InheritDocRecordBase_Child.md) +- [**Summary.Samples.Sample**](Summary.Samples.Sample{T0,T1}.md) +- [**Summary.Samples.Sample.Child**](Summary.Samples.Sample{T0,T1}.Child.md) + +# Summary.Markdown +- [**Summary.Markdown.MarkdownPipelineExtensions**](Summary.Markdown.MarkdownPipelineExtensions.md) +- [**Summary.Markdown.Md**](Summary.Markdown.Md.md) +- [**Summary.Markdown.RenderMarkdownPipe**](Summary.Markdown.RenderMarkdownPipe.md) + +# Summary.Roslyn +- [**Summary.Roslyn.RoslynPipelineExtensions**](Summary.Roslyn.RoslynPipelineExtensions.md) + +# Summary.Tests.Core +- [**Summary.Tests.Core.PipesTests**](Summary.Tests.Core.PipesTests.md) + +# Summary.Tests.Markdown +- [**Summary.Tests.Markdown.MarkdownTests**](Summary.Tests.Markdown.MarkdownTests.md) + +# Summary.Tests.Roslyn +- [**Summary.Tests.Roslyn.RoslynParserTests**](Summary.Tests.Roslyn.RoslynParserTests.md) + +# Summary.Pipes.Filters +- [**Summary.Pipes.Filters.FilterMemberPipe**](Summary.Pipes.Filters.FilterMemberPipe.md) + +# Summary.Pipes.IO +- [**Summary.Pipes.IO.CleanupDirPipe**](Summary.Pipes.IO.CleanupDirPipe{I}.md) +- [**Summary.Pipes.IO.SavePipe**](Summary.Pipes.IO.SavePipe{I}.md) +- [**Summary.Pipes.IO.ScanPipe**](Summary.Pipes.IO.ScanPipe.md) +- [**Summary.Pipes.IO.Source**](Summary.Pipes.IO.Source.md) + +# Summary.Pipes.Logging +- [**Summary.Pipes.Logging.LoggedPipe**](Summary.Pipes.Logging.LoggedPipe{I,O}.md) + +# Summary.Roslyn.CSharp +- [**Summary.Roslyn.CSharp.InlineInheritDocPipe**](Summary.Roslyn.CSharp.InlineInheritDocPipe.md) +- [**Summary.Roslyn.CSharp.ParseDocPipe**](Summary.Roslyn.CSharp.ParseDocPipe.md) +- [**Summary.Roslyn.CSharp.ParseSyntaxTreePipe**](Summary.Roslyn.CSharp.ParseSyntaxTreePipe.md) + +# Summary.Roslyn.CSharp.Extensions +- [**Summary.Roslyn.CSharp.Extensions.DocMemberExtensions**](Summary.Roslyn.CSharp.Extensions.DocMemberExtensions.md) + diff --git a/docs/Summary.Markdown.RenderMarkdownPipe.md b/docs/Summary.Markdown.RenderMarkdownPipe.md index ed438dc..749309a 100644 --- a/docs/Summary.Markdown.RenderMarkdownPipe.md +++ b/docs/Summary.Markdown.RenderMarkdownPipe.md @@ -1,4 +1,4 @@ -# [Summary.Markdown.RenderMarkdownPipe](../src/Plugins/Markdown/RenderMarkdownPipe.cs#L8) +# [Summary.Markdown.RenderMarkdownPipe](../src/Plugins/Markdown/RenderMarkdownPipe.cs#L9) ```cs public class RenderMarkdownPipe : IPipe ``` @@ -6,7 +6,7 @@ public class RenderMarkdownPipe : IPipe A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that renders generated document into the sequence of Markdown files. ## Methods -### [Run(Doc)](../src/Plugins/Markdown/RenderMarkdownPipe.cs#L10) +### [Run(Doc)](../src/Plugins/Markdown/RenderMarkdownPipe.cs#L11) ```cs public Task Run(Doc doc) ``` diff --git a/src/Plugins/Markdown/RenderMarkdownPipe.cs b/src/Plugins/Markdown/RenderMarkdownPipe.cs index 97b5d07..f9c8018 100644 --- a/src/Plugins/Markdown/RenderMarkdownPipe.cs +++ b/src/Plugins/Markdown/RenderMarkdownPipe.cs @@ -1,4 +1,5 @@ -using Summary.Pipes; +using System.Text; +using Summary.Pipes; namespace Summary.Markdown; @@ -14,7 +15,9 @@ public Task Run(Doc doc) => .Members .OfType() .SelectMany(x => x.AllMembers.OfType())) - .Select(x => Render(doc, x)).ToArray()); + .Select(x => Render(doc, x)) + .Concat(new [] { Index(doc) }) + .ToArray()); private Md Render(Doc doc, DocMember member) { @@ -22,4 +25,32 @@ private Md Render(Doc doc, DocMember member) return new($"{member.FileName()}.md", text); } + + private Md Index(Doc doc) + { + return new("README.md", Content()); + + string Content() + { + var text = new StringBuilder(); + var namespaces = doc + .Index + .Members + .OfType() + .GroupBy(x => x.Namespace) + .ToDictionary(x => x.Key, x => x.ToList()); + + foreach (var (ns, members) in namespaces) + { + text.AppendLine($"# {ns}"); + + foreach (var member in members) + text.AppendLine($"- [**{member.FullyQualifiedName}**]({member.FileName()}.md)"); + + text.AppendLine(); + } + + return text.ToString(); + } + } } \ No newline at end of file From 307bed193b30b4ecc9bb02dbecf8d2985bba2a0f Mon Sep 17 00:00:00 2001 From: joshua-light Date: Tue, 19 Dec 2023 19:23:39 +0200 Subject: [PATCH 2/3] Escape some characters for correct Markdown rendering --- docs/README.md | 22 ++++---- docs/Summary.Caching.CrefCache.md | 20 ++++---- ...ummary.Cli.Logging.ConsoleLoggerFactory.md | 10 ++-- docs/Summary.Doc.md | 2 +- docs/Summary.DocComment.md | 14 +++--- docs/Summary.DocCommentInheritDoc.md | 2 +- docs/Summary.DocCommentLink.md | 2 +- docs/Summary.DocCommentParamRef.md | 2 +- docs/Summary.DocMethod.md | 4 +- docs/Summary.DocParam.md | 2 +- docs/Summary.DocType.md | 2 +- docs/Summary.DocTypeDeclaration.md | 4 +- docs/Summary.DocTypeParam.md | 2 +- docs/Summary.Markdown.RenderMarkdownPipe.md | 6 +-- docs/Summary.Pipelines.FilteringExtensions.md | 8 +-- docs/Summary.Pipelines.SummaryPipeline.md | 24 ++++----- .../Summary.Pipes.Filters.FilterMemberPipe.md | 4 +- docs/Summary.Pipes.FoldPipe{O}.md | 8 +-- docs/Summary.Pipes.FuncPipe{I,O}.md | 8 +-- docs/Summary.Pipes.IO.CleanupDirPipe{I}.md | 6 +-- docs/Summary.Pipes.IO.SavePipe{I}.md | 8 +-- docs/Summary.Pipes.IO.ScanPipe.md | 6 +-- docs/Summary.Pipes.IO.Source.md | 2 +- docs/Summary.Pipes.IPipe{I,O}.md | 6 +-- docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md | 8 +-- docs/Summary.Pipes.PipeExtensions.md | 50 +++++++++---------- docs/Summary.Pipes.TeePipe{I,O}.md | 8 +-- docs/Summary.Pipes.ThenForEach{I,O1,O2}.md | 8 +-- docs/Summary.Pipes.ThenPipe{I,O1,O2}.md | 8 +-- ...n.CSharp.Extensions.DocMemberExtensions.md | 4 +- ...mary.Roslyn.CSharp.InlineInheritDocPipe.md | 10 ++-- docs/Summary.Roslyn.CSharp.ParseDocPipe.md | 6 +-- ...mmary.Roslyn.CSharp.ParseSyntaxTreePipe.md | 6 +-- ...Summary.Roslyn.RoslynPipelineExtensions.md | 8 +-- docs/Summary.Samples.InheritDocBase.md | 4 +- docs/Summary.Samples.Sample{T0,T1}.Child.md | 8 +-- docs/Summary.Samples.Sample{T0,T1}.md | 20 ++++---- docs/Summary.Tests.Extensions.md | 8 +-- .../Markdown/MarkdownRenderExtensions.cs | 11 ++++ src/Plugins/Markdown/RenderMarkdownPipe.cs | 4 +- 40 files changed, 178 insertions(+), 167 deletions(-) diff --git a/docs/README.md b/docs/README.md index 38fb9de..26f562c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -39,13 +39,13 @@ - [**Summary.Pipelines.FilteringExtensions**](Summary.Pipelines.FilteringExtensions.md) # Summary.Pipes -- [**Summary.Pipes.FoldPipe**](Summary.Pipes.FoldPipe{O}.md) -- [**Summary.Pipes.FuncPipe**](Summary.Pipes.FuncPipe{I,O}.md) -- [**Summary.Pipes.IPipe**](Summary.Pipes.IPipe{I,O}.md) +- [**Summary.Pipes.FoldPipe<O>**](Summary.Pipes.FoldPipe{O}.md) +- [**Summary.Pipes.FuncPipe<I, O>**](Summary.Pipes.FuncPipe{I,O}.md) +- [**Summary.Pipes.IPipe<I, O>**](Summary.Pipes.IPipe{I,O}.md) - [**Summary.Pipes.PipeExtensions**](Summary.Pipes.PipeExtensions.md) -- [**Summary.Pipes.TeePipe**](Summary.Pipes.TeePipe{I,O}.md) -- [**Summary.Pipes.ThenForEach**](Summary.Pipes.ThenForEach{I,O1,O2}.md) -- [**Summary.Pipes.ThenPipe**](Summary.Pipes.ThenPipe{I,O1,O2}.md) +- [**Summary.Pipes.TeePipe<I, O>**](Summary.Pipes.TeePipe{I,O}.md) +- [**Summary.Pipes.ThenForEach<I, O1, O2>**](Summary.Pipes.ThenForEach{I,O1,O2}.md) +- [**Summary.Pipes.ThenPipe<I, O1, O2>**](Summary.Pipes.ThenPipe{I,O1,O2}.md) - [**Summary.Pipes.Unit**](Summary.Pipes.Unit.md) # Summary.Samples @@ -60,8 +60,8 @@ - [**Summary.Samples.InheritDoc_InterfaceChild**](Summary.Samples.InheritDoc_InterfaceChild.md) - [**Summary.Samples.InheritDocRecordBase**](Summary.Samples.InheritDocRecordBase.md) - [**Summary.Samples.InheritDocRecordBase_Child**](Summary.Samples.InheritDocRecordBase_Child.md) -- [**Summary.Samples.Sample**](Summary.Samples.Sample{T0,T1}.md) -- [**Summary.Samples.Sample.Child**](Summary.Samples.Sample{T0,T1}.Child.md) +- [**Summary.Samples.Sample<T0, T1>**](Summary.Samples.Sample{T0,T1}.md) +- [**Summary.Samples.Sample<T0, T1>.Child**](Summary.Samples.Sample{T0,T1}.Child.md) # Summary.Markdown - [**Summary.Markdown.MarkdownPipelineExtensions**](Summary.Markdown.MarkdownPipelineExtensions.md) @@ -84,13 +84,13 @@ - [**Summary.Pipes.Filters.FilterMemberPipe**](Summary.Pipes.Filters.FilterMemberPipe.md) # Summary.Pipes.IO -- [**Summary.Pipes.IO.CleanupDirPipe**](Summary.Pipes.IO.CleanupDirPipe{I}.md) -- [**Summary.Pipes.IO.SavePipe**](Summary.Pipes.IO.SavePipe{I}.md) +- [**Summary.Pipes.IO.CleanupDirPipe<I>**](Summary.Pipes.IO.CleanupDirPipe{I}.md) +- [**Summary.Pipes.IO.SavePipe<I>**](Summary.Pipes.IO.SavePipe{I}.md) - [**Summary.Pipes.IO.ScanPipe**](Summary.Pipes.IO.ScanPipe.md) - [**Summary.Pipes.IO.Source**](Summary.Pipes.IO.Source.md) # Summary.Pipes.Logging -- [**Summary.Pipes.Logging.LoggedPipe**](Summary.Pipes.Logging.LoggedPipe{I,O}.md) +- [**Summary.Pipes.Logging.LoggedPipe<I, O>**](Summary.Pipes.Logging.LoggedPipe{I,O}.md) # Summary.Roslyn.CSharp - [**Summary.Roslyn.CSharp.InlineInheritDocPipe**](Summary.Roslyn.CSharp.InlineInheritDocPipe.md) diff --git a/docs/Summary.Caching.CrefCache.md b/docs/Summary.Caching.CrefCache.md index bc45cd5..43781fd 100644 --- a/docs/Summary.Caching.CrefCache.md +++ b/docs/Summary.Caching.CrefCache.md @@ -14,14 +14,14 @@ public static string AsCref(this string self) Converts the given string into the format of `cref` attribute value. #### Example -In the following example, the `"Some"` string +In the following example, the `"Some<T1, T2>"` string (which represents the name of some type) is converted into `"Some{T1,T2}"` as if it was a value of a link -(e.g., ): +(e.g., <see cref="Some{T1,T2}">): ```cs -var a = "Some"; +var a = "Some<T1, T2>"; var b = a.AsCref(); -
+<br/> b.Should().Be("Some{T1,T2}"); ``` @@ -34,14 +34,14 @@ Converts the given string into the format of `cref` attribute value but also removes all generic parameter names. #### Example -In the following example, the `"Some"` string +In the following example, the `"Some<T1, T2>"` string (which represents the name of some type) is converted into `"Some{,}"`, the raw form of `cref` that can be used for comparisons without involving generic type parameter names. ```cs -var a = "Some"; +var a = "Some<T1, T2>"; var b = a.AsCref(); -
+<br/> b.Should().Be("Some{,}"); ``` @@ -55,11 +55,11 @@ Converts the given string from the format of `cref` attribute value. #### Example In the following example, the `"Some{T1,T2}"` string (which represents the name of some type in the `cref` format) -is converted into `"Some` so that it can be displayed somewhere. +is converted into `"Some<T1, T2>` so that it can be displayed somewhere. ```cs var a = "Some{T1,T2}"; var b = a.AsCref(); -
-b.Should().Be("Some"); +<br/> +b.Should().Be("Some<T1, T2>"); ``` diff --git a/docs/Summary.Cli.Logging.ConsoleLoggerFactory.md b/docs/Summary.Cli.Logging.ConsoleLoggerFactory.md index 0c8a794..6fb3d08 100644 --- a/docs/Summary.Cli.Logging.ConsoleLoggerFactory.md +++ b/docs/Summary.Cli.Logging.ConsoleLoggerFactory.md @@ -17,14 +17,14 @@ public static readonly ILogger Instance public void Dispose() ``` -### [Log(LogLevel, EventId, TState, Exception?, Func, string>)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L41) +### [Log<TState>(LogLevel, EventId, TState, Exception?<Exception>, Func<TState, Exception?<Exception>, string>)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L41) ```cs -public void Log( +public void Log<TState>( LogLevel logLevel, EventId eventId, TState state, Exception? exception, - Func formatter) + Func<TState, Exception?, string> formatter) ``` ### [IsEnabled(LogLevel)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L49) @@ -32,9 +32,9 @@ public void Log( public bool IsEnabled(LogLevel logLevel) ``` -### [BeginScope(TState)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L51) +### [BeginScope<TState>(TState)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L51) ```cs -public IDisposable? BeginScope(TState state) +public IDisposable? BeginScope<TState>(TState state) ``` ### [CreateLogger(string)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L63) diff --git a/docs/Summary.Doc.md b/docs/Summary.Doc.md index 7368e7d..ef62769 100644 --- a/docs/Summary.Doc.md +++ b/docs/Summary.Doc.md @@ -33,7 +33,7 @@ Merges two documents together returning the new merged document. - `a`: The first document to merge. - `b`: The second document to merge. -### [Declaration(DocType?)](../src/Core/Doc.cs#L29) +### [Declaration(DocType?<DocType>)](../src/Core/Doc.cs#L29) ```cs public DocTypeDeclaration? Declaration(DocType? type) ``` diff --git a/docs/Summary.DocComment.md b/docs/Summary.DocComment.md index 6a333a9..3e6f208 100644 --- a/docs/Summary.DocComment.md +++ b/docs/Summary.DocComment.md @@ -27,7 +27,7 @@ The sequence of nodes this comment consists of (e.g. `summary`, `remarks`, etc.) public DocCommentElement? Param(string name) ``` -A nested `` documentation element that has the specified name. +A nested `<param>` documentation element that has the specified name. #### Parameters - `name`: The name of the parameter to search inside the comment. @@ -37,7 +37,7 @@ A nested `` documentation element that has the specified name. public DocCommentElement? TypeParam(string name) ``` -A nested `` documentation element that has the specified name. +A nested `<typeparam>` documentation element that has the specified name. #### Parameters - `name`: The name of the parameter to search inside the comment. @@ -63,9 +63,9 @@ A nested documentation element that has the specified name (e.g. `summary`, `rem #### Parameters - `tag`: The name of the element tag to search inside the comment. -### [Element(Func)](../src/Core/DocComment.cs#L47) +### [Element(Func<DocCommentElement, bool>)](../src/Core/DocComment.cs#L47) ```cs -public DocCommentElement? Element(Func p) +public DocCommentElement? Element(Func<DocCommentElement, bool> p) ``` A nested documentation element that matches the specified predicate `p`. @@ -75,7 +75,7 @@ A nested documentation element that matches the specified predicate `p`. ### [Elements(string)](../src/Core/DocComment.cs#L54) ```cs -public IEnumerable Elements(string tag) +public IEnumerable<DocCommentElement> Elements(string tag) ``` A sequence of nested documentation elements that have the specified name (e.g. `summary`, `remarks`, etc.). @@ -83,9 +83,9 @@ A sequence of nested documentation elements that have the specified name (e.g. ` #### Parameters - `tag`: The name of the element tag to search inside the comment. -### [Elements(Func)](../src/Core/DocComment.cs#L61) +### [Elements(Func<DocCommentElement, bool>)](../src/Core/DocComment.cs#L61) ```cs -public IEnumerable Elements(Func p) +public IEnumerable<DocCommentElement> Elements(Func<DocCommentElement, bool> p) ``` A sequence of nested documentation elements that match the specified predicate. diff --git a/docs/Summary.DocCommentInheritDoc.md b/docs/Summary.DocCommentInheritDoc.md index e980977..62355ab 100644 --- a/docs/Summary.DocCommentInheritDoc.md +++ b/docs/Summary.DocCommentInheritDoc.md @@ -4,7 +4,7 @@ public record DocCommentInheritDoc(string? Cref) : DocCommentNode ``` A [`DocCommentNode`](./Summary.DocCommentNode.md) that inherits documentation from another member -(``). +(`<inheritdoc>`). ## Properties ### [Cref](../src/Core/DocCommentInheritDoc.cs#L8) diff --git a/docs/Summary.DocCommentLink.md b/docs/Summary.DocCommentLink.md index d3301a3..161bd92 100644 --- a/docs/Summary.DocCommentLink.md +++ b/docs/Summary.DocCommentLink.md @@ -3,7 +3,7 @@ public record DocCommentLink(DocMember? Member, string Value) : DocCommentNode ``` -A [`DocCommentNode`](./Summary.DocCommentNode.md) that represents the link to other member (e.g. ``). +A [`DocCommentNode`](./Summary.DocCommentNode.md) that represents the link to other member (e.g. `<see cref="SomeMember"/>`). ## Properties ### [Member](../src/Core/DocCommentLink.cs#L9) diff --git a/docs/Summary.DocCommentParamRef.md b/docs/Summary.DocCommentParamRef.md index 86621cc..1ea4215 100644 --- a/docs/Summary.DocCommentParamRef.md +++ b/docs/Summary.DocCommentParamRef.md @@ -4,7 +4,7 @@ public record DocCommentParamRef(string Value) : DocCommentNode ``` A [`DocCommentNode`](./Summary.DocCommentNode.md) that represents the reference to a parameter -(``, ``). +(`<paramref>`, `<typeparamref>`). ## Properties ### [Value](../src/Core/DocCommentParamRef.cs#L8) diff --git a/docs/Summary.DocMethod.md b/docs/Summary.DocMethod.md index 9ed5ccb..bee614b 100644 --- a/docs/Summary.DocMethod.md +++ b/docs/Summary.DocMethod.md @@ -33,7 +33,7 @@ public string Signature { get; } ``` The full signature of the method that includes both type parameters and regular parameters -(e.g., `"Method(int, short)"`). +(e.g., `"Method<T1, T2>(int, short)"`). ### [FullyQualifiedSignature](../src/Core/DocMethod.cs#L39) ```cs @@ -41,5 +41,5 @@ public string FullyQualifiedSignature { get; } ``` The full signature of the method that includes both type parameters and regular parameters -(e.g., `"Method(int, short)"`). +(e.g., `"Method<T1, T2>(int, short)"`). diff --git a/docs/Summary.DocParam.md b/docs/Summary.DocParam.md index 0b3cea2..a1697db 100644 --- a/docs/Summary.DocParam.md +++ b/docs/Summary.DocParam.md @@ -26,5 +26,5 @@ The name of the parameter. public DocCommentElement? Comment(DocMember parent) ``` -The comment of the parameter (i.e., `` tag). +The comment of the parameter (i.e., `<param>` tag). diff --git a/docs/Summary.DocType.md b/docs/Summary.DocType.md index 02540db..c1b1d82 100644 --- a/docs/Summary.DocType.md +++ b/docs/Summary.DocType.md @@ -3,7 +3,7 @@ public record DocType(string Name, DocType[] TypeParams, string? FullyQualifiedName = null) ``` -A simple type (e.g. `int`, `string`, `List`, etc.). +A simple type (e.g. `int`, `string`, `List<int>`, etc.). ## Properties ### [FullName](../src/Core/DocType.cs#L16) diff --git a/docs/Summary.DocTypeDeclaration.md b/docs/Summary.DocTypeDeclaration.md index cd41fca..5d02055 100644 --- a/docs/Summary.DocTypeDeclaration.md +++ b/docs/Summary.DocTypeDeclaration.md @@ -37,7 +37,7 @@ Whether this type declaration is a record declaration. ### [AllMembers](../src/Core/DocTypeDeclaration.cs#L35) ```cs -public IEnumerable AllMembers { get; } +public IEnumerable<DocMember> AllMembers { get; } ``` All nested members (including children of children) of this type declaration. @@ -45,7 +45,7 @@ All nested members (including children of children) of this type declaration. ## Methods ### [MembersOfType(DocMember)](../src/Core/DocTypeDeclaration.cs#L41) ```cs -public IEnumerable MembersOfType(DocMember member) +public IEnumerable<DocMember> MembersOfType(DocMember member) ``` A sequence of members of this type declaration that has the same type as the specified one. diff --git a/docs/Summary.DocTypeParam.md b/docs/Summary.DocTypeParam.md index 42ed2bc..aa10c8d 100644 --- a/docs/Summary.DocTypeParam.md +++ b/docs/Summary.DocTypeParam.md @@ -19,5 +19,5 @@ The name of the parameter. public DocCommentElement? Comment(DocMember parent) ``` -The comment of the parameter (i.e., `` tag). +The comment of the parameter (i.e., `<typeparam>` tag). diff --git a/docs/Summary.Markdown.RenderMarkdownPipe.md b/docs/Summary.Markdown.RenderMarkdownPipe.md index 749309a..a1af7fd 100644 --- a/docs/Summary.Markdown.RenderMarkdownPipe.md +++ b/docs/Summary.Markdown.RenderMarkdownPipe.md @@ -1,13 +1,13 @@ # [Summary.Markdown.RenderMarkdownPipe](../src/Plugins/Markdown/RenderMarkdownPipe.cs#L9) ```cs -public class RenderMarkdownPipe : IPipe +public class RenderMarkdownPipe : IPipe<Doc, Md[]> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that renders generated document into the sequence of Markdown files. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that renders generated document into the sequence of Markdown files. ## Methods ### [Run(Doc)](../src/Plugins/Markdown/RenderMarkdownPipe.cs#L11) ```cs -public Task Run(Doc doc) +public Task<Md[]> Run(Doc doc) ``` diff --git a/docs/Summary.Pipelines.FilteringExtensions.md b/docs/Summary.Pipelines.FilteringExtensions.md index 26dbe29..c8db9d4 100644 --- a/docs/Summary.Pipelines.FilteringExtensions.md +++ b/docs/Summary.Pipelines.FilteringExtensions.md @@ -45,16 +45,16 @@ var pipeline = ...; pipeline.IncludeOnly(AccessModifier.Internal); ``` -### [WithAccess(SummaryPipeline, Func)](../src/Core/Pipelines/SummaryPipelineFilteringExtensions.cs#L50) +### [WithAccess(SummaryPipeline, Func<AccessModifier, bool>)](../src/Core/Pipelines/SummaryPipelineFilteringExtensions.cs#L50) ```cs -public static SummaryPipeline WithAccess(this SummaryPipeline self, Func p) +public static SummaryPipeline WithAccess(this SummaryPipeline self, Func<AccessModifier, bool> p) ``` Includes only members that have the access modifier that satisfies the given predicate. -### [UseFilter(SummaryPipeline, IPipe)](../src/Core/Pipelines/SummaryPipelineFilteringExtensions.cs#L67) +### [UseFilter(SummaryPipeline, IPipe<Doc, Doc>)](../src/Core/Pipelines/SummaryPipelineFilteringExtensions.cs#L67) ```cs -public static SummaryPipeline UseFilter(this SummaryPipeline self, IPipe filter) +public static SummaryPipeline UseFilter(this SummaryPipeline self, IPipe<Doc, Doc> filter) ``` Adds the given filter into the pipeline. diff --git a/docs/Summary.Pipelines.SummaryPipeline.md b/docs/Summary.Pipelines.SummaryPipeline.md index 34dd7fe..665a1ae 100644 --- a/docs/Summary.Pipelines.SummaryPipeline.md +++ b/docs/Summary.Pipelines.SummaryPipeline.md @@ -6,7 +6,7 @@ public class SummaryPipeline A plain Summary pipeline that should be used in simple cases. _By default, this pipeline supports one parser pipe and one renderer pipe._ -_
_ +_<br />_ _Parser pipe should extract [`Doc`](./Summary.Doc.md) from some source (e.g., file system), while_ _renderer pipe should render the parsed [`Doc`](./Summary.Doc.md) into some format (e.g., Markdown)_ _and save it somewhere (e.g., file system)._ @@ -21,7 +21,7 @@ The factory that provides logger implementations. ### [Filters](../src/Core/Pipelines/SummaryPipeline.cs#L63) ```cs -public List> Filters { get; } +public List<IPipe<Doc, Doc>> Filters { get; } ``` The list of all filters applied after the document is parsed. @@ -36,37 +36,37 @@ public Options UseLoggerFactory(ILoggerFactory loggers) Specifies the logger factory that will be used to create loggers for the pipeline. -### [Customize(Func)](../src/Core/Pipelines/SummaryPipeline.cs#L68) +### [Customize(Func<Options, Options>)](../src/Core/Pipelines/SummaryPipeline.cs#L68) ```cs -public SummaryPipeline Customize(Func options) +public SummaryPipeline Customize(Func<Options, Options> options) ``` Customizes the default pipeline options using the specified delegate. -### [ParseWith(Func>)](../src/Core/Pipelines/SummaryPipeline.cs#L74) +### [ParseWith(Func<Options, IPipe<Unit, Doc>>)](../src/Core/Pipelines/SummaryPipeline.cs#L74) ```cs -public SummaryPipeline ParseWith(Func> parser) +public SummaryPipeline ParseWith(Func<Options, IPipe<Unit, Doc>> parser) ``` Specifies the custom parser with logging support for this pipeline. -### [ParseWith(IPipe)](../src/Core/Pipelines/SummaryPipeline.cs#L83) +### [ParseWith(IPipe<Unit, Doc>)](../src/Core/Pipelines/SummaryPipeline.cs#L83) ```cs -public SummaryPipeline ParseWith(IPipe parser) +public SummaryPipeline ParseWith(IPipe<Unit, Doc> parser) ``` Specifies the custom parser for this pipeline. -### [RenderWith(Func>)](../src/Core/Pipelines/SummaryPipeline.cs#L92) +### [RenderWith(Func<Options, IPipe<Doc, Unit>>)](../src/Core/Pipelines/SummaryPipeline.cs#L92) ```cs -public SummaryPipeline RenderWith(Func> render) +public SummaryPipeline RenderWith(Func<Options, IPipe<Doc, Unit>> render) ``` Specifies the custom renderer for this pipeline. -### [RenderWith(IPipe)](../src/Core/Pipelines/SummaryPipeline.cs#L101) +### [RenderWith(IPipe<Doc, Unit>)](../src/Core/Pipelines/SummaryPipeline.cs#L101) ```cs -public SummaryPipeline RenderWith(IPipe render) +public SummaryPipeline RenderWith(IPipe<Doc, Unit> render) ``` Specifies the custom renderer for this pipeline. diff --git a/docs/Summary.Pipes.Filters.FilterMemberPipe.md b/docs/Summary.Pipes.Filters.FilterMemberPipe.md index 3bc27df..fea1ed0 100644 --- a/docs/Summary.Pipes.Filters.FilterMemberPipe.md +++ b/docs/Summary.Pipes.Filters.FilterMemberPipe.md @@ -1,6 +1,6 @@ # [Summary.Pipes.Filters.FilterMemberPipe](../src/Core/Pipes/Filters/FilterMemberPipe.cs#L7) ```cs -public class FilterMemberPipe : IPipe +public class FilterMemberPipe : IPipe<Doc, Doc> ``` A simple pipe that filters all members inside the document using the specified predicate @@ -9,7 +9,7 @@ and then applies the given map function on them. ## Methods ### [Run(Doc)](../src/Core/Pipes/Filters/FilterMemberPipe.cs#L12) ```cs -public Task Run(Doc input) +public Task<Doc> Run(Doc input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.FoldPipe{O}.md b/docs/Summary.Pipes.FoldPipe{O}.md index 2a7679b..8522be5 100644 --- a/docs/Summary.Pipes.FoldPipe{O}.md +++ b/docs/Summary.Pipes.FoldPipe{O}.md @@ -1,14 +1,14 @@ -# [Summary.Pipes.FoldPipe](../src/Core/Pipes/FoldPipe.cs#L6) +# [Summary.Pipes.FoldPipe<O>](../src/Core/Pipes/FoldPipe.cs#L6) ```cs -public class FoldPipe : IPipe +public class FoldPipe<O> : IPipe<O[], O> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that aggregates the result of the specified pipe. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that aggregates the result of the specified pipe. ## Methods ### [Run(O[])](../src/Core/Pipes/FoldPipe.cs#L9) ```cs -public Task Run(O[] input) +public Task<O> Run(O[] input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.FuncPipe{I,O}.md b/docs/Summary.Pipes.FuncPipe{I,O}.md index 18f3069..e5aa7b0 100644 --- a/docs/Summary.Pipes.FuncPipe{I,O}.md +++ b/docs/Summary.Pipes.FuncPipe{I,O}.md @@ -1,14 +1,14 @@ -# [Summary.Pipes.FuncPipe](../src/Core/Pipes/FuncPipe.cs#L6) +# [Summary.Pipes.FuncPipe<I, O>](../src/Core/Pipes/FuncPipe.cs#L6) ```cs -public class FuncPipe : IPipe +public class FuncPipe<I, O> : IPipe<I, O> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that wraps `Func`. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that wraps <u>`Func<I, O>`</u>. ## Methods ### [Run(I)](../src/Core/Pipes/FuncPipe.cs#L21) ```cs -public Task Run(I input) +public Task<O> Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.IO.CleanupDirPipe{I}.md b/docs/Summary.Pipes.IO.CleanupDirPipe{I}.md index 8d1283c..d84c1ce 100644 --- a/docs/Summary.Pipes.IO.CleanupDirPipe{I}.md +++ b/docs/Summary.Pipes.IO.CleanupDirPipe{I}.md @@ -1,6 +1,6 @@ -# [Summary.Pipes.IO.CleanupDirPipe](../src/Core/Pipes/IO/CleanupDirPipe.cs#L6) +# [Summary.Pipes.IO.CleanupDirPipe<I>](../src/Core/Pipes/IO/CleanupDirPipe.cs#L6) ```cs -public class CleanupDirPipe : IPipe +public class CleanupDirPipe<I> : IPipe<I, I> ``` Cleans up a given directory by deleting and re-creating it. @@ -8,7 +8,7 @@ Cleans up a given directory by deleting and re-creating it. ## Methods ### [Run(I)](../src/Core/Pipes/IO/CleanupDirPipe.cs#L9) ```cs -public Task Run(I input) +public Task<I> Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.IO.SavePipe{I}.md b/docs/Summary.Pipes.IO.SavePipe{I}.md index db64e7c..a9a921a 100644 --- a/docs/Summary.Pipes.IO.SavePipe{I}.md +++ b/docs/Summary.Pipes.IO.SavePipe{I}.md @@ -1,14 +1,14 @@ -# [Summary.Pipes.IO.SavePipe](../src/Core/Pipes/IO/SavePipe.cs#L6) +# [Summary.Pipes.IO.SavePipe<I>](../src/Core/Pipes/IO/SavePipe.cs#L6) ```cs -public class SavePipe : IPipe +public class SavePipe<I> : IPipe<I, Unit> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that saves the input to the file. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that saves the input to the file. ## Methods ### [Run(I)](../src/Core/Pipes/IO/SavePipe.cs#L9) ```cs -public async Task Run(I input) +public async Task<Unit> Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.IO.ScanPipe.md b/docs/Summary.Pipes.IO.ScanPipe.md index b2462f8..06c8a32 100644 --- a/docs/Summary.Pipes.IO.ScanPipe.md +++ b/docs/Summary.Pipes.IO.ScanPipe.md @@ -1,14 +1,14 @@ # [Summary.Pipes.IO.ScanPipe](../src/Core/Pipes/IO/ScanPipe.cs#L6) ```cs -public class ScanPipe : IPipe +public class ScanPipe : IPipe<Unit, Source[]> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that searches specified directory (recursively) for files that match specified pattern. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that searches specified directory (recursively) for files that match specified pattern. ## Methods ### [Run(Unit)](../src/Core/Pipes/IO/ScanPipe.cs#L9) ```cs -public async Task Run(Unit _) +public async Task<Source[]> Run(Unit _) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.IO.Source.md b/docs/Summary.Pipes.IO.Source.md index 1f523e1..40f96ea 100644 --- a/docs/Summary.Pipes.IO.Source.md +++ b/docs/Summary.Pipes.IO.Source.md @@ -23,7 +23,7 @@ The path to the file. ## Methods ### [Read(string, CancellationToken)](../src/Core/Pipes/IO/Source.cs#L13) ```cs -public static async Task Read(string path, CancellationToken token = default) +public static async Task<Source> Read(string path, CancellationToken token = default) ``` Reads source code from the specified file. diff --git a/docs/Summary.Pipes.IPipe{I,O}.md b/docs/Summary.Pipes.IPipe{I,O}.md index 9852cf0..220551b 100644 --- a/docs/Summary.Pipes.IPipe{I,O}.md +++ b/docs/Summary.Pipes.IPipe{I,O}.md @@ -1,6 +1,6 @@ -# [Summary.Pipes.IPipe](../src/Core/Pipes/IPipe.cs#L8) +# [Summary.Pipes.IPipe<I, O>](../src/Core/Pipes/IPipe.cs#L8) ```cs -public interface IPipe +public interface IPipe<in I, O> ``` An asynchronous pipe that can transform an input to the output. @@ -12,7 +12,7 @@ An asynchronous pipe that can transform an input to the output. ## Methods ### [Run(I)](../src/Core/Pipes/IPipe.cs#L13) ```cs - Task Run(I input) + Task<O> Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md b/docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md index c6f2b8c..0baa211 100644 --- a/docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md +++ b/docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md @@ -1,16 +1,16 @@ -# [Summary.Pipes.Logging.LoggedPipe](../src/Core/Pipes/Logging/LoggedPipe.cs#L11) +# [Summary.Pipes.Logging.LoggedPipe<I, O>](../src/Core/Pipes/Logging/LoggedPipe.cs#L11) ```cs -public class LoggedPipe : IPipe +public class LoggedPipe<I, O> : IPipe<I, O> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) whose output is logged using the provided logger. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) whose output is logged using the provided logger. _Logging is implemented by simply beginning a new scope with the given message._ ## Methods ### [Run(I)](../src/Core/Pipes/Logging/LoggedPipe.cs#L20) ```cs -public Task Run(I input) +public Task<O> Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.PipeExtensions.md b/docs/Summary.Pipes.PipeExtensions.md index d50fc03..7419a3c 100644 --- a/docs/Summary.Pipes.PipeExtensions.md +++ b/docs/Summary.Pipes.PipeExtensions.md @@ -3,89 +3,89 @@ public static class PipeExtensions ``` -Extension methods for [`IPipe`](./Summary.Pipes.IPipe{I,O}.md). +Extension methods for [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md). ## Methods -### [Fold(IPipe)](../src/Core/Pipes/PipeExtensions.cs#L14) +### [Fold<I>(IPipe<I, Unit[]>)](../src/Core/Pipes/PipeExtensions.cs#L14) ```cs -public static IPipe Fold(this IPipe self) +public static IPipe<I, Unit> Fold<I>(this IPipe<I, Unit[]> self) ``` Folds the result of the specified pipe into a single [`Unit`](./Summary.Pipes.Unit.md) value. -### [Run(IPipe)](../src/Core/Pipes/PipeExtensions.cs#L20) +### [Run<O>(IPipe<Unit, O>)](../src/Core/Pipes/PipeExtensions.cs#L20) ```cs -public static Task Run(this IPipe self) +public static Task<O> Run<O>(this IPipe<Unit, O> self) ``` Asynchronously runs the pipe. -### [Then(IPipe, IPipe)](../src/Core/Pipes/PipeExtensions.cs#L26) +### [Then<I, O1, O2>(IPipe<I, O1>, IPipe<O1, O2>)](../src/Core/Pipes/PipeExtensions.cs#L26) ```cs -public static IPipe Then(this IPipe a, IPipe b) +public static IPipe<I, O2> Then<I, O1, O2>(this IPipe<I, O1> a, IPipe<O1, O2> b) ``` Composes the pipe with another pipe so that the output of the first pipe is passed as an input to the second pipe. -### [Then(IPipe, IPipe, bool)](../src/Core/Pipes/PipeExtensions.cs#L32) +### [Then<I, O>(IPipe<I, O>, IPipe<O, O>, bool)](../src/Core/Pipes/PipeExtensions.cs#L32) ```cs -public static IPipe Then(this IPipe a, IPipe b, bool when) +public static IPipe<I, O> Then<I, O>(this IPipe<I, O> a, IPipe<O, O> b, bool when) ``` Composes the pipe with another pipe so that the output of the first pipe is passed as an input to the second pipe. -### [Then(IPipe, Func)](../src/Core/Pipes/PipeExtensions.cs#L38) +### [Then<I, O1, O2>(IPipe<I, O1>, Func<O1, O2>)](../src/Core/Pipes/PipeExtensions.cs#L38) ```cs -public static IPipe Then(this IPipe a, Func map) +public static IPipe<I, O2> Then<I, O1, O2>(this IPipe<I, O1> a, Func<O1, O2> map) ``` Constructs a new pipe that will apply the specified `select` function to the output of the current pipe. -### [Then(IPipe, Func, bool)](../src/Core/Pipes/PipeExtensions.cs#L44) +### [Then<I, O>(IPipe<I, O>, Func<O, O>, bool)](../src/Core/Pipes/PipeExtensions.cs#L44) ```cs -public static IPipe Then(this IPipe a, Func map, bool when) +public static IPipe<I, O> Then<I, O>(this IPipe<I, O> a, Func<O, O> map, bool when) ``` Constructs a new pipe that will apply the specified `select` function to the output of the current pipe. -### [ThenForEach(IPipe, IPipe)](../src/Core/Pipes/PipeExtensions.cs#L50) +### [ThenForEach<I, O1, O2>(IPipe<I, O1[]>, IPipe<O1, O2>)](../src/Core/Pipes/PipeExtensions.cs#L50) ```cs -public static IPipe ThenForEach(this IPipe a, IPipe b) +public static IPipe<I, O2[]> ThenForEach<I, O1, O2>(this IPipe<I, O1[]> a, IPipe<O1, O2> b) ``` Constructs a new pipe that will apply the specified map pipe to the each element of the output of the current pipe. -### [Tee(IPipe, Action)](../src/Core/Pipes/PipeExtensions.cs#L56) +### [Tee<I, O>(IPipe<I, O>, Action<O>)](../src/Core/Pipes/PipeExtensions.cs#L56) ```cs -public static IPipe Tee(this IPipe a, Action action) +public static IPipe<I, O> Tee<I, O>(this IPipe<I, O> a, Action<O> action) ``` Constructs a new pipe that will execute the specified action on the output. -### [Logged(IPipe, ILoggerFactory, string)](../src/Core/Pipes/PipeExtensions.cs#L62) +### [Logged<I, O>(IPipe<I, O>, ILoggerFactory, string)](../src/Core/Pipes/PipeExtensions.cs#L62) ```cs -public static IPipe Logged(this IPipe self, ILoggerFactory factory, string message) +public static IPipe<I, O> Logged<I, O>(this IPipe<I, O> self, ILoggerFactory factory, string message) ``` Logs the execution of the given pipe using the specified logger factory. -### [Logged(IPipe, ILoggerFactory, Func)](../src/Core/Pipes/PipeExtensions.cs#L66) +### [Logged<I, O>(IPipe<I, O>, ILoggerFactory, Func<I, string>)](../src/Core/Pipes/PipeExtensions.cs#L66) ```cs -public static IPipe Logged(this IPipe self, ILoggerFactory factory, Func message) +public static IPipe<I, O> Logged<I, O>(this IPipe<I, O> self, ILoggerFactory factory, Func<I, string> message) ``` Logs the execution of the given pipe using the specified logger factory. -### [Logged(IPipe, ILogger, string)](../src/Core/Pipes/PipeExtensions.cs#L72) +### [Logged<I, O>(IPipe<I, O>, ILogger, string)](../src/Core/Pipes/PipeExtensions.cs#L72) ```cs -public static IPipe Logged(this IPipe self, ILogger logger, string message) +public static IPipe<I, O> Logged<I, O>(this IPipe<I, O> self, ILogger logger, string message) ``` Logs the execution of the given pipe using the specified logger. -### [Logged(IPipe, ILogger, Func)](../src/Core/Pipes/PipeExtensions.cs#L76) +### [Logged<I, O>(IPipe<I, O>, ILogger, Func<I, string>)](../src/Core/Pipes/PipeExtensions.cs#L76) ```cs -public static IPipe Logged(this IPipe self, ILogger logger, Func message) +public static IPipe<I, O> Logged<I, O>(this IPipe<I, O> self, ILogger logger, Func<I, string> message) ``` Logs the execution of the given pipe using the specified logger. diff --git a/docs/Summary.Pipes.TeePipe{I,O}.md b/docs/Summary.Pipes.TeePipe{I,O}.md index c34f8f4..9dfa4c4 100644 --- a/docs/Summary.Pipes.TeePipe{I,O}.md +++ b/docs/Summary.Pipes.TeePipe{I,O}.md @@ -1,14 +1,14 @@ -# [Summary.Pipes.TeePipe](../src/Core/Pipes/TeePipe.cs#L6) +# [Summary.Pipes.TeePipe<I, O>](../src/Core/Pipes/TeePipe.cs#L6) ```cs -public class TeePipe : IPipe +public class TeePipe<I, O> : IPipe<I, O> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that invokes an action on the output of the pipe each time it's executed. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that invokes an action on the output of the pipe each time it's executed. ## Methods ### [Run(I)](../src/Core/Pipes/TeePipe.cs#L9) ```cs -public async Task Run(I input) +public async Task<O> Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.ThenForEach{I,O1,O2}.md b/docs/Summary.Pipes.ThenForEach{I,O1,O2}.md index 538ff35..cb7b8d0 100644 --- a/docs/Summary.Pipes.ThenForEach{I,O1,O2}.md +++ b/docs/Summary.Pipes.ThenForEach{I,O1,O2}.md @@ -1,14 +1,14 @@ -# [Summary.Pipes.ThenForEach](../src/Core/Pipes/ThenForEach.cs#L6) +# [Summary.Pipes.ThenForEach<I, O1, O2>](../src/Core/Pipes/ThenForEach.cs#L6) ```cs -public class ThenForEach : IPipe +public class ThenForEach<I, O1, O2> : IPipe<I, O2[]> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that aggregates the result of the specified pipe. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that aggregates the result of the specified pipe. ## Methods ### [Run(I)](../src/Core/Pipes/ThenForEach.cs#L9) ```cs -public async Task Run(I input) +public async Task<O2[]> Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.ThenPipe{I,O1,O2}.md b/docs/Summary.Pipes.ThenPipe{I,O1,O2}.md index 48310f6..1eaf846 100644 --- a/docs/Summary.Pipes.ThenPipe{I,O1,O2}.md +++ b/docs/Summary.Pipes.ThenPipe{I,O1,O2}.md @@ -1,14 +1,14 @@ -# [Summary.Pipes.ThenPipe](../src/Core/Pipes/ThenPipe.cs#L6) +# [Summary.Pipes.ThenPipe<I, O1, O2>](../src/Core/Pipes/ThenPipe.cs#L6) ```cs -public class ThenPipe : IPipe +public class ThenPipe<I, O1, O2> : IPipe<I, O2> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that composes two pipes together. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that composes two pipes together. ## Methods ### [Run(I)](../src/Core/Pipes/ThenPipe.cs#L9) ```cs -public async Task Run(I i) +public async Task<O2> Run(I i) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Roslyn.CSharp.Extensions.DocMemberExtensions.md b/docs/Summary.Roslyn.CSharp.Extensions.DocMemberExtensions.md index e2fa4bc..b608d41 100644 --- a/docs/Summary.Roslyn.CSharp.Extensions.DocMemberExtensions.md +++ b/docs/Summary.Roslyn.CSharp.Extensions.DocMemberExtensions.md @@ -6,9 +6,9 @@ public static class DocMemberExtensions A set of extension methods for [`DocMember`](./Summary.DocMember.md). ## Methods -### [WithComment(T, MemberDeclarationSyntax)](../src/Plugins/Roslyn/CSharp/Extensions/DocMemberExtensions.cs#L13) +### [WithComment<T>(T, MemberDeclarationSyntax)](../src/Plugins/Roslyn/CSharp/Extensions/DocMemberExtensions.cs#L13) ```cs -public static T WithComment(this T self, MemberDeclarationSyntax syntax) +public static T WithComment<T>(this T self, MemberDeclarationSyntax syntax) ``` Parses the comment from the specified member syntax and attaches it to this doc member. diff --git a/docs/Summary.Roslyn.CSharp.InlineInheritDocPipe.md b/docs/Summary.Roslyn.CSharp.InlineInheritDocPipe.md index ed2082a..8626ad4 100644 --- a/docs/Summary.Roslyn.CSharp.InlineInheritDocPipe.md +++ b/docs/Summary.Roslyn.CSharp.InlineInheritDocPipe.md @@ -1,19 +1,19 @@ # [Summary.Roslyn.CSharp.InlineInheritDocPipe](../src/Plugins/Roslyn/CSharp/InlineInheritDocPipe.cs#L18) ```cs -public class InlineInheritDocPipe : IPipe +public class InlineInheritDocPipe : IPipe<Doc, Doc> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that inlines `` tags. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that inlines `<inheritdoc/>` tags. _Under the hood, the process of inlining works as follows:_ -_
_ +_<br />_ _- each member in the [`Doc`](./Summary.Doc.md) is analyzed_ -_- if this member contains an `` element, it's removed from the member comment_ +_- if this member contains an `<inheritdoc/>` element, it's removed from the member comment_ _- then, the inherited documentation (either from the base type or from the specified cref) is added to the member comment._ ## Methods ### [Run(Doc)](../src/Plugins/Roslyn/CSharp/InlineInheritDocPipe.cs#L20) ```cs -public Task Run(Doc doc) +public Task<Doc> Run(Doc doc) ``` diff --git a/docs/Summary.Roslyn.CSharp.ParseDocPipe.md b/docs/Summary.Roslyn.CSharp.ParseDocPipe.md index d0889ff..c42a962 100644 --- a/docs/Summary.Roslyn.CSharp.ParseDocPipe.md +++ b/docs/Summary.Roslyn.CSharp.ParseDocPipe.md @@ -1,13 +1,13 @@ # [Summary.Roslyn.CSharp.ParseDocPipe](../src/Plugins/Roslyn/CSharp/ParseDocPipe.cs#L12) ```cs -public class ParseDocPipe : IPipe +public class ParseDocPipe : IPipe<SyntaxTree, Doc> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that transforms the specified syntax tree into parsed document. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that transforms the specified syntax tree into parsed document. ## Methods ### [Run(SyntaxTree)](../src/Plugins/Roslyn/CSharp/ParseDocPipe.cs#L14) ```cs -public async Task Run(SyntaxTree input) +public async Task<Doc> Run(SyntaxTree input) ``` diff --git a/docs/Summary.Roslyn.CSharp.ParseSyntaxTreePipe.md b/docs/Summary.Roslyn.CSharp.ParseSyntaxTreePipe.md index 9659091..d829377 100644 --- a/docs/Summary.Roslyn.CSharp.ParseSyntaxTreePipe.md +++ b/docs/Summary.Roslyn.CSharp.ParseSyntaxTreePipe.md @@ -1,13 +1,13 @@ # [Summary.Roslyn.CSharp.ParseSyntaxTreePipe](../src/Plugins/Roslyn/CSharp/ParseSyntaxTreePipe.cs#L11) ```cs -public class ParseSyntaxTreePipe : IPipe +public class ParseSyntaxTreePipe : IPipe<Source, SyntaxTree> ``` -A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that parses the specified string into a `SyntaxTree`. +A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that parses the specified string into a <u>`SyntaxTree`</u>. ## Methods ### [Run(Source)](../src/Plugins/Roslyn/CSharp/ParseSyntaxTreePipe.cs#L13) ```cs -public Task Run(Source input) +public Task<SyntaxTree> Run(Source input) ``` diff --git a/docs/Summary.Roslyn.RoslynPipelineExtensions.md b/docs/Summary.Roslyn.RoslynPipelineExtensions.md index 085c5bc..9b92c91 100644 --- a/docs/Summary.Roslyn.RoslynPipelineExtensions.md +++ b/docs/Summary.Roslyn.RoslynPipelineExtensions.md @@ -15,8 +15,8 @@ Adds a Roslyn parser to the specified pipeline. _This parser will parse all the C# files in the specified directory_ _and will extract comments from the corresponding syntax trees using Roslyn API._ -__ -_Under the hood, we call `System.IO.Directory.EnumerateFiles(string, string, SearchOption)` method_ +_<para/>_ +_Under the hood, we call <u>`System.IO.Directory.EnumerateFiles(string, string, SearchOption)`</u> method_ _to get the list of all files for each of the specified root paths, and then concatenate the results._ ### [UseRoslynParser(SummaryPipeline, string[], string)](../src/Plugins/Roslyn/RoslynPipelineExtensions.cs#L29) @@ -28,7 +28,7 @@ Adds a Roslyn parser to the specified pipeline. _This parser will parse all the C# files in the specified directory_ _and will extract comments from the corresponding syntax trees using Roslyn API._ -__ -_Under the hood, we call `System.IO.Directory.EnumerateFiles(string, string, SearchOption)` method_ +_<para/>_ +_Under the hood, we call <u>`System.IO.Directory.EnumerateFiles(string, string, SearchOption)`</u> method_ _to get the list of all files for each of the specified root paths, and then concatenate the results._ diff --git a/docs/Summary.Samples.InheritDocBase.md b/docs/Summary.Samples.InheritDocBase.md index 9fadac8..f8777bd 100644 --- a/docs/Summary.Samples.InheritDocBase.md +++ b/docs/Summary.Samples.InheritDocBase.md @@ -118,9 +118,9 @@ Calculates the sum. #### Returns Returns the sum of two values. -### [Sum(byte, byte)](../src/Core/Samples/InheritDocSample.cs#L83) +### [Sum<T>(byte, byte)](../src/Core/Samples/InheritDocSample.cs#L83) ```cs -public byte Sum(byte x, byte y) +public byte Sum<T>(byte x, byte y) ``` Calculates the byte sum. diff --git a/docs/Summary.Samples.Sample{T0,T1}.Child.md b/docs/Summary.Samples.Sample{T0,T1}.Child.md index 2b00f63..9c3cff3 100644 --- a/docs/Summary.Samples.Sample{T0,T1}.Child.md +++ b/docs/Summary.Samples.Sample{T0,T1}.Child.md @@ -1,13 +1,13 @@ -# [~~Summary.Samples.Sample.Child~~](../src/Core/Samples/Sample.cs#L42) -> [!WARNING] -> The type is deprecated. +# [~~Summary.Samples.Sample<T0, T1>.Child~~](../src/Core/Samples/Sample.cs#L42) +> [!WARNING] +> The type is deprecated. ```cs [Obsolete(error: true, message: "The type is deprecated.")] public class Child ``` -A child of the [`Sample`](./Summary.Samples.Sample{T0,T1}.md) class. +A child of the [`Sample<T0, T1>`](./Summary.Samples.Sample{T0,T1}.md) class. ## Fields ### [Field](../src/Core/Samples/Sample.cs#L47) diff --git a/docs/Summary.Samples.Sample{T0,T1}.md b/docs/Summary.Samples.Sample{T0,T1}.md index aa8f50d..9f63f71 100644 --- a/docs/Summary.Samples.Sample{T0,T1}.md +++ b/docs/Summary.Samples.Sample{T0,T1}.md @@ -1,6 +1,6 @@ -# [Summary.Samples.Sample](../src/Core/Samples/Sample.cs#L35) +# [Summary.Samples.Sample<T0, T1>](../src/Core/Samples/Sample.cs#L35) ```cs -public class Sample +public class Sample<T0, T1> ``` A sample class that is documented. @@ -15,7 +15,7 @@ Here is a ~~strikethrough~~ fragment. _Remarks section._ _Second line._ _Another paragraph._ -_Btw, this type has a child: [`Sample.Child`](./Summary.Samples.Sample{T0,T1}.Child.md)._ +_Btw, this type has a child: [`Sample<T0, T1>.Child`](./Summary.Samples.Sample{T0,T1}.Child.md)._ ## Type Parameters - `T0`: A first type parameter. @@ -53,8 +53,8 @@ public int Field A field of the child class. ### [~~Field1~~](../src/Core/Samples/Sample.cs#L59) -> [!WARNING] -> The field is deprecated. +> [!WARNING] +> The field is deprecated. ```cs [Obsolete("The field is deprecated.")] @@ -124,9 +124,9 @@ A sample indexer. What indexer returns. ## Methods -### [Method(int, string)](../src/Core/Samples/Sample.cs#L130) +### [Method<M0, M1, M2>(int, string)](../src/Core/Samples/Sample.cs#L130) ```cs -public TimeSpan Method(int x, string y) +public TimeSpan Method<M0, M1, M2>(int x, string y) ``` A simple method. @@ -154,12 +154,12 @@ The `TimeSpan` instance. - `ArgumentException`: The argument is incorrect. - `ApplicationException`: Something went wrong. -### [Method(short, string)](../src/Core/Samples/Sample.cs#L137) +### [Method<M0, M1, M2>(short, string)](../src/Core/Samples/Sample.cs#L137) ```cs -public TimeSpan Method(short x, string y) +public TimeSpan Method<M0, M1, M2>(short x, string y) ``` -The overloaded [`Method(int, string)`](./Summary.Samples.Sample{T0,T1}.md#methodm0-m1-m2int-string). +The overloaded [`Method<M0, M1, M2>(int, string)`](./Summary.Samples.Sample{T0,T1}.md#methodm0-m1-m2int-string). #### Type Parameters - `M0`: The first type parameter of the method. diff --git a/docs/Summary.Tests.Extensions.md b/docs/Summary.Tests.Extensions.md index b0a5c04..4e95abd 100644 --- a/docs/Summary.Tests.Extensions.md +++ b/docs/Summary.Tests.Extensions.md @@ -6,9 +6,9 @@ public static class Extensions Extension methods that simplify unit testing and should not be included in the package. ## Methods -### [RunSync(IPipe)](../src/Tests/Extensions.cs#L14) +### [RunSync<O>(IPipe<Unit, O>)](../src/Tests/Extensions.cs#L14) ```cs -public static O RunSync(this IPipe self) +public static O RunSync<O>(this IPipe<Unit, O> self) ``` Runs the pipe synchronously. @@ -16,9 +16,9 @@ Runs the pipe synchronously. #### Parameters - `self`: The pipe to execute. -### [RunSync(IPipe, I)](../src/Tests/Extensions.cs#L18) +### [RunSync<I, O>(IPipe<I, O>, I)](../src/Tests/Extensions.cs#L18) ```cs -public static O RunSync(this IPipe self, I input) +public static O RunSync<I, O>(this IPipe<I, O> self, I input) ``` Runs the pipe synchronously. diff --git a/src/Plugins/Markdown/MarkdownRenderExtensions.cs b/src/Plugins/Markdown/MarkdownRenderExtensions.cs index 8997d6b..24db3f5 100644 --- a/src/Plugins/Markdown/MarkdownRenderExtensions.cs +++ b/src/Plugins/Markdown/MarkdownRenderExtensions.cs @@ -9,6 +9,17 @@ namespace Summary.Markdown; /// internal static class MarkdownRenderExtensions { + /// + /// Escapes all different HTML characters such as '>' or '<' from the specified Markdown string. + /// + /// + /// The output string can safely be used in a rendered Markdown. + /// + internal static string Escape(this string self) => + self + .Replace("<", "<") + .Replace(">", ">"); + /// /// The source file name for this member. /// diff --git a/src/Plugins/Markdown/RenderMarkdownPipe.cs b/src/Plugins/Markdown/RenderMarkdownPipe.cs index f9c8018..63b8116 100644 --- a/src/Plugins/Markdown/RenderMarkdownPipe.cs +++ b/src/Plugins/Markdown/RenderMarkdownPipe.cs @@ -21,14 +21,14 @@ public Task Run(Doc doc) => private Md Render(Doc doc, DocMember member) { - var text = new MdRenderer(doc, output).Member(member).Text(); + var text = new MdRenderer(doc, output).Member(member).Text().Escape(); return new($"{member.FileName()}.md", text); } private Md Index(Doc doc) { - return new("README.md", Content()); + return new("README.md", Content().Escape()); string Content() { From ddf8652d0dacf107228895f11440f4570c714a3e Mon Sep 17 00:00:00 2001 From: joshua-light Date: Tue, 19 Dec 2023 19:25:48 +0200 Subject: [PATCH 3/3] Escape only type names --- docs/Summary.Caching.CrefCache.md | 20 +++++++------- ...ummary.Cli.Logging.ConsoleLoggerFactory.md | 6 ++--- docs/Summary.DocComment.md | 10 +++---- docs/Summary.DocCommentInheritDoc.md | 2 +- docs/Summary.DocCommentLink.md | 2 +- docs/Summary.DocCommentParamRef.md | 2 +- docs/Summary.DocMethod.md | 4 +-- docs/Summary.DocParam.md | 2 +- docs/Summary.DocType.md | 2 +- docs/Summary.DocTypeDeclaration.md | 4 +-- docs/Summary.DocTypeParam.md | 2 +- docs/Summary.Markdown.RenderMarkdownPipe.md | 6 ++--- docs/Summary.Pipelines.FilteringExtensions.md | 4 +-- docs/Summary.Pipelines.SummaryPipeline.md | 14 +++++----- .../Summary.Pipes.Filters.FilterMemberPipe.md | 4 +-- docs/Summary.Pipes.FoldPipe{O}.md | 6 ++--- docs/Summary.Pipes.FuncPipe{I,O}.md | 6 ++--- docs/Summary.Pipes.IO.CleanupDirPipe{I}.md | 4 +-- docs/Summary.Pipes.IO.SavePipe{I}.md | 6 ++--- docs/Summary.Pipes.IO.ScanPipe.md | 6 ++--- docs/Summary.Pipes.IO.Source.md | 2 +- docs/Summary.Pipes.IPipe{I,O}.md | 4 +-- docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md | 6 ++--- docs/Summary.Pipes.PipeExtensions.md | 26 +++++++++---------- docs/Summary.Pipes.TeePipe{I,O}.md | 6 ++--- docs/Summary.Pipes.ThenForEach{I,O1,O2}.md | 6 ++--- docs/Summary.Pipes.ThenPipe{I,O1,O2}.md | 6 ++--- ...n.CSharp.Extensions.DocMemberExtensions.md | 2 +- ...mary.Roslyn.CSharp.InlineInheritDocPipe.md | 10 +++---- docs/Summary.Roslyn.CSharp.ParseDocPipe.md | 6 ++--- ...mmary.Roslyn.CSharp.ParseSyntaxTreePipe.md | 6 ++--- ...Summary.Roslyn.RoslynPipelineExtensions.md | 8 +++--- docs/Summary.Samples.InheritDocBase.md | 2 +- docs/Summary.Samples.Sample{T0,T1}.Child.md | 6 ++--- docs/Summary.Samples.Sample{T0,T1}.md | 14 +++++----- docs/Summary.Tests.Extensions.md | 4 +-- src/Plugins/Markdown/MdRenderer.cs | 2 +- src/Plugins/Markdown/RenderMarkdownPipe.cs | 6 ++--- 38 files changed, 117 insertions(+), 117 deletions(-) diff --git a/docs/Summary.Caching.CrefCache.md b/docs/Summary.Caching.CrefCache.md index 43781fd..bc45cd5 100644 --- a/docs/Summary.Caching.CrefCache.md +++ b/docs/Summary.Caching.CrefCache.md @@ -14,14 +14,14 @@ public static string AsCref(this string self) Converts the given string into the format of `cref` attribute value. #### Example -In the following example, the `"Some<T1, T2>"` string +In the following example, the `"Some"` string (which represents the name of some type) is converted into `"Some{T1,T2}"` as if it was a value of a link -(e.g., <see cref="Some{T1,T2}">): +(e.g., ): ```cs -var a = "Some<T1, T2>"; +var a = "Some"; var b = a.AsCref(); -<br/> +
b.Should().Be("Some{T1,T2}"); ``` @@ -34,14 +34,14 @@ Converts the given string into the format of `cref` attribute value but also removes all generic parameter names. #### Example -In the following example, the `"Some<T1, T2>"` string +In the following example, the `"Some"` string (which represents the name of some type) is converted into `"Some{,}"`, the raw form of `cref` that can be used for comparisons without involving generic type parameter names. ```cs -var a = "Some<T1, T2>"; +var a = "Some"; var b = a.AsCref(); -<br/> +
b.Should().Be("Some{,}"); ``` @@ -55,11 +55,11 @@ Converts the given string from the format of `cref` attribute value. #### Example In the following example, the `"Some{T1,T2}"` string (which represents the name of some type in the `cref` format) -is converted into `"Some<T1, T2>` so that it can be displayed somewhere. +is converted into `"Some` so that it can be displayed somewhere. ```cs var a = "Some{T1,T2}"; var b = a.AsCref(); -<br/> -b.Should().Be("Some<T1, T2>"); +
+b.Should().Be("Some"); ``` diff --git a/docs/Summary.Cli.Logging.ConsoleLoggerFactory.md b/docs/Summary.Cli.Logging.ConsoleLoggerFactory.md index 6fb3d08..2290514 100644 --- a/docs/Summary.Cli.Logging.ConsoleLoggerFactory.md +++ b/docs/Summary.Cli.Logging.ConsoleLoggerFactory.md @@ -19,12 +19,12 @@ public void Dispose() ### [Log<TState>(LogLevel, EventId, TState, Exception?<Exception>, Func<TState, Exception?<Exception>, string>)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L41) ```cs -public void Log<TState>( +public void Log( LogLevel logLevel, EventId eventId, TState state, Exception? exception, - Func<TState, Exception?, string> formatter) + Func formatter) ``` ### [IsEnabled(LogLevel)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L49) @@ -34,7 +34,7 @@ public bool IsEnabled(LogLevel logLevel) ### [BeginScope<TState>(TState)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L51) ```cs -public IDisposable? BeginScope<TState>(TState state) +public IDisposable? BeginScope(TState state) ``` ### [CreateLogger(string)](../src/Cli/Logging/ConsoleLoggerFactory.cs#L63) diff --git a/docs/Summary.DocComment.md b/docs/Summary.DocComment.md index 3e6f208..b1b1ae6 100644 --- a/docs/Summary.DocComment.md +++ b/docs/Summary.DocComment.md @@ -27,7 +27,7 @@ The sequence of nodes this comment consists of (e.g. `summary`, `remarks`, etc.) public DocCommentElement? Param(string name) ``` -A nested `<param>` documentation element that has the specified name. +A nested `` documentation element that has the specified name. #### Parameters - `name`: The name of the parameter to search inside the comment. @@ -37,7 +37,7 @@ A nested `<param>` documentation element that has the specified name. public DocCommentElement? TypeParam(string name) ``` -A nested `<typeparam>` documentation element that has the specified name. +A nested `` documentation element that has the specified name. #### Parameters - `name`: The name of the parameter to search inside the comment. @@ -65,7 +65,7 @@ A nested documentation element that has the specified name (e.g. `summary`, `rem ### [Element(Func<DocCommentElement, bool>)](../src/Core/DocComment.cs#L47) ```cs -public DocCommentElement? Element(Func<DocCommentElement, bool> p) +public DocCommentElement? Element(Func p) ``` A nested documentation element that matches the specified predicate `p`. @@ -75,7 +75,7 @@ A nested documentation element that matches the specified predicate `p`. ### [Elements(string)](../src/Core/DocComment.cs#L54) ```cs -public IEnumerable<DocCommentElement> Elements(string tag) +public IEnumerable Elements(string tag) ``` A sequence of nested documentation elements that have the specified name (e.g. `summary`, `remarks`, etc.). @@ -85,7 +85,7 @@ A sequence of nested documentation elements that have the specified name (e.g. ` ### [Elements(Func<DocCommentElement, bool>)](../src/Core/DocComment.cs#L61) ```cs -public IEnumerable<DocCommentElement> Elements(Func<DocCommentElement, bool> p) +public IEnumerable Elements(Func p) ``` A sequence of nested documentation elements that match the specified predicate. diff --git a/docs/Summary.DocCommentInheritDoc.md b/docs/Summary.DocCommentInheritDoc.md index 62355ab..e980977 100644 --- a/docs/Summary.DocCommentInheritDoc.md +++ b/docs/Summary.DocCommentInheritDoc.md @@ -4,7 +4,7 @@ public record DocCommentInheritDoc(string? Cref) : DocCommentNode ``` A [`DocCommentNode`](./Summary.DocCommentNode.md) that inherits documentation from another member -(`<inheritdoc>`). +(``). ## Properties ### [Cref](../src/Core/DocCommentInheritDoc.cs#L8) diff --git a/docs/Summary.DocCommentLink.md b/docs/Summary.DocCommentLink.md index 161bd92..d3301a3 100644 --- a/docs/Summary.DocCommentLink.md +++ b/docs/Summary.DocCommentLink.md @@ -3,7 +3,7 @@ public record DocCommentLink(DocMember? Member, string Value) : DocCommentNode ``` -A [`DocCommentNode`](./Summary.DocCommentNode.md) that represents the link to other member (e.g. `<see cref="SomeMember"/>`). +A [`DocCommentNode`](./Summary.DocCommentNode.md) that represents the link to other member (e.g. ``). ## Properties ### [Member](../src/Core/DocCommentLink.cs#L9) diff --git a/docs/Summary.DocCommentParamRef.md b/docs/Summary.DocCommentParamRef.md index 1ea4215..86621cc 100644 --- a/docs/Summary.DocCommentParamRef.md +++ b/docs/Summary.DocCommentParamRef.md @@ -4,7 +4,7 @@ public record DocCommentParamRef(string Value) : DocCommentNode ``` A [`DocCommentNode`](./Summary.DocCommentNode.md) that represents the reference to a parameter -(`<paramref>`, `<typeparamref>`). +(``, ``). ## Properties ### [Value](../src/Core/DocCommentParamRef.cs#L8) diff --git a/docs/Summary.DocMethod.md b/docs/Summary.DocMethod.md index bee614b..9ed5ccb 100644 --- a/docs/Summary.DocMethod.md +++ b/docs/Summary.DocMethod.md @@ -33,7 +33,7 @@ public string Signature { get; } ``` The full signature of the method that includes both type parameters and regular parameters -(e.g., `"Method<T1, T2>(int, short)"`). +(e.g., `"Method(int, short)"`). ### [FullyQualifiedSignature](../src/Core/DocMethod.cs#L39) ```cs @@ -41,5 +41,5 @@ public string FullyQualifiedSignature { get; } ``` The full signature of the method that includes both type parameters and regular parameters -(e.g., `"Method<T1, T2>(int, short)"`). +(e.g., `"Method(int, short)"`). diff --git a/docs/Summary.DocParam.md b/docs/Summary.DocParam.md index a1697db..0b3cea2 100644 --- a/docs/Summary.DocParam.md +++ b/docs/Summary.DocParam.md @@ -26,5 +26,5 @@ The name of the parameter. public DocCommentElement? Comment(DocMember parent) ``` -The comment of the parameter (i.e., `<param>` tag). +The comment of the parameter (i.e., `` tag). diff --git a/docs/Summary.DocType.md b/docs/Summary.DocType.md index c1b1d82..02540db 100644 --- a/docs/Summary.DocType.md +++ b/docs/Summary.DocType.md @@ -3,7 +3,7 @@ public record DocType(string Name, DocType[] TypeParams, string? FullyQualifiedName = null) ``` -A simple type (e.g. `int`, `string`, `List<int>`, etc.). +A simple type (e.g. `int`, `string`, `List`, etc.). ## Properties ### [FullName](../src/Core/DocType.cs#L16) diff --git a/docs/Summary.DocTypeDeclaration.md b/docs/Summary.DocTypeDeclaration.md index 5d02055..cd41fca 100644 --- a/docs/Summary.DocTypeDeclaration.md +++ b/docs/Summary.DocTypeDeclaration.md @@ -37,7 +37,7 @@ Whether this type declaration is a record declaration. ### [AllMembers](../src/Core/DocTypeDeclaration.cs#L35) ```cs -public IEnumerable<DocMember> AllMembers { get; } +public IEnumerable AllMembers { get; } ``` All nested members (including children of children) of this type declaration. @@ -45,7 +45,7 @@ All nested members (including children of children) of this type declaration. ## Methods ### [MembersOfType(DocMember)](../src/Core/DocTypeDeclaration.cs#L41) ```cs -public IEnumerable<DocMember> MembersOfType(DocMember member) +public IEnumerable MembersOfType(DocMember member) ``` A sequence of members of this type declaration that has the same type as the specified one. diff --git a/docs/Summary.DocTypeParam.md b/docs/Summary.DocTypeParam.md index aa10c8d..42ed2bc 100644 --- a/docs/Summary.DocTypeParam.md +++ b/docs/Summary.DocTypeParam.md @@ -19,5 +19,5 @@ The name of the parameter. public DocCommentElement? Comment(DocMember parent) ``` -The comment of the parameter (i.e., `<typeparam>` tag). +The comment of the parameter (i.e., `` tag). diff --git a/docs/Summary.Markdown.RenderMarkdownPipe.md b/docs/Summary.Markdown.RenderMarkdownPipe.md index a1af7fd..749309a 100644 --- a/docs/Summary.Markdown.RenderMarkdownPipe.md +++ b/docs/Summary.Markdown.RenderMarkdownPipe.md @@ -1,13 +1,13 @@ # [Summary.Markdown.RenderMarkdownPipe](../src/Plugins/Markdown/RenderMarkdownPipe.cs#L9) ```cs -public class RenderMarkdownPipe : IPipe<Doc, Md[]> +public class RenderMarkdownPipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that renders generated document into the sequence of Markdown files. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that renders generated document into the sequence of Markdown files. ## Methods ### [Run(Doc)](../src/Plugins/Markdown/RenderMarkdownPipe.cs#L11) ```cs -public Task<Md[]> Run(Doc doc) +public Task Run(Doc doc) ``` diff --git a/docs/Summary.Pipelines.FilteringExtensions.md b/docs/Summary.Pipelines.FilteringExtensions.md index c8db9d4..0d81ef7 100644 --- a/docs/Summary.Pipelines.FilteringExtensions.md +++ b/docs/Summary.Pipelines.FilteringExtensions.md @@ -47,14 +47,14 @@ pipeline.IncludeOnly(AccessModifier.Internal); ### [WithAccess(SummaryPipeline, Func<AccessModifier, bool>)](../src/Core/Pipelines/SummaryPipelineFilteringExtensions.cs#L50) ```cs -public static SummaryPipeline WithAccess(this SummaryPipeline self, Func<AccessModifier, bool> p) +public static SummaryPipeline WithAccess(this SummaryPipeline self, Func p) ``` Includes only members that have the access modifier that satisfies the given predicate. ### [UseFilter(SummaryPipeline, IPipe<Doc, Doc>)](../src/Core/Pipelines/SummaryPipelineFilteringExtensions.cs#L67) ```cs -public static SummaryPipeline UseFilter(this SummaryPipeline self, IPipe<Doc, Doc> filter) +public static SummaryPipeline UseFilter(this SummaryPipeline self, IPipe filter) ``` Adds the given filter into the pipeline. diff --git a/docs/Summary.Pipelines.SummaryPipeline.md b/docs/Summary.Pipelines.SummaryPipeline.md index 665a1ae..6c00b0b 100644 --- a/docs/Summary.Pipelines.SummaryPipeline.md +++ b/docs/Summary.Pipelines.SummaryPipeline.md @@ -6,7 +6,7 @@ public class SummaryPipeline A plain Summary pipeline that should be used in simple cases. _By default, this pipeline supports one parser pipe and one renderer pipe._ -_<br />_ +_
_ _Parser pipe should extract [`Doc`](./Summary.Doc.md) from some source (e.g., file system), while_ _renderer pipe should render the parsed [`Doc`](./Summary.Doc.md) into some format (e.g., Markdown)_ _and save it somewhere (e.g., file system)._ @@ -21,7 +21,7 @@ The factory that provides logger implementations. ### [Filters](../src/Core/Pipelines/SummaryPipeline.cs#L63) ```cs -public List<IPipe<Doc, Doc>> Filters { get; } +public List> Filters { get; } ``` The list of all filters applied after the document is parsed. @@ -38,35 +38,35 @@ Specifies the logger factory that will be used to create loggers for the pipelin ### [Customize(Func<Options, Options>)](../src/Core/Pipelines/SummaryPipeline.cs#L68) ```cs -public SummaryPipeline Customize(Func<Options, Options> options) +public SummaryPipeline Customize(Func options) ``` Customizes the default pipeline options using the specified delegate. ### [ParseWith(Func<Options, IPipe<Unit, Doc>>)](../src/Core/Pipelines/SummaryPipeline.cs#L74) ```cs -public SummaryPipeline ParseWith(Func<Options, IPipe<Unit, Doc>> parser) +public SummaryPipeline ParseWith(Func> parser) ``` Specifies the custom parser with logging support for this pipeline. ### [ParseWith(IPipe<Unit, Doc>)](../src/Core/Pipelines/SummaryPipeline.cs#L83) ```cs -public SummaryPipeline ParseWith(IPipe<Unit, Doc> parser) +public SummaryPipeline ParseWith(IPipe parser) ``` Specifies the custom parser for this pipeline. ### [RenderWith(Func<Options, IPipe<Doc, Unit>>)](../src/Core/Pipelines/SummaryPipeline.cs#L92) ```cs -public SummaryPipeline RenderWith(Func<Options, IPipe<Doc, Unit>> render) +public SummaryPipeline RenderWith(Func> render) ``` Specifies the custom renderer for this pipeline. ### [RenderWith(IPipe<Doc, Unit>)](../src/Core/Pipelines/SummaryPipeline.cs#L101) ```cs -public SummaryPipeline RenderWith(IPipe<Doc, Unit> render) +public SummaryPipeline RenderWith(IPipe render) ``` Specifies the custom renderer for this pipeline. diff --git a/docs/Summary.Pipes.Filters.FilterMemberPipe.md b/docs/Summary.Pipes.Filters.FilterMemberPipe.md index fea1ed0..3bc27df 100644 --- a/docs/Summary.Pipes.Filters.FilterMemberPipe.md +++ b/docs/Summary.Pipes.Filters.FilterMemberPipe.md @@ -1,6 +1,6 @@ # [Summary.Pipes.Filters.FilterMemberPipe](../src/Core/Pipes/Filters/FilterMemberPipe.cs#L7) ```cs -public class FilterMemberPipe : IPipe<Doc, Doc> +public class FilterMemberPipe : IPipe ``` A simple pipe that filters all members inside the document using the specified predicate @@ -9,7 +9,7 @@ and then applies the given map function on them. ## Methods ### [Run(Doc)](../src/Core/Pipes/Filters/FilterMemberPipe.cs#L12) ```cs -public Task<Doc> Run(Doc input) +public Task Run(Doc input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.FoldPipe{O}.md b/docs/Summary.Pipes.FoldPipe{O}.md index 8522be5..21b63ff 100644 --- a/docs/Summary.Pipes.FoldPipe{O}.md +++ b/docs/Summary.Pipes.FoldPipe{O}.md @@ -1,14 +1,14 @@ # [Summary.Pipes.FoldPipe<O>](../src/Core/Pipes/FoldPipe.cs#L6) ```cs -public class FoldPipe<O> : IPipe<O[], O> +public class FoldPipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that aggregates the result of the specified pipe. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that aggregates the result of the specified pipe. ## Methods ### [Run(O[])](../src/Core/Pipes/FoldPipe.cs#L9) ```cs -public Task<O> Run(O[] input) +public Task Run(O[] input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.FuncPipe{I,O}.md b/docs/Summary.Pipes.FuncPipe{I,O}.md index e5aa7b0..4d71803 100644 --- a/docs/Summary.Pipes.FuncPipe{I,O}.md +++ b/docs/Summary.Pipes.FuncPipe{I,O}.md @@ -1,14 +1,14 @@ # [Summary.Pipes.FuncPipe<I, O>](../src/Core/Pipes/FuncPipe.cs#L6) ```cs -public class FuncPipe<I, O> : IPipe<I, O> +public class FuncPipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that wraps <u>`Func<I, O>`</u>. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that wraps `Func`. ## Methods ### [Run(I)](../src/Core/Pipes/FuncPipe.cs#L21) ```cs -public Task<O> Run(I input) +public Task Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.IO.CleanupDirPipe{I}.md b/docs/Summary.Pipes.IO.CleanupDirPipe{I}.md index d84c1ce..53e4392 100644 --- a/docs/Summary.Pipes.IO.CleanupDirPipe{I}.md +++ b/docs/Summary.Pipes.IO.CleanupDirPipe{I}.md @@ -1,6 +1,6 @@ # [Summary.Pipes.IO.CleanupDirPipe<I>](../src/Core/Pipes/IO/CleanupDirPipe.cs#L6) ```cs -public class CleanupDirPipe<I> : IPipe<I, I> +public class CleanupDirPipe : IPipe ``` Cleans up a given directory by deleting and re-creating it. @@ -8,7 +8,7 @@ Cleans up a given directory by deleting and re-creating it. ## Methods ### [Run(I)](../src/Core/Pipes/IO/CleanupDirPipe.cs#L9) ```cs -public Task<I> Run(I input) +public Task Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.IO.SavePipe{I}.md b/docs/Summary.Pipes.IO.SavePipe{I}.md index a9a921a..e4e6674 100644 --- a/docs/Summary.Pipes.IO.SavePipe{I}.md +++ b/docs/Summary.Pipes.IO.SavePipe{I}.md @@ -1,14 +1,14 @@ # [Summary.Pipes.IO.SavePipe<I>](../src/Core/Pipes/IO/SavePipe.cs#L6) ```cs -public class SavePipe<I> : IPipe<I, Unit> +public class SavePipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that saves the input to the file. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that saves the input to the file. ## Methods ### [Run(I)](../src/Core/Pipes/IO/SavePipe.cs#L9) ```cs -public async Task<Unit> Run(I input) +public async Task Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.IO.ScanPipe.md b/docs/Summary.Pipes.IO.ScanPipe.md index 06c8a32..b2462f8 100644 --- a/docs/Summary.Pipes.IO.ScanPipe.md +++ b/docs/Summary.Pipes.IO.ScanPipe.md @@ -1,14 +1,14 @@ # [Summary.Pipes.IO.ScanPipe](../src/Core/Pipes/IO/ScanPipe.cs#L6) ```cs -public class ScanPipe : IPipe<Unit, Source[]> +public class ScanPipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that searches specified directory (recursively) for files that match specified pattern. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that searches specified directory (recursively) for files that match specified pattern. ## Methods ### [Run(Unit)](../src/Core/Pipes/IO/ScanPipe.cs#L9) ```cs -public async Task<Source[]> Run(Unit _) +public async Task Run(Unit _) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.IO.Source.md b/docs/Summary.Pipes.IO.Source.md index 40f96ea..1f523e1 100644 --- a/docs/Summary.Pipes.IO.Source.md +++ b/docs/Summary.Pipes.IO.Source.md @@ -23,7 +23,7 @@ The path to the file. ## Methods ### [Read(string, CancellationToken)](../src/Core/Pipes/IO/Source.cs#L13) ```cs -public static async Task<Source> Read(string path, CancellationToken token = default) +public static async Task Read(string path, CancellationToken token = default) ``` Reads source code from the specified file. diff --git a/docs/Summary.Pipes.IPipe{I,O}.md b/docs/Summary.Pipes.IPipe{I,O}.md index 220551b..d0c6383 100644 --- a/docs/Summary.Pipes.IPipe{I,O}.md +++ b/docs/Summary.Pipes.IPipe{I,O}.md @@ -1,6 +1,6 @@ # [Summary.Pipes.IPipe<I, O>](../src/Core/Pipes/IPipe.cs#L8) ```cs -public interface IPipe<in I, O> +public interface IPipe ``` An asynchronous pipe that can transform an input to the output. @@ -12,7 +12,7 @@ An asynchronous pipe that can transform an input to the output. ## Methods ### [Run(I)](../src/Core/Pipes/IPipe.cs#L13) ```cs - Task<O> Run(I input) + Task Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md b/docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md index 0baa211..b4f0760 100644 --- a/docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md +++ b/docs/Summary.Pipes.Logging.LoggedPipe{I,O}.md @@ -1,16 +1,16 @@ # [Summary.Pipes.Logging.LoggedPipe<I, O>](../src/Core/Pipes/Logging/LoggedPipe.cs#L11) ```cs -public class LoggedPipe<I, O> : IPipe<I, O> +public class LoggedPipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) whose output is logged using the provided logger. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) whose output is logged using the provided logger. _Logging is implemented by simply beginning a new scope with the given message._ ## Methods ### [Run(I)](../src/Core/Pipes/Logging/LoggedPipe.cs#L20) ```cs -public Task<O> Run(I input) +public Task Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.PipeExtensions.md b/docs/Summary.Pipes.PipeExtensions.md index 7419a3c..d143a4e 100644 --- a/docs/Summary.Pipes.PipeExtensions.md +++ b/docs/Summary.Pipes.PipeExtensions.md @@ -3,89 +3,89 @@ public static class PipeExtensions ``` -Extension methods for [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md). +Extension methods for [`IPipe`](./Summary.Pipes.IPipe{I,O}.md). ## Methods ### [Fold<I>(IPipe<I, Unit[]>)](../src/Core/Pipes/PipeExtensions.cs#L14) ```cs -public static IPipe<I, Unit> Fold<I>(this IPipe<I, Unit[]> self) +public static IPipe Fold(this IPipe self) ``` Folds the result of the specified pipe into a single [`Unit`](./Summary.Pipes.Unit.md) value. ### [Run<O>(IPipe<Unit, O>)](../src/Core/Pipes/PipeExtensions.cs#L20) ```cs -public static Task<O> Run<O>(this IPipe<Unit, O> self) +public static Task Run(this IPipe self) ``` Asynchronously runs the pipe. ### [Then<I, O1, O2>(IPipe<I, O1>, IPipe<O1, O2>)](../src/Core/Pipes/PipeExtensions.cs#L26) ```cs -public static IPipe<I, O2> Then<I, O1, O2>(this IPipe<I, O1> a, IPipe<O1, O2> b) +public static IPipe Then(this IPipe a, IPipe b) ``` Composes the pipe with another pipe so that the output of the first pipe is passed as an input to the second pipe. ### [Then<I, O>(IPipe<I, O>, IPipe<O, O>, bool)](../src/Core/Pipes/PipeExtensions.cs#L32) ```cs -public static IPipe<I, O> Then<I, O>(this IPipe<I, O> a, IPipe<O, O> b, bool when) +public static IPipe Then(this IPipe a, IPipe b, bool when) ``` Composes the pipe with another pipe so that the output of the first pipe is passed as an input to the second pipe. ### [Then<I, O1, O2>(IPipe<I, O1>, Func<O1, O2>)](../src/Core/Pipes/PipeExtensions.cs#L38) ```cs -public static IPipe<I, O2> Then<I, O1, O2>(this IPipe<I, O1> a, Func<O1, O2> map) +public static IPipe Then(this IPipe a, Func map) ``` Constructs a new pipe that will apply the specified `select` function to the output of the current pipe. ### [Then<I, O>(IPipe<I, O>, Func<O, O>, bool)](../src/Core/Pipes/PipeExtensions.cs#L44) ```cs -public static IPipe<I, O> Then<I, O>(this IPipe<I, O> a, Func<O, O> map, bool when) +public static IPipe Then(this IPipe a, Func map, bool when) ``` Constructs a new pipe that will apply the specified `select` function to the output of the current pipe. ### [ThenForEach<I, O1, O2>(IPipe<I, O1[]>, IPipe<O1, O2>)](../src/Core/Pipes/PipeExtensions.cs#L50) ```cs -public static IPipe<I, O2[]> ThenForEach<I, O1, O2>(this IPipe<I, O1[]> a, IPipe<O1, O2> b) +public static IPipe ThenForEach(this IPipe a, IPipe b) ``` Constructs a new pipe that will apply the specified map pipe to the each element of the output of the current pipe. ### [Tee<I, O>(IPipe<I, O>, Action<O>)](../src/Core/Pipes/PipeExtensions.cs#L56) ```cs -public static IPipe<I, O> Tee<I, O>(this IPipe<I, O> a, Action<O> action) +public static IPipe Tee(this IPipe a, Action action) ``` Constructs a new pipe that will execute the specified action on the output. ### [Logged<I, O>(IPipe<I, O>, ILoggerFactory, string)](../src/Core/Pipes/PipeExtensions.cs#L62) ```cs -public static IPipe<I, O> Logged<I, O>(this IPipe<I, O> self, ILoggerFactory factory, string message) +public static IPipe Logged(this IPipe self, ILoggerFactory factory, string message) ``` Logs the execution of the given pipe using the specified logger factory. ### [Logged<I, O>(IPipe<I, O>, ILoggerFactory, Func<I, string>)](../src/Core/Pipes/PipeExtensions.cs#L66) ```cs -public static IPipe<I, O> Logged<I, O>(this IPipe<I, O> self, ILoggerFactory factory, Func<I, string> message) +public static IPipe Logged(this IPipe self, ILoggerFactory factory, Func message) ``` Logs the execution of the given pipe using the specified logger factory. ### [Logged<I, O>(IPipe<I, O>, ILogger, string)](../src/Core/Pipes/PipeExtensions.cs#L72) ```cs -public static IPipe<I, O> Logged<I, O>(this IPipe<I, O> self, ILogger logger, string message) +public static IPipe Logged(this IPipe self, ILogger logger, string message) ``` Logs the execution of the given pipe using the specified logger. ### [Logged<I, O>(IPipe<I, O>, ILogger, Func<I, string>)](../src/Core/Pipes/PipeExtensions.cs#L76) ```cs -public static IPipe<I, O> Logged<I, O>(this IPipe<I, O> self, ILogger logger, Func<I, string> message) +public static IPipe Logged(this IPipe self, ILogger logger, Func message) ``` Logs the execution of the given pipe using the specified logger. diff --git a/docs/Summary.Pipes.TeePipe{I,O}.md b/docs/Summary.Pipes.TeePipe{I,O}.md index 9dfa4c4..e6ef119 100644 --- a/docs/Summary.Pipes.TeePipe{I,O}.md +++ b/docs/Summary.Pipes.TeePipe{I,O}.md @@ -1,14 +1,14 @@ # [Summary.Pipes.TeePipe<I, O>](../src/Core/Pipes/TeePipe.cs#L6) ```cs -public class TeePipe<I, O> : IPipe<I, O> +public class TeePipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that invokes an action on the output of the pipe each time it's executed. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that invokes an action on the output of the pipe each time it's executed. ## Methods ### [Run(I)](../src/Core/Pipes/TeePipe.cs#L9) ```cs -public async Task<O> Run(I input) +public async Task Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.ThenForEach{I,O1,O2}.md b/docs/Summary.Pipes.ThenForEach{I,O1,O2}.md index cb7b8d0..cad2fb9 100644 --- a/docs/Summary.Pipes.ThenForEach{I,O1,O2}.md +++ b/docs/Summary.Pipes.ThenForEach{I,O1,O2}.md @@ -1,14 +1,14 @@ # [Summary.Pipes.ThenForEach<I, O1, O2>](../src/Core/Pipes/ThenForEach.cs#L6) ```cs -public class ThenForEach<I, O1, O2> : IPipe<I, O2[]> +public class ThenForEach : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that aggregates the result of the specified pipe. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that aggregates the result of the specified pipe. ## Methods ### [Run(I)](../src/Core/Pipes/ThenForEach.cs#L9) ```cs -public async Task<O2[]> Run(I input) +public async Task Run(I input) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Pipes.ThenPipe{I,O1,O2}.md b/docs/Summary.Pipes.ThenPipe{I,O1,O2}.md index 1eaf846..69f3558 100644 --- a/docs/Summary.Pipes.ThenPipe{I,O1,O2}.md +++ b/docs/Summary.Pipes.ThenPipe{I,O1,O2}.md @@ -1,14 +1,14 @@ # [Summary.Pipes.ThenPipe<I, O1, O2>](../src/Core/Pipes/ThenPipe.cs#L6) ```cs -public class ThenPipe<I, O1, O2> : IPipe<I, O2> +public class ThenPipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that composes two pipes together. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that composes two pipes together. ## Methods ### [Run(I)](../src/Core/Pipes/ThenPipe.cs#L9) ```cs -public async Task<O2> Run(I i) +public async Task Run(I i) ``` Asynchronously processes the specified input and returns the output. diff --git a/docs/Summary.Roslyn.CSharp.Extensions.DocMemberExtensions.md b/docs/Summary.Roslyn.CSharp.Extensions.DocMemberExtensions.md index b608d41..e2d3817 100644 --- a/docs/Summary.Roslyn.CSharp.Extensions.DocMemberExtensions.md +++ b/docs/Summary.Roslyn.CSharp.Extensions.DocMemberExtensions.md @@ -8,7 +8,7 @@ A set of extension methods for [`DocMember`](./Summary.DocMember.md). ## Methods ### [WithComment<T>(T, MemberDeclarationSyntax)](../src/Plugins/Roslyn/CSharp/Extensions/DocMemberExtensions.cs#L13) ```cs -public static T WithComment<T>(this T self, MemberDeclarationSyntax syntax) +public static T WithComment(this T self, MemberDeclarationSyntax syntax) ``` Parses the comment from the specified member syntax and attaches it to this doc member. diff --git a/docs/Summary.Roslyn.CSharp.InlineInheritDocPipe.md b/docs/Summary.Roslyn.CSharp.InlineInheritDocPipe.md index 8626ad4..ed2082a 100644 --- a/docs/Summary.Roslyn.CSharp.InlineInheritDocPipe.md +++ b/docs/Summary.Roslyn.CSharp.InlineInheritDocPipe.md @@ -1,19 +1,19 @@ # [Summary.Roslyn.CSharp.InlineInheritDocPipe](../src/Plugins/Roslyn/CSharp/InlineInheritDocPipe.cs#L18) ```cs -public class InlineInheritDocPipe : IPipe<Doc, Doc> +public class InlineInheritDocPipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that inlines `<inheritdoc/>` tags. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that inlines `` tags. _Under the hood, the process of inlining works as follows:_ -_<br />_ +_
_ _- each member in the [`Doc`](./Summary.Doc.md) is analyzed_ -_- if this member contains an `<inheritdoc/>` element, it's removed from the member comment_ +_- if this member contains an `` element, it's removed from the member comment_ _- then, the inherited documentation (either from the base type or from the specified cref) is added to the member comment._ ## Methods ### [Run(Doc)](../src/Plugins/Roslyn/CSharp/InlineInheritDocPipe.cs#L20) ```cs -public Task<Doc> Run(Doc doc) +public Task Run(Doc doc) ``` diff --git a/docs/Summary.Roslyn.CSharp.ParseDocPipe.md b/docs/Summary.Roslyn.CSharp.ParseDocPipe.md index c42a962..d0889ff 100644 --- a/docs/Summary.Roslyn.CSharp.ParseDocPipe.md +++ b/docs/Summary.Roslyn.CSharp.ParseDocPipe.md @@ -1,13 +1,13 @@ # [Summary.Roslyn.CSharp.ParseDocPipe](../src/Plugins/Roslyn/CSharp/ParseDocPipe.cs#L12) ```cs -public class ParseDocPipe : IPipe<SyntaxTree, Doc> +public class ParseDocPipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that transforms the specified syntax tree into parsed document. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that transforms the specified syntax tree into parsed document. ## Methods ### [Run(SyntaxTree)](../src/Plugins/Roslyn/CSharp/ParseDocPipe.cs#L14) ```cs -public async Task<Doc> Run(SyntaxTree input) +public async Task Run(SyntaxTree input) ``` diff --git a/docs/Summary.Roslyn.CSharp.ParseSyntaxTreePipe.md b/docs/Summary.Roslyn.CSharp.ParseSyntaxTreePipe.md index d829377..9659091 100644 --- a/docs/Summary.Roslyn.CSharp.ParseSyntaxTreePipe.md +++ b/docs/Summary.Roslyn.CSharp.ParseSyntaxTreePipe.md @@ -1,13 +1,13 @@ # [Summary.Roslyn.CSharp.ParseSyntaxTreePipe](../src/Plugins/Roslyn/CSharp/ParseSyntaxTreePipe.cs#L11) ```cs -public class ParseSyntaxTreePipe : IPipe<Source, SyntaxTree> +public class ParseSyntaxTreePipe : IPipe ``` -A [`IPipe<I, O>`](./Summary.Pipes.IPipe{I,O}.md) that parses the specified string into a <u>`SyntaxTree`</u>. +A [`IPipe`](./Summary.Pipes.IPipe{I,O}.md) that parses the specified string into a `SyntaxTree`. ## Methods ### [Run(Source)](../src/Plugins/Roslyn/CSharp/ParseSyntaxTreePipe.cs#L13) ```cs -public Task<SyntaxTree> Run(Source input) +public Task Run(Source input) ``` diff --git a/docs/Summary.Roslyn.RoslynPipelineExtensions.md b/docs/Summary.Roslyn.RoslynPipelineExtensions.md index 9b92c91..085c5bc 100644 --- a/docs/Summary.Roslyn.RoslynPipelineExtensions.md +++ b/docs/Summary.Roslyn.RoslynPipelineExtensions.md @@ -15,8 +15,8 @@ Adds a Roslyn parser to the specified pipeline. _This parser will parse all the C# files in the specified directory_ _and will extract comments from the corresponding syntax trees using Roslyn API._ -_<para/>_ -_Under the hood, we call <u>`System.IO.Directory.EnumerateFiles(string, string, SearchOption)`</u> method_ +__ +_Under the hood, we call `System.IO.Directory.EnumerateFiles(string, string, SearchOption)` method_ _to get the list of all files for each of the specified root paths, and then concatenate the results._ ### [UseRoslynParser(SummaryPipeline, string[], string)](../src/Plugins/Roslyn/RoslynPipelineExtensions.cs#L29) @@ -28,7 +28,7 @@ Adds a Roslyn parser to the specified pipeline. _This parser will parse all the C# files in the specified directory_ _and will extract comments from the corresponding syntax trees using Roslyn API._ -_<para/>_ -_Under the hood, we call <u>`System.IO.Directory.EnumerateFiles(string, string, SearchOption)`</u> method_ +__ +_Under the hood, we call `System.IO.Directory.EnumerateFiles(string, string, SearchOption)` method_ _to get the list of all files for each of the specified root paths, and then concatenate the results._ diff --git a/docs/Summary.Samples.InheritDocBase.md b/docs/Summary.Samples.InheritDocBase.md index f8777bd..18fe239 100644 --- a/docs/Summary.Samples.InheritDocBase.md +++ b/docs/Summary.Samples.InheritDocBase.md @@ -120,7 +120,7 @@ Returns the sum of two values. ### [Sum<T>(byte, byte)](../src/Core/Samples/InheritDocSample.cs#L83) ```cs -public byte Sum<T>(byte x, byte y) +public byte Sum(byte x, byte y) ``` Calculates the byte sum. diff --git a/docs/Summary.Samples.Sample{T0,T1}.Child.md b/docs/Summary.Samples.Sample{T0,T1}.Child.md index 9c3cff3..0eb11be 100644 --- a/docs/Summary.Samples.Sample{T0,T1}.Child.md +++ b/docs/Summary.Samples.Sample{T0,T1}.Child.md @@ -1,13 +1,13 @@ # [~~Summary.Samples.Sample<T0, T1>.Child~~](../src/Core/Samples/Sample.cs#L42) -> [!WARNING] -> The type is deprecated. +> [!WARNING] +> The type is deprecated. ```cs [Obsolete(error: true, message: "The type is deprecated.")] public class Child ``` -A child of the [`Sample<T0, T1>`](./Summary.Samples.Sample{T0,T1}.md) class. +A child of the [`Sample`](./Summary.Samples.Sample{T0,T1}.md) class. ## Fields ### [Field](../src/Core/Samples/Sample.cs#L47) diff --git a/docs/Summary.Samples.Sample{T0,T1}.md b/docs/Summary.Samples.Sample{T0,T1}.md index 9f63f71..5e9fb01 100644 --- a/docs/Summary.Samples.Sample{T0,T1}.md +++ b/docs/Summary.Samples.Sample{T0,T1}.md @@ -1,6 +1,6 @@ # [Summary.Samples.Sample<T0, T1>](../src/Core/Samples/Sample.cs#L35) ```cs -public class Sample<T0, T1> +public class Sample ``` A sample class that is documented. @@ -15,7 +15,7 @@ Here is a ~~strikethrough~~ fragment. _Remarks section._ _Second line._ _Another paragraph._ -_Btw, this type has a child: [`Sample<T0, T1>.Child`](./Summary.Samples.Sample{T0,T1}.Child.md)._ +_Btw, this type has a child: [`Sample.Child`](./Summary.Samples.Sample{T0,T1}.Child.md)._ ## Type Parameters - `T0`: A first type parameter. @@ -53,8 +53,8 @@ public int Field A field of the child class. ### [~~Field1~~](../src/Core/Samples/Sample.cs#L59) -> [!WARNING] -> The field is deprecated. +> [!WARNING] +> The field is deprecated. ```cs [Obsolete("The field is deprecated.")] @@ -126,7 +126,7 @@ What indexer returns. ## Methods ### [Method<M0, M1, M2>(int, string)](../src/Core/Samples/Sample.cs#L130) ```cs -public TimeSpan Method<M0, M1, M2>(int x, string y) +public TimeSpan Method(int x, string y) ``` A simple method. @@ -156,10 +156,10 @@ The `TimeSpan` instance. ### [Method<M0, M1, M2>(short, string)](../src/Core/Samples/Sample.cs#L137) ```cs -public TimeSpan Method<M0, M1, M2>(short x, string y) +public TimeSpan Method(short x, string y) ``` -The overloaded [`Method<M0, M1, M2>(int, string)`](./Summary.Samples.Sample{T0,T1}.md#methodm0-m1-m2int-string). +The overloaded [`Method(int, string)`](./Summary.Samples.Sample{T0,T1}.md#methodm0-m1-m2int-string). #### Type Parameters - `M0`: The first type parameter of the method. diff --git a/docs/Summary.Tests.Extensions.md b/docs/Summary.Tests.Extensions.md index 4e95abd..f42f371 100644 --- a/docs/Summary.Tests.Extensions.md +++ b/docs/Summary.Tests.Extensions.md @@ -8,7 +8,7 @@ Extension methods that simplify unit testing and should not be included in the p ## Methods ### [RunSync<O>(IPipe<Unit, O>)](../src/Tests/Extensions.cs#L14) ```cs -public static O RunSync<O>(this IPipe<Unit, O> self) +public static O RunSync(this IPipe self) ``` Runs the pipe synchronously. @@ -18,7 +18,7 @@ Runs the pipe synchronously. ### [RunSync<I, O>(IPipe<I, O>, I)](../src/Tests/Extensions.cs#L18) ```cs -public static O RunSync<I, O>(this IPipe<I, O> self, I input) +public static O RunSync(this IPipe self, I input) ``` Runs the pipe synchronously. diff --git a/src/Plugins/Markdown/MdRenderer.cs b/src/Plugins/Markdown/MdRenderer.cs index 03d111a..f1e9e55 100644 --- a/src/Plugins/Markdown/MdRenderer.cs +++ b/src/Plugins/Markdown/MdRenderer.cs @@ -126,7 +126,7 @@ string Link(string text) var from = new Uri(_output); var to = new Uri(member.Location.Path); - return $"[{text}]({from.MakeRelativeUri(to)}#L{member.Location.Start.Line + 1})"; + return $"[{text.Escape()}]({from.MakeRelativeUri(to)}#L{member.Location.Start.Line + 1})"; } return text; diff --git a/src/Plugins/Markdown/RenderMarkdownPipe.cs b/src/Plugins/Markdown/RenderMarkdownPipe.cs index 63b8116..3b8555f 100644 --- a/src/Plugins/Markdown/RenderMarkdownPipe.cs +++ b/src/Plugins/Markdown/RenderMarkdownPipe.cs @@ -21,14 +21,14 @@ public Task Run(Doc doc) => private Md Render(Doc doc, DocMember member) { - var text = new MdRenderer(doc, output).Member(member).Text().Escape(); + var text = new MdRenderer(doc, output).Member(member).Text(); return new($"{member.FileName()}.md", text); } private Md Index(Doc doc) { - return new("README.md", Content().Escape()); + return new("README.md", Content()); string Content() { @@ -45,7 +45,7 @@ string Content() text.AppendLine($"# {ns}"); foreach (var member in members) - text.AppendLine($"- [**{member.FullyQualifiedName}**]({member.FileName()}.md)"); + text.AppendLine($"- [**{member.FullyQualifiedName.Escape()}**]({member.FileName()}.md)"); text.AppendLine(); }