IModule Interface
The primary module interface for classes that can transform or otherwise operate on documents.
Namespace
Statiq.Common
Implementing Types
graph BT Type["IModule"] class Type type-node Implementing0["RenderScriban"]-.->Type click Implementing0 "/api/Statiq.Scriban/RenderScriban" Implementing1["ReadSql"]-.->Type click Implementing1 "/api/Statiq.Core/ReadSql" Implementing2["DeploySearchIndex"]-.->Type click Implementing2 "/api/Statiq.Web.Azure/DeploySearchIndex" Implementing3["CompileLess"]-.->Type click Implementing3 "/api/Statiq.Less/CompileLess" Implementing4["ProcessScripts"]-.->Type click Implementing4 "/api/Statiq.Web.Modules/ProcessScripts" Implementing5["ReadSolution"]-.->Type click Implementing5 "/api/Statiq.CodeAnalysis/ReadSolution" Implementing6["SyncModule"]-.->Type click Implementing6 "/api/Statiq.Common/SyncModule" Implementing7["MinifyJs"]-.->Type click Implementing7 "/api/Statiq.Minification/MinifyJs" Implementing8["CopyMetadata"]-.->Type click Implementing8 "/api/Statiq.Core/CopyMetadata" Implementing9["InsertLinks"]-.->Type click Implementing9 "/api/Statiq.Core/InsertLinks" Implementing10["MultiConfigModule"]-.->Type click Implementing10 "/api/Statiq.Common/MultiConfigModule" Implementing11["RenderContentPostProcessTemplates"]-.->Type click Implementing11 "/api/Statiq.Web.Modules/RenderContentPostProcessTemplates" Implementing12["RenderRazor"]-.->Type click Implementing12 "/api/Statiq.Razor/RenderRazor" Implementing13["EvaluateScript"]-.->Type click Implementing13 "/api/Statiq.Core/EvaluateScript" Implementing14["TakeDocuments"]-.->Type click Implementing14 "/api/Statiq.Core/TakeDocuments" Implementing15["ReplaceWithContent"]-.->Type click Implementing15 "/api/Statiq.Core/ReplaceWithContent" Implementing16["ReadXmp"]-.->Type click Implementing16 "/api/Statiq.Xmp/ReadXmp" Implementing17["ProcessHtml"]-.->Type click Implementing17 "/api/Statiq.Core/ProcessHtml" Implementing18["CreateDocuments"]-.->Type click Implementing18 "/api/Statiq.Core/CreateDocuments" Implementing19["GenerateExcerpt"]-.->Type click Implementing19 "/api/Statiq.Core/GenerateExcerpt" Implementing20["ParseYaml"]-.->Type click Implementing20 "/api/Statiq.Yaml/ParseYaml" Implementing21["ExecuteIf"]-.->Type click Implementing21 "/api/Statiq.Core/ExecuteIf" Implementing22["ExecutionPipeline"]-.->Type click Implementing22 "/api/Statiq.Core/ExecutionPipeline" Implementing23["SetContentType"]-.->Type click Implementing23 "/api/Statiq.Web.Modules/SetContentType" Implementing24["RenderMarkdown"]-.->Type click Implementing24 "/api/Statiq.Markdown/RenderMarkdown" Implementing25["FilterDocuments"]-.->Type click Implementing25 "/api/Statiq.Core/FilterDocuments" Implementing26["CombineDocuments"]-.->Type click Implementing26 "/api/Statiq.Core/CombineDocuments" Implementing27["ThrowException"]-.->Type click Implementing27 "/api/Statiq.Core/ThrowException" Implementing28["SyncConfigModule<TValue>"]-.->Type click Implementing28 "/api/Statiq.Common/SyncConfigModule_1" Implementing29["CountModule"]-.->Type click Implementing29 "/api/Statiq.Testing/CountModule" Implementing30["ConfigModule<TValue>"]-.->Type click Implementing30 "/api/Statiq.Common/ConfigModule_1" Implementing31["ExecuteConfig"]-.->Type click Implementing31 "/api/Statiq.Core/ExecuteConfig" Implementing32["CacheDocuments"]-.->Type click Implementing32 "/api/Statiq.Core/CacheDocuments" Implementing33["CompileSass"]-.->Type click Implementing33 "/api/Statiq.Sass/CompileSass" Implementing34["DeployNetlifySite"]-.->Type click Implementing34 "/api/Statiq.Web.Netlify/DeployNetlifySite" Implementing35["EnumerateValues"]-.->Type click Implementing35 "/api/Statiq.Core/EnumerateValues" Implementing36["SetMediaType"]-.->Type click Implementing36 "/api/Statiq.Core/SetMediaType" Implementing37["MergeMetadata"]-.->Type click Implementing37 "/api/Statiq.Core/MergeMetadata" Implementing38["ParallelSyncConfigModule<TValue>"]-.->Type click Implementing38 "/api/Statiq.Common/ParallelSyncConfigModule_1" Implementing39["ExecuteModules"]-.->Type click Implementing39 "/api/Statiq.Core/ExecuteModules" Implementing40["ReadProject"]-.->Type click Implementing40 "/api/Statiq.CodeAnalysis/ReadProject" Implementing41["ParallelSyncModule"]-.->Type click Implementing41 "/api/Statiq.Common/ParallelSyncModule" Implementing42["ReadDataModule<TModule, TItem>"]-.->Type click Implementing42 "/api/Statiq.Common/ReadDataModule_2" Implementing43["ExecuteSwitch"]-.->Type click Implementing43 "/api/Statiq.Core/ExecuteSwitch" Implementing44["DeployAppService"]-.->Type click Implementing44 "/api/Statiq.Web.Azure/DeployAppService" Implementing45["SetMetadata"]-.->Type click Implementing45 "/api/Statiq.Core/SetMetadata" Implementing46["MinifyCss"]-.->Type click Implementing46 "/api/Statiq.Minification/MinifyCss" Implementing47["ProcessSidecarFile"]-.->Type click Implementing47 "/api/Statiq.Core/ProcessSidecarFile" Implementing48["MirrorResources"]-.->Type click Implementing48 "/api/Statiq.Core/MirrorResources" Implementing49["ResolveXrefs"]-.->Type click Implementing49 "/api/Statiq.Web.Modules/ResolveXrefs" Implementing50["OptimizeFileName"]-.->Type click Implementing50 "/api/Statiq.Core/OptimizeFileName" Implementing51["FilterDestinations"]-.->Type click Implementing51 "/api/Statiq.Core/FilterDestinations" Implementing52["ExecuteDestinations"]-.->Type click Implementing52 "/api/Statiq.Core/ExecuteDestinations" Implementing53["ParseJson"]-.->Type click Implementing53 "/api/Statiq.Core/ParseJson" Implementing54["ParallelSyncMultiConfigModule"]-.->Type click Implementing54 "/api/Statiq.Common/ParallelSyncMultiConfigModule" Implementing55["AddRtlSupport"]-.->Type click Implementing55 "/api/Statiq.Core/AddRtlSupport" Implementing56["AddContentToMetadata"]-.->Type click Implementing56 "/api/Statiq.Core/AddContentToMetadata" Implementing57["SetDestination"]-.->Type click Implementing57 "/api/Statiq.Core/SetDestination" Implementing58["ThrowExceptionIf"]-.->Type click Implementing58 "/api/Statiq.Core/ThrowExceptionIf" Implementing59["ParentModule"]-.->Type click Implementing59 "/api/Statiq.Common/ParentModule" Implementing60["MakeLinksRootRelative"]-.->Type click Implementing60 "/api/Statiq.Core/MakeLinksRootRelative" Implementing61["ExtractFrontMatter"]-.->Type click Implementing61 "/api/Statiq.Core/ExtractFrontMatter" Implementing62["ReadApi<TClient>"]-.->Type click Implementing62 "/api/Statiq.Core/ReadApi_1" Implementing63["RenderCsvAsMarkdown"]-.->Type click Implementing63 "/api/Statiq.Tables/RenderCsvAsMarkdown" Implementing64["MultiConfigModuleBase"]-.->Type click Implementing64 "/api/Statiq.Common/MultiConfigModuleBase" Implementing65["MinifyXml"]-.->Type click Implementing65 "/api/Statiq.Minification/MinifyXml" Implementing66["WriteFiles"]-.->Type click Implementing66 "/api/Statiq.Core/WriteFiles" Implementing67["PaginateDocuments"]-.->Type click Implementing67 "/api/Statiq.Core/PaginateDocuments" Implementing68["LogMessage"]-.->Type click Implementing68 "/api/Statiq.Core/LogMessage" Implementing69["AddTitle"]-.->Type click Implementing69 "/api/Statiq.Core/AddTitle" Implementing70["DeployGitHubPages"]-.->Type click Implementing70 "/api/Statiq.Web.GitHub/DeployGitHubPages" Implementing71["OrderDocuments"]-.->Type click Implementing71 "/api/Statiq.Core/OrderDocuments" Implementing72["ForEachDocument"]-.->Type click Implementing72 "/api/Statiq.Common/ForEachDocument" Implementing73["ReadCsv"]-.->Type click Implementing73 "/api/Statiq.Tables/ReadCsv" Implementing74["SyncMultiConfigModule"]-.->Type click Implementing74 "/api/Statiq.Common/SyncMultiConfigModule" Implementing75["EscapeHtml"]-.->Type click Implementing75 "/api/Statiq.Core/EscapeHtml" Implementing76["FlattenTree"]-.->Type click Implementing76 "/api/Statiq.Core/FlattenTree" Implementing77["ReadXml"]-.->Type click Implementing77 "/api/Statiq.Core/ReadXml" Implementing78["AppendContent"]-.->Type click Implementing78 "/api/Statiq.Core/AppendContent" Implementing79["ConcatDocuments"]-.->Type click Implementing79 "/api/Statiq.Core/ConcatDocuments" Implementing80["GenerateJson"]-.->Type click Implementing80 "/api/Statiq.Core/GenerateJson" Implementing81["MergeContent"]-.->Type click Implementing81 "/api/Statiq.Core/MergeContent" Implementing82["ZipDirectory"]-.->Type click Implementing82 "/api/Statiq.Core/ZipDirectory" Implementing83["HighlightCode"]-.->Type click Implementing83 "/api/Statiq.Highlight/HighlightCode" Implementing84["InsertHtml"]-.->Type click Implementing84 "/api/Statiq.Core/InsertHtml" Implementing85["TransformXslt"]-.->Type click Implementing85 "/api/Statiq.Core/TransformXslt" Implementing86["MinifyXhtml"]-.->Type click Implementing86 "/api/Statiq.Minification/MinifyXhtml" Implementing87["GenerateSitemap"]-.->Type click Implementing87 "/api/Statiq.Core/GenerateSitemap" Implementing88["CopyFiles"]-.->Type click Implementing88 "/api/Statiq.Core/CopyFiles" Implementing89["MutateImage"]-.->Type click Implementing89 "/api/Statiq.Images/MutateImage" Implementing90["GenerateFeeds"]-.->Type click Implementing90 "/api/Statiq.Feeds/GenerateFeeds" Implementing91["ConvertExcelToCsv"]-.->Type click Implementing91 "/api/Statiq.Tables/ConvertExcelToCsv" Implementing92["StartProcess"]-.->Type click Implementing92 "/api/Statiq.Core/StartProcess" Implementing93["ReadYouTube"]-.->Type click Implementing93 "/api/Statiq.YouTube/ReadYouTube" Implementing94["RemoveTreePlaceholders"]-.->Type click Implementing94 "/api/Statiq.Core/RemoveTreePlaceholders" Implementing95["RetryModules"]-.->Type click Implementing95 "/api/Statiq.Core/RetryModules" Implementing96["AddIndexes"]-.->Type click Implementing96 "/api/Statiq.Core/AddIndexes" Implementing97["SyncParentModule"]-.->Type click Implementing97 "/api/Statiq.Common/SyncParentModule" Implementing98["PrependContent"]-.->Type click Implementing98 "/api/Statiq.Core/PrependContent" Implementing99["ProcessShortcodes"]-.->Type click Implementing99 "/api/Statiq.Core/ProcessShortcodes" Implementing100["ReadFiles"]-.->Type click Implementing100 "/api/Statiq.Core/ReadFiles" Implementing101["ParallelModule"]-.->Type click Implementing101 "/api/Statiq.Common/ParallelModule" Implementing102["QueryHtml"]-.->Type click Implementing102 "/api/Statiq.Core/QueryHtml" Implementing103["JoinDocuments"]-.->Type click Implementing103 "/api/Statiq.Core/JoinDocuments" Implementing104["ReplaceInContent"]-.->Type click Implementing104 "/api/Statiq.Core/ReplaceInContent" Implementing105["Module"]-.->Type click Implementing105 "/api/Statiq.Common/Module" Implementing106["SetContent"]-.->Type click Implementing106 "/api/Statiq.Core/SetContent" Implementing107["GroupDocuments"]-.->Type click Implementing107 "/api/Statiq.Core/GroupDocuments" Implementing108["RenderContentProcessTemplates"]-.->Type click Implementing108 "/api/Statiq.Web.Modules/RenderContentProcessTemplates" Implementing109["ParallelConfigModule<TValue>"]-.->Type click Implementing109 "/api/Statiq.Common/ParallelConfigModule_1" Implementing110["AddDocumentsToMetadata"]-.->Type click Implementing110 "/api/Statiq.Core/AddDocumentsToMetadata" Implementing111["ClearDocuments"]-.->Type click Implementing111 "/api/Statiq.Core/ClearDocuments" Implementing112["FilterSources"]-.->Type click Implementing112 "/api/Statiq.Core/FilterSources" Implementing113["MakeLinksAbsolute"]-.->Type click Implementing113 "/api/Statiq.Core/MakeLinksAbsolute" Implementing114["ReadApplicationInput"]-.->Type click Implementing114 "/api/Statiq.Core/ReadApplicationInput" Implementing115["GatherHeadings"]-.->Type click Implementing115 "/api/Statiq.Core/GatherHeadings" Implementing116["RenderHandlebars"]-.->Type click Implementing116 "/api/Statiq.Handlebars/RenderHandlebars" Implementing117["SyncChildDocumentsModule"]-.->Type click Implementing117 "/api/Statiq.Common/SyncChildDocumentsModule" Implementing118["ParallelMultiConfigModule"]-.->Type click Implementing118 "/api/Statiq.Common/ParallelMultiConfigModule" Implementing119["ExecuteBranch"]-.->Type click Implementing119 "/api/Statiq.Core/ExecuteBranch" Implementing120["ReadWeb"]-.->Type click Implementing120 "/api/Statiq.Core/ReadWeb" Implementing121["ReplaceDocuments"]-.->Type click Implementing121 "/api/Statiq.Core/ReplaceDocuments" Implementing122["ValidateMetadata<T>"]-.->Type click Implementing122 "/api/Statiq.Core/ValidateMetadata_1" Implementing123["MergeDocuments"]-.->Type click Implementing123 "/api/Statiq.Core/MergeDocuments" Implementing124["MinifyHtml"]-.->Type click Implementing124 "/api/Statiq.Minification/MinifyHtml" Implementing125["GenerateRedirects"]-.->Type click Implementing125 "/api/Statiq.Core/GenerateRedirects" Implementing126["ReadGitHub"]-.->Type click Implementing126 "/api/Statiq.Web.GitHub/ReadGitHub" Implementing127["GenerateLunrIndex"]-.->Type click Implementing127 "/api/Statiq.Lunr/GenerateLunrIndex" Implementing128["ChildDocumentsModule"]-.->Type click Implementing128 "/api/Statiq.Common/ChildDocumentsModule" Implementing129["ExecuteSources"]-.->Type click Implementing129 "/api/Statiq.Core/ExecuteSources" Implementing130["GatherDocuments"]-.->Type click Implementing130 "/api/Statiq.Testing/GatherDocuments" Implementing131["AnalyzeCSharp"]-.->Type click Implementing131 "/api/Statiq.CodeAnalysis/AnalyzeCSharp" Implementing132["ReadWorkspace"]-.->Type click Implementing132 "/api/Statiq.CodeAnalysis/ReadWorkspace" Implementing133["GetPipelineDocuments"]-.->Type click Implementing133 "/api/Statiq.Web.Modules/GetPipelineDocuments" Implementing134["GenerateCloudSearchData"]-.->Type click Implementing134 "/api/Statiq.Web.Aws/GenerateCloudSearchData" Implementing135["ReadExcel"]-.->Type click Implementing135 "/api/Statiq.Tables/ReadExcel" Implementing136["ApplyDirectoryMetadata"]-.->Type click Implementing136 "/api/Statiq.Web.Modules/ApplyDirectoryMetadata" Implementing137["RenderCsvAsHtml"]-.->Type click Implementing137 "/api/Statiq.Tables/RenderCsvAsHtml" Implementing138["CreateTree"]-.->Type click Implementing138 "/api/Statiq.Core/CreateTree" Implementing139["ForAllDocuments"]-.->Type click Implementing139 "/api/Statiq.Common/ForAllDocuments"

Syntax

public interface IModule

Remarks

If the module implements IDisposable, System.IDisposable.Dispose will be called when the engine is disposed (I.e., on application exit).

Methods

Name Return Value Summary
ExecuteAsync(IExecutionContext) Task<IEnumerable<IDocument>>
This should not be called directly, instead call IExecutionContext.Execute() if you need to execute a module from within another module.

Extension Methods