Skip to content

Commit

Permalink
refactor: drop MarkdigServiceProvider
Browse files Browse the repository at this point in the history
  • Loading branch information
yufeih committed Oct 15, 2023
1 parent 55367d4 commit aa763ea
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 76 deletions.
2 changes: 1 addition & 1 deletion src/Docfx.App/Helpers/MetadataMerger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ private void MergePageViewModel(MetadataMergeParameters parameters)
Metadata = parameters.Metadata,
OutputBaseDir = parameters.OutputBaseDir,
},
new MarkdigServiceProvider().CreateMarkdownService(
new MarkdigMarkdownService(
new MarkdownServiceParameters
{
BasePath = fc.DefaultBaseDir,
Expand Down
27 changes: 6 additions & 21 deletions src/Docfx.Build/DocumentBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ public void Build(IList<DocumentBuildParameters> parameters, string outputDirect
throw new ArgumentException("Parameters are empty.", nameof(parameters));
}

var markdownServiceProvider = GetMarkdownServiceProvider();
var logCodesLogListener = new LogCodesLogListener();
Logger.RegisterListener(logCodesLogListener);

Expand Down Expand Up @@ -124,7 +123,12 @@ public void Build(IList<DocumentBuildParameters> parameters, string outputDirect

using (new LoggerPhaseScope("BuildCore"))
{
manifests.Add(BuildCore(parameter, markdownServiceProvider));
using var builder = new SingleDocumentBuilder
{
MetadataValidators = MetadataValidators.ToList(),
Processors = Processors,
};
manifests.Add(builder.Build(parameter));
}
}
}
Expand Down Expand Up @@ -199,25 +203,6 @@ select o.Value into v
{
Logger.UnregisterListener(logCodesLogListener);
}

IMarkdownServiceProvider GetMarkdownServiceProvider()
{
return new MarkdigServiceProvider
{
ConfigureMarkdig = parameters[0].ConfigureMarkdig
};
}
}

internal Manifest BuildCore(DocumentBuildParameters parameter, IMarkdownServiceProvider markdownServiceProvider)
{
using var builder = new SingleDocumentBuilder
{
MetadataValidators = MetadataValidators.ToList(),
Processors = Processors,
MarkdownServiceProvider = markdownServiceProvider,
};
return builder.Build(parameter);
}

private List<IDocumentProcessor> LoadSchemaDrivenDocumentProcessors(DocumentBuildParameters parameter)
Expand Down
38 changes: 12 additions & 26 deletions src/Docfx.Build/SingleDocumentBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

using System.Collections.Immutable;
using Docfx.Common;
using Docfx.MarkdigEngine;
using Docfx.Plugins;

namespace Docfx.Build.Engine;
Expand All @@ -16,9 +17,6 @@ public class SingleDocumentBuilder : IDisposable

public IEnumerable<IDocumentProcessor> Processors { get; set; }
public IEnumerable<IInputMetadataValidator> MetadataValidators { get; set; }
public IMarkdownServiceProvider MarkdownServiceProvider { get; set; }

private IMarkdownService MarkdownService { get; set; }

public static ImmutableList<FileModel> Build(IDocumentProcessor processor, DocumentBuildParameters parameters, IMarkdownService markdownService)
{
Expand Down Expand Up @@ -81,14 +79,6 @@ private Manifest BuildCore(DocumentBuildParameters parameters)
?? new TemplateProcessor(new EmptyResourceReader(), context, 16);
using (new LoggerPhaseScope("Prepare", LogLevel.Verbose))
{
if (MarkdownService == null)
{
using (new LoggerPhaseScope("CreateMarkdownService", LogLevel.Verbose))
{
MarkdownService = CreateMarkdownService(parameters, templateProcessor.Tokens.ToImmutableDictionary());
context.MarkdownService = MarkdownService;
}
}
Prepare(
context,
templateProcessor,
Expand Down Expand Up @@ -142,6 +132,16 @@ private List<HostService> GetInnerContexts(
TemplateProcessor templateProcessor,
IHostServiceCreator creator)
{
var markdownService = new MarkdigMarkdownService(
new MarkdownServiceParameters
{
BasePath = parameters.Files.DefaultBaseDir,
TemplateDir = parameters.TemplateDir,
Extensions = parameters.MarkdownEngineParameters,
Tokens = templateProcessor.Tokens.ToImmutableDictionary(),
},
configureMarkdig: parameters.ConfigureMarkdig);

var files = (from file in parameters.Files.EnumerateFiles().AsParallel().WithDegreeOfParallelism(parameters.MaxParallelism)
from p in (from processor in processors
let priority = processor.GetProcessingPriority(file)
Expand Down Expand Up @@ -178,7 +178,7 @@ select LoggerPhaseScope.WithScope(
() => creator.CreateHostService(
parameters,
templateProcessor,
MarkdownService,
markdownService,
MetadataValidators,
processor,
item)
Expand Down Expand Up @@ -244,18 +244,6 @@ private static string GetXrefMapFileNameWithGroup(DocumentBuildParameters parame
return XRefMapFileName;
}

private IMarkdownService CreateMarkdownService(DocumentBuildParameters parameters, ImmutableDictionary<string, string> tokens)
{
return MarkdownServiceProvider.CreateMarkdownService(
new MarkdownServiceParameters
{
BasePath = parameters.Files.DefaultBaseDir,
TemplateDir = parameters.TemplateDir,
Extensions = parameters.MarkdownEngineParameters,
Tokens = tokens,
});
}

public void Dispose()
{
using (new PerformanceScope("DisposeDocumentProcessors"))
Expand All @@ -265,8 +253,6 @@ public void Dispose()
Logger.LogVerbose($"Disposing processor {processor.Name} ...");
(processor as IDisposable)?.Dispose();
}
(MarkdownService as IDisposable)?.Dispose();
MarkdownService = null;
}
}
}
Expand Down
17 changes: 0 additions & 17 deletions src/Docfx.MarkdigEngine/MarkdigServiceProvider.cs

This file was deleted.

9 changes: 0 additions & 9 deletions src/Docfx.Plugins/IMarkdownServiceProvider.cs

This file was deleted.

2 changes: 1 addition & 1 deletion test/Docfx.Build.Common.Tests/MarkdownReaderTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public void TestReadMarkdownAsOverwrite()
File.WriteAllText(fullPath, content);
var host = new HostService(null, Enumerable.Empty<FileModel>())
{
MarkdownService = new MarkdigServiceProvider().CreateMarkdownService(new MarkdownServiceParameters { BasePath = string.Empty }),
MarkdownService = new MarkdigMarkdownService(new MarkdownServiceParameters { BasePath = string.Empty }),
SourceFiles = ImmutableDictionary.Create<string, FileAndType>()
};

Expand Down
2 changes: 1 addition & 1 deletion test/Docfx.Build.Common.Tests/ModelAttributeHandlerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ private static HandleModelAttributesContext GetDefaultContext()
{
Host = new HostService(null, Enumerable.Empty<FileModel>())
{
MarkdownService = new MarkdigServiceProvider().CreateMarkdownService(new MarkdownServiceParameters { BasePath = string.Empty }),
MarkdownService = new MarkdigMarkdownService(new MarkdownServiceParameters { BasePath = string.Empty }),
SourceFiles = new Dictionary<string, FileAndType>
{
{ "~/test" , new FileAndType(Environment.CurrentDirectory, "test", DocumentType.Article)},
Expand Down

0 comments on commit aa763ea

Please sign in to comment.