Browse Source

remove url normalizer

pull/19419/head
Salih 2 years ago
parent
commit
ccac49ba4e
  1. 17
      modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs
  2. 17
      modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs
  3. 35
      modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs

17
modules/docs/src/Volo.Docs.Web/Areas/Documents/TagHelpers/TreeTagHelper.cs

@ -20,10 +20,6 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
private readonly IStringLocalizer<DocsResource> _localizer; private readonly IStringLocalizer<DocsResource> _localizer;
private readonly IDocsLinkGenerator _docsLinkGenerator; private readonly IDocsLinkGenerator _docsLinkGenerator;
private readonly Func<DocsUrlNormalizerContext, string> _urlNormalizer;
private readonly IServiceProvider _serviceProvider;
private const string LiItemTemplateWithLink = @"<li class='{0}'><span class='plus-icon'><i class='fa fa-{1}'></i></span>{2}{3}</li>"; private const string LiItemTemplateWithLink = @"<li class='{0}'><span class='plus-icon'><i class='fa fa-{1}'></i></span>{2}{3}</li>";
@ -51,13 +47,11 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
[HtmlAttributeName("language")] [HtmlAttributeName("language")]
public string LanguageCode { get; set; } public string LanguageCode { get; set; }
public TreeTagHelper(IOptions<DocsUiOptions> urlOptions, IStringLocalizer<DocsResource> localizer, IDocsLinkGenerator docsLinkGenerator, IServiceProvider serviceProvider) public TreeTagHelper(IOptions<DocsUiOptions> urlOptions, IStringLocalizer<DocsResource> localizer, IDocsLinkGenerator docsLinkGenerator)
{ {
_localizer = localizer; _localizer = localizer;
_uiOptions = urlOptions.Value; _uiOptions = urlOptions.Value;
_docsLinkGenerator = docsLinkGenerator; _docsLinkGenerator = docsLinkGenerator;
_urlNormalizer = _uiOptions.UrlNormalizer ?? (context => context.Url);
_serviceProvider = serviceProvider;
} }
public override void Process(TagHelperContext context, TagHelperOutput output) public override void Process(TagHelperContext context, TagHelperOutput output)
@ -183,14 +177,7 @@ namespace Volo.Docs.Areas.Documents.TagHelpers
} }
return _urlNormalizer(new DocsUrlNormalizerContext { return path;
Url = path,
Version = Version,
ProjectName = ProjectName,
LanguageCode = LanguageCode,
DocumentName = pathWithoutFileExtension,
ServiceProvider = _serviceProvider
});
} }
private string RemoveFileExtensionFromPath(string path) private string RemoveFileExtensionFromPath(string path)

17
modules/docs/src/Volo.Docs.Web/DocsUiOptions.cs

@ -36,8 +36,6 @@ namespace Volo.Docs
public bool MultiLanguageMode { get; set; } = true; public bool MultiLanguageMode { get; set; } = true;
public SingleProjectModeOptions SingleProjectMode { get; } = new (); public SingleProjectModeOptions SingleProjectMode { get; } = new ();
public Func<DocsUrlNormalizerContext, string> UrlNormalizer { get; set; }
private string GetFormattedRoutePrefix() private string GetFormattedRoutePrefix()
{ {
@ -60,19 +58,4 @@ namespace Volo.Docs
public string ProjectName { get; set; } public string ProjectName { get; set; }
} }
public class DocsUrlNormalizerContext
{
public string ProjectName { get; set; }
public string Version { get; set; }
public string LanguageCode { get; set; }
public string DocumentName { get; set; }
public string Url { get; set; }
public IServiceProvider ServiceProvider { get; set; }
}
} }

35
modules/docs/src/Volo.Docs.Web/Markdown/MarkdownDocumentToHtmlConverter.cs

@ -21,18 +21,13 @@ namespace Volo.Docs.Markdown
private readonly IMarkdownConverter _markdownConverter; private readonly IMarkdownConverter _markdownConverter;
private readonly DocsUiOptions _uiOptions; private readonly DocsUiOptions _uiOptions;
private readonly IDocsLinkGenerator _docsLinkGenerator; private readonly IDocsLinkGenerator _docsLinkGenerator;
private readonly IServiceProvider _serviceProvider;
private readonly Func<DocsUrlNormalizerContext, string> _urlNormalizer;
public MarkdownDocumentToHtmlConverter(IMarkdownConverter markdownConverter, public MarkdownDocumentToHtmlConverter(IMarkdownConverter markdownConverter,
IOptions<DocsUiOptions> urlOptions, IDocsLinkGenerator docsLinkGenerator, IOptions<DocsUiOptions> urlOptions, IDocsLinkGenerator docsLinkGenerator)
IServiceProvider serviceProvider)
{ {
_markdownConverter = markdownConverter; _markdownConverter = markdownConverter;
_docsLinkGenerator = docsLinkGenerator; _docsLinkGenerator = docsLinkGenerator;
_serviceProvider = serviceProvider;
_uiOptions = urlOptions.Value; _uiOptions = urlOptions.Value;
_urlNormalizer = _uiOptions.UrlNormalizer ?? (context => context.Url);
} }
private const string MdLinkFormat = "[{0}]({1})"; private const string MdLinkFormat = "[{0}]({1})";
@ -122,10 +117,7 @@ namespace Volo.Docs.Markdown
if (UrlHelper.IsExternalLink(link) || !(isMdFile || isFolder)) if (UrlHelper.IsExternalLink(link) || !(isMdFile || isFolder))
{ {
return NormalizeLink(displayText, MdLinkFormat, link, projectShortName, return match.Value;
version,
documentName,
languageCode);
} }
@ -141,29 +133,10 @@ namespace Volo.Docs.Markdown
documentLocalDirectoryNormalized = "/" + documentLocalDirectoryNormalized; documentLocalDirectoryNormalized = "/" + documentLocalDirectoryNormalized;
} }
return NormalizeLink( return string.Format(MdLinkFormat, displayText,
displayText, _docsLinkGenerator.GenerateLink(projectShortName, languageCode, $"{version}{documentLocalDirectoryNormalized}", documentName) + (hashPart.IsNullOrWhiteSpace() ? string.Empty : "#" + hashPart));
MdLinkFormat,
_docsLinkGenerator.GenerateLink(projectShortName, languageCode, $"{version}{documentLocalDirectoryNormalized}", documentName) + (hashPart.IsNullOrWhiteSpace() ? string.Empty : "#" + hashPart),
projectShortName,
version,
documentName,
languageCode
);
}); });
} }
private string NormalizeLink(string displayText, string linkFormat, string link, string projectName, string version, string documentName, string languageCode)
{
return string.Format(linkFormat, displayText, _urlNormalizer(new DocsUrlNormalizerContext {
Url = link,
ProjectName = projectName,
Version = version,
DocumentName = documentName,
LanguageCode = languageCode,
ServiceProvider = _serviceProvider
}));
}
private static string RemoveFileExtension(string documentName) private static string RemoveFileExtension(string documentName)
{ {

Loading…
Cancel
Save