screwturn-4/PluginFramework/IFormatterProvider.cs
2009-09-30 13:47:13 +00:00

70 lines
2 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace ScrewTurn.Wiki.PluginFramework {
/// <summary>
/// It is the interface that must be implemented in order to create a custom Formatter Provider for ScrewTurn Wiki.
/// </summary>
public interface IFormatterProviderV30 : IProviderV30 {
/// <summary>
/// Specifies whether or not to execute Phase 1.
/// </summary>
bool PerformPhase1 { get; }
/// <summary>
/// Specifies whether or not to execute Phase 2.
/// </summary>
bool PerformPhase2 { get; }
/// <summary>
/// Specifies whether or not to execute Phase 3.
/// </summary>
bool PerformPhase3 { get; }
/// <summary>
/// Gets the execution priority of the provider (0 lowest, 100 highest).
/// </summary>
int ExecutionPriority { get; }
/// <summary>
/// Performs a Formatting phase.
/// </summary>
/// <param name="raw">The raw content to Format.</param>
/// <param name="context">The Context information.</param>
/// <param name="phase">The Phase.</param>
/// <returns>The Formatted content.</returns>
string Format(string raw, ContextInformation context, FormattingPhase phase);
/// <summary>
/// Prepares the title of an item for display (always during phase 3).
/// </summary>
/// <param name="title">The input title.</param>
/// <param name="context">The context information.</param>
/// <returns>The prepared title (no markup allowed).</returns>
string PrepareTitle(string title, ContextInformation context);
}
/// <summary>
/// Enumerates formatting Phases.
/// </summary>
public enum FormattingPhase {
/// <summary>
/// Phase 1, performed before the internal formatting step.
/// </summary>
Phase1,
/// <summary>
/// Phase 2, performed after the internal formatting step.
/// </summary>
Phase2,
/// <summary>
/// Phase 3, performed before sending the page content to the client.
/// </summary>
Phase3
}
}