Skip to content

Commit 8df7b47

Browse files
committed
Scoped Convert Service
1 parent 05a865f commit 8df7b47

File tree

5 files changed

+43
-37
lines changed

5 files changed

+43
-37
lines changed

src/Blogifier/Posts/ImportManager.cs

+5-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using Blogifier.Identity;
33
using Blogifier.Shared;
44
using Blogifier.Storages;
5-
using Microsoft.Extensions.Logging;
65
using System;
76
using System.Collections.Generic;
87
using System.Linq;
@@ -12,22 +11,19 @@ namespace Blogifier.Posts;
1211

1312
public class ImportManager
1413
{
15-
private readonly ILogger _logger;
1614
private readonly UserProvider _userProvider;
17-
private readonly MarkdigProvider _markdigProvider;
15+
private readonly ReverseProvider _reverseProvider;
1816
private readonly PostProvider _postProvider;
1917
private readonly StorageProvider _storageProvider;
2018

2119
public ImportManager(
22-
ILogger<ImportManager> logger,
2320
UserProvider userProvider,
24-
MarkdigProvider markdigProvider,
21+
ReverseProvider reverseProvider,
2522
PostProvider postProvider,
2623
StorageProvider storageProvider)
2724
{
28-
_logger = logger;
2925
_userProvider = userProvider;
30-
_markdigProvider = markdigProvider;
26+
_reverseProvider = reverseProvider;
3127
_postProvider = postProvider;
3228
_storageProvider = storageProvider;
3329
}
@@ -58,10 +54,10 @@ public async Task<IEnumerable<PostEditorDto>> WriteAsync(ImportDto request, stri
5854
var importImagesContent = await _storageProvider.UploadImagesFoHtml(webRoot, user.Id, post.Slug!, publishedAt, post.Content);
5955
var importFilesContent = await _storageProvider.UploadFilesFoHtml(webRoot, user.Id, post.Slug!, publishedAt, post.Content);
6056

61-
var markdownContent = _markdigProvider.ToMarkdown(importFilesContent);
57+
var markdownContent = _reverseProvider.ToMarkdown(importFilesContent);
6258
post.Content = markdownContent;
6359

64-
var markdownDescription = _markdigProvider.ToMarkdown(post.Description);
60+
var markdownDescription = _reverseProvider.ToMarkdown(post.Description);
6561
post.Description = markdownDescription;
6662

6763
post.State = PostState.Release;

src/Blogifier/Posts/ImportRssProvider.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class ImportRssProvider
1111
{
1212
public ImportDto Analysis(string feedUrl)
1313
{
14-
var xml = XmlReader.Create(feedUrl);
14+
using var xml = XmlReader.Create(feedUrl);
1515
var feed = SyndicationFeed.Load(xml);
1616

1717
var result = new ImportDto
+2-26
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,18 @@
11
using Markdig;
2-
using Microsoft.Extensions.Logging;
3-
using ReverseMarkdown;
42

53
namespace Blogifier.Posts;
64

75
public class MarkdigProvider
86
{
9-
private readonly ILogger _logger;
107
private readonly MarkdownPipeline _markdownPipeline;
11-
private readonly Converter _converter;
128

13-
public MarkdigProvider(ILogger<MarkdigProvider> logger)
9+
10+
public MarkdigProvider()
1411
{
15-
_logger = logger;
1612
_markdownPipeline = new MarkdownPipelineBuilder()
1713
.UsePipeTables()
1814
.UseAdvancedExtensions()
1915
.Build();
20-
21-
var config = new Config
22-
{
23-
// generate GitHub flavoured markdown, supported for BR, PRE and table tags
24-
GithubFlavored = true,
25-
// will ignore all comments
26-
RemoveComments = true,
27-
// Include the unknown tag completely in the result (default as well)
28-
UnknownTags = Config.UnknownTagsOption.Bypass,
29-
// remove markdown output for links where appropriate
30-
SmartHrefHandling = false
31-
};
32-
_converter = new Converter(config);
3316
}
3417

3518
public string ToHtml(string markdown)
@@ -38,11 +21,4 @@ public string ToHtml(string markdown)
3821
//_logger.LogDebug("ToHtml markdown:{markdown}, html:{html}", markdown, html);
3922
return html;
4023
}
41-
42-
public string ToMarkdown(string html)
43-
{
44-
var markdown = _converter.Convert(html);
45-
//_logger.LogDebug("ToMarkdown html:{html}, markdown:{markdown}", html, markdown);
46-
return markdown;
47-
}
4824
}
+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using ReverseMarkdown;
2+
3+
namespace Blogifier.Posts;
4+
5+
public class ReverseProvider
6+
{
7+
private readonly Converter _converter;
8+
9+
public ReverseProvider()
10+
{
11+
var config = new Config
12+
{
13+
// generate GitHub flavoured markdown, supported for BR, PRE and table tags
14+
GithubFlavored = true,
15+
// will ignore all comments
16+
RemoveComments = true,
17+
// Include the unknown tag completely in the result (default as well)
18+
UnknownTags = Config.UnknownTagsOption.Bypass,
19+
// remove markdown output for links where appropriate
20+
SmartHrefHandling = false
21+
};
22+
_converter = new Converter(config);
23+
}
24+
25+
public string ToMarkdown(string html)
26+
{
27+
var markdown = _converter.Convert(html);
28+
//_logger.LogDebug("ToMarkdown html:{html}, markdown:{markdown}", html, markdown);
29+
return markdown;
30+
}
31+
}

src/Blogifier/Program.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@
3737
builder.Services.AddAuthorization();
3838

3939
builder.Services.AddSingleton<MinioProvider>();
40-
builder.Services.AddSingleton<MarkdigProvider>();
40+
41+
builder.Services.AddScoped<MarkdigProvider>();
42+
builder.Services.AddScoped<ReverseProvider>();
43+
4144
builder.Services.AddSingleton<ImportRssProvider>();
4245

4346
builder.Services.AddScoped<UserProvider>();

0 commit comments

Comments
 (0)