This module is smart enough to only look in specified HTML elements (p by default). You can supply an alternate query selector to narrow the search scope to different container elements or to those elements that contain (or don't contain) a CSS class, etc. It also won't generate an HTML link if the replacement text is already found in another link.
Note that because this module parses the document content as standards-compliant HTML and outputs the formatted post-parsed DOM, you should only place this module after all other template processing has been performed.
Package
#n Wyam.Html
Usage
-
AutoLink()
Creates the module without any initial mappings. Use
AddLink(...)
to add mappings with fluent methods. -
AutoLink(ContextConfig links)
Specifies a dictionary of link mappings given an
Wyam.Common.Execution.IExecutionContext
. The return value is expected to be aIDictionary<string, string>
. The keys specify strings to search for in the HTML content and the values specify what should be placed in thehref
attribute. This uses the same link mappings for all input documents.links
A delegate that returns a dictionary of link mappings.
-
AutoLink(DocumentConfig links)
Specifies a dictionary of link mappings given an
AngleSharp.Dom.IDocument
andWyam.Common.Execution.IExecutionContext
. The return value is expected to be aIDictionary<string, string>
. The keys specify strings to search for in the HTML content and the values specify what should be placed in thehref
attribute. This allows you to specify a different mapping for each input document.links
A delegate that returns a dictionary of link mappings.
-
AutoLink(IDictionary<string, string> links)
Specifies a dictionary of link mappings. The keys specify strings to search for in the HTML content and the values specify what should be placed in the
href
attribute. This uses the same link mappings for all input documents.links
A dictionary of link mappings.
Fluent Methods
Chain these methods together after the constructor to modify behavior.
-
WithEndWordSeparators(params char[] endWordSeparators)
Adds additional end word separator characters when limiting matches to whole words only. These additional characters are in addition to the default of splitting words at white space.
endWordSeparators
Additional word separators that should be considered for the end of a word.
-
WithLink(string text, string link)
Adds an additional link to the mapping. This can be used whether or not you specify a mapping in the constructor.
text
The text to search for.
link
The link to insert.
-
WithMatchOnlyWholeWord(bool matchOnlyWholeWord = true)
Forces the string search to only consider whole words (it will not add a link in the middle of a word). By default whole words are determined by testing for white space.
matchOnlyWholeWord
If set to
true
the module will only insert links at word boundaries.
-
WithQuerySelector(string querySelector)
Allows you to specify an alternate query selector.
querySelector
The query selector to use.
-
WithStartWordSeparators(params char[] startWordSeparators)
Adds additional start word separator characters when limiting matches to whole words only. These additional characters are in addition to the default of splitting words at white space.
startWordSeparators
Additional word separators that should be considered for the start of a word.
-
WithWordSeparators(params char[] wordSeparators)
Adds additional word separator characters when limiting matches to whole words only. These additional characters are in addition to the default of splitting words at white space.
wordSeparators
Additional word separators that should be considered for the start and end of a word.