32 lines
963 B
C#
32 lines
963 B
C#
|
using System;
|
||
|
|
||
|
using Markdig.Helpers;
|
||
|
|
||
|
namespace MfGames.Markdown.Extensions;
|
||
|
|
||
|
public class WikiLinkOptions
|
||
|
{
|
||
|
public WikiLinkOptions()
|
||
|
{
|
||
|
this.GetUrl = a => a;
|
||
|
this.IsTrailingLink = a => a.IsAlpha() || a == '\'';
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// The callback to determine the link from the given wiki link. This does
|
||
|
/// not include trailing additions or use the label (e.g., `(ab|cd)` would
|
||
|
/// get `ab` as the parameters of this function.
|
||
|
/// </summary>
|
||
|
public Func<string, string> GetUrl { get; set; }
|
||
|
|
||
|
/// <summary>
|
||
|
/// <para>
|
||
|
/// A callback to determine if the text after the link should be merged
|
||
|
/// with the link label. This allows links such as [[Dale]]'s to be turned
|
||
|
/// into "Dale's" but pointing to "Dale" as a page.
|
||
|
/// </para>
|
||
|
/// <para>The default is to include any character or the apostrophe.</para>
|
||
|
/// </summary>
|
||
|
public Func<char, bool> IsTrailingLink { get; set; }
|
||
|
}
|