Files
ZelWiki/ZelWiki.Engine/ZelEngine.cs
2025-02-24 21:09:37 +08:00

64 lines
3.0 KiB
C#

using ZelWiki.Engine.Library;
using ZelWiki.Engine.Library.Interfaces;
using ZelWiki.Library.Interfaces;
namespace ZelWiki.Engine
{
public class ZelEngine : IZelEngine
{
public IScopeFunctionHandler ScopeFunctionHandler { get; private set; }
public IStandardFunctionHandler StandardFunctionHandler { get; private set; }
public IProcessingInstructionFunctionHandler ProcessingInstructionFunctionHandler { get; private set; }
public IPostProcessingFunctionHandler PostProcessingFunctionHandler { get; private set; }
public IMarkupHandler MarkupHandler { get; private set; }
public IHeadingHandler HeadingHandler { get; private set; }
public ICommentHandler CommentHandler { get; private set; }
public IEmojiHandler EmojiHandler { get; private set; }
public IExternalLinkHandler ExternalLinkHandler { get; private set; }
public IInternalLinkHandler InternalLinkHandler { get; private set; }
public IExceptionHandler ExceptionHandler { get; private set; }
public ICompletionHandler CompletionHandler { get; private set; }
public ZelEngine(
IStandardFunctionHandler standardFunctionHandler,
IScopeFunctionHandler scopeFunctionHandler,
IProcessingInstructionFunctionHandler processingInstructionFunctionHandler,
IPostProcessingFunctionHandler postProcessingFunctionHandler,
IMarkupHandler markupHandler,
IHeadingHandler headingHandler,
ICommentHandler commentHandler,
IEmojiHandler emojiHandler,
IExternalLinkHandler externalLinkHandler,
IInternalLinkHandler internalLinkHandler,
IExceptionHandler exceptionHandler,
ICompletionHandler completionHandler)
{
StandardFunctionHandler = standardFunctionHandler;
StandardFunctionHandler = standardFunctionHandler;
ScopeFunctionHandler = scopeFunctionHandler;
ProcessingInstructionFunctionHandler = processingInstructionFunctionHandler;
PostProcessingFunctionHandler = postProcessingFunctionHandler;
MarkupHandler = markupHandler;
HeadingHandler = headingHandler;
CommentHandler = commentHandler;
EmojiHandler = emojiHandler;
ExternalLinkHandler = externalLinkHandler;
InternalLinkHandler = internalLinkHandler;
ExceptionHandler = exceptionHandler;
CompletionHandler = completionHandler;
}
/// <summary>
/// 转换给定页面的内容
/// </summary>
/// <param name="session"></param>
/// <param name="page"></param>
/// <param name="revision"></param>
/// <param name="omitMatches"></param>
/// <returns></returns>
public IZelEngineState Transform(ISessionState? session, IPage page, int? revision = null,
Constants.WikiMatchType[]? omitMatches = null)
=> new ZelEngineState(this, session, page, revision, omitMatches).Transform();
}
}