Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand

Downloads:

7,933

Downloads of v 2.2.9:

759

Last Update:

11 Oct 2019

Package Maintainer(s):

Software Author(s):

  • Dave Glick

Tags:

wyam static staticcontent staticsite blog blogengine

Wyam

  • 1
  • 2
  • 3

2.2.9 | Updated: 11 Oct 2019

Downloads:

7,933

Downloads of v 2.2.9:

759

Maintainer(s):

Software Author(s):

  • Dave Glick

Wyam 2.2.9

Legal Disclaimer: Neither this package nor Chocolatey Software, Inc. are affiliated with or endorsed by Dave Glick. The inclusion of Dave Glick trademark(s), if any, upon this webpage is solely to identify Dave Glick goods or services and not for commercial purposes.

  • 1
  • 2
  • 3

All Checks are Passing

3 Passing Tests


Validation Testing Passed


Verification Testing Passed

Details

Scan Testing Successful:

No detections found in any package files

Details
Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

To install Wyam, run the following command from the command line or from PowerShell:

>

To upgrade Wyam, run the following command from the command line or from PowerShell:

>

To uninstall Wyam, run the following command from the command line or from PowerShell:

>

Deployment Method:

NOTE

This applies to both open source and commercial editions of Chocolatey.

1. Enter Your Internal Repository Url

(this should look similar to https://community.chocolatey.org/api/v2/)


2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://community.chocolatey.org/api/v2/. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Copy Your Script

choco upgrade wyam -y --source="'INTERNAL REPO URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:


choco upgrade wyam -y --source="'INTERNAL REPO URL'" 
$exitCode = $LASTEXITCODE

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0
}

Exit $exitCode

- name: Install wyam
  win_chocolatey:
    name: wyam
    version: '2.2.9'
    source: INTERNAL REPO URL
    state: present

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.


chocolatey_package 'wyam' do
  action    :install
  source   'INTERNAL REPO URL'
  version  '2.2.9'
end

See docs at https://docs.chef.io/resource_chocolatey_package.html.


cChocoPackageInstaller wyam
{
    Name     = "wyam"
    Version  = "2.2.9"
    Source   = "INTERNAL REPO URL"
}

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.


package { 'wyam':
  ensure   => '2.2.9',
  provider => 'chocolatey',
  source   => 'INTERNAL REPO URL',
}

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.


4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

Package Approved

This package was approved as a trusted package on 15 Nov 2024.

Description

Wyam is a simple to use, highly modular, and extremely configurable static content generator. This is a tools package that contains the Wyam CLI.


AdvancedStringBuilder.dll
md5: D7E4771BF385F74F7558F687EB2AC9D3 | sha1: 2D0F29F5B16EFDCE2EB5064A2411F4EA76DC3AF0 | sha256: E26665301F4BE30FFD2D8D4996258DB8B0CD868A3A104556606E2E8751B36E9C | sha512: 12F04BE9C0F97AB6BD036B18D967ACFC354F6EB9DB4E92D5E58819251CF00B79EB4E53236486C13B009D781A9444CFD79032C1BE79438265EE8CB0D791390228
ConcurrentCollections.dll
md5: A8F7F38E69AD1F1342C2933D8940D3BB | sha1: D3242226965300EAD0E86685387E5C3F671EE489 | sha256: AA5E84557465A3F450CAE8D96C21BF31F7ADD5BB5446CD7B1C8D97E5BB2ED478 | sha512: ED4D46F5F40E416D1D8B1E78515C2500018A06E6892312E40FA8389D284E20B3A4F8C723196E86CC9E01DB762991E8039E04C77726F4D1BFC7669C5764865673
cs\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: 33E043E2F00E65F5F21C8D03CFF78652 | sha1: ED6E71C48DE859C9D4D96C5070E02D0103341C3E | sha256: 3BBF2ECD0DF1063ED59F4D0D30B8E2A229BC1B6B5A6A7585D9948ECB0DAD8084 | sha512: 2F8C66039F3D2153D7AEEEC2754F7A5EB20E89CB69B009AF60694A13E6DA438196A7C6D52ECED892304D262642D262FBDED3E260B325B60DC3D171394705E380
cs\Microsoft.CodeAnalysis.resources.dll
md5: 74AE93C3915F0AEC7DB9659B2969D42C | sha1: 96EAE4529E00B2A49DAC261119A43B766E17F963 | sha256: B0496B42A8CC8988D546456ED0C8DE2030B62268856437A8BD83170E9A27F58D | sha512: FCCF9B27C8ADEB8C7A32FEE04285BB332766A441D641F6A55A44C2D14F34034EDAB76EF29F524BB2C0B93E0CE6751B4E330480075C6DA23798D4295937AA1A03
de\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: 6D1E57014907223B2292BC274A4D83CA | sha1: F90E666A9C797E81E7CBA06142D37A8541A6819E | sha256: 68042701565FBCD767073927ECC67B9A8DF82887A2361D6D682BAEE7C7618B1A | sha512: 19171D3506A0F646E8A3ADE99973FA2F8AF9FA07E4C0D5A12271FB4DEE2CF11DAE039213D38E68E96A216FD7AD728AB7FFC2AD03C9C9EA63FC1E19243D45DC05
de\Microsoft.CodeAnalysis.resources.dll
md5: 1A742A916A53AE42EE817829956D1541 | sha1: 43A6B79D0A75101FF9E1349646C12A2573338C64 | sha256: D7DDF242B00A6199DD24C8794E83C5E875489F905F7E7C546BF8E97EBC335CD8 | sha512: B38D34542A2017B9F74DC2B8F97B7BD5F08FF9AD5E2938303D83FA7D3DCD1F55E6B25EF31F91173FBBD6F1B9827CBE248DEFA57EE747BD585E223F0B527130FC
es\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: 8AF80A66ACAE83B72D2523991BBFD5D5 | sha1: 3F2C79FE0677F1BC29AD2990EB52D2002FEF74AC | sha256: 93FE7CC0045A3086AC8095423C4C4C7115C05643C7CD6020C4C18BE815067AE6 | sha512: 62544D6E4577CC18359E16F1F9D55041955EFDD4E5393BEAC30FFF528A021FDF8E02FEC875620FBD3DDD58F8E3B4A0DEA557F75F333FC746E09443D59385F34C
es\Microsoft.CodeAnalysis.resources.dll
md5: C1A3C24FC2EFCFB03EDEB2FBF36DF44A | sha1: 7B2A4D666685EAD2B78C840F7803F02518B86B82 | sha256: AC6CFA17526E41FFBE76EA1AAF07BD574089C224FB36FF0E74CD03C927A99906 | sha512: E0E781740ADF8ED37E80B66B8F541F435E1FDB27586D351769B4072E28657ACCA3DAC30224008AE18EF93383BFD92F70752D10B3095242685306405DCBC238B1
fr\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: 2D629353ECD20C4DE5C7874E1E75B518 | sha1: AC7AF594BDA704F934B1C45C25779971FED621A7 | sha256: E8E86A0E0BAC56545E7234296617455DB4CC2F5EB6D5079441464A6C0345CE6D | sha512: B7451F9E5D58FD383B3423414E2AC968D16F09B54BC6055A10A6402A3077B43A33A2731BCEC5FD510C15784D251C533C05C555871CE026A1B32DC6654044D1E4
fr\Microsoft.CodeAnalysis.resources.dll
md5: A8BE60925E28879F018FA3FF0DE2659D | sha1: 293A22C87098EEB7F67FC7881BDB8F81F865E2F3 | sha256: 165932ED039F6CC80444CD98C16B4972D13B24F97F24FF429F4ECB52239304F3 | sha512: 4C2C0B81027CABA0291196224058C27EB55E17CF35F34438BC2681A93D631F396D678A6BD34F6DF13744EC5F40344830407677A835DB41745643199CC05350EE
it\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: 9BD1A4BC355630219E53577D6D89D9E1 | sha1: B76D128E2DB66D84FA049335A86997BB9823AD71 | sha256: 29927EFA59AAC3CE1FB09DF4F3B68CACE6AFF1D7A112534DD22F80DDCA5DDBEE | sha512: 38E8373B44B649DFAB051BFF273EF3F28A0278EE6C8D17A50ABA62BB4E5057C8B8046E9EAA5B25B52337246B233614D191AEB2747ADC810571A62A6EF4A15107
it\Microsoft.CodeAnalysis.resources.dll
md5: B0B84C7E2FBFB25F6B733C2BA50AB123 | sha1: 0B859DAB92306AE87291D9D4EE2DEF47AE7F479D | sha256: 5E2A956003BA357BA9D172AEF2491FD61182A9A8A4BDEA8D819CE65EC7851B9F | sha512: CAD1BEFDB90503D93BE2FE74D620A62E61C94DEFBA5237F3A501E6E66B81800241524431500FB9560184A73771357ED8A7268CEF39704C0544DB7C0DB5C6078E
ja\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: 2374F367422F1AB950A3F776829F864C | sha1: 5394F755E2ACFB453AB6BBFE96FBE00D2C470270 | sha256: F3216D72ADD562E2E5168303A946D0F6DC4DB1BF4AAAFBD44E684C903F0AA704 | sha512: 20672DF19810ABB0FDF6B41CA736E0A5D15DF24B2C086D485240A7A7D5EFBF024AA56A6015A2390BBD9184F10BC1B9A57857BE8927F1236059B9BE27E57EB519
ja\Microsoft.CodeAnalysis.resources.dll
md5: E96E002914E1E18A4490277F9AEECE13 | sha1: 537CFB7F0918B633F173B33048C7D032C919E9C2 | sha256: A6A61088A2AF2C481311F12D9EDBC8253DE0A98B6A53C9F9B0999F18AF730EC6 | sha512: 8DDF2FC7428423F9D2FBA175CA730BC96CF9F14DAE9F4773C680E1D89DBD7CD1AC37FA5DB7BC400ABA15E715F1D56D25768D0212B1801AD9E699820A533D43DC
JavaScriptEngineSwitcher.Core.dll
md5: 4E37B4FFAB20829DFEF964C18EFBBE3C | sha1: 860444746A2A61930413344276AC1FC20EB4C2DA | sha256: 0EADC430B222C5AFF667642C02ECE99EAA8B473783F0A076ED25D4E5B404F3D3 | sha512: 26ED9662EE71197A40F660D4A4B4F89DE01868671E6320F937E7D4F6B192D300ED30F125B4F90C0097DAC5D1CE916EBE46871DC95C681523E8B7D272499AC36E
JavaScriptEngineSwitcher.Jint.dll
md5: 459DA5889D3ABCC6B93D669051B11BB7 | sha1: E80CB0957F29794AC40287402F9E3AF611F534BD | sha256: AE45CAD848C366D585ED5983F0F9E8179CAD5CF363B39EC17BB6090C921CA822 | sha512: F79D8034693149E968E259284F6937254CA9A19B045E998D9D13AC704DE6B1DF631BFE8A22EDDAC3CBAC2D1936E512306500D05F42936BAA87C16D81B6B9BFB0
Jint.dll
md5: BE1052AA302EA2E440F47E4809670721 | sha1: EF016C66CA62E1AF8E90418B18A2756824412B41 | sha256: 3BF1E56D928105FDBD3897DD4EC20A5B51D6F03F72C3DB741332B0A08A448E6D | sha512: F48941D1C0EC90D54B2EB04FC17FCFD9FD2690309C8C0C245FA51CC1E967123C349E15A6E53702C90A6C26FE6108CC6219759179F13F6DC4ED6EE0C5B16FCE22
JSPool.dll
md5: FF88F6975E6A3385FEA64F1637F42C0A | sha1: 42A5171972D20AA5C609940FAABAFD04FFA302DC | sha256: E64FD17423C59D417C235C3CD608D48658168850054915F671534C639BB98E74 | sha512: 88923016C9B7467A6BE68CCBF154ACF6EA3299967782E2A3B560DBE074AA196F5596F3B393F7B18D2E6CCFC6294B401B49D92822BE5B53A61B1BA707D6ABABD5
ko\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: 19060956C41D41541C2D02632C5DC911 | sha1: E886C9F476F2A04F8BBEC1ABB155175D8167CB95 | sha256: A4B4D58660D275E68AF9F177F079D6946838792A36A02B0A7981E4A4E2B455E6 | sha512: A77640221E8A1E71E83C7802EBFA34AA63519976BC8843905A108614C718BE2C6FB9AD43FFF4F6A482E5C9C942A6216F827B6115037FBED6A582B3A7AD25B174
ko\Microsoft.CodeAnalysis.resources.dll
md5: FA8C63CA9ED60102EF3454841B479F74 | sha1: 01B4A03E59DE281C32E408F4AD56F20F99D6A4B0 | sha256: CCF11C1F9445A9B24AD2C162836F03DF93D03699BFC02EAA17D7B8FEBACB36EB | sha512: ABC4935E20F40E720204510A72C8770E4316473000A5F4922F517165DA44673B6C5D280BA58E393FC6834AAC28046B3BBFEF891451C6C0A246D7293F48C04DF6
LICENSE
 
Microsoft.AspNetCore.Connections.Abstractions.dll
md5: BE080D78268EBDD43CFEF95412BD705F | sha1: EABBB959A1D7674AAB5C75D23DB2DC52C74C534C | sha256: ABCCE1D4CFD958657467E6D9FB750BB4E89765447A65719734C5AA91934EB5A2 | sha512: 618801D2CE1D4D009C4267CBC1A3812611BDB3BE11639FFD7FC9C72D3E8549B1E347FAD809742622E92117E8BB3F4EBB8046C591C9C21760DB3C23116140D3BA
Microsoft.AspNetCore.Hosting.Abstractions.dll
md5: DF7455BFAE10528B3C0EFBCBC9430FFE | sha1: 2A5DBA430177F47B784DDD0420F09EB0CEDF30D7 | sha256: C27304E9639C8C4114230B732C4CFBC7683DA5C505682A21B080A4D4E70A3B05 | sha512: 16204A405AC9123FF141CA3EDF2CE0E047AF2159DE70BED65E12FBFD826560D0DED64E51D8030A81DCB9082E414077DAC6922564E6C650F102555C69B43A4AE8
Microsoft.AspNetCore.Hosting.dll
md5: 2C2E7243AB00A2799040FE2F65469DA3 | sha1: D29AF960C231D6D839D56A045FD429CC9B910F43 | sha256: 2EA2C480B3F08B569D06B4BB9767ED0EC2FF30C5E5A52D1F8AFAF991FEF6FB38 | sha512: F5A1DAC20EE41F0588CBACF2B6C72C1EAF4FF161B291D86A6C461BB477C9997CF0ED37B5747782C7F95818258B6DB4696AD8650B443B8A781046F19939455CC6
Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
md5: E14600D57CB30E79E732FC22BE8D65B5 | sha1: 8431C6430EED9DA1CC2D60963936FF363E8D5D27 | sha256: 488A30010D048119D9C1F5F95C6A16E2390A1F20EECC9D03E9D18E0A616C0DC9 | sha512: E821E6C2BC1F5D872A75CEF221BDB58FBE7DA5BD48109018ED900B5A2CCF4E5D90730008AEAE3290227AFBEF8EF8B2330E81C81DD8F404AFB6B17478300D94D8
Microsoft.AspNetCore.Http.Abstractions.dll
md5: FBF72E9E9DA3E11E0E9DE4C1315A2E16 | sha1: 404147BC64D9B7BE673E18D2DA2C2E5A48361B5D | sha256: 5C82E7E6048E0EF12042FB06AB38DE3EE94049D5A887B24FA9AA140559B72D78 | sha512: 1830094FAF9B8D0607319BEB049065DCFAC272FE9BDED8C49329D742D1FC6C63B9F05342FAE45AC24A48FAAA14BFD65E96A8B3D3C37325D6CB74777194CC0BC8
Microsoft.AspNetCore.Http.dll
md5: 9DB523DEBE6BBC91FE022B0C948F53C3 | sha1: D47DD1E76EBDCFBA5B0931C5642D2C7024D6754F | sha256: 2AFD46BCE13D2BB3C78B96C0869DCBB835885CE423C1709B98761EC4AE072D39 | sha512: E38D3D20F2493D707613D69FDDA6256D58EDABACF3642F88790C2A0E09B53D252A37965EDD01B5A96C0F240DA3140D324C6F4900D0D6508FB415BF93E2D34142
Microsoft.AspNetCore.Http.Extensions.dll
md5: 8E9FCB2B078ACBE4FED27245A1BA526C | sha1: 86315065D0A4E106FDE66C387252D17AC1E922FF | sha256: 44501C66440614E253A8D1960C2115FB2958D44D98E52C0693163AEE6C3EE488 | sha512: B9CF8CFAEB8094C6059C2A0C5E21A1BD11C069B32A6E99B0EF6BD470242F1C30C8DBDE87E4C86EC51011DE294EA9E200CF2BF66F92DEF99988E4F0561176B8B0
Microsoft.AspNetCore.Http.Features.dll
md5: 4F88F941BA9B07619853D1A08E7DC18D | sha1: F40A26A766D5FEAE7D636854C0C5D92B8B443B39 | sha256: 96ACB3F4071E8DA3A1BAD8D913B124EA528483FA1A3B6E8499254CD43C2511F8 | sha512: DD24AFEF361EDC06B24E8F7806D45E49EDDF075CF808DAEB38F020BDA473AC217BC4D1F930CCD8C0021DFAA6A930C6F2EF2638074D0EAD092C4CCFA63B4E92E0
Microsoft.AspNetCore.Owin.dll
md5: 17D69CEAA92679BCCA323A9D9EE6D4D0 | sha1: F893B9DDB5EE27AAB3C6058AE587B40D1588F2FB | sha256: 235EB1F2D2ED1D78A71F7D9CAF8CCEBF2E22EAC7826D211E525FCA640B4547D3 | sha512: A8A1FD10E9801FB1CD8245C4AE53CC3A69EDFF344D46FE29D815FCC96C99C0CE8347AC5BE066958784B2AA5836422BE0D4DA26BFAE97E0CD86E4AF6B3A317489
Microsoft.AspNetCore.Server.Kestrel.Core.dll
md5: 675D2CF91A6333EF1D63D701ADE3D815 | sha1: 48276A271A52370EE60F3AF5C6EF1EDDD13C77B9 | sha256: 1E151678F3FAF6CA773E71154CD5036EC13B9894447B35E6CE8B4CFAF50C408E | sha512: 6E0E2FC8515A26D88D5A3C4A240191C2841C71E86C5A81B6A49B0A668208970A81AB40BB0E738B5DF59C6C67611B036CFF8CEB23C907B01343AA3FB657963A07
Microsoft.AspNetCore.Server.Kestrel.dll
md5: 5A9EDF4CCAB4803993BEEC1270ABF700 | sha1: 7B15D5C28B3ED194CF37CB73EA591EB783BC3C30 | sha256: 64FBF16B5B933427BBC67E31467A685A19AF26A9FAA4AE691268229D2871A2D6 | sha512: 27F5D3F26013FC816C66969A57FC23E5B91947F9E084D943F1C1ABF1181479DDEFF3001E3009350B42DA00AAEDEA81F5B13120152BFA9597C601CA515E08A512
Microsoft.AspNetCore.Server.Kestrel.Https.dll
md5: 66318B9D1E0A7839DC7E2D36FB43EFD3 | sha1: AA4670612020BDCB5419FB0D62513E05525C6D9A | sha256: A69EC246214E49B555F31513A091C018C475FC950047566DF5DDA156910ACB0F | sha512: 377BE1D4D8F66DBC0181F6A8C370E7C8B8A65F5166C504907E9A1B9C1A0028AFE0CA5030460A1C8123BCDC84F034F4E2BC1A45DA2D6921ED5EA7F23AB568589F
Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll
md5: 372744F7EB4A7F7CDB3572979E07C13D | sha1: FE1582A6C21E328E06C8BAB57D90FB66871BC168 | sha256: DF0DA5F0F3490D0B50023397B493A1A9A4AD7352D63091C0F2B3F233610E87B7 | sha512: 1ADCACFD08F1AAAEA758E9D170CC129DE087A1512EB3037ADB4CF5628C20920ABFE58ECF75ADFCF5EF395B79CA6402BDD2720AE50A4C89A74F98A2E8E99FC9FB
Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll
md5: 524682C38059982567BB8C8DC1D60D89 | sha1: FF8A4EE0A343A9604610464CA374728E8BA5B5A5 | sha256: 62A76E15A7029339D1ED41548BB1F9DCADF1C16D90E3D71ADA494AFAF8C3B86A | sha512: 90253F4C166A42EB6A1E706BD897B4C265B0DFB4DF18B0E978D9D79F088DE9CB563FFF673957534D4E7A009F742B1AEB5F02C571BEFE8C1A4E43C1B27ED20E9E
Microsoft.AspNetCore.StaticFiles.dll
md5: 724F7770475AC347908AEACC79C3C4DC | sha1: 8324768EFA038BECA28D5A7EDDDC5187334DD1AB | sha256: 6D32A19A64C1944A7C113733A95C5B4D572B9BBAC14DD42B06AD14E4D97A46DD | sha512: 8729B52D61460775C8E9F97A7116D6BAD3C0277EFA2128D9B3D07FAD481B60AC6E97B027F7D9BBDA9577CC9912DF051B85840BA68108E5AE768C75D715E4E023
Microsoft.AspNetCore.WebSockets.dll
md5: 0A3EF4EEA9FCC309D63A7FA94C2395A4 | sha1: CD64ED1F75E072FBB6F37796FA8AFFE267AA14FF | sha256: 4A8E9DD156D660ABA2EE9D5AE6F666DC3689B870A12705D2F7D1F390B1D89233 | sha512: 053A1C071B4DF7C5328FB6F918B5925D2573FA78C96B97F25D6904D478D93A266C2989DDE5EFF6C55805A8ED9D0560377F1BBE27E168005251DEB152ABF657ED
Microsoft.AspNetCore.WebUtilities.dll
md5: 1C724FD8A8CC62D82803225C785D1676 | sha1: 8A07E04EA0FBFAA78E4964CD40C4F5E1FBB3ACA9 | sha256: E57AE306023413521E4486A83753ECF5E8B10EB69B2C286E5BAA2EA6DDA03747 | sha512: 87F792FE3DD9AC835A9BCF3687466DF2E61DFC36C5096A55B5619FDDCD6BC034D467D95D27DAD3C86EB11F1EC2F2BDA56E4D35B310025D8A9D57ABB97D784292
Microsoft.CodeAnalysis.CSharp.dll
md5: 543AB2DA5F776BFA3FC97B2549BCEC18 | sha1: C87E085BDC36759E3797C1E213146D31701B8026 | sha256: A8DA63084E18D227A88F66AF443541DBB1805B02DC9C11ADB632662665850BD1 | sha512: D9EEE25D03EB7F26B35481CB1D6A0249ACAD1306CCA4D1E59EE9BC1EC53B040B41A291EB795E95608C1E2954D44086537C83C75AC28B39236DF341C2605ADABD
Microsoft.CodeAnalysis.dll
md5: B64D9FFBC41104D27816B51640D30E51 | sha1: 05654A9BE5016D31020B0C5E826F121DF1D7E9D0 | sha256: 0192C7052CC2FB93E2C8696675E6DC3A43C96A2205148E94382C0DD5A77BD982 | sha512: E29580DD8CD9477E8FB167877A60F33299E971A60CB21967DA57FDEA7403496D41CE01A917F0D53377124AE84B900ACCFEC2BDC27EB5288824705017081F65C4
Microsoft.Extensions.Configuration.Abstractions.dll
md5: 2A09A26748FDA34CE32AD54C916BBCC2 | sha1: 0D9C96C865A95A2D5ADBC223E82191D0252C1D73 | sha256: 4CB5A4F1CEDFB8FDEE5DE6DE23B0D29AC86D9CE24DABFB9924146C7D70F3B78D | sha512: A02DE54BDDB33DDFE02E511BAD4D1749E023C8E6239423FEFC34C08C2DB3150987E0535275F5A2648D244BC67DBA09CB10C0F44F702AD5BC19A506B34322029B
Microsoft.Extensions.Configuration.Binder.dll
md5: A384D13552220527A419E02FC4224EB5 | sha1: EDF41CE9CDC0315E782E01F011E9868A788D22A1 | sha256: 43CAE0256A8BC4FD190B8397862A852AB1016FDC0C0ED6AB61C999A1A7396FBF | sha512: D21858FF6C47C680BBA7B6FAB44D789B4B45FBA118B12D1D4C16E8851EC79EE1EC9C55302B880AD7E8DBD9103C3D5685CFEB896E5BDA30FA3DAB2161FDEAC6D5
Microsoft.Extensions.Configuration.dll
md5: BC350F611503F4327B7A626E163F857D | sha1: E058E084AEE4F9F9EA730C7743EF5012F2A2C979 | sha256: 3D5D8FDDC11B27573942D1FEBA5D8AC91E2504C82AD489003ACF3E17FDB130EC | sha512: 5DCEF387C788C02CE06DC378524EE8674FB5DDC7796EAF1FEE1728D036968BE23CC73CF3C3298266D9997C50ACA155D04B990B809F07A22B06525DF50F3405DE
Microsoft.Extensions.Configuration.EnvironmentVariables.dll
md5: CA8CF2D428EEC132966F858096D0B2F5 | sha1: 1D54F5D5A7F56E9A495FAE611C1B05E8E6AC1639 | sha256: A6F47747A74E88BEAAA597D26B517F3855D83A6885D0AEEB7CA892A520B94F8E | sha512: 859A4BE642ACB5F0FFF6FD50CFC2CDD15418B9A58D82837381F7F8D882BE5FB19E55E4DEA0B9F3D9800D53B25141AF3B7D844678F8C2683034F04ED0305B498D
Microsoft.Extensions.Configuration.FileExtensions.dll
md5: B2D3E0B839D7F9C2E448C9BE0C208DE5 | sha1: 39F7AD698C042B8B8F59DFA32036E52D27070983 | sha256: ACE39C65491081755DC441805DC139142C3FB19ABD7DF1F58DD17096C087D2CA | sha512: 515897CB3061340D00ADB8AB513153B3EE242114058688F09A8A480D3CE44996BAFDA4E5127DCE6E807DC2F116B31C9BDCDABA90E2086EE078C2D9F9E82375A3
Microsoft.Extensions.DependencyInjection.Abstractions.dll
md5: 04493404156B007522B2A8D623B565E1 | sha1: C15B9681C14D2984946DF6EDEA0E7A44DFC0DC4C | sha256: 901B7C5727F29FA4F55EB2CF9F1A44D15AFD02F1D14103EB08966DE31F5BB12F | sha512: E1CAD2C83621E987832E8C9CC24BE63881376300325EA7CD1730D1CFDB434683F378086A6372A7CB270527724019C9E8732DE1D95E8C8344739B459A616B44CC
Microsoft.Extensions.DependencyInjection.dll
md5: 1F0171B034E757DBD031F7A75AFA2670 | sha1: 95CA26DFAA18FC8E0A346B728D4D6DB692CD1A6B | sha256: 386BEBFCAFA0BE15A9525EEDA675B4DFC9E2836627A10630792081ED9FB2CB05 | sha512: F8762B3AE0E57DBC42BC711D14B8F37CAAF51E85970F3C2D8BDBD762403412344967CE7A3C0A1804C991EF8B82620BDDBFEDEF3DEAD6D9F3CDBF1830902EB321
Microsoft.Extensions.FileProviders.Abstractions.dll
md5: CF0CBD49CC085A871339AD3FF97BE87B | sha1: 755AFF6D598915C662153FF46AF975B5D8470CB6 | sha256: 3ED54A8EC0D21AE1F69BF33F1BC7838CFF5190710EAC2EB8113F6CBFAFC04234 | sha512: 3167105C3E3B7E4B1BDBD69A7B1AD8F53F6D82D390361FC6187B613098CB0DAE3994916F4EFE3D9EC99D5A42DFDFAE0DFAF293BF1330CFF82E044181A1BF9215
Microsoft.Extensions.FileProviders.Composite.dll
md5: FD8E89B6C470520EF006E60BCD1DE0C6 | sha1: 6FE70E181F719CF9BA08CDEEC3B5E0077445EDD0 | sha256: 64D6AE8F4C9D70CB3ACBA9EE945F29A51E4310B08566DFB0F9625C2FE02A7EA9 | sha512: 9BD18F0CFAE0414E2A0379E09713971B8A7B1271292B3B50BF98DC43D921FA73AD3AC6FB80BB518F8F1A4D049CBBBF7A542F36BFB0814ED6C129011F4544312F
Microsoft.Extensions.FileProviders.Embedded.dll
md5: 16E000EBF08E2E8A163032CB11BB76B9 | sha1: B582EE54EFDEAEBB0B0745D06700C096F53A425F | sha256: 4AFA5F5B15AD613FCF8FC2E9BE5AB1241F03BB91B66EE4BC867A51213EC48FF0 | sha512: 340778AB6B0FECDEED4E4C1E331F5DCF0F2AF781D2AB9DC4C6969D521D09BCB5262E8CBEEF8F0EB6666F1B19D902EE57DBDBEB39FBCB482A128C377377E64C1F
Microsoft.Extensions.FileProviders.Physical.dll
md5: 02B482D5C3B9BC6A7823867E47133A73 | sha1: 1008961D3BE242D7AB73D2AF03D676AF80736D08 | sha256: A350CE8D47FE0361CB95F39D84C313C822540650A941E0BB2AF53268023467D8 | sha512: 784F020E32D688FABD80CE3E11B38D2EEACEE677DEDDD79C3320ACC38FBFA3B01DFEF9F59D4DFDD78224B6D14B04B335E81D6D96C52BDAEC4118B8D29DF46E47
Microsoft.Extensions.FileSystemGlobbing.dll
md5: 76C9E64046B8C8BFE24E782B2272782C | sha1: D4FD4EB46F81D82A6D1D33BCBDFE345F1A8D3725 | sha256: 5AFAC60A95DD1E942F249ABD32818E448535F058985B1FFE9163BA5D9902952F | sha512: E8C90AA3637E88A388D5EC1981533FCA4B752572C29DAB5E1D067787967644F6E330C96AE1124760CE1017461FB6DA9AE5578E24BC5FD0BB53F969DC110D6F11
Microsoft.Extensions.Hosting.Abstractions.dll
md5: B9FE780D7474418AB34D4C4D2CCEB402 | sha1: C2759F6899F862A83877B086A2A25FB31BCA8151 | sha256: 0257F30E739E8ADA334E2E6F7498E80E3AB061BC7B7F477775CD337F1028775A | sha512: 43CA9E4DE40666E123624C5BDC72EA743E5E0B7D2EBB788B2B031EABB5E9D83B3B18D024215E38DC7B336CE67A1710C255236A18D0B2E29371AA1F69B8E46B7F
Microsoft.Extensions.Logging.Abstractions.dll
md5: 98DFEDBF77E0C9143386FD8D7D42A323 | sha1: A497FE8B43210A58AE75360385F4046D9109A6CC | sha256: 8C7763FCE381531DDA9E9D6B533599E789F705DA613AC711B7C82F8C08185BB4 | sha512: D11FD3DC0423D7A0C76B90AB81DCB63BFD82040D00385E2045DE9FC321C37470ADB7A20F2A25D1B00FED8F5C0D8B6F1883961F31C2865F58F8D07ACEB6115DAE
Microsoft.Extensions.Logging.dll
md5: A430C08BAF4A943F0425F247ECF6CB36 | sha1: 73B81975E970E2A18B17B77B760183843F831F86 | sha256: AA5217FAD65FD54F843C348160E02ABCE8BB321F0714577754A5995D3489896A | sha512: 40E662FC30AEDD50EA0F7E682A70C920B03DF4CEA9B3620FF5E77E14F19A9AECD90BFA2D5D8B49A03DED9ED8628302B8B90CC14115D920BFB73C3308EF10D911
Microsoft.Extensions.ObjectPool.dll
md5: 620EA444E561CBB43C7A2196E2A89EE9 | sha1: 90F336D2656AAF636280251E9EEC3F03949C188D | sha256: 49C97A0C463F39293CDF519A77F6DB25AB24B0A4B79C35045D059F6C876B04C0 | sha512: 0E8FA031512B845A415BA9B3896576528AFB4AB290A796D0069E0BBAA5216822B0F5761F4C30AF934EAE6604D6CC49E96EBF8AF79EFFF5C900AEA82B1BB0FF8E
Microsoft.Extensions.Options.dll
md5: FCF6B5811B50BE9631088130CA035AFA | sha1: 516547000F60B6660840F1ABF95CAACB092DA42B | sha256: 1323345E21F12E5C0CD90ED2A96FC497010A94667EA4FDAF4C9BBBDB1610F148 | sha512: BB3610250BEB92700E834FF2BC28C61FAE641F8F2B8C410C51B6F81646870C708CF6755C00D467AA0A886FE23E5F1FED856047273C19FEDCCF5A3F63463028C4
Microsoft.Extensions.Primitives.dll
md5: 33F2319D8E78733838D51BFACC14E5EB | sha1: 0051315B000E8EF6FD1EC8F03F9EB8644925FB56 | sha256: FA58254542604E4C90E9876B5A5C7653D6AC8A3164102E5604981FBA6660F750 | sha512: 7E83EFCCEC749A5671334BB0CCCC6510E4A7DE94050D67167D90FB89A53DF5C9E80552332A1585A1AAA5F78000055349B47B4B75BC5DD6CB78B0BBE6A9D0E03C
Microsoft.Extensions.WebEncoders.dll
md5: A66B8A959CC719441B520F3B5E1B7D46 | sha1: DE90501893D0E476846AF4218B9C18D6E3F622E1 | sha256: FC90F67D8808024737ECBC2343FEEEF324FBF1E08FF61340A0E25619824D9458 | sha512: 1C741D419307E138E05433CAB1CAA135F14B6858ED58654F5166C2991A87BFF6A466208171629701244CD62422117193494ADB843AFB7B195AE74F41B8CCFE8B
Microsoft.IO.RecyclableMemoryStream.dll
md5: A89D2E387CFD0F18FC7313C48F8E56DE | sha1: 7A2026C2237424DAC03930C0C0BCDCD7503C7C35 | sha256: 7EF3471D838DC65A405492406DF7A22102A7FC905621597C5012B4585A0D8762 | sha512: 5F13D6D1915BF412D563FADC3ABDAC238FAF2ABEDBE8DF03A2A225856E14E1B4254E182746CDC6705BA2060331F3592902CE213355A47D7ED23F2ECED4CB12A3
Microsoft.Net.Http.Headers.dll
md5: B2C18A1255A3D1411E528F428E7512B7 | sha1: DEC1C3D32E015E0BFAB78DBB0C9107E98708E36F | sha256: D354E816F6C1EDCCFA7AF058E880A7596ED3BFC1224D9C4C3D7B5DC8B93CD509 | sha512: 8E020A240EC4DF35C030B8E3128E7A58B218048647C567827329EBEB24FF5C4AFA75F9EAAC2123B519381221B5AEEB60F759BB8BC4918E55B20EB46708CA9061
Newtonsoft.Json.dll
md5: 9DDD2A3660758D3E07A96C48CBCCF6DE | sha1: 9ED2DB5211E5B38939F85613E2D2EA3E6BBA027C | sha256: 195883567010B80F05329C3007FF6E6ACA5C41E7CE494D61A5F2B86C2D3B11DB | sha512: 01FA4F8653898315C2A3017EFEBB5E389676E1EBCC478CAA896A7CB9AAF14D4DF1AA14ABAD09337A01679C271680662A2B5F8661A182D81A8201C650EDB2FB12
NuGet.Client.dll
md5: B1DC419C602D962F216EBE349EB9B746 | sha1: 79F55C346489AEEA9235F28D0974EBE85DBF194D | sha256: 240CFA1FA508C20BB7267CF7C2F43093194D659753FA31458F5E114DB28B5B71 | sha512: 5315A7AA289DD0F6C121625073528960562C26E3D17C647F6A03CA2D853864DFF69FD7CA555F2A47CFB2BC038DB958B97F107CA8C3AB8B93597507DC1EAD76FB
NuGet.Commands.dll
md5: 0C8B43E29A498B0C2477AE1D1DEE9C3F | sha1: 8ADEFDC6002CC7E8A0247CE104A1CFAF963DC943 | sha256: 033C3EBD5E39222A245B179B160512171C75D6EDAB49FE38CB2B1FCABB89B5AF | sha512: 7BA475E88146CFDB6EBB433CF95B9694C3B94C3F322B2DBF54EE942F0A9ECB1C534A361BF5D3EF4DB3CA69A2C9CA3F76157B462B7E3F61E80FF64231504384F9
NuGet.Common.dll
md5: DFE878D59E5949428F217AB7EC614075 | sha1: D5D8FCE4580F6031647219A3AD2830F1536B39B9 | sha256: 46C4B2E4F0720334B8154E0D3F4945724DB350B1CB72EB66D6FA384B8BA2F705 | sha512: 819922247593EF3401FB38E77885D1F82E62B3D8DC8AD2B2EA0AE674CE8131485AB4A95E49289546D8A9D85F1ABBCA50EA24061AB695BFE6CFC5536087BF7917
NuGet.Configuration.dll
md5: B5451C655762E2849E6CF1989516AB28 | sha1: 8D72159360A3D94F40E5F0790D1FBDE58A0D216A | sha256: F0EBD3F774C4B0081DEA79B99AE78E5F9E40C61AB77F862DE7630DE96B828A5F | sha512: 3E1922FDA3178E2DFF39F0D9BFEEA347351D1348B6025EC31CEB89663052716C3A5E1EEC9CE0E39A9C9DD54A1CE341E8D3042EDDBD4475FA50A8C12E35895E9E
NuGet.ContentModel.dll
md5: 4B6CDBD4AE938ECF314E3DC7309D822D | sha1: 04576DB2958568EBCEE4B5135A5D28717558F129 | sha256: C4C10560A61D5831DB9499CDB70DE4A7A854A44B888ADA39F95DC5A72116721B | sha512: BF5C0E8644307C54D77D58BA2DE56912E51129EBEDA003826453673F0C22BA864CDB89F38D05FD4FBCD0A86BF25DC0FDD6D5CE6D65686F607AD7F0609044EA54
NuGet.Credentials.dll
md5: 3901527F54131DD30DF9A2730E5091E4 | sha1: 2F153028BE5A012539290D472FC373C14CC8E0BE | sha256: 188F1FF14BAA7BF03EA47D574606705F5E9BE793C67FE7F407E1D143760DE20B | sha512: BFE48FAC3D399CF972DB15096D09F6DD8C0CCEBB9C21123771FAA4A968A3A242491190F5F268113045B795ECA2D1C0D824ECC9098984D63C6DB84160385AF1FA
NuGet.DependencyResolver.Core.dll
md5: BEB6FB5D92EB6A47525E18CB448916BB | sha1: D91004C87BC72C07081A9E6F292D4A77652D349A | sha256: 33F7EC4B114710B7448006C9219EA8C56DA876C27E2F0873C222B1A7F75A4DCD | sha512: E7BEA66CC53B3E6609736733DDE27064B9378BBF2B9A55743F5083739733BCA1C1CEF1B5C9DCB3EFC84427EB80B9324EC6D2444CE7A65E67D598A270AF818219
NuGet.Frameworks.dll
md5: 8DB2185A6F817EC7C9F0B2494FA42192 | sha1: 10704DAC0BC91AADB29234D987B55814F50BFBEE | sha256: 26EC9FD174B119F9811B86B7184C0B4466A83395089CF71070608D25A37A66D1 | sha512: 23CA49EEE9F1BCCB71A5E1F9AE11BF50505BD0EC9589B531A19BAF76F7F346ECB3F3D2D618D39F71F2CBEE747A346CE3ECAC04A8C13E835BD613A440AD7BC752
NuGet.LibraryModel.dll
md5: A7C5985764B5CC21E583CECAB3BF905C | sha1: 53F6AF0E95F56F977632F4A2F325338DD37AA4F7 | sha256: E4090708E6105C838D62F7B77CDC3550E1EEBF495EFB89132703E332AF8F0203 | sha512: 186678DEBC5B01F0E60C438B62E510CDB5C7C33E052B9675751277D9457BE70BBFDF8378092C46DB8C233896EAFE87CEC9A82CFF50EC3BCE02821CAF926CA714
NuGet.PackageManagement.dll
md5: A8795DFDB1589E8025DF5861478AC68B | sha1: 00F34A7F054041DE27BE2DEE24F05C530972C504 | sha256: 045537C3F5EE3C89096A67DFCBD76E4A57F8998ED51B244C69D3988F4E48CB35 | sha512: 6D7AEE6813B10E3E26C475A5FFF46DFD55879EF6E56570862C7F41746A4489AA3577A4152A55D208C0A6CC6CBAF6D988B18B744E06EA1DE08A967BC9226D3FD5
NuGet.Packaging.Core.dll
md5: 9BA4D4C648C8FBEF099A10549E4CDE53 | sha1: 0820506467D0F8B89282C78498A62164631E3F56 | sha256: 353EB1B5D248B27317D3DCCB9A76EC6A0D101663BE944793B545006541ACB3FC | sha512: 012924B6612F09280FA36FFE6CEFC141A522352B0499E68F84B69801643E3262605B046FE3F217CAA82022EB3FEDDA0EEE17405ADCDB8E370D1945BEAFA5A29E
NuGet.Packaging.dll
md5: E0973D6EDAFBBA1CEA3CF508636E0A31 | sha1: 21EDECE5D1999A073D909D9F972C03D8C2778B67 | sha256: B0617258DA20E6BBB40FD6C9CA9DD5B57A18BAF87753868D0D646EA8CB0B2C00 | sha512: F425D9A83BA17FD48DB81F1475A3349C5EF17AD24E7FC5C49D8988B603B9C6BD2496CD1B99255F368863B7042C0D6AD5FEB81214E23BA90D2BB5BD53D659BC6E
NuGet.ProjectModel.dll
md5: A0D891A9B153C7E08E5EAEE2FCA7AF41 | sha1: C9525C0E539CD1BCABDA2FB2A5329E9061668E17 | sha256: 32A4C3B4CA609076E9499155CDFF8C84DB150110D07F339AD7F0ABF4C3C330D4 | sha512: 681E32A6235DCDF65D501182E6D50C88B1DE691BEE3C6B9EBF6D4EE118A5F51A649FB3E1178244F0C85CB4667D652676AC19B10F3E55DCC5917EFCBB24FE9FE0
NuGet.Protocol.dll
md5: 16BAEBCCE869281A2B89714F68258BCE | sha1: 7406C5D59FB06483015639D8D0980F5505BA7A33 | sha256: 950B0FA6D92C010D3EC56EF783E73BC53443A1C26BD645A9FAB784E3B0134157 | sha512: 2243FCBCC7818F5065D2F77D0698784B43EF5EC8735C305B29D5917255DF6AE6B531D3D3D2E465092B8959FEBDDD6E9A73117F1724FD23C95B12486C1C5F57B8
NuGet.Repositories.dll
md5: 57080801FBB46A2C4CCA926FDAC8FD7E | sha1: B0CAD3A67F332D11E67CE806BDE45CD0A27B6B3B | sha256: F7710F1980BC6170A46659C7BE5EE0CCCEBA6C635F55A84874F500DC6A5B18E2 | sha512: 49185FF866A21EC25EF7C2E952146BDD7F9F9532E60A45AA9E41A7E32E1B170232588D5E3FBBA933A67971D4B87AD1B30FB0A7646AC3FA1648E5E81263F5CD98
NuGet.Resolver.dll
md5: 0E10F31EDF2E97780E3220C6078CB625 | sha1: 34931E4246B9F8C67D0587629AFBEE0FE4C383D1 | sha256: 2F1E47283C79FE0646BF8A319830E85FDEE7D4DCFC33309C75813B0AADF1DDEE | sha512: FCC9EFFC7309F0F338F9472893DF2D85FE97D44AE59983AA6EAA5F840BCAFF5CAD51221A6172B6F0DDB8F06EA082B93EBAF7B71DEEC27998EF629C4AE565BC90
NuGet.RuntimeModel.dll
md5: 8B8ED32EE1C7B816D63C27A691CDB0E5 | sha1: BB52402B0C1A219A1A0913BF9C171B7779172C76 | sha256: D6D378E3906F92D1C169A7E4A7FE867733A6F3AC48BBBD9020C018D275FEE39C | sha512: 484E4EB5CA9FCDD85BCC5B5C5BED79C87510A6DA188156B226886591E40E17CC13A2C93F591BD27CB1B4C55C4BB46E614539F1B48BC51BCCCEF1904E236D70C7
NuGet.Versioning.dll
md5: 5CDF393109EE0C552C3417C038F20BCF | sha1: BED39E53BB104F96BE616C2F36D8A4447F22F340 | sha256: ECF6E52DFDA9DCEC18D53E214EE2E7A4FEE345075CFFF29EEE403E5ECF79FB47 | sha512: 5AAEEDCF6E15D2BF73ED51B3FF9C112878AA8CEF3C321135CA7971670B408271A6F323B72F66D8B24BD5ACA0FA593E00A15D6174B215FFF656B4EF886BE5CEB3
pl\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: B02F0C9E885222AF57198DF1097D4415 | sha1: F94F6FF57C843B3C2910FE26884B219EC9ED5759 | sha256: 8E7D8E5A4673DD41F009332B2D2F92DD8C06497DD15DD3FBBC3D44965379D79D | sha512: 4C92D0F792238F6727380B93006741BA0EBC902EEAD7AC2D6F4208CBC43B21E6B26A51486CCE06BE92A204C495ACA0B912A686D4E6CF60EF73237F9F78100B1D
pl\Microsoft.CodeAnalysis.resources.dll
md5: 2DF1E2475571825B464C084699140F44 | sha1: E9057DB5EDA7BDB8C84D622BCE6F9F65869B9BD4 | sha256: 59A15C5903368E908892650A312393F2863E2FE2A6308AE40832A1117AAC7B3D | sha512: 00746D51ABEC831C7753AF10C26742C88579EC7606E162C9CAD537BD78F21070792066BD9E60A7CC05116018A4802885FC4441922DCE591254FCABD580CBFA0E
pt-BR\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: 76C1B471F86D98BB09B80F275E39A390 | sha1: 6B79C24BABEE09AC3BDA46455D3985651452F4D6 | sha256: 8508ABC3782389DE7F1E1545039BA0BC6FFAE67FA100A2C04E36FC1367512581 | sha512: 0CB7CB2E09E081806548ABFCBE6311974B11A9E9542F6ED9DC94555B3CDA788911F8D56142071D4EB93BDADEDBECB871E4D82B96AE169790D442065D58C6632F
pt-BR\Microsoft.CodeAnalysis.resources.dll
md5: BD4B0B52E9177FEF12C1D13C3717662D | sha1: F34F2C2B8B80CF563BCE7E3A89B924585AA9F5C1 | sha256: EC6C254AB2E5BC68A8BE409B0A3AFC08DDD4A3694DC01F3DF0E75D302D942337 | sha512: 592C0807DB78C0256A80882D435B42593804C34476AEBF12654B0D154C56505D10FAB9A56F5E8580D24B26115FA39392FA2F5250425F0178D85169EA860D9055
README.md
# Wyam
[![Join the chat at https://gitter.im/Wyamio/Wyam](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Wyamio/Wyam?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Wyam is a simple to use, highly modular, and extremely configurable static content generator that can be used to generate web sites, produce documentation, create ebooks, and much more. Since everything is configured by chaining together flexible modules (that you can even write yourself), the only limits to what it can create are your imagination.

The easiest way to get started is to install as a .NET Core global tool and use a [recipe and theme](https://wyam.io/recipes).

1. Download and install Wyam as a global tool:

    `dotnet tool install -g Wyam.Tool`

2. Scaffold a new blog:

    `wyam new --recipe Blog`

3. Edit the scaffolded files.

4. Build the blog with a theme:

    `wyam --recipe Blog --theme CleanBlog`

To go deeper, read more about the [underlying concepts](https://wyam.io/docs/concepts) and then read about [configuration files](https://wyam.io/docs/usage/configuration) and the [available command line arguments](https://wyam.io/docs/usage/command-line). Then check out the full list of [modules](https://wyam.io/modules).

For more information see [Wyam.io](https://wyam.io).

## Acknowledgements

* Portions of the IO support were originally inspired from [Cake](http://cakebuild.net) under an MIT license.
* The RSS/Atom support was originally ported from [WebFeeds](https://github.com/mckamey/web-feeds.net) under an MIT license.
* Many other fantastic OSS libraries are used directly as NuGet packages, thanks to all the OSS authors out there!
ReleaseNotes.md
# 2.2.9

- [Fix] Updated to latest Buildalyzer (#865)
- [Documentation] Fixed a typo (#860, thanks @pascalberger)
- [Fix] Moved CleanBlog JS to the bottom so not to block rendering (#867, thanks @pug-pelle-p)

# 2.2.8

- [Fix] Updated NuGet packages in an attempt to fix ongoing package installation and signature verification problems

# 2.2.7

- [Fix] Fix for the fix that fixes bugs related to package installation and signature verification

# 2.2.6

- [Fix] Fixes for bugs related to package installation and signature verification

# 2.2.5

- [Refactoring] Updated to latest version of Markdig (#855, thanks @rchande)
- [Refactoring] Updated Cake dependency to 0.33.0 (#823, thanks @devlead)
- [Fix] NuGet restore now uses the correct target framework (#820, thanks @devlead)
- [Fix] Sets a default user agent for the `HttpClient` (#802, thanks @SeanKilleen)
- [Documentation] Enhances docs for the `Include` module and shortcode (#816, thanks @johanvergeer)

# 2.2.4

- [Feature] Updates JavaScriptEngineSwitcher to 3.0

# 2.2.3

- [Feature] New `Raw` shortcode useful for escaping inner shortcode syntax
- [Refactoring] Changes the special nested escape processing instruction for shortcodes from a standard processing instruction to `<?* ... ?>`
- [Fix] Fixes a regression in `AutoLink` where a new document was being returned when it shouldn't have been (#786)
- [Fix] Moved the `AutoLink` module in docs to execute after all template processing (#786)

# 2.2.2

- [Feature] The `Include` shortcode now tracks what file it's been called from (including nested includes) and attempts to first resolve includes relative to the current file
- [Feature] Shortcodes are now evaluated recursively and can be nested (but must use the same pre vs. post rendering delimiter as their parent)
- [Feature] Shortcodes can now be evaluated _before_ rendering with the `<?! ... /?>` syntax as well as after rendering with the existing `<?# ... /?>` syntax
- [Fix] Temporary workaround for shortcodes not working under certain conditions after HTML processing (#784)

# 2.2.1

- [Feature] New `Highlight` shortcode
- [Feature] New `YouTube` shortcode
- [Feature] New `Giphy` shortcode
- [Feature] New `CodePen` shortcode
- [Feature] Improvements to `Sass` module processing of `@import` including a new `.WithImportPath()` delegate that can fine-tune import path locations
- [Refactoring] Refactored `Embed` shortcode to make derived oEmbed shortcodes easier to implement
- [Refactoring] Refactored `HttpClient` support in `ExecutionContext` to work more like `HttpClientFactory` by sharing a `HttpMessageHandler` instead of a `HttpClient` instance

# 2.2.0

- **[Breaking Change]** Removes BookSite and the Velocity theme (#764)
- [Feature] Shortcodes! Take a look at [the docs](https://wyam.io/docs/concepts/shortcodes) for more information (#359)
- [Feature] New `MirrorResources` module to download CDN links and mirror them locally (#781)
- [Refactoring] New `IExecutionContext.HttpClient` and `IExecutionContext.GetHttpClient(HttpMessageHandler)` to manage a single shared `HttpClient` instance
- [Refactoring] New support in `Wyam.Testing` and `TestExecutionContext` for testing modules that use a `HttpClient`
- [Feature] New `IMetadata.String()` extension that takes a formatting function to apply if the key exists in the metadata
- [Feature] New `IMetadata.TryGetValue<T>()` method to attempt getting a metadata value, but only if it can be converted/cast to `T`
- [Feature] New `IMetadata` extension methods to make generating XML-to-LINQ trees from metadata values easier
- [Fix] Fixed a bug when the `Sass` module processes Sass files that have includes which aren't under an `input` folder

# 2.1.3

- [Fix] Fixes a possible concurrency bug when adding/removing trace loggers and indenting
- [Fix] Fixes for URL absolute link validation (#773, thanks @glennawatson)
- [Refactoring] Changed line ending behavior for files in the repository and re-normalized line endings to LF (#772, thanks @glennawatson)
- [Feature] Updates to the globber and file system abstractions to deal with file system case sensitivity better (#771, thanks @glennawatson)
- [Fix] Allow the `If` module indexer to be accessed without casting (#769, thanks @ociaw)
- [Refactoring] Big performance improvement to the `AutoLink` module (#766)
- [Fix] Fixed some quirks with the new diagram panning/zooming

# 2.1.2

- [Fix] Fixed directional arrows in docs class diagrams (#765, thanks @gpriaulx)
- [Feature] Improved large docs class diagrams by adding panning and zooming (#718)
- [Fix] Fixed links in docs class diagrams (#719)
- [Feature] New extensions for `IModuleList` to make getting specific modules easier (#763)
- [Feature] `If` module now exposes conditions and their modules (#761, thanks @ociaw)
- [Fix] Fixed `BookSiteKeys.BookImage` references in the Velocity theme (#760, thanks @damccull)
- [Feature] Improved the fakes in Wyam.Testing to allow for custom type conversions when needed
- [Refactoring] `IExecutionContext.GetLink()` overloads now return the absolute URI if one is provided instead of trying to convert it to a relative link (#629)

# 2.1.1

- [Fix] Fixed a bug with early closure of HTTP response objects when validating links (#759)
- [Fix] Fixed a regression bug with the BookSite recipe (#758)
- [Feature] Adds support for `IgnoreConfigHash` to Cake.Wyam (#628)
- [Fix] Fixed a bug in blog and docs recipes when the `Published` front matter contained an invalid date according to the culture (#611)
- [Fix] Added favicon and empty override CSS output to docs theme so that settings `ValidateRelativeLinks` or `ValidateAbsoluteLinks` does not error (#607)

# 2.1.0

- **[Breaking Change]** No longer reads standard input by default, adds a new `--read-stdin` flag to turn on this behavior (#752)
- [Fix] Blog posts in the docs recipe no longer require Author or Category metadata (#751)
- [Feature] New `Markdown.PrependLinkRoot()` method to prepend a configured `LinkRoot` to all `Markdown` links (#735, #748, thanks @tbolon)
- [Feature] New `MarkdownPrependLinkRoot` setting for the blog and docs recipes to turn on this behavior for Markdown documents (#735)
- [Fix] Fix for tuples in generic type parameters in docs (#749)

# 2.0.0

- **[Breaking Change]** It's here! Wyam now runs on .NET Core 2.1 and the .NET Framework client is no longer distributed (at least initially).

# 1.7.4

- [Feature] Updated Buildalyzer which includes new features like honoring MSBuild constants

# 1.7.3

- [Fix] Fixes a regression with the new Razor module when using nested layouts
- [Refactoring] Even better code signing (thanks @vcsjones) 

# 1.7.2

- [Fix] Updated Authenticode certificate

# 1.7.1

- [Fix] Fixed Authenticode signing of `wyam.exe`

# 1.7.0

- **[Breaking Change]**[Refactoring] New Razor parser based on ASP.NET Core 2.x (potentially breaking due to differences in Razor behavior such as tighter local variable scope)
- [Refactoring] New integrated preview server based on ASP.NET Core 2.x (#300, thanks @RLittlesII)
- [Feature] New `IExecutionContext.GetDocument()` overload to get an empty document while defining a source
- [Fix] Updates `Tree` module placeholder function to set document source for the placeholder
- [Feature] Adds `Keys.TreePlaceholder` metadata to indicate a placeholder tree document from `Tree` module
- [Feature] Adds ability to configure blog title in docs recipe (#710, thanks @rschoenbach)

# 1.6.0

- [Refactoring] Big update to Buildalyzer which should make MSBuild-based project introspection for docs much more reliable
- [Fix] Fixes a bug with docs `NoTitle` not working correctly
- [Feature] Adds support for linking generic type arguments (#707, #709) 
- [Fix] Fix for generic type argument names (#709)
- [Fix] Fix for a bug when linking nullable types in docs recipe

# 1.5.1

- [Refactoring] Updated Cake.Wyam Cake reference to 0.28.0 (#701)
- [Refactoring] Added NuGet repository link to packages (#705, #706, thanks @MaximRouiller)
- [Feature] Better display and linking of nullable type in docs (#470)
- [Fix] Fixes for generic type parameters in docs (#702, #610)

# 1.5.0

- **[Breaking Change]**[Refactoring] Removed the `TextGeneration` module since it's not .NET Core compatible
- [Fix] Set `wyam.exe` to `x64` to avoid problems with `NuGet.Build.Tasks.dll`, libuv, and .NET Framework (#699)
- [Feature] Updated Buildalyzer/MSBuild for `CodeAnalysis` modules, documentation project builds should work more reliably and on more project types now
- [Refactoring] Updated version of lunrjs used by the `SearchIndex` module and related themes (#660, #661, thanks @SteveLowe)
- [Fix] Added support for no trailing slash on edit link URL in `Docs` theme (#698, thanks @Foxtrek64)
- [Fix] Fixed a JavaScript console error in the Stellar theme (#685, thanks @jdecarli)
- [Fix] Removed unintentional Google Analytics code from Stellar theme (#684, thanks @jdecarli)
- [Fix] Fixes for tag archive links in all themes when using a subdirectory (#590, #681, thanks @schulz3000)
- [Fix] Fixed problems loading F# projects for code analysis and documentation generation (#687)
- [Fix] Fixed some assembly loading problems with `System.Text.Encodings.Web` (#667)
- [Feature] Added a `Sitemap` pipeline to the `Blog` recipe (#680, thanks @schulz3000)
- [Feature] Added methods to specify additional word separators in the `AutoLink` module
- [Feature] Added ability for `Docs` recipe to auto-link generic types (#674, #679, thanks @k94ll13nn3)
- [Feature] Added an `--ignore-default-sources` option to ignore the NuGet gallery (#673, #662)
- [Feature] Added `InsertPrefix()` and `InsertSuffix()` to `FilePath`
- [Fix] Encodes type names when linking them in the `Docs` recipe (#674, #676, thanks @k94ll13nn3)
- [Fix] Fixes some edge-case bugs with root-like paths and recipes (#675)
- [Refactoring] Replaced Tabular with EPPlus and CsvHelper in tables modules (#672, thanks @MisinformedDNA)
- [Refactoring] Replaced ImageProcessor with ImageSharp in `Image` module (#671, thanks @MisinformedDNA)
- [Fix] Fix for hard coded blog path in some parts of `Docs` recipe (#670, thanks @tbolon)
- [Fix] Fixed problems with month and day names in date strings (#655, thanks @jonasdoerr)

# 1.4.1

- [Fix] Fixed missing known extensions which should help make future version updates smoother (#652)
- [Feature] Added ability to turn on binary logging from MSBuild for `CodeAnalysis` modules
- [Feature] Updated Buildalyzer/MSBuild for `CodeAnalysis` modules

# 1.4.0

- [Refactoring] Totally rewrote assembly loading
- [Refactoring] Converted a bunch of support and extension libraries to .NET Standard (#646, thanks @pauldotknopf)

# 1.3.0

- [Refactoring] Configuration caches will always append to original configuration file ("config.wyam.dll", "config.wyam.hash", "config.wyam.packages.xml", etc.) (#619) - **Note** while this isn't a breaking change, it may require you to change your `.gitignore` files to handle the revised cache file names
- [Fix] Graceful handling of missing cached config dll file (#617)
- [Refactoring] Trace settings at startup as verbose (#618)
- [Feature] Added an overload to `Replace` module that allows using the document in the content finder delegate (#625)
- [Fix] Switches to `Regex.Replace()` when using a replacement delegate in the `Replace` module to avoid an infinite recursion edge case (#624)
- [Fix] Better handling of . (dot) character in `RedirectFrom` module (#620, #621, thanks @wozzo)
- [Feature] Added a new default behavior for `Sitemap` to generate a document link if no `SitemapItem` key is provided or usable (#622)
- [Feature] Adds support for defining custom content types in the preview server
- [Feature] Added `IMetadata.GetMetadata()` to get a new metadata object with only the specified keys
- [Feature] Adds an additional constructor to the `Execute` module to process the entire input set at once
- [Feature] Adds ability to serialize selected metadata keys to a JSON object in `GenerateJson` module
- [Feature] Adds ability to specify additional serializer settings for `GenerateJson` module
- [Fix] Fixes bug with `GenerateJson` module not setting metadata key
- [Refactoring] Removed the Wyam.Windows installer, it's been replaced by Chocolatey and eventually a .NET CLI global tool

# 1.2.0

- [Feature] Locks in matching recipe and theme package versions (#587)
- [Refactoring] Some docs updates (#604, thanks @olevett)
- [Feature] Can add Markdown extension instances directly (#602, thanks @Silvenga)
- [Fix] Fixes adding multiple custom Markdown extensions (#601, thanks @Silvenga)
- [Fix] Fixes output corruption when using `--noclean` (#593, thanks @Silvenga)
- [Feature] Added support for generating a Chocolatey package (#598, #95, thanks @phillipsj)
- [Fix] CSS cleanup for arrows in the docs theme
- [Feature] Docs recipe now ignores Razor pages from the theme if an equivalent Markdown page exists (#595)
- [Feature] Added a `Where()` method to the `Concat` module 
- [Feature] Added `DocsKeys.ShowInSidebar` to hide pages from the sidebar in the docs recipe
- [Fix] Ignore case when locating index files for the `Tree` module
- [Feature] Added support for JSON content types to the embedded web server
- [Feature] Added sidebar header and footer overrides to docs theme
- [Refactoring] Updated MD5 hashes to SHA512 for FIPS compliance (#597, thanks @kakrofoon)
- [Feature] Enabled code signing for wyam.exe
- [Feature] Adds `DocsKeys.ApiPath` to allow changing the path where API docs are placed in the docs recipe

# 1.1.0

- **[Breaking Change]**[Refactoring] Removed the `Git` module since it's not fully SDK compatible
- **[Breaking Change]**[Refactoring] Removed the `Xslt2` module since it uses packages that are not cross platform or SDK compatible
- [Fix] Referenced assemblies are not loaded if a version was already directly loaded
- [Fix] Fix for excerpts in the BlogTemplate blog theme (#580, thanks @AWulkan)
- [Fix] Fix for "Back to Posts" link in the BlogTemplate blog theme (#581, #583, thanks @jbrinkman)
- [Fix] `CodeAnalysis` and the docs recipe can now read SDK and .NET Core projects via [Buildalyzer](https://github.com/daveaglick/Buildalyzer) (#575)
- [Refactoring] Updated Cake.Wyam to Cake 0.22.2 and targeting .NET Framework 4.6 and .NET Standard 1.6 (#579, #573, thanks @ProgrammerAl and @RLittlesII)
- [Fix] Fix for generated syntax from `CodeAnalysis` for more than one attribute within a bracket (#577, thanks @jonasdoerr)
- [Refactoring] Converted most of the projects to the SDK (no impact on release artifacts, but important for contributors)

# 1.0.0

- **[Breaking Change]**[Refactoring] Removed all deprecated code including string-based document creation methods
- **[Breaking Change]**[Refactoring] Renamed `Download.CacheResponse()` to `Download.CacheResponses()`
- **[Breaking Change]**[Refactoring] Renamed `RequestHeader` class for use with the `Download` module to `RequestHeaders`
- [Feature] Added support for custom headers to `RequestHeaders` for use with `Download` module
- [Feature] New `YouTube` module for interacting with the YouTube API (#547, thanks @ghuntley)
- [Feature] New Trophy theme for Blog recipe (#522, thanks @adamclifford)
- [Fix] Fixed a bug in Docs recipe when generating lowercase links
- [Fix] `NormalizedPath` no longer trims spaces (#566) 
- [Feature] New Stellar theme for Blog recipe (#563, thanks @arebee)
- [Feature] The compiled config script is now cached to disk as `config.wyam.dll` and `config.wyam.hash` (prefixed with whatever the config file name is) (#557, thanks @Silvenga)
- [Feature] New `Objects` module for populating metadata by reflecting on an arbitrary object (#539, thanks @deanebarker)
- [Feature] New `Xml` module for populating metadata by reading elements from XML content (#539, thanks @deanebarker)
- [Feature] New `Sql` module for populating metadata by reading data from a SQL server (#539, thanks @deanebarker)
- [Feature] New `ReadDataModule` abstract base module for populating metadata from arbitrary data (#539, thanks @deanebarker)
- [Fix] Several fixes related to generic types in `AnalyzeCSharp` module and Docs recipe (#494, #564)
- [Fix] Excludes empty namespaces from `AnalyzeCSharp` module by default (#526)
- [Feature] Updated globbing pattern in Blog and Docs recipes to include blog posts in subfolders (#560, thanks @archnaut)
- [Feature] If a module implements `IDisposable` it will now be disposed when the engine is
- [Refactoring] Disabled data protection services in `Razor` module (#559, thanks @Silvenga)
- [Fix] Additional inherit doc support for properties and events in `AnalyzeCSharp` module (#553)
- [Fix] Fix for search index items when virtual directory is used (#554)
- [Fix] Normalizes culture in all the examples (#544)
- [Fix] Fixes HTML escaping in API search results in Docs theme (#552)

# 0.18.6

- [Feature] Added flag `DocsKeys.ImplicitInheritDoc` to docs recipe to globally assume `inheritdoc` (#551)
- [Feature] Added `AnalyzeCSharp.WithImplicitInheritDoc()` to assume `inheritdoc` for symbols without any XML comments (#551) 
- [Fix] Fixed a bug in the `AutoLink` module when containing node also has escaped HTML content (#550)
- [Fix] Fixed a bug with `If` module when using a `ContextConfig` delegate, unmatched documents were not falling through. You may need to add `.WithUnmatchedDocuments()` if you are using an `If` module with the incorrect behavior.
- [Feature] Added `Keys.LinkLowercase` to always generate lowercase links (default is false) (#546)
- [Fix] Fixed a bug when using `NoSidebar` in docs recipe (#549)

# 0.18.5

- [Refactoring] Moved the blog theme index template file from `index.cshtml` to `_Index.cshtml` to match other template conventions (#520)
- [Feature] Added settings to the blog recipe to configure index template and output path (#541)
- [Feature] Added note to readme file about platform support (#540, thanks @perlun)
- [Fix] CLI commands are now case-insensitive, though options and flags are still case-sensitive for now (#539)
- [Refactoring] Preview server now logs a full localhost URL so terminals can link it (#533)
- [Refactoring] Switching exit key combination to Ctrl-C instead of any key (#534)
- [Feature] New BlogTemplate theme for the blog recipe to use as basis for new themes (#518, thanks @adamclifford)
- [Fix] Docs fix for Cake addin (#535, thanks @ghuntley)
- [Refactoring] Suppress CS1701 in config file compilation instead of filtering (#529, thanks @filipw)
- [Refactoring] Performance boost for Razor rending (#509, thanks @jontdelorme)
- [Feature] New SolidState theme for the blog recipe (#514, thanks @RLittlesII)

# 0.18.4

- [Fix] Fixes feed content and description for common web pipelines (#528)

# 0.18.3

- **[Breaking Change]**[Refactoring] Moved Blog recipe theme file `/_PostIndex.cshtml` to `/_Archive.cshtml`, no other changes should be needed to this file in themes other than to move it - sorry for the rename (again), the first name was kind of dumb, this one is better
- **[Breaking Change]**[Refactoring] Moved Blog recipe theme file `/tags/index.cshtml` to `/_Tags.cshtml`, no other changes should be needed to this file in themes other than to move it
- [Feature] Suppressed tag page generation if no tags are present in Blog recipe (#456)
- [Refactoring] Refactored `Wyam.Web` pipelines to encapsulate settings in classes
- [Feature] Added a ton of flexibility and new settings to index and archive pages for the Blog recipe (#516)
- [Feature] Adds the background check JS to BookSite Velocity theme
- [Feature] Excludes `.git` from all recipes in case an input subfolder was closed from a repository
- [Fix] Resolved some edge-case bugs with the globbing engine

# 0.18.2

- [Fix] Fix for invalid metadata key in Docs theme (#515)

# 0.18.1

- **[Breaking Change]**[Refactoring] Moved a couple theme template files in Blog themes: `posts/index.cshtml` -> `_PostIndex.cshtml`, `tags/tag.cshtml` -> `_Tag.cshtml` - if you were overriding these theme files, you'll need to move and rename your override file to match
- [Refactoring] Deprecated `BlogKeys.HeaderTextColor` and the CleanBlog theme now automatically calculates header text color from background image using JS
- [Feature] Added default settings to recipe scaffolding (#503)
- [Fix] Manually copies the native git libraries for the `Git` module (#506)
- [Feature] Added support for Less and Sass files to the Blog recipe
- [Feature] Added `WithPageMetadata()` method to `Paginate` module to add metadata to generated page documents
- [Feature] Added `NextPage` and `PreviousPage` output metadata to `Paginate` module
- [Refactoring] Prefixed all Less include files in the Docs theme with an underscore and excluded underscore files from being processed directly by recipe (#507)
- [Feature] `Less` module now sets `Keys.WritePath` with a `.css` extension - this may result in warnings if you follow the `Less` module with the `WriteFiles` module with an extension specified, remove the extension from the `WriteFiles` module and the warnings should go away
- [Feature] `Less` module will now automatically check for underscore prefixes and add `.less` extension when looking for includes (#507)
- [Feature] New `Sass` module (#7, thanks @enkafan)
- [Feature] New `Sort` module for ordering documents using a comparison delegate
- [Feature] `If` module can now ignore unmatched input documents
- [Refactoring] Made `IModuleList` extensions fluent
- [Feature] `Documents` module can now get documents from more than one pipeline at a time
- [Refactoring] Moved source code for recipes to a dedicated folder
- [Refactoring] All current recipes now share a common set of reusable pipelines from the new `Wyam.Web` library (#501)
- [Feature] New BookSite recipe for book and ebook marketing sites (#488)

# 0.17.7

- [Fix] Fixes LiveReload support when under a virtual directory (#496)
- [Fix] Fixed some asset links in docs theme when under a virtual directory (#497)

# 0.17.6

- [Fix] Fixes some dependency issues with the MEF 2 libraries and Roslyn packages

# 0.17.5

- [Feature] `CodeAnalysis` module (and docs recipe) now supports loading source code directly from projects and solutions (#493)
- [Fix] Fixes regression of missing `BlogKeys.Posts` for tag documents (it broke when pagination was added)

# 0.17.4

- [Feature] Adds a warning when output path is also one of the input paths (#490)
- [Refactoring] Refactored `IMetadata` type conversion convenience methods into extension methods
- [Refactoring] Refactored `IExecutionContext.GetLink(...)` methods into extension methods
- [Feature] Adds settings and extensions for dealing with input and output date cultures (#475)
- [Refactoring] Tons of documentation comment updates
- [Refactoring] Added server tests back in (#484)

# 0.17.3

- [Fix] Fixed occasional missing XML doc comments from assembly XML doc files (#483)
- [Fix] Fixed inheritdoc behavior when interface is inherited from base class (#481)
- [Refactoring] Turned off x86 runtime preference and switched to x64 libuv - this means the Wyam preview server will no longer work on x86 platforms without manually swapping the libuv library (#484)
- [Refactoring] Continuing to tweak memory pool settings
- [Fix] Excluding partials from the blog pages pipeline

# 0.17.2

- [Feature] Added `IExecutionContext.GetContentStream()` utility method to get streams for document content
- [Refactoring] Removed string content support from documents and deprecated string-based document factories (#477)
- [Feature] Added support for alternate content storage strategies (#476)
- [Feature] Special handling for CLI directory path inputs ending in an escape (#472)
- [Feature] Updated to latest Roslyn libraries supporting C# 7 (#473)
- [Feature] Added support for operators to the docs recipe (#468)
- [Feature] Added `Keys.TotalItems` for use with the `Paginate` module
- [Feature] Added optional pagination to tag archives for blog themes using `BlogKeys.TagPageSize` (#469, thanks @alfadormx)

# 0.17.1

- [Fix] Fixed regression in `Execute` module that caused tags not to be output in Blog recipe
- [Feature] Added a new `Pipeline` class in `Wyam.Common` to use as base for predefined pipelines (I.e., in recipes)
- [Refactoring] Moved `ModuleCollection` module to `Extensibility` namespace
- [Refactoring] Code quality ruleset updates
- [Fix] Resolves server errors with LiveReload (#465, thanks @Silvenga)

# 0.17.0

- [Fix] `CodeAnalysis` module only displays duplicate comments once for partial classes (#460, #463, thanks @M-Zuber)
- [Feature] New `Join` module for joining documents together (#461, #23, thanks @JamesaFlanagan)
- [Feature] Implemented a NuGet dependency cache making subsiquent generations *much* faster (#317)
- [Refactoring] Updated Cake to 0.17.0 (#457, thanks @pascalberger)
- [Refactoring] Ported hosting code to new `Wyam.Hosting` library that can be used outside Wyam (#385)
- [Fix] Ensures result documents get set, even for empty pipelines (#455)
- [Feature] New `Highlight` module for generation-time highlight.js highlighting (#452, thanks @enkafan)
- [Feature] Implements a new JavaScript engine framework including runtime engine switching for modules to use JavaScript libraries! (#452, thanks @enkafan)
- [Refactoring] Filters JetBrains assembly from loaded namespace list (#453, thanks @enkafan)
- [Feature] Adds LiveReload support for the preview server! (#420, thanks @Silvenga)
- **[Breaking Change]** [Refactoring] Removed `IPipelineCollection` overloads for specifying documents should be processed once to use a fluent method instead
- [Refactoring] Refactoring of `IPipelineCollection` to move a bunch of implementation logic into extension methods
- [Refactoring] Changed preview web server from Katana to Kestrel (#449, thanks @Silvenga)
- [Refactoring] Updated LibGit2Sharp to 0.23.1 (#450, thanks @pauldotknopf)
- [Feature] Adds extension methods to `IModuleList` to help tweak recipes (#445, thanks @enkafan)
- [Refactoring] Implements a new `IModuleList` interface and implementations that support named module collections and applies the concept to control modules as appropriate (#447, #448)
- [Refactoring] Moved `TraceExceptionsExtensions` to `Wyam.Common.Execution`
- [Feature] Added several code quality checkers and rulesets (#443, #444, thanks @Silvenga)
- [Fix] Relative URLs are now unescaped in `ValidateLinks` module

# 0.16.3

- [Feature] Docs recipe now checks for an "src" folder both inside and alongside the "input" folder (#436)
- [Feature] Outputs current settings on every build
- [Refactoring] Switched blog theme string constants to use the correct `BlogPipelines` keys (#435, thanks @enkafan)
- [Fix] Fixed null check in Phantom blog theme footer (#433, thanks @enkafan)
- [Feature] Added helpers for module developers to trace per-document exception messages (#320)
- [Feature] Greatly improved per-document error messages (#320)
- [Fix] jQuery CSS reference casing was wrong in docs theme

# 0.16.2

- [Fix] Fixes a bug when multiple input paths have the same starting characters (#414)
- [Fix] Adds support for duplicate single-value directives when values are equivalent (#430)
- [Feature] Adds ability to specify Markdig extension classes within the Blog and Docs recipes (#429, thanks @enkafan)
- [Refactoring] Changed MSBuild to use maximum number of CPUs, speeding up compile times (#428, thanks @enkafan)
- [Fix] Fixed guard clauses in `Image` module (#427, thanks @n-develop)
- [Feature] Exceptions and other execution errors no longer kill the watch loop (#422, #421, thanks @Silvenga)
- [Feature] Improved error messages when delegate invocation return types don't match
- [Feature] Adds support for complex nested object sequences to the `Yaml` module
- [Feature] Adds `IMetadata.DateTime()` shorthand method for getting `DateTime` values from metadata
- [Fix] Adds the missing `CsvToMarkdown` file to the project (#418, thanks @LokiMidgard)
- [Feature] Adds support for the `--attach` flag to the Cake addin

# 0.16.1

- [Refactoring] Docs recipe now allows you to specify a logo file using the `DocsKeys.Logo` setting
- [Fix] Fixes recipes and `Title` module so that page titles wouldn't use the global title settings if no explicit title was set
- [Feature] Added `IDocument.WithoutSettings` for getting metadata for a document without the global settings
- [Feature] Added `IMetadata.Bool(...)` for getting Boolean values from metadata

# 0.16.0

- [Refactoring] Out of beta!
- [Refactoring] All libraries now target .NET Framework 4.6.2
- [Refactoring] `GlobalMetadata`, `InitialMetadata`, and `Settings` have all been moved to a consolidated `Settings` metadata collection (#379)
- [Feature] An error is now displayed when running under Mono (#375)
- [Feature] Recipes can now output a config file (#388)
- [Fix] Preview server can now handle escaped URL characters when supporting extensionless files (#413)
- [Fix] Fixes CSS for block quote margins in CleanBlog theme (#412, thanks @n-develop)
- [Fix] Fixes CSS for dropdown menus in CleanBlog theme (#409, thanks @n-develop)
- [Fix] Fixes use of `PostsPath` setting for archive links in themes (#400, thanks @kamranayub)
- [Fix] Fixes `params` parameter types in `CodeAnalysis` module (#407)
- [Feature] Adds support for escaping CDATA XML doc comments to `CodeAnalysis` module (#411)
- [Feature] Adds a filter function for `CopyFiles` module to fine-tune destination path (#398, thanks @deanebarker)
- [Fix] Fixes support for `RssPath` and `AtomPath` settings in themes (#396, #397, thanks @kamranayub)
- [Feature] Adds option to replace RegEx matching groups in `Replace` module (#386, thanks @LokiMidgard)
- [Feature] New `CsvToMarkdown` module (#384, thanks @LokiMidgard)

# 0.15.8

- [Refactoring] Removed Turbolinks from the docs theme due to some oddness with JavaScript loading
- [Fix] Removes overridden members from the members collection in `CodeAnalysis` module
- [Refactoring] Moved remarks section up in docs theme
- [Feature] Added `_Head.cshtml` override file to the blog themes
- [Feature] Support for `<inheritdoc/>` in the `CodeAnalysis` module and docs recipe (#364)
- [Refactoring] Updated Markdig version

# 0.15.7

- [Fix] Fixed a bug with new docs recipe package downloads
- [Fix] Fix for wrong System.Console binding in Wyam.Windows (#372, thanks @adamclifford)
- [Fix] Fix for logo path in docs recipe (#369, thanks @meil)

# 0.15.6

- [Fix] Post date comparison now performed with current time instead of midnight (#365)
- [Refactoring] Better warnings when posts are skipped due to future or missing date in docs and blog recipes (#365)
- [Feature] Adds support for serving from a virtual directory to the preview server using the `--virtual-dir` option
- [Feature] New `ValidateLinks` module with opt-in use for blog and docs recipes (#15)
- [Fix] Modifying all assets and links in themes to use link generation for virtual directory support
- [Refactoring] Improvements to `LinkGenerator` to make it more flexible (this class isn't typically used by user code)

# 0.15.5

- [Fix] Fixed missing default paths for blog feeds
- [Refactoring] Made all theme resources except Google Fonts local for better HTTPS support

# 0.15.4

- [Fix] Fixing some deployment issues with last release and package dependencies

# 0.15.3

- [Refactoring] Updated Roslyn and Razor NuGet packages
- [Refactoring] Additional caching for Razor page compilation under certain conditions (especially for docs recipe)

# 0.15.2

- [Fix] Adds a warning for unparsed publish dates in docs and blog recipes (#361)
- [Fix] Added support for fields and constant values to `CodeAnalysis` module and docs recipe (#363)

# 0.15.1

- [Fix] Added the Docs recipe and Samson theme to the set of known recipes and themes

# 0.15.0

- **[Breaking Change]** [Refactoring] Moved several of the blog recipe files to the root to accomodate different post paths. If you have a file override for `/posts/_PostFooter.cshtml` it'll need to be moved to `/_PostFooter.cshtml` (likewise with other theme files in `/posts` except for `/posts/index.cshtml` which is still in `/posts`).
- [Fix] Suppresses CS1701 (binding redirect) warnings in config script host
- [Refactoring] Switched the blog themes to highlight.js (#345)
- [Feature] Added ability to set a comparer for `GroupBy`, `GroupByMany`, and `OrderBy` modules
- [Fix] Several bug fixes for `AutoLink` module
- [Refactoring] Moved `LinkGenerator` to `Wyam.Common`
- [Feature] New `Redirect` module for generating redirect pages (#44)
- [Feature] `IMetadataValues` are now searched recursivly (so an `IMetadataValue` and return another `IMetadaValue`)
- [Feature] New customization options in `SearchIndex` module
- [Feature] Added support for `NamespaceDoc` classes to `AnalyzeCSharp` module
- [Feature] Added support for namespace XML doc comments to `AnalyzeCSharp` module
- [Feature] Added support for inherited members to `AnalyzeCSharp` module
- [Feature] Ability to insert new pipelines before and after other named pipelines (useful for customizing recipes)
- [Feature] Added support for analyzing attributes to `AnalyzeCSharp` module
- [Fix] Fixed a bug in `Xslt2` regarding base URIs (#355, thanks @LokiMidgard)
- [Feature] Support for array values when specifying global/initial metadata via the CLI and Cake
- [Feature] New `AnalyzeCSharp.WithAssemblies()` method for assembly-based code analysis
- [Feature] New `TestExecutionContext` class in `Wyam.Testing` for easier test mocking
- [Feature] New `Headings` module for adding HTML headings in content to metadata
- [Feature] Added `.WithNesting()` to `Tree` module to nest documents inside metadata as a hierarchy
- [Fix] Fixed a bug with content folders in NuGet packages
- [Refactoring] Updated NuGet libraries to 3.5
- [Fix] Added `UseGlobalSources` flag to Cake addin
- [Fix] Fixed some bugs with Cake addin when specifying NuGet packages
- [Feature] `If` module now supports context-only predicates that only evaluate once for all input documents
- [Feature] Added `Meta.OnlyIfNonExisting()` to prevent setting metadata if value already exists
- [Feature] Support for Jekyll-style excerpt comment separators in the `Excerpt` module 
- [Feature] New `Include` module for including content from a file into an existing document
- [Feature] New `Title` module for setting title metadata
- [Feature] New `Flatten` module for flattening hierarchical document trees
- [Feature] Lots of improvements and fixes to `Tree` module
- [Feature] Adds new `Docs` recipe (#342)
- [Feature] Adds the `AdventureTime` sample from [Static-Site-Samples](https://github.com/remotesynth/Static-Site-Samples)
- [Fix] Fixes bug with link generation in `CodeAnalysis` module for nested types
- [Feature] Adds `Razor.WithModel()` for specifying a view model in config script
- [Feature] Support for alternate model types in Razor views (including partials)
- [Fix] Fixes some bugs with complex recursive globbing patterns
- [Feature] Adds `IDirectory.Parent` for finding parent directory
- [Refactoring] Big refactoring of source code organization
- [Fix] Add NuSpec for Xslt2 module, resolves #341

# 0.14.1

- [Feature] `Execute` module now processes documents in parallel with a new option to fall back to sequential processing
- [Feature] Adds support for executing modules and replacing content to the `Execute` module (this makes it much more powerful)
- [Feature] Adds `IsRegex()` to `ReplaceIn` module
- [Feature] New `Xslt2` module that uses Saxon to apply XSLT 2 transforms (#340, thanks @LokiMidgard)
- [Fix] Add themes to the set of known extensions, ensuring they stay up to date

# 0.14.0

- Note: this release introduces a new Razor engine and host based on ASP.NET Core MVC. It should be similar to the old one, but there might be some breaks, especially if using layouts and partial pages. Most of the differences have to do with stricter path handling by ASP.NET Core MVC than the previous implementation. If you find Razor pages aren't building correctly, try tweaking your layout and partial paths. 
- [Refactoring] When specifying official Wyam extension packages the current Wyam version will be used if no version is specified, forcing package download if the matching version isn't already available (#338)
- [Refactoring] Tweaked the naming scheme of test classes and methods (#329)
- [Feature] Adds `.WithLayout()` fluent methods to the `Razor` module
- **[Breaking Change]** [Refactoring] Totally rewrote the `Razor` module on top of ASP.NET Core MVC (#141)
- [Fix] Fixed some spelling mistakes (#337, thanks @hyrmn)
- [Feature] Added an example showing integration in ASP.NET web applications (with a fix in #335, thanks @jamiepollock)
- [Refactoring] Moved to a higher-performance `ConcurrentHashSet` implementation (#325)
- [Fix] Fixed excerpt rendering for posts in blog themes
- [Fix] Fixes related to using and generating links for HTTPS (#332, #333, thanks @leekelleher)
- [Fix] Inverted the order of tags in blog themes (#331, thanks @ibebbs)

# 0.13.5

- [Fix] Fixed lifting of using directives in the configuration file

# 0.13.4

- [Fix] Fixed duplicate posts in archive for CleanBlog and Phantom Blog themes
- [Feature] Added support for post footers in Blog themes
- [Refactoring] Changed Markdown processor to Markdig (#328, #165, thanks @FlorianRappl)
- **[Breaking Change]** [Refactoring] Removed declarations section of config file, any global classes are now automatically "lifted" out of the config method (#316)
- [Refactoring] Switched to a CDN for Bootstrap and jQuery resources in CleanBlog theme
- [Feature] Pretty print CSS class now automatically added to Blog recipe posts 

# 0.13.3

- [Refactoring] Removed cache hit/miss messages from the verbose log due to excessive noise
- [Fix] NuGet no longer crashes for lack of network access (#326)
- **[Breaking Change]** [Refactoring] Removed the `an` directive and command line argument, all assemblies should now be loaded with the `a` directive/argument regardless of if a full name, simple name, globbing pattern, or file path is specified
- [Feature] Will now attempt to load assemblies from a simple name like `System.Xml` with the same version as the current framework
- [Refactoring] Lots of refactoring related to assembly loading (#324)
- [Feature] Added new Phantom theme for the Blog recipe
- [Feature] Added support for hero images to the Blog recipe
- [Feature] Added an argument to recipe and theme directives to indicate any known recipe/theme packages should be ignored (mainly for debugging new recipe/themes)
- [Feature] Added an "about" page to the Blog recipe scaffolding

# 0.13.2

- [Fix] Added a NuGet dependency to the Wyam.Feeds package in the Wyam.Blog recipe package

# 0.13.1

- [Fix] Fix for scaffolding a recipe to a non-existing directory

# 0.13.0

- [Feature] Implemented general support for recipies (#1)
- [Feature] Implemented Blog recipe
- [Refactoring] Local file system now uses non-blocking read/write sharing
- [Feature] Adds a default "theme" folder to the set of default input folders
- [Refactoring] Better automatic metadata conversion of enumerable types to atomic values
- [Refactoring] Improvements to collection and document collection extensions (#195)
- [Feature] Added `Where()` fluent method to `GroupBy` and `Paginate` modules
- [Feature] Added new `GroupByMany` module
- [Feature] Implemented themes (#72)
- [Feature] Implemented CleanBlog theme for the Blog recipe
- [Fix] Fixed some bugs with globbing and assembly loading from the file system
- [Feature] Implemented default theme support for recipes (#310)
- [Fix] Fixed a bug when watching non-existing input paths
- [Feature] Added support for initial document metadata to the CLI and Cake addin (#11)
- **[Breaking Change]** [Refactoring] Renamed the CLI argument for global metadata to `--global` (#11)
- **[Breaking Change]** [Refactoring] All metadata collections are now case-insensitive (including document metadata) (#312)
- **[Breaking Change]** [Refactoring] `IMetadataValue` no longer passes the requested key (#312)
- [Refactoring] Pipeline names are now case-insensitive (#313)
- [Feature] `IExecutionContext` now implements `IMetadata` for the global metadata (#311)
- **[Breaking Change]** [Refactoring] Method `IMetadata.Documents()` is renamed to `IMetadata.DocumentList()` to avoid conflicts with `IExecutionContext.Documents()` (#311)
- [Refactoring] Added support for different commands to the CLI (#309)
- [Feature] Added a `new` command to the CLI for scaffolding initial files for a recipe (#309)
- [Feature] Added a `preview` command to the CLI for previewing a site without actually building it (#309)
- [Feature] Added a `OnlyMetadata()` method to the `WriteFiles` module that adds the same metadata the `WriteFiles` module usually does but does not actually write the files to disk (useful for staging files in one pipeline and then writing them in another)
- [Fix] Warns when NuGet communication fails (instead of terminating)
- [Feature] Adds new empty `IExecutionContext.GetLink()` method to get a bare site link
- **[Breaking Change]** [Feature] New `GenerateFeeds` module in `Wyam.Feeds` package to replace legacy `Rss` module (can generate RSS, Atom, RDF) (#322)
- [Fix] Fixes for nullables in metadata type conversion
- [Fix] Fix for stemming toggle in `SearchIndex` module (#315)
- [Refactoring] Assemblies are now loaded in parallel for performance
- [Refactoring] Removed beta pre-release version designation

# 0.12.4

- **[Breaking Change]** [Refactoring] Extension NuGet packages have been renamed from `Wyam.*` to `Wyam.*` to better represent other non-module extension points (#295)
- **[Breaking Change]** [Feature] The NuGet package version now takes a *version range*, so you must use `[x.y.z]` instead of `x.y.z` to specify a specific version
- [Feature] Added a `use-global-source` flag to trigger the use of globally configured NuGet package sources
- [Feature] WriteFiles now supports an `Append()` method to trigger appending to existing file instead of overwritting them (#304)
- [Refactoring] WriteFiles now has better handling of outputting multiple documents to the same file (#303)
- [Feature] New `Sidecar` module to pull metadata for a document from a sidecar file (#306, thanks @LokiMidgard)
- [Refactoring] Additional documentation for Cake alias (#302, thanks @gep13)
- [Refactoring] New assembly type scanning algorithm will make future extension points easier to support (#281)
- [Refactoring] File providers are now specified as a URI (#277)
- [Feature] New `Tree` module to construct a hierarchy from a set of documents (#292, thanks @LokiMidgard)
- [Fix] Output directory is now created on demand instead of automatically at execution (#293)
- [Fix] Check for null stream if null content on `Document.ToString()` (#294, thanks @LokiMidgard)
- [Refactoring] Renamed CLI flag `--pause` to `--attach` and changed behavior to wait for a debugger to attach instead of requiring key press
- [Fix] Fixed some bugs with the Cake.Wyam NuGet package dependencies (#291)
- [Fix] Fixed some problems with the handling of dotfiles (#289)
- [Fix] Documentation fixes for `IDocument` (#288, thanks @LokiMidgard)

# 0.12.3

- [Fix] Fixed a bug where execution could hang in some environments that open stdin and leave it open like Azure CI or VS Code task execution (#287)
- [Feature] Added a `--latest` flag to the `#nuget` preprocessor directive to indicate that the latest available package version should always be installed
- **Breaking changes**: Please see https://wyam.io/docs/advanced/migrating-to-0.12.x for more information

# 0.12.2

- [Fix] Emergency resolution for a bug with NuGet operations ordering an file locks
- **Breaking changes**: Please see the release notes for 0.12.1 for more information

# 0.12.1

- **[Breaking Change]** [Refactoring] Non-core module packages are no longer included with the default distribution and will need to be downloaded and installed by NuGet at runtime, see https://wyam.io/knowledgebase/migrating-to-0.12.x for more information (#275)
- [Feature] Preprocessor directives are now supported in your configuration files for NuGet package and assembly loading (#274)
- [Feature] The CLI also supports a similar syntax to the preprocessor directives for specifying NuGet packages and assemblies on the command line (#280)
- [Feature] We now have a Windows installer! (#127 and #283, thanks @FlorianRappl)
- [Feature] We also now have a Cake addin! (#129 and #276, thanks @gep13)
- [Refactoring] Migrated internal NuGet libraries to v3 (#190)
- [Refactoring] Moved configuration file and NuGet API logic out of Wyam.Core to new Wyam.Configuration library (#279)

# 0.12.0

- **MAJOR BREAKING CHANGES, BEWARE YE WHO ENTER HERE!*- - The entire I/O stack has (finally) been rewritten and modules that were using `System.IO` classes have been ported to the new abstraction - read about how to migrate your pre 0.12.0 code at https://wyam.io/docs/advanced/migrating-to-0.12.x and keep on the lookout for bugs
- [Feature] New globbing engine with brace expansion, negation, and wildcard support (see https://wyam.io/docs/concepts/io for more details)
- **[Breaking Change]** [Refactoring] ReadFiles now uses the new I/O API and several configuration methods have been removed or changed
- **[Breaking Change]** [Refactoring] `IDocument.Source` is now a `FilePath`
- [Feature] You can now explicitly specify if a given `FilePath` or `DirectoryPath` is absolute or not
- **[Breaking Change]** [Refactoring] Moved `IMetadata.Link()` to `IExecutionContext.GetLink()`
- [Feature] Control global link settings (like hostname or whether to hide extensions) from `ISettings` (available from config file as `Settings`)
- [Feature] New `MinifyHtml` module that can minify HTML content (#260, thanks @leekelleher)
- [Feature] New `MinifyCss` module that can minify CSS content (#266, thanks @leekelleher)
- [Feature] New `MinifyJs` module that can minify JavaScript content (#266, thanks @leekelleher)
- [Feature] New `MinifyXhtml` module that can minify XHTML content (#266, thanks @leekelleher)
- [Feature] New `MinifyXml` module that can minify XML content (#266, thanks @leekelleher)
- [Feature] Added `IMetadata.FilePath()` and `IMetadata.DirectoryPath()` to make getting strongly-typed paths from metadata easier
- **[Breaking Change]** [Refactoring] Refactored several methods in `FilePath` and `DirectoryPath` into properties (`FilePath.GetFilename()` to `FilePath.Filename`, etc.)
- [Fix] Added support for root sequences to the Yaml module
- [Fix] Engine now retains global metadata between invocations in watch mode (#269, thanks @miere43)
- [Feature] New `Combine` module that can combine multiple documents into one
- [Refactoring] Content from NuGet packages is no longer copied to a staging folder and is instead retrieved directly

# 0.11.5

- [Fix] Well this is embarrassing - fix for the fix to properly handle undownloaded NuGet packages

# 0.11.4

- [Fix] Ongoing work with IO abstraction layer (#123, #214) to resolve some file system errors on build

# 0.11.3

- [Fix] Specifying input path(s) on the command line now correctly removes the default input path (#241 and #231)
- [Fix] Correctly handle paths that contain single . chars (#244)
- [Fix] Duplicate trace messages when config file is changed in watch mode (#243)
- [Feature] New support for specifying global metadata on the command line and accessing it from config files, the engine, and the execution context (#233 and #237, thanks @miere43)
- [Fix] Incorrect number of pipelines reported in output (#235 and #236, thanks @miere43)
- [Fix] Exceptions are now highlighted in the CLI (#230 and #232, thanks @miere43)

# 0.11.2

- A special thanks to @deanebarker who contributed a ton of new functionality as well as generated lots of great ideas, discussion, and bug reports - this release wouldn't be what it was without his help and support
- Note that the I/O abstraction support is still under development and may continue to change in the next version
- [Feature] Support for custom document types (#183)
- [Feature] Support for reading from stdin, including a new `ReadApplicationInput` module (#226, thanks @deanebarker)
- [Feature] New command-line switch `--verify-config` for validating the config file without actually running (#223, thanks @deanebarker)
- [Feature] New `ValidateMeta` module for validating metadata (#220, thanks @deanebarker)
- [Feature] New command-line switch `--preview-root` to set an alternate root path for the preview server (#213, thanks @deanebarker)
- [Feature] New `Merge` module that merges the content and metadata from documents output by a module sequence into the input documents 
- **[Breaking Change]** [Refactoring] ReadFiles now outputs new documents and only reads the files once if supplying a search pattern, to replicate the old behavior where ReadFiles read the matching files for each input document wrap it in the new Merge module
- [Feature] New `GenerateCloudSearchData` module to generate JSON data for AWS Cloud Search (#213, thanks @deanebarker)
- [Feature] New `Take` module that only outputs the first N input documents (#208 and #211, thanks @deanebarker)
- [Feature] New `CopyMeta` module to allow copying metadata from one key to another with optional formatting (#209 and #207, thanks @deanebarker)
- [Feature] Added `.WithGuidMetaKey()` to the Rss module to specify a metadata item that has the GUID (#206, thanks @deanebarker)
- [Feature] A tools NuGet package is now published that includes the CLI (#204)
- [Feature] Added void delegates to Execute module so you no longer have to return a value (#194)
- [Feature] Added `.IsRegex()` to Replace module (#201 and #203, thanks @deanebarker)
- [Feature] New `ModuleCollection` module to wrap a sequence of child modules for reuse (#197)
- [Feature] Added `IMetadata.Documents()` to return an `IReadOnlyList<IDocument>` from metadata (#200)
- [Feature] Added `IMetadata.Document()` to return an `IDocument` from metadata
- [Fix] Type conversions now properly take compatibility with enumerated item type into account (#198)
- [Fix] Fixed possible race condition when cloning documents with different sources (#196)
- **[Breaking Change]** [Feature] Implemented new IO framework and replaced all uses of strings for passing path information with new IO classes, `Engine.RootFolder`, `Engine.InputFolder`, and `Engine.OutputFolder` are now replaced by `IFileSystem.RootPath`, `IFileSystem.InputPaths`, `IFileSystem.OutputPath` (#123)
- **[Breaking Change]** [Refactoring] Changed `Trace` to a static class to better support forthcoming parallel pipeline processing
- **[Breaking Change]** [Refactoring] `Metadata` property in config file renamed to `InitialMetadata` to distinguish from run-time metadata
- [Refactoring] Removed the need to pass `Engine` to many core classes since it was just needed for the `Trace` instance (which is now static)
- [Refactoring] Split internal configuration classes for better separation of concerns and testability
- [Refactoring] Added Wyam.Testing library with common testing classes
- [Refactoring] Reorganized tests to better follow a specific convention
- [Refactoring] Changed color of critical errors in the console to white on a red background for better readability (#182)
- [Refactoring] Changed model type of Razor pages to `IDocument` instead of `IMetadata` (#188)
- [Refactoring] Uncaught exceptions now cancel the build (#187)

# 0.11.1

- **[Breaking Change]** [Refactoring] Changed the name of the release file from `wyam.zip` to `wyam-[verson].zip`
- [Fix] Namespaces are now added for `Engine.Configure()` calls without a script (#147 and #148, thanks @heavenwing)
- [Fix] CopyFiles was no returning a sequence for invalid folders (#166)
- [Fix] Better documentation and small bug fixes for CopyFiles (#158)
- [Fix] Excludes the output folder from watching (#156)
- [Fix] Fixes some odd behavior with FileName used with WriteFiles (#159)
- [Fix] Better failure handling to overcome locked file errors when watching (thanks @miere43)
- [Fix] Implemented file operation retry for several modules (#167, #169)
- [Feature] New `Rss` module (#174, thanks @miere43)
- [Feature] Added support for unknown file types to preview server (#175)
- [Feature] Added more specific error codes (#171)
- [Refactoring] Small improvements to Yaml module (better error messages, parallel processing) (#177)
- [Feature] New `GitHub` module (#145)
- [Feature] Added `Meta.IgnoreNull()` to control if null values should still be added to metadata
- [Feature] Added `IMetadata.Dynamic()` to return metadata values as dynamic objects
- [Refactoring] Adds an extra optional key to the cache for use by module authors
- [Feature] Added additional Markdown module constructor to render Markdown content in metadata
- [Feature] New `Json` and `GenerateJson` modules to read and write JSON data (#5)
- [Feature] Added support for setting input and output path from the configuration script
- [Fix] Git module now correctly ascends folder hierarchy
- [Refactoring] Migrated build system to Cake

# 0.11.0

- [Feature] New `Download` module for downloading content during generation (#68 and #75, thanks @dodyg)
- [Feature] New `AnalyzeCSharp` module that performs code analysis on C# source files, including XML documentation comments (#70)
- [Feature] New `ReadProject` module that loads all the source files referenced in an MSBuild project (#70)
- [Feature] New `ReadSolution` module that loads all the source files referenced in an MSBuild solution (#70)
- [Feature] Added `WithoutExtensions()` to CopyFiles to make it easier to specify which files to copy
- [Feature] Added additional `IExecutionContext.GetNewDocument()` overloads
- [Refactoring] Moved `Crc32` to `Wyam.Common` so other module libraries can also use it
- [Fix] NuGet support now considers .NET 4.6 packages when resolving libraries
- [Fix] Console application now exists with a non-zero error code so automated builds can be aborted if something goes wrong
- [Refactoring] Additional trace output for debugging, especially in NuGet resolve process
- [Refactoring] Better example test fixture (thanks @yetanotherchris)
- [Refactoring] Moved `Wyam.Common` types to appropriate nested namespaces
- [Feature] Added `WithMatchOnlyWholeWord()` to AutoLink module (#80, thanks @LokiMidgard)
- [Feature] New `HtmlEscape` module for escaping HTML characters (#81, thanks @LokiMidgard)
- [Feature] Additional `ToLookup()`, `ToDocumentDictionary()`, and `ToDictionary()` extension methods for `IDocumentCollection` (#82)
- [Feature] Added new `Execute()` constructor to Execute module that only gets evaluated once per pipeline (#83, thanks @LokiMidgard)
- [Feature] New `GitCommits` and `GitContributors` modules for getting information from Git repositories (#84, thanks @LokiMidgard)
- [Feature] New `ConcatBranch` module for branching and then concatenating the output (#87, thanks @LokiMidgard)
- [Feature] New `DirectoryMeta` module for applying metadata supplied for an entire directory to all documents sourced from that directory (#86, thanks @LokiMidgard)
- [Fix] Fixed several file locking issues (#92)
- [Feature] Performance boost by using parallel disposal at the end of pipelines
- [Feature] Added `ThenBy()` to OrderBy module (#101, thanks @LokiMidgard)
- [Feature] Can now output the config script files the way Roslyn sees them (after adding modules, etc.) for debugging purposes using the `--output-scripts` flag (#99)
- [Feature] New `FileName` module for generating SEO-friendly file names (#99, #104, and #107, thanks @yetanotherchris)
- [Feature] Added `UseWriteMetadata()` to WriteFiles module to control if metadata values are used for file destination (#106)
- [Feature] Default for FrontMatter module is now to ignore delimiter(s) if on the first line
- [Feature] All configured namespaces are added as `IExecutionContext.Namespaces` for other code generating modules to use
- [Feature] WriteFiles module now sets relative path information metadata (#111, thanks @reliak)
- [Feature] New `Sitemap` module to generate standards-compliant sitemap files (#113, thanks @reliak)
- [Feature] New `Xmp` module to import XMP encoded metadata (#114, thanks @LokiMidgard)
- [Feature] Updates to CopyFiles for better path handling (#116, thanks @reliak)
- [Feature] New `SearchIndex` module to generate Lunr.js compliant search indexes (#118, thanks @reliak)
- [Feature] New `Switch` module to provide `switch` statement like control for a pipeline (#120, thanks @reliak)
- [Feature] Added `IgnoreEmptyContent()` to WriteFiles module to ignore empty files (#117)
- [Feature] New `Xslt` module to apply XSLT transformations (#126, thanks @LokiMidgard)
- [Feature] New `CsvToHtml` and `ExcelToCsv` modules for working with tabular data (#132, thanks @LokiMidgard)
- [Refactoring] Removed static helper methods in `MetadataHelper` and replaced with `MetadataItem` and `MetadataItems` classes to make working with metadata easier
- [Refactoring] Renamed `Wyam.Core.MetadataKeys` to `Keys` and moved to `Wyam.Common` for common access (#131)

# 0.10.0

- [Feature] Added additional overloads to the `Documents` module that allow you to create new documents from scratch
- [Feature] New `IExecutionContext.GetNewDocument(...)` method that also allows you to create a new document from scratch from within your modules
- [Feature] New `GenerateMeta` module that procedurally generates metadata text using a text template (#55)
- [Feature] New `GenerateContent` module that procedurally generates document content using a text template (#55)
- **[Breaking Change]** [Refactoring] Renamed several fluent methods to better follow accepted fluent method naming conventions (I.e., `Xyz(...)` to `WithXyz(...)`)
- [Fix] Resolved memory consumption problems with using a large number of Razor templates by caching referenced assemblies (#69)
- [Feature] New `UnwrittenFiles` module that can prevent processing pipeline documents that have already been written to disk in a prior generation (#56)
- [Feature] Added `.WithExtensions(...)` fluent method to the `ReadFiles` module that makes it easier to restrict file reads to a set of file extensions
- [Feature] New `HtmlQuery` module that provides powerful querying of HTML content and sets result document content and/or metadata based on the results

# 0.9.0

- [Feature] New `Paginate` module for partitioning documents into pages (#60)
- [Feature] New `GroupBy` module for grouping documents
- [Feature] New `OrderBy` module for ordering documents (#61)
- [Feature] Several new constructor overloads to the `Documents` module that allow you get documents based on context.
- [Fix] Errors in the config file now report the correct line numbers (you will never know the pain I felt trying to get this to work correctly) (#67)
- [Refactoring] Changed `IDocument.Stream` to `IDocument.GetStream()` which now returns a wrapper stream that blocks on usage and must be disposed after use to prevent concurrent stream access for the same stream (#65)
- [Feature] Added support for automatic lambda expansion of `@doc` and `@ctx` variables in the configuration file
- [Feature] Added `ContextConfig` and `DocumentConfig` delegates to support the new automatic lambda expansion and encourage a standardized way of lazily configuring a module (#63)
- [Feature] Added `ConfigHelper` to support the common module configuration pattern where a module has either a `ContextConfig` or a `DocumentConfig`
- [Refactoring] Removed the `ConcatDocuments` module. The behavior can be easily represented by using other existing modules: `Concat(Documents(...))`
- [Fix] Fixed a bug in the Execute module when returning null
- [Fix] Fixed a bug in the ReadFiles module when no files match the specified pattern
- [Fix] Fixed some bugs in automatic module constructor factory method generation for configuration files for generic modules
- [Refactoring] now using more collections from System.Collections.Immutable for improved performance and safety

# 0.8.0

- [Feature] Improved caching support in multiple modules including Razor and Markdown
- [Feature] New `IDocument.Source` property to uniquely identify the source of each document (#38)
- [Feature] New `AutoLink` module for automatically generating links within HTML content (#36)
- [Refactoring] Major changes to how Wyam handles the storage of content inside a document to include operating on streams and/or string buffers for increased performance (#42)
- [Refactoring] Improvements to document and engine life cycle for proper disposal of resources
- [Feature] New `Images` module for manipulation of images within a pipeline (#25 - thanks @dodyg)
- [Refactoring] Renamed `Wyam.Abstractions` to `Wyam.Common` to reflect that it also contains non-abstract common code (#45)
- [Feature] New `ForEach` module that allows processing child documents one at a time (#47)
- [Fix] Fixes to how the Less module handles relative URLs (#49 - thanks @rohansi)
- [Refactoring] Made the cache thread-safe for parallel processing within a module (#50)
- [Refactoring] Changed behavior of several modules including Razor, Less, Markdown, ReadFiles, and WriteFiles, to process documents in parallel resulting in significant performance improvements
- [Feature] ASCII art FTW
- [Refactoring] Moved `PathHelper` to `Wyam.Common`
- [Feature] New `Excerpt` module that can excerpt the first specified element from HTML content and add it to metadata (#26)
- [Feature] New `processDocumentsOnce` flag that can skip any documents previously processed by the pipeline (#56)
- [Fix] Fixed a bug with Razor sections and `IRazorPage` instance reuse on subsequent pipeline executions (#58)

# 0.7.0

- Moved all the libraries from alpha to beta to reflect improving stability
- [Refactoring] Updated all projects and solution to Visual Studio 2015 and .NET 4.6
- [Feature] Added ability to specify alternate ViewStart paths for the Razor module (#37 - thanks @mschumaker)
- [Feature] Added ability to specify file ignore prefixes for the Razor module, files prefixed with `_` are now ignored by default (#37 - thanks @mschumaker)
- [Feature] Added additional metadata to `ReadFiles`: `SourceFilePathBase`, `RelativeFilePathBase`, and `RelativeFileDir`
- [Feature] Added additional metadata to `WriteFiles`: `DestinationFileBase`, `DestinationFileExt`, `DestinationFileName`, `DestinationFileDir`, and `DestinationFilePathBase`
- [Fix] Better normalization of file paths
- [Feature] Adds a new `string IMetadata.Link(string key, string defaultValue = null)` method for automatically formatting links for HTML use (I.e., replacing slashes)
- [Refactoring] Updated to Roslyn 1.0
- [Feature] Adds a new universal `IExecutionCache` for modules to use for caching data

# 0.6.0

- [Feature] Yaml module now maps simple scalar sequences to metadata when flattening
- [Refactoring] Switched from Roslyn scripting engine to direct compilation for configuration files, improving capabilities of configuration file declarations (extension classes, etc.)
- [Fix] Lots of fixes and updates for assembly locating and loading
- [Feature] Implemented support for custom Razor base page types
- [Feature] Added new `Documents` module that replaces the documents in the pipeline with alternate ones
- [Feature] Added overload to the `Execute` module that allows use of the execution context
- [Refactoring] Moved `MetadataKeys` class out of `Wyam.Abstractions` to `Wyam.Core` so that `Wyam.Abstractions` would be more stable, though this means user code will have to go back to strings for metadata keys
- [Feature] Added ability to override write location in the `WriteFiles` module on a per-document basis by setting specific metadata
- [Feature] `IDocument` now implements `IMetadata` so metadata can be retrieved directly from the document object
- [Feature] Added a `.String(...)` method to `IMetadata` to make getting string values easier
- [Refactoring] Created a new `IDocumentCollection` interface and implementations to provide a better API for getting documents during execution
- [Feature] Implemented support for converting metadata between array types and between scalars and array types
- [Feature] Implemented a `.ToLookup<T>(...)` extension method to generate a lookup table of metadata values to documents (for example, get all tags and the documents that define those tags)

# 0.5.0

- [Feature] Implemented a **Less CSS*- module
- [Fix] Fixes for NuGet package dependencies
- [Feature] Can now declare prerelease NuGet packages in configuration file without specifying version specification
- [Feature] Calls to `System.Diagnostics.Trace` from third-party libraries are now picked up by a custom `TraceListener` and output to the Wyam `TraceSource`
- [Refactoring] Renamed several metadata keys for consistency
- [Feature] `Engine` now implements `IDisposable` for better lifecycle management

# 0.4.0

- [Feature] Added a `Concat` module to concatenate documents from child modules with the current documents
- [Feature] Added a `ConcatDocuments` module to concatenate documents from previous pipelines with the current documents
- [Feature] Added a `Where` module to filter the current documents with a predicate
- [Refactoring] Moved the predicate in the `Branch` module to a fluent `.Where(...)` method to follow established conventions
- [Feature] `IPipelineCollection` now implements `IReadOnlyDictionary<string, IPipeline>`
- [Feature] `IPipeline` now implements `IList<IModule>`
- [Feature] A new `IReadOnlyPipeline` interface that implements `IReadOnlyList<IModule>` has been introduced for use during execution (since pipelines can't be changed once execution starts)
- [Feature] Added a test fixture to run all examples during testing
- [Feature] Added `RootFolder`, `InputFolder`, and `OutputFolder` as available properties in the configuration script
- [Refactoring] Renamed the `Metadata` module to `Meta` so it wouldn't conflict with the `Metadata` property in configuration scripts
- [Feature] Specifying `--watch` now also watches the configuration file and initializes a new engine if it changes
- [Refactoring] Updated the default configuration (for when no configuration file is specified or found) to use a single pipeline for Markdown and Razor documents

# 0.3.0

- [Refactoring] Added the Roslyn nightly packages to source control for easier builds (since they don't stay on the feed for long)
- [Feature] Added sequence of configured assemblies to the `IExecutionContext` (so modules like Razor can pick them up)
- [Feature] Added a new `MetadataKeys` static class to `Wyam.Abstractions` to help eliminate magic strings

# 0.2.0

- [Feature] Implements default configuration
- [Feature] CopyFiles now sets metadata values for SourcePath and DestinationPath for each document
- [Fix] Crashes when certain directories didn't exist
- [Refactoring] Trace module now follows fluent conventions

# 0.1.1

- [Fix] Fixes a bug with parsing some of the command line argument options
- [Feature] Adds support for specifying input and output folder on the command line

# 0.1.0

- Initial release!
ru-ru\JavaScriptEngineSwitcher.Core.resources.dll
md5: 0001407B8EADAD1B19CF9BEA831DDA2C | sha1: 736C35F937EA830B8BB507F5E3B8AB53A6296E1A | sha256: 49E409C87F4B003FF4D2AC737E9842360CE4E67E0B183C86F322C5B2DC13F501 | sha512: 94F70C2E46AA6C83A345426B4C02E74C487932B7A303E4CA53240A110CAE2B1D0126A2C3F7B62460B8BC03C84AAF330771D56B460C6F4A591C7D23B2143DB738
ru\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: FBB4295E954D8286C076857E65010115 | sha1: F50377D17780E70220B7B59871BC8C1136A9B3AC | sha256: 9D09980DC36270B3F0DB46ED5D62354216D07B4CEC674B0292B9C88CDF3EE4A8 | sha512: 738A65CE9795DB36A34FBFCDF764F07A8D53EC85EB8EEE25C34DBCEC1C83007B751F2AD51925311309D318FC54A0BBE21460DE524F0D8993F4A5EFB9AFBB17E1
ru\Microsoft.CodeAnalysis.resources.dll
md5: 349EC8CCBD6BE9A4D84D75257A8BCD78 | sha1: 6BA8F23BCAC23E948D10DE94F5A8C0CE53BFAC49 | sha256: 57219F5D9C803F19775482FD33F9672A86A973150FA8949095D0B581F67C782E | sha512: 1F5CCF6A76A8172DA9B367C35473143E2056F26436A967951F67AA0FC68F48B4E2E81DDB9D6435DB74AB89DDCAB3C34CBA81ED515D143A934F29E86AFC933470
runtimes\linux-x64\native\libsass.so
md5: 95A9CBA90A746AB6660BAF91832B5354 | sha1: EFFFFD80E62B1955B39E935F1A5236431C055B8A | sha256: 75A2E4A7A2968385F3C25A8BA05FC435B0B7EB5D8C59B8353B5979066150C24C | sha512: 90F6EA062CACCC26F3E94BD716E26746F3D2FE36908409FB41B90207EDCF641C4015B160555E5A2D30D5CCE62801052EC41F8F6E82C953B22EC4A08EB62FBE2F
runtimes\osx-x64\native\libsass.dylib
 
runtimes\unix\lib\netstandard1.3\System.Security.Cryptography.ProtectedData.dll
md5: 37A48E5FB112F17A4F558615AFEC2D5D | sha1: BCD06A0F76B3E142DFC5DBF726B7C9EC3F608B25 | sha256: 9B6AD48290BD90E2B79B97AF93FA5DD6617D5F6634F25AAA9AFCB5159E14FFF9 | sha512: 9E1766F44DD2B1BF065B7278F6C232C2CEE6869363B328E07EF765D0C9348C81B226BA728306706E6CD3DF42F6070494604E47DE6070EBCB5380E91E8604049E
runtimes\unix\lib\netstandard2.0\System.Data.SqlClient.dll
md5: AF84C0E8D7F3389C891DB889FFE1D731 | sha1: C2B2A0288002ECBEFF7B8AC4B242B74682063BC7 | sha256: 8E6C67E56D0927912C0B597FBDA7442E8143175DAB8EAA96EB6E0F78D03BF082 | sha512: EB632B64DD6D9018E2D717D2E5B69CF4BE3403433D01A2924454F975A0B10CDB163D3029D69AF5E0452A8E749296C0B261A8CA57BF756BAFBA70D3F5792273F7
runtimes\win-arm64\native\sni.dll
md5: 167136D7A81BCC85ACF4930AA7AC835F | sha1: 1E70240CC820796E78D77B1219291EEE2FB6DBE0 | sha256: EF18458C4DCB93F6B4EAC07E1589CF3450BF878F2DD623F5D34F6A0F1B16E57A | sha512: 2C084142E09AE1B850F8550A55142FBBF996F3DFB122BBCAD4FFFC11A6FDC5417D623683F383C4AC4A35E46EA0D441D82588231093F179FF4601CC598A1C8896
runtimes\win-x64\native\libsass.dll
md5: 408FF591D603C73A37C81A89FFB31EE8 | sha1: 96698904A19B0D14B5F8151DA62D9476081B1FC1 | sha256: 4AACB9E837B418561D5561C5C612E9DFF21808848277C1C8B907475985AE0BDA | sha512: 9F1318895BD5A44339739E5F04C8C2205B1AA0F60EAB2020DD32B3A825AE6D3935DD970E5CA70506740087DD99CD166ECD9914DCD4EC0DC999634EC0BFDC0969
runtimes\win-x64\native\sni.dll
md5: 7F1799B65B98450A19E4D049E9D3E70D | sha1: EC80C5A33374423A9E986C383A36A97DA70A3584 | sha256: 68705C4EF9AB818F2956A78E05F3FEFCE501A1448793B073B46110BEB49B47D6 | sha512: 8D67297C5CDED487C88FCAAD5A36E80926DAD8F1863E38F397751056F51258AC7B5A9E5C09C01BBA7A224F38FB2EE719586FAF0BA81516E05A19649EB09E7B78
runtimes\win-x86\native\libsass.dll
md5: 66E834F0E04F34EB869EA45A6609FA3F | sha1: 908C5D82F5DADD91EFFA014445CC7E3C56FAFF14 | sha256: 56279C0C80EF8CE3E52FF620280900236E8EFA35069B60FA4DC8EE2682DD534F | sha512: 1BA8A3833AF1DE80DD010483092473898CB90FFB6D74B275C3DABA45F8B7B4612CB76EAC8FF3FED5DC336CDA0E94F1161E06B5552FF917F33967C00423973684
runtimes\win-x86\native\sni.dll
md5: C62A83F20BC23AEFACE70EC13003C4C5 | sha1: 35553CFCDCBECCDC49710E68AEC495C16880F0BD | sha256: 1446D6B26DA49A5A9F366972F89F4E236F916955F31DDC38EBB96217C1CACE9C | sha512: 4DDA44FD5B538F5DA9E8CB46A3AB1BDC14B43425B9A61249ECCC925D986AF7B8B3548DB9490238F14807909ECF479415117141DDB344119438A59F97E894EA37
runtimes\win\lib\netcoreapp2.0\System.Text.Encoding.CodePages.dll
md5: 8000FFCC22FE0B7CA78163A8FDA9EC19 | sha1: 51D99EFDF90570AB1CD10E9599B61BC97BDD680E | sha256: 963E7CF70E9353AD82AC2BA79D0023B8142375E53211ECD7694F0AA67236AA39 | sha512: 9C472A8F8308E7E42754FDFD8FFB460FC104A2F3382DB4C7E6C41DE45307401A5B74586442DEEF9B1BF67A9B356C115FB08E5A9AEA1972D9BFBCD65A9F83127F
runtimes\win\lib\netstandard1.3\System.Security.Cryptography.ProtectedData.dll
md5: 69568BB8F2EDF32194EB20E797B6E0D2 | sha1: DE055F9DB84BBA80ABCE2DBEEBBBE61922703096 | sha256: 8235C323DDAAD8C3DD2AC54131F218ABD5CE0ADFB6C84596EAD0E576CCF25A06 | sha512: AC022792F9E6933A34EAAD15461AD58844DD7FF3127C0984C722155AAC700FA3AA83A0B6DAB99FDC7E24D38AB25244CC3056D676FE9FB508CB26E349B4ADE2D3
runtimes\win\lib\netstandard2.0\System.Data.SqlClient.dll
md5: EC1FD218D94433B74E1A66179D8CFD45 | sha1: 9AA00F426F28926806ED544B56D6440793568528 | sha256: B3C0FC7A6BFEBE7EBCF2444062D9319ABB15796629FC7332BBE32778C82CDBB3 | sha512: A17238B9617184428C844AE53EB686D4B3A7243340F931477A2622B08A46C03C96FFEA077E846E9F665ED2B855FE4CF6EC21EE0753CDE409E2A616456643BB40
SharpScss.dll
md5: D90B0EC4A21567915719B9887DD5C15D | sha1: BD222180ADBC258DA6299AEDA15E3F9B70603FF8 | sha256: 494F7AC88C9FC3A8A91904E49CD2C87406E9C467A81568B5691053C850BC64A4 | sha512: 88E614076C9273CA3D15C89A9642BC0212F00C17EDA8DA3FC8C11CAF48BACD78DDBD921A4BA6D600241B121D074030F85E0F0C47E8C977A92F324A0F78DB205B
System.CommandLine.dll
md5: DCA696CBB6268F6C661CD5E09E9992FD | sha1: 0F2035EAA9E455E3F8B1C1534DA48688E9979DD8 | sha256: 53FD9C5C156F391B266470B21BEF3610B782C5A54B0494F732C19BEC912F9128 | sha512: A07A98E8D44E8A31888143D7D85BCA860E0C4DE86D97C16F5A5AD9695B58B15561A5D282D74E5980EC48B8D354FE77ACE95C1CC0DECF15F6EB13D5AED1CA5ADB
System.CommandLine.pdb
 
System.Data.SqlClient.dll
md5: 10E82205854D765771A53C56A4979FFF | sha1: 42BEFECCF5D9E60F8C6C83803C9464F4328B57BF | sha256: 367B4D95C0722F4E35D6781757710F10412EB2F281D913349BB9168918A8D1DC | sha512: 4760E64CA3B2114BD54565D2AE4F9860C11305585CB83B362D1EBE147820DFCA4243A0A189D8970EE99BFFEC47606E63FA6C876722EBCFE4612CF9498287DE11
System.IO.Pipelines.dll
md5: A813FFA2A41CEFCE84E54E51904B6310 | sha1: 25732AE1779EE54A1BF95B67F4A88FBEF2BD74D1 | sha256: 74C215BB55247F0199C9FD4B2C60E60D7D807CE81BD4D3EE84DADCEA89718DFF | sha512: B8EC74D4901BE99BF1B4B17771D362BD77B80BEC1F1E0A1F8A6966E3E93CD719F6DF3FC5E7A429A587A773FAFCAAE22C16669967A508279B2B24C3F1B614EC45
System.Net.WebSockets.WebSocketProtocol.dll
md5: 55EC67BB91E131FD59BA8CCF4B8627B7 | sha1: AB0D022EF4D19AE881B3D1116F6CCE440D1570D0 | sha256: 8FCD5E840E7390E46B57667F4DDE8D226BDE2DA65E529D4154D86CCD86556A68 | sha512: F539F96DC83FEB9AA3AD1D2536105325091F3457B3C708E00C88A97E6B971A7BEA776C1E2884EC037323634B483896C28A8C7A17EE54FEE718209FF93177F735
System.Runtime.CompilerServices.Unsafe.dll
md5: 984670E1A811372E62FEFCEBE0812108 | sha1: 746F1F461A8A629A8FB7C9544F2D49E9FAA38C96 | sha256: 82ED567F7DB6C8A4EC82E19FF9DB1D5646E845956BA24117D96346BC231624C7 | sha512: 6D88146793A042F432CDDA3CDB8B81A5CBE903DA67F98059A4EA5599AA4337C277787EEB847A0E54DAD9CA58602170623444446431AEE277A849FC3829B2EB6C
System.Text.Encoding.CodePages.dll
md5: 68B1D7C652A6BFF4877702295924282F | sha1: 212993E657A71D97AE877DA7E14DFAE9CF8575C8 | sha256: 104C64F8427AE85BD98BCDC862998E7B85FEE009AF91E43190E53DDD49EB9840 | sha512: 045E325564F9850D993508D88A30AD5E921D86B7ABBD45A1AC03BA44EF2A05AE51277ED49366EF3B6DCEB7B4FEF18BB0C3A89E23BC34AC6DAD2ABD278610A967
System.Text.Encodings.Web.dll
md5: CC8EC58D65F00F81C9FD4599C0E2D74B | sha1: D59E6886E01F31F56F848A5AA728190F0C27AA49 | sha256: 5E4C15EAD9A7417D1D31707EBB0DB1709C95D5F2D5D9D6D5DDCED5A96D0EBE06 | sha512: 05A4455362EBF7F7C0B90927F6DAD4D226186CC5B30F7B003275F94EA553CD60331E886C8EBE03372BA70647DEC762932E504B3D632647C64AA381B9D3D7D508
tr\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: AB6B3C9EBEAB25724B0BBC73A60D5D0A | sha1: 418F09375A55B3D49678FB6BC2709CFCB38148E2 | sha256: AF81E13ACCF20C7F5FBB71EC51FCD38C2AD874A9344BFBED86C2B92F50B7C540 | sha512: 82EB35522590B087560A050DACEE1FFAC3BEF6160EA7B2C83D63352DDCF1DFCE92D6405028E1160B07D6708269FAB578633A4D289D40C0F907148838F40C840D
tr\Microsoft.CodeAnalysis.resources.dll
md5: C63293ECDBC5DB82A731A9E1C1558CE4 | sha1: A63F5A87F6716A9F57F6DAE07C68685FEAB6C2C5 | sha256: AD9B36FF45676A128D2ECD07B37DCD3AEC16DA84382DB199C9B13A4E5962A018 | sha512: 4CF212FF27EC151170584B5F3B7D58AC011B44F1407CCB24AC7A9E1BCD9E936B5A952A42B7AE6EE6D2CCE4891106C3CC4F556FCEF158FD210A68B80E03076BE9
UniversalTypeConverter.dll
md5: 398C1123EB0403260083C682F57F3BAD | sha1: CB4606F9CB63041A9F54F1733B199B1BBB2A65AD | sha256: D27ED7443C7A959E74AD6475A06B9301C80B9C701D56AD63410973A6242B1CBA | sha512: 19492A209F362E7521A94F4C5D76ECEFFB92A5A4AB8A8D46E7746A408AAE94BA84D21061B751AEB53610F94543437A85D771484753194AADDDDC8B030FE69A6D
VERIFICATION.txt
VERIFICATION

Verification is intended to assist the Chocolatey moderators and community
in verifying that this package's contents are trustworthy.

This package is published by the Wyam Project itself. The binaries are 
identical to other package types published by the project, in particular
the Wyam nuget package.
Wyam.Common.dll
md5: A5E321225A120D9E71ED95FF4A41027C | sha1: ED6C4B73F5BBDA334C972C447E54922D44EF0B9B | sha256: 40201D79CDAF527F93EC99FA53910FE329B04980E3332B3D1231EA0419FE9D8B | sha512: 960C9E8A640708446C4B8328336F61D90DE421F500D430B8925B8418751CC75B9E05A0F699E0A0978A5990623A82C19F7F1C2CF5E9B3B95CE446BCD1A2566EB9
Wyam.Common.pdb
 
Wyam.Common.xml
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Wyam.Common</name>
    </assembly>
    <members>
        <member name="T:Wyam.Common.Caching.Crc32">
            <summary>
            A helper class to quickly calculate CRC32 codes.
            </summary>
            <remarks>
            The implementation was originaly taken from the ASP.NET v5 Razor caching implementation.
            </remarks>
        </member>
        <member name="M:Wyam.Common.Caching.Crc32.Calculate(System.IO.Stream)">
            <summary>
            Calculates a CRC32 code from a stream.
            </summary>
            <param name="stream">The stream.</param>
            <returns>A CRC32.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.Crc32.Calculate(System.String)">
            <summary>
            Calculates a CRC32 code from a string.
            </summary>
            <param name="str">The string.</param>
            <returns>A CRC32.</returns>
        </member>
        <member name="T:Wyam.Common.Caching.IExecutionCache">
            <summary>
            Provides a cache that can be used by modules during execution to persist data
            between engine executions. Cached data is keyed by both a document and an
            optional key string.
            </summary>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.ContainsKey(Wyam.Common.Documents.IDocument)">
            <summary>
            Checks if the document key is in the cache.
            </summary>
            <param name="document">The document key.</param>
            <returns><c>true</c> if the key is in the cache, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.ContainsKey(Wyam.Common.Documents.IDocument,System.String)">
            <summary>
            Checks if the document and string key is in the cache.
            </summary>
            <param name="document">The document key.</param>
            <param name="key">The string key.</param>
            <returns><c>true</c> if the key is in the cache, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.ContainsKey(System.String)">
            <summary>
            Checks if the string key is in the cache.
            </summary>
            <param name="key">The string key.</param>
            <returns><c>true</c> if the key is in the cache, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.TryGetValue(Wyam.Common.Documents.IDocument,System.Object@)">
            <summary>
            Attempts to get a cached value from a document key.
            </summary>
            <param name="document">The document key.</param>
            <param name="value">The cached value.</param>
            <returns><c>true</c> for a cache hit, <c>false</c> for a cache miss.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.TryGetValue(Wyam.Common.Documents.IDocument,System.String,System.Object@)">
            <summary>
            Attempts to get a cached value from a document and string key.
            </summary>
            <param name="document">The document key.</param>
            <param name="key">The string key.</param>
            <param name="value">The cached value.</param>
            <returns><c>true</c> for a cache hit, <c>false</c> for a cache miss.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.TryGetValue(System.String,System.Object@)">
            <summary>
            Attempts to get a cached value from a string key.
            </summary>
            <param name="key">The string key.</param>
            <param name="value">The cached value.</param>
            <returns><c>true</c> for a cache hit, <c>false</c> for a cache miss.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.TryGetValue``1(Wyam.Common.Documents.IDocument,``0@)">
            <summary>
            Attempts to get a typed cached value from a document key.
            </summary>
            <typeparam name="TValue">The type of the cached value.</typeparam>
            <param name="document">The document key.</param>
            <param name="value">The cached value.</param>
            <returns><c>true</c> for a cache hit, <c>false</c> for a cache miss.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.TryGetValue``1(Wyam.Common.Documents.IDocument,System.String,``0@)">
            <summary>
            Attempts to get a typed cached value from a document and string key.
            </summary>
            <typeparam name="TValue">The type of the cached value.</typeparam>
            <param name="document">The document key.</param>
            <param name="key">The string key.</param>
            <param name="value">The cached value.</param>
            <returns><c>true</c> for a cache hit, <c>false</c> for a cache miss.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.TryGetValue``1(System.String,``0@)">
            <summary>
            Attempts to get a typed cached value from a string key.
            </summary>
            <typeparam name="TValue">The type of the cached value.</typeparam>
            <param name="key">The string key.</param>
            <param name="value">The cached value.</param>
            <returns><c>true</c> for a cache hit, <c>false</c> for a cache miss.</returns>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.Set(Wyam.Common.Documents.IDocument,System.Object)">
            <summary>
            Sets a cached value from a document key.
            </summary>
            <param name="document">The document key.</param>
            <param name="value">The cached value.</param>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.Set(Wyam.Common.Documents.IDocument,System.String,System.Object)">
            <summary>
            Sets a cached value from a document and string key.
            </summary>
            <param name="document">The document key.</param>
            <param name="key">The string key.</param>
            <param name="value">The cached value.</param>
        </member>
        <member name="M:Wyam.Common.Caching.IExecutionCache.Set(System.String,System.Object)">
            <summary>
            Sets a cached value from a document key.
            </summary>
            <param name="key">The string key.</param>
            <param name="value">The cached value.</param>
        </member>
        <member name="T:Wyam.Common.Configuration.ConfigExtensions">
            <summary>
            Extensions for dealing with config delegates.
            </summary>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigExtensions.Invoke``1(Wyam.Common.Configuration.ContextConfig,Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Invokes the delegate.
            </summary>
            <typeparam name="T">The desired result type.</typeparam>
            <param name="config">The delegate.</param>
            <param name="context">The execution context.</param>
            <returns>A typed result from invoking the delegate.</returns>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigExtensions.Invoke``1(Wyam.Common.Configuration.ContextConfig,Wyam.Common.Execution.IExecutionContext,System.String)">
            <summary>
            Invokes the delegate with additional information in the exception message if the conversion fails.
            </summary>
            <typeparam name="T">The desired result type.</typeparam>
            <param name="config">The delegate.</param>
            <param name="context">The execution context.</param>
            <param name="errorDetails">A string to add to the exception message should the conversion fail.</param>
            <returns>A typed result from invoking the delegate.</returns>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigExtensions.TryInvoke``1(Wyam.Common.Configuration.ContextConfig,Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Attempts to invoke the delegate and returns a default value of <typeparamref name="T"/> if the conversion fails.
            </summary>
            <typeparam name="T">The desired result type.</typeparam>
            <param name="config">The delegate.</param>
            <param name="context">The execution context.</param>
            <returns>A typed result from invoking the delegate, or the default value of <typeparamref name="T"/> if the conversion fails.</returns>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigExtensions.Invoke``1(Wyam.Common.Configuration.DocumentConfig,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Invokes the delegate.
            </summary>
            <typeparam name="T">The desired result type.</typeparam>
            <param name="config">The delegate.</param>
            <param name="document">The document.</param>
            <param name="context">The execution context.</param>
            <returns>A typed result from invoking the delegate.</returns>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigExtensions.Invoke``1(Wyam.Common.Configuration.DocumentConfig,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext,System.String)">
            <summary>
            Invokes the delegate with additional information in the exception message if the conversion fails.
            </summary>
            <typeparam name="T">The desired result type.</typeparam>
            <param name="config">The delegate.</param>
            <param name="document">The document.</param>
            <param name="context">The execution context.</param>
            <param name="errorDetails">A string to add to the exception message should the conversion fail.</param>
            <returns>A typed result from invoking the delegate.</returns>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigExtensions.TryInvoke``1(Wyam.Common.Configuration.DocumentConfig,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Attempts to invoke the delegate and returns a default value of <typeparamref name="T"/> if the conversion fails.
            </summary>
            <typeparam name="T">The desired result type.</typeparam>
            <param name="config">The delegate.</param>
            <param name="document">The document.</param>
            <param name="context">The execution context.</param>
            <returns>A typed result from invoking the delegate, or the default value of <typeparamref name="T"/> if the conversion fails.</returns>
        </member>
        <member name="T:Wyam.Common.Configuration.ConfigHelper`1">
            <summary>
            This class satisfies a common use case for modules where you need to get some configuration value
            either directly, from a delegate at the module level, or from a delegate at a per-document level
            and the user should be able to specify any of these possibilities (typically via module constructor
            overloads).
            </summary>
            <typeparam name="T">The type of the value you want to eventually convert to.</typeparam>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigHelper`1.#ctor(`0)">
            <summary>
            Creates a new helper with the specified value.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigHelper`1.#ctor(Wyam.Common.Configuration.ContextConfig,`0)">
            <summary>
            Creates a new helper with the specified delegate.
            </summary>
            <param name="config">The delegate.</param>
            <param name="defaultValue">A default value to use if the delegate is null.</param>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigHelper`1.#ctor(Wyam.Common.Configuration.DocumentConfig,`0)">
            <summary>
            Creates a new helper with the specified delegate.
            </summary>
            <param name="config">The delegate.</param>
            <param name="defaultValue">A default value to use if the delegate is null.</param>
        </member>
        <member name="M:Wyam.Common.Configuration.ConfigHelper`1.GetValue(Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext,System.Func{`0,`0})">
            <summary>
            Call this each time you need the value, passing in a post-processing function if required.
            If no document delegate is specified, then this will get and cache the value on first request.
            </summary>
            <param name="document">The document.</param>
            <param name="context">The execution context.</param>
            <param name="postProcessing">An optional post-processing function.</param>
            <returns>The result value.</returns>
        </member>
        <member name="T:Wyam.Common.Configuration.ContextConfig">
            <summary>
            A delegate that uses the execution context.
            </summary>
            <param name="ctx">The execution context.</param>
            <returns>A result object.</returns>
        </member>
        <member name="T:Wyam.Common.Configuration.DocumentConfig">
            <summary>
            A delegate that uses a document and the execution context.
            </summary>
            <param name="doc">The document.</param>
            <param name="ctx">The execution context.</param>
            <returns>A result object.</returns>
        </member>
        <member name="T:Wyam.Common.Configuration.INamespacesCollection">
            <summary>
            A collection of namespace strings used to inform modules of which namespaces
            should be available during dynamic code generation and/or execution.
            </summary>
        </member>
        <member name="M:Wyam.Common.Configuration.INamespacesCollection.Add(System.String)">
            <summary>
            Adds a namespace to the collection.
            </summary>
            <param name="ns">The namespace to add.</param>
            <returns><c>true</c> if the namespace was already in the collection, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Wyam.Common.Configuration.INamespacesCollection.AddRange(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Adds a range of namespaces to the collection.
            </summary>
            <param name="namespaces">The namespaces to add.</param>
        </member>
        <member name="T:Wyam.Common.Configuration.IRawAssemblyCollection">
            <summary>
            A collection of raw assembly bytes for dynamically
            compiled assemblies such as the configuration script.
            </summary>
        </member>
        <member name="M:Wyam.Common.Configuration.IRawAssemblyCollection.Add(System.Byte[])">
            <summary>
            Adds a raw assembly to the collection.
            </summary>
            <param name="rawAssembly">The bytes of the assembly to add.</param>
        </member>
        <member name="T:Wyam.Common.Configuration.IReadOnlySettings">
            <summary>
            Settings that can be globally set.
            </summary>
        </member>
        <member name="T:Wyam.Common.Configuration.IRecipe">
            <summary>
            A recipe configures a <see cref="T:Wyam.Common.Execution.IEngine"/> in a predefined way using code.
            Recipes should have an empty default constructor and shouldn't maintain
            any state.
            </summary>
        </member>
        <member name="M:Wyam.Common.Configuration.IRecipe.Apply(Wyam.Common.Execution.IEngine)">
            <summary>
            Applies the recipe to the engine.
            </summary>
            <param name="engine">The engine.</param>
        </member>
        <member name="M:Wyam.Common.Configuration.IRecipe.Scaffold(Wyam.Common.IO.IFile,Wyam.Common.IO.IDirectory)">
            <summary>
            Scaffolds an example for the recipe in the specified directory.
            </summary>
            <param name="configFile">
            The configuration file or <c>null</c> if the user
            chose not to overwrite an existing configuration file. An existing configuration file
            will not be automatically deleted, nor will a new configuration file be automatically
            created. If new configuration file content needs to be written,
            it's up to the recipe to create it or delete the existing file.
            </param>
            <param name="inputDirectory">The directory to place the example in.</param>
        </member>
        <member name="T:Wyam.Common.Configuration.ISettings">
            <summary>
            Stores global settings that control behavior and execution.
            </summary>
            <metadata cref="F:Wyam.Common.Meta.Keys.Host" usage="Setting" />
            <metadata cref="F:Wyam.Common.Meta.Keys.LinksUseHttps" usage="Setting" />
            <metadata cref="F:Wyam.Common.Meta.Keys.LinkRoot" usage="Setting" />
            <metadata cref="F:Wyam.Common.Meta.Keys.LinkHideIndexPages" usage="Setting" />
            <metadata cref="F:Wyam.Common.Meta.Keys.LinkHideExtensions" usage="Setting" />
            <metadata cref="F:Wyam.Common.Meta.Keys.UseCache" usage="Setting" />
            <metadata cref="F:Wyam.Common.Meta.Keys.CleanOutputPath" usage="Setting" />
            <metadata cref="F:Wyam.Common.Meta.Keys.DateTimeInputCulture" usage="Setting" />
            <metadata cref="F:Wyam.Common.Meta.Keys.DateTimeDisplayCulture" usage="Setting" />
        </member>
        <member name="T:Wyam.Common.Configuration.Recipe">
            <summary>
            A utility class that can be used as the base for recipes. It is not necessary to
            derive from this class to create a recipe, implementing <see cref="T:Wyam.Common.Configuration.IRecipe"/> is
            sufficient. However, this class does provide some helpful functionality such as
            using reflection to automatically iterate and add all <see cref="T:Wyam.Common.Execution.Pipeline"/>
            static properties.
            </summary>
        </member>
        <member name="M:Wyam.Common.Configuration.Recipe.Apply(Wyam.Common.Execution.IEngine)">
            <summary>
            This will reflect over all static <see cref="T:Wyam.Common.Execution.Pipeline"/> properties in the
            derived class and will add their modules as pipelines to the engine. This operation
            depends on <see cref="T:Wyam.Common.Util.SourceInfoAttribute"/> having been applied to all the properties
            in order to ensure proper ordering.
            </summary>
            <param name="engine">The engine.</param>
        </member>
        <member name="M:Wyam.Common.Configuration.Recipe.Scaffold(Wyam.Common.IO.IFile,Wyam.Common.IO.IDirectory)">
            <inheritdoc/>
        </member>
        <member name="T:Wyam.Common.Documents.CollectionExtensions">
            <summary>
            Extensions for working with specific types of collections.
            </summary>
        </member>
        <member name="M:Wyam.Common.Documents.CollectionExtensions.WhereContainsKey(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String)">
            <summary>
            Returns all documents that contain the specified metadata key.
            </summary>
            <param name="documents">The documents.</param>
            <param name="metadataKey">The key.</param>
            <returns>All documents that contain the specified metadata key.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.CollectionExtensions.WhereContainsAllKeys(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String[])">
            <summary>
            Returns all documents that contain all of the specified metadata keys.
            </summary>
            <param name="documents">The documents.</param>
            <param name="metadataKeys">The metadata keys.</param>
            <returns>All documents that contain all of the specified metadata keys.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.CollectionExtensions.WhereContainsAnyKeys(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String[])">
            <summary>
            Returns all documents that contain any of the specified metadata keys.
            </summary>
            <param name="documents">The documents.</param>
            <param name="metadataKeys">The metadata keys.</param>
            <returns>All documents that contain any of the specified metadata keys.</returns>
        </member>
        <member name="T:Wyam.Common.Documents.FileContentStream">
            <summary>
            This creates a file stream that deletes the underlying file on dispose.
            </summary>
        </member>
        <member name="T:Wyam.Common.Documents.FileContentStreamFactory">
            <summary>
            Provides content streams that are backed by a file in the file system. This
            trades performance (disk I/O is considerably slower than memory) for a
            reduced memory footprint.
            </summary>
        </member>
        <member name="M:Wyam.Common.Documents.FileContentStreamFactory.GetStream(Wyam.Common.Execution.IExecutionContext,System.String)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.Documents.GroupByExtensions">
            <summary>
            Extensions grouping document sequences.
            </summary>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupBy``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String)">
            <summary>
            Groups the elements of a sequence of documents using the values of a specified metadata key.
            If a document does not contain the specified metadata key, it is not included in the result set.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupBy``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Groups the elements of a sequence of documents and the values of a specified metadata key
            and compares the keys by using a specified comparer.
            If a document does not contain the specified metadata key, it is not included in the result set.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupBy``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String)">
            <summary>
            Groups the elements of a sequence of documents and the values of a specified metadata key
            using the value of the specified element metadata for the elements of the group.
            If a document does not contain the specified key or element metadata keys, it is not included in the result set.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupBy``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Groups the elements of a sequence of documents and the values of a specified metadata key
            using the value of the specified element metadata for the elements of the group
            and compares the keys by using a specified comparer.
            If a document does not contain the specified key or element metadata keys, it is not included in the result set.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupByMany``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String)">
            <summary>
            Groups the elements of a sequence of documents according to a specified metadata key
            that contains a sequence of keys.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupByMany``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Groups the elements of a sequence of documents according to a specified metadata key
            that contains a sequence of keys
            and compares the keys by using a specified comparer.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupByMany``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String)">
            <summary>
            Groups the elements of a sequence of documents according to a specified metadata key
            that contains a sequence of keys
            and gets the elements for each group by using a specified metadata key.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupByMany``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Groups the elements of a sequence of documents according to a specified metadata key
            that contains a sequence of keys.
            The keys are compared by using a comparer and each group's elements
            are obtained by using a specified metadata key.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupByManyToMany``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String)">
            <summary>
            Groups the elements of a sequence of documents according to a specified metadata key
            that contains a sequence of keys
            and gets the elements for each group by using a specified metadata key.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.GroupByExtensions.GroupByManyToMany``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Groups the elements of a sequence of documents according to a specified metadata key
            that contains a sequence of keys.
            The keys are compared by using a comparer and each group's elements
            are obtained by using a specified metadata key.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="T:Wyam.Common.Documents.IContentStreamFactory">
            <summary>
            Provides streams to use for document content.
            </summary>
        </member>
        <member name="M:Wyam.Common.Documents.IContentStreamFactory.GetStream(Wyam.Common.Execution.IExecutionContext,System.String)">
            <summary>
            Gets a <see cref="T:System.IO.Stream"/> that can be used for document content. If <paramref name="content"/>
            is not null, the stream is initialized with the specified content.
            <remarks>The position should be set to the beginning of the stream when returned.</remarks>
            </summary>
            <param name="context">The current execution context.</param>
            <param name="content">Content to initialize the stream with.</param>
            <returns>A stream for document content.</returns>
        </member>
        <member name="T:Wyam.Common.Documents.IDocument">
            <summary>
            Contains content and metadata for each item as it propagates through the pipeline.
            </summary>
            <remarks>
            Documents are immutable so you must call one of the <c>GetDocument</c> methods of <see cref="T:Wyam.Common.Documents.IDocumentFactory"/>
            to create a new document. Implements <see cref="T:Wyam.Common.Meta.IMetadata"/> and all metadata calls are passed through
            to the document's internal <see cref="T:Wyam.Common.Meta.IMetadata"/> instance (exposed via the <see cref="P:Wyam.Common.Documents.IDocument.Metadata"/>
            property). Note that both the <see cref="P:Wyam.Common.Documents.IDocument.Content"/> property and the result of the <see cref="M:Wyam.Common.Documents.IDocument.GetStream"/>
            method are guaranteed not to be null. When a document is created, either a string or a <see cref="T:System.IO.Stream"/>
            is provided. Whenever the other of the two is requested, the system will convert the current representation
            for you.
            </remarks>
        </member>
        <member name="P:Wyam.Common.Documents.IDocument.Source">
            <summary>An identifier for the document meant to reflect the source of the data. These should be unique (such as a file name).</summary>
            <value>The source of the document, or <c>null</c> if the document doesn't have a source.</value>
        </member>
        <member name="M:Wyam.Common.Documents.IDocument.SourceString">
            <summary>
            Gets a string representation of the source that's guaranteed non-null, used primarily for trace messages.
            </summary>
            <returns>A string representation of the source.</returns>
        </member>
        <member name="P:Wyam.Common.Documents.IDocument.Id">
            <summary>An identifier that is generated when the document is created and stays the same after cloning.</summary>
            <value>The identifier.</value>
        </member>
        <member name="P:Wyam.Common.Documents.IDocument.Metadata">
            <summary>Gets the metadata associated with this document.</summary>
            <value>The metadata associated with this document.</value>
        </member>
        <member name="P:Wyam.Common.Documents.IDocument.Content">
            <summary>Gets the content associated with this document as a string. This will result in reading the entire content stream.</summary>
            <value>The content associated with this document.</value>
        </member>
        <member name="M:Wyam.Common.Documents.IDocument.GetStream">
            <summary>
            Gets the content associated with this document as a <see cref="T:System.IO.Stream"/>.
            The underlying stream will be reset to position 0 each time this method is called.
            The stream you get from this call must be disposed as soon as reading is complete.
            Other threads will block on this call until the previously returned stream is disposed.
            </summary>
            <returns>A <see cref="T:System.IO.Stream"/> of the content associated with this document.</returns>
        </member>
        <member name="P:Wyam.Common.Documents.IDocument.WithoutSettings">
            <summary>
            Gets the metadata for this document without any global settings included.
            </summary>
            <returns>The document metadata without global settings.</returns>
        </member>
        <member name="T:Wyam.Common.Documents.IDocumentCollection">
            <summary>
            Contains a collection of documents output by each pipeline.
            The documents are populated for each pipeline as it is
            executed and will contain the most recent set of document
            outputs for the most recently executed module, even if the
            pipeline is not complete.
            </summary>
        </member>
        <member name="M:Wyam.Common.Documents.IDocumentCollection.ByPipeline">
            <summary>
            Gets documents by pipeline.
            </summary>
            <returns>All documents output by each pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.IDocumentCollection.FromPipeline(System.String)">
            <summary>
            Gets documents from a specific pipeline.
            </summary>
            <param name="pipeline">The pipeline.</param>
            <returns>The documents output by the specified pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.IDocumentCollection.ExceptPipeline(System.String)">
            <summary>
            Gets all documents output by every pipeline except those from the specified pipeline.
            </summary>
            <param name="pipeline">The pipeline.</param>
            <returns>All documents output by every pipeline except the specified one.</returns>
        </member>
        <member name="P:Wyam.Common.Documents.IDocumentCollection.Item(System.String)">
            <summary>
            Gets documents from a specific pipeline.
            </summary>
            <value>
            The documents output by the specified pipeline..
            </value>
            <param name="pipline">The pipeline.</param>
            <returns>The documents output by the specified pipeline.</returns>
        </member>
        <member name="T:Wyam.Common.Documents.IDocumentFactory">
            <summary>
            Responsible for creating new document instances.
            </summary>
        </member>
        <member name="M:Wyam.Common.Documents.IDocumentFactory.GetDocument(Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Gets a new document with default initial metadata.
            </summary>
            <param name="context">The current execution context.</param>
            <returns>The new document.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.IDocumentFactory.GetDocument(Wyam.Common.Execution.IExecutionContext,Wyam.Common.Documents.IDocument,Wyam.Common.IO.FilePath,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Clones the specified source document with a new source and additional metadata (all existing metadata is retained)
            or gets a new document if the source document is null or <c>AsNewDocuments()</c> was called on the module.
            </summary>
            <param name="context">The current execution context.</param>
            <param name="sourceDocument">The source document.</param>
            <param name="source">The source (if the source document contains a source, then this is ignored and the source document's source is used instead).</param>
            <param name="items">The metadata items.</param>
            <returns>The cloned or new document.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.IDocumentFactory.GetDocument(Wyam.Common.Execution.IExecutionContext,Wyam.Common.Documents.IDocument,Wyam.Common.IO.FilePath,System.IO.Stream,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},System.Boolean)">
            <summary>
            Clones the specified source document with a new source, new content stream, and additional metadata (all existing metadata is retained)
            or gets a new document if the source document is null or <c>AsNewDocuments()</c> was called on the module.
            If <paramref name="disposeStream"/> is true (which it is by default), the provided
            <see cref="T:System.IO.Stream"/> will automatically be disposed when the document is disposed (I.e., the
            document takes ownership of the <see cref="T:System.IO.Stream"/>).
            </summary>
            <param name="context">The current execution context.</param>
            <param name="sourceDocument">The source document.</param>
            <param name="source">The source (if the source document contains a source, then this is ignored and the source document's source is used instead).</param>
            <param name="stream">The content stream.</param>
            <param name="items">The metadata items.</param>
            <param name="disposeStream">If set to <c>true</c> the provided <see cref="T:System.IO.Stream"/> is disposed when the document is.</param>
            <returns>The cloned or new document.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.IDocumentFactory.GetDocument(Wyam.Common.Execution.IExecutionContext,Wyam.Common.Documents.IDocument,System.IO.Stream,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},System.Boolean)">
            <summary>
            Clones the specified source document with a new content stream, and additional metadata (all existing metadata is retained)
            or gets a new document if the source document is null or <c>AsNewDocuments()</c> was called on the module.
            If <paramref name="disposeStream"/> is true (which it is by default), the provided
            <see cref="T:System.IO.Stream"/> will automatically be disposed when the document is disposed (I.e., the
            document takes ownership of the <see cref="T:System.IO.Stream"/>).
            </summary>
            <param name="context">The current execution context.</param>
            <param name="sourceDocument">The source document.</param>
            <param name="stream">The content stream.</param>
            <param name="items">The metadata items.</param>
            <param name="disposeStream">If set to <c>true</c> the provided <see cref="T:System.IO.Stream"/> is disposed when the document is.</param>
            <returns>The cloned or new document.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.IDocumentFactory.GetDocument(Wyam.Common.Execution.IExecutionContext,Wyam.Common.Documents.IDocument,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Clones the specified source document with identical content and additional metadata (all existing metadata is retained)
            or gets a new document if the source document is null or <c>AsNewDocuments()</c> was called on the module.
            </summary>
            <param name="context">The current execution context.</param>
            <param name="sourceDocument">The source document.</param>
            <param name="items">The metadata items.</param>
            <returns>The cloned or new document.</returns>
        </member>
        <member name="T:Wyam.Common.Documents.MemoryContentStreamFactory">
            <summary>
            Provides content streams that are stored in memory without pooling. This trades better performance
            for increased memory usage.
            </summary>
        </member>
        <member name="M:Wyam.Common.Documents.MemoryContentStreamFactory.GetStream(Wyam.Common.Execution.IExecutionContext,System.String)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.Documents.ToLookupExtensions">
            <summary>
            Extensions for creating lookups from document sequences.
            </summary>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookup``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String)">
            <summary>
            Creates a lookup from a sequence of documents using the values of a specified metadata key.
            If a document does not contain the specified metadata key, it is not included in the result set.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookup``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a lookup from a sequence of documents and the values of a specified metadata key
            and compares the keys by using a specified comparer.
            If a document does not contain the specified metadata key, it is not included in the result set.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookup``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String)">
            <summary>
            Creates a lookup from a sequence of documents and the values of a specified metadata key
            using the value of the specified element metadata for the elements of the lookup.
            If a document does not contain the specified key or element metadata keys, it is not included in the result set.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookup``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a lookup from a sequence of documents and the values of a specified metadata key
            using the value of the specified element metadata for the elements of the lookup
            and compares the keys by using a specified comparer.
            If a document does not contain the specified key or element metadata keys, it is not included in the result set.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookupMany``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String)">
            <summary>
            Creates a lookup from a sequence of documents according to a specified metadata key
            that contains a sequence of keys.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookupMany``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a lookup from a sequence of documents according to a specified metadata key
            that contains a sequence of keys
            and compares the keys by using a specified comparer.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookupMany``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String)">
            <summary>
            Creates a lookup from a sequence of documents according to a specified metadata key
            that contains a sequence of keys
            and gets the elements for each group by using a specified metadata key.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookupMany``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a lookup from a sequence of documents according to a specified metadata key
            that contains a sequence of keys.
            The keys are compared by using a comparer and each group's elements
            are obtained by using a specified metadata key.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookupManyToMany``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String)">
            <summary>
            Creates a lookup from a sequence of documents according to a specified metadata key
            that contains a sequence of keys
            and gets the elements for each group by using a specified metadata key.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Documents.ToLookupExtensions.ToLookupManyToMany``2(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.String,System.String,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a lookup from a sequence of documents according to a specified metadata key
            that contains a sequence of keys.
            The keys are compared by using a comparer and each group's elements
            are obtained by using a specified metadata key.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="documents">The documents.</param>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="elementMetadataKey">The element metadata key.</param>
            <param name="comparer">The comparer.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="T:Wyam.Common.Execution.DateTimeCultureExtensions">
            <summary>
            Extensions for working with input and output date cultures.
            </summary>
        </member>
        <member name="M:Wyam.Common.Execution.DateTimeCultureExtensions.TryParseInputDateTime(Wyam.Common.Execution.IExecutionContext,System.String,System.DateTime@)">
            <summary>
            Attempts to parse and input date using the input date culture setting.
            </summary>
            <param name="context">The execution context.</param>
            <param name="s">The string to parse.</param>
            <param name="result">The resulting <see cref="T:System.DateTime"/> instance.</param>
            <returns><c>true</c> if the input string could be parsed, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.DateTimeCultureExtensions.GetDateTimeInputCulture(Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Gets the <see cref="T:System.Globalization.CultureInfo"/> for the date input culture.
            </summary>
            <param name="context">The execution context.</param>
            <returns>The date input culture.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.DateTimeCultureExtensions.ToShortDateString(System.DateTime,Wyam.Common.Execution.IExecutionContext,System.String)">
            <summary>
            Gets a short date display string using the date display culture setting.
            </summary>
            <param name="dateTime">The <see cref="T:System.DateTime"/> to generate a string for.</param>
            <param name="context">The execution context.</param>
            <param name="targetCulture">The culture that should be used if the date display setting isn't provided. If the
            current culture is of the same family, then it will be used. If not, the specified target culture will be used.</param>
            <returns>A short date display string.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.DateTimeCultureExtensions.ToLongDateString(System.DateTime,Wyam.Common.Execution.IExecutionContext,System.String)">
            <summary>
            Gets a long date display string using the date display culture setting.
            </summary>
            <param name="dateTime">The <see cref="T:System.DateTime"/> to generate a string for.</param>
            <param name="context">The execution context.</param>
            <param name="targetCulture">The culture that should be used if the date display setting isn't provided. If the
            current culture is of the same family, then it will be used. If not, the specified target culture will be used.</param>
            <returns>A long date display string.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.DateTimeCultureExtensions.GetDateTimeDisplayCulture(Wyam.Common.Execution.IExecutionContext,System.String)">
            <summary>
            Gets the <see cref="T:System.Globalization.CultureInfo"/> for the date display culture.
            </summary>
            <param name="context">The execution context.</param>
            <param name="targetCulture">The culture that should be used if the date display setting isn't provided. If the
            current culture is of the same family, then it will be used. If not, the specified target culture will be used.</param>
            <returns>The date display culture.</returns>
        </member>
        <member name="T:Wyam.Common.Execution.IEngine">
            <summary>
            The engine is the primary entry point for the generation process.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IEngine.FileSystem">
            <summary>
            Gets the file system.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IEngine.Settings">
            <summary>
            Gets the settings.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IEngine.Pipelines">
            <summary>
            Gets the pipelines.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IEngine.Shortcodes">
            <summary>
            Gets the shortcodes.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IEngine.Documents">
            <summary>
            Gets the documents.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IEngine.Namespaces">
            <summary>
            Gets the namespaces that should be brought in scope by modules that support dynamic compilation.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IEngine.DynamicAssemblies">
            <summary>
            Gets a collection of all the raw assemblies that should be referenced by modules
            that support dynamic compilation (such as configuration assemblies).
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IEngine.ApplicationInput">
            <summary>
            Gets or sets the application input.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IEngine.DocumentFactory">
            <summary>
            Gets or sets the document factory.
            </summary>
        </member>
        <member name="T:Wyam.Common.Execution.IExecutionContext">
            <summary>
            All of the information that represents a given build. Also implements
            <see cref="T:Wyam.Common.Meta.IMetadata"/> to expose the global metadata.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.ExecutionId">
            <summary>
            Uniquly identifies the current execution cycle. This can be used to initialize and/or
            reset static data for a module on new generations (I.e., due to watching).
            For example, cache data could be cleared when this changes between runs.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.DynamicAssemblies">
            <summary>
            Gets the raw bytes for dynamically compiled assemblies (such as the configuration script).
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.Namespaces">
            <summary>
            Gets a set of namespaces that should be brought into scope for modules that perform dynamic compilation.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.Pipeline">
            <summary>
            Gets the currently executing pipeline.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.Module">
            <summary>
            Gets the currently executing module.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.ExecutionCache">
            <summary>
            Gets the current execution cache. Modules can use the cache to store data between executions.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.FileSystem">
            <summary>
            Gets the current file system.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.Settings">
            <summary>
            Gets the current settings metadata.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.Shortcodes">
            <summary>
            Gets the available shortcodes.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.Documents">
            <summary>
            Gets the collection of all previously processed documents.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IExecutionContext.ApplicationInput">
            <summary>
            Gets any input that was passed to the application (for example, on stdin via piping).
            </summary>
            <value>
            The application input.
            </value>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetContentStream(System.String)">
            <summary>
            Gets a <see cref="T:System.IO.Stream"/> that can be used for document content. If <paramref name="content"/>
            is not null, the stream is initialized with the specified content. It is prefered to use
            this method to obtain a stream over creating your own if the source of the content does
            not already provide one. The returned streams are optimized for memory usage and performance.
            <remarks>The position is set to the beginning of the stream when returned.</remarks>
            </summary>
            <param name="content">Content to initialize the stream with.</param>
            <returns>A stream for document content.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.CreateHttpClient">
            <summary>
            Creates a <see cref="T:System.Net.Http.HttpClient"/> instance that should be used for all HTTP communication.
            </summary>
            <returns>A new <see cref="T:System.Net.Http.HttpClient"/> instance.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.CreateHttpClient(System.Net.Http.HttpMessageHandler)">
            <summary>
            Creates a new <see cref="T:System.Net.Http.HttpClient"/> instance that uses a custom message handler.
            </summary>
            <param name="handler">The message handler to use for this client.</param>
            <returns>A new <see cref="T:System.Net.Http.HttpClient"/> instance.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetDocument">
            <summary>
            Gets a new document with default initial metadata.
            </summary>
            <returns>The new document.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetDocument(Wyam.Common.IO.FilePath,System.IO.Stream,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},System.Boolean)">
            <summary>
            Gets a new document with the specified source, content stream, and metadata (in addition to the default initial metadata).
            If <paramref name="disposeStream"/> is true (which it is by default), the provided
            <see cref="T:System.IO.Stream"/> will automatically be disposed when the document is disposed (I.e., the
            document takes ownership of the <see cref="T:System.IO.Stream"/>).
            </summary>
            <param name="source">The source.</param>
            <param name="stream">The content stream.</param>
            <param name="items">The metadata items.</param>
            <param name="disposeStream">If set to <c>true</c> the provided <see cref="T:System.IO.Stream"/> is disposed when the document is.</param>
            <returns>The new document.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetDocument(Wyam.Common.IO.FilePath,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Gets a new document with the specified source and metadata (in addition to the default initial metadata).
            </summary>
            <param name="source">The source.</param>
            <param name="items">The metadata items.</param>
            <returns>The new document.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetDocument(System.IO.Stream,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},System.Boolean)">
            <summary>
            Gets a new document with the specified content stream and metadata (in addition to the default initial metadata).
            If <paramref name="disposeStream"/> is true (which it is by default), the provided
            <see cref="T:System.IO.Stream"/> will automatically be disposed when the document is disposed (I.e., the
            document takes ownership of the <see cref="T:System.IO.Stream"/>).
            </summary>
            <param name="stream">The content stream.</param>
            <param name="items">The metadata items.</param>
            <param name="disposeStream">If set to <c>true</c> the provided <see cref="T:System.IO.Stream"/> is disposed when the document is.</param>
            <returns>The new document.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetDocument(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Gets a new document with the specified metadata (in addition to the default initial metadata).
            </summary>
            <param name="items">The metadata items.</param>
            <returns>The new document.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetDocument(Wyam.Common.Documents.IDocument,Wyam.Common.IO.FilePath,System.IO.Stream,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},System.Boolean)">
            <summary>
            Clones the specified source document with a new source, new content stream, and additional metadata (all existing metadata is retained)
            or gets a new document if the source document is null or <c>AsNewDocuments()</c> was called on the module.
            If <paramref name="disposeStream"/> is true (which it is by default), the provided
            <see cref="T:System.IO.Stream"/> will automatically be disposed when the document is disposed (I.e., the
            document takes ownership of the <see cref="T:System.IO.Stream"/>).
            </summary>
            <param name="sourceDocument">The source document.</param>
            <param name="source">The source (if the source document contains a source, then this is ignored and the source document's source is used instead).</param>
            <param name="stream">The content stream.</param>
            <param name="items">The metadata items.</param>
            <param name="disposeStream">If set to <c>true</c> the provided <see cref="T:System.IO.Stream"/> is disposed when the document is.</param>
            <returns>The cloned or new document.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetDocument(Wyam.Common.Documents.IDocument,System.IO.Stream,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},System.Boolean)">
            <summary>
            Clones the specified source document with a new content stream, and additional metadata (all existing metadata is retained)
            or gets a new document if the source document is null or <c>AsNewDocuments()</c> was called on the module.
            If <paramref name="disposeStream"/> is true (which it is by default), the provided
            <see cref="T:System.IO.Stream"/> will automatically be disposed when the document is disposed (I.e., the
            document takes ownership of the <see cref="T:System.IO.Stream"/>).
            </summary>
            <param name="sourceDocument">The source document.</param>
            <param name="stream">The content stream.</param>
            <param name="items">The metadata items.</param>
            <param name="disposeStream">If set to <c>true</c> the provided <see cref="T:System.IO.Stream"/> is disposed when the document is.</param>
            <returns>The cloned or new document.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetDocument(Wyam.Common.Documents.IDocument,Wyam.Common.IO.FilePath,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Clones the specified source document with a new source and additional metadata (all existing metadata is retained)
            or gets a new document if the source document is null or <c>AsNewDocuments()</c> was called on the module.
            </summary>
            <param name="sourceDocument">The source document.</param>
            <param name="source">The source (if the source document contains a source, then this is ignored and the source document's source is used instead).</param>
            <param name="items">The metadata items.</param>
            <returns>The cloned or new document.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetDocument(Wyam.Common.Documents.IDocument,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Clones the specified source document with identical content and additional metadata (all existing metadata is retained)
            or gets a new document if the source document is null or <c>AsNewDocuments()</c> was called on the module.
            </summary>
            <param name="sourceDocument">The source document.</param>
            <param name="items">The metadata items.</param>
            <returns>The cloned or new document.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.TryConvert``1(System.Object,``0@)">
            <summary>
            Provides access to the same enhanced type conversion used to convert metadata types.
            </summary>
            <typeparam name="T">The destination type.</typeparam>
            <param name="value">The value to convert.</param>
            <param name="result">The result of the conversion.</param>
            <returns><c>true</c> if the conversion could be completed, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.Execute(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule},System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument})">
            <summary>
            Executes the specified modules with the specified input documents and returns the result documents.
            </summary>
            <param name="modules">The modules to execute.</param>
            <param name="inputs">The input documents.</param>
            <returns>The result documents from the executed modules.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.Execute(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule},System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            Executes the specified modules with an empty initial input document with optional additional metadata and returns the result documents.
            </summary>
            <param name="modules">The modules to execute.</param>
            <param name="metadata">The metadata to use.</param>
            <returns>The result documents from the executed modules.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.Execute(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule},System.Collections.Generic.IEnumerable{Wyam.Common.Meta.MetadataItem})">
            <summary>
            Executes the specified modules with an empty initial input document with optional additional metadata and returns the result documents.
            </summary>
            <param name="modules">The modules to execute.</param>
            <param name="metadata">The metadata to use.</param>
            <returns>The result documents from the executed modules.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetJavaScriptEnginePool(System.Action{Wyam.Common.JavaScript.IJavaScriptEngine},System.Int32,System.Int32,System.Int32,System.Nullable{System.TimeSpan})">
            <summary>
            Gets a new <see cref="T:Wyam.Common.JavaScript.IJavaScriptEnginePool"/>. The returned engine pool should be disposed
            when no longer needed.
            </summary>
            <param name="initializer">
            The code to run when a new engine is created. This should configure
            the environment and set up any required JavaScript libraries.
            </param>
            <param name="startEngines">The number of engines to initially start when a pool is created.</param>
            <param name="maxEngines">The maximum number of engines that will be created in the pool.</param>
            <param name="maxUsagesPerEngine">The maximum number of times an engine can be reused before it is disposed.</param>
            <param name="engineTimeout">
            The default timeout to use when acquiring an engine from the pool (defaults to 5 seconds).
            If an engine can not be acquired in this timeframe, an exception will be thrown.
            </param>
            <returns>A new JavaScript engine pool.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetShortcodeResult(System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            A factory method for use from inside an <see cref="T:Wyam.Common.Shortcodes.IShortcode"/> to create an <see cref="T:Wyam.Common.Shortcodes.IShortcodeResult"/>.
            </summary>
            <param name="content">
            The content of the shortcode.
            If you don't want the shortcode to add new content, you can use <c>null</c> for the content.
            </param>
            <param name="metadata">New metadata to be added to the document as a result of executing the shortcode.</param>
            <returns>A shortcode result.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IExecutionContext.GetShortcodeResult(System.IO.Stream,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>
            A factory method for use from inside an <see cref="T:Wyam.Common.Shortcodes.IShortcode"/> to create an <see cref="T:Wyam.Common.Shortcodes.IShortcodeResult"/>.
            </summary>
            <param name="content">
            The content of the shortcode. The passed in stream will be disposed when the shortcode has been rendered.
            Use <see cref="M:Wyam.Common.Execution.IExecutionContext.GetContentStream(System.String)"/> if you need to create a content stream from a string.
            If you don't want the shortcode to add new content, you can use <c>null</c> for the content stream.
            </param>
            <param name="metadata">New metadata to be added to the document as a result of executing the shortcode.</param>
            <returns>A shortcode result.</returns>
        </member>
        <member name="T:Wyam.Common.Execution.IPipeline">
            <summary>
            Represents a named collection of modules that should be executed by the engine.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IPipeline.Name">
            <summary>
            The name of the pipeline.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IPipeline.ProcessDocumentsOnce">
            <summary>
            Specifies that a given pipeline doesn't use data from other pipelines and prevents reprocessing of documents after the first pass.
            </summary>
            <remarks>
            when set, the pipeline looks for the first occurrence of a given <see cref="P:Wyam.Common.Documents.IDocument.Source"/> and then caches all final result
            documents that have the same source. On subsequent executions, if a document with a previously seen <see cref="P:Wyam.Common.Documents.IDocument.Source"/>
            is found and it has the same content, that document is removed from the module output and therefore won't get passed to the next
            module. At the end of the pipeline, all the documents from the first pass that have the same source as the removed one are added
            back to the result set (so later pipelines can still access them in the documents collection if needed).
            </remarks>
        </member>
        <member name="T:Wyam.Common.Execution.IPipelineCollection">
            <summary>
            A collection of pipelines.
            </summary>
        </member>
        <member name="M:Wyam.Common.Execution.IPipelineCollection.Add(System.String,Wyam.Common.Modules.IModuleList)">
            <summary>
            Adds a new named pipeline to the collection.
            </summary>
            <param name="name">The name of the pipeline to add.</param>
            <param name="modules">The modules the pipeline should contain.</param>
            <returns>The added pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IPipelineCollection.Add(Wyam.Common.Execution.IPipeline)">
            <summary>
            Adds an existing pipeline to the collection.
            </summary>
            <param name="pipeline">The pipeline to add.</param>
            <returns>The added pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IPipelineCollection.Insert(System.Int32,System.String,Wyam.Common.Modules.IModuleList)">
            <summary>
            Inserts a new pipeline into the collection.
            </summary>
            <param name="index">The index at which to insert the new pipeline.</param>
            <param name="name">The name of the pipeline to insert.</param>
            <param name="modules">The modules the pipeline should contain.</param>
            <returns>The inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IPipelineCollection.Insert(System.Int32,Wyam.Common.Execution.IPipeline)">
            <summary>
            Inserts an existing pipeline into the collection.
            </summary>
            <param name="index">The index at which to insert the pipeline.</param>
            <param name="pipeline">The pipeline to insert.</param>
            <returns>The inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IPipelineCollection.Remove(System.String)">
            <summary>
            Removes a pipeline from the collection by name.
            </summary>
            <param name="name">The name of the pipeline to remove.</param>
            <returns><c>true</c> if the pipeline was found and remove, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.IPipelineCollection.RemoveAt(System.Int32)">
            <summary>
            Removes a pipeline from the collection by index.
            </summary>
            <param name="index">The index of the pipeline to remove.</param>
        </member>
        <member name="M:Wyam.Common.Execution.IPipelineCollection.IndexOf(System.String)">
            <summary>
            Gets the index of a named pipeline.
            </summary>
            <param name="name">The name of the pipeline.</param>
            <returns>The index of the pipeline.</returns>
        </member>
        <member name="P:Wyam.Common.Execution.IPipelineCollection.Count">
            <summary>
            Gets the number of pipeline in the collection.
            </summary>
        </member>
        <member name="M:Wyam.Common.Execution.IPipelineCollection.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.Execution.IReadOnlyPipeline">
            <summary>
            A read-only pipeline.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IReadOnlyPipeline.Name">
            <summary>
            The name of the pipeline.
            </summary>
        </member>
        <member name="P:Wyam.Common.Execution.IReadOnlyPipeline.ProcessDocumentsOnce">
            <summary>
            Indicates whether this pipeline only processes documents once.
            </summary>
        </member>
        <member name="T:Wyam.Common.Execution.LinkExtensions">
            <summary>
            Extensions to generate web links using global settings.
            </summary>
        </member>
        <member name="M:Wyam.Common.Execution.LinkExtensions.GetLink(Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Gets a link for the root of the site using the host and root path specified in the settings.
            </summary>
            <param name="context">The execution context.</param>
            <returns>A link for the root of the site.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.LinkExtensions.GetLink(Wyam.Common.Execution.IExecutionContext,Wyam.Common.Meta.IMetadata,System.Boolean)">
            <summary>
            Gets a link for the specified metadata (typically a document) using the
            "RelativeFilePath" metadata value and the default settings from the
            <see cref="T:Wyam.Common.Configuration.IReadOnlySettings" />. This version should be used inside modules to ensure
            consistent link generation. Note that you can optionally include the host or not depending
            on if you want to generate host-specific links. By default, the host is not included so that
            sites work the same on any server including the preview server.
            </summary>
            <param name="context">The execution context.</param>
            <param name="metadata">The metadata or document to generate a link for.</param>
            <param name="includeHost">If set to <c>true</c> the host configured in the output settings will
            be included in the link, otherwise the host will be omitted and only the root path will be included (default).</param>
            <returns>
            A string representation of the path suitable for a web link.
            </returns>
        </member>
        <member name="M:Wyam.Common.Execution.LinkExtensions.GetLink(Wyam.Common.Execution.IExecutionContext,Wyam.Common.Meta.IMetadata,System.String,System.Boolean)">
            <summary>
            Gets a link for the specified metadata (typically a document) using the
            specified metadata value (by default, "RelativeFilePath") and the default settings from the
            <see cref="T:Wyam.Common.Configuration.IReadOnlySettings" />. This version should be used inside modules to ensure
            consistent link generation. Note that you can optionally include the host or not depending
            on if you want to generate host-specific links. By default, the host is not included so that
            sites work the same on any server including the preview server.
            </summary>
            <param name="context">The execution context.</param>
            <param name="metadata">The metadata or document to generate a link for.</param>
            <param name="key">The key at which a <see cref="T:Wyam.Common.IO.FilePath"/> can be found for generating the link.</param>
            <param name="includeHost">If set to <c>true</c> the host configured in the output settings will
            be included in the link, otherwise the host will be omitted and only the root path will be included (default).</param>
            <returns>
            A string representation of the path suitable for a web link.
            </returns>
        </member>
        <member name="M:Wyam.Common.Execution.LinkExtensions.GetLink(Wyam.Common.Execution.IExecutionContext,System.String,System.Boolean)">
            <summary>
            Converts the specified path into a string appropriate for use as a link using default settings from the
            <see cref="T:Wyam.Common.Configuration.IReadOnlySettings" />. This version should be used inside modules to ensure
            consistent link generation. Note that you can optionally include the host or not depending
            on if you want to generate host-specific links. By default, the host is not included so that
            sites work the same on any server including the preview server.
            </summary>
            <param name="context">The execution context.</param>
            <param name="path">The path to generate a link for.</param>
            <param name="includeHost">If set to <c>true</c> the host configured in the output settings will
            be included in the link, otherwise the host will be omitted and only the root path will be included (default).</param>
            <returns>
            A string representation of the path suitable for a web link.
            </returns>
        </member>
        <member name="M:Wyam.Common.Execution.LinkExtensions.GetLink(Wyam.Common.Execution.IExecutionContext,System.String,System.String,Wyam.Common.IO.DirectoryPath,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Converts the path into a string appropriate for use as a link, overriding one or more
            settings from the <see cref="T:Wyam.Common.Configuration.IReadOnlySettings" />.
            </summary>
            <param name="context">The execution context.</param>
            <param name="path">The path to generate a link for.</param>
            <param name="host">The host to use for the link.</param>
            <param name="root">The root of the link. The value of this parameter is prepended to the path.</param>
            <param name="useHttps">If set to <c>true</c>, HTTPS will be used as the scheme for the link.</param>
            <param name="hideIndexPages">If set to <c>true</c>, "index.htm" and "index.html" file
            names will be hidden.</param>
            <param name="hideExtensions">If set to <c>true</c>, extensions will be hidden.</param>
            <returns>
            A string representation of the path suitable for a web link with the specified
            root and hidden file name or extension.
            </returns>
        </member>
        <member name="M:Wyam.Common.Execution.LinkExtensions.GetLink(Wyam.Common.Execution.IExecutionContext,Wyam.Common.IO.NormalizedPath,System.Boolean)">
            <summary>
            Converts the specified path into a string appropriate for use as a link using default settings from the
            <see cref="T:Wyam.Common.Configuration.IReadOnlySettings" />. This version should be used inside modules to ensure
            consistent link generation. Note that you can optionally include the host or not depending
            on if you want to generate host-specific links. By default, the host is not included so that
            sites work the same on any server including the preview server.
            </summary>
            <param name="context">The execution context.</param>
            <param name="path">The path to generate a link for.</param>
            <param name="includeHost">If set to <c>true</c> the host configured in the output settings will
            be included in the link, otherwise the host will be omitted and only the root path will be included (default).</param>
            <returns>
            A string representation of the path suitable for a web link.
            </returns>
        </member>
        <member name="M:Wyam.Common.Execution.LinkExtensions.GetLink(Wyam.Common.Execution.IExecutionContext,Wyam.Common.IO.NormalizedPath,System.String,Wyam.Common.IO.DirectoryPath,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Converts the path into a string appropriate for use as a link, overriding one or more
            settings from the <see cref="T:Wyam.Common.Configuration.IReadOnlySettings" />.
            </summary>
            <param name="context">The execution context.</param>
            <param name="path">The path to generate a link for.</param>
            <param name="host">The host to use for the link.</param>
            <param name="root">The root of the link. The value of this parameter is prepended to the path.</param>
            <param name="useHttps">If set to <c>true</c>, HTTPS will be used as the scheme for the link.</param>
            <param name="hideIndexPages">If set to <c>true</c>, "index.htm" and "index.html" file
            names will be hidden.</param>
            <param name="hideExtensions">If set to <c>true</c>, extensions will be hidden.</param>
            <returns>
            A string representation of the path suitable for a web link with the specified
            root and hidden file name or extension.
            </returns>
        </member>
        <member name="M:Wyam.Common.Execution.LinkExtensions.GetLink(Wyam.Common.Execution.IExecutionContext,Wyam.Common.IO.NormalizedPath,System.String,Wyam.Common.IO.DirectoryPath,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Converts the path into a string appropriate for use as a link, overriding one or more
            settings from the <see cref="T:Wyam.Common.Configuration.IReadOnlySettings" />.
            </summary>
            <param name="context">The execution context.</param>
            <param name="path">The path to generate a link for.</param>
            <param name="host">The host to use for the link.</param>
            <param name="root">The root of the link. The value of this parameter is prepended to the path.</param>
            <param name="useHttps">If set to <c>true</c>, HTTPS will be used as the scheme for the link.</param>
            <param name="hideIndexPages">If set to <c>true</c>, "index.htm" and "index.html" file
            names will be hidden.</param>
            <param name="hideExtensions">If set to <c>true</c>, extensions will be hidden.</param>
            <param name="lowercase">If set to <c>true</c>, links will be rendered in all lowercase.</param>
            <returns>
            A string representation of the path suitable for a web link with the specified
            root and hidden file name or extension.
            </returns>
        </member>
        <member name="T:Wyam.Common.Execution.Pipeline">
            <summary>
            A utility class for specifying pipelines. Note that this is not required
            for pipeline creation and is typically only used when a pipeline needs to
            be specified outside the context of a configuration file (such as a recipe,
            though it's not even required for those). Instances of this class
            are typically assigned to read-only properties in a <see cref="T:Wyam.Common.Configuration.Recipe"/> class and by
            convention the class name should match the property name (an exception will be thrown during
            recipe application if not). This class also implements string conversions and operators
            that return the pipeline name (so it can be used as a key for the pipeline it defines).
            Note that once this pipeline is added to an <see cref="T:Wyam.Common.Execution.IPipelineCollection"/>, the actual
            instance probably won't be what's stored by the collection and should not be used for comparisons.
            </summary>
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.#ctor">
            <summary>
            Creates a pipeline with an empty modules collection
            and a default name equal to the class name.
            </summary>
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Creates a pipeline with the specified modules
            and a default name equal to the class name.
            </summary>
            <param name="modules">The modules in the pipeline.</param>
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Creates a pipeline with the specified modules
            and a default name equal to the class name.
            </summary>
            <param name="modules">The modules in the pipeline.</param>
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.#ctor(System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Creates a pipeline with the specified modules
            and the specified name.
            </summary>
            <param name="name">The name of the pipeline.</param>
            <param name="modules">The modules in the pipeline.</param>
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.#ctor(System.String,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Creates a pipeline with the specified modules
            and the specified name.
            </summary>
            <param name="name">The name of the pipeline.</param>
            <param name="modules">The modules in the pipeline.</param>
        </member>
        <member name="P:Wyam.Common.Execution.Pipeline.Name">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Execution.Pipeline.ProcessDocumentsOnce">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.op_Implicit(Wyam.Common.Execution.Pipeline)~System.String">
            <summary>
            Provides the name for the pipeline when converted to a string.
            </summary>
            <param name="pipeline">The current instance.</param>
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.ToString">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Add(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Clear">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Contains(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.CopyTo(Wyam.Common.Modules.IModule[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Remove(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Remove(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Execution.Pipeline.Count">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Add(Wyam.Common.Modules.IModule[])">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Insert(System.Int32,Wyam.Common.Modules.IModule[])">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.IndexOf(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Execution.Pipeline.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.IndexOf(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Insert(System.Int32,Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.RemoveAt(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Execution.Pipeline.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Contains(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.TryGetValue(System.String,Wyam.Common.Modules.IModule@)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Execution.Pipeline.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Add(System.String,Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.Insert(System.Int32,System.String,Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Execution.Pipeline.AsKeyValuePairs">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.Execution.PipelineCollectionExtensions">
            <summary>
            Extensions for working with pipeline collections.
            </summary>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.Add(Wyam.Common.Execution.IPipelineCollection,Wyam.Common.Modules.IModuleList)">
            <summary>
            Adds a new unnamed pipeline to the collection.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly added pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.Add(Wyam.Common.Execution.IPipelineCollection,Wyam.Common.Modules.IModule[])">
            <summary>
            Adds a new unnamed pipeline to the collection.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly added pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.Add(Wyam.Common.Execution.IPipelineCollection,System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Adds a new named pipeline to the collection.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="name">The name of the new pipeline.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly added pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.Insert(Wyam.Common.Execution.IPipelineCollection,System.Int32,Wyam.Common.Modules.IModuleList)">
            <summary>
            Inserts a new unnamed pipeline into the collection.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="index">The index at which to insert the new pipeline.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.Insert(Wyam.Common.Execution.IPipelineCollection,System.Int32,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts a new unnamed pipeline into the collection.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="index">The index at which to insert the new pipeline.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.Insert(Wyam.Common.Execution.IPipelineCollection,System.Int32,System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts a new named pipeline into the collection.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="index">The index at which to insert the new pipeline.</param>
            <param name="name">The name of the new pipeline.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertBefore(Wyam.Common.Execution.IPipelineCollection,System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts a new unnamed pipeline before an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline before which the new pipeline should be inserted.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertBefore(Wyam.Common.Execution.IPipelineCollection,System.String,Wyam.Common.Modules.IModuleList)">
            <summary>
            Inserts a new unnamed pipeline before an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline before which the new pipeline should be inserted.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertBefore(Wyam.Common.Execution.IPipelineCollection,System.String,System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts a new named pipeline before an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline before which the new pipeline should be inserted.</param>
            <param name="name">The name of the new pipeline.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertBefore(Wyam.Common.Execution.IPipelineCollection,System.String,System.String,Wyam.Common.Modules.IModuleList)">
            <summary>
            Inserts a new named pipeline before an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline before which the new pipeline should be inserted.</param>
            <param name="name">The name of the new pipeline.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertBefore(Wyam.Common.Execution.IPipelineCollection,System.String,Wyam.Common.Execution.IPipeline)">
            <summary>
            Inserts an existing pipeline before an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline before which the specified pipeline should be inserted.</param>
            <param name="pipeline">The pipeline to insert.</param>
            <returns>The inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertAfter(Wyam.Common.Execution.IPipelineCollection,System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts a new unnamed pipeline after an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline after which the new pipeline should be inserted.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertAfter(Wyam.Common.Execution.IPipelineCollection,System.String,Wyam.Common.Modules.IModuleList)">
            <summary>
            Inserts a new unnamed pipeline after an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline after which the new pipeline should be inserted.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertAfter(Wyam.Common.Execution.IPipelineCollection,System.String,System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts a new named pipeline after an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline after which the new pipeline should be inserted.</param>
            <param name="name">The name of the new pipeline.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertAfter(Wyam.Common.Execution.IPipelineCollection,System.String,System.String,Wyam.Common.Modules.IModuleList)">
            <summary>
            Inserts a new named pipeline after an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline after which the new pipeline should be inserted.</param>
            <param name="name">The name of the new pipeline.</param>
            <param name="modules">The modules the new pipeline should contain.</param>
            <returns>The newly inserted pipeline.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineCollectionExtensions.InsertAfter(Wyam.Common.Execution.IPipelineCollection,System.String,Wyam.Common.Execution.IPipeline)">
            <summary>
            Inserts an existing pipeline after an existing named pipeline.
            </summary>
            <param name="pipelines">The pipeline collection.</param>
            <param name="target">The pipeline after which the specified pipeline should be inserted.</param>
            <param name="pipeline">The pipeline to insert.</param>
            <returns>The inserted pipeline.</returns>
        </member>
        <member name="T:Wyam.Common.Execution.PipelineExtensions">
            <summary>
            Extension methods for <see cref="T:Wyam.Common.Execution.IPipeline"/>.
            </summary>
        </member>
        <member name="M:Wyam.Common.Execution.PipelineExtensions.WithProcessDocumentsOnce(Wyam.Common.Execution.IPipeline,System.Boolean)">
            <summary>
            Specifies that a given pipeline doesn't use data from other pipelines and prevents reprocessing of documents after the first pass.
            </summary>
            <remarks>
            when set, the pipeline looks for the first occurrence of a given <see cref="P:Wyam.Common.Documents.IDocument.Source"/> and then caches all final result
            documents that have the same source. On subsequent executions, if a document with a previously seen <see cref="P:Wyam.Common.Documents.IDocument.Source"/>
            is found and it has the same content, that document is removed from the module output and therefore won't get passed to the next
            module. At the end of the pipeline, all the documents from the first pass that have the same source as the removed one are added
            back to the result set (so later pipelines can still access them in the documents collection if needed).
            </remarks>
            <param name="pipeline">The pipeline to set.</param>
            <param name="processDocumentsOnce"><c>true</c> to process documents once, <c>false</c> for the default behavior.</param>
            <returns>The specified pipeline.</returns>
        </member>
        <member name="T:Wyam.Common.Execution.TraceExceptionsExtensions">
            <summary>
            Extensions to send exception messages to trace output with relevant context such as currently executing module and document.
            </summary>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.TraceExceptions(Wyam.Common.Execution.IExecutionContext,Wyam.Common.Documents.IDocument,System.Action{Wyam.Common.Documents.IDocument})">
            <summary>
            If an exception is thrown within the action, an error messages will be sent to the trace output
            containing information about the document source, the current module, and the exception message.
            The exception will also be re-thrown once the message has been sent to the trace listeners.
            </summary>
            <param name="context">The current execution context.</param>
            <param name="document">The document to be processed.</param>
            <param name="action">The action to evaluate with the document.</param>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.TraceExceptions``1(Wyam.Common.Execution.IExecutionContext,Wyam.Common.Documents.IDocument,System.Func{Wyam.Common.Documents.IDocument,``0})">
            <summary>
            If an exception is thrown within the action, an error messages will be sent to the trace output
            containing information about the document source, the current module, and the exception message.
            The exception will also be re-thrown once the message has been sent to the trace listeners.
            </summary>
            <typeparam name="TResult">The return type of the function.</typeparam>
            <param name="context">The current execution context.</param>
            <param name="document">The document to be processed.</param>
            <param name="func">The function to evaluate with the document.</param>
            <returns>The result of the function.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.TraceExceptions(Wyam.Common.Execution.IExecutionContext,System.Action)">
            <summary>
            If an exception is thrown within the action, an error messages will be sent to the trace output
            containing information about the current module and the exception message.
            The exception will also be re-thrown once the message has been sent to the trace listeners.
            </summary>
            <param name="context">The current execution context.</param>
            <param name="action">The action to evaluate.</param>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.TraceExceptions``1(Wyam.Common.Execution.IExecutionContext,System.Func{``0})">
            <summary>
            If an exception is thrown within the action, an error messages will be sent to the trace output
            containing information about the current module and the exception message.
            The exception will also be re-thrown once the message has been sent to the trace listeners.
            </summary>
            <typeparam name="TResult">The return type of the function.</typeparam>
            <param name="context">The current execution context.</param>
            <param name="func">The function to evaluate.</param>
            <returns>The result of the function.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.ForEach(Wyam.Common.Execution.IExecutionContext,System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.Action{Wyam.Common.Documents.IDocument})">
            <summary>
            If an exception is thrown within the action, an error messages will be sent to the trace output
            containing information about the document source, the current module, and the exception message.
            The exception will also be re-thrown once the message has been sent to the trace listeners.
            </summary>
            <param name="context">The current execution context.</param>
            <param name="documents">The documents to be processed.</param>
            <param name="action">The action to evaluate with the documents.</param>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.ParallelForEach(Wyam.Common.Execution.IExecutionContext,System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},System.Action{Wyam.Common.Documents.IDocument})">
            <summary>
            If an exception is thrown within the action, an error messages will be sent to the trace output
            containing information about the document source, the current module, and the exception message.
            The exception will also be re-thrown once the message has been sent to the trace listeners.
            </summary>
            <param name="context">The current execution context.</param>
            <param name="documents">The documents to be processed.</param>
            <param name="action">The action to evaluate with the documents.</param>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.Select``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext,System.Func{Wyam.Common.Documents.IDocument,``0})">
            <summary>
            Evaluates a LINQ <c>Select</c> method and traces any exceptions.
            </summary>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source sequence.</param>
            <param name="context">The execution context.</param>
            <param name="selector">The selector function.</param>
            <returns>The result sequence.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.SelectMany``1(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext,System.Func{Wyam.Common.Documents.IDocument,System.Collections.Generic.IEnumerable{``0}})">
            <summary>
            Evaluates a LINQ <c>SelectMany</c> method and traces any exceptions.
            </summary>
            <typeparam name="TResult">The type of the result.</typeparam>
            <param name="source">The source sequence.</param>
            <param name="context">The execution context.</param>
            <param name="selector">The selector function.</param>
            <returns>The result sequence.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.Where(System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext,System.Func{Wyam.Common.Documents.IDocument,System.Boolean})">
            <summary>
            Evaluates a LINQ <c>Where</c> method and traces any exceptions.
            </summary>
            <param name="source">The source sequence.</param>
            <param name="context">The execution context.</param>
            <param name="predicate">The predicate function.</param>
            <returns>The result sequence.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.Select(System.Linq.ParallelQuery{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext,System.Func{Wyam.Common.Documents.IDocument,Wyam.Common.Documents.IDocument})">
            <summary>
            Evaluates a PLINQ <c>Select</c> method over a sequence of <see cref="T:Wyam.Common.Documents.IDocument"/> and traces any exceptions.
            </summary>
            <param name="query">The source query.</param>
            <param name="context">The execution context.</param>
            <param name="selector">The selector function.</param>
            <returns>The result query.</returns>
        </member>
        <member name="M:Wyam.Common.Execution.TraceExceptionsExtensions.SelectMany(System.Linq.ParallelQuery{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext,System.Func{Wyam.Common.Documents.IDocument,System.Collections.Generic.IEnumerable{Wyam.Common.Documents.IDocument}})">
            <summary>
            Evaluates a PLINQ <c>SelectMany</c> method over a sequence of <see cref="T:Wyam.Common.Documents.IDocument"/> and traces any exceptions.
            </summary>
            <param name="query">The source query.</param>
            <param name="context">The execution context.</param>
            <param name="selector">The selector function.</param>
            <returns>The result query.</returns>
        </member>
        <member name="T:Wyam.Common.IO.DirectoryEqualityComparer">
            <summary>
            Compares <see cref="T:Wyam.Common.IO.IDirectory"/> equality.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryEqualityComparer.Equals(Wyam.Common.IO.IDirectory,Wyam.Common.IO.IDirectory)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.IO.DirectoryEqualityComparer.GetHashCode(Wyam.Common.IO.IDirectory)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.IO.DirectoryPath">
            <summary>
            Represents a directory path.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.DirectoryPath"/> class.
            The path will be considered absolute if the underlying OS file system
            considers it absolute.
            </summary>
            <param name="path">The path.</param>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.#ctor(System.String,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.DirectoryPath"/> class.
            </summary>
            <param name="path">The path.</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.DirectoryPath" /> class
            with the specified file provider.
            The path will be considered absolute if the underlying OS file system
            considers it absolute.
            </summary>
            <param name="fileProvider">The file provider.</param>
            <param name="path">The path.</param>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.#ctor(System.String,System.String,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.DirectoryPath" /> class
            with the specified file provider.
            </summary>
            <param name="fileProvider">The file provider.</param>
            <param name="path">The path.</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.#ctor(System.Uri,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.DirectoryPath" /> class
            with the specified file provider.
            The path will be considered absolute if the underlying OS file system
            considers it absolute.
            </summary>
            <param name="fileProvider">The file provider.</param>
            <param name="path">The path.</param>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.#ctor(System.Uri,System.String,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.DirectoryPath" /> class
            with the specified file provider.
            </summary>
            <param name="fileProvider">The file provider.</param>
            <param name="path">The path.</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.#ctor(System.Uri)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.DirectoryPath" /> class
            with the specified file provider and/or path.
            </summary>
            <param name="path">The path (and file provider if this is an absolute URI).</param>
        </member>
        <member name="P:Wyam.Common.IO.DirectoryPath.Name">
            <summary>
            Gets the name of the directory.
            </summary>
            <value>The directory name.</value>
            <remarks>
            If this is passed a file path, it will return the file name.
            This is by-and-large equivalent to how DirectoryInfo handles this scenario.
            If we wanted to return the *actual* directory name, we'd need to pull in IFileSystem,
            and do various checks to make sure things exists.
            </remarks>
        </member>
        <member name="P:Wyam.Common.IO.DirectoryPath.Parent">
            <summary>
            Gets the parent path or <c>null</c> if this is a root path.
            </summary>
            <value>
            The parent path or <c>null</c> if this is a root path.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.DirectoryPath.RootRelative">
            <summary>
            Gets current path relative to it's root. If this is already a relative
            path or there is no root path, this just returns the current path.
            </summary>
            <value>
            The current path relative to it's root.
            </value>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.GetFilePath(Wyam.Common.IO.FilePath)">
            <summary>
            Combines the current path with the file name of a <see cref="T:Wyam.Common.IO.FilePath"/>. The current file provider
            is maintained.
            </summary>
            <param name="path">The path.</param>
            <returns>A combination of the current path and the file name of the provided <see cref="T:Wyam.Common.IO.FilePath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.GetRelativePath(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Get the relative path to another directory. If this path and the target path
            do not share the same file provider, the target path is returned.
            </summary>
            <param name="target">The target directory path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.DirectoryPath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.GetRelativePath(Wyam.Common.IO.FilePath)">
            <summary>
            Get the relative path to another file. If this path and the target path
            do not share the same file provider, the target path is returned.
            </summary>
            <param name="target">The target file path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.FilePath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.CombineFile(Wyam.Common.IO.FilePath)">
            <summary>
            Combines the current path with a <see cref="T:Wyam.Common.IO.FilePath"/>.
            If the provided <see cref="T:Wyam.Common.IO.FilePath"/> is not relative, then it is returned.
            </summary>
            <param name="path">The path.</param>
            <returns>A combination of the current path and the provided <see cref="T:Wyam.Common.IO.FilePath"/>, unless
            the provided <see cref="T:Wyam.Common.IO.FilePath"/> is absolute in which case it is returned.</returns>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.Combine(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Combines the current path with another <see cref="T:Wyam.Common.IO.DirectoryPath"/>.
            If the provided <see cref="T:Wyam.Common.IO.DirectoryPath"/> is not relative, then it is returned.
            </summary>
            <param name="path">The path.</param>
            <returns>A combination of the current path and the provided <see cref="T:Wyam.Common.IO.DirectoryPath"/>, unless
            the provided <see cref="T:Wyam.Common.IO.DirectoryPath"/> is absolute in which case it is returned.</returns>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.Collapse">
            <summary>
            Collapses a <see cref="T:Wyam.Common.IO.DirectoryPath"/> containing ellipses.
            </summary>
            <returns>A collapsed <see cref="T:Wyam.Common.IO.DirectoryPath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.op_Implicit(System.String)~Wyam.Common.IO.DirectoryPath">
            <summary>
            Performs an implicit conversion from <see cref="T:System.String"/> to <see cref="T:Wyam.Common.IO.DirectoryPath"/>.
            </summary>
            <param name="path">The path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.DirectoryPath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.FromString(System.String)">
            <summary>
            Performs a conversion from <see cref="T:System.String"/> to <see cref="T:Wyam.Common.IO.DirectoryPath"/>.
            </summary>
            <param name="path">The path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.DirectoryPath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.op_Implicit(System.Uri)~Wyam.Common.IO.DirectoryPath">
            <summary>
            Performs an implicit conversion from <see cref="T:System.Uri"/> to <see cref="T:Wyam.Common.IO.DirectoryPath"/>.
            </summary>
            <param name="path">The path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.DirectoryPath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.DirectoryPath.FromUri(System.Uri)">
            <summary>
            Performs a conversion from <see cref="T:System.Uri"/> to <see cref="T:Wyam.Common.IO.DirectoryPath"/>.
            </summary>
            <param name="path">The path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.DirectoryPath"/>.</returns>
        </member>
        <member name="T:Wyam.Common.IO.FileEqualityComparer">
            <summary>
            Compares <see cref="T:Wyam.Common.IO.IFile"/> equality.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.FileEqualityComparer.Equals(Wyam.Common.IO.IFile,Wyam.Common.IO.IFile)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.IO.FileEqualityComparer.GetHashCode(Wyam.Common.IO.IFile)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.IO.FilePath">
            <summary>
            Represents a file path.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.FilePath"/> class.
            The path will be considered absolute if the underlying OS file system
            considers it absolute.
            </summary>
            <param name="path">The path.</param>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.#ctor(System.String,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.FilePath"/> class..
            </summary>
            <param name="path">The path.</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.FilePath" /> class
            with the specified file provider.
            The path will be considered absolute if the underlying OS file system
            considers it absolute.
            </summary>
            <param name="fileProvider">The file provider.</param>
            <param name="path">The path.</param>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.#ctor(System.String,System.String,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.FilePath" /> class
            with the specified file provider.
            </summary>
            <param name="fileProvider">The file provider.</param>
            <param name="path">The path.</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.#ctor(System.Uri,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.FilePath" /> class
            with the specified file provider.
            The path will be considered absolute if the underlying OS file system
            considers it absolute.
            </summary>
            <param name="fileProvider">The file provider.</param>
            <param name="path">The path.</param>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.#ctor(System.Uri,System.String,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.FilePath" /> class
            with the specified file provider.
            </summary>
            <param name="fileProvider">The file provider.</param>
            <param name="path">The path.</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.#ctor(System.Uri)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.FilePath" /> class
            with the specified file provider and/or path.
            </summary>
            <param name="path">The path (and file provider if this is an absolute URI).</param>
        </member>
        <member name="P:Wyam.Common.IO.FilePath.HasExtension">
            <summary>
            Gets a value indicating whether this path has a file extension.
            </summary>
            <value>
            <c>true</c> if this file path has a file extension; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.FilePath.Directory">
            <summary>
            Gets the directory part of the path.
            </summary>
            <value>The directory part of the path.</value>
        </member>
        <member name="P:Wyam.Common.IO.FilePath.RootRelative">
            <summary>
            Gets the file path relative to it's root path.
            </summary>
        </member>
        <member name="P:Wyam.Common.IO.FilePath.FileName">
            <summary>
            Gets the filename.
            </summary>
            <value>The filename.</value>
        </member>
        <member name="P:Wyam.Common.IO.FilePath.FileNameWithoutExtension">
            <summary>
            Gets the filename without it's extension.
            </summary>
            <value>The filename without it's extension, or <c>null</c> if the file has no name.</value>
        </member>
        <member name="P:Wyam.Common.IO.FilePath.Extension">
            <summary>
            Gets the file extension (including the preceding ".").
            </summary>
            <value>The file extension (including the preceding ".").</value>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.ChangeExtension(System.String)">
            <summary>
            Changes the file extension of the path.
            </summary>
            <param name="extension">The new extension.</param>
            <returns>A new <see cref="T:Wyam.Common.IO.FilePath"/> with a new extension.</returns>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.AppendExtension(System.String)">
            <summary>
            Appends a file extension to the path.
            </summary>
            <param name="extension">The extension.</param>
            <returns>A new <see cref="T:Wyam.Common.IO.FilePath"/> with an appended extension.</returns>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.InsertSuffix(System.String)">
            <summary>
            Inserts a suffix into the file name before the extension.
            </summary>
            <param name="suffix">The suffix to insert.</param>
            <returns>A new <see cref="T:Wyam.Common.IO.FilePath"/> with the specified suffix.</returns>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.InsertPrefix(System.String)">
            <summary>
            Inserts a prefix into the file name.
            </summary>
            <param name="prefix">The prefix to insert.</param>
            <returns>A new <see cref="T:Wyam.Common.IO.FilePath"/> with the specified prefix.</returns>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.Collapse">
            <summary>
            Collapses a <see cref="T:Wyam.Common.IO.FilePath"/> containing ellipses.
            </summary>
            <returns>A collapsed <see cref="T:Wyam.Common.IO.FilePath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.op_Implicit(System.String)~Wyam.Common.IO.FilePath">
            <summary>
            Performs an implicit conversion from <see cref="T:System.String"/> to <see cref="T:Wyam.Common.IO.FilePath"/>.
            </summary>
            <param name="path">The path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.FilePath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.FromString(System.String)">
            <summary>
            Performs a conversion from <see cref="T:System.String"/> to <see cref="T:Wyam.Common.IO.FilePath"/>.
            </summary>
            <param name="path">The path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.FilePath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.op_Implicit(System.Uri)~Wyam.Common.IO.FilePath">
            <summary>
            Performs an implicit conversion from <see cref="T:System.Uri"/> to <see cref="T:Wyam.Common.IO.FilePath"/>.
            </summary>
            <param name="path">The path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.FilePath"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.FilePath.FromUri(System.Uri)">
            <summary>
            Performs a conversion from <see cref="T:System.Uri"/> to <see cref="T:Wyam.Common.IO.FilePath"/>.
            </summary>
            <param name="path">The path.</param>
            <returns>A <see cref="T:Wyam.Common.IO.FilePath"/>.</returns>
        </member>
        <member name="T:Wyam.Common.IO.IDirectory">
            <summary>
            Represents a directory. Not all implementations will support all
            available methods and may throw <see cref="T:System.NotSupportedException"/>.
            </summary>
        </member>
        <member name="P:Wyam.Common.IO.IDirectory.Path">
            <summary>
            Gets the path to the directory.
            </summary>
            <value>The path.</value>
        </member>
        <member name="P:Wyam.Common.IO.IDirectory.Parent">
            <summary>
            Gets the parent directory or <c>null</c> if the directory is a root.
            </summary>
        </member>
        <member name="P:Wyam.Common.IO.IDirectory.IsCaseSensitive">
            <summary>
            Indicates whether this directory (and files/directories under it) are case-sensitive.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.IDirectory.Create">
            <summary>
            Creates the directory, including any necessary parent directories.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.IDirectory.Delete(System.Boolean)">
            <summary>
            Deletes the directory.
            </summary>
            <param name="recursive">Will perform a recursive delete if set to <c>true</c>.</param>
        </member>
        <member name="M:Wyam.Common.IO.IDirectory.GetDirectories(System.IO.SearchOption)">
            <summary>
            Gets directories matching the specified filter and scope.
            </summary>
            <param name="searchOption">
            Specifies whether the operation should include only
            the current directory or should include all subdirectories.
            </param>
            <returns>Directories matching the filter and scope.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IDirectory.GetFiles(System.IO.SearchOption)">
            <summary>
            Gets files matching the specified filter and scope.
            </summary>
            <param name="searchOption">
            Specifies whether the operation should include only
            the current directory or should include all subdirectories.
            </param>
            <returns>Files matching the specified filter and scope.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IDirectory.GetDirectory(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets a directory by combining it's path with the current directory's path.
            The specified directory path must be relative.
            </summary>
            <param name="directory">The path of the directory.</param>
            <returns>The directory.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IDirectory.GetFile(Wyam.Common.IO.FilePath)">
            <summary>
            Gets a file by combining it's path with the current directory's path.
            The specified file path must be relative.
            </summary>
            <param name="path">The path of the file.</param>
            <returns>The file.</returns>
        </member>
        <member name="T:Wyam.Common.IO.IFile">
            <summary>
            Represents a file. Not all implementations will support all
            available methods and may throw <see cref="T:System.NotSupportedException"/>.
            </summary>
        </member>
        <member name="P:Wyam.Common.IO.IFile.Path">
            <summary>
            Gets the path to the file.
            </summary>
            <value>The path.</value>
        </member>
        <member name="P:Wyam.Common.IO.IFile.Directory">
            <summary>
            Gets the directory of the file.
            </summary>
            <value>
            The directory of the file.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.IFile.Length">
            <summary>
            Gets the length of the file.
            </summary>
            <value>The length of the file.</value>
        </member>
        <member name="M:Wyam.Common.IO.IFile.CopyTo(Wyam.Common.IO.IFile,System.Boolean,System.Boolean)">
            <summary>
            Copies the file to the specified destination file.
            </summary>
            <param name="destination">The destination file.</param>
            <param name="overwrite">Will overwrite existing destination file if set to <c>true</c>.</param>
            <param name="createDirectory">Will create any needed directories that don't already exist if set to <c>true</c>.</param>
        </member>
        <member name="M:Wyam.Common.IO.IFile.MoveTo(Wyam.Common.IO.IFile)">
            <summary>
            Moves the file to the specified destination file.
            </summary>
            <param name="destination">The destination file.</param>
        </member>
        <member name="M:Wyam.Common.IO.IFile.Delete">
            <summary>
            Deletes the file.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.IFile.ReadAllText">
            <summary>
            Reads all text from the file.
            </summary>
            <returns>All text in the file.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IFile.WriteAllText(System.String,System.Boolean)">
            <summary>
            Writes the specified text to a file.
            </summary>
            <param name="contents">The text to write.</param>
            <param name="createDirectory">Will create any needed directories that don't already exist if set to <c>true</c>.</param>
        </member>
        <member name="M:Wyam.Common.IO.IFile.OpenRead">
            <summary>
            Opens the file for reading. If it does not exist, an exception
            will be thrown.
            </summary>
            <returns>The stream.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IFile.OpenWrite(System.Boolean)">
            <summary>
            Opens the file for writing. This will either create the file
            if it doesn't exist or overwrite it if it does.
            </summary>
            <param name="createDirectory">Will create any needed directories that don't already exist if set to <c>true</c>.</param>
            <returns>The stream.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IFile.OpenAppend(System.Boolean)">
            <summary>
            Opens the file for writing. This will either create the file
            if it doesn't exist or append to it if it does.
            </summary>
            <param name="createDirectory">Will create any needed directories that don't already exist if set to <c>true</c>.</param>
            <returns>The stream.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IFile.Open(System.Boolean)">
            <summary>
            Opens the file for reading and writing. This will either create the file
            if it doesn't exist or overwrite it if it does.
            </summary>
            <param name="createDirectory">Will create any needed directories that don't already exist if set to <c>true</c>.</param>
            <returns>The stream.</returns>
        </member>
        <member name="T:Wyam.Common.IO.IFileProvider">
            <summary>
            A provider that can instantiate <see cref="T:Wyam.Common.IO.IFile"/> and <see cref="T:Wyam.Common.IO.IDirectory"/>
            objects from their paths.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.IFileProvider.GetFile(Wyam.Common.IO.FilePath)">
            <summary>
            Gets a file from a specified path.
            </summary>
            <param name="path">The path to the file.</param>
            <returns>The file.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IFileProvider.GetDirectory(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets a directory from a specified path.
            </summary>
            <param name="path">The path to the directory.</param>
            <returns>The directory.</returns>
        </member>
        <member name="T:Wyam.Common.IO.IFileProviderCollection">
            <summary>
            A collection of file providers mapped to schemes.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.IFileProviderCollection.Add(System.String,Wyam.Common.IO.IFileProvider)">
            <summary>
            Adds a file provider.
            </summary>
            <param name="scheme">The scheme the file provider supports.</param>
            <param name="provider">The file provider.</param>
        </member>
        <member name="M:Wyam.Common.IO.IFileProviderCollection.Remove(System.String)">
            <summary>
            Removes a file provider by scheme.
            </summary>
            <param name="scheme">The scheme to remove.</param>
            <returns><c>true</c> if the provider was found and removed,
            <c>false</c> if the provider was not found.</returns>
        </member>
        <member name="T:Wyam.Common.IO.IFileSystem">
            <summary>
            A file system that can be configured.
            </summary>
        </member>
        <member name="P:Wyam.Common.IO.IFileSystem.FileProviders">
            <summary>
            Gets the file providers.
            </summary>
            <value>
            The file providers.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.IFileSystem.RootPath">
            <summary>
            Gets or sets the root path.
            </summary>
            <value>
            The root path.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.IFileSystem.InputPaths">
            <summary>
            Gets the input paths collection which can be used
            to add or remove input paths.
            </summary>
            <value>
            The input paths.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.IFileSystem.OutputPath">
            <summary>
            Gets or sets the output path.
            </summary>
            <value>
            The output path.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.IFileSystem.TempPath">
            <summary>
            Gets or sets the temporary file path.
            </summary>
        </member>
        <member name="T:Wyam.Common.IO.IFileSystemEntry">
            <summary>
            Represents an entry in the file system
            </summary>
        </member>
        <member name="P:Wyam.Common.IO.IFileSystemEntry.Path">
            <summary>
            Gets the path to the entry.
            </summary>
            <value>The path.</value>
        </member>
        <member name="P:Wyam.Common.IO.IFileSystemEntry.Exists">
            <summary>
            Gets a value indicating whether this <see cref="T:Wyam.Common.IO.IFileSystemEntry"/> exists.
            </summary>
            <value>
              <c>true</c> if the entry exists; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:Wyam.Common.IO.IReadOnlyFileProviderCollection">
            <summary>
            A read-only collection of file providers mapped to schemes.
            </summary>
        </member>
        <member name="P:Wyam.Common.IO.IReadOnlyFileProviderCollection.Providers">
            <summary>
            Gets the current file providers.
            </summary>
            <value>
            The current file providers.
            </value>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileProviderCollection.Get(System.String)">
            <summary>
            Gets the requested file provider. Throws <see cref="T:System.Collections.Generic.KeyNotFoundException"/>
            if the provider couldn't be found.
            </summary>
            <param name="scheme">The scheme the provider supports.</param>
            <returns>The requested <see cref="T:Wyam.Common.IO.IFileProvider"/>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileProviderCollection.TryGet(System.String,Wyam.Common.IO.IFileProvider@)">
            <summary>
            Tries to get the requested file provider.
            </summary>
            <param name="scheme">The scheme the provider supports.</param>
            <param name="fileProvider">The file provider.</param>
            <returns><c>true</c> if the provider was found, otherwise <c>false</c>.</returns>
        </member>
        <member name="T:Wyam.Common.IO.IReadOnlyFileSystem">
            <summary>
            Represents a file system.
            </summary>
        </member>
        <member name="P:Wyam.Common.IO.IReadOnlyFileSystem.FileProviders">
            <summary>
            Gets the file providers.
            </summary>
            <value>
            The file providers.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.IReadOnlyFileSystem.RootPath">
            <summary>
            Gets the root path.
            </summary>
            <value>
            The root path.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.IReadOnlyFileSystem.InputPaths">
            <summary>
            Gets the input paths. These are searched in reverse order for
            files and directories. For example, given input paths "A", "B",
            and "C" in that order, "C" will be checked for a requested file
            or directory first, and then if it doesn't exist in "C", "B"
            will be checked, and then "A". If none of the input paths contain
            the requested file or directory, the last input path (in this case,
            "C") will be used as the location of the requested non-existent file
            or directory. If you attempt to create it at this point, it will be
            created under path "C".
            </summary>
            <value>
            The input paths.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.IReadOnlyFileSystem.OutputPath">
            <summary>
            Gets the output path.
            </summary>
            <value>
            The output path.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.IReadOnlyFileSystem.TempPath">
            <summary>
            Gets the temporary file path.
            </summary>
            <value>
            The temporary file path.
            </value>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetInputFile(Wyam.Common.IO.FilePath)">
            <summary>
            Gets a file representing an input.
            </summary>
            <param name="path">
            The path of the input file. If this is an absolute path,
            then a file representing the specified path is returned.
            If it's a relative path, then operations will search all
            current input paths.
            </param>
            <returns>An input file.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetInputFiles(System.String[])">
            <summary>
            Gets matching input files based on globbing patterns and/or absolute paths. If any absolute paths
            are provided, only those that actually exist are returned.
            </summary>
            <param name="patterns">The globbing patterns and/or absolute paths.</param>
            <returns>All input files that match the globbing patterns and/or absolute paths.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetInputFiles(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Gets matching input files based on globbing patterns and/or absolute paths. If any absolute paths
            are provided, only those that actually exist are returned.
            </summary>
            <param name="patterns">The globbing patterns and/or absolute paths.</param>
            <returns>All input files that match the globbing patterns and/or absolute paths.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetInputDirectory(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets a directory representing an input.
            </summary>
            <param name="path">
            The path of the input directory. If this is an absolute path,
            then a directory representing the specified path is returned.
            If it's a relative path, then the returned directory will
            be a virtual directory that aggregates all input
            paths. If this is <c>null</c> then a virtual
            directory aggregating all input paths is returned.
            </param>
            <returns>An input directory.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetInputDirectories">
            <summary>
            Gets all absolute input directories.
            </summary>
            <returns>The absolute input directories.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetContainingInputPath(Wyam.Common.IO.NormalizedPath)">
            <summary>
            Gets the absolute input path that contains the specified file or directory. If the provided
            file or directory path is absolute, this returns the input path that contains the specified
            path (note that the specified file or directory does not need to exist and this just returns
            the input path that would contain the file or directory based only on path information). If
            the provided path is relative, this checks all input paths for the existence of the file
            or directory and returns the first one where it exists.
            </summary>
            <param name="path">The file path.</param>
            <returns>The input path that contains the specified file,
            or <c>null</c> if no input path does.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetOutputPath(Wyam.Common.IO.FilePath)">
            <summary>
            Gets an output file path by combining it with the root path and output path.
            </summary>
            <param name="path">The path to combine with the root path and output path.</param>
            <returns>The output file path.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetOutputPath(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets an output directory path by combining it with the root path and output path.
            </summary>
            <param name="path">The path to combine with the root path and output path.
            If this is <c>null</c>, returns the root path combined with the output path.</param>
            <returns>The output directory path.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetOutputFile(Wyam.Common.IO.FilePath)">
            <summary>
            Gets a file representing an output.
            </summary>
            <param name="path">
            The path of the output file. If this is an absolute path,
            then a file representing the specified path is returned.
            If it's a relative path, then it will be combined with the
            current output path.
            </param>
            <returns>An output file.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetOutputDirectory(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets a directory representing an output.
            </summary>
            <param name="path">
            The path of the output directory. If this is an absolute path,
            then a directory representing the specified path is returned.
            If it's a relative path, then it will be combined with the
            current output path. If this is <c>null</c> then the base
            output directory is returned.
            </param>
            <returns>An output directory.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetRootFile(Wyam.Common.IO.FilePath)">
            <summary>
            Gets a file representing a root file.
            </summary>
            <param name="path">
            The path of the root file. If this is an absolute path,
            then a file representing the specified path is returned.
            If it's a relative path, then it will be combined with the
            current root path.
            </param>
            <returns>A root file.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetRootDirectory(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets a directory representing a root directory.
            </summary>
            <param name="path">
            The path of the root directory. If this is an absolute path,
            then a directory representing the specified path is returned.
            If it's a relative path, then it will be combined with the
            current root path. If this is <c>null</c> then the base
            root directory is returned.
            </param>
            <returns>A root directory.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetTempPath(Wyam.Common.IO.FilePath)">
            <summary>
            Gets a temp file path by combining it with the root path and temp path.
            </summary>
            <param name="path">The path to combine with the root path and temp path.</param>
            <returns>The temp file path.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetTempPath(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets a temp directory path by combining it with the root path and temp path.
            </summary>
            <param name="path">The path to combine with the root path and temp path.
            If this is <c>null</c>, returns the root path combined with the temp path.</param>
            <returns>The temp directory path.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetTempFile(Wyam.Common.IO.FilePath)">
            <summary>
            Gets a file representing a temp file.
            </summary>
            <param name="path">
            If this is an absolute path,
            then a file representing the specified path is returned.
            If it's a relative path, then it will be combined with the
            current temp path.
            </param>
            <returns>A temp file.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetTempFile">
            <summary>
            Gets a file representing a temp file with a random file name.
            </summary>
            <returns>A temp file.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetTempDirectory(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets a directory representing temp files.
            </summary>
            <param name="path">
            The path of the temp directory. If this is an absolute path,
            then a directory representing the specified path is returned.
            If it's a relative path, then it will be combined with the
            current temp path. If this is <c>null</c> then the base
            temp directory is returned.
            </param>
            <returns>A temp directory.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetFile(Wyam.Common.IO.FilePath)">
            <summary>
            Gets an absolute file.
            </summary>
            <param name="path">
            The absolute path of the file.
            </param>
            <returns>A file.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetDirectory(Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets an absolute directory.
            </summary>
            <param name="path">
            The absolute path of the directory.
            </param>
            <returns>A directory.</returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetFiles(System.String[])">
            <summary>
            Gets matching files based on globbing patterns from the root path or absolute paths.
            </summary>
            <param name="patterns">The globbing patterns and/or absolute paths.</param>
            <returns>
            All files in the specified directory that match the globbing patterns and/or absolute paths.
            </returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetFiles(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Gets matching files based on globbing patterns from the root path or absolute paths.
            </summary>
            <param name="patterns">The globbing patterns and/or absolute paths.</param>
            <returns>
            All files in the specified directory that match the globbing patterns and/or absolute paths.
            </returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetFiles(Wyam.Common.IO.IDirectory,System.String[])">
            <summary>
            Gets matching files based on globbing patterns and/or absolute paths. If any absolute paths
            are provided, only those that actually exist are returned.
            </summary>
            <param name="directory">The directory to search.</param>
            <param name="patterns">The globbing patterns and/or absolute paths.</param>
            <returns>
            All files in the specified directory that match the globbing patterns and/or absolute paths.
            </returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetFiles(Wyam.Common.IO.IDirectory,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Gets matching files based on globbing patterns and/or absolute paths. If any absolute paths
            are provided, only those that actually exist are returned.
            </summary>
            <param name="directory">The directory to search.</param>
            <param name="patterns">The globbing patterns and/or absolute paths.</param>
            <returns>
            All files in the specified directory that match the globbing patterns and/or absolute paths.
            </returns>
        </member>
        <member name="M:Wyam.Common.IO.IReadOnlyFileSystem.GetFileProvider(Wyam.Common.IO.NormalizedPath)">
            <summary>
            Gets the registered file provider for a specified path.
            </summary>
            <param name="path">The path to get the file provider for.</param>
            <returns>The file provider for the specified path.</returns>
        </member>
        <member name="T:Wyam.Common.IO.NormalizedPath">
            <summary>
            Provides properties and instance methods for working with paths.
            </summary>
        </member>
        <member name="F:Wyam.Common.IO.NormalizedPath.DefaultFileProvider">
            <summary>
            The default file provider.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.#ctor(System.String,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.NormalizedPath" /> class.
            </summary>
            <param name="path">The path.</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.#ctor(System.String,System.String,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.NormalizedPath" /> class
            with the given provider.
            </summary>
            <param name="fileProvider">The provider for this path.</param>
            <param name="path">The path.</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.#ctor(System.Uri,System.String,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.NormalizedPath" /> class
            with the given provider.
            </summary>
            <param name="fileProvider">The provider for this path.</param>
            <param name="path">The path.</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.#ctor(System.Uri)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.NormalizedPath" /> class. The new path
            will be absolute if the specified URI is absolute, otherwise it will be relative.
            </summary>
            <param name="path">The path as a URI.</param>
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.#ctor(System.Tuple{System.Uri,System.String},System.Boolean,Wyam.Common.IO.PathKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.IO.NormalizedPath" /> class.
            </summary>
            <param name="providerAndPath">The provider and path as a Tuple so it can
            be passed from both of the other constructors.</param>
            <param name="fullySpecified">If set to <c>true</c> indicates that this constructor was
            called from one where the provider and path were fully specified (as opposed to being inferred).</param>
            <param name="pathKind">Specifies whether the path is relative, absolute, or indeterminate.</param>
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.GetFileProviderAndPath(System.Uri,System.String)">
            <summary>
            Gets the provider and path from a path string. Implemented as a static
            so it can be used in a constructor chain. Internal for testing.
            </summary>
            <param name="uriPath">The URI-based path.</param>
            <param name="stringPath">The string-based path.</param>
            <returns>The provider (item 1) and path (item 2).</returns>
        </member>
        <member name="P:Wyam.Common.IO.NormalizedPath.FullPath">
            <summary>
            Gets the full path.
            </summary>
            <value>The full path.</value>
        </member>
        <member name="P:Wyam.Common.IO.NormalizedPath.IsRelative">
            <summary>
            Gets a value indicating whether this path is relative.
            </summary>
            <value>
            <c>true</c> if this path is relative; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.NormalizedPath.IsAbsolute">
            <summary>
            Gets or sets a value indicating whether this path is absolute.
            </summary>
            <value>
            <c>true</c> if this path is absolute; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.NormalizedPath.Segments">
            <summary>
            Gets the segments making up the path.
            </summary>
            <value>The segments making up the path.</value>
        </member>
        <member name="P:Wyam.Common.IO.NormalizedPath.FileProvider">
            <summary>
            Gets the file provider for this path. If this is a relative path,
            the file provider will always be <c>null</c>. If this is an absolute
            path and the file provider is <c>null</c> it indicates the path
            is not intended for use with an actual file provider.
            </summary>
            <value>
            The file provider for this path.
            </value>
        </member>
        <member name="P:Wyam.Common.IO.NormalizedPath.Root">
            <summary>
            Gets the root of this path or "." if this is a relative path
            or there is no root.
            </summary>
            <value>
            The root of this path.
            </value>
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents this path.
            </summary>
            <returns>
            A <see cref="T:System.String" /> that represents this instance.
            </returns>
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.CompareTo(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.IO.NormalizedPath.CompareTo(Wyam.Common.IO.NormalizedPath)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.IO.PathCollection`1">
            <summary>
            An ordered collection of unique <see cref="T:Wyam.Common.IO.NormalizedPath"/>.
            </summary>
            <typeparam name="TPath">The type of the path (file or directory).</typeparam>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.#ctor">
            <summary>
            Initializes a new path collection.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes a new path collection.
            </summary>
            <param name="paths">The paths.</param>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            An <c>IEnumerator&lt;TPath&gt;</c> that can be used to iterate through the collection.
            </returns>
        </member>
        <member name="P:Wyam.Common.IO.PathCollection`1.Count">
            <summary>
            Gets the number of directories in the collection.
            </summary>
            <value>The number of directories in the collection.</value>
        </member>
        <member name="P:Wyam.Common.IO.PathCollection`1.Item(System.Int32)">
            <summary>
            Gets or sets the <see cref="T:Wyam.Common.IO.DirectoryPath" /> at the specified index.
            </summary>
            <value>
            The <see cref="T:Wyam.Common.IO.DirectoryPath" /> at the specified index.
            </value>
            <param name="index">The index.</param>
            <returns>The path at the specified index.</returns>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.Add(`0)">
            <summary>
            Adds the specified path to the collection.
            </summary>
            <param name="path">The path to add.</param>
            <returns>
            <c>true</c> if the path was added; <c>false</c> if the path was already present.
            </returns>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds the specified paths to the collection.
            </summary>
            <param name="paths">The paths to add.</param>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.Clear">
            <summary>
            Clears all paths from the collection.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.Contains(`0)">
            <summary>
            Determines whether the collection contains the specified path.
            </summary>
            <param name="path">The path.</param>
            <returns><c>true</c> if the collection contains the path, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.Remove(`0)">
            <summary>
            Removes the specified path.
            </summary>
            <param name="path">The path to remove.</param>
            <returns><c>true</c> if the collection contained the path, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.RemoveRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Removes the specified paths from the collection.
            </summary>
            <param name="paths">The paths to remove.</param>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.IndexOf(`0)">
            <summary>
            Returns the index of the specified path.
            </summary>
            <param name="path">The path.</param>
            <returns>The index of the specified path, or -1 if not found.</returns>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.Insert(System.Int32,`0)">
            <summary>
            Inserts the path at the specified index.
            </summary>
            <param name="index">The index where the path should be inserted.</param>
            <param name="path">The path to insert.</param>
            <returns><c>true</c> if the collection did not contain the path and it was inserted, otherwise <c>false</c></returns>
        </member>
        <member name="M:Wyam.Common.IO.PathCollection`1.RemoveAt(System.Int32)">
            <summary>
            Removes the path at the specified index.
            </summary>
            <param name="index">The index where the path should be removed.</param>
        </member>
        <member name="T:Wyam.Common.IO.PathEqualityComparer">
            <summary>
            Compares <see cref="T:Wyam.Common.IO.NormalizedPath"/> instances.
            </summary>
        </member>
        <member name="M:Wyam.Common.IO.PathEqualityComparer.Equals(Wyam.Common.IO.NormalizedPath,Wyam.Common.IO.NormalizedPath)">
            <summary>
            Determines whether the specified <see cref="T:Wyam.Common.IO.NormalizedPath"/> instances are equal.
            </summary>
            <param name="x">The first <see cref="T:Wyam.Common.IO.NormalizedPath"/> to compare.</param>
            <param name="y">The second <see cref="T:Wyam.Common.IO.NormalizedPath"/> to compare.</param>
            <returns>
            True if the specified <see cref="T:Wyam.Common.IO.NormalizedPath"/> instances are equal; otherwise, false.
            </returns>
        </member>
        <member name="M:Wyam.Common.IO.PathEqualityComparer.GetHashCode(Wyam.Common.IO.NormalizedPath)">
            <summary>
            Returns a hash code for the specified <see cref="T:Wyam.Common.IO.NormalizedPath"/>.
            </summary>
            <param name="obj">The path.</param>
            <returns>
            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
            </returns>
        </member>
        <member name="T:Wyam.Common.IO.PathKind">
            <summary>
            The kind of the path.
            </summary>
        </member>
        <member name="F:Wyam.Common.IO.PathKind.Absolute">
            <summary>
            The path is absolute.
            </summary>
        </member>
        <member name="F:Wyam.Common.IO.PathKind.Relative">
            <summary>
            The path is relative.
            </summary>
        </member>
        <member name="F:Wyam.Common.IO.PathKind.RelativeOrAbsolute">
            <summary>
            The path can be either relative or absolute.
            </summary>
        </member>
        <member name="T:Wyam.Common.JavaScript.IJavaScriptEngine">
            <summary>
            A common interface to a JavaScript engine. Every JavaScript engine is
            obtained from a <see cref="T:Wyam.Common.JavaScript.IJavaScriptEnginePool"/> and will be returned to the
            pool when it is disposed. Therefore, you must dispose the engine when
            you are done with it.
            </summary>
        </member>
        <member name="P:Wyam.Common.JavaScript.IJavaScriptEngine.Name">
            <summary>
            Gets the name of JavaScript engine.
            </summary>
        </member>
        <member name="P:Wyam.Common.JavaScript.IJavaScriptEngine.Version">
            <summary>
            Gets the version of original JavaScript engine.
            </summary>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.Evaluate(System.String)">
            <summary>
            Evaluates an expression.
            </summary>
            <param name="expression">JavaScript expression.</param>
            <returns>Result of the expression.</returns>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.Evaluate``1(System.String)">
            <summary>
            Evaluates an expression.
            </summary>
            <typeparam name="T">Type of result.</typeparam>
            <param name="expression">JavaScript expression.</param>
            <returns>Result of the expression.</returns>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.Execute(System.String)">
            <summary>
            Executes JavaScript code.
            </summary>
            <param name="code">The JavaScript code to execute.</param>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.ExecuteFile(System.String,System.Text.Encoding)">
            <summary>
            Executes code from JavaScript file.
            </summary>
            <param name="path">Path to the JavaScript file.</param>
            <param name="encoding">Text encoding.</param>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.ExecuteResource(System.String,System.Type)">
            <summary>
            Executes code from embedded JavaScript resource.
            </summary>
            <param name="resourceName">The case-sensitive resource name without the namespace of the specified type.</param>
            <param name="type">The type, that determines the assembly and whose namespace is used to scope
            the resource name.</param>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.ExecuteResource(System.String,System.Reflection.Assembly)">
            <summary>
            Executes code from embedded JavaScript resource.
            </summary>
            <param name="resourceName">The case-sensitive resource name.</param>
            <param name="assembly">The assembly, which contains the embedded resource.</param>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.CallFunction(System.String,System.Object[])">
            <summary>
            Calls a JavaScript function.
            </summary>
            <param name="functionName">Function name.</param>
            <param name="args">Function arguments.</param>
            <returns>Result of the function execution.</returns>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.CallFunction``1(System.String,System.Object[])">
            <summary>
            Calls a JavaScript function.
            </summary>
            <typeparam name="T">Type of function result.</typeparam>
            <param name="functionName">Function name.</param>
            <param name="args">Function arguments.</param>
            <returns>Result of the function execution.</returns>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.HasVariable(System.String)">
            <summary>
            Сhecks for the existence of a variable.
            </summary>
            <param name="variableName">Variable name.</param>
            <returns><c>true</c> if the variable exists, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.GetVariableValue(System.String)">
            <summary>
            Gets the value of variable.
            </summary>
            <param name="variableName">Variable name.</param>
            <returns>Value of variable.</returns>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.GetVariableValue``1(System.String)">
            <summary>
            Gets the value of variable.
            </summary>
            <typeparam name="T">Type of variable.</typeparam>
            <param name="variableName">Variable name.</param>
            <returns>Value of variable.</returns>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.SetVariableValue(System.String,System.Object)">
            <summary>
            Sets the value of variable.
            </summary>
            <param name="variableName">Variable name.</param>
            <param name="value">Value of variable.</param>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.RemoveVariable(System.String)">
            <summary>
            Removes a variable.
            </summary>
            <param name="variableName">Variable name.</param>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.EmbedHostObject(System.String,System.Object)">
            <summary>
            Embeds a host object to script code.
            </summary>
            <param name="itemName">The name for the new global variable or function that will represent the object.</param>
            <param name="value">The object to expose.</param>
            <remarks>Allows to embed instances of simple classes (or structures) and delegates.</remarks>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEngine.EmbedHostType(System.String,System.Type)">
            <summary>
            Embeds a host type to script code.
            </summary>
            <param name="itemName">The name for the new global variable that will represent the type.</param>
            <param name="type">The type to expose.</param>
            <remarks>
            Host types are exposed to script code in the form of objects whose properties and
            methods are bound to the type's static members.
            </remarks>
        </member>
        <member name="T:Wyam.Common.JavaScript.IJavaScriptEnginePool">
            <summary>
            Provides a shared pool of JavaScript engine instances. You should dispose the pool when
            no longer needed to properly dispose of any allocated engines.
            </summary>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEnginePool.GetEngine(System.Nullable{System.TimeSpan})">
            <summary>
            Gets an engine from the pool. This engine should be disposed when you are finished with it.
            If an engine is free, this method returns immediately with the engine.
            If no engines are available but we have not reached the maximum number of engines
            yet, creates a new engine. If the maximum number of engines has been reached, blocks until an engine is
            available again.
            </summary>
            <param name="timeout">
            Maximum time to wait for a free engine. If not specified, defaults to the timeout
            specified when creating the pool.
            </param>
            <returns>A JavaScript engine.</returns>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEnginePool.RecycleEngine(Wyam.Common.JavaScript.IJavaScriptEngine)">
            <summary>
            Disposes the specified engine and removes it from the pool. A new engine will be created in it's place.
            </summary>
            <param name="engine">The JavaScript engine.</param>
        </member>
        <member name="M:Wyam.Common.JavaScript.IJavaScriptEnginePool.RecycleAllEngines">
            <summary>
            Disposes all engines in this pool, and creates new engines in their place.
            </summary>
        </member>
        <member name="T:Wyam.Common.Meta.CachedDelegateMetadataValue">
            <summary>
            This class uses a delegate to get a metadata value. The result of the delegate
            will be cached and the cached value will be returned for subsequent calls to <see cref="M:Wyam.Common.Meta.CachedDelegateMetadataValue.Get(Wyam.Common.Meta.IMetadata)"/>.
            </summary>
        </member>
        <member name="M:Wyam.Common.Meta.CachedDelegateMetadataValue.#ctor(System.Func{Wyam.Common.Meta.IMetadata,System.Object})">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.Meta.CachedDelegateMetadataValue"/> class.
            The specified delegate should be thread-safe.
            </summary>
            <param name="value">The delegate that returns the metadata value.</param>
        </member>
        <member name="M:Wyam.Common.Meta.CachedDelegateMetadataValue.Get(Wyam.Common.Meta.IMetadata)">
            <summary>
            Lazily loads a metadata value. This method will be called
            for each request and the return object will
            be processed like any other metadata value. The implementation
            of this method must be thread-safe.
            </summary>
            <param name="metadata">The metadata object requesting the value.</param>
            <returns>The object to use as the value.</returns>
        </member>
        <member name="T:Wyam.Common.Meta.ConvertingDictionary">
            <summary>
            A dictionary with metadata type conversion superpowers.
            </summary>
            <remarks>
            This class wraps an underlying <see cref="T:System.Collections.Generic.Dictionary`2"/> but
            uses the provided <see cref="T:Wyam.Common.Execution.IExecutionContext"/> to perform type conversions
            when requesting values.
            </remarks>
        </member>
        <member name="P:Wyam.Common.Meta.ConvertingDictionary.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.ConvertingDictionary.System#Collections#Generic#IReadOnlyDictionary{System#String,System#Object}#Item(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.ConvertingDictionary.Count">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.ConvertingDictionary.Keys">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.ConvertingDictionary.Values">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.ConvertingDictionary.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.ConvertingDictionary.System#Collections#Generic#IReadOnlyDictionary{System#String,System#Object}#Keys">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.ConvertingDictionary.System#Collections#Generic#IReadOnlyDictionary{System#String,System#Object}#Values">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.Add(System.String,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.Add(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.Clear">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.Contains(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.ContainsKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.Object}[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.Get(System.String,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.Get``1(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.Get``1(System.String,``0)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.GetRaw(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.Remove(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.Remove(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.TryGetValue(System.String,System.Object@)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.TryGetValue``1(System.String,``0@)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.GetMetadata(System.String[])">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.ConvertingDictionary.MetadataAs``1">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.Meta.DelegateMetadataValue">
            <summary>
            This class uses a delegate to get a metadata value.
            </summary>
        </member>
        <member name="M:Wyam.Common.Meta.DelegateMetadataValue.#ctor(System.Func{Wyam.Common.Meta.IMetadata,System.Object})">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Common.Meta.DelegateMetadataValue"/> class.
            The specified delegate should be thread-safe.
            </summary>
            <param name="value">The delegate that returns the metadata value.</param>
        </member>
        <member name="M:Wyam.Common.Meta.DelegateMetadataValue.Get(Wyam.Common.Meta.IMetadata)">
            <summary>
            Lazily loads a metadata value. This method will be called
            for each request and the return object will
            be processed like any other metadata value. The implementation
            of this method must be thread-safe.
            </summary>
            <param name="metadata">The metadata object requesting the value.</param>
            <returns>The object to use as the value.</returns>
        </member>
        <member name="T:Wyam.Common.Meta.IMetadata">
            <summary>
            Contains a set of metadata with flexible runtime conversion methods. Metadata keys are case-insensitive.
            </summary>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadata.MetadataAs``1">
            <summary>
            Presents metadata values as a specific type (see <see cref="T:Wyam.Common.Meta.IMetadata"/>).
            </summary>
            <typeparam name="T">The type metadata values should be converted to.</typeparam>
            <returns>A strongly-typed <see cref="T:Wyam.Common.Meta.IMetadata"/> object that returns values converted to type T.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadata.Get(System.String,System.Object)">
            <summary>
            Gets the value for the specified key. This method never throws an exception. It will return the specified
            default value or null if the key is not found.
            </summary>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if the key is not found.</param>
            <returns>The value for the specified key or the specified default value.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadata.GetRaw(System.String)">
            <summary>
            Gets the raw value for the specified key. This method will not materialize <see cref="T:Wyam.Common.Meta.IMetadataValue"/>
            values the way <see cref="M:Wyam.Common.Meta.IMetadata.Get(System.String,System.Object)"/> will. A <see cref="T:System.Collections.Generic.KeyNotFoundException"/> will be thrown
            for missing keys.
            </summary>
            <param name="key">The key of the value to get.</param>
            <returns>The raw value for the specified ke.y</returns>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadata.Get``1(System.String)">
            <summary>
            Gets the value for the specified key converted to the specified type.
            This method never throws an exception. It will return default(T) if the key is not found
            or the value cannot be converted to T.
            </summary>
            <typeparam name="T">The desired return type.</typeparam>
            <param name="key">The key of the value to get.</param>
            <returns>The value for the specified key converted to type T or default(T) if the key is not found or cannot be converted to type T.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadata.Get``1(System.String,``0)">
            <summary>
            Gets the value for the specified key. This method never throws an exception. It will return the specified
            default value if the key is not found.
            </summary>
            <typeparam name="T">The desired return type.</typeparam>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if the key is not found or cannot be converted to type T.</param>
            <returns>The value for the specified key converted to type T or the specified default value.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadata.TryGetValue``1(System.String,``0@)">
            <summary>
            Tries to get the value for the specified key.
            </summary>
            <typeparam name="T">The desired return type.</typeparam>
            <param name="key">The key of the value to get.</param>
            <param name="value">The value of the key if it was found and could be converted to the desired return type.</param>
            <returns><c>true</c> if the key was found and the value could be converted to the desired return type, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadata.GetMetadata(System.String[])">
            <summary>
            Gets a new <see cref="T:Wyam.Common.Meta.IMetadata"/> containing only the specified keys and their values. If a key is not present in the current
            metadata, it will be ignored and will not be copied to the new metadata object.
            </summary>
            <param name="keys">The keys to include in the new metadata object.</param>
            <returns>A new <see cref="T:Wyam.Common.Meta.IMetadata"/> containing the specified keys and their values.</returns>
        </member>
        <member name="T:Wyam.Common.Meta.IMetadata`1">
            <summary>
            Contains a set of metadata converted to type <typeparamref name="T"/>.
            The conversion is designed to be flexible and several different methods of type
            conversion are tried. Only those values that can be converted to type <typeparamref name="T"/>
            are actually included in the dictionary.
            </summary>
            <typeparam name="T">The type all metadata values should be converted to.</typeparam>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadata`1.Get(System.String)">
            <summary>Gets the value associated with the specified key converted to <typeparamref name="T"/>.</summary>
            <param name="key">The key of the value to get.</param>
            <returns>The converted value for the specified key or <c>default(T)</c> if not found.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadata`1.Get(System.String,`0)">
            <summary>Gets the value associated with the specified key converted to <typeparamref name="T"/>.</summary>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if either the key is not found or the underlying type is not convertible.</param>
            <returns>The converted value for the specified key or <paramref name="defaultValue"/> if not found.</returns>
        </member>
        <member name="T:Wyam.Common.Meta.IMetadataDictionary">
            <summary>
            A mutable <see cref="T:Wyam.Common.Meta.IMetadata"/> implementation that works like a dictionary.
            </summary>
        </member>
        <member name="P:Wyam.Common.Meta.IMetadataDictionary.Count">
            <summary>
            The count of metadata.
            </summary>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadataDictionary.ContainsKey(System.String)">
            <summary>
            Whether or not the metadata contains the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns><c>true</c> if the key is contained in metadata, <c>false</c> otherwise.</returns>
        </member>
        <member name="P:Wyam.Common.Meta.IMetadataDictionary.Keys">
            <summary>
            A collection of keys in the metadata.
            </summary>
        </member>
        <member name="P:Wyam.Common.Meta.IMetadataDictionary.Values">
            <summary>
            A collection of values in the metadata.
            </summary>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadataDictionary.TryGetValue(System.String,System.Object@)">
            <summary>
            Attempts to get a value from metadata.
            </summary>
            <param name="key">The metadata key.</param>
            <param name="value">The metadata value.</param>
            <returns><c>true</c> if the key is contained in metadata, <c>false</c> otherwise.</returns>
        </member>
        <member name="P:Wyam.Common.Meta.IMetadataDictionary.Item(System.String)">
            <summary>
            Gets a metadata value given the specified metadata key.
            </summary>
            <param name="key">The metadata key.</param>
            <returns>The value at the specified key.</returns>
        </member>
        <member name="T:Wyam.Common.Meta.IMetadataValue">
            <summary>
            Implement this interface to provide lazy metadata values or values based on other metadata.
            </summary>
        </member>
        <member name="M:Wyam.Common.Meta.IMetadataValue.Get(Wyam.Common.Meta.IMetadata)">
            <summary>
            Lazily loads a metadata value. This method will be called
            for each request and the return object will
            be processed like any other metadata value. The implementation
            of this method must be thread-safe.
            </summary>
            <param name="metadata">The metadata object requesting the value.</param>
            <returns>The object to use as the value.</returns>
        </member>
        <member name="T:Wyam.Common.Meta.Keys">
            <summary>
            Common metadata keys for modules in the core library.
            </summary>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.Host">
            <summary>
            The host to use when generating links.
            </summary>
            <type><see cref="T:System.String"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.LinksUseHttps">
            <summary>
            Indicates if generated links should use HTTPS instead of HTTP as the scheme.
            </summary>
            <type><see cref="T:System.Boolean"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.LinkRoot">
            <summary>
            The default root path to use when generating links
            (for example, <code>"/virtual/directory"</code>).
            Note that you may also want to use the <code>--virtual-dir</code>
            argument on the command line when using this setting so that
            the preview server serves the site at the same path as the generated links
            (for example, <code>--virtual-dir "/virtual/directory"</code>).
            </summary>
            <type><see cref="T:System.String"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.LinkHideIndexPages">
            <summary>
            Indicates whether to hide index pages by default when generating links.
            </summary>
            <type><see cref="T:System.Boolean"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.LinkHideExtensions">
            <summary>
            Indicates whether to hide ".html" and ".htm" extensions by default when generating links.
            </summary>
            <type><see cref="T:System.Boolean"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.LinkLowercase">
            <summary>
            Indicates that links should always be rendered in lowercase.
            </summary>
            <type><see cref="T:System.Boolean"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.UseCache">
            <summary>
            Indicates whether caching should be used.
            </summary>
            <type><see cref="T:System.Boolean"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.CleanOutputPath">
            <summary>
            Indicates whether to clean the output path on each execution.
            </summary>
            <type><see cref="T:System.Boolean"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.DateTimeInputCulture">
            <summary>
            Indicates the culture to use for reading and interpreting dates as input.
            </summary>
            <type><see cref="T:System.String"/> or <see cref="T:System.Globalization.CultureInfo"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.DateTimeDisplayCulture">
            <summary>
            Indicates the culture to use for displaying dates in output.
            </summary>
            <type><see cref="T:System.String"/> or <see cref="T:System.Globalization.CultureInfo"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SourceFileRoot">
            <summary>
            The absolute root search path without any nested directories
            (I.e., the path that was searched, and possibly descended, for the given pattern).
            </summary>
            <type><see cref="T:Wyam.Common.IO.DirectoryPath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SourceFileBase">
            <summary>
            The name of the original file without extension.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SourceFileExt">
            <summary>
            The extension of the original file (including the ".").
            </summary>
            <type><see cref="T:System.String"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SourceFileName">
            <summary>
            The file name of the original file with extension.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SourceFileDir">
            <summary>
            The absolute path to the folder of the original file.
            </summary>
            <type><see cref="T:Wyam.Common.IO.DirectoryPath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SourceFilePath">
            <summary>
            The absolute path to the original file.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SourceFilePathBase">
            <summary>
            The absolute path to the original file without the file extension.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.RelativeFilePath">
            <summary>
            The path to the file relative to the input folder. This metadata
            value is used when generating links to the document.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.RelativeFilePathBase">
            <summary>
            The path to the file relative to the input folder without extension.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.RelativeFileDir">
            <summary>
            The path to the folder containing the file relative to the input folder.
            </summary>
            <type><see cref="T:Wyam.Common.IO.DirectoryPath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.DestinationFileBase">
            <summary>
            The file name without any extension. Equivalent
            to <c>Path.GetFileNameWithoutExtension(DestinationFilePath)</c>.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.DestinationFileExt">
            <summary>
            The extension of the file. Equivalent
            to <c>Path.GetExtension(DestinationFilePath)</c>.
            </summary>
            <type><see cref="T:System.String"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.DestinationFileName">
            <summary>
            The full file name. Equivalent
            to <c>Path.GetFileName(DestinationFilePath)</c>.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.DestinationFileDir">
            <summary>
            The full absolute directory of the file.
            Equivalent to <c>Path.GetDirectoryName(DestinationFilePath)</c>.
            </summary>
            <type><see cref="T:Wyam.Common.IO.DirectoryPath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.DestinationFilePath">
            <summary>
            The full absolute path (including file name)
            of the destination file.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.DestinationFilePathBase">
            <summary>
            The full absolute path (including file name)
            of the destination file without the file extension.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.WriteExtension">
            <summary>
            The extension to use when writing the file.
            </summary>
            <type><see cref="T:System.String"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.WriteFileName">
            <summary>
            The file name to use when writing the file.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.WritePath">
            <summary>
            The path to use when writing the file.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.PageDocuments">
            <summary>
            Contains all the documents for the current page.
            </summary>
            <type><c>IEnumerable&lt;IDocument&gt;</c></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.CurrentPage">
            <summary>
            The index of the current page (1 based).
            </summary>
            <type><see cref="T:System.Int32"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.TotalPages">
            <summary>
            The total number of pages.
            </summary>
            <type><see cref="T:System.Int32"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.TotalItems">
            <summary>
            The total number of items across all pages.
            </summary>
            <type><see cref="T:System.Int32"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.HasNextPage">
            <summary>
            Whether there is another page after this one.
            </summary>
            <type><see cref="T:System.Boolean"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.HasPreviousPage">
            <summary>
            Whether there is another page before this one.
            </summary>
            <type><see cref="T:System.Boolean"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.NextPage">
            <summary>
            The next page.
            </summary>
            <type><see cref="T:Wyam.Common.Documents.IDocument"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.PreviousPage">
            <summary>
            The previous page.
            </summary>
            <type><see cref="T:Wyam.Common.Documents.IDocument"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.GroupDocuments">
            <summary>
            Contains all the documents for the current group.
            </summary>
            <type><c>IEnumerable&lt;IDocument&gt;</c></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.GroupKey">
            <summary>
            The key for the current group.
            </summary>
            <type><see cref="T:System.Object"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.Index">
            <summary>
            The one-based index of the current document relative to other documents in the pipeline.
            </summary>
            <type><see cref="T:System.Int32"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SitemapItem">
            <summary>
            Contains a document-specific sitemap item for use when generating a sitemap.
            </summary>
            <type><see cref="T:Wyam.Common.Modules.Contents.SitemapItem"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SourceUri">
            <summary>
            The URI where the document was downloaded from.
            </summary>
            <type><see cref="T:System.String"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.SourceHeaders">
            <summary>
            The web headers of the document.
            </summary>
            <type><c>Dictionary&lt;string, string&gt;</c></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.Parent">
            <summary>
            The parent of this node or <c>null</c> if it is a root.
            </summary>
            <type><see cref="T:Wyam.Common.Documents.IDocument"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.Children">
            <summary>
            All the children of this node.
            </summary>
            <type><see cref="T:System.Collections.Generic.IReadOnlyCollection`1"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.PreviousSibling">
            <summary>
            The previous sibling, that is the previous node in the children
            collection of the parent or <c>null</c> if this is the first node in the collection or the parent is null.
            </summary>
            <type><see cref="T:Wyam.Common.Documents.IDocument"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.NextSibling">
            <summary>
            The next sibling, that is the next node in the children collection
            of the parent or <c>null</c> if this is the last node in the collection or the parent is null.
            </summary>
            <type><see cref="T:Wyam.Common.Documents.IDocument"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.Next">
            <summary>
            The next node in the tree using a depth-first
            search or <c>null</c> if this was the last node.
            </summary>
            <type><see cref="T:Wyam.Common.Documents.IDocument"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.Previous">
            <summary>
            The previous node in the tree using a depth-first
            search or <c>null</c> if this was the first node.
            </summary>
            <type><see cref="T:Wyam.Common.Documents.IDocument"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.TreePath">
            <summary>
            The path that represents this node in the tree.
            </summary>
            <type><see cref="T:System.Array"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.TreePlaceholder">
            <summary>
            Gets set on documents that were created as a placeholder for tree roots.
            </summary>
            <type><see cref="T:System.Boolean"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.Title">
            <summary>
            The calculated title of the document.
            </summary>
            <type><see cref="T:System.String"/></type>
        </member>
        <member name="F:Wyam.Common.Meta.Keys.RedirectFrom">
            <summary>
            The path(s) where the document should be redirected from.
            </summary>
            <type><see cref="T:Wyam.Common.IO.FilePath"/></type>
        </member>
        <member name="T:Wyam.Common.Meta.MetadataConversionExtensions">
            <summary>
            Extensions to make it easier to get typed information from metadata.
            </summary>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.String(Wyam.Common.Meta.IMetadata,System.String,System.String)">
            <summary>
            Gets the value for the specified key converted to a string. This method never throws an exception. It will return the specified
            default value if the key is not found.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if the key is not found or cannot be converted to a string.</param>
            <returns>The value for the specified key converted to a string or the specified default value.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.String(Wyam.Common.Meta.IMetadata,System.String,System.Func{System.String,System.String},System.String)">
            <summary>
            Formats a string value if it exists in the metadata, otherwise returns a default value.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the value to get.</param>
            <param name="formatFunc">A formatting function to apply to the string value of the specified key.</param>
            <param name="defaultValue">The default value to use if the key is not found.</param>
            <returns>The formatted value of the specified key if it exists or the specified default value.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.Bool(Wyam.Common.Meta.IMetadata,System.String,System.Boolean)">
            <summary>
            Gets the value for the specified key converted to a bool. This method never throws an exception. It will return the specified
            default value if the key is not found.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if the key is not found or cannot be converted to a bool.</param>
            <returns>The value for the specified key converted to a bool or the specified default value.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.DateTime(Wyam.Common.Meta.IMetadata,System.String,System.DateTime)">
            <summary>
            Gets the value for the specified key converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.DateTime(Wyam.Common.Meta.IMetadata,System.String,System.DateTime)"/>. This method never throws an exception. It will return the specified
            default value if the key is not found.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if the key is not found or cannot be converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.DateTime(Wyam.Common.Meta.IMetadata,System.String,System.DateTime)"/>.</param>
            <returns>The value for the specified key converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.DateTime(Wyam.Common.Meta.IMetadata,System.String,System.DateTime)"/> or the specified default value.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.FilePath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.FilePath)">
            <summary>
            Gets the value for the specified key converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.FilePath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.FilePath)"/>. This method never throws an exception. It will
            return the specified default value if the key is not found or if the string value can't be converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.FilePath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.FilePath)"/>.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if the key is not found or cannot be converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.FilePath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.FilePath)"/>.</param>
            <returns>The value for the specified key converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.FilePath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.FilePath)"/> or the specified default value.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.DirectoryPath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.DirectoryPath)">
            <summary>
            Gets the value for the specified key converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.DirectoryPath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.DirectoryPath)"/>. This method never throws an exception. It will
            return the specified default value if the key is not found or if the string value can't be converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.DirectoryPath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.DirectoryPath)"/>.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if the key is not found or cannot be converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.DirectoryPath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.DirectoryPath)"/>.</param>
            <returns>The value for the specified key converted to a <see cref="M:Wyam.Common.Meta.MetadataConversionExtensions.DirectoryPath(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.IO.DirectoryPath)"/> or the specified default value.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.List``1(Wyam.Common.Meta.IMetadata,System.String,System.Collections.Generic.IReadOnlyList{``0})">
            <summary>
            Gets the value for the specified key converted to a <see cref="T:System.Collections.Generic.IReadOnlyList`1"/>. This method never throws an exception. It will return the specified
            default value if the key is not found. Note that if the value is atomic, the conversion operation will succeed and return a list with one item.
            </summary>
            <typeparam name="T">The type to convert to.</typeparam>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if the key is not found or cannot be converted to a list.</param>
            <returns>The value for the specified key converted to a list or the specified default value.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.Document(Wyam.Common.Meta.IMetadata,System.String,Wyam.Common.Documents.IDocument)">
            <summary>
            Gets the value for the specified key converted to a <see cref="T:Wyam.Common.Documents.IDocument"/>. This method never throws an exception.
            It will return null if the key is not found.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the document to get.</param>
            <param name="defaultValue">The default value to use if the key is not found or cannot be converted to a document.</param>
            <returns>The value for the specified key converted to a string or null.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.DocumentList(Wyam.Common.Meta.IMetadata,System.String,System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument})">
            <summary>
            Gets the value for the specified key converted to a <c>IReadOnlyList&lt;IDocument&gt;</c>. This method never throws an exception.
            It will return null if the key is not found and an empty list if the key is found but contains no items that can be converted to <see cref="T:Wyam.Common.Documents.IDocument"/>.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the documents to get.</param>
            <param name="defaultValue">The default value to use if the key is not found or cannot be converted to a document list.</param>
            <returns>The value for the specified key converted to a list or null.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataConversionExtensions.Dynamic(Wyam.Common.Meta.IMetadata,System.String,System.Object)">
            <summary>
            Gets the value associated with the specified key as a dynamic object. This is equivalent
            to calling <c>as dynamic</c> to cast the value.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key of the value to get.</param>
            <param name="defaultValue">The default value to use if either the key is not found or the
            underlying value is null (since the dynamic runtime binder can't bind null values).</param>
            <returns>A dynamic value for the specific key or default value.</returns>
        </member>
        <member name="T:Wyam.Common.Meta.MetadataItem">
            <summary>
            Provides slightly nicer syntax than <c>KeyValuePair&lt;string, object&gt;</c> for working
            with metadata. Also contains a constructor that makes adding delegate-based metadata easier.
            </summary>
        </member>
        <member name="P:Wyam.Common.Meta.MetadataItem.Pair">
            <summary>
            Gets the underlying <c>KeyValuePair&lt;TKey, TValue&gt;</c>.
            </summary>
        </member>
        <member name="P:Wyam.Common.Meta.MetadataItem.Key">
            <summary>
            Gets the key of the item.
            </summary>
        </member>
        <member name="P:Wyam.Common.Meta.MetadataItem.Value">
            <summary>
            Gets the value of the item.
            </summary>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItem.#ctor(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <summary>
            Creates a new metadata item with a specified key-value pair.
            </summary>
            <param name="pair">The key-value pair.</param>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItem.#ctor(System.String,System.Object)">
            <summary>
            Creates a new metadata item with the specified key and value.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItem.#ctor(System.String,System.Func{Wyam.Common.Meta.IMetadata,System.Object},System.Boolean)">
            <summary>
            This creates a new metadata value based on the specified delegate that will get
            evaluated on every value request. Note that the delegate function should be thread-safe.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value delegate.</param>
            <param name="cacheValue">if set to <c>true</c>, cache the value after the first request.</param>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItem.op_Implicit(System.Collections.Generic.KeyValuePair{System.String,System.Object})~Wyam.Common.Meta.MetadataItem">
            <summary>
            Converts a key-value pair to a <see cref="T:Wyam.Common.Meta.MetadataItem"/>.
            </summary>
            <param name="pair">The key-value pair to convert.</param>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItem.op_Implicit(Wyam.Common.Meta.MetadataItem)~System.Collections.Generic.KeyValuePair{System.String,System.Object}">
            <summary>
            Converts a <see cref="T:Wyam.Common.Meta.MetadataItem"/> to a key-value pair.
            </summary>
            <param name="item">The metadata item to convert.</param>
        </member>
        <member name="T:Wyam.Common.Meta.MetadataItems">
            <summary>
            A collection of metadata items.
            </summary>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Add(System.String,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Add(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Add(System.String,System.Func{Wyam.Common.Meta.IMetadata,System.Object},System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Add(Wyam.Common.Meta.MetadataItem)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.AddRange(System.Collections.Generic.IEnumerable{Wyam.Common.Meta.MetadataItem})">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Clear">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Contains(Wyam.Common.Meta.MetadataItem)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.CopyTo(Wyam.Common.Meta.MetadataItem[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Remove(Wyam.Common.Meta.MetadataItem)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.MetadataItems.Count">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.MetadataItems.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.IndexOf(Wyam.Common.Meta.MetadataItem)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Insert(System.Int32,Wyam.Common.Meta.MetadataItem)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.RemoveAt(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.MetadataItems.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.System#Collections#Generic#IEnumerable{System#Collections#Generic#KeyValuePair{System#String,System#Object}}#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Contains(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.Object}[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Remove(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.IndexOf(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataItems.Insert(System.Int32,System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Meta.MetadataItems.System#Collections#Generic#IList{System#Collections#Generic#KeyValuePair{System#String,System#Object}}#Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Meta.MetadataXmlExtensions.XAttribute(Wyam.Common.Meta.IMetadata,System.String)">
            <summary>
            Gets an XML attribute for the given metadata key.
            The name of the attribute will be the lower-case key name.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="key">The key containing the attribute value.</param>
            <returns>The attribute if the key was found, <c>null</c> if not.</returns>
        </member>
        <member name="M:Wyam.Common.Meta.MetadataXmlExtensions.XAttribute(Wyam.Common.Meta.IMetadata,System.String,System.String)">
            <summary>
            Gets an XML attribute for the given metadata key.
            </summary>
            <param name="metadata">The metadata containing the value.</param>
            <param name="name">The name of the XML attribute.</param>
            <param name="key">The key containing the attribute value.</param>
            <returns>The attribute if the key was found, <c>null</c> if not.</returns>
        </member>
        <member name="T:Wyam.Common.Modules.ContainerModule">
            <summary>
            A base class for modules that contain a collection of child modules.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Creates a new container module with the specified child modules.
            Any <c>null</c> items in the sequence of modules will be discarded.
            </summary>
            <param name="modules">The child modules.</param>
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Add(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Clear">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Contains(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.CopyTo(Wyam.Common.Modules.IModule[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Remove(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Remove(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Modules.ContainerModule.Count">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Add(Wyam.Common.Modules.IModule[])">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Insert(System.Int32,Wyam.Common.Modules.IModule[])">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.IndexOf(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Modules.ContainerModule.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.IndexOf(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Insert(System.Int32,Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.RemoveAt(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Modules.ContainerModule.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Contains(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.TryGetValue(System.String,Wyam.Common.Modules.IModule@)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Modules.ContainerModule.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Add(System.String,Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.Insert(System.Int32,System.String,Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContainerModule.AsKeyValuePairs">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.Modules.ContentModule">
            <summary>
            This class can be used as a base class for modules that operate on arbitrary content (as represented by an object).
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.ContentModule.#ctor(System.Object)">
            <summary>
            Creates a new content module with the specified content.
            </summary>
            <param name="content">The content.</param>
        </member>
        <member name="M:Wyam.Common.Modules.ContentModule.#ctor(Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Creates a new content module with the specified content delegate.
            </summary>
            <param name="content">The content delegate.</param>
        </member>
        <member name="M:Wyam.Common.Modules.ContentModule.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Creates a new content module with the specified content delegate.
            </summary>
            <param name="content">The content delegate.</param>
        </member>
        <member name="M:Wyam.Common.Modules.ContentModule.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Creates a new content module with the content determined by child modules.
            </summary>
            <remarks>
            If only one input document is available, it will be used as the initial document for the specified modules.
            If more than one document is available, an empty initial document will be used.
            To force usage of each input document in a set (I.e., A, B, and C input documents specify a unique "template" metadata value and you want to append
            some result of operating on that template value to each), make the content module a child of the ForEach module.
            Each input will be applied against each result from the specified modules (I.e., if 2 inputs and the module chain results in 2 outputs, there will be 4 total outputs).
            </remarks>
            <param name="modules">The child modules.</param>
        </member>
        <member name="M:Wyam.Common.Modules.ContentModule.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ContentModule.Execute(System.Object,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Executes the module with the specified content against a single document.
            Note that content can be passed in as null, implementers should guard against that.
            </summary>
            <param name="content">The content.</param>
            <param name="input">The input document.</param>
            <param name="context">The execution context.</param>
            <returns>Result documents.</returns>
        </member>
        <member name="T:Wyam.Common.Modules.Contents.ChangeFrequency">
            <summary>
            The change frequency for each item in the site map.
            </summary>
        </member>
        <member name="F:Wyam.Common.Modules.Contents.ChangeFrequency.Always">
            <summary>
            The item always changes.
            </summary>
        </member>
        <member name="F:Wyam.Common.Modules.Contents.ChangeFrequency.Hourly">
            <summary>
            The item changes hourly.
            </summary>
        </member>
        <member name="F:Wyam.Common.Modules.Contents.ChangeFrequency.Daily">
            <summary>
            The item changes daily.
            </summary>
        </member>
        <member name="F:Wyam.Common.Modules.Contents.ChangeFrequency.Weekly">
            <summary>
            The item changes weekly.
            </summary>
        </member>
        <member name="F:Wyam.Common.Modules.Contents.ChangeFrequency.Monthly">
            <summary>
            The item changes monthly.
            </summary>
        </member>
        <member name="F:Wyam.Common.Modules.Contents.ChangeFrequency.Yearly">
            <summary>
            The item changes yearly.
            </summary>
        </member>
        <member name="F:Wyam.Common.Modules.Contents.ChangeFrequency.Never">
            <summary>
            The item never changes.
            </summary>
        </member>
        <member name="T:Wyam.Common.Modules.Contents.SitemapItem">
            <summary>
            Represents an item in the site map.
            </summary>
        </member>
        <member name="P:Wyam.Common.Modules.Contents.SitemapItem.Location">
            <summary>
            Gets or sets the location of the sitemap item.
            </summary>
        </member>
        <member name="P:Wyam.Common.Modules.Contents.SitemapItem.LastModUtc">
            <summary>
            Gets or sets the last modified time of the item in UTC.
            </summary>
        </member>
        <member name="P:Wyam.Common.Modules.Contents.SitemapItem.ChangeFrequency">
            <summary>
            Gets or sets the expected frequency of changes of the item.
            </summary>
        </member>
        <member name="P:Wyam.Common.Modules.Contents.SitemapItem.Priority">
            <summary>
            Gets or sets the priority of the item.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.Contents.SitemapItem.#ctor(System.String)">
            <summary>
            Creates a new sitemap item at the specified location.
            </summary>
            <param name="location">The location of the sitemap item.</param>
        </member>
        <member name="T:Wyam.Common.Modules.IAsNewDocuments">
            <summary>
            Implement this interface for any module you want to support the <c>AsNewDocuments()</c>
            extension method, which overrides document creation within the module to always produce
            new documents instead of cloning existing ones.
            </summary>
        </member>
        <member name="T:Wyam.Common.Modules.IModule">
            <summary>
            The primary module interface for classes that can transform or otherwise operate on documents.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.IModule.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <summary>
            This should not be called directly, instead call <c>IExecutionContext.Execute()</c> if you need to execute a module from within another module.
            </summary>
            <param name="inputs">The input documents to this module.</param>
            <param name="context">The execution context that can be used to access information about the environment and engine services.</param>
            <returns>A set of result documents (possibly the same as the input documents).</returns>
        </member>
        <member name="T:Wyam.Common.Modules.IModuleList">
            <summary>
            A collection of optionally named modules. Implementations should "unwrap" <see cref="T:Wyam.Common.Modules.NamedModule"/>
            objects to obtain the module name.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.IModuleList.Add(System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Adds a module to the list with a specified name.
            </summary>
            <param name="name">The name of the module to add.</param>
            <param name="module">The module to add.</param>
        </member>
        <member name="M:Wyam.Common.Modules.IModuleList.Add(Wyam.Common.Modules.IModule[])">
            <summary>
            Adds modules to the list.
            Any <c>null</c> items in the sequence of modules will be discarded.
            </summary>
            <param name="modules">The modules to add.</param>
        </member>
        <member name="M:Wyam.Common.Modules.IModuleList.Insert(System.Int32,System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts a module into the list with a specified name.
            </summary>
            <param name="index">The index at which to insert the module.</param>
            <param name="name">The name of the inserted module.</param>
            <param name="module">The module to insert/</param>
        </member>
        <member name="M:Wyam.Common.Modules.IModuleList.Insert(System.Int32,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules into the list.
            Any <c>null</c> items in the sequence of modules will be discarded.
            </summary>
            <param name="index">The index at which to insert the modules.</param>
            <param name="modules">The modules to insert.</param>
        </member>
        <member name="M:Wyam.Common.Modules.IModuleList.Remove(System.String)">
            <summary>
            Removes a module by name.
            </summary>
            <param name="name">The name of the module to remove.</param>
            <returns><c>true</c> if a module with the specified name was found and removed, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.IModuleList.IndexOf(System.String)">
            <summary>
            Gets the index of the module with the specified name.
            </summary>
            <param name="name">The name of the module.</param>
            <returns>The index of the module with the specified name.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.IModuleList.Contains(System.String)">
            <summary>
            Determines if the list contains a module with the specified name.
            </summary>
            <param name="name">The name of the module.</param>
            <returns><c>true</c> if a module exists with the specified name, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.IModuleList.TryGetValue(System.String,Wyam.Common.Modules.IModule@)">
            <summary>
            Attempts to get a module with the specified name.
            </summary>
            <param name="name">The name of the module.</param>
            <param name="value">The module with the specified name.</param>
            <returns><c>true</c> if a module was found with the specified name, otherwise <c>false</c>.</returns>
        </member>
        <member name="P:Wyam.Common.Modules.IModuleList.Item(System.String)">
            <summary>
            Gets the module with the specified name.
            </summary>
            <param name="name">The name of the module.</param>
            <returns>The module with the specified name.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.IModuleList.AsKeyValuePairs">
            <summary>
            Returns the list as a sequence of key-value pairs with the keys being
            the module names and the values being the module instances.
            </summary>
            <returns>The list as a sequence of key-value pairs.</returns>
        </member>
        <member name="T:Wyam.Common.Modules.IReadOnlyModuleList">
            <summary>
            A collection of optionally named modules.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.IReadOnlyModuleList.IndexOf(System.String)">
            <summary>
            Gets the index of a named module.
            </summary>
            <param name="name">The name of the module.</param>
            <returns>The index of the requested module or -1 if not found.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.IReadOnlyModuleList.Contains(System.String)">
            <summary>
            Determines whether the list contains a module with a given name.
            </summary>
            <param name="name">The name of the module.</param>
            <returns><c>true</c> if a module with the given name exists in the list, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.IReadOnlyModuleList.TryGetValue(System.String,Wyam.Common.Modules.IModule@)">
            <summary>
            Attempts to get a module with a given name.
            </summary>
            <param name="name">The name of the module.</param>
            <param name="value">The module instance.</param>
            <returns><c>true</c> if a module with the given name exists in the list, <c>false</c> otherwise.</returns>
        </member>
        <member name="P:Wyam.Common.Modules.IReadOnlyModuleList.Item(System.String)">
            <summary>
            Gets a module with a given name.
            </summary>
            <param name="name">The name of the module.</param>
            <returns>The module instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.IReadOnlyModuleList.AsKeyValuePairs">
            <summary>
            Casts the list to a <c>IEnumerable&lt;KeyValuePair&lt;string, IModule&gt;&gt;</c>.
            </summary>
            <returns>An enumerable of <see cref="T:System.Collections.Generic.KeyValuePair`2"/>.</returns>
        </member>
        <member name="T:Wyam.Common.Modules.ModuleExtensions">
            <summary>
            Extension methods for <see cref="T:Wyam.Common.Modules.IModule"/>.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleExtensions.WithName(Wyam.Common.Modules.IModule,System.String)">
            <summary>
            Converts the module to a named module.
            </summary>
            <param name="module">The module to provide a name for.</param>
            <param name="name">The name to provide to the module.</param>
            <returns>The named module.</returns>
        </member>
        <member name="T:Wyam.Common.Modules.ModuleList">
            <summary>
            A collection of optionally named modules.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.#ctor">
            <summary>
            Creates a new empty module list.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Creates a new module list with an initial set of modules.
            Any <c>null</c> items in the sequence of modules will be discarded.
            </summary>
            <param name="modules">The initial modules in the list.</param>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Creates a new module list with an initial set of modules.
            Any <c>null</c> items in the sequence of modules will be discarded.
            </summary>
            <param name="modules">The initial modules in the list.</param>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Add(Wyam.Common.Modules.IModule[])">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Add(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Add(System.String,Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Insert(System.Int32,Wyam.Common.Modules.IModule[])">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Insert(System.Int32,Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Insert(System.Int32,System.String,Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Remove(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Remove(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.RemoveAt(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Modules.ModuleList.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Modules.ModuleList.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Modules.ModuleList.Count">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Clear">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Contains(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.Contains(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.CopyTo(Wyam.Common.Modules.IModule[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Common.Modules.ModuleList.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.IndexOf(Wyam.Common.Modules.IModule)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.TryGetValue(System.String,Wyam.Common.Modules.IModule@)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.IndexOf(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.AsKeyValuePairs">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Common.Modules.ModuleList.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.Modules.ModuleListExtensions">
            <summary>
            Extensions for use with <see cref="T:Wyam.Common.Modules.ModuleList"/>.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.Append``1(``0,Wyam.Common.Modules.IModule[])">
            <summary>
            Appends modules.
            </summary>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="modules">The modules to append.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.Append``1(``0,System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Appends a named module.
            </summary>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="name">The name of the module to append.</param>
            <param name="module">The module to append.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.Prepend``1(``0,Wyam.Common.Modules.IModule[])">
            <summary>
            Prepends modules.
            </summary>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="modules">The modules to prepend.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.Prepend``1(``0,System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Prepends a named module.
            </summary>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="name">The name of the module to prepend.</param>
            <param name="module">The module to prepend.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfter``1(``0,System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules after the module with the specified name.
            </summary>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="afterName">The name of the module at which to insert the specified modules.</param>
            <param name="modules">The modules to insert.</param>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfter``1(``0,System.String,System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules after the module with the specified name.
            </summary>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="afterName">The name of the module at which to insert the specified modules.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBefore``1(``0,System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules before the module with the specified name.
            </summary>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="beforeName">The name of the module at which to insert the specified modules.</param>
            <param name="modules">The modules to insert.</param>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBefore``1(``0,System.String,System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules before the module with the specified name.
            </summary>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="beforeName">The name of the module at which to insert the specified modules.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBeforeFirst``1(Wyam.Common.Modules.IModuleList,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules before the first module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the specified modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="modules">The modules to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBeforeFirst``1(Wyam.Common.Modules.IModuleList,System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules before the first module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the specified modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBeforeFirst``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules before the first module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining at which module to insert the specified modules.</param>
            <param name="modules">The modules to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBeforeFirst``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules before the first module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining at which module to insert the specified modules.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfterFirst``1(Wyam.Common.Modules.IModuleList,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules after the first module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the specified modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="modules">The modules to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfterFirst``1(Wyam.Common.Modules.IModuleList,System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules after the first module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the specified modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfterFirst``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules after the first module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining at which module to insert the specified modules.</param>
            <param name="modules">The modules to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfterFirst``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules after the first module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining at which module to insert the specified modules.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBeforeLast``1(Wyam.Common.Modules.IModuleList,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules before the last module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the specified modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="modules">The modules to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBeforeLast``1(Wyam.Common.Modules.IModuleList,System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules before the last module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the specified modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBeforeLast``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules before the last module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining at which module to insert the specified modules.</param>
            <param name="modules">The modules to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertBeforeLast``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules before the last module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining at which module to insert the specified modules.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfterLast``1(Wyam.Common.Modules.IModuleList,Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules after the last module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the specified modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="modules">The modules to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfterLast``1(Wyam.Common.Modules.IModuleList,System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules after the last module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the specified modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfterLast``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},Wyam.Common.Modules.IModule[])">
            <summary>
            Inserts modules after the last module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining at which module to insert the specified modules.</param>
            <param name="modules">The modules to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.InsertAfterLast``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Inserts modules after the last module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module at which to insert the modules.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining at which module to insert the specified modules.</param>
            <param name="name">The name of the module to insert.</param>
            <param name="module">The module to insert.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.ReplaceFirst``1(Wyam.Common.Modules.IModuleList,Wyam.Common.Modules.IModule,System.String)">
            <summary>
            Replaces the first module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to replace.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="module">The replacement module.</param>
            <param name="name">The name of the replacement module.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.ReplaceFirst``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},Wyam.Common.Modules.IModule,System.String)">
            <summary>
            Replaces the first module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module to replace.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining which module to replace.</param>
            <param name="module">The replacement module.</param>
            <param name="name">The name of the replacement module.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.ReplaceLast``1(Wyam.Common.Modules.IModuleList,Wyam.Common.Modules.IModule,System.String)">
            <summary>
            Replaces the last module in the list of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to replace.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="module">The replacement module.</param>
            <param name="name">The name of the replacement module.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.ReplaceLast``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0},Wyam.Common.Modules.IModule,System.String)">
            <summary>
            Replaces the last module in the list of the specified type that satisfies a predicate.
            </summary>
            <typeparam name="TModule">The type of the module to replace.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="filter">A predicate determining which module to replace.</param>
            <param name="module">The replacement module.</param>
            <param name="name">The name of the replacement module.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.Replace``1(``0,System.String,Wyam.Common.Modules.IModule,System.String)">
            <summary>
            Replaces a module with the specified name. The replacement module will have the same name
            as the module being replaced unless an alternate name is specified.
            </summary>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="replaceName">The name of the module to replace.</param>
            <param name="module">The replacement module.</param>
            <param name="name">The name of the replacement module.</param>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.Replace``1(``0,System.Int32,Wyam.Common.Modules.IModule,System.String)">
            <summary>
            Replaces a module at the specified index.
            </summary>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="index">The index of the module to replace.</param>
            <param name="module">The replacement module.</param>
            <param name="name">An optional name of the replacement module.</param>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.Modify``1(``0,System.String,System.Action{Wyam.Common.Modules.IModule})">
            <summary>
            Modifies an inner module with the specified name.
            </summary>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="modifyName">The name of the inner module to modify.</param>
            <param name="action">The action to apply to the inner module.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.Modify``1(``0,System.Int32,System.Action{Wyam.Common.Modules.IModule})">
            <summary>
            Modifies an inner module list with the specified index.
            </summary>
            <typeparam name="TModuleList">The type of the module list.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/>.</param>
            <param name="index">The index of the inner module to modify.</param>
            <param name="action">The action to apply to the inner module.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.GetFirst``1(Wyam.Common.Modules.IModuleList)">
            <summary>
            Gets the first module of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to find.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/> to search.</param>
            <returns>The first module of the specified type or null if a module of the specified type could not be found.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.GetFirst``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0})">
            <summary>
            Gets the first module of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to find.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/> to search.</param>
            <param name="filter">A predicate determining which module to find.</param>
            <returns>The first module of the specified type or null if a module of the specified type could not be found.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.GetLast``1(Wyam.Common.Modules.IModuleList)">
            <summary>
            Gets the last module of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to find.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/> to search.</param>
            <returns>The last module of the specified type or null if a module of the specified type could not be found.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.GetLast``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0})">
            <summary>
            Gets the last module of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to find.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/> to search.</param>
            <param name="filter">A predicate determining which module to find.</param>
            <returns>The last module of the specified type or null if a module of the specified type could not be found.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.IndexOfFirst``1(Wyam.Common.Modules.IModuleList)">
            <summary>
            Gets the index of the first module of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to find.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/> to search.</param>
            <returns>The index of the first module of the specified type or -1 if a module of the specified type could not be found.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.IndexOfFirst``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0})">
            <summary>
            Gets the index of the first module of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to find.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/> to search.</param>
            <param name="filter">A predicate determining which module to find.</param>
            <returns>The index of the first module of the specified type or -1 if a module of the specified type could not be found.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.IndexOfLast``1(Wyam.Common.Modules.IModuleList)">
            <summary>
            Gets the index of the last module of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to find.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/> to search.</param>
            <returns>The index of the last module of the specified type or -1 if a module of the specified type could not be found.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ModuleListExtensions.IndexOfLast``1(Wyam.Common.Modules.IModuleList,System.Predicate{``0})">
            <summary>
            Gets the index of the last module of the specified type.
            </summary>
            <typeparam name="TModule">The type of the module to find.</typeparam>
            <param name="moduleList">The <see cref="T:Wyam.Common.Modules.ModuleList"/> to search.</param>
            <param name="filter">A predicate determining which module to find.</param>
            <returns>The index of the last module of the specified type or -1 if a module of the specified type could not be found.</returns>
        </member>
        <member name="T:Wyam.Common.Modules.NamedModule">
            <summary>
            Wraps a module and gives it a name for use with <see cref="T:Wyam.Common.Modules.ModuleList"/>.
            </summary>
            <category>Extensibility</category>
        </member>
        <member name="P:Wyam.Common.Modules.NamedModule.Name">
            <summary>
            The name of the module.
            </summary>
        </member>
        <member name="P:Wyam.Common.Modules.NamedModule.Module">
            <summary>
            The wrapped module.
            </summary>
        </member>
        <member name="M:Wyam.Common.Modules.NamedModule.#ctor(System.String,Wyam.Common.Modules.IModule)">
            <summary>
            Wraps a module and gives it the specified name.
            </summary>
            <param name="name">The name of the module.</param>
            <param name="module">The wrapped module.</param>
        </member>
        <member name="M:Wyam.Common.Modules.NamedModule.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
            <summary>
            Passes execution to the wrapped module.
            </summary>
        </member>
        <member name="T:Wyam.Common.Modules.ReadDataModule`2">
            <summary>
            A base class for modules that read documents from data that can be turned into a Dictionary&lt;string,object&gt;.
            </summary>
            <typeparam name="TModule">
            The current module type, allows fluent methods defined in the base class to return the properly typed derived class.
            </typeparam>
            <typeparam name="TItem">
            The type of items this module is designed to process.
            </typeparam>
        </member>
        <member name="M:Wyam.Common.Modules.ReadDataModule`2.WithContentKey(System.String)">
            <summary>
            Specifies which metakey should be used for the document content
            </summary>
            <param name="contentKey">The name of the content property.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ReadDataModule`2.AddKeyConversion(System.String,System.String)">
            <summary>
            Allows renaming of keys during document creation: "If you find key X, create it as key Y instead."
            </summary>
            <param name="originalKeyName">The name of the original key to convert.</param>
            <param name="newKeyName">The name you want to convert the key to.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ReadDataModule`2.IncludeKeys(System.String[])">
            <summary>
            Allows creation of a list of keys to keep. If this list any members, any keys other than those in this list will be discarded.
            </summary>
            <param name="keys">The keys to keep.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ReadDataModule`2.ExcludeKeys(System.String[])">
            <summary>
            Allows creation of a list of keys to discard.
            </summary>
            <param name="keys">The keys to discard.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ReadDataModule`2.WithLimit(System.Int32)">
            <summary>
            Limits the number of created documents.
            </summary>
            <param name="limit">The number of objects to create documents from.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ReadDataModule`2.GetItems(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Gets the items to convert to documents. The <see cref="M:Wyam.Common.Modules.ReadDataModule`2.GetDictionary(`1)"/> method
            is used to convert each item into a series of key-value pairs that is then used for
            document creation.
            </summary>
            <param name="inputs">The input documents.</param>
            <param name="context">The current execution context.</param>
            <returns>The objects to create documents from.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ReadDataModule`2.GetDictionary(`1)">
            <summary>
            Used to convert each object from <see cref="M:Wyam.Common.Modules.ReadDataModule`2.GetItems(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)"/> into a IDictionary&lt;string, object&gt;.
            The base implementation checks if the object implements IDictionary&lt;string, object&gt; and just
            performs a cast is if it does. If not, reflection is used to construct a IDictionary&lt;string, object&gt;
            from all of the object's properties. Override this method to provide an alternate way of getting
            key-value pairs for each object.
            </summary>
            <param name="item">The object to convert to a IDictionary&lt;string, object&gt;.</param>
            <returns>A IDictionary&lt;string, object&gt; containing the data used for document creation.</returns>
        </member>
        <member name="M:Wyam.Common.Modules.ReadDataModule`2.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Common.Shortcodes.IShortcode">
            <summary>
            Contains the code for a given shortcode (see the <c>Shortcodes</c> module).
            </summary>
            <remarks>
            Shortcode instances are created once-per-document and reused for the life of that document.
            An exception is that nested shortcodes are always processed by a new instance of the shortcode
            implementation (which remains in use for that nested content). If a shortcode class also
            implements <see cref="T:System.IDisposable"/>, the shortcode will be disposed at the processing conclusion
            of the document or nested content.
            </remarks>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcode.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Executes the shortcode and returns an <see cref="T:Wyam.Common.Shortcodes.IShortcodeResult"/>.
            </summary>
            <param name="args">
            The arguments declared with the shortcode. This contains a list of key-value pairs in the order
            they appeared in the shortcode declaration. If no key was specified, then the <see cref="P:System.Collections.Generic.KeyValuePair`2.Key"/>
            property will be <c>null</c>.
            </param>
            <param name="content">The content of the shortcode.</param>
            <param name="document">The current document (including metadata from previous shortcodes in the same document).</param>
            <param name="context">
            The current execution context. This can be used to obtain the <see cref="T:Wyam.Common.Shortcodes.IShortcodeResult"/> instance
            by calling <see cref="M:Wyam.Common.Execution.IExecutionContext.GetShortcodeResult(System.IO.Stream,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})"/>.
            </param>
            <returns>
            A shortcode result that contains a stream and new metadata as a result of executing this shortcode.
            The result can be <c>null</c> in which case the shortcode declaration will be removed from the document
            but no replacement content will be added and the metadata will not change.
            </returns>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add``1(System.String)">
            <summary>
            Adds a shortcode by type.
            </summary>
            <typeparam name="TShortcode">The type of the shortcode to add.</typeparam>
            <param name="name">The name of the shortcode.</param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add``1">
            <summary>
            Adds a shortcode by type, infering the name from the type name.
            </summary>
            <typeparam name="TShortcode">The type of the shortcode to add.</typeparam>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Type)">
            <summary>
            Adds a shortcode by type.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="type">The type of the shortcode to add (must implement <see cref="T:Wyam.Common.Shortcodes.IShortcode"/>).</param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.Type)">
            <summary>
            Adds a shortcode by type, infering the name from the type name.
            </summary>
            <param name="type">The type of the shortcode to add (must implement <see cref="T:Wyam.Common.Shortcodes.IShortcode"/>).</param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.String)">
            <summary>
            Adds a shortcode and specifies the result content.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="result">The result of the shortcode.</param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Adds a shortcode and uses a <see cref="T:Wyam.Common.Configuration.ContextConfig"/> to determine
            the shortcode result.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="contextConfig">A delegate that should return a <see cref="T:System.String"/>.</param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Adds a shortcode and uses a <see cref="T:Wyam.Common.Configuration.DocumentConfig"/> to determine
            the shortcode result.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="documentConfig">A delegate that should return a <see cref="T:System.String"/>.</param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.String,System.String})">
            <summary>
            Adds a shortcode that determines the result content using the declared content.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">A function that has the declared content as an input and the result content as an output.</param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String})">
            <summary>
            Adds a shortcode that determines the result content using the declared arguments.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">A function that has the declared arguments as an input and the result content as an output.</param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,System.String})">
            <summary>
            Adds a shortcode that determines the result content using the declared arguments and content.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">A function that has the declared arguments and content as inputs and the result content as an output.</param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Execution.IExecutionContext,System.String})">
            <summary>
            Adds a shortcode that determines the result content
            using the declared arguments and content and the current execution context.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">
            A function that has the declared arguments and content and the current execution context as inputs
            and the result content as an output.
            </param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext,System.String})">
            <summary>
            Adds a shortcode that determines the result content
            using the declared arguments and content and the current document and execution context.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">
            A function that has the declared arguments and content and the current document and execution context as inputs
            and the result content as an output.
            </param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.Collections.Generic.KeyValuePair{System.String,System.String}[],Wyam.Common.Execution.IExecutionContext,System.String})">
            <summary>
            Adds a shortcode that determines the result content
            using the declared arguments and the current execution context.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">
            A function that has the declared arguments and the current execution context as inputs
            and the result content as an output.
            </param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.Collections.Generic.KeyValuePair{System.String,System.String}[],Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext,System.String})">
            <summary>
            Adds a shortcode that determines the result content
            using the declared arguments and the current document and execution context.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">
            A function that has the declared arguments and the current document and execution context as inputs
            and the result content as an output.
            </param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.String,Wyam.Common.Execution.IExecutionContext,System.String})">
            <summary>
            Adds a shortcode that determines the result content
            using the declared content and the current execution context.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">
            A function that has the declared content and the current execution context as inputs
            and the result content as an output.
            </param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext,System.String})">
            <summary>
            Adds a shortcode that determines the result content
            using the declared content and the current document and execution context.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">
            A function that has the declared content and the current document and execution context as inputs
            and the result content as an output.
            </param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.IShortcodeCollection.Add(System.String,System.Func{System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext,Wyam.Common.Shortcodes.IShortcodeResult})">
            <summary>
            Adds a shortcode that determines the result content
            using the declared arguments and content and the current document and execution context.
            </summary>
            <param name="name">The name of the shortcode.</param>
            <param name="func">
            A function that has the declared arguments and content and the current document and execution context as inputs
            and a <see cref="T:Wyam.Common.Shortcodes.IShortcodeResult"/> as an output which allows the shortcode to add metadata to the document.
            </param>
        </member>
        <member name="M:Wyam.Common.Shortcodes.ShortcodeExtensions.SingleValue(System.Collections.Generic.KeyValuePair{System.String,System.String}[])">
            <summary>
            Validates that the arguments contain a single value and returns it.
            This will collapse keys and values into a single argument value so that "=" doesn't have to be
            escaped with quotes.
            </summary>
            <param name="args">The original shortcode arguments.</param>
            <returns>The single argument value.</returns>
        </member>
        <member name="M:Wyam.Common.Shortcodes.ShortcodeExtensions.ToValueArray(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.Int32)">
            <summary>
            Validates that the correct number of unnamed arguments have been used and returns them as an array.
            This will collapse keys and values into a single argument value so that "=" doesn't have to be
            escaped with quotes.
            </summary>
            <param name="args">The original shortcode arguments.</param>
            <param name="count">The count of expected arguments.</param>
            <returns>The argument values.</returns>
        </member>
        <member name="M:Wyam.Common.Shortcodes.ShortcodeExtensions.ToValueArray(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.Int32,System.Int32)">
            <summary>
            Validates that the correct number of arguments have been used and returns them as an array.
            This will collapse keys and values into a single argument value so that "=" doesn't have to be
            escaped with quotes.
            </summary>
            <param name="args">The original shortcode arguments.</param>
            <param name="minimumCount">The minimum count of expected arguments.</param>
            <param name="maximumCount">The maximum count of expected arguments.</param>
            <returns>The argument values.</returns>
        </member>
        <member name="M:Wyam.Common.Shortcodes.ShortcodeExtensions.ToValueArray(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
            <summary>
            Returns arguments as an array.
            This will collapse keys and values into a single argument value so that "=" doesn't have to be
            escaped with quotes.
            </summary>
            <param name="args">The original shortcode arguments.</param>
            <returns>The argument values.</returns>
        </member>
        <member name="M:Wyam.Common.Shortcodes.ShortcodeExtensions.ToDictionary(System.Collections.Generic.KeyValuePair{System.String,System.String}[],Wyam.Common.Execution.IExecutionContext,System.String[])">
            <summary>
            Converts the shortcode arguments into a dictionary of named parameters.
            This will match un-named positional parameters with their expected position
            after which named parameters will be included. If an un-named positional
            parameter follows named parameters and exception will be thrown.
            </summary>
            <param name="args">The original shortcode arguments.</param>
            <param name="context">The current execution context.</param>
            <param name="keys">The parameter names in expected order.</param>
            <returns>A dictionary containing the parameters and their values.</returns>
        </member>
        <member name="T:Wyam.Common.Tracing.IIndentedTraceEvent">
            <summary>
            Traces messages and indents all future messages until the returned <see cref="T:System.IDisposable"/> is disposed.
            </summary>
        </member>
        <member name="M:Wyam.Common.Tracing.IIndentedTraceEvent.Critical(System.String,System.Object[])">
            <summary>
            Traces a critical message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
            <returns>An <see cref="T:System.IDisposable"/> that should be disposed when trace messages should no longer be indented.</returns>
        </member>
        <member name="M:Wyam.Common.Tracing.IIndentedTraceEvent.Error(System.String,System.Object[])">
            <summary>
            Traces an error message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
            <returns>An <see cref="T:System.IDisposable"/> that should be disposed when trace messages should no longer be indented.</returns>
        </member>
        <member name="M:Wyam.Common.Tracing.IIndentedTraceEvent.Warning(System.String,System.Object[])">
            <summary>
            Traces a warning message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
            <returns>An <see cref="T:System.IDisposable"/> that should be disposed when trace messages should no longer be indented.</returns>
        </member>
        <member name="M:Wyam.Common.Tracing.IIndentedTraceEvent.Information(System.String,System.Object[])">
            <summary>
            Traces an informational message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
            <returns>An <see cref="T:System.IDisposable"/> that should be disposed when trace messages should no longer be indented.</returns>
        </member>
        <member name="M:Wyam.Common.Tracing.IIndentedTraceEvent.Verbose(System.String,System.Object[])">
            <summary>
            Traces a verbose message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
            <returns>An <see cref="T:System.IDisposable"/> that should be disposed when trace messages should no longer be indented.</returns>
        </member>
        <member name="M:Wyam.Common.Tracing.IIndentedTraceEvent.TraceEvent(System.Diagnostics.TraceEventType,System.String,System.Object[])">
            <summary>
            Traces a raw event.
            </summary>
            <param name="eventType">The type of event.</param>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
            <returns>An <see cref="T:System.IDisposable"/> that should be disposed when trace messages should no longer be indented.</returns>
        </member>
        <member name="T:Wyam.Common.Tracing.ITrace">
            <summary>
            An interface for tracing messages to the console and other attached outputs.
            </summary>
        </member>
        <member name="P:Wyam.Common.Tracing.ITrace.Level">
            <summary>
            Specifies the levels of trace messages.
            </summary>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.AddListener(System.Diagnostics.TraceListener)">
            <summary>
            Adds a trace listener.
            </summary>
            <param name="listener">The listener to add.</param>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.RemoveListener(System.Diagnostics.TraceListener)">
            <summary>
            Removes trace listener.
            </summary>
            <param name="listener">The listener to remove.</param>
        </member>
        <member name="P:Wyam.Common.Tracing.ITrace.Listeners">
            <summary>
            A collection of attached trace listeners which will receive tracing events.
            </summary>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.Critical(System.String,System.Object[])">
            <summary>
            Traces a critical message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.Error(System.String,System.Object[])">
            <summary>
            Traces a critical message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.Warning(System.String,System.Object[])">
            <summary>
            Traces a warning message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.Information(System.String,System.Object[])">
            <summary>
            Traces an informational message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.Verbose(System.String,System.Object[])">
            <summary>
            Traces a verbose message.
            </summary>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.TraceEvent(System.Diagnostics.TraceEventType,System.String,System.Object[])">
            <summary>
            Traces a raw event.
            </summary>
            <param name="eventType">The type of event.</param>
            <param name="messageOrFormat">The formatted message to write.</param>
            <param name="args">The arguments for the formatted message.</param>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.Indent">
            <summary>
            Indents all future trace messages.
            </summary>
            <returns>The new indent level.</returns>
        </member>
        <member name="P:Wyam.Common.Tracing.ITrace.IndentLevel">
            <summary>
            The current indent level.
            </summary>
        </member>
        <member name="M:Wyam.Common.Tracing.ITrace.WithIndent">
            <summary>
            Returns a <see cref="T:Wyam.Common.Tracing.IIndentedTraceEvent"/> that can be used to trace a message and indent following messages.
            </summary>
            <returns>A <see cref="T:Wyam.Common.Tracing.IIndentedTraceEvent"/> that should be used to trace an indented message and indent following messages.</returns>
        </member>
        <member name="T:Wyam.Common.Tracing.Trace">
            <summary>
            Provides access to tracing functionality. This class is thread safe.
            </summary>
        </member>
        <member name="M:Wyam.Common.Tracing.Trace.WithIndent">
            <summary>
            Indents all trace messages until the returned <see cref="T:Wyam.Common.Tracing.IIndentedTraceEvent"/> is disposed.
            </summary>
            <returns>A <see cref="T:Wyam.Common.Tracing.IIndentedTraceEvent"/> that should be disposed when indenting is complete.</returns>
        </member>
        <member name="T:Wyam.Common.Util.ActionDisposable">
            <summary>
            A simple disposable that calls an action on disposal. This class
            will also throw an exception on subsiquent disposals.
            </summary>
        </member>
        <member name="M:Wyam.Common.Util.ActionDisposable.#ctor(System.Action)">
            <summary>
            Create a disposable instance.
            </summary>
            <param name="action">The action to call on disposal.</param>
        </member>
        <member name="M:Wyam.Common.Util.ActionDisposable.Dispose">
            <summary>
            Calls the action.
            </summary>
        </member>
        <member name="T:Wyam.Common.Util.CollectionExtensions">
            <summary>
            Extension methods for collection types.
            </summary>
        </member>
        <member name="M:Wyam.Common.Util.CollectionExtensions.AddRange``1(System.Collections.Generic.ICollection{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Adds a range of values to a collection.
            </summary>
            <typeparam name="T">The type of the collection items.</typeparam>
            <param name="collection">The collection to add values to.</param>
            <param name="items">The items to add.</param>
        </member>
        <member name="M:Wyam.Common.Util.CollectionExtensions.RemoveAll``1(System.Collections.Generic.ICollection{``0},System.Func{``0,System.Boolean})">
            <summary>
            Removes all items that match a predicate from a collection.
            </summary>
            <typeparam name="T">The type of the collection items.</typeparam>
            <param name="collection">The collection to remove items from.</param>
            <param name="match">The predicate (return <c>true</c> to remove the item).</param>
            <returns>The number of items removed.</returns>
        </member>
        <member name="M:Wyam.Common.Util.CollectionExtensions.RequireKeys``2(System.Collections.Generic.IReadOnlyDictionary{``0,``1},``0[])">
            <summary>
            Verifies that a dictionary contains all requires keys.
            An <see cref="T:System.ArgumentException"/> will be thrown if the
            specified keys are not all present in the dictionary.
            </summary>
            <typeparam name="TKey">The type of keys.</typeparam>
            <typeparam name="TValue">The type of values.</typeparam>
            <param name="dictionary">The dictionary to verify.</param>
            <param name="keys">The keys that must be present in the dictionary.</param>
        </member>
        <member name="T:Wyam.Common.Util.EmptyDisposable">
            <summary>
            A disposable class that does nothing.
            </summary>
        </member>
        <member name="F:Wyam.Common.Util.EmptyDisposable.Instance">
            <summary>
            A singleton instance of the <see cref="T:Wyam.Common.Util.EmptyDisposable"/>.
            </summary>
        </member>
        <member name="M:Wyam.Common.Util.EmptyDisposable.Dispose">
            <summary>
            Does nothing.
            </summary>
        </member>
        <member name="T:Wyam.Common.Util.GroupByExtensions">
            <summary>
            Extensions for performing grouping operations.
            </summary>
        </member>
        <member name="M:Wyam.Common.Util.GroupByExtensions.GroupByMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})">
            <summary>
            Groups the elements of a sequence according to a specified key selector function
            that returns a sequence of keys.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Util.GroupByExtensions.GroupByMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Groups the elements of a sequence according to a specified key selector function
            that returns a sequence of keys
            and compares the keys by using a specified comparer.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="comparer">The comparer.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Util.GroupByExtensions.GroupByMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``2})">
            <summary>
            Groups the elements of a sequence according to a specified key selector function
            that returns a sequence of keys
            and projects the elements for each group by using a specified function.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="elementSelector">The element selector.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Util.GroupByExtensions.GroupByMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Groups the elements of a sequence according to a specified key selector function
            that returns a sequence of keys.
            The keys are compared by using a comparer and each group's elements
            are projected by using a specified function.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="elementSelector">The element selector.</param>
            <param name="comparer">The comparer.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Util.GroupByExtensions.GroupByManyToMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,System.Collections.Generic.IEnumerable{``2}})">
            <summary>
            Groups the elements of a sequence according to a specified key selector function
            that returns a sequence of keys
            and projects the elements for each group by using a specified function
            that returns a sequence of elements.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="elementSelector">The element selector.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="M:Wyam.Common.Util.GroupByExtensions.GroupByManyToMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,System.Collections.Generic.IEnumerable{``2}},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Groups the elements of a sequence according to a specified key selector function
            that returns a sequence of keys.
            The keys are compared by using a comparer and each group's elements
            are projected by using a specified function
            that returns a sequence of elements.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="elementSelector">The element selector.</param>
            <param name="comparer">The comparer.</param>
            <returns>A sequence of groups.</returns>
        </member>
        <member name="T:Wyam.Common.Util.LinkGenerator">
            <summary>
            Helps generate normalized links.
            </summary>
        </member>
        <member name="F:Wyam.Common.Util.LinkGenerator.DefaultHidePages">
            <summary>
            The default page names to hide in links.
            </summary>
        </member>
        <member name="F:Wyam.Common.Util.LinkGenerator.DefaultHideExtensions">
            <summary>
            The default extensions to hide in links.
            </summary>
        </member>
        <member name="M:Wyam.Common.Util.LinkGenerator.GetLink(Wyam.Common.IO.NormalizedPath,System.String,Wyam.Common.IO.DirectoryPath,System.String,System.String[],System.String[],System.Boolean)">
            <summary>
            Generates a normalized link given a path and other conditions.
            </summary>
            <param name="path">The path to get a link for.</param>
            <param name="host">The host for the link (or <c>null</c> to omit the host).</param>
            <param name="root">The root path for the link (or <c>null</c> for no root path).</param>
            <param name="scheme">The scheme for the link (or <c>null</c> for "http").</param>
            <param name="hidePages">An array of page names to hide (or <c>null</c> to not hide any pages).</param>
            <param name="hideExtensions">An array of file extensions to hide (or <c>null</c> to not hide extensions or an empty array to hide all file extensions).</param>
            <param name="lowercase">Indicates that the link should be rendered in all lowercase.</param>
            <returns>A generated link.</returns>
        </member>
        <member name="M:Wyam.Common.Util.LinkGenerator.TryGetAbsoluteHttpUri(System.String,System.String@)">
            <summary>
            Checks if a string contains an absolute URI with a "http" or "https" scheme and returns it if it does.
            </summary>
            <param name="str">The string to check.</param>
            <param name="absoluteUri">The resulting absolute URI.</param>
            <returns><c>true</c> if the string contains an absolute URI, <c>false</c> otherwise.</returns>
        </member>
        <member name="T:Wyam.Common.Util.SourceInfoAttribute">
            <summary>
            A clever trick to get source info for declarations during reflection.
            From http://stackoverflow.com/a/17998371/807064.
            </summary>
        </member>
        <member name="M:Wyam.Common.Util.SourceInfoAttribute.#ctor(System.String,System.Int32)">
            <summary>
            Creates an instance of the attribute.
            </summary>
            <param name="filePath">The automatically populated file path (don't supply this manually)</param>
            <param name="lineNumber">The automatically populated source file line number (don't supply this manually)</param>
        </member>
        <member name="P:Wyam.Common.Util.SourceInfoAttribute.LineNumber">
            <summary>
            The line number of the attribute in the source file.
            </summary>
        </member>
        <member name="P:Wyam.Common.Util.SourceInfoAttribute.FilePath">
            <summary>
            The file path of the source file.
            </summary>
        </member>
        <member name="T:Wyam.Common.Util.StreamExtensions">
            <summary>
            Extension methods for use with <see cref="T:System.IO.Stream"/>.
            </summary>
        </member>
        <member name="M:Wyam.Common.Util.StreamExtensions.GetWriter(System.IO.Stream,System.Boolean)">
            <summary>
            Creates a <see cref="T:System.IO.StreamWriter"/> for the specified stream. The
            biggest difference between this and creating a <see cref="T:System.IO.StreamWriter"/>
            directly is that the new <see cref="T:System.IO.StreamWriter"/> will default to
            leaving the underlying stream open on disposal. Remember to flush the
            returned writer after all data have been written.
            </summary>
            <param name="stream">The stream to write to.</param>
            <param name="leaveOpen"><c>true</c> to leave the underlying stream open on disposal.</param>
            <returns>A new <see cref="T:System.IO.StreamWriter"/> for the specified stream.</returns>
        </member>
        <member name="M:Wyam.Common.Util.ToLookupExtensions.ToLookupMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})">
            <summary>
            Creates a lookup from a sequence according to a specified key selector function
            that returns a sequence of keys.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Util.ToLookupExtensions.ToLookupMany``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Creates a lookup from a sequence according to a specified key selector function
            that returns a sequence of keys
            and compares the keys by using a specified comparer.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="comparer">The comparer.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Util.ToLookupExtensions.ToLookupMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``2})">
            <summary>
            Creates a lookup from a sequence according to a specified key selector function
            that returns a sequence of keys
            and projects the elements for each group by using a specified function.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="elementSelector">The element selector.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Util.ToLookupExtensions.ToLookupMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Creates a lookup from a sequence according to a specified key selector function
            that returns a sequence of keys.
            The keys are compared by using a comparer and each group's elements
            are projected by using a specified function.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="elementSelector">The element selector.</param>
            <param name="comparer">The comparer.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Util.ToLookupExtensions.ToLookupManyToMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,System.Collections.Generic.IEnumerable{``2}})">
            <summary>
            Creates a lookup from a sequence according to a specified key selector function
            that returns a sequence of keys
            and projects the elements for each group by using a specified function
            that returns a sequence of elements.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="elementSelector">The element selector.</param>
            <returns>A lookup.</returns>
        </member>
        <member name="M:Wyam.Common.Util.ToLookupExtensions.ToLookupManyToMany``3(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,System.Collections.Generic.IEnumerable{``2}},System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Creates a lookup from a sequence according to a specified key selector function
            that returns a sequence of keys.
            The keys are compared by using a comparer and each group's elements
            are projected by using a specified function
            that returns a sequence of elements.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TElement">The type of the element.</typeparam>
            <param name="source">The source.</param>
            <param name="keySelector">The key selector.</param>
            <param name="elementSelector">The element selector.</param>
            <param name="comparer">The comparer.</param>
            <returns>A lookup.</returns>
        </member>
    </members>
</doc>
Wyam.Configuration.dll
md5: 3F650D6AB86D9883AB330F1C97F4C4F5 | sha1: 6F92A9F6E48E534DC4F78029093A8E8A052AD43D | sha256: 73C16A843601272CBEAF5619CAFA473378F8FC2154F28C8C2A45E75AA44BB8E1 | sha512: F4D8448B8703D07A8D5F5FC79722F5F024E93BEE511D39F1C78B5503DD973542D8E71ADB1AC222997C89E070E0B4F9DF16AD475957F0DBF680BEB65527390310
Wyam.Configuration.pdb
 
Wyam.Configuration.xml
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Wyam.Configuration</name>
    </assembly>
    <members>
        <member name="T:Wyam.Configuration.Assemblies.AssemblyComparer">
            <summary>
            Compares two assemblies for equality by comparing at their full names.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.Assemblies.AssemblyComparer.Equals(System.Reflection.Assembly,System.Reflection.Assembly)">
            <inheritdoc/>
        </member>
        <member name="M:Wyam.Configuration.Assemblies.AssemblyComparer.GetHashCode(System.Reflection.Assembly)">
            <inheritdoc/>
        </member>
        <member name="P:Wyam.Configuration.Assemblies.AssemblyLoader.DirectAssemblies">
            <summary>
            Gets the assemblies that were directly referenced (as opposed to all recursively referenced assemblies).
            </summary>
        </member>
        <member name="M:Wyam.Configuration.Assemblies.AssemblyLoader.Add(System.String)">
            <summary>
            Adds a new assembly or pattern to those to be loaded.
            </summary>
            <param name="assembly">
            The assembly or pattern to load. If the string contains a "*" then it is considered a globbing pattern, otherwise it's considered an assembly.
            </param>
        </member>
        <member name="M:Wyam.Configuration.Assemblies.AssemblyLoader.Load">
            <summary>
            Loads all specified assemblies and their references.
            </summary>
        </member>
        <member name="T:Wyam.Configuration.Assemblies.AssemblyLoader.AssemblyDependencyComparer">
            <summary>
            Returns assemblies in dependency order.
            </summary>
        </member>
        <member name="T:Wyam.Configuration.Assemblies.ClassCatalog">
            <summary>
            Responsible for iterating over a set of assemblies
            looking for implementations of predefined interfaces.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.Assemblies.ClassCatalog.GetClasses``1">
            <summary>
            Gets all classes of a specified type.
            </summary>
            <typeparam name="T">The type of classes to get.</typeparam>
            <returns>All classes of type <c>T</c>.</returns>
        </member>
        <member name="M:Wyam.Configuration.Assemblies.ClassCatalog.GetInstances``1">
            <summary>
            Gets instances for all classes of a specified type..
            </summary>
            <typeparam name="T">The type of instances to get.</typeparam>
            <returns>Instances for all classes of type <c>T</c>.</returns>
        </member>
        <member name="M:Wyam.Configuration.Assemblies.ClassCatalog.GetInstance``1(System.String,System.Boolean)">
            <summary>
            Gets an instance for a class of a specified type and name.
            </summary>
            <typeparam name="T">The type of the instance to get.</typeparam>
            <param name="typeName">The name of the type.</param>
            <param name="ignoreCase">if set to <c>true</c> ignore the case of the type name.</param>
            <returns>
            An instance of the first class that matches the specified type and name.
            </returns>
        </member>
        <member name="T:Wyam.Configuration.ClassEnum`1">
            <summary>
            A base class that can be used to create more powerful "enum" classes that
            use fields to store the values, which are instances of the class.
            </summary>
            <typeparam name="T">The derived class type.</typeparam>
        </member>
        <member name="T:Wyam.Configuration.ConfigScript.ScriptBase">
            <summary>
            This is the base class used for the generated configuration script. Put any properties or
            methods you want the configuration script to have access to in here.
            </summary>
        </member>
        <member name="T:Wyam.Configuration.Configurator">
            <summary>
            Manages configuration of an engine and coordinates configuration script processing.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.Configurator.#ctor(Wyam.Core.Execution.Engine)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Configuration.Configurator"/> class.
            </summary>
            <param name="engine">The engine to configure.</param>
        </member>
        <member name="M:Wyam.Configuration.Configurator.#ctor(Wyam.Core.Execution.Engine,Wyam.Configuration.Preprocessing.Preprocessor)">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Configuration.Configurator"/> class. This overload
            allows passing in a <see cref="T:Wyam.Configuration.Preprocessing.Preprocessor"/> that can be reused and pre-configured
            with directives not sourced from the script.
            </summary>
            <param name="engine">The engine to configure.</param>
            <param name="preprocessor">The preprocessor.</param>
        </member>
        <member name="M:Wyam.Configuration.Configurator.Configure(Wyam.Common.IO.FilePath)">
            <summary>
            Configures the engine using the specified config file.
            </summary>
            <param name="configFilePath">The path to the config file.</param>
            <returns><c>true</c> if the file exists and the engine was configured, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Configuration.Configurator.Configure(Wyam.Common.IO.IFile)">
            <summary>
            Configures the engine using the specified config file.
            </summary>
            <param name="configFile">The config file.</param>
            <returns><c>true</c> if the file exists and the engine was configured, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Configuration.Configurator.Configure(System.String,Wyam.Common.IO.FilePath)">
            <summary>
            Configures the engine using the specified script.
            </summary>
            <param name="script">The script.</param>
            <param name="configFilePath">
            The path to the config file. This is used for calculating file names and paths for caching files.
            If it is not supplied, no cache files will be generated.
            </param>
        </member>
        <member name="T:Wyam.Configuration.Directives.ArgumentSyntaxDirective`1">
            <summary>
            Helps support directives that can use CLI-style options and arguments.
            </summary>
        </member>
        <member name="T:Wyam.Configuration.KnownExtension">
            <summary>
            Lookup data for all known extensions.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.KnownExtension.PackageId">
            <summary>
            Gets the package that contains the extension.
            </summary>
        </member>
        <member name="T:Wyam.Configuration.KnownRecipe">
            <summary>
            Lookup data for all known recipes.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.KnownRecipe.PackageId">
            <summary>
            Gets the package that the recipe class is in. If the recipe is in the
            core library, this will be null.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.KnownRecipe.DefaultTheme">
            <summary>
            Gets the default theme for this recipe (or null). This should map
            to a theme in the <see cref="T:Wyam.Configuration.KnownTheme" /> lookup.
            </summary>
        </member>
        <member name="T:Wyam.Configuration.KnownTheme">
            <summary>
            Lookup data for all known themes.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.KnownTheme.Recipe">
            <summary>
            Gets the recipe that this theme supports. A null value indicates the theme
            is not recipe specific.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.KnownTheme.InputPath">
            <summary>
            Path to insert into input paths. If the theme is just a NuGet content package,
            the content folder will be automatically included and this can be null. Useful
            if the theme exists somewhere else like a GitHub repository.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.KnownTheme.PackageId">
            <summary>
            Gets the package containing this theme.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.CachedPackage.VerifyPackage(NuGet.PackageManagement.NuGetPackageManager)">
            <summary>
            Verifies that the package and all of it's dependencies exist locally
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.InstalledPackagesCache.GetInstalledPackagesAndDependencies">
            <summary>
            Gets all installed packages from this session and their dependencies.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.InstalledPackagesCache.VerifyPackage(NuGet.Packaging.Core.PackageIdentity,NuGet.PackageManagement.NuGetPackageManager)">
            <summary>
            Verifies that a package has been previously installed as well as
            currently existing locally with all dependencies, and if so,
            adds it back to the outgoing cache file along with all it's
            previously calculated dependencies.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.PackageInstaller.AddPackageSource(System.String)">
            <summary>
            Adds the specified package source. Sources added this way will be searched before any global sources.
            </summary>
            <param name="packageSource">The package source to add.</param>
        </member>
        <member name="M:Wyam.Configuration.NuGet.PackageInstaller.AddPackage(System.String,System.Collections.Generic.IEnumerable{System.String},System.String,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Adds a package.
            </summary>
            <param name="packageId">The package identifier.</param>
            <param name="packageSources">The package sources.</param>
            <param name="versionRange">The version range.</param>
            <param name="getLatest">If set to <c>true</c>, the latest version of the package will always be downloaded.</param>
            <param name="allowPrereleaseVersions">If set to <c>true</c>, allow prerelease versions.</param>
            <param name="allowUnlisted">If set to <c>true</c>, allow unlisted versions.</param>
            <param name="exclusive">If set to <c>true</c>, only use the package sources defined for this package.</param>
        </member>
        <member name="M:Wyam.Configuration.NuGet.PackageInstaller.ContainsPackage(System.String)">
            <summary>
            Determines whether the specified package has already been added.
            </summary>
            <param name="packageId">The package identifier.</param>
        </member>
        <member name="T:Wyam.Configuration.NuGet.SourceRepositoryProvider">
            <summary>
            Creates and caches SourceRepository objects, which are
            the combination of PackageSource instances with a set
            of supported resource providers. It also manages the set
            of default source repositories.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.SourceRepositoryProvider.AddGlobalDefaults">
            <summary>
            Add the global sources to the default repositories.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.SourceRepositoryProvider.AddDefaultRepository(System.String)">
            <summary>
            Adds a default source repository to the front of the list.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.SourceRepositoryProvider.CreateRepository(System.String)">
            <summary>
            Creates or gets a non-default source repository.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.SourceRepositoryProvider.CreateRepository(NuGet.Configuration.PackageSource)">
            <summary>
            Creates or gets a non-default source repository by PackageSource.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.SourceRepositoryProvider.CreateRepository(NuGet.Configuration.PackageSource,NuGet.Protocol.FeedType)">
            <summary>
            Creates or gets a non-default source repository by PackageSource.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.NuGet.SourceRepositoryProvider.GetRepositories">
            <summary>
            Gets all cached repositories.
            </summary>
        </member>
        <member name="T:Wyam.Configuration.Preprocessing.DirectiveValue">
            <summary>
            Represents the use of a directive.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.Preprocessing.DirectiveValue.Line">
             <summary>
             Gets the line where the directive was specified
             (or <c>null</c> if created outside the configuration file).
             </summary>
            
        </member>
        <member name="P:Wyam.Configuration.Preprocessing.DirectiveValue.Name">
            <summary>
            Gets the directive name.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.Preprocessing.DirectiveValue.Value">
            <summary>
            Gets the directive value.
            </summary>
        </member>
        <member name="T:Wyam.Configuration.Preprocessing.IDirective">
            <summary>
            A directive that can be used in the configuration file and optionally on the
            command line.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.Preprocessing.IDirective.Name">
            <summary>
            Gets the directive name.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.Preprocessing.IDirective.ShortName">
            <summary>
            Gets the short directive name.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.Preprocessing.IDirective.SupportsMultiple">
            <summary>
            Gets a value indicating whether the directive supports multiple values.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.Preprocessing.IDirective.Description">
            <summary>
            Gets a description of the directive.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.Preprocessing.IDirective.ValueComparer">
            <summary>
            Gets a string comparer that can be used to compare values of one directive to another for equality.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.Preprocessing.IDirective.Process(Wyam.Configuration.Configurator,System.String)">
            <summary>
            Processes the directive.
            </summary>
            <param name="configurator">The configurator.</param>
            <param name="value">The value of the directive.</param>
        </member>
        <member name="M:Wyam.Configuration.Preprocessing.IDirective.GetHelpText">
            <summary>
            Gets the help text.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.Preprocessing.Preprocessor.AddValue(Wyam.Configuration.Preprocessing.DirectiveValue)">
            <summary>
            Adds values that will be persistent from one configuration to the next.
            </summary>
        </member>
        <member name="P:Wyam.Configuration.Preprocessing.Preprocessor.Values">
            <summary>
            Gets the current directive values.
            </summary>
        </member>
        <member name="M:Wyam.Configuration.Preprocessing.Preprocessor.ProcessDirectives(Wyam.Configuration.Configurator,System.Collections.Generic.IEnumerable{Wyam.Configuration.Preprocessing.DirectiveValue})">
            <summary>
            Processes both directives that were added to the preprocessor plus any additional ones passed in.
            </summary>
        </member>
    </members>
</doc>
Wyam.Core.dll
md5: 41D5E99336B0DBF3B315C1BBFA155944 | sha1: F239A0F4F149CA48EDC6EB2B72851FDD6E79A1D6 | sha256: 221731632139F36F20F7303D384BC7857E02267F7E5F86C218EBB3D00630332A | sha512: 9990C65ED068332B8A08403894877CD3ACB8E9AB315520CAF004C2849A8DAEEE0946AA1316F31353ABA90F738D06A7CA1E0F3E26E7336A5AE7A0E6F775DCF7D7
Wyam.Core.pdb
 
Wyam.Core.xml
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Wyam.Core</name>
    </assembly>
    <members>
        <member name="T:Wyam.Core.Documents.CustomDocument">
            <summary>
            Derive custom document types from this class to get built-in support.
            </summary>
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.Clone">
            <summary>
            Clones this instance of the document. You must return a new instance of your
            custom document type, even if nothing will change, otherwise the document factory
            will throw an exception. The default implementation of this method performs a
            <code>object.MemberwiseClone()</code>.
            </summary>
            <returns>A new custom document instance with the same values as the current instance.</returns>
        </member>
        <member name="P:Wyam.Core.Documents.CustomDocument.WithoutSettings">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Documents.CustomDocument.Count">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.ContainsKey(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Documents.CustomDocument.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Documents.CustomDocument.Keys">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Documents.CustomDocument.Values">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.MetadataAs``1">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.Get(System.String,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.GetRaw(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.Get``1(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.Get``1(System.String,``0)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.TryGetValue(System.String,System.Object@)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.TryGetValue``1(System.String,``0@)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.GetMetadata(System.String[])">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.Dispose">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Documents.CustomDocument.Source">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.SourceString">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Documents.CustomDocument.Id">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Documents.CustomDocument.Metadata">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Documents.CustomDocument.Content">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.GetStream">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Documents.CustomDocument.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Execution.Engine">
            <summary>
            The engine is the primary entry point for the generation process.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.Version">
            <summary>
            Gets the version of Wyam currently being used.
            </summary>
        </member>
        <member name="M:Wyam.Core.Execution.Engine.#ctor">
            <summary>
            Creates the engine.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.FileSystem">
            <summary>
            Gets the file system.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.Settings">
            <summary>
            Gets the settings.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.Shortcodes">
            <summary>
            Gets the shortcodes.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.Pipelines">
            <summary>
            Gets the pipelines.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.Documents">
            <summary>
            Gets the documents.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.Namespaces">
            <summary>
            Gets the namespaces that should be brought in scope by modules that support dynamic compilation.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.DynamicAssemblies">
            <summary>
            Gets a collection of all the raw assemblies that should be referenced by modules
            that support dynamic compilation (such as configuration assemblies).
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.ApplicationInput">
            <summary>
            Gets or sets the application input.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.DocumentFactory">
            <summary>
            Gets or sets the document factory.
            </summary>
        </member>
        <member name="P:Wyam.Core.Execution.Engine.ContentStreamFactory">
            <summary>
            The factory that should provide content streams for documents.
            </summary>
        </member>
        <member name="M:Wyam.Core.Execution.Engine.CleanOutputPath">
            <summary>
            Deletes the output path and all files it contains.
            </summary>
        </member>
        <member name="M:Wyam.Core.Execution.Engine.CleanTempPath">
            <summary>
            Deletes the temp path and all files it contains.
            </summary>
        </member>
        <member name="M:Wyam.Core.Execution.Engine.ResetJsEngines">
            <summary>
            Resets the JavaScript Engine pool and clears the JavaScript Engine Switcher
            to an empty list of engine factories and default engine. Useful on configuration
            change where we might have a new configuration.
            </summary>
        </member>
        <member name="M:Wyam.Core.Execution.Engine.Execute">
            <summary>
            Executes the engine. This is the primary method that kicks off generation.
            </summary>
        </member>
        <member name="M:Wyam.Core.Execution.Engine.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Execution.ExecutionContext.Dispose">
            <summary>
            The context is disposed after use by each module to ensure modules aren't accessing stale data
            if they continue to create documents or perform other operations after the module is done
            executing. A disposed context can no longer be used.
            </summary>
        </member>
        <member name="M:Wyam.Core.IO.FileProviders.Local.LocalCaseSensitivityChecker.IsCaseSensitive(Wyam.Core.IO.FileProviders.Local.LocalDirectory)">
            <summary>
            Determines if the file system rooted at a given directory is case insensitive.
            Checks if the file system thinks the directory exists for both upper and lower case variants.
            If the directory doesn't exist in the first place, or it's entirely non-alpha, a fallback approach
            is used that creates a temporary file in the system's temporary file location and checks that.
            </summary>
            <param name="directory">The directory to check.</param>
            <returns><c>true</c> if the file system rooted at the directory is case sensitive, <c>false</c> otherwise.</returns>
        </member>
        <member name="T:Wyam.Core.IO.Globbing.Globber">
            <summary>
            Helper methods to work with globbing patterns.
            </summary>
        </member>
        <member name="M:Wyam.Core.IO.Globbing.Globber.GetFiles(Wyam.Common.IO.IDirectory,System.String[])">
            <summary>
            Gets files from the specified directory using globbing patterns.
            </summary>
            <param name="directory">The directory to search.</param>
            <param name="patterns">The globbing pattern(s) to use.</param>
            <returns>Files that match the globbing pattern(s).</returns>
        </member>
        <member name="M:Wyam.Core.IO.Globbing.Globber.GetFiles(Wyam.Common.IO.IDirectory,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Gets files from the specified directory using globbing patterns.
            </summary>
            <param name="directory">The directory to search.</param>
            <param name="patterns">The globbing pattern(s) to use.</param>
            <returns>Files that match the globbing pattern(s).</returns>
        </member>
        <member name="M:Wyam.Core.IO.Globbing.Globber.ExpandBraces(System.String)">
            <summary>Expands all brace ranges in a pattern, returning a sequence containing every possible combination.</summary>
            <param name="pattern">The pattern to expand.</param>
            <returns>The expanded globbing patterns.</returns>
        </member>
        <member name="P:Wyam.Core.IO.VirtualInputDirectory.Exists">
            <summary>
            Gets a value indicating whether any of the input paths contain this directory.
            </summary>
            <value>
            <c>true</c> if this directory exists at one of the input paths; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Wyam.Core.IO.VirtualInputDirectory.IsCaseSensitive">
            <summary>
            Returns <c>true</c> if any of the input paths are case sensitive.
            </summary>
            <remarks>
            When dealing with virtual input directories that could be comprised of multiple
            file systems with different case sensitivity, it's safer to treat the
            virtual file system as case-sensitive if any of the underlying file systems
            are case-sensitive. Otherwise, if we treated it as case-insensitive when
            one of the file systems was actually case-sensitive we would get false-positive
            results when assuming if directories and files in that file system existed
            (for example, in the globber).
            </remarks>
        </member>
        <member name="T:Wyam.Core.JavaScript.PooledJavaScriptEngine">
            <summary>
            Wraps a <see cref="T:Wyam.Core.JavaScript.JavaScriptEngine"/> but overrides the
            dispose behavior so that instead of disposing the
            underlying engine, it returns the engine to the pool.
            </summary>
        </member>
        <member name="M:Wyam.Core.Meta.Metadata.GetValue(System.Object)">
            <summary>
            This resolves the metadata value by recursively expanding IMetadataValue.
            </summary>
        </member>
        <member name="M:Wyam.Core.Meta.Metadata.GetItem(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <summary>
            This resolves the metadata value by expanding IMetadataValue.
            </summary>
        </member>
        <member name="T:Wyam.Core.Meta.MetadataStack">
            <summary>
            This class contains a stack of all the metadata generated at a particular pipeline stage.
            Getting a value checks each of the stacks and returns the first hit.
            This class is immutable, create a new document to get a new one with additional values.
            </summary>
        </member>
        <member name="T:Wyam.Core.Modules.Contents.Append">
            <summary>
            Appends the specified content to the existing content of each document.
            </summary>
            <category>Content</category>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Append.#ctor(System.Object)">
            <summary>
            Appends the string value of the specified object to the content of every input document.
            </summary>
            <param name="content">The content to append.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Append.#ctor(Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Appends the string value of the returned object to to content of each document. This
            allows you to specify different content to append depending on the execution context.
            </summary>
            <param name="content">A delegate that returns the content to append.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Append.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Appends the string value of the returned object to to content of each document.
            This allows you to specify different content to append for each document depending
            on the input document.
            </summary>
            <param name="content">A delegate that returns the content to append.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Append.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            The specified modules are executed against an empty initial document and the results
            are appended to the content of every input document (possibly creating more
            than one output document for each input document).
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Append.Execute(System.Object,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Contents.Content">
            <summary>
            Replaces the content of each input document with the string value of the specified content object.
            </summary>
            <remarks>
            In the case where modules are provided, they are executed against an
            empty initial document and the results are applied to each input document.
            </remarks>
            <category>Content</category>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Content.#ctor(System.Object)">
            <summary>
            Uses the string value of the specified object as the new content for every input document.
            </summary>
            <param name="content">The new content to use.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Content.#ctor(Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Uses the string value of the returned object as the new content for each document.
            This allows you to specify different content depending on the execution context.
            </summary>
            <param name="content">A delegate that gets the new content to use.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Content.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Uses the string value of the returned object as the new content for each document. This
            allows you to specify different content for each document depending on the input document.
            </summary>
            <param name="content">A delegate that gets the new content to use.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Content.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            The specified modules are executed against an empty initial document and the results
            are applied to every input document (possibly creating more than one output
            document for each input document).
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Content.Execute(System.Object,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Contents.Join">
            <summary>
            Joins documents together with an optional delimiter to form one document.
            </summary>
            <category>Content</category>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Join.#ctor">
            <summary>
            Concatenates multiple documents together to form a single document without a delimiter and with the default metadata only
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Join.#ctor(Wyam.Core.Modules.Contents.JoinedMetadata)">
            <summary>
            Concatenates multiple documents together to form a single document without a delimiter using the specified meta data mode
            </summary>
            <param name="metaDataMode">The specified metadata mode</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Join.#ctor(System.String,Wyam.Core.Modules.Contents.JoinedMetadata)">
            <summary>
            Concatenates multiple documents together to form a single document with a specified delimiter using the specified meta data mode
            </summary>
            <param name="delimiter">The string to use as a separator between documents</param>
            <param name="metaDataMode">The specified metadata mode</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Join.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
            <summary>
            Returns a single document containing the concatenated content of all input documents with an optional delimiter and configurable metadata options
            </summary>
            <returns>A single document in a list</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Join.MetadataForOutputDocument(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument})">
            <summary>
            Returns the correct metadata for the new document based on the provided list of documents and the selected metadata mode.
            </summary>
            <param name="inputs">The list of input documents.</param>
            <returns>The set of metadata for all input documents.</returns>
        </member>
        <member name="T:Wyam.Core.Modules.Contents.JoinedMetadata">
            <summary>
            Specifies how to deal with metadata from joined documents.
            </summary>
        </member>
        <member name="F:Wyam.Core.Modules.Contents.JoinedMetadata.DefaultOnly">
            <summary>
            The joined document only includes the default global metadata.
            </summary>
        </member>
        <member name="F:Wyam.Core.Modules.Contents.JoinedMetadata.FirstDocument">
            <summary>
            The joined document includes the metadata from the first document in the sequence of documents to join.
            </summary>
        </member>
        <member name="F:Wyam.Core.Modules.Contents.JoinedMetadata.LastDocument">
            <summary>
            The joined document includes the metadata from the last document in the sequence of documents to join.
            </summary>
        </member>
        <member name="F:Wyam.Core.Modules.Contents.JoinedMetadata.AllWithFirstDuplicates">
            <summary>
            The joined document includes metadata from all joined documents and uses the value from the
            first document in the sequence of documents to join in the case of duplicate keys.
            </summary>
        </member>
        <member name="F:Wyam.Core.Modules.Contents.JoinedMetadata.AllWithLastDuplicates">
            <summary>
            The joined document includes metadata from all joined documents and uses the value from the
            last document in the sequence of documents to join in the case of duplicate keys.
            </summary>
        </member>
        <member name="T:Wyam.Core.Modules.Contents.Prepend">
            <summary>
            Prepends the specified content to the existing content of each document.
            </summary>
            <category>Content</category>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Prepend.#ctor(System.Object)">
            <summary>
            Prepends the string value of the specified object to the content of every input document.
            </summary>
            <param name="content">The content to prepend.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Prepend.#ctor(Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Prepends the string value of the returned object to to content of each document. This
            allows you to specify different content to prepend depending on the execution context.
            </summary>
            <param name="content">A delegate that returns the content to prepend.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Prepend.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Prepends the string value of the returned object to to content of each document. This
            allows you to specify different content to prepend for each document depending on the input document.
            </summary>
            <param name="content">A delegate that returns the content to prepend.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Prepend.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            The specified modules are executed against an empty initial document and the results are
            prepended to the content of every input document (possibly creating more than one output
            document for each input document).
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Prepend.Execute(System.Object,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Contents.Redirect">
            <summary>
            Handles redirected content by creating pages with meta refresh tags or other redirect files.
            </summary>
            <remarks>
            <para>When content moves you need some way to redirect from the old location to the new location.
            This is especially true when moving content from one publishing system to another that might
            have different conventions for things like paths.</para>
            <para>This module lets you manage redirected content
            by generating special pages that contain a "meta refresh tag". This tag tells client browsers
            that the content has moved and to redirect to the new location. Google and other search engines
            also understand meta refresh tags and will adjust their search indexes accordingly.</para>
            <para>Alternatively (or additionally), you can also create host-specific redirect files to
            control redirection on the server.</para>
            <para>By default, this module will read the paths that need to be redirected from the
            <c>RedirectFrom</c> metadata key. One or more paths can be specified in this metadata and
            corresponding redirect files will be created for each.</para>
            <para>This module outputs any meta refresh pages as well as any additional redirect files
            you specify. It does not output the original input files.</para>
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.RedirectFrom" usage="Input" />
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFilePath" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.WritePath" usage="Output" />
            <category>Content</category>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Redirect.WithPaths(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Controls where the redirected paths come from. By default, values from the metadata
            key <c>RedirectFrom</c> are used.
            </summary>
            <param name="paths">A delegate that should return one or more <see cref="T:Wyam.Common.IO.FilePath"/>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Redirect.WithMetaRefreshPages(System.Boolean)">
            <summary>
            Controls whether meta refresh pages are output.
            </summary>
            <param name="metaRefreshPages">If <c>true</c>, meta refresh pages are generated.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Redirect.IncludeHost(System.Boolean)">
            <summary>
            Indicates whether the host should be automatically included in generated redirect links.
            </summary>
            <param name="includeHost"><c>true</c> to include the host.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Redirect.WithAdditionalOutput(Wyam.Common.IO.FilePath,System.Func{System.Collections.Generic.IDictionary{Wyam.Common.IO.FilePath,System.String},System.String})">
            <summary>
            Adds additional output files that you specify by supplying a delegate that takes a dictionary
            of redirected paths to destination URLs.
            </summary>
            <param name="path">The path of the output file (must be relative).</param>
            <param name="content">A delegate that takes a dictionary with keys equal to each redirected file
            and values equal to the destination URL. The delegate should return the content of the output file.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Redirect.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Contents.Replace">
            <summary>
            Replaces a search string in the content of each input document with new content.
            </summary>
            <category>Content</category>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Replace.#ctor(System.String,System.Object)">
            <summary>
            Replaces all occurrences of the search string in every input document
            with the string value of the specified object.
            </summary>
            <param name="search">The string to search for.</param>
            <param name="content">The content to replace the search string with.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Replace.#ctor(System.String,Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Replaces all occurrences of the search string in every input document with the
            string value of the returned object. This allows you to specify different content
            depending on the execution context.
            </summary>
            <param name="search">The string to search for.</param>
            <param name="content">A delegate that returns the content to replace the search string with.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Replace.#ctor(System.String,Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Replaces all occurrences of the search string in every input document with the
            string value of the returned object. This allows you to specify different content
            for each document depending on the input document.
            </summary>
            <param name="search">The string to search for.</param>
            <param name="content">A delegate that returns the content to replace the search string with.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Replace.#ctor(System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            The specified modules are executed against an empty initial document and the resulting
            document content replaces all occurrences of the search string in every input document
            (possibly creating more than one output document for each input document).
            </summary>
            <param name="search">The string to search for.</param>
            <param name="modules">Modules that output the content to replace the search string with.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Replace.#ctor(System.String,System.Func{System.Text.RegularExpressions.Match,System.Object})">
            <summary>
            Replaces all occurrences of the search string in every input document
            with the string value of the objects returned by the delegate. The delegate will be called
            for each Match in the supplied regular expression.
            </summary>
            <param name="search">The string to search for (interpreted as a regular expression).</param>
            <param name="contentFinder">A delegate that returns the content to replace the match.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Replace.#ctor(System.String,System.Func{System.Text.RegularExpressions.Match,Wyam.Common.Documents.IDocument,System.Object})">
            <summary>
            Replaces all occurrences of the search string in every input document
            with the string value of the objects returned by the delegate. The delegate will be called
            for each Match in the supplied regular expression.
            </summary>
            <param name="search">The string to search for (interpreted as a regular expression).</param>
            <param name="contentFinder">A delegate that returns the content to replace the match.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Replace.IsRegex(System.Text.RegularExpressions.RegexOptions)">
            <summary>
            Indicates that the search string(s) should be treated as a regular expression(s)
            with the specified options.
            </summary>
            <param name="regexOptions">The options to use (if any).</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Replace.Execute(System.Object,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Contents.ReplaceIn">
            <summary>
            Replaces a search string in the specified content with the content of input documents.
            </summary>
            <remarks>
            This is sort of like the inverse of the Replace module and is very useful for simple
            template substitution.
            </remarks>
            <category>Content</category>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.ReplaceIn.#ctor(System.String,System.Object)">
            <summary>
            Replaces all occurrences of the search string in the string value of the
            specified object with the content of each input document.
            </summary>
            <param name="search">The string to search for.</param>
            <param name="content">The content within which to search for the search string.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.ReplaceIn.#ctor(System.String,Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Replaces all occurrences of the search string in the string value of the
            returned object with the content of each input document. This allows you to
            specify different content depending on the execution context.
            </summary>
            <param name="search">The string to search for.</param>
            <param name="content">A delegate that returns the content within which
            to search for the search string.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.ReplaceIn.#ctor(System.String,Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Replaces all occurrences of the search string in the string value of the returned
            object with the content of each input document. This allows you to specify different
            content for each document depending on the input document.
            </summary>
            <param name="search">The string to search for.</param>
            <param name="content">A delegate that returns the content within which
            to search for the search string.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.ReplaceIn.#ctor(System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            The specified modules are executed against an empty initial document and all
            occurrences of the search string in the resulting document content are replaced by the content of
            each input document (possibly creating more than one output document for each input document).
            </summary>
            <param name="search">The string to search for.</param>
            <param name="modules">Modules that output the content within which
            to search for the search string.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.ReplaceIn.IsRegex(System.Text.RegularExpressions.RegexOptions)">
            <summary>
            Indicates that the search string(s) should be treated as a regular expression(s)
            with the specified options.
            </summary>
            <param name="regexOptions">The options to use (if any).</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.ReplaceIn.Execute(System.Object,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Contents.Shortcodes">
            <summary>
            Renders shortcodes in the input documents.
            </summary>
            <category>Content</category>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Shortcodes.#ctor(System.Boolean)">
            <summary>
            Renders shortcodes in the input documents using the default start and end delimiters.
            </summary>
            <param name="preRender">
            Indicates if the module is being executed pre-template-rendering (<c>true</c>)
            or post-template-rendering (<c>false</c>). The default delimiters are different
            depending on when the module is executed.
            </param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Shortcodes.#ctor(System.String,System.String)">
            <summary>
            Renders shortcodes in the input documents using custom start and end delimiters.
            </summary>
            <param name="startDelimiter">The shortcode start delimiter.</param>
            <param name="endDelimiter">The shortcode end delimiter.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Shortcodes.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Contents.Sitemap">
            <summary>
            Generates a sitemap from the input documents.
            </summary>
            <remarks>
            This module generates a sitemap from the input documents. The output document contains the sitemap XML as it's content.
            You can supply a location for each item in the sitemap as a <c>string</c> (with an optional function to format it
            into an absolute HTML path) or you can supply a <c>SitemapItem</c> for more control. You can also specify the
            <c>Hostname</c> metadata key (as a <c>string</c>) for each input document, which will be prepended to all locations.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.SitemapItem" usage="Input" />
            <category>Content</category>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Sitemap.#ctor(System.Func{System.String,System.String})">
            <summary>
            Creates a sitemap using the metadata key <c>SitemapItem</c> which should contain either a <c>string</c> that
            contains the location for each input document or a <c>SitemapItem</c> instance with the location
            and other information. If the key <c>SitemapItem</c> is not found or does not contain the correct type of object,
            a link to the document will be used.
            </summary>
            <param name="locationFormatter">A location formatter that will be applied to the location of each input after
            getting the value of the <c>SitemapItem</c> metadata key.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Sitemap.#ctor(System.String,System.Func{System.String,System.String})">
            <summary>
            Creates a sitemap using the specified metadata key which should contain either a <c>string</c> that
            contains the location for each input document or a <c>SitemapItem</c> instance with the location
            and other information. If the metadata key is not found or does not contain the correct type of object,
            a link to the document will be used.
            </summary>
            <param name="sitemapItemOrLocationMetadataKey">A metadata key that contains either a <c>SitemapItem</c> or
            a <c>string</c> location for each input document.</param>
            <param name="locationFormatter">A location formatter that will be applied to the location of each input after
            getting the value of the specified metadata key.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Sitemap.#ctor(Wyam.Common.Configuration.DocumentConfig,System.Func{System.String,System.String})">
            <summary>
            Creates a sitemap using the specified delegate which should return either a <c>string</c> that
            contains the location for each input document or a <c>SitemapItem</c> instance with the location
            and other information. If the delegate returns <c>null</c> or does not return the correct type of object,
            a link to the document will be used.
            </summary>
            <param name="sitemapItemOrLocation">A delegate that either returns a <c>SitemapItem</c> instance or a <c>string</c>
            with the desired item location. If the delegate returns <c>null</c>, the input document is not added to the sitemap.</param>
            <param name="locationFormatter">A location formatter that will be applied to the location of each input after
            getting the value of the specified metadata key.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Contents.Sitemap.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Branch">
            <summary>
            Evaluates the specified modules with each input document as the initial
            document and then outputs the original input documents without modification.
            </summary>
            <remarks>
            This allows a sequence of modules to execute without impacting the "main" module sequence.
            In other words, Branch executes it's child modules as if there were no Branch module
            in the sequence, but then when it's child modules are done, the main sequence of
            modules is executed as if there were no Branch.
            </remarks>
            <example>
            Assume you have a module, AddOne, that just adds 1 to whatever numeric value is in
            the content of the input document(s). The input and output content of the
            following pipeline should demonstrate what Branch does:
            <code>
                                // Input Content      // Output Content
            Pipelines.Add(
                AddOne(),       // [Empty]            // 0
                AddOne(),       // 0                  // 1
                AddOne(),       // 1                  // 2
                Branch(
                    AddOne(),   // 2                  // 3
                    AddOne()    // 3                  // 4
                ),
                AddOne(),       // 2                  // 3
                AddOne()        // 3                  // 4
            );
            </code>
            You can see that the input content to the AddOne modules after the Branch is the
            same as the input content to the AddOne modules inside the branch. The result of
            the modules in the Branch had no impact on those modules that run after the Branch.
            This is true for both content and metadata. If any modules inside the Branch created
            or changed metadata, it would be forgotten once the Branch was done.
            </example>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Branch.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Evaluates the specified modules with each input document as the initial
            document and then outputs the original input documents without modification.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Branch.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Evaluates the specified modules with each input document as the initial
            document and then outputs the original input documents without modification.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Branch.Where(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Limits the documents passed to the child modules to those that satisfy the
            supplied predicate. All original input documents are output without
            modification regardless of whether they satisfy the predicate.
            </summary>
            <param name="predicate">A delegate that should return a <c>bool</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Branch.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Combine">
            <summary>
            Combines all of the input documents into a single output document.
            </summary>
            <remarks>
            The first input document serves as the basis for the combine operation. The content of every
            following input document is appended to the existing combined content, and the metadata of
            every following document replaces that of the previous documents (any metadata for which
            keys don't exist in the following documents is retained). A single output document with
            the combined content and metadata is output.
            </remarks>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Combine.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Concat">
            <summary>
            Executes modules and concatenates their output with the input documents.
            </summary>
            <remarks>
            The specified modules are executed with an empty initial document and then
            outputs the original input documents without modification concatenated with the
            results from the specified module sequence.
            </remarks>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Concat.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Executes the specified modules with an empty initial input document.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Concat.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Executes the specified modules with an empty initial input document.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Concat.Where(System.Func{Wyam.Common.Execution.IExecutionContext,Wyam.Common.Documents.IDocument,System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},System.Boolean})">
            <summary>
            Specifies a predicate to use when determining which documents to concatenate with the original list.
            </summary>
            <param name="predicate">The predicate to evaluate.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Concat.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.ConcatBranch">
            <summary>
            Executes a sequence of modules against the input documents and concatenates their results and the original input.
            This is similar to <see cref="T:Wyam.Core.Modules.Control.Branch"/> except that the results of the specified modules are concatenated with the
            original input documents instead of being forgotten.
            </summary>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.ConcatBranch.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Evaluates the specified modules with each input document as the initial
            document and then outputs the original input documents without modification concatenated with the result documents
            from the specified modules.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.ConcatBranch.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Evaluates the specified modules with each input document as the initial
            document and then outputs the original input documents without modification concatenated with the result documents
            from the specified modules.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.ConcatBranch.Where(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Limits the documents passed to the child modules to those that satisfy the
            supplied predicate. All original input documents are output without
            modification regardless of whether they satisfy the predicate.
            </summary>
            <param name="predicate">A delegate that should return a <c>bool</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.ConcatBranch.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Documents">
            <summary>
            Inserts documents into the current pipeline.
            </summary>
            <remarks>
            Documents can be inserted either by replacing pipeline documents with previously
            processed ones or by creating new ones. If getting previously processed documents from another pipeline,
            this module copies the documents and places them into the current pipeline. Note that because this module
            does not remove the documents from their original pipeline it's likely you will end up with documents that
            have the same content and metadata in two different pipelines. This module does not include the input
            documents as part of it's output. If you want to concatenate the result of this module with the input
            documents, wrap it with the <see cref="T:Wyam.Core.Modules.Control.Concat"/> module.
            </remarks>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.#ctor">
            <summary>
            This outputs all existing documents from all pipelines (except the current one).
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.#ctor(System.String)">
            <summary>
            This outputs the documents from the specified pipeline.
            </summary>
            <param name="pipeline">The pipeline to output documents from.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.#ctor(Wyam.Common.Configuration.ContextConfig)">
            <summary>
            This will get documents based on the context so you can perform custom document
            fetching behavior. The delegate will only be called once,
            regardless of the number of input documents. The return value
            is expected to be a <c>IEnumerable&lt;IDocument&gt;</c>.
            </summary>
            <param name="documents">A delegate that should return
            a <c>IEnumerable&lt;IDocument&gt;</c> containing the documents to output.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            This will get documents based on each input document. The output will be the
            aggregate of all returned documents for each input document. The return value
            is expected to be a <c>IEnumerable&lt;IDocument&gt;</c>.
            </summary>
            <param name="documents">A delegate that should return
            a <c>IEnumerable&lt;IDocument&gt;</c> containing the documents to
            output for each input document.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.#ctor(System.Int32)">
            <summary>
            Generates a specified number of new empty documents.
            </summary>
            <param name="count">The number of new documents to output.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.#ctor(System.String[])">
            <summary>
            Generates new documents with the specified content.
            </summary>
            <param name="content">The content for each output document.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}}[])">
            <summary>
            Generates new documents with the specified metadata.
            </summary>
            <param name="metadata">The metadata for each output document.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.#ctor(System.Tuple{System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}}}[])">
            <summary>
            Generates new documents with the specified content and metadata.
            </summary>
            <param name="contentAndMetadata">The content and metadata for each output document.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.Where(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Only documents that satisfy the predicate will be output.
            </summary>
            <param name="predicate">A delegate that should return a <c>bool</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.FromPipelines(System.String[])">
            <summary>
            Gets documents from additional pipeline(s). The final sequence of documents will
            be in the order they appear from all specified pipelines. If the empty constructor
            is used that outputs documents from all pipelines, this will override that behavior
            and only output the specified pipelines. Likewise, if another constructor was used
            that relies on a <see cref="T:Wyam.Common.Configuration.ContextConfig"/> or <see cref="T:Wyam.Common.Configuration.DocumentConfig"/> then
            using this method will throw <see cref="T:System.InvalidOperationException"/>.
            </summary>
            <param name="pipelines">The additional pipelines to get documents from.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Documents.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.ForEach">
            <summary>
            Executes the input documents one at a time against the specified child modules.
            </summary>
            <remarks>
            Normally, documents are executed in a breadth-first traversal where all documents
            are executed against a module before continuing with the next module. This module
            allows you to conduct a depth-first traversal instead by executing each document
            one at a time against the child modules before continuing with the next document.
            It can be especially helpful when trying to control memory usage for large
            documents such as images because it lets you move the documents through the
            pipeline one at a time. The aggregate outputs from each sequence of child modules
            executed against each document will be output.
            </remarks>
            <example>
            <code>
            Pipelines.Add("ImageProcessing",
               // ReadFiles will create N new documents with a Stream
                // (but nothing will be read into memory yet)
                ReadFiles(@"images\*"),
                // Each document will be individually sent through the
                // sequence of ForEach child pipelines
                ForEach(
                    // This will load the *current* document into memory
                    // and perform image manipulations on it
                    ImageProcessor()
                        //...
                        ,
                    // and this will save the stream to disk, replacing it with
                    // a file stream, thus freeing up memory for the next file
                    WriteFiles()
                )
            );
            </code>
            </example>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.ForEach.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Specifies the modules to execute against the input document one at a time.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.ForEach.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Specifies the modules to execute against the input document one at a time.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.ForEach.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.FrontMatter">
            <summary>
            Extracts the first part of content for each document and sends it to a child module for processing.
            </summary>
            <remarks>
            This module is typically used in conjunction with the Yaml module to enable putting YAML front
            matter in a file. First, the content of each input document is scanned for a line that consists
            entirely of the delimiter character or (- by default) or the delimiter string. Once found, the
            content before the delimiter is passed to the specified child modules. Any metadata from the child
            module output document(s) is added to the input document. Note that if the child modules result
            in more than one output document, multiple clones of the input document will be made for each one.
            The output document content is set to the original content without the front matter.
            </remarks>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.FrontMatter.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Uses the default delimiter character and passes any front matter to the specified child modules for processing.
            </summary>
            <param name="modules">The modules to execute against the front matter.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.FrontMatter.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Uses the default delimiter character and passes any front matter to the specified child modules for processing.
            </summary>
            <param name="modules">The modules to execute against the front matter.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.FrontMatter.#ctor(System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Uses the specified delimiter string and passes any front matter to the specified child modules for processing.
            </summary>
            <param name="delimiter">The delimiter to use.</param>
            <param name="modules">The modules to execute against the front matter.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.FrontMatter.#ctor(System.String,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Uses the specified delimiter string and passes any front matter to the specified child modules for processing.
            </summary>
            <param name="delimiter">The delimiter to use.</param>
            <param name="modules">The modules to execute against the front matter.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.FrontMatter.#ctor(System.Char,Wyam.Common.Modules.IModule[])">
            <summary>
            Uses the specified delimiter character and passes any front matter to the specified child modules for processing.
            </summary>
            <param name="delimiter">The delimiter to use.</param>
            <param name="modules">The modules to execute against the front matter.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.FrontMatter.#ctor(System.Char,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Uses the specified delimiter character and passes any front matter to the specified child modules for processing.
            </summary>
            <param name="delimiter">The delimiter to use.</param>
            <param name="modules">The modules to execute against the front matter.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.FrontMatter.IgnoreDelimiterOnFirstLine(System.Boolean)">
            <summary>
            Ignores the delimiter if it appears on the first line. This is useful when processing Jekyll style front matter that
            has the delimiter both above and below the front matter content. The default behavior is <c>true</c>.
            </summary>
            <param name="ignore">If set to <c>true</c>, ignore the delimiter if it appears on the first line.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.FrontMatter.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.GroupBy">
            <summary>
            Splits a sequence of documents into groups based on a specified function or metadata key.
            </summary>
            <remarks>
            This module forms groups from the output documents of the specified modules.
            Each input document is cloned for each group and metadata related
            to the groups, including the sequence of documents for each group,
            is added to each clone. For example, if you have 2 input documents
            and the result of grouping is 3 groups, this module will output 6 documents.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.GroupDocuments" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.GroupKey" usage="Output" />
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupBy.#ctor(Wyam.Common.Configuration.DocumentConfig,Wyam.Common.Modules.IModule[])">
            <summary>
            Partitions the result of the specified modules into groups with matching keys
            based on the key delegate.
            The input documents to GroupBy are used as
            the initial input documents to the specified modules.
            </summary>
            <param name="key">A delegate that returns the group key.</param>
            <param name="modules">Modules to execute on the input documents prior to grouping.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupBy.#ctor(Wyam.Common.Configuration.DocumentConfig,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Partitions the result of the specified modules into groups with matching keys
            based on the key delegate.
            The input documents to GroupBy are used as
            the initial input documents to the specified modules.
            </summary>
            <param name="key">A delegate that returns the group key.</param>
            <param name="modules">Modules to execute on the input documents prior to grouping.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupBy.#ctor(System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Partitions the result of the specified modules into groups with matching keys
            based on the value at the specified metadata key.
            If a document to group does not contain the specified metadata key, it is not included in any output groups.
            The input documents to GroupBy are used as
            the initial input documents to the specified modules.
            </summary>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="modules">Modules to execute on the input documents prior to grouping.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupBy.#ctor(System.String,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Partitions the result of the specified modules into groups with matching keys
            based on the value at the specified metadata key.
            If a document to group does not contain the specified metadata key, it is not included in any output groups.
            The input documents to GroupBy are used as
            the initial input documents to the specified modules.
            </summary>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="modules">Modules to execute on the input documents prior to grouping.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupBy.Where(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Limits the documents to be grouped to those that satisfy the supplied predicate.
            </summary>
            <param name="predicate">A delegate that should return a <c>bool</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupBy.WithComparer(System.Collections.Generic.IEqualityComparer{System.Object})">
            <summary>
            Specifies an equality comparer to use for the grouping.
            </summary>
            <param name="comparer">The equality comparer to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupBy.WithComparer``1(System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Specifies a typed equality comparer to use for the grouping. A conversion to the
            comparer type will be attempted for all metadata values. If the conversion fails,
            the value will not be considered equal. Note that this will also have the effect
            of treating different convertible types as being of the same type. For example,
            if you have two group keys, 1 and "1" (in that order), and use a string-based comparison, you will
            only end up with a single group for those documents with a group key of 1 (since the <c>int</c> key came first).
            </summary>
            <param name="comparer">The typed equality comparer to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupBy.WithEmptyOutputIfNoGroups(System.Boolean)">
            <summary>
            Specifies that no documents should be output if there are no groups. This is in contrast to the
            default behavior of outputting the unmodified input documents if no groups were found.
            </summary>
            <param name="emptyOutput"><c>true</c> to not output documents when no groups are found.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupBy.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.GroupByMany">
            <summary>
            Splits a sequence of documents into groups based on a specified function or metadata key
            that returns or contains a sequence of group keys.
            </summary>
            <remarks>
            This module forms groups from the output documents of the specified modules.
            If the function or metadata key returns or contains an enumerable, each item in the enumerable
            will become one of the grouping keys. If a document contains multiple group keys, it will
            be included in multiple groups. A good example is a tag engine where each document can contain
            any number of tags and you want to make groups for each tag including all the documents with that tag.
            Each input document is cloned for each group and metadata related
            to the groups, including the sequence of documents for each group,
            is added to each clone. For example, if you have 2 input documents
            and the result of grouping is 3 groups, this module will output 6 documents.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.GroupDocuments" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.GroupKey" usage="Output" />
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupByMany.#ctor(Wyam.Common.Configuration.DocumentConfig,Wyam.Common.Modules.IModule[])">
            <summary>
            Partitions the result of the specified modules into groups with matching keys
            based on the key delegate.
            The input documents to GroupBy are used as
            the initial input documents to the specified modules.
            </summary>
            <param name="key">A delegate that returns the group keys.</param>
            <param name="modules">Modules to execute on the input documents prior to grouping.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupByMany.#ctor(Wyam.Common.Configuration.DocumentConfig,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Partitions the result of the specified modules into groups with matching keys
            based on the key delegate.
            The input documents to GroupBy are used as
            the initial input documents to the specified modules.
            </summary>
            <param name="key">A delegate that returns the group keys.</param>
            <param name="modules">Modules to execute on the input documents prior to grouping.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupByMany.#ctor(System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Partitions the result of the specified modules into groups with matching keys
            based on the value at the specified metadata key.
            If a document to group does not contain the specified metadata key, it is not included in any output groups.
            The input documents to GroupBy are used as
            the initial input documents to the specified modules.
            </summary>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="modules">Modules to execute on the input documents prior to grouping.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupByMany.#ctor(System.String,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Partitions the result of the specified modules into groups with matching keys
            based on the value at the specified metadata key.
            If a document to group does not contain the specified metadata key, it is not included in any output groups.
            The input documents to GroupBy are used as
            the initial input documents to the specified modules.
            </summary>
            <param name="keyMetadataKey">The key metadata key.</param>
            <param name="modules">Modules to execute on the input documents prior to grouping.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupByMany.Where(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Limits the documents to be grouped to those that satisfy the supplied predicate.
            </summary>
            <param name="predicate">A delegate that should return a <c>bool</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupByMany.WithComparer(System.Collections.Generic.IEqualityComparer{System.Object})">
            <summary>
            Specifies an equality comparer to use for the grouping.
            </summary>
            <param name="comparer">The equality comparer to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupByMany.WithComparer``1(System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Specifies a typed equality comparer to use for the grouping. A conversion to the
            comparer type will be attempted for all metadata values. If the conversion fails,
            the value will not be considered equal. Note that this will also have the effect
            of treating different convertible types as being of the same type. For example,
            if you have two group keys, 1 and "1" (in that order), and use a string-based comparison, you will
            only end up with a single group for those documents with a group key of 1 (since the <c>int</c> key came first).
            </summary>
            <param name="comparer">The typed equality comparer to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupByMany.WithEmptyOutputIfNoGroups(System.Boolean)">
            <summary>
            Specifies that no documents should be output if there are no groups. This is in contrast to the
            default behavior of outputting the unmodified input documents if no groups were found.
            </summary>
            <param name="emptyOutput"><c>true</c> to not output documents when no groups are found.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.GroupByMany.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.If">
            <summary>
            Evaluates a series of child modules for each input document if a specified condition is met.
            </summary>
            <remarks>
            Any result documents from the child modules will be returned as the result of the
            this module. Any input documents that don't match a predicate will be returned as
            outputs without modification.
            </remarks>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.#ctor(Wyam.Common.Configuration.DocumentConfig,Wyam.Common.Modules.IModule[])">
            <summary>
            Specifies a predicate and a series of child modules to be evaluated if the predicate returns <c>true</c>.
            The predicate will be evaluated against every input document individually.
            </summary>
            <param name="predicate">A predicate delegate that should return a <c>bool</c>.</param>
            <param name="modules">The modules to execute on documents where the predicate is <c>true</c>.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.#ctor(Wyam.Common.Configuration.ContextConfig,Wyam.Common.Modules.IModule[])">
            <summary>
            Specifies a predicate and a series of child modules to be evaluated if the predicate returns <c>true</c>.
            The predicate will be evaluated once for all input documents.
            </summary>
            <param name="predicate">A predicate delegate that should return a <c>bool</c>.</param>
            <param name="modules">The modules to execute on documents if the predicate is <c>true</c>.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.ElseIf(Wyam.Common.Configuration.DocumentConfig,Wyam.Common.Modules.IModule[])">
            <summary>
            Specifies an alternate condition to be tested on documents that did not satisfy
            previous conditions. You can chain together as many <c>ElseIf</c> calls as needed.
            The predicate will be evaluated against every input document individually.
            </summary>
            <param name="predicate">A predicate delegate that should return a <c>bool</c>.</param>
            <param name="modules">The modules to execute on documents where the predicate is <c>true</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.ElseIf(Wyam.Common.Configuration.ContextConfig,Wyam.Common.Modules.IModule[])">
            <summary>
            Specifies an alternate condition to be tested on documents that did not satisfy
            previous conditions. You can chain together as many <c>ElseIf</c> calls as needed.
            The predicate will be evaluated once for all input documents.
            </summary>
            <param name="predicate">A predicate delegate that should return a <c>bool</c>.</param>
            <param name="modules">The modules to execute on documents if the predicate is <c>true</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.Else(Wyam.Common.Modules.IModule[])">
            <summary>
            This should be at the end of your fluent method chain and will evaluate the
            specified child modules on all documents that did not satisfy previous predicates.
            The predicate will be evaluated against every input document individually.
            </summary>
            <param name="modules">The modules to execute on documents where no previous predicate was <c>true</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.WithoutUnmatchedDocuments(System.Boolean)">
            <summary>
            The default behavior of this module is to "fall through" any documents that
            didn't match one of the conditions and add it to the result set. This method
            allows you to change that behavior and prevent unmatched documents from being
            added to the result set.
            </summary>
            <param name="withoutUnmatchedDocuments">Set to <c>true</c> to prevent unmatched documents from being added to the resut set.</param>
            <returns>The current module.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Modules.Control.If.Count">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Modules.Control.If.IsReadOnly">
            <inheritdoc />
        </member>
        <member name="P:Wyam.Core.Modules.Control.If.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.IndexOf(Wyam.Core.Modules.Control.IfCondition)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.Insert(System.Int32,Wyam.Core.Modules.Control.IfCondition)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.RemoveAt(System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.Add(Wyam.Core.Modules.Control.IfCondition)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.Clear">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.Contains(Wyam.Core.Modules.Control.IfCondition)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.CopyTo(Wyam.Core.Modules.Control.IfCondition[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Control.If.Remove(Wyam.Core.Modules.Control.IfCondition)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Merge">
            <summary>
            Replaces the content and merges metadata of each input document with the results of specified modules.
            </summary>
            <remarks>
            Replaces the content and merges the metadata of each input document with the results of the specified modules
            executed against an empty initial document. If more than one output document is generated by the specified modules,
            each input document will be merged with each result document.
            </remarks>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Merge.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            The specified modules are executed against an empty initial document and the results
            are applied to every input document (possibly creating more than one output
            document for each input document).
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Merge.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            The specified modules are executed against an empty initial document and the results
            are applied to every input document (possibly creating more than one output
            document for each input document).
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Merge.ForEachDocument">
            <summary>
            Specifies that the whole sequence of modules should be executed for every input document
            (as opposed to the default behavior of the sequence of modules only being executed once
            with an empty initial document). This method has no effect if no modules are specified.
            </summary>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Merge.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.OrderBy">
            <summary>
            Orders the input documents based on the specified key function.
            </summary>
            <remarks>
            The ordered documents are output as the result of this module.
            </remarks>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.OrderBy.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Orders the input documents using the specified delegate to get the ordering key.
            </summary>
            <param name="key">A delegate that should return the key to use for ordering.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.OrderBy.ThenBy(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Orders the input documents using the specified delegate to get a secondary ordering key.
            You can chain as many ThenBy calls together as needed.
            </summary>
            <param name="key">A delegate that should return the key to use for ordering.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.OrderBy.Descending(System.Boolean)">
            <summary>
            Specifies whether the documents should be output in descending order (the default is ascending order).
            If you use this method after called ThenBy, the descending ordering will apply to the secondary sort.
            </summary>
            <param name="descending">If set to <c>true</c>, the documents are output in descending order.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.OrderBy.WithComparer(System.Collections.Generic.IComparer{System.Object})">
            <summary>
            Specifies a comparer to use for the ordering.
            </summary>
            <param name="comparer">The comparer to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.OrderBy.WithComparer``1(System.Collections.Generic.IComparer{``0})">
            <summary>
            Specifies a typed comparer to use for the ordering. A conversion to the
            comparer type will be attempted for all metadata values. If the conversion fails,
            the values will be considered equivalent. Note that this will also have the effect
            of treating different convertible types as being of the same type. For example,
            if you have two keys, 1 and "1", and use a string-based comparison, the
            documents will compare as equal.
            </summary>
            <param name="comparer">The typed comparer to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.OrderBy.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Paginate">
             <summary>
             Splits a sequence of documents into multiple pages.
             </summary>
             <remarks>
             This module forms pages from the output documents of the specified modules.
             Each input document is cloned for each page and metadata related
             to the pages, including the sequence of documents for each page,
             is added to each clone. For example, if you have 2 input documents
             and the result of paging is 3 pages, this module will output 6 documents.
             Note that if there are no documents to paginate, this module will still
             output an empty page without any documents inside the page.
             </remarks>
             <example>
             If your input document is a Razor template for a blog archive, you can use
             Paginate to get pages of 10 blog posts each. If you have 50 blog posts, the
             result of the Paginate module will be 5 copies of your input archive template,
             one for each page. Your configuration file might look something like this:
             <code>
             Pipelines.Add("Posts",
                 ReadFiles("*.md"),
                 Markdown(),
                 WriteFiles("html")
             );
            
             Pipelines.Add("Archive",
                 ReadFiles("archive.cshtml"),
                 Paginate(10,
                     Documents("Posts")
                 ),
                 Razor(),
                 WriteFiles(string.Format("archive-{0}.html", @doc["CurrentPage"]))
             );
             </code>
             </example>
             <metadata cref="F:Wyam.Common.Meta.Keys.PageDocuments" usage="Output" />
             <metadata cref="F:Wyam.Common.Meta.Keys.CurrentPage" usage="Output" />
             <metadata cref="F:Wyam.Common.Meta.Keys.TotalPages" usage="Output" />
             <metadata cref="F:Wyam.Common.Meta.Keys.TotalItems" usage="Output" />
             <metadata cref="F:Wyam.Common.Meta.Keys.HasNextPage" usage="Output" />
             <metadata cref="F:Wyam.Common.Meta.Keys.HasPreviousPage" usage="Output" />
             <metadata cref="F:Wyam.Common.Meta.Keys.NextPage" usage="Output" />
             <metadata cref="F:Wyam.Common.Meta.Keys.PreviousPage" usage="Output" />
             <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Paginate.#ctor(System.Int32,Wyam.Common.Modules.IModule[])">
            <summary>
            Partitions the result of the specified modules into the specified number of pages. The
            input documents to Paginate are used as the initial input documents to the specified modules.
            </summary>
            <param name="pageSize">The number of documents on each page.</param>
            <param name="modules">The modules to execute to get the documents to page.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Paginate.#ctor(System.Int32,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Partitions the result of the specified modules into the specified number of pages. The
            input documents to Paginate are used as the initial input documents to the specified modules.
            </summary>
            <param name="pageSize">The number of documents on each page.</param>
            <param name="modules">The modules to execute to get the documents to page.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Paginate.Where(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Limits the documents to be paged to those that satisfy the supplied predicate.
            </summary>
            <param name="predicate">A delegate that should return a <c>bool</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Paginate.TakePages(System.Int32)">
            <summary>
            Only outputs a specific number of pages.
            </summary>
            <param name="count">The number of pages to output.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Paginate.SkipPages(System.Int32)">
            <summary>
            Skips a specified number of pages before outputting pages.
            </summary>
            <param name="count">The number of pages to skip.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Paginate.WithPageMetadata(System.String,Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Adds the specified metadata to each page index document. This must be performed
            within the paginate module. If you attempt to process the page index documents
            from the paginate module after execution, it will "disconnect" metadata for
            those documents like <see cref="F:Wyam.Common.Meta.Keys.NextPage"/> since you're effectivly
            creating new documents and the ones those keys refer to will be outdated.
            </summary>
            <param name="key">The key of the metadata to add.</param>
            <param name="metadata">A delegate with the value for the metadata.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Paginate.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Sidecar">
            <summary>
            Extracts the content of a Sidecar file for each document and sends it to a child module for processing.
            </summary>
            <remarks>
            This module is typically used in conjunction with the Yaml module to enable putting YAML in a Sidecar file.
            First, an attempt is made to find the specified sidecar file for each input document. Once found, the
            content in this file is passed to the specified child module(s). Any metadata from the child
            module output document(s) is added to the input document. Note that if the child module(s) result
            in more than one output document, multiple clones of the input document will be made for each one.
            The output document content is set to the original input document content.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFilePath" usage="Input">
            Used as the default location at which to search for sidecar files for a given document.
            </metadata>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Sidecar.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Searches for sidecar files at the same path as the input document SourceFilePath with the additional extension .meta.
            If a sidecar file is found, it's content is passed to the specified child modules for processing.
            </summary>
            <param name="modules">The modules to execute against the sidecar file.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Sidecar.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Searches for sidecar files at the same path as the input document SourceFilePath with the additional extension .meta.
            If a sidecar file is found, it's content is passed to the specified child modules for processing.
            </summary>
            <param name="modules">The modules to execute against the sidecar file.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Sidecar.#ctor(System.String,Wyam.Common.Modules.IModule[])">
            <summary>
            Searches for sidecar files at the same path as the input document SourceFilePath with the specified additional extension.
            If a sidecar file is found, it's content is passed to the specified child modules for processing.
            </summary>
            <param name="extension">The extension to search.</param>
            <param name="modules">The modules to execute against the sidecar file.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Sidecar.#ctor(System.String,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Searches for sidecar files at the same path as the input document SourceFilePath with the specified additional extension.
            If a sidecar file is found, it's content is passed to the specified child modules for processing.
            </summary>
            <param name="extension">The extension to search.</param>
            <param name="modules">The modules to execute against the sidecar file.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Sidecar.#ctor(Wyam.Common.Configuration.DocumentConfig,Wyam.Common.Modules.IModule[])">
            <summary>
            Uses a delegate to describe where to find the sidecar file for each input document.
            If a sidecar file is found, it's content is passed to the specified child modules for processing.
            </summary>
            <param name="sidecarPath">A delegate that returns a <see cref="T:Wyam.Common.IO.FilePath"/> with the desired sidecar path.</param>
            <param name="modules">The modules to execute against the sidecar file.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Sidecar.#ctor(Wyam.Common.Configuration.DocumentConfig,System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Uses a delegate to describe where to find the sidecar file for each input document.
            If a sidecar file is found, it's content is passed to the specified child modules for processing.
            </summary>
            <param name="sidecarPath">A delegate that returns a <see cref="T:Wyam.Common.IO.FilePath"/> with the desired sidecar path.</param>
            <param name="modules">The modules to execute against the sidecar file.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Sidecar.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Sort">
            <summary>
            Sorts the input documents based on the specified comparison delegate.
            </summary>
            <remarks>
            The sorted documents are output as the result of this module. This is similar
            to the <see cref="T:Wyam.Core.Modules.Control.OrderBy"/> module but gives greater control over the sorting
            process.
            </remarks>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Sort.#ctor(System.Comparison{Wyam.Common.Documents.IDocument})">
            <summary>
            Creates a sort module.
            </summary>
            <param name="sort">The sorting delegate to use.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Sort.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Switch">
            <summary>
            Executes sequences of modules depending on whether the input document contains a specified value.
            </summary>
            <remarks>
            When creating a Switch module you specify a delegate that will get an object for each document. Cases are then
            defined via fluent methods that compare the returned object for each document against a supplied object (or array).
            If the defined object or any of the objects in the array for the case equal the one for the document, the modules
            in the case are executed. The output of the module is the aggregate output of executing the specified modules against
            documents matching each case. If a document document match a case, it is output against the default case (if defined)
            or output without modification (if no default is defined).
            </remarks>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Switch.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Defines the delegate that will be invoked against each input document to get the case comparison value.
            </summary>
            <param name="value">A delegate that returns an object to compare cases against.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Switch.Case(System.Object,Wyam.Common.Modules.IModule[])">
            <summary>
            Defines a case.
            </summary>
            <param name="value">The value to compare to the one returned by the document delegate. Must be a primitive object or an array of primitive objects.</param>
            <param name="modules">The modules to execute if the case object (or any objects in the array) matches the document object.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Switch.Default(Wyam.Common.Modules.IModule[])">
            <summary>
            Defines modules to execute against documents that don't match a case.
            </summary>
            <param name="modules">The modules to execute against documents that don't match a case.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Switch.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Take">
            <summary>
            Takes the first X documents from the current pipeline and discards the rest.
            </summary>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Take.#ctor(System.Int32)">
            <summary>
            Takes the first X documents from the current pipeline and discards the rest.
            </summary>
            <param name="x">An integer representing the number of documents to preserve from the current pipeline.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Take.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Control.Where">
            <summary>
            Filters the current sequence of modules using a predicate.
            </summary>
            <category>Control</category>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Where.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Specifies the predicate to use for filtering documents.
            Only input documents for which the predicate returns <c>true</c> will be output.
            </summary>
            <param name="predicate">A predicate delegate that should return a <c>bool</c>.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Control.Where.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Extensibility.Execute">
            <summary>
            Executes custom code that returns documents, modules, or new content.
            </summary>
            <remarks>
            This module is very useful for customizing pipeline execution without having to write an entire module.
            Returning modules from the delegate is also useful for customizing existing modules based on the
            current set of documents. For example, you can use this module to execute the <see cref="T:Wyam.Core.Modules.Contents.Replace"/> module
            with customized search strings based on the results of other pipelines.
            </remarks>
            <category>Extensibility</category>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Execute.#ctor(Wyam.Common.Configuration.DocumentConfig,System.Boolean)">
            <summary>
            Specifies a delegate that should be invoked once for each input document. If the delegate
            returns a <c>IEnumerable&lt;IDocument&gt;</c> or <see cref="T:Wyam.Common.Documents.IDocument"/>, the document(s) will be the
            output(s) of this module. If the delegate returns a <c>IEnumerable&lt;IModule&gt;</c> or
            <see cref="T:Wyam.Common.Modules.IModule"/>, the module(s) will be executed with each input document as their input
            and the results will be the output of this module. If the delegate returns null,
            this module will just output the input document. If anything else is returned, the input
            document will be output with the string value of the delegate result as it's content.
            </summary>
            <param name="execute">A delegate to invoke that should return a <c>IEnumerable&lt;IDocument&gt;</c>,
            <see cref="T:Wyam.Common.Documents.IDocument"/>, <c>IEnumerable&lt;IModule&gt;</c>, <see cref="T:Wyam.Common.Modules.IModule"/>, object, or null.</param>
            <param name="parallel">The delegate is usually evaluated and each input document is processed in parallel.
            Setting this to <c>false</c> runs evaluates and processes each document in their original input order.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Execute.#ctor(System.Action{Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext},System.Boolean)">
            <summary>
            Specifies a delegate that should be invoked once for each input document.
            The output from this module will be the input documents.
            </summary>
            <param name="execute">An action to execute on each input document.</param>
            <param name="parallel">The delegate is usually evaluated and each input document is processed in parallel.
            Setting this to <c>false</c> runs evaluates and processes each document in their original input order.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Execute.#ctor(Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Specifies a delegate that should be invoked once for all input documents. If the delegate
            returns a <c>IEnumerable&lt;IDocument&gt;</c> or <see cref="T:Wyam.Common.Documents.IDocument"/>, the document(s) will be the
            output(s) of this module. If the delegate returns a <c>IEnumerable&lt;IModule&gt;</c> or
            <see cref="T:Wyam.Common.Modules.IModule"/>, the module(s) will be executed with the input documents as their input
            and the results will be the output of this module. If the delegate returns null,
            this module will just output the input documents. If anything else is returned, an exception will be thrown.
            </summary>
            <param name="execute">A delegate to invoke that should return a <c>IEnumerable&lt;IDocument&gt;</c>,
            <see cref="T:Wyam.Common.Documents.IDocument"/>, <c>IEnumerable&lt;IModule&gt;</c>, <see cref="T:Wyam.Common.Modules.IModule"/>, or null.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Execute.#ctor(System.Action{Wyam.Common.Execution.IExecutionContext})">
            <summary>
            Specifies a delegate that should be invoked once for all input documents.
            The output from this module will be the input documents.
            </summary>
            <param name="execute">An action to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Execute.#ctor(System.Func{System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext,System.Object,System.Object})">
            <summary>
            Specifies a delegate that should be invoked for all input documents. If the delegate
            returns a <c>IEnumerable&lt;IDocument&gt;</c> or <see cref="T:Wyam.Common.Documents.IDocument"/>, the document(s) will be the
            output(s) of this module. If the delegate returns null or anything else, this module will just output the input documents.
            The third parameter of the delegate is primarly to aid overload resolution between this and the other constructors.
            The value <c>null</c> will be passed for now, though it might be used for something else in a future version.
            </summary>
            <param name="execute">A delegate to invoke that should return a <c>IEnumerable&lt;IDocument&gt;</c>, <see cref="T:Wyam.Common.Documents.IDocument"/>, or null.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Execute.Wyam#Common#Modules#IModule#Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Extensibility.ModuleCollection">
             <summary>
             Executes child modules enabling better reuse.
             </summary>
             <remarks>
             All child modules will be executed as if they were inline. This enables you to specify
             a sequence of modules outside of a pipeline and then reuse that sequence of modules
             in multiple pipelines. Note that this module is also handy for wrapping a single module
             that has a complex configuration if you expect to use it in multiple places.
             </remarks>
             <example>
             <code>
             ModuleCollection common = ModuleCollection(ModuleA(), ModuleB(), ModuleC());
            
             Piplines.Add("A",
                 ModuleX(),
                 ModuleY(),
                 common,
                 ModuleZ()
             );
            
             Piplines.Add("B",
                 ModuleX(),
                 common,
                 ModuleZ()
             );
             </code>
             </example>
             <category>Extensibility</category>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.ModuleCollection.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Creates a module collection with the specified child modules.
            Any <c>null</c> items in the sequence of modules will be discarded.
            </summary>
            <param name="modules">The child modules.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.ModuleCollection.#ctor(System.Collections.Generic.IEnumerable{Wyam.Common.Modules.IModule})">
            <summary>
            Creates a module collection with the specified child modules.
            Any <c>null</c> items in the sequence of modules will be discarded.
            </summary>
            <param name="modules">The child modules.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.ModuleCollection.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Extensibility.Trace">
            <summary>
            Outputs trace messages during execution.
            </summary>
            <remarks>
            This module has no effect on documents and the input documents are passed through to output documents.
            </remarks>
            <category>Extensibility</category>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Trace.#ctor(System.Object)">
            <summary>
            Outputs the string value of the specified object to trace.
            </summary>
            <param name="content">The content to trace.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Trace.#ctor(Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Outputs the string value of the returned object to trace. This allows
            you to trace different content depending on the execution context.
            </summary>
            <param name="content">A delegate that returns the content to trace.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Trace.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Outputs the string value of the returned object to trace. This allows
            you to trace different content for each document depending on the input document.
            </summary>
            <param name="content">A delegate that returns the content to trace.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Trace.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            The specified modules are executed against an empty initial document and the
            resulting document content is output to trace.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Trace.EventType(System.Diagnostics.TraceEventType)">
            <summary>
            Sets the event type to trace.
            </summary>
            <param name="traceEventType">The event type to trace.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Extensibility.Trace.Execute(System.Object,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.IO.CopyFiles">
            <summary>
            Copies the content of files from one path on to another path.
            </summary>
            <remarks>
            For each output document, several metadata values are set with information about the file.
            By default, files are copied from the input folder (or a subfolder) to the same relative
            location in the output folder, but this doesn't have to be the case. The output of this module are documents
            with metadata representing the files copied by the module. Note that the input documents are not output by this
            module.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFilePath" usage="Output">The full path (including file name) of the source file.</metadata>
            <metadata cref="F:Wyam.Common.Meta.Keys.DestinationFilePath" usage="Output">The full path (including file name) of the destination file.</metadata>
            <category>Input/Output</category>
        </member>
        <member name="M:Wyam.Core.Modules.IO.CopyFiles.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Copies all files that match the specified globbing patterns and/or absolute paths. This allows you to specify different
            patterns and/or paths depending on the input document.
            When this constructor is used, the module is evaluated once for every input document, which may result in copying the same file
            more than once (and may also result in IO conflicts since copying is typically done in parallel). It is recommended you only
            specify a function-based source path if there will be no overlap between the path returned from each input document.
            </summary>
            <param name="patterns">A delegate that returns one or more globbing patterns and/or absolute paths.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.CopyFiles.#ctor(System.String[])">
            <summary>
            Copies all files that match the specified globbing patterns and/or absolute paths. When this constructor is used, the module is
            evaluated only once against empty input document. This makes it possible to string multiple CopyFiles modules together in one pipeline.
            Keep in mind that the result of the whole pipeline in this case will be documents representing the files copied only by the last CopyFiles
            module in the pipeline (since the output documents of the previous CopyFiles modules will have been consumed by the last one).
            </summary>
            <param name="patterns">The globbing patterns and/or absolute paths to read.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.CopyFiles.Where(System.Func{Wyam.Common.IO.IFile,System.Boolean})">
            <summary>
            Specifies a predicate that must be satisfied for the file to be copied.
            </summary>
            <param name="predicate">A predicate that returns <c>true</c> if the file should be copied.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.CopyFiles.To(System.Func{Wyam.Common.IO.IFile,Wyam.Common.IO.FilePath})">
            <summary>
            Specifies an alternate destination path for each file (by default files are copied to their
            same relative path in the output directory). The output of the function should be the full
            file path (including file name) of the destination file. If the delegate returns
            <c>null</c> for a particular file, that file will not be copied.
            </summary>
            <param name="destinationPath">A delegate that specifies an alternate destination.
            The parameter contains the source <see cref="T:Wyam.Common.IO.IFile"/>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.CopyFiles.To(System.Func{Wyam.Common.IO.IFile,Wyam.Common.IO.IFile,Wyam.Common.IO.FilePath})">
            <summary>
            Specifies an alternate destination path for each file (by default files are copied to their
            same relative path in the output directory). The output of the function should be the full
            file path (including file name) of the destination file. If the delegate returns
            <c>null</c> for a particular file, that file will not be copied. This overload allows you to
            view the <see cref="T:Wyam.Common.IO.IFile"/> where the module would normally have copied the file to and then
            manipulate it (or not) as appropriate.
            </summary>
            <param name="destinationPath">A delegate that specifies an alternate destination.
            The first parameter contains the source <see cref="T:Wyam.Common.IO.IFile"/> and the second contains
            an <see cref="T:Wyam.Common.IO.IFile"/> representing the calculated destination.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.CopyFiles.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.IO.Download">
            <summary>
            Downloads from HTTP and outputs the results as new documents.
            </summary>
            <remarks>
            The original input documents are ignored and are not part of the output
            of this module. If you want to retain the original input documents, consider using the
            <see cref="T:Wyam.Core.Modules.Control.ConcatBranch"/> module.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceUri" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceHeaders" usage="Output" />
            <category>Input/Output</category>
        </member>
        <member name="M:Wyam.Core.Modules.IO.Download.#ctor(System.String[])">
            <summary>
            Downloads the specified URIs with a default request header.
            </summary>
            <param name="uris">The URIs to download.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.Download.#ctor(System.String,Wyam.Core.Modules.IO.RequestHeaders)">
            <summary>
            Downloads the specified URI with the specified request header.
            </summary>
            <param name="uri">The URI to download.</param>
            <param name="headers">The request header to use.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.Download.WithUris(System.String[])">
            <summary>
            Downloads the specified URIs with a default request header.
            </summary>
            <param name="uris">The URIs to download.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.Download.WithUri(System.String,Wyam.Core.Modules.IO.RequestHeaders)">
            <summary>
            Downloads the specified URI with the specified request header.
            </summary>
            <param name="uri">The URI to download.</param>
            <param name="headers">The request header to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.Download.WithRequests(Wyam.Core.Modules.IO.DownloadRequest[])">
            <summary>
            Downloads the specified requests.
            </summary>
            <param name="requests">The requests to download.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.Download.CacheResponses(System.Boolean)">
            <summary>
            Indicates whether the downloaded response should be cached between regenerations.
            </summary>
            <param name="cacheResponses">If set to <c>true</c>, the response is cached (the default is <c>false</c>).</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.Download.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.IO.DownloadRequest">
            <summary>
            A download request for use with the <see cref="T:Wyam.Core.Modules.IO.Download"/> module.
            </summary>
        </member>
        <member name="P:Wyam.Core.Modules.IO.DownloadRequest.Uri">
            <summary>
            The URI to download from.
            </summary>
        </member>
        <member name="P:Wyam.Core.Modules.IO.DownloadRequest.Headers">
            <summary>
            Request headers.
            </summary>
        </member>
        <member name="P:Wyam.Core.Modules.IO.DownloadRequest.QueryString">
            <summary>
            The query string parameters. These will be combined with any that already exist in <see cref="P:Wyam.Core.Modules.IO.DownloadRequest.Uri"/>.
            </summary>
        </member>
        <member name="P:Wyam.Core.Modules.IO.DownloadRequest.Method">
            <summary>
            The method to use.
            </summary>
        </member>
        <member name="P:Wyam.Core.Modules.IO.DownloadRequest.Content">
            <summary>
            The content of the request (has no effect for some methods like GET).
            </summary>
        </member>
        <member name="P:Wyam.Core.Modules.IO.DownloadRequest.Credentials">
            <summary>
            The network credentials to use for the request.
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.IO.DownloadRequest.#ctor(System.String)">
            <summary>
            Creates a new download request.
            </summary>
            <param name="uri">The URI to download from.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.DownloadRequest.#ctor(System.Uri)">
            <summary>
            Creates a new download request.
            </summary>
            <param name="uri">The URI to download from.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.DownloadRequest.WithHeaders(Wyam.Core.Modules.IO.RequestHeaders)">
            <summary>
            Sets the request headers.
            </summary>
            <param name="headers">The request headers to set.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.DownloadRequest.WithQueryString(System.String,System.String)">
            <summary>
            Sets a query string value.
            </summary>
            <param name="name">The name of the query string parameter.</param>
            <param name="value">The value of the query string parameter.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.DownloadRequest.WithMethod(System.Net.Http.HttpMethod)">
            <summary>
            Sets the request method.
            </summary>
            <param name="method">The method to set.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.DownloadRequest.WithContent(System.Net.Http.HttpContent)">
            <summary>
            Sets the content of the request (only applicable to some request methods).
            </summary>
            <param name="content">The content to set.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.DownloadRequest.WithContent(System.String)">
            <summary>
            Sets the string content of the request (only applicable to some request methods).
            </summary>
            <param name="content">The content to set.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.DownloadRequest.WithCredentials(System.Net.NetworkCredential)">
            <summary>
            Sets the credentials to use for the request.
            </summary>
            <param name="credentials">The credentials to use.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.DownloadRequest.WithCredentials(System.String,System.String)">
            <summary>
            Sets the credentials to use for the request.
            </summary>
            <param name="userName">The username to use.</param>
            <param name="password">The password to use.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="T:Wyam.Core.Modules.IO.Include">
            <summary>
            Processes include statements to include files from the file system.
            </summary>
            <remarks>
            <para>
            This module will look for include statements in the content of each document and
            will replace them with the content of the requested file from the file system.
            Include statements take the form <c>^"folder/file.ext"</c>. The given path will be
            converted to a <see cref="T:Wyam.Common.IO.FilePath"/> and can be absolute or relative. If relative,
            it should be relative to the document source. You can escape the include syntax by
            prefixing the <c>^</c> with a forward slash <c>\</c>.
            </para>
            <para>
            Since Wyam version 2.2.0, you can also use <see cref="T:Wyam.Core.Shortcodes.IO.Include"/> shortcode
            </para>
            </remarks>
            <category>Input/Output</category>
        </member>
        <member name="M:Wyam.Core.Modules.IO.Include.WithRecursion(System.Boolean)">
            <summary>
            Specifies whether the include processing should be recursive. If <c>true</c> (which
            is the default), then include statements will also be processed in the content of
            included files recursively.
            </summary>
            <param name="recursion"><c>true</c> if included content should be recursively processed.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.Include.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.IO.ReadApplicationInput">
            <summary>
            Reads text provided to the application on startup.
            </summary>
            <remarks>
            This modules creates a single document from text provided to Wyam on startup. In most cases, this will be text or file contents
            "piped" to the Wyam.exe via the command line from a file or prior chained executable. Also known as "Standard Input" or "STDIN".
            </remarks>
            <example>
            An example of piping the output of a prior executable to Wyam.
            <code>
            AnotherProgram.exe | Wyam.exe
            </code>
            </example>
            <example>
            An example of redirecting the contents of a file to Wyam.
            <code>
            Wyam.exe &lt; my_initial_document.txt
            </code>
            </example>
            <example>
            This would read the application input, and write it to a file called "stdin.html"
            <code>
            Pipelines.Add("StandardInputDoc",
               ReadApplicationInput(),
               Meta("WritePath", "stdin.html"),
               WriteFiles()
            );
            </code>
            </example>
            <category>Input/Output</category>
        </member>
        <member name="M:Wyam.Core.Modules.IO.ReadApplicationInput.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.IO.ReadFiles">
            <summary>
            Reads the content of files from the file system into the content of new documents.
            </summary>
            <remarks>
            For each output document, several metadata values are set with information about the file. This module will
            be executed once and input documents will be ignored if search patterns are specified. Otherwise, if a delegate
            is specified, the module will be executed once per input document and the resulting output documents will be
            aggregated. In either case, the input documents will not be returned as output of this module. If you want to add
            additional files to a current pipeline, you should enclose your ReadFiles modules with <see cref="T:Wyam.Core.Modules.Control.Concat"/>.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFileRoot" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFileBase" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFileExt" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFileName" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFileDir" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFilePath" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFilePathBase" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFilePath" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFilePathBase" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFileDir" usage="Output" />
            <category>Input/Output</category>
        </member>
        <member name="M:Wyam.Core.Modules.IO.ReadFiles.#ctor(Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Reads all files that match the specified globbing patterns and/or absolute paths. This allows you to
            specify different patterns and/or paths depending on the context.
            </summary>
            <param name="patterns">A delegate that returns one or more globbing patterns and/or absolute paths.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.ReadFiles.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Reads all files that match the specified globbing patterns and/or absolute paths. This allows you to
            specify different patterns and/or paths depending on the input.
            </summary>
            <param name="patterns">A delegate that returns one or more globbing patterns and/or absolute paths.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.ReadFiles.#ctor(System.String[])">
            <summary>
            Reads all files that match the specified globbing patterns and/or absolute paths.
            </summary>
            <param name="patterns">The globbing patterns and/or absolute paths to read.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.ReadFiles.Where(System.Func{Wyam.Common.IO.IFile,System.Boolean})">
            <summary>
            Specifies a predicate that must be satisfied for the file to be read.
            </summary>
            <param name="predicate">A predicate that returns <c>true</c> if the file should be read.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.ReadFiles.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.IO.RequestHeaders">
            <summary>
            The request headers to use with the <see cref="T:Wyam.Core.Modules.IO.Download"/> module.
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.IO.RequestHeaders.#ctor">
            <summary>
            Creates a new empty set of request headers.
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.IO.RequestHeaders.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
            <summary>
            Creates the specified request headers.
            </summary>
            <param name="headers">The request headers to create.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.RequestHeaders.Add(System.String,System.String)">
            <summary>
            Adds a new request header.
            </summary>
            <param name="name">The name of the request header to add.</param>
            <param name="value">The value of the request header to add.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.RequestHeaders.Add(System.String,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Adds a new request header with multiple values.
            </summary>
            <param name="name">The name of the request header to add.</param>
            <param name="value">The value of the request header to add.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.RequestHeaders.Remove(System.String)">
            <summary>
            Removes a request header.
            </summary>
            <param name="name">The name of the request header to remove.</param>
            <returns>The current instance.</returns>
        </member>
        <member name="T:Wyam.Core.Modules.IO.UnwrittenFiles">
            <summary>
            Outputs only those documents that have not yet been written to the file system.
            </summary>
            <remarks>
            The constructors and file resolution logic follows the same semantics as <see cref="T:Wyam.Core.Modules.IO.WriteFiles"/>.
            This module is useful for eliminating documents from the pipeline on subsequent runs depending
            on if they've already been written to disk. For example, you might want to put this module
            right after <see cref="T:Wyam.Core.Modules.IO.ReadFiles"/> for a pipeline that does a lot of expensive image processing since
            there's no use in processing images that have already been processed. Note that only the
            file name is checked and that this module cannot determine if the content would have been
            the same had a document not been removed from the pipeline. Also note that <strong>you should only
            use this module if you're sure that no other pipelines rely on the output documents</strong>. Because
            this module removes documents from the pipeline, those documents will never reach the
            end of the pipeline and any other modules or pages that rely on them (for example, an
            image directory) will not be correct.
            </remarks>
            <category>Input/Output</category>
        </member>
        <member name="M:Wyam.Core.Modules.IO.UnwrittenFiles.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Uses a delegate to describe where to write the content of each document.
            The output of the function should be either a full path to the disk
            location (including file name) or a path relative to the output folder.
            </summary>
            <param name="path">A delegate that returns a <c>string</c> with the desired path.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.UnwrittenFiles.#ctor(System.String)">
            <summary>
            Writes the document content to disk with the specified extension with the same
            base file name and relative path as the input file. This requires metadata
            for <c>RelativeFilePath</c> to be set (which is done by default by the <see cref="T:Wyam.Core.Modules.IO.ReadFiles"/> module).
            </summary>
            <param name="extension">The extension to use for writing the file.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.UnwrittenFiles.#ctor">
            <summary>
            Writes the document content to disk with the same file name and relative path
            as the input file. This requires metadata for <c>RelativeFilePath</c> to be set
            (which is done by default by the <see cref="T:Wyam.Core.Modules.IO.ReadFiles"/> module).
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.IO.UnwrittenFiles.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.IO.WriteFiles">
            <summary>
            Writes the content of each input document to the file system.
            </summary>
            <remarks>
            If the metadata keys <c>WriteFileName</c> (which requires <c>RelativeFileDir</c> to be
            set, usually by the ReadFiles module), <c>WriteExtension</c> (which
            requires <c>RelativeFilePath</c> to be set, usually by the <see cref="T:Wyam.Core.Modules.IO.ReadFiles"/> module)
            or <c>WritePath</c> are set on an input document, that value will be used instead
            of what's specified in the module. For example, if you have a bunch
            of Razor .cshtml files that need to be rendered to .html files but one of them
            should be output as a .xml file instead, define the <c>WriteExtension</c> metadata value
            in the front matter of the page.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFilePath" usage="Input">
            Used in combination with <see cref="F:Wyam.Common.Meta.Keys.WriteExtension"/> to determine an
            alternate location to write the file.
            </metadata>
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFileDir" usage="Input">
            Used in combination with <see cref="F:Wyam.Common.Meta.Keys.WriteFileName"/> to determine an
            alternate location to write the file.
            </metadata>
            <metadata cref="F:Wyam.Common.Meta.Keys.WriteExtension" usage="Input" />
            <metadata cref="F:Wyam.Common.Meta.Keys.WriteFileName" usage="Input" />
            <metadata cref="F:Wyam.Common.Meta.Keys.WritePath" usage="Input" />
            <metadata cref="F:Wyam.Common.Meta.Keys.WritePath" usage="Output">
            The write path is output if the module is in metadata-only mode so that following
            executions of the <see cref="T:Wyam.Core.Modules.IO.WriteFiles"/> module will write the document to the
            calculated output path.
            </metadata>
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFilePath" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFilePathBase" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFileDir" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.DestinationFileBase" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.DestinationFileExt" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.DestinationFileName" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.DestinationFileDir" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.DestinationFilePath" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.DestinationFilePathBase" usage="Output" />
            <category>Input/Output</category>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Uses a delegate to describe where to write the content of each document.
            The output of the function should be either a full path to the disk
            location (including file name) or a path relative to the output folder.
            </summary>
            <param name="path">A delegate that returns a <see cref="T:Wyam.Common.IO.FilePath"/> with the desired path.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.#ctor(System.String)">
            <summary>
            Writes the document content to disk with the specified extension with the same
            base file name and relative path as the input file. This requires metadata
            for <c>RelativeFilePath</c> to be set (which is done by default by the <see cref="T:Wyam.Core.Modules.IO.ReadFiles"/> module).
            </summary>
            <param name="extension">The extension to use for writing the file.</param>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.#ctor">
            <summary>
            Writes the document content to disk with the same file name and relative path
            as the input file. This requires metadata for <c>RelativeFilePath</c> to be set,
            which is done by the <see cref="T:Wyam.Core.Modules.IO.ReadFiles"/> module or can be set manually.
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.OnlyMetadata(System.Boolean)">
            <summary>
            Indicates that only metadata should be added to the document and a file should not
            actually be written to the file system. This is useful for preprocessing documents
            so they appear in a pipeline with the correct write metadata, while actually
            writing them later with a second <see cref="T:Wyam.Core.Modules.IO.WriteFiles"/> module invocation.
            Only the following metadata values are written when this flag is turned on:
            <c>WritePath</c>, <c>RelativeFilePath</c>, <c>RelativeFilePathBase</c>,
            and <c>RelativeFileDir</c>. The <c>Destination...</c> metadata values are
            not added to the document when only setting metadata..
            </summary>
            <param name="onlyMetadata">If set to <c>true</c>, metadata will be added
            to the input document(s) without actually writing them to the file system.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.UseWriteMetadata(System.Boolean)">
            <summary>
            By default the metadata values for <c>WritePath</c>, <c>WriteFileName</c>, and <c>WriteExtension</c>
            are checked and used first, even if a delegate is specified in the constructor. This method can be used
            to turn off the default behavior and always rely on the delegate for obtaining the write location.
            </summary>
            <param name="useWriteMetadata">If set to <c>false</c>, metadata of the input document will not be used.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.IgnoreEmptyContent(System.Boolean)">
            <summary>
            Ignores documents with empty content, which is the default behavior.
            </summary>
            <param name="ignoreEmptyContent">If set to <c>true</c>, documents with empty content will be ignored.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.Append(System.Boolean)">
            <summary>
            Appends content to each file instead of overwriting them.
            </summary>
            <param name="append">Appends to existing files if set to <c>true</c>.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.Where(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Specifies a predicate that must be satisfied for the file to be written.
            </summary>
            <param name="predicate">A predicate that returns <c>true</c> if the file should be written.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.ShouldProcess(Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Checks whether the input document should be processed.
            </summary>
            <param name="input">The input document to check/</param>
            <param name="context">The execution context.</param>
            <returns><c>true</c> if the input document should be processed, <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.GetOutputPath(Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Gets the output path of the input document.
            </summary>
            <param name="input">The input document.</param>
            <param name="context">The execution context.</param>
            <returns>The outout path.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.IO.WriteFiles.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.CopyMeta">
            <summary>
            Copies the specified meta key to a new meta key, with an optional format argument.
            </summary>
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.CopyMeta.#ctor(System.String,System.String,System.String)">
            <summary>
            The specified object in fromKey is copied to toKey. If a format is provided, the fromKey value is processed through string.Format before being copied (if the existing value is a DateTime, the format is passed as the argument to ToString).
            </summary>
            <param name="fromKey">The metadata key to copy from.</param>
            <param name="toKey">The metadata key to copy to.</param>
            <param name="format">The formatting to apply to the new value.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.CopyMeta.WithFormat(System.String)">
            <summary>
            Specifies the format to use when copying the value.
            </summary>
            <param name="format">The format to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.CopyMeta.WithFormat(System.Func{System.String,System.String})">
            <summary>
            Specifies the format to use when copying the value.
            </summary>
            <param name="execute">A function to get the format to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.CopyMeta.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.DirectoryMeta">
            <summary>
            Applies metadata from specified input documents to all input documents based on a directory hierarchy.
            </summary>
            <remarks>
            <para>
            This module allows you to specify certain documents that contain common metadata for all other
            documents in the same directory (and optionally nested directories). It assumes that all input documents
            are generated from the file system (for example, from the <see cref="T:Wyam.Core.Modules.IO.ReadFiles"/> module). In other words,
            both the documents that contain the common metadata and the documents to which the common metadata should
            be applied should be passed as inputs to this module.
            </para>
            <para>
            Documents that contain the common metadata are specified by file name using the <c>WithMetadataFile</c> method.
            You can specify more than one metadata file and/or metadata files at different levels in the directory
            hierarchy. If the same metadata key exists across multiple common metadata documents, the following can be
            used to determine which metadata value will get set in the target output documents:
            <list type="bullet">
            <item><description>
            Pre-existing metadata in the target document (common metadata will
            not overwrite existing metadata unless the <c>replace</c> flag is set).
            </description></item>
            <item><description>
            Common metadata documents in the same directory as the target document
            (those registered first have a higher priority).
            </description></item>
            <item><description>
            Common metadata documents in parent directories of the target document (but only if the <c>inherited</c> flag
            is set and those closer to the target document have a higher priority).
            </description></item>
            </list>
            </para>
            <para>
            By default, documents that are identified as containing common metadata will be filtered and won't be
            contained in the sequence of output documents. <c>PreserveMetadataFiles</c> can be used to change this behavior.
            </para>
            </remarks>
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.DirectoryMeta.WithPreserveMetadataFiles">
            <summary>
            Preserves the files that hold the common metadata and ensures they are included in the module output. Without this option, theses documents will
            be consumed by this module and will not be present in the module output.
            </summary>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.DirectoryMeta.WithMetadataFile(Wyam.Common.Configuration.DocumentConfig,System.Boolean,System.Boolean)">
            <summary>
            Specifies a file name to use as common metadata using a delegate so that the common metadata document can be specific to the input document.
            </summary>
            <param name="metadataFileName">A delegate that returns a <c>bool</c> indicating if the current document contains the metadata you want to use.</param>
            <param name="inherited">If set to <c>true</c>, metadata from documents with this file name will be inherited by documents in nested directories.</param>
            <param name="replace">If set to <c>true</c>, metadata from this document will replace any existing metadata on the target document.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.DirectoryMeta.WithMetadataFile(Wyam.Common.IO.FilePath,System.Boolean,System.Boolean)">
            <summary>
            Specifies a file name to use as common metadata.
            </summary>
            <param name="metadataFileName">Name of the metadata file.</param>
            <param name="inherited">If set to <c>true</c>, metadata from documents with this file name will be inherited by documents in nested directories.</param>
            <param name="replace">If set to <c>true</c>, metadata from this document will replace any existing metadata on the target document.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.DirectoryMeta.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.FileName">
            <summary>
            Optimizes a specified metadata key as a filename.
            </summary>
            <remarks>
            This module takes the value of the specified metadata key and optimizes it
            for use as a filename by removing reserved characters, white-listing characters,
            etc.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.SourceFileName" usage="Input" />
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFileDir" usage="Input" />
            <metadata cref="F:Wyam.Common.Meta.Keys.WriteFileName" usage="Output" />
            <metadata cref="F:Wyam.Common.Meta.Keys.WritePath" usage="Output" />
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.FileName.#ctor">
            <summary>
            Sets the metadata key <c>WriteFileName</c> to an optimized version of <c>SourceFileName</c>.
            Also sets the metadata key <c>WritePath</c> to <c>Path.Combine(RelativeFileDir, WriteFileName)</c>.
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.FileName.#ctor(System.String)">
            <summary>
            Sets the metadata key <c>WriteFileName</c> to an optimized version of the specified input metadata key.
            Also sets the metadata key <c>WritePath</c> to <c>Path.Combine(RelativeFileDir, WriteFileName)</c>.
            </summary>
            <param name="inputKey">The metadata key to use for the input filename.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.FileName.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Sets the metadata key <c>WriteFileName</c> to an optimized version of the return value of the delegate.
            Also sets the metadata key <c>WritePath</c> to <c>Path.Combine(RelativeFileDir, WriteFileName)</c>.
            </summary>
            <param name="fileName">A delegate that should return a <c>string</c> with the filename to optimize.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.FileName.#ctor(System.String,System.String)">
            <summary>
            Sets the specified metadata key to an optimized version of the specified input metadata key.
            Does not automatically set the <c>WritePath</c> metadata key.
            </summary>
            <param name="inputKey">The metadata key to use for the input filename.</param>
            <param name="outputKey">The metadata key to use for the optimized filename.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.FileName.#ctor(Wyam.Common.Configuration.DocumentConfig,System.String)">
            <summary>
            Sets the specified metadata key to an optimized version of the return value of the delegate.
            Does not automatically set the <c>WritePath</c> metadata key.
            </summary>
            <param name="fileName">A delegate that should return a <c>string</c> with the filename to optimize.</param>
            <param name="outputKey">The metadata key to use for the optimized filename.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.FileName.PreservePath(System.Boolean)">
            <summary>
            Indicates whether to set the metadata key <c>WritePath</c> to <c>Path.Combine(RelativeFileDir, WriteFileName)</c>.
            </summary>
            <param name="preservePath">If set to <c>true</c>, the <c>WritePath</c> metadata key is set.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.FileName.PreservePath(System.String)">
            <summary>
            Indicates whether to set the specified metadata key to <c>Path.Combine(RelativeFileDir, WriteFileName)</c>.
            </summary>
            <param name="outputKey">The metadata key to set.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.FileName.WithAllowedCharacters(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Specifies the characters to allow in the filename.
            </summary>
            <param name="allowedCharacters">The allowed characters.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.FileName.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.Flatten">
            <summary>
            Flattens a tree structure given child documents are stored in a given metadata key ("Children" by default).
            The flattened documents are returned in no particular order.
            </summary>
            <metadata cref="F:Wyam.Common.Meta.Keys.Children" usage="Input"/>
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Flatten.#ctor">
            <summary>
            Creates a new flatten module.
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Flatten.#ctor(System.String)">
            <summary>
            Creates a new flatten module with the specified children key.
            </summary>
            <param name="childrenKey">The metadata key that contains the children.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Flatten.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.Index">
            <summary>
            Adds a one-based index to every document as metadata.
            </summary>
            <metadata cref="F:Wyam.Common.Meta.Keys.Index" usage="Output" />
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Index.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.Meta">
            <summary>
            Adds the specified metadata to each input document.
            </summary>
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Meta.#ctor(System.String,System.Object)">
            <summary>
            The specified object is added as metadata for the specified key for every input document.
            </summary>
            <param name="key">The metadata key to set.</param>
            <param name="metadata">The object to add as metadata.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Meta.#ctor(System.String,Wyam.Common.Configuration.ContextConfig)">
            <summary>
            Uses a function to determine an object to be added as metadata for each document.
            This allows you to specify different metadata for each document depending on the context.
            </summary>
            <param name="key">The metadata key to set.</param>
            <param name="metadata">A delegate that returns the object to add as metadata.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Meta.#ctor(System.String,Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Uses a function to determine an object to be added as metadata for each document.
            This allows you to specify different metadata for each document depending on the input.
            </summary>
            <param name="key">The metadata key to set.</param>
            <param name="metadata">A delegate that returns the object to add as metadata.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Meta.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            The specified modules are executed against an empty initial document and all metadata that exist in all of the result documents
            are added as metadata to each input document.
            </summary>
            <param name="modules">The modules to execute.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Meta.ForEachDocument(System.Boolean)">
            <summary>
            Specifies that the whole sequence of modules should be executed for every input document
            (as opposed to the default behavior of the sequence of modules only being executed once
            with an empty initial document). This method has no effect if no modules are specified.
            </summary>
            <param name="forEachDocument"><c>true</c> to execute for every input document.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Meta.IgnoreNull(System.Boolean)">
            <summary>
            Ignores null values and does not add a metadata item for them.
            </summary>
            <param name="ignoreNull"><c>true</c> to ignore null values.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Meta.OnlyIfNonExisting(System.Boolean)">
            <summary>
            Only sets the new metadata value if a value doesn't already exist.
            The default behavior is to set the new value regardless.
            </summary>
            <param name="onlyIfNonExisting"><c>true</c> if the new value should only be set if it doesn't already exist.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Meta.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.Objects">
            <summary>
            Creates documents from a set of objects. Any input documents will be ignored.
            The objects can be anything, and the collection can be heterogenous.
            Dictionary&lt;string, object&gt; will be handled natively and each key-value pair
            will be added to the output document metdata.
            Anything else will be reflected and turned into a Dictionary&lt;string, object&gt;
            with metadata for each property.
            </summary>
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Objects.#ctor(System.Collections.Generic.IEnumerable{System.Object})">
            <summary>
            Creates documents from the specified objects.
            </summary>
            <param name="objects">The objects to create documents for.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Objects.GetItems(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.Sql">
            <summary>
            Creates documents from the results of a SQL query. Each row is output
            as a new document and every column is used as the metadata (or content) of
            the new document. Input documents are ignored.
            </summary>
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Sql.#ctor(System.String,System.String)">
            <summary>
            Creates documents from a SQL query given the specified connection string and query.
            </summary>
            <param name="connectionString">The connection string.</param>
            <param name="sql">The SQL query.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Sql.GetItems(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Sql.GetDictionary(System.Data.DataRow)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.Title">
            <summary>
            Sets a title metadata key for documents based on their file path or source.
            </summary>
            <remarks>
            This will split the title at special characters, capitalize first letters, remove extensions, etc.
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFilePath" usage="Input" />
            <metadata cref="F:Wyam.Common.Meta.Keys.Title" usage="Output" />
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Title.#ctor">
            <summary>
            This will use the existing title metadata key if one exists,
            otherwise it will set a title based on the document source
            or the RelativeFilePath key if no source is available.
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Title.#ctor(System.String)">
            <summary>
            This sets the title of all input documents to the specified string.
            </summary>
            <param name="title">The title to set.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Title.#ctor(Wyam.Common.Configuration.ContextConfig)">
            <summary>
            This sets the title of all input documents to a value from the delegate.
            </summary>
            <param name="title">A delegate that must return a string.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Title.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            This sets the title of all input documents to a value from the delegate.
            </summary>
            <param name="title">A delegate that must return a string.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Title.WithKey(System.String)">
            <summary>
            Specifies the key to set for the title. By default this module sets
            a value for the key Title.
            </summary>
            <param name="key">The metadata key to set.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Title.KeepExisting(System.Boolean)">
            <summary>
            Indicates that an existing value in the title key should be kept. The
            default value is <c>true</c>. Setting to <c>false</c> will always
            set the title metadata to the result of this module, even if the
            result is null or empty.
            </summary>
            <param name="keepExisting">Whether to keep the existing title metadata value.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Title.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Title.GetTitle(Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <summary>
            Gets a normalized title given a document.
            </summary>
            <param name="doc">The document.</param>
            <param name="context">The execution context.</param>
            <returns>A normalized title.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Title.GetTitle(Wyam.Common.IO.FilePath)">
            <summary>
            Gets a normalized title given a file path.
            </summary>
            <param name="path">The file path.</param>
            <returns>A normalized title.</returns>
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.Tree">
            <summary>
            Adds metadata to the input documents that describes the position of each one in a tree structure.
            </summary>
            <remarks>
            <para>
            By default, this module is configured to generate a tree that mimics the directory structure of each document's input path
            by looking at it's RelativeFilePath metadata value. Any documents with a file name of "index.*" are automatically
            promoted to the node that represents the parent folder level. For any folder that does not contain an "index.*" file,
            an empty placeholder tree node is used to represent the folder.
            </para>
            <para>
            Note that if you clone documents from the tree, the relationships of the cloned document (parent, child, etc.)
            will not be updated to the new clones. In other words, your new document will still be pointing to the old
            versions of it's parent, children, etc. To update the tree after cloning documents you will need to recreate it
            by rerunning this module on all the newly created documents again.
            </para>
            </remarks>
            <metadata cref="F:Wyam.Common.Meta.Keys.RelativeFilePath" usage="Input">
            Used to calculate the segments of the document in the tree.
            </metadata>
            <metadata cref="F:Wyam.Common.Meta.Keys.Parent" usage="Output"/>
            <metadata cref="F:Wyam.Common.Meta.Keys.Children" usage="Output"/>
            <metadata cref="F:Wyam.Common.Meta.Keys.PreviousSibling" usage="Output"/>
            <metadata cref="F:Wyam.Common.Meta.Keys.NextSibling" usage="Output"/>
            <metadata cref="F:Wyam.Common.Meta.Keys.Next" usage="Output"/>
            <metadata cref="F:Wyam.Common.Meta.Keys.Previous" usage="Output"/>
            <metadata cref="F:Wyam.Common.Meta.Keys.TreePath" usage="Output"/>
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Tree.#ctor">
            <summary>
            Creates a new tree module.
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Tree.WithPlaceholderFactory(System.Func{System.Object[],Wyam.Common.Meta.MetadataItems,Wyam.Common.Execution.IExecutionContext,Wyam.Common.Documents.IDocument})">
            <summary>
            Allows you to specify a factory function for the creation of placeholder documents which get
            created to represent nodes in the tree for which there was no input document. The factory
            gets passed the current tree path, the set of tree metadata that should be set in the document,
            and the execution context which can be used to create a new document. If the factory function
            returns null, a new document with the tree metadata is created.
            </summary>
            <remarks>
            The default placeholder factory creates a document at the current tree path with a file name of <c>index.html</c>.
            </remarks>
            <param name="factory">The factory function.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Tree.WithSort(System.Comparison{Wyam.Common.Documents.IDocument})">
            <summary>
            This specifies how the children of a given tree node should be sorted. The default behavior is to
            sort based on the string value of the last component of the child node's tree path (I.e., the folder
            or file name). The output document for each tree node is used as the input to the sort delegate.
            </summary>
            <param name="sort">A comparison delegate.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Tree.WithRoots(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Specifies for each document if it is a root of a tree. This results in splitting the generated tree into multiple smaller ones,
            removing the root node from the set of children of it's parent and setting it's parent to <c>null</c>.
            </summary>
            <param name="isRoot">A predicate (must return <c>bool</c>) that specifies if the current document is treated as the root of a new tree.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Tree.WithTreePath(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Defines the structure of the tree. If the delegate returns <c>null</c> the document
            is excluded from the tree.
            </summary>
            <param name="treePath">A delegate that must return a sequence of objects.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Tree.WithMetadataNames(System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Changes the default metadata keys.
            </summary>
            <param name="parentKey">The metadata key where parent documents should be stored.</param>
            <param name="childrenKey">The metadata key where child documents should be stored.</param>
            <param name="previousSiblingKey">The metadata key where the previous sibling document should be stored.</param>
            <param name="nextSiblingKey">The metadata key where the next sibling document should be stored.</param>
            <param name="previousKey">The metadata key where the previous document should be stored.</param>
            <param name="nextKey">The metadata key where the next document should be stored.</param>
            <param name="treePathKey">The metadata key where the tree path should be stored.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Tree.WithNesting(System.Boolean,System.Boolean)">
            <summary>
            Indicates that the module should only output root nodes (instead of all
            nodes which is the default behavior).
            </summary>
            <param name="nesting"><c>true</c> to enable nesting and only output the root nodes.</param>
            <param name="collapseRoot">
            Indicates that the root of the tree should be collapsed and the module
            should output first-level documents as if they were root documents. This setting
            has no effect if not nesting.
            </param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Tree.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.ValidateMeta`1">
            <summary>
            Tests metadata for existence, typing, and supplied assertions.
            </summary>
            <typeparam name="T">The type of the metadata value to convert to for validation.</typeparam>
            <remarks>
            This module performs tests on metadata. It can ensure metadata exists, that it can be converted to the correct type, and that is passes
            arbitrary tests (delegates) to ensure validity. Metadata can be specified as optional, in which case, typing and assertion testing
            will only be run if the metadata exists. If any check fails, this module throws an exception with a descriptive error message then
            halts further execution.
            </remarks>
            <example>
            This example will ensure "Title" exists. (It will also perform a type check, but since "object" matches anything, the type check will
            always succeed.)
            <code>
            ValidateMeta&lt;object&gt;("Title")
            </code>
            </example>
            <example>
            This example will ensure that if "Date" exists, it can convert to a valid DateTime.
            <code>
            ValidateMeta&lt;DateTime&gt;("Date")
               .IsOptional()
            </code>
            </example>
            <example>
            This example will ensure "Age" (1) exists, (2) can convert to an integer, (3) and is greater than 0 and less than 121.
            If it fails any assertion, the provided error message will be output. (In this case, those two assertions could be rolled
            into one, but then they would share an error message. Separate assertions allow more specific error messages.) Assertions will
            be checked in order. Any assertion can assume all previous assertions have passed. Error messages will be appended with
            the document Source and Id properties to assist in identifying invalid documents.
            <code>
            ValidateMeta&lt;int&gt;("Age")
               .WithAssertion(a =&gt; a &gt; 0, "You have to be born.")
               .WithAssertion(a =&gt; a &lt;= 120, "You are way, way too old.")
            </code>
            </example>
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.ValidateMeta`1.#ctor(System.String)">
            <summary>
            Performs validation checks on metadata.
            </summary>
            <param name="key">The meta key representing the value to test.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.ValidateMeta`1.IsOptional">
            <summary>
            Declares the entire check as optional. Is this is set, and the meta key doesn't exist, no checks will be run.
            </summary>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.ValidateMeta`1.WithAssertion(System.Func{`0,System.Boolean},System.String)">
            <summary>
            Performs validation checks on metadata.
            </summary>
            <param name="execute">The assertion function, of type Func&lt;T, bool&gt; where T is the generic parameter of the ValidateMeta
            declaration. Assertions are strongly-typed and can assume the value has been converted to the correct type. If the function returns
            false, the check failed, an exception will be thrown, and execution will halt.</param>
            <param name="message">The error message to output on failure.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.ValidateMeta`1.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Metadata.Xml">
            <summary>
            Creates new documents from elements within XML. This module will either
            ignore input documents and use specificed XML content or use the content
            from input documents depending on how it's configured. An XPath expression
            can be used to find target XML elements, and the InnerXml of each child element
            of the target elements as well as the values of each attribute
            will be placed into the metadata of the generated documents.
            </summary>
            <category>Metadata</category>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Xml.#ctor">
            <summary>
            Creates new documents from input documents. The child elements of the root element will be used.
            </summary>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Xml.#ctor(System.String)">
            <summary>
            Creates new documents from input documents.
            </summary>
            <param name="itemXPath">The XPath expression to use to find child items. If null, all child elements will be used.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Xml.#ctor(System.String,System.String)">
            <summary>
            Creates new documents from the specified XML data.
            </summary>
            <param name="data">The XML data.</param>
            <param name="itemXPath">The XPath expression to use to find child items. If <c>null</c>, all child elements will be used.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Xml.WithItemXPath(System.String)">
            <summary>
            Sets the XPath expression to use to find child items. If null, all child elements will be used.
            </summary>
            <param name="itemXPath">The XPath expression to use.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Xml.WithMetadataXPath(System.String,System.String)">
            <summary>
            Adds additional XPath patterns to be run on each element and assigned to a metadata key.
            To be safe, these patterns should start with "./" so they scope only to the element.
            The InnerXml of the first matching node will be used as the value of the metadata.
            </summary>
            <param name="key">The metadata key to store the value in.</param>
            <param name="xpath">The XPath expression for the additional metadata.</param>
            <returns>The current module instance.</returns>
        </member>
        <member name="M:Wyam.Core.Modules.Metadata.Xml.GetItems(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Modules.Templates.Xslt">
            <summary>
            Transforms input documents using a supplied XSLT template.
            </summary>
            <remarks>
            This module uses <see cref="T:System.Xml.Xsl.XslCompiledTransform"/> with default settings. This means that the
            XSLT <c>document()</c> function and embedded scripts are disabled. For more information
            see the <a href="https://msdn.microsoft.com/en-us/library/system.xml.xsl.xslcompiledtransform.aspx">MSDN documentation</a>.
            </remarks>
            <category>Templates</category>
        </member>
        <member name="M:Wyam.Core.Modules.Templates.Xslt.#ctor(Wyam.Common.IO.FilePath)">
            <summary>
            Transforms input documents using a specified XSLT file from the file system.
            </summary>
            <param name="xsltPath">The path of the XSLT file to use.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Templates.Xslt.#ctor(Wyam.Common.Configuration.DocumentConfig)">
            <summary>
            Transforms input documents using a specified XSLT file from the file system
            as provided by a delegate. This allows you to use different XSLT files depending
            on the input document.
            </summary>
            <param name="xsltPath">A delegate that should return a <see cref="T:Wyam.Common.IO.FilePath"/> with the XSLT file to use.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Templates.Xslt.#ctor(Wyam.Common.Modules.IModule[])">
            <summary>
            Transforms input documents using the output content from the specified modules. The modules are executed for each input
            document with the current document as the input to the specified modules.
            </summary>
            <param name="modules">Modules that should output a single document containing the XSLT template in it's content.</param>
        </member>
        <member name="M:Wyam.Core.Modules.Templates.Xslt.Execute(System.Collections.Generic.IReadOnlyList{Wyam.Common.Documents.IDocument},Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.Contents.Raw">
            <summary>
            A special shortcode that will output whatever is in it's content.
            </summary>
            <remarks>
            This will not evaluate nested shortcodes and is useful
            for escaping shortcode syntax.
            </remarks>
            <example>
            <code>
            &lt;?# Raw ?>&lt;?# ThisWillBeOutputVerbatim ?>&lt;?#/ Raw ?>
            </code>
            </example>
        </member>
        <member name="M:Wyam.Core.Shortcodes.Contents.Raw.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.Html.CodePen">
            <summary>
            Embeds a CodePen pen.
            </summary>
            <remarks>
            You need the path of the pen (essentially everything after the domain in the URL):
            <code>
            https://codepen.io/edanny/pen/JXwgdK
            </code>
            </remarks>
            <example>
            <code>
            &lt;?# CodePen edanny/pen/JXwgdK /?&gt;
            </code>
            </example>
            <parameter>The path of the pen.</parameter>
        </member>
        <member name="T:Wyam.Core.Shortcodes.Html.Embed">
            <summary>
            Calls an oEmbed endpoint and renders the embedded content.
            </summary>
            <remarks>
            See https://oembed.com/ for details on the oEmbed standard and available endpoints.
            </remarks>
            <example>
            <code>
            &lt;?# Embed https://codepen.io/api/oembed https://codepen.io/gingerdude/pen/JXwgdK /?&gt;
            </code>
            </example>
            <parameter name="Endpoint">The oEmbed endpoint.</parameter>
            <parameter name="Url">The embeded URL to fetch an embed for.</parameter>
            <parameter name="Format">An optional format to use ("xml" or "json").</parameter>
        </member>
        <member name="M:Wyam.Core.Shortcodes.Html.Embed.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.Html.Figure">
            <summary>
            Generates HTML5 <c>figure</c> elements.
            </summary>
            <remarks>
            The content of this shortcode specifies a caption to output inside a nested <c>figcaption</c> element.
            </remarks>
            <example>
            <para>
            Example usage:
            </para>
            <code>
            &lt;?# Figure Src="/assets/wyam.jpg" ?&gt;
            Wyam Logo
            &lt;?#/ Figure ?&gt;
            </code>
            <para>
            Example output:
            </para>
            <code>
            &lt;figure&gt;
              &lt;img src=&quot;/assets/wyam.jpg&quot; /&gt;
              &lt;figcaption&gt;Wyam Logo&lt;/figcaption&gt;
            &lt;/figure&gt;
            </code>
            </example>
            <parameter name="Src">URL of the image to be displayed.</parameter>
            <parameter name="Link">If the image needs to be hyperlinked, URL of the destination.</parameter>
            <parameter name="Target">Optional <c>target</c> attribute for the URL if <c>Link</c> parameter is set.</parameter>
            <parameter name="Rel">Optional <c>rel</c> attribute for the URL if <c>Link</c> parameter is set.</parameter>
            <parameter name="Alt">Alternate text for the image if the image cannot be displayed.</parameter>
            <parameter name="Class"><c>class</c> attribute to apply to the <c>figure</c> element.</parameter>
            <parameter name="Height"><c>height</c> attribute of the image.</parameter>
            <parameter name="Width"><c>width</c> attribute of the image.</parameter>
        </member>
        <member name="M:Wyam.Core.Shortcodes.Html.Figure.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.Html.Giphy">
            <summary>
            Embeds a Giphy gif.
            </summary>
            <remarks>
            You only need the ID of the gif which can be obtained from it's URL:
            <code>
            https://giphy.com/gifs/excited-birthday-yeah-yoJC2GnSClbPOkV0eA
            </code>
            </remarks>
            <example>
            <code>
            &lt;?# Giphy excited-birthday-yeah-yoJC2GnSClbPOkV0eA /?&gt;
            </code>
            </example>
            <parameter>The ID of the gif.</parameter>
        </member>
        <member name="T:Wyam.Core.Shortcodes.Html.Gist">
            <summary>
            Embeds a GitHub gist.
            </summary>
            <example>
            <para>
            Example usage:
            </para>
            <code>
            &lt;?# Gist 10a2f6e0186fa34b8a7b4bd7d436785d /?&gt;
            </code>
            <para>
            Example output:
            </para>
            <code>
            &lt;script src=&quot;//gist.github.com/10a2f6e0186fa34b8a7b4bd7d436785d.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
            </code>
            </example>
            <parameter name="Id">The ID of the gist.</parameter>
            <parameter name="Username">The username that the gist is under (optional).</parameter>
            <parameter name="File">The file within the gist to embed (optional).</parameter>
        </member>
        <member name="M:Wyam.Core.Shortcodes.Html.Gist.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.Html.Link">
            <summary>
            Renders a link from the given path, using default settings or specifying overrides as appropriate.
            </summary>
            <example>
            <code>
            &lt;?# Link "/foo/bar" /?&gt;
            </code>
            </example>
            <parameter name="Path">The path to get a link for.</parameter>
            <parameter name="IncludeHost">
            If set to <c>true</c> the host configured in the output settings will
            be included in the link, otherwise the host will be omitted and only the root path will be included (default).
            </parameter>
            <parameter name="Host">The host to use for the link.</parameter>
            <parameter name="Root">The root of the link. The value of this parameter is prepended to the path.</parameter>
            <parameter name="Scheme">The scheme to use for the link (will override the <c>UseHttps</c> parameter).</parameter>
            <parameter name="UseHttps">If set to <c>true</c>, HTTPS will be used as the scheme for the link.</parameter>
            <parameter name="HideIndexPages">If set to <c>true</c>, "index.htm" and "index.html" file names will be hidden.</parameter>
            <parameter name="HideExtensions">If set to <c>true</c>, extensions will be hidden.</parameter>
            <parameter name="Lowercase">If set to <c>true</c>, links will be rendered in all lowercase.</parameter>
        </member>
        <member name="M:Wyam.Core.Shortcodes.Html.Link.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.Html.Table">
            <summary>
            Renders an HTML table.
            </summary>
            <remarks>
            The content of the shortcode contains the table with each row on a new line and each
            column separated by new lines. Enclose columns in quotes if they contain a space.
            Note that since the content of a shortcode may get processed by template engines like
            Markdown and the content of this shortcode should not be, you probably want to wrap
            the shortcode content in the special XML processing instruction that will get trimmed
            like <c>&lt;?* ... ?&gt;</c> so it "passes through" any template engines (see example below).
            </remarks>
            <example>
            <para>
            Example usage:
            </para>
            <code>
            &lt;?# Table Class=table HeaderRows=1 ?&gt;
            &lt;?*
            Vehicle "Number Of Wheels"
            Bike 2
            Car 4
            Truck "A Whole Lot"
            ?&gt;
            &lt;?#/ Table ?&gt;
            </code>
            <para>
            Example output:
            </para>
            <code>
            &lt;table class=&quot;table&quot;&gt;
              &lt;thead&gt;
                &lt;tr&gt;
                  &lt;th&gt;Vehicle&lt;/th&gt;
                  &lt;th&gt;Number Of Wheels&lt;/th&gt;
                &lt;/tr&gt;
              &lt;/thead&gt;
              &lt;tbody&gt;
                &lt;tr&gt;
                  &lt;td&gt;Bike&lt;/td&gt;
                  &lt;td&gt;2&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                  &lt;td&gt;Car&lt;/td&gt;
                  &lt;td&gt;4&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                  &lt;td&gt;Truck&lt;/td&gt;
                  &lt;td&gt;A Whole Lot&lt;/td&gt;
                &lt;/tr&gt;
              &lt;/tbody&gt;
            &lt;/table&gt;
            </code>
            </example>
            <parameter name="Class">The <c>class</c> attribute to apply to the <c>table</c> element.</parameter>
            <parameter name="HeaderRows">The number of header rows in the table.</parameter>
            <parameter name="FooterRows">The number of footer rows in the table.</parameter>
            <parameter name="HeaderCols">The number of header columns to the left of the table.</parameter>
            <parameter name="HeaderClass">The <c>class</c> attribute to apply to the <c>thead</c> element.</parameter>
            <parameter name="BodyClass">The <c>class</c> attribute to apply to the <c>tbody</c> element.</parameter>
            <parameter name="FooterClass">The <c>class</c> attribute to apply to the <c>tfoot</c> element.</parameter>
        </member>
        <member name="M:Wyam.Core.Shortcodes.Html.Table.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.Html.Twitter">
            <summary>
            Renders a Tweet.
            </summary>
            <example>
            <code>
            &lt;?# Twitter 123456789 /?&gt;
            </code>
            </example>
            <parameter name="Id">The ID of the Tweet. This can be found at the end of the URL when you copy a link to a Tweet.</parameter>
            <parameter name="HideMedia">When set to <c>true</c>, links in a Tweet are not expanded to photo, video, or link previews.</parameter>
            <parameter name="HideThread">When set to <c>true</c>, a collapsed version of the previous Tweet in a conversation thread will not be displayed when the requested Tweet is in reply to another Tweet.</parameter>
            <parameter name="Theme"><c>light</c> or <c>dark</c>. When set to <c>dark</c>, the Tweet is displayed with light text over a dark background.</parameter>
            <parameter name="OmitScript">When set to <c>true</c>, the <c>script</c> element that contains the Twitter embed JavaScript code will not be rendered.</parameter>
        </member>
        <member name="M:Wyam.Core.Shortcodes.Html.Twitter.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.Html.YouTube">
            <summary>
            Embeds a YouTube video.
            </summary>
            <remarks>
            You only need the ID of the video which can be obtained from it's URL after the <c>?v=</c>:
            <code>
            https://www.youtube.com/watch?v=u5ayTqlLWQQ
            </code>
            </remarks>
            <example>
            <code>
            &lt;?# YouTube u5ayTqlLWQQ /?&gt;
            </code>
            </example>
            <parameter>The ID of the video.</parameter>
        </member>
        <member name="T:Wyam.Core.Shortcodes.IO.Include">
            <summary>
            Includes a file from the virtual file system.
            </summary>
            <remarks>
            The raw content of the file will be rendered where the shortcode appears.
            If the file does not exist nothing will be rendered.
            </remarks>
            <parameter>The path to the file to include.</parameter>
            <example>
            <para>Example usage to show the contents of test-include.html in the output</para>
            <para>
            <code>
            &lt;?# Include "test-include.html" /?&gt;
            </code>
            </para>
            <para>
            If the included file contains Markdown syntax, you can even include it before the Markdown engine runs with a slight syntax change:
            </para>
            <para>
            <code>
            &lt;?! Include "test-include.md" /?&gt;?
            </code>
            </para>
            </example>
        </member>
        <member name="M:Wyam.Core.Shortcodes.IO.Include.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.Metadata.Meta">
            <summary>
            Renders the metadata value with the given key from the current document.
            </summary>
            <remarks>
            The metadata value will be rendered as a string. If no value exists with the
            specified key, nothing will be rendered. In addition to using the shortcode
            by the <c>Meta</c> name like <c>&lt;?# Meta key /?&gt;</c>, this shortcode can also be used
            with a special syntax: <c>&lt;?#= key /?&gt;</c>.
            </remarks>
            <parameter>The key of the metadata value to render.</parameter>
        </member>
        <member name="M:Wyam.Core.Shortcodes.Metadata.Meta.Execute(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.String,Wyam.Common.Documents.IDocument,Wyam.Common.Execution.IExecutionContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Core.Shortcodes.ShortcodeParser">
            <summary>
            Parses a stream looking for shortcodes. This class is not thread-safe and maintains
            state. A new instance should be created for each stream.
            </summary>
        </member>
        <member name="M:Wyam.Core.Shortcodes.ShortcodeParser.Parse(System.IO.Stream)">
            <summary>
            Identifies shortcode locations in a stream.
            </summary>
            <param name="stream">The stream to parse. This method will not dispose the passed-in stream.</param>
            <returns>All of the shortcode locations in the stream.</returns>
        </member>
        <member name="T:Wyam.Core.Util.ArgumentSplitter">
            <summary>
            Splits a string into quoted arguments delimited by spaces.
            </summary>
            <remarks>
            From http://stackoverflow.com/a/298990/807064
            </remarks>
        </member>
        <member name="M:Wyam.Core.Util.ArgumentSplitter.Split(System.String)">
            <summary>
            Splits a string into quoted arguments delimited by spaces.
            </summary>
            <param name="arguments">The full string to split into arguments.</param>
            <returns>Each quoted argument as delimited in the original string by spaces.</returns>
        </member>
        <member name="T:Wyam.Core.Util.ConvertingComparer`1">
            <summary>
            Adapts a typed equality comparer to untyped metadata by attempting to convert the
            metadata values to the comparer type before running the comparison. If neither type
            can be converted to <typeparamref name="TValue"/>, the comparison returns 0 (equivalent).
            </summary>
            <typeparam name="TValue">The value type to convert to for comparisons.</typeparam>
        </member>
        <member name="T:Wyam.Core.Util.ConvertingEqualityComparer`1">
            <summary>
            Adapts a typed equality comparer to untyped metadata by attempting to convert the
            metadata values to the comparer type before running the comparison. If neither type
            can be converted to <typeparamref name="TValue"/>, the comparison fails.
            </summary>
            <typeparam name="TValue">The value type to convert to for comparisons.</typeparam>
        </member>
    </members>
</doc>
Wyam.deps.json
{
  "runtimeTarget": {
    "name": ".NETCoreApp,Version=v2.1",
    "signature": ""
  },
  "compilationOptions": {},
  "targets": {
    ".NETCoreApp,Version=v2.1": {
      "Wyam/2.2.9": {
        "dependencies": {
          "Roslynator.Analyzers": "2.0.0",
          "SharpScss": "1.4.0",
          "StyleCop.Analyzers": "1.1.1-beta.61",
          "Wyam.Common": "2.2.9",
          "Wyam.Configuration": "2.2.9",
          "Wyam.Core": "2.2.9",
          "Wyam.Hosting": "2.2.9",
          "System.CommandLine": "4.0.0.0"
        },
        "runtime": {
          "Wyam.dll": {}
        }
      },
      "AdvancedStringBuilder/0.1.0": {
        "runtime": {
          "lib/netstandard2.0/AdvancedStringBuilder.dll": {
            "assemblyVersion": "0.1.0.0",
            "fileVersion": "0.1.0.0"
          }
        }
      },
      "ConcurrentHashSet/1.0.2": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0"
        },
        "runtime": {
          "lib/netstandard1.0/ConcurrentCollections.dll": {
            "assemblyVersion": "1.0.2.0",
            "fileVersion": "1.0.2.0"
          }
        }
      },
      "JavaScriptEngineSwitcher.Core/3.0.0": {
        "dependencies": {
          "AdvancedStringBuilder": "0.1.0"
        },
        "runtime": {
          "lib/netstandard2.0/JavaScriptEngineSwitcher.Core.dll": {
            "assemblyVersion": "3.0.0.0",
            "fileVersion": "3.0.0.0"
          }
        },
        "resources": {
          "lib/netstandard2.0/ru-ru/JavaScriptEngineSwitcher.Core.resources.dll": {
            "locale": "ru-ru"
          }
        }
      },
      "JavaScriptEngineSwitcher.Jint/3.0.0": {
        "dependencies": {
          "AdvancedStringBuilder": "0.1.0",
          "JavaScriptEngineSwitcher.Core": "3.0.0",
          "Jint": "2.11.58"
        },
        "runtime": {
          "lib/netstandard2.0/JavaScriptEngineSwitcher.Jint.dll": {
            "assemblyVersion": "3.0.0.0",
            "fileVersion": "3.0.0.0"
          }
        }
      },
      "Jint/2.11.58": {
        "runtime": {
          "lib/netstandard2.0/Jint.dll": {
            "assemblyVersion": "0.0.0.0",
            "fileVersion": "2.11.58.0"
          }
        }
      },
      "JSPool/2.0.1": {
        "dependencies": {
          "JavaScriptEngineSwitcher.Core": "3.0.0",
          "System.Diagnostics.TraceSource": "4.0.0",
          "System.IO.FileSystem.Watcher": "4.0.0",
          "System.Reflection.TypeExtensions": "4.3.0",
          "System.Threading.Thread": "4.3.0"
        },
        "runtime": {
          "lib/netstandard1.3/JSPool.dll": {
            "assemblyVersion": "2.0.1.0",
            "fileVersion": "2.0.1.0"
          }
        }
      },
      "Microsoft.AspNetCore.Connections.Abstractions/2.1.3": {
        "dependencies": {
          "Microsoft.AspNetCore.Http.Features": "2.1.1",
          "System.IO.Pipelines": "4.5.0"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll": {
            "assemblyVersion": "2.1.3.0",
            "fileVersion": "2.1.3.18207"
          }
        }
      },
      "Microsoft.AspNetCore.Hosting/2.1.1": {
        "dependencies": {
          "Microsoft.AspNetCore.Hosting.Abstractions": "2.1.1",
          "Microsoft.AspNetCore.Http": "2.1.1",
          "Microsoft.AspNetCore.Http.Extensions": "2.1.1",
          "Microsoft.Extensions.Configuration": "2.1.1",
          "Microsoft.Extensions.Configuration.EnvironmentVariables": "2.1.1",
          "Microsoft.Extensions.Configuration.FileExtensions": "2.1.1",
          "Microsoft.Extensions.DependencyInjection": "2.1.1",
          "Microsoft.Extensions.FileProviders.Physical": "2.1.1",
          "Microsoft.Extensions.Hosting.Abstractions": "2.1.1",
          "Microsoft.Extensions.Logging": "2.1.1",
          "Microsoft.Extensions.Options": "2.1.1",
          "System.Diagnostics.DiagnosticSource": "4.5.0",
          "System.Reflection.Metadata": "1.6.0"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.Hosting.Abstractions/2.1.1": {
        "dependencies": {
          "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.1.1",
          "Microsoft.AspNetCore.Http.Abstractions": "2.1.1",
          "Microsoft.Extensions.Hosting.Abstractions": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.1.1": {
        "dependencies": {
          "Microsoft.AspNetCore.Http.Features": "2.1.1",
          "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.Http/2.1.1": {
        "dependencies": {
          "Microsoft.AspNetCore.Http.Abstractions": "2.1.1",
          "Microsoft.AspNetCore.WebUtilities": "2.1.1",
          "Microsoft.Extensions.ObjectPool": "2.1.1",
          "Microsoft.Extensions.Options": "2.1.1",
          "Microsoft.Net.Http.Headers": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Http.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.Http.Abstractions/2.1.1": {
        "dependencies": {
          "Microsoft.AspNetCore.Http.Features": "2.1.1",
          "System.Text.Encodings.Web": "4.5.0"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.Http.Extensions/2.1.1": {
        "dependencies": {
          "Microsoft.AspNetCore.Http.Abstractions": "2.1.1",
          "Microsoft.Extensions.FileProviders.Abstractions": "2.1.1",
          "Microsoft.Net.Http.Headers": "2.1.1",
          "System.Buffers": "4.5.0"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.Http.Features/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Primitives": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.Owin/2.1.1": {
        "dependencies": {
          "Microsoft.AspNetCore.Http": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Owin.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.Server.Kestrel/2.1.3": {
        "dependencies": {
          "Microsoft.AspNetCore.Hosting": "2.1.1",
          "Microsoft.AspNetCore.Server.Kestrel.Core": "2.1.3",
          "Microsoft.AspNetCore.Server.Kestrel.Https": "2.1.3",
          "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets": "2.1.3"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Server.Kestrel.dll": {
            "assemblyVersion": "2.1.3.0",
            "fileVersion": "2.1.3.18207"
          }
        }
      },
      "Microsoft.AspNetCore.Server.Kestrel.Core/2.1.3": {
        "dependencies": {
          "Microsoft.AspNetCore.Hosting.Abstractions": "2.1.1",
          "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "2.1.3",
          "Microsoft.AspNetCore.WebUtilities": "2.1.1",
          "Microsoft.Extensions.Configuration.Binder": "2.1.1",
          "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
          "Microsoft.Extensions.Options": "2.1.1",
          "Microsoft.Net.Http.Headers": "2.1.1",
          "System.Memory": "4.5.1",
          "System.Numerics.Vectors": "4.5.0",
          "System.Runtime.CompilerServices.Unsafe": "4.5.1",
          "System.Security.Cryptography.Cng": "4.5.0",
          "System.Threading.Tasks.Extensions": "4.5.1"
        },
        "runtime": {
          "lib/netcoreapp2.1/Microsoft.AspNetCore.Server.Kestrel.Core.dll": {
            "assemblyVersion": "2.1.3.0",
            "fileVersion": "2.1.3.18207"
          }
        }
      },
      "Microsoft.AspNetCore.Server.Kestrel.Https/2.1.3": {
        "dependencies": {
          "Microsoft.AspNetCore.Http.Abstractions": "2.1.1",
          "Microsoft.AspNetCore.Server.Kestrel.Core": "2.1.3"
        },
        "runtime": {
          "lib/netcoreapp2.1/Microsoft.AspNetCore.Server.Kestrel.Https.dll": {
            "assemblyVersion": "2.1.3.0",
            "fileVersion": "2.1.3.18207"
          }
        }
      },
      "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions/2.1.3": {
        "dependencies": {
          "Microsoft.AspNetCore.Connections.Abstractions": "2.1.3"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll": {
            "assemblyVersion": "2.1.3.0",
            "fileVersion": "2.1.3.18207"
          }
        }
      },
      "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets/2.1.3": {
        "dependencies": {
          "Microsoft.AspNetCore.Hosting.Abstractions": "2.1.1",
          "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "2.1.3",
          "Microsoft.Extensions.Options": "2.1.1"
        },
        "runtime": {
          "lib/netcoreapp2.1/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll": {
            "assemblyVersion": "2.1.3.0",
            "fileVersion": "2.1.3.18207"
          }
        }
      },
      "Microsoft.AspNetCore.StaticFiles/2.1.1": {
        "dependencies": {
          "Microsoft.AspNetCore.Hosting.Abstractions": "2.1.1",
          "Microsoft.AspNetCore.Http.Extensions": "2.1.1",
          "Microsoft.Extensions.FileProviders.Abstractions": "2.1.1",
          "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
          "Microsoft.Extensions.WebEncoders": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.StaticFiles.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.WebSockets/2.1.1": {
        "dependencies": {
          "Microsoft.AspNetCore.Http.Extensions": "2.1.1",
          "Microsoft.Extensions.Options": "2.1.1",
          "System.Net.WebSockets.WebSocketProtocol": "4.5.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.WebSockets.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.AspNetCore.WebUtilities/2.1.1": {
        "dependencies": {
          "Microsoft.Net.Http.Headers": "2.1.1",
          "System.Text.Encodings.Web": "4.5.0"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.CodeAnalysis.Analyzers/2.6.1": {},
      "Microsoft.CodeAnalysis.Common/2.9.0": {
        "dependencies": {
          "Microsoft.CodeAnalysis.Analyzers": "2.6.1",
          "System.AppContext": "4.3.0",
          "System.Collections": "4.3.0",
          "System.Collections.Concurrent": "4.3.0",
          "System.Collections.Immutable": "1.5.0",
          "System.Console": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Diagnostics.FileVersionInfo": "4.3.0",
          "System.Diagnostics.StackTrace": "4.3.0",
          "System.Diagnostics.Tools": "4.3.0",
          "System.Dynamic.Runtime": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.IO.Compression": "4.3.0",
          "System.IO.FileSystem": "4.3.0",
          "System.IO.FileSystem.Primitives": "4.3.0",
          "System.Linq": "4.3.0",
          "System.Linq.Expressions": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Reflection.Metadata": "1.6.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Runtime.Numerics": "4.3.0",
          "System.Security.Cryptography.Algorithms": "4.3.0",
          "System.Security.Cryptography.Encoding": "4.3.0",
          "System.Security.Cryptography.X509Certificates": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Text.Encoding.CodePages": "4.4.0",
          "System.Text.Encoding.Extensions": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Threading.Tasks": "4.3.0",
          "System.Threading.Tasks.Extensions": "4.5.1",
          "System.Threading.Tasks.Parallel": "4.3.0",
          "System.Threading.Thread": "4.3.0",
          "System.ValueTuple": "4.3.0",
          "System.Xml.ReaderWriter": "4.3.0",
          "System.Xml.XDocument": "4.3.0",
          "System.Xml.XPath.XDocument": "4.3.0",
          "System.Xml.XmlDocument": "4.3.0"
        },
        "runtime": {
          "lib/netstandard1.3/Microsoft.CodeAnalysis.dll": {
            "assemblyVersion": "2.9.0.0",
            "fileVersion": "2.9.0.63208"
          }
        },
        "resources": {
          "lib/netstandard1.3/cs/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "cs"
          },
          "lib/netstandard1.3/de/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "de"
          },
          "lib/netstandard1.3/es/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "es"
          },
          "lib/netstandard1.3/fr/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "fr"
          },
          "lib/netstandard1.3/it/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "it"
          },
          "lib/netstandard1.3/ja/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "ja"
          },
          "lib/netstandard1.3/ko/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "ko"
          },
          "lib/netstandard1.3/pl/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "pl"
          },
          "lib/netstandard1.3/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "pt-BR"
          },
          "lib/netstandard1.3/ru/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "ru"
          },
          "lib/netstandard1.3/tr/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "tr"
          },
          "lib/netstandard1.3/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "zh-Hans"
          },
          "lib/netstandard1.3/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
            "locale": "zh-Hant"
          }
        }
      },
      "Microsoft.CodeAnalysis.CSharp/2.9.0": {
        "dependencies": {
          "Microsoft.CodeAnalysis.Common": "2.9.0"
        },
        "runtime": {
          "lib/netstandard1.3/Microsoft.CodeAnalysis.CSharp.dll": {
            "assemblyVersion": "2.9.0.0",
            "fileVersion": "2.9.0.63208"
          }
        },
        "resources": {
          "lib/netstandard1.3/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "cs"
          },
          "lib/netstandard1.3/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "de"
          },
          "lib/netstandard1.3/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "es"
          },
          "lib/netstandard1.3/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "fr"
          },
          "lib/netstandard1.3/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "it"
          },
          "lib/netstandard1.3/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "ja"
          },
          "lib/netstandard1.3/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "ko"
          },
          "lib/netstandard1.3/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "pl"
          },
          "lib/netstandard1.3/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "pt-BR"
          },
          "lib/netstandard1.3/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "ru"
          },
          "lib/netstandard1.3/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "tr"
          },
          "lib/netstandard1.3/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "zh-Hans"
          },
          "lib/netstandard1.3/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
            "locale": "zh-Hant"
          }
        }
      },
      "Microsoft.CSharp/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Dynamic.Runtime": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.Linq": "4.3.0",
          "System.Linq.Expressions": "4.3.0",
          "System.ObjectModel": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Reflection.Extensions": "4.3.0",
          "System.Reflection.Primitives": "4.3.0",
          "System.Reflection.TypeExtensions": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Threading": "4.3.0"
        }
      },
      "Microsoft.Extensions.Configuration/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Configuration.Abstractions": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.Configuration.Abstractions/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Primitives": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.Configuration.Binder/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Configuration": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.Configuration.EnvironmentVariables/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Configuration": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.Configuration.FileExtensions/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Configuration": "2.1.1",
          "Microsoft.Extensions.FileProviders.Physical": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.DependencyInjection/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1"
        },
        "runtime": {
          "lib/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.DependencyInjection.Abstractions/2.1.1": {
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.FileProviders.Abstractions/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Primitives": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.FileProviders.Composite/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.FileProviders.Abstractions": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Composite.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.FileProviders.Embedded/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.FileProviders.Abstractions": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Embedded.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.FileProviders.Physical/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.FileProviders.Abstractions": "2.1.1",
          "Microsoft.Extensions.FileSystemGlobbing": "2.2.0"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.FileSystemGlobbing/2.2.0": {
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
            "assemblyVersion": "2.2.0.0",
            "fileVersion": "2.2.0.18315"
          }
        }
      },
      "Microsoft.Extensions.Hosting.Abstractions/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Configuration.Abstractions": "2.1.1",
          "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
          "Microsoft.Extensions.FileProviders.Abstractions": "2.1.1",
          "Microsoft.Extensions.Logging.Abstractions": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.Logging/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Configuration.Binder": "2.1.1",
          "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
          "Microsoft.Extensions.Logging.Abstractions": "2.1.1",
          "Microsoft.Extensions.Options": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Logging.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.Logging.Abstractions/2.1.1": {
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.ObjectPool/2.1.1": {
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.ObjectPool.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.Options/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
          "Microsoft.Extensions.Primitives": "2.1.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Options.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.Primitives/2.1.1": {
        "dependencies": {
          "System.Memory": "4.5.1",
          "System.Runtime.CompilerServices.Unsafe": "4.5.1"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Extensions.WebEncoders/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.1",
          "Microsoft.Extensions.Options": "2.1.1",
          "System.Text.Encodings.Web": "4.5.0"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Extensions.WebEncoders.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.IO.RecyclableMemoryStream/1.2.2": {
        "runtime": {
          "lib/netstandard1.4/Microsoft.IO.RecyclableMemoryStream.dll": {
            "assemblyVersion": "1.2.2.0",
            "fileVersion": "1.2.2.0"
          }
        }
      },
      "Microsoft.Net.Http.Headers/2.1.1": {
        "dependencies": {
          "Microsoft.Extensions.Primitives": "2.1.1",
          "System.Buffers": "4.5.0"
        },
        "runtime": {
          "lib/netstandard2.0/Microsoft.Net.Http.Headers.dll": {
            "assemblyVersion": "2.1.1.0",
            "fileVersion": "2.1.1.18157"
          }
        }
      },
      "Microsoft.Win32.Primitives/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "Microsoft.Win32.Registry/4.4.0": {
        "dependencies": {
          "System.Security.AccessControl": "4.4.0",
          "System.Security.Principal.Windows": "4.4.0"
        }
      },
      "Newtonsoft.Json/10.0.2": {
        "dependencies": {
          "Microsoft.CSharp": "4.3.0",
          "System.ComponentModel.TypeConverter": "4.3.0",
          "System.Runtime.Serialization.Formatters": "4.3.0",
          "System.Runtime.Serialization.Primitives": "4.3.0",
          "System.Xml.XmlDocument": "4.3.0"
        },
        "runtime": {
          "lib/netstandard1.3/Newtonsoft.Json.dll": {
            "assemblyVersion": "10.0.0.0",
            "fileVersion": "10.0.2.20802"
          }
        }
      },
      "NuGet.Client/4.2.0": {
        "dependencies": {
          "NuGet.ContentModel": "4.2.0",
          "NuGet.Packaging": "5.3.0",
          "NuGet.Repositories": "4.2.0",
          "NuGet.RuntimeModel": "4.2.0",
          "NuGet.Versioning": "5.3.0"
        },
        "runtime": {
          "lib/netstandard1.3/NuGet.Client.dll": {
            "assemblyVersion": "4.2.0.0",
            "fileVersion": "4.2.0.2457"
          }
        }
      },
      "NuGet.Commands/5.3.0": {
        "dependencies": {
          "NuGet.Credentials": "5.3.0",
          "NuGet.ProjectModel": "5.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.Commands.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.Common/5.3.0": {
        "dependencies": {
          "NuGet.Frameworks": "5.3.0",
          "System.Diagnostics.Process": "4.3.0",
          "System.Threading.Thread": "4.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.Common.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.Configuration/5.3.0": {
        "dependencies": {
          "NuGet.Common": "5.3.0",
          "System.Security.Cryptography.ProtectedData": "4.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.Configuration.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.ContentModel/4.2.0": {
        "dependencies": {
          "System.ObjectModel": "4.3.0"
        },
        "runtime": {
          "lib/netstandard1.3/NuGet.ContentModel.dll": {
            "assemblyVersion": "4.2.0.0",
            "fileVersion": "4.2.0.2457"
          }
        }
      },
      "NuGet.Credentials/5.3.0": {
        "dependencies": {
          "NuGet.Protocol": "5.3.0",
          "System.Runtime.Serialization.Formatters": "4.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.Credentials.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.DependencyResolver.Core/5.3.0": {
        "dependencies": {
          "NuGet.LibraryModel": "5.3.0",
          "NuGet.Protocol": "5.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.DependencyResolver.Core.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.Frameworks/5.3.0": {
        "runtime": {
          "lib/netstandard2.0/NuGet.Frameworks.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.LibraryModel/5.3.0": {
        "dependencies": {
          "NuGet.Common": "5.3.0",
          "NuGet.Versioning": "5.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.LibraryModel.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.PackageManagement.NetStandard/4.9.2": {
        "dependencies": {
          "NuGet.Commands": "5.3.0",
          "NuGet.Resolver": "5.3.0"
        },
        "runtime": {
          "lib/netstandard1.6/NuGet.PackageManagement.dll": {
            "assemblyVersion": "4.9.2.0",
            "fileVersion": "4.9.2.0"
          }
        }
      },
      "NuGet.Packaging/5.3.0": {
        "dependencies": {
          "Newtonsoft.Json": "10.0.2",
          "NuGet.Configuration": "5.3.0",
          "NuGet.Versioning": "5.3.0",
          "System.Dynamic.Runtime": "4.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.Packaging.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.Packaging.Core/5.3.0": {
        "dependencies": {
          "NuGet.Packaging": "5.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.Packaging.Core.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.ProjectModel/5.3.0": {
        "dependencies": {
          "NuGet.DependencyResolver.Core": "5.3.0",
          "System.Dynamic.Runtime": "4.3.0",
          "System.Threading.Thread": "4.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.ProjectModel.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.Protocol/5.3.0": {
        "dependencies": {
          "NuGet.Packaging": "5.3.0",
          "System.Dynamic.Runtime": "4.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.Protocol.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.Repositories/4.2.0": {
        "dependencies": {
          "NuGet.Packaging": "5.3.0"
        },
        "runtime": {
          "lib/netstandard1.3/NuGet.Repositories.dll": {
            "assemblyVersion": "4.2.0.0",
            "fileVersion": "4.2.0.2457"
          }
        }
      },
      "NuGet.Resolver/5.3.0": {
        "dependencies": {
          "NuGet.Protocol": "5.3.0"
        },
        "runtime": {
          "lib/netstandard2.0/NuGet.Resolver.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "NuGet.RuntimeModel/4.2.0": {
        "dependencies": {
          "Newtonsoft.Json": "10.0.2",
          "NuGet.Frameworks": "5.3.0",
          "NuGet.Versioning": "5.3.0",
          "System.Dynamic.Runtime": "4.3.0",
          "System.ObjectModel": "4.3.0"
        },
        "runtime": {
          "lib/netstandard1.3/NuGet.RuntimeModel.dll": {
            "assemblyVersion": "4.2.0.0",
            "fileVersion": "4.2.0.2457"
          }
        }
      },
      "NuGet.Versioning/5.3.0": {
        "runtime": {
          "lib/netstandard2.0/NuGet.Versioning.dll": {
            "assemblyVersion": "5.3.0.4",
            "fileVersion": "5.3.0.6251"
          }
        }
      },
      "Roslynator.Analyzers/2.0.0": {},
      "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.native.System/4.3.0": {},
      "runtime.native.System.Data.SqlClient.sni/4.4.0": {
        "dependencies": {
          "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
          "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
          "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
        }
      },
      "runtime.native.System.IO.Compression/4.3.0": {},
      "runtime.native.System.Net.Http/4.3.0": {},
      "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
        "dependencies": {
          "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
        }
      },
      "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
        "dependencies": {
          "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
          "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
          "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
          "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
          "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
          "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
          "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
          "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
          "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
          "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
        }
      },
      "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {},
      "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {},
      "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
        "runtimeTargets": {
          "runtimes/win-arm64/native/sni.dll": {
            "rid": "win-arm64",
            "assetType": "native",
            "fileVersion": "4.6.25512.1"
          }
        }
      },
      "runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
        "runtimeTargets": {
          "runtimes/win-x64/native/sni.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "4.6.25512.1"
          }
        }
      },
      "runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
        "runtimeTargets": {
          "runtimes/win-x86/native/sni.dll": {
            "rid": "win-x86",
            "assetType": "native",
            "fileVersion": "4.6.25512.1"
          }
        }
      },
      "SharpScss/1.4.0": {
        "runtime": {
          "lib/netstandard2.0/SharpScss.dll": {
            "assemblyVersion": "1.4.0.0",
            "fileVersion": "1.4.0.0"
          }
        },
        "runtimeTargets": {
          "runtimes/linux-x64/native/libsass.so": {
            "rid": "linux-x64",
            "assetType": "native",
            "fileVersion": "0.0.0.0"
          },
          "runtimes/osx-x64/native/libsass.dylib": {
            "rid": "osx-x64",
            "assetType": "native",
            "fileVersion": "0.0.0.0"
          },
          "runtimes/win-x64/native/libsass.dll": {
            "rid": "win-x64",
            "assetType": "native",
            "fileVersion": "0.0.0.0"
          },
          "runtimes/win-x86/native/libsass.dll": {
            "rid": "win-x86",
            "assetType": "native",
            "fileVersion": "0.0.0.0"
          }
        }
      },
      "StyleCop.Analyzers/1.1.1-beta.61": {
        "dependencies": {
          "StyleCop.Analyzers.Unstable": "1.1.1.61"
        }
      },
      "StyleCop.Analyzers.Unstable/1.1.1.61": {},
      "System.AppContext/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Buffers/4.5.0": {},
      "System.Collections/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Collections.Concurrent/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Diagnostics.Tracing": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Threading.Tasks": "4.3.0"
        }
      },
      "System.Collections.Immutable/1.5.0": {},
      "System.Collections.NonGeneric/4.3.0": {
        "dependencies": {
          "System.Diagnostics.Debug": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0"
        }
      },
      "System.Collections.Specialized/4.3.0": {
        "dependencies": {
          "System.Collections.NonGeneric": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.Globalization.Extensions": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0"
        }
      },
      "System.ComponentModel/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.ComponentModel.Primitives/4.3.0": {
        "dependencies": {
          "System.ComponentModel": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.ComponentModel.TypeConverter/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Collections.NonGeneric": "4.3.0",
          "System.Collections.Specialized": "4.3.0",
          "System.ComponentModel": "4.3.0",
          "System.ComponentModel.Primitives": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.Linq": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Reflection.Extensions": "4.3.0",
          "System.Reflection.Primitives": "4.3.0",
          "System.Reflection.TypeExtensions": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0"
        }
      },
      "System.Console/4.3.0": {
        "dependencies": {
          "System.IO": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Text.Encoding": "4.3.0"
        }
      },
      "System.Data.Common/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.IO": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Text.RegularExpressions": "4.3.0",
          "System.Threading.Tasks": "4.3.0"
        }
      },
      "System.Data.SqlClient/4.4.3": {
        "dependencies": {
          "Microsoft.Win32.Registry": "4.4.0",
          "System.Security.Principal.Windows": "4.4.0",
          "System.Text.Encoding.CodePages": "4.4.0",
          "runtime.native.System.Data.SqlClient.sni": "4.4.0"
        },
        "runtime": {
          "lib/netstandard2.0/System.Data.SqlClient.dll": {
            "assemblyVersion": "4.2.0.2",
            "fileVersion": "4.6.26212.1"
          }
        },
        "runtimeTargets": {
          "runtimes/unix/lib/netstandard2.0/System.Data.SqlClient.dll": {
            "rid": "unix",
            "assetType": "runtime",
            "assemblyVersion": "4.2.0.2",
            "fileVersion": "4.6.26212.1"
          },
          "runtimes/win/lib/netstandard2.0/System.Data.SqlClient.dll": {
            "rid": "win",
            "assetType": "runtime",
            "assemblyVersion": "4.2.0.2",
            "fileVersion": "4.6.26212.1"
          }
        }
      },
      "System.Diagnostics.Debug/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Diagnostics.DiagnosticSource/4.5.0": {},
      "System.Diagnostics.FileVersionInfo/4.3.0": {
        "dependencies": {
          "System.Globalization": "4.3.0",
          "System.IO": "4.3.0",
          "System.IO.FileSystem": "4.3.0",
          "System.IO.FileSystem.Primitives": "4.3.0",
          "System.Reflection.Metadata": "1.6.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0"
        }
      },
      "System.Diagnostics.Process/4.3.0": {
        "dependencies": {
          "Microsoft.Win32.Primitives": "4.3.0",
          "Microsoft.Win32.Registry": "4.4.0",
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.IO": "4.3.0",
          "System.IO.FileSystem": "4.3.0",
          "System.IO.FileSystem.Primitives": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.Handles": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Text.Encoding.Extensions": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Threading.Tasks": "4.3.0",
          "System.Threading.Thread": "4.3.0",
          "System.Threading.ThreadPool": "4.3.0",
          "runtime.native.System": "4.3.0"
        }
      },
      "System.Diagnostics.StackTrace/4.3.0": {
        "dependencies": {
          "System.IO.FileSystem": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Reflection.Metadata": "1.6.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Diagnostics.Tools/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Diagnostics.TraceSource/4.0.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0",
          "runtime.native.System": "4.3.0"
        }
      },
      "System.Diagnostics.Tracing/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Dynamic.Runtime/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Linq": "4.3.0",
          "System.Linq.Expressions": "4.3.0",
          "System.ObjectModel": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Reflection.Emit": "4.3.0",
          "System.Reflection.Emit.ILGeneration": "4.3.0",
          "System.Reflection.Primitives": "4.3.0",
          "System.Reflection.TypeExtensions": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0"
        }
      },
      "System.Globalization/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Globalization.Calendars/4.3.0": {
        "dependencies": {
          "System.Globalization": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Globalization.Extensions/4.3.0": {
        "dependencies": {
          "System.Globalization": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0"
        }
      },
      "System.IO/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Threading.Tasks": "4.3.0"
        }
      },
      "System.IO.Compression/4.3.0": {
        "dependencies": {
          "System.Buffers": "4.5.0",
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.IO": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.Handles": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Threading.Tasks": "4.3.0",
          "runtime.native.System": "4.3.0",
          "runtime.native.System.IO.Compression": "4.3.0"
        }
      },
      "System.IO.FileSystem/4.3.0": {
        "dependencies": {
          "System.IO": "4.3.0",
          "System.IO.FileSystem.Primitives": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Handles": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Threading.Tasks": "4.3.0"
        }
      },
      "System.IO.FileSystem.Primitives/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.IO.FileSystem.Watcher/4.0.0": {
        "dependencies": {
          "Microsoft.Win32.Primitives": "4.3.0",
          "System.Collections": "4.3.0",
          "System.IO.FileSystem": "4.3.0",
          "System.IO.FileSystem.Primitives": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.Handles": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Threading.Overlapped": "4.0.1",
          "System.Threading.Tasks": "4.3.0",
          "System.Threading.Thread": "4.3.0",
          "runtime.native.System": "4.3.0"
        }
      },
      "System.IO.Pipelines/4.5.0": {
        "runtime": {
          "lib/netcoreapp2.1/System.IO.Pipelines.dll": {
            "assemblyVersion": "4.0.0.0",
            "fileVersion": "4.6.26515.6"
          }
        }
      },
      "System.Linq/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0"
        }
      },
      "System.Linq.Expressions/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.IO": "4.3.0",
          "System.Linq": "4.3.0",
          "System.ObjectModel": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Reflection.Emit": "4.3.0",
          "System.Reflection.Emit.ILGeneration": "4.3.0",
          "System.Reflection.Emit.Lightweight": "4.3.0",
          "System.Reflection.Extensions": "4.3.0",
          "System.Reflection.Primitives": "4.3.0",
          "System.Reflection.TypeExtensions": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0"
        }
      },
      "System.Memory/4.5.1": {},
      "System.Net.WebSockets.WebSocketProtocol/4.5.1": {
        "runtime": {
          "lib/netcoreapp2.1/System.Net.WebSockets.WebSocketProtocol.dll": {
            "assemblyVersion": "4.0.0.0",
            "fileVersion": "4.6.26606.5"
          }
        }
      },
      "System.Numerics.Vectors/4.5.0": {},
      "System.ObjectModel/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Threading": "4.3.0"
        }
      },
      "System.Reflection/4.3.0": {
        "dependencies": {
          "System.IO": "4.3.0",
          "System.Reflection.Primitives": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Reflection.Emit/4.3.0": {
        "dependencies": {
          "System.IO": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Reflection.Emit.ILGeneration": "4.3.0",
          "System.Reflection.Primitives": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Reflection.Emit.ILGeneration/4.3.0": {
        "dependencies": {
          "System.Reflection": "4.3.0",
          "System.Reflection.Primitives": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Reflection.Emit.Lightweight/4.3.0": {
        "dependencies": {
          "System.Reflection": "4.3.0",
          "System.Reflection.Emit.ILGeneration": "4.3.0",
          "System.Reflection.Primitives": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Reflection.Extensions/4.3.0": {
        "dependencies": {
          "System.Reflection": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Reflection.Metadata/1.6.0": {},
      "System.Reflection.Primitives/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Reflection.TypeExtensions/4.3.0": {
        "dependencies": {
          "System.Reflection": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Resources.ResourceManager/4.3.0": {
        "dependencies": {
          "System.Globalization": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Runtime/4.3.0": {},
      "System.Runtime.CompilerServices.Unsafe/4.5.1": {
        "runtime": {
          "lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll": {
            "assemblyVersion": "4.0.4.0",
            "fileVersion": "0.0.0.0"
          }
        }
      },
      "System.Runtime.Extensions/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Runtime.Handles/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Runtime.InteropServices/4.3.0": {
        "dependencies": {
          "System.Reflection": "4.3.0",
          "System.Reflection.Primitives": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Handles": "4.3.0"
        }
      },
      "System.Runtime.Numerics/4.3.0": {
        "dependencies": {
          "System.Globalization": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0"
        }
      },
      "System.Runtime.Serialization.Formatters/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Serialization.Primitives": "4.3.0"
        }
      },
      "System.Runtime.Serialization.Primitives/4.3.0": {
        "dependencies": {
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Security.AccessControl/4.4.0": {
        "dependencies": {
          "System.Security.Principal.Windows": "4.4.0"
        }
      },
      "System.Security.Cryptography.Algorithms/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.IO": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.Handles": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Runtime.Numerics": "4.3.0",
          "System.Security.Cryptography.Encoding": "4.3.0",
          "System.Security.Cryptography.Primitives": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
        }
      },
      "System.Security.Cryptography.Cng/4.5.0": {},
      "System.Security.Cryptography.Csp/4.3.0": {
        "dependencies": {
          "System.IO": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.Handles": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Security.Cryptography.Algorithms": "4.3.0",
          "System.Security.Cryptography.Encoding": "4.3.0",
          "System.Security.Cryptography.Primitives": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Threading": "4.3.0"
        }
      },
      "System.Security.Cryptography.Encoding/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Collections.Concurrent": "4.3.0",
          "System.Linq": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.Handles": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Security.Cryptography.Primitives": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
        }
      },
      "System.Security.Cryptography.OpenSsl/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.IO": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.Handles": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Runtime.Numerics": "4.3.0",
          "System.Security.Cryptography.Algorithms": "4.3.0",
          "System.Security.Cryptography.Encoding": "4.3.0",
          "System.Security.Cryptography.Primitives": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
        }
      },
      "System.Security.Cryptography.Primitives/4.3.0": {
        "dependencies": {
          "System.Diagnostics.Debug": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.IO": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Threading.Tasks": "4.3.0"
        }
      },
      "System.Security.Cryptography.ProtectedData/4.3.0": {
        "dependencies": {
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Security.Cryptography.Primitives": "4.3.0"
        },
        "runtimeTargets": {
          "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll": {
            "rid": "unix",
            "assetType": "runtime",
            "assemblyVersion": "4.0.1.0",
            "fileVersion": "4.6.24705.1"
          },
          "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.ProtectedData.dll": {
            "rid": "win",
            "assetType": "runtime",
            "assemblyVersion": "4.0.1.0",
            "fileVersion": "4.6.24705.1"
          }
        }
      },
      "System.Security.Cryptography.X509Certificates/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.Globalization.Calendars": "4.3.0",
          "System.IO": "4.3.0",
          "System.IO.FileSystem": "4.3.0",
          "System.IO.FileSystem.Primitives": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.Handles": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Runtime.Numerics": "4.3.0",
          "System.Security.Cryptography.Algorithms": "4.3.0",
          "System.Security.Cryptography.Cng": "4.5.0",
          "System.Security.Cryptography.Csp": "4.3.0",
          "System.Security.Cryptography.Encoding": "4.3.0",
          "System.Security.Cryptography.OpenSsl": "4.3.0",
          "System.Security.Cryptography.Primitives": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Threading": "4.3.0",
          "runtime.native.System": "4.3.0",
          "runtime.native.System.Net.Http": "4.3.0",
          "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
        }
      },
      "System.Security.Principal.Windows/4.4.0": {},
      "System.Text.Encoding/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Text.Encoding.CodePages/4.4.0": {
        "runtime": {
          "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {
            "assemblyVersion": "4.1.0.0",
            "fileVersion": "4.6.25519.3"
          }
        },
        "runtimeTargets": {
          "runtimes/win/lib/netcoreapp2.0/System.Text.Encoding.CodePages.dll": {
            "rid": "win",
            "assetType": "runtime",
            "assemblyVersion": "4.1.0.0",
            "fileVersion": "4.6.25519.3"
          }
        }
      },
      "System.Text.Encoding.Extensions/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0",
          "System.Text.Encoding": "4.3.0"
        }
      },
      "System.Text.Encodings.Web/4.5.0": {
        "runtime": {
          "lib/netstandard2.0/System.Text.Encodings.Web.dll": {
            "assemblyVersion": "4.0.3.0",
            "fileVersion": "4.6.26515.6"
          }
        }
      },
      "System.Text.RegularExpressions/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Threading/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0",
          "System.Threading.Tasks": "4.3.0"
        }
      },
      "System.Threading.Overlapped/4.0.1": {
        "dependencies": {
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Handles": "4.3.0"
        }
      },
      "System.Threading.Tasks/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Threading.Tasks.Extensions/4.5.1": {},
      "System.Threading.Tasks.Parallel/4.3.0": {
        "dependencies": {
          "System.Collections.Concurrent": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Diagnostics.Tracing": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Threading.Tasks": "4.3.0"
        }
      },
      "System.Threading.Thread/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0"
        }
      },
      "System.Threading.ThreadPool/4.3.0": {
        "dependencies": {
          "System.Runtime": "4.3.0",
          "System.Runtime.Handles": "4.3.0"
        }
      },
      "System.ValueTuple/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0"
        }
      },
      "System.Xml.ReaderWriter/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.IO": "4.3.0",
          "System.IO.FileSystem": "4.3.0",
          "System.IO.FileSystem.Primitives": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Runtime.InteropServices": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Text.Encoding.Extensions": "4.3.0",
          "System.Text.RegularExpressions": "4.3.0",
          "System.Threading.Tasks": "4.3.0",
          "System.Threading.Tasks.Extensions": "4.5.1"
        }
      },
      "System.Xml.XDocument/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Diagnostics.Tools": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.IO": "4.3.0",
          "System.Reflection": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Xml.ReaderWriter": "4.3.0"
        }
      },
      "System.Xml.XmlDocument/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.IO": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Text.Encoding": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Xml.ReaderWriter": "4.3.0"
        }
      },
      "System.Xml.XPath/4.3.0": {
        "dependencies": {
          "System.Collections": "4.3.0",
          "System.Diagnostics.Debug": "4.3.0",
          "System.Globalization": "4.3.0",
          "System.IO": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Xml.ReaderWriter": "4.3.0"
        }
      },
      "System.Xml.XPath.XDocument/4.3.0": {
        "dependencies": {
          "System.Diagnostics.Debug": "4.3.0",
          "System.Linq": "4.3.0",
          "System.Resources.ResourceManager": "4.3.0",
          "System.Runtime": "4.3.0",
          "System.Runtime.Extensions": "4.3.0",
          "System.Threading": "4.3.0",
          "System.Xml.ReaderWriter": "4.3.0",
          "System.Xml.XDocument": "4.3.0",
          "System.Xml.XPath": "4.3.0"
        }
      },
      "UniversalTypeConverter/1.0.4": {
        "dependencies": {
          "System.ComponentModel.TypeConverter": "4.3.0",
          "System.Data.Common": "4.3.0"
        },
        "runtime": {
          "lib/netstandard1.3/UniversalTypeConverter.dll": {
            "assemblyVersion": "1.0.3.1",
            "fileVersion": "1.0.3.1"
          }
        }
      },
      "Wyam.Common/2.2.9": {
        "runtime": {
          "Wyam.Common.dll": {}
        }
      },
      "Wyam.Configuration/2.2.9": {
        "dependencies": {
          "ConcurrentHashSet": "1.0.2",
          "Microsoft.CodeAnalysis.CSharp": "2.9.0",
          "NuGet.Client": "4.2.0",
          "NuGet.Commands": "5.3.0",
          "NuGet.Common": "5.3.0",
          "NuGet.Configuration": "5.3.0",
          "NuGet.ContentModel": "4.2.0",
          "NuGet.DependencyResolver.Core": "5.3.0",
          "NuGet.Frameworks": "5.3.0",
          "NuGet.LibraryModel": "5.3.0",
          "NuGet.PackageManagement.NetStandard": "4.9.2",
          "NuGet.Packaging": "5.3.0",
          "NuGet.Packaging.Core": "5.3.0",
          "NuGet.ProjectModel": "5.3.0",
          "NuGet.Repositories": "4.2.0",
          "NuGet.Resolver": "5.3.0",
          "NuGet.RuntimeModel": "4.2.0",
          "NuGet.Versioning": "5.3.0"
        },
        "runtime": {
          "Wyam.Configuration.dll": {}
        }
      },
      "Wyam.Core/2.2.9": {
        "dependencies": {
          "ConcurrentHashSet": "1.0.2",
          "JSPool": "2.0.1",
          "JavaScriptEngineSwitcher.Core": "3.0.0",
          "JavaScriptEngineSwitcher.Jint": "3.0.0",
          "Microsoft.Extensions.FileSystemGlobbing": "2.2.0",
          "Microsoft.IO.RecyclableMemoryStream": "1.2.2",
          "System.Collections.Immutable": "1.5.0",
          "System.Data.SqlClient": "4.4.3",
          "UniversalTypeConverter": "1.0.4"
        },
        "runtime": {
          "Wyam.Core.dll": {}
        }
      },
      "Wyam.Hosting/2.2.9": {
        "dependencies": {
          "Microsoft.AspNetCore.Hosting": "2.1.1",
          "Microsoft.AspNetCore.Owin": "2.1.1",
          "Microsoft.AspNetCore.Server.Kestrel": "2.1.3",
          "Microsoft.AspNetCore.StaticFiles": "2.1.1",
          "Microsoft.AspNetCore.WebSockets": "2.1.1",
          "Microsoft.Extensions.FileProviders.Composite": "2.1.1",
          "Microsoft.Extensions.FileProviders.Embedded": "2.1.1",
          "Microsoft.Extensions.FileProviders.Physical": "2.1.1",
          "Newtonsoft.Json": "10.0.2",
          "Wyam.Common": "2.2.9"
        },
        "runtime": {
          "Wyam.Hosting.dll": {}
        }
      },
      "System.CommandLine/4.0.0.0": {
        "runtime": {
          "System.CommandLine.dll": {
            "assemblyVersion": "4.0.0.0",
            "fileVersion": "1.0.0.0"
          }
        }
      }
    }
  },
  "libraries": {
    "Wyam/2.2.9": {
      "type": "project",
      "serviceable": false,
      "sha512": ""
    },
    "AdvancedStringBuilder/0.1.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-IbN3r5whlJvi8MhCDPVpIb+NVScyUcKSdcJZrnoXFDyzPDISl3AbWouNBYIHRdZdfGuzqCQEhM1vkxbIKqQVaQ==",
      "path": "advancedstringbuilder/0.1.0",
      "hashPath": "advancedstringbuilder.0.1.0.nupkg.sha512"
    },
    "ConcurrentHashSet/1.0.2": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-grGTEZmpyVbJBtg0lkCjLEEyouBUZwno7Hlni4drbuTkjhPtafPy/fpUOzzGdge1z+rNwznYgTuTnAzsT6uTmQ==",
      "path": "concurrenthashset/1.0.2",
      "hashPath": "concurrenthashset.1.0.2.nupkg.sha512"
    },
    "JavaScriptEngineSwitcher.Core/3.0.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-tDhw+nV/iqYVAFz+cd28z7mOWykp0DqMe1hlKE4QcRq96Od1N4D7w6f0wlUgxGsjbzhbizXvwA1o4cIXworumg==",
      "path": "javascriptengineswitcher.core/3.0.0",
      "hashPath": "javascriptengineswitcher.core.3.0.0.nupkg.sha512"
    },
    "JavaScriptEngineSwitcher.Jint/3.0.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-oC2XcL6u0lefRPba8wqh157qJ7KY+c/mT+aIFepMZE+8GL/dNKuv6fPf1sDr+ZBWAR2TNE14+0UOEh78hYHyZA==",
      "path": "javascriptengineswitcher.jint/3.0.0",
      "hashPath": "javascriptengineswitcher.jint.3.0.0.nupkg.sha512"
    },
    "Jint/2.11.58": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-obRlPnuSmbjO7I2bfuKc1d+K1LB3xyg1Cnm2MT7PGUOHOntcdR96pDhsQnWBI5Dhxqr1Bj5/odpNi/B+AwVlPA==",
      "path": "jint/2.11.58",
      "hashPath": "jint.2.11.58.nupkg.sha512"
    },
    "JSPool/2.0.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-gtSD25qCEEp21z6F9PxZiJNyzMKlHqq9bOSZd9R8ETLZrm3WCCSOnIjS4x8mzXJvkEyhI2sJXZFyxl3oQla6QQ==",
      "path": "jspool/2.0.1",
      "hashPath": "jspool.2.0.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Connections.Abstractions/2.1.3": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-ZpizM+XToYZUBK9F/V5mVgQ5yFA8H7t9Ba4UiDrBuYkzBGVh/e+87A29OHZSaJh+dns8GUTP6IucQ6713ZQwQQ==",
      "path": "microsoft.aspnetcore.connections.abstractions/2.1.3",
      "hashPath": "microsoft.aspnetcore.connections.abstractions.2.1.3.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Hosting/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-MqYc0DUxrhAPnb5b4HFspxsoJT+gJlLsliSxIgovf4BsbmpaXQId0/pDiVzLuEbmks2w1/lRfY8w0lQOuK1jQQ==",
      "path": "microsoft.aspnetcore.hosting/2.1.1",
      "hashPath": "microsoft.aspnetcore.hosting.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Hosting.Abstractions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-76cKcp2pWhvdV2TXTqMg/DyW7N6cDzTEhtL8vVWFShQN+Ylwv3eO/vUQr2BS3Hz4IZHEpL+FOo2T+MtymHDqDQ==",
      "path": "microsoft.aspnetcore.hosting.abstractions/2.1.1",
      "hashPath": "microsoft.aspnetcore.hosting.abstractions.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-+vD7HJYzAXNq17t+NgRkpS38cxuAyOBu8ixruOiA3nWsybozolUdALWiZ5QFtGRzajSLPFA2YsbO3NPcqoUwcw==",
      "path": "microsoft.aspnetcore.hosting.server.abstractions/2.1.1",
      "hashPath": "microsoft.aspnetcore.hosting.server.abstractions.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Http/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-pPDcCW8spnyibK3krpxrOpaFHf5fjV6k1Hsl6gfh77N/8gRYlLU7MOQDUnjpEwdlHmtxwJKQJNxZqVQOmJGRUw==",
      "path": "microsoft.aspnetcore.http/2.1.1",
      "hashPath": "microsoft.aspnetcore.http.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Http.Abstractions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-kQUEVOU4loc8CPSb2WoHFTESqwIa8Ik7ysCBfTwzHAd0moWovc9JQLmhDIHlYLjHbyexqZAlkq/FPRUZqokebw==",
      "path": "microsoft.aspnetcore.http.abstractions/2.1.1",
      "hashPath": "microsoft.aspnetcore.http.abstractions.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Http.Extensions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-ncAgV+cqsWSqjLXFUTyObGh4Tr7ShYYs3uW8Q/YpRwZn7eLV7dux5Z6GLY+rsdzmIHiia3Q2NWbLULQi7aziHw==",
      "path": "microsoft.aspnetcore.http.extensions/2.1.1",
      "hashPath": "microsoft.aspnetcore.http.extensions.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Http.Features/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-VklZ7hWgSvHBcDtwYYkdMdI/adlf7ebxTZ9kdzAhX+gUs5jSHE9mZlTamdgf9miSsxc1QjNazHXTDJdVPZKKTw==",
      "path": "microsoft.aspnetcore.http.features/2.1.1",
      "hashPath": "microsoft.aspnetcore.http.features.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Owin/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-OKovgdeKNc2XE31363rCa5ON30FFlcjC4zfsXRokpHZdVUX1A0cllNlXyNggJf1K+5DepBr/fv6BuuX6x/ZZYQ==",
      "path": "microsoft.aspnetcore.owin/2.1.1",
      "hashPath": "microsoft.aspnetcore.owin.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Server.Kestrel/2.1.3": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-+JDnYueC3ptdD98D8QoIddBWwzeWAFQiS0j1f3R0A8O2VulFnm0F8HGPHEOYonuqYI4mcJ1UErf/PQHwduDy+A==",
      "path": "microsoft.aspnetcore.server.kestrel/2.1.3",
      "hashPath": "microsoft.aspnetcore.server.kestrel.2.1.3.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Server.Kestrel.Core/2.1.3": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-Oz8zNBhSHINGtOVqujnBMKDq9oVv54riu6zIKXcIcJxBfRAfbpAm2Uq9HhHYY0bqHn1XS+lvDJpZbV1++sbCSw==",
      "path": "microsoft.aspnetcore.server.kestrel.core/2.1.3",
      "hashPath": "microsoft.aspnetcore.server.kestrel.core.2.1.3.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Server.Kestrel.Https/2.1.3": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-rR2P+W1zxTZk+W0U6cfnGs5q3ksCXbuvvEtU9RHoLJ2rLz2IDFv9JJf3PGoD0ONu0JzOCbwZzLcsBMxdes/mVA==",
      "path": "microsoft.aspnetcore.server.kestrel.https/2.1.3",
      "hashPath": "microsoft.aspnetcore.server.kestrel.https.2.1.3.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions/2.1.3": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-eWuUt5eSDdpBwNRZdFf7FiKcpNBZ/wETKSgf5weAfTxpGKwmfftrViiMJQgCwxlntgLzL1MYCZf51A8O2Xq9Ng==",
      "path": "microsoft.aspnetcore.server.kestrel.transport.abstractions/2.1.3",
      "hashPath": "microsoft.aspnetcore.server.kestrel.transport.abstractions.2.1.3.nupkg.sha512"
    },
    "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets/2.1.3": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-qaEW5rAhAoSKNqO6nRWFMHp5CpgSxnz+jk6e4g+AOQhQZroJrS/DtnhY2WxvbyzJ6V7kKv7Mis7vgylTtmcrFg==",
      "path": "microsoft.aspnetcore.server.kestrel.transport.sockets/2.1.3",
      "hashPath": "microsoft.aspnetcore.server.kestrel.transport.sockets.2.1.3.nupkg.sha512"
    },
    "Microsoft.AspNetCore.StaticFiles/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-THLu6XGauf9kdAI0OyjoqvY/11Ap/Ra/ZNHfWQjrsS4b0AhvzUZgyuq5xYrmdA4+3goRxkqbH2xvrIISGGsukA==",
      "path": "microsoft.aspnetcore.staticfiles/2.1.1",
      "hashPath": "microsoft.aspnetcore.staticfiles.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.WebSockets/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-wvp85LiIDuFAtbn5FiD4dpAXUBI203yBEtKeNE1I1ipSrUugY2lJVpZAP+C5F5AJ1RZtWvBl+AP1mhkuDNWpag==",
      "path": "microsoft.aspnetcore.websockets/2.1.1",
      "hashPath": "microsoft.aspnetcore.websockets.2.1.1.nupkg.sha512"
    },
    "Microsoft.AspNetCore.WebUtilities/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-PGKIZt4+412Z/XPoSjvYu/QIbTxcAQuEFNoA1Pw8a9mgmO0ZhNBmfaNyhgXFf7Rq62kP0tT/2WXpxdcQhkFUPA==",
      "path": "microsoft.aspnetcore.webutilities/2.1.1",
      "hashPath": "microsoft.aspnetcore.webutilities.2.1.1.nupkg.sha512"
    },
    "Microsoft.CodeAnalysis.Analyzers/2.6.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-VsT6gg2SPeToP8SK7PEcsH6Ftryb7aOqnXh9xg11zBeov05+63gP3k/TvrR+v85XIa8Nn0y3+qNl4M+qzNLBfw==",
      "path": "microsoft.codeanalysis.analyzers/2.6.1",
      "hashPath": "microsoft.codeanalysis.analyzers.2.6.1.nupkg.sha512"
    },
    "Microsoft.CodeAnalysis.Common/2.9.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-M06oYATUMAqL/ympQ09zNHOrRc6sEwgsiueK6z+QPOgyr028i54NviKy7Evfcvv7Kr0LX9MEmrKXPO2NZ+bZ5Q==",
      "path": "microsoft.codeanalysis.common/2.9.0",
      "hashPath": "microsoft.codeanalysis.common.2.9.0.nupkg.sha512"
    },
    "Microsoft.CodeAnalysis.CSharp/2.9.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-oiCPHjCLZtyAz/vnMRJI0PrhR/amJiR9RIwPpQ3+DMs7TgegGn65/dqYEcoiWSj8YQvwOK/J640EXMydMDLJVQ==",
      "path": "microsoft.codeanalysis.csharp/2.9.0",
      "hashPath": "microsoft.codeanalysis.csharp.2.9.0.nupkg.sha512"
    },
    "Microsoft.CSharp/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-P+MBhIM0YX+JqROuf7i306ZLJEjQYA9uUyRDE+OqwUI5sh41e2ZbPQV3LfAPh+29cmceE1pUffXsGfR4eMY3KA==",
      "path": "microsoft.csharp/4.3.0",
      "hashPath": "microsoft.csharp.4.3.0.nupkg.sha512"
    },
    "Microsoft.Extensions.Configuration/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-LjVKO6P2y52c5ZhTLX/w8zc5H4Y3J/LJsgqTBj49TtFq/hAtVNue/WA0F6/7GMY90xhD7K0MDZ4qpOeWXbLvzg==",
      "path": "microsoft.extensions.configuration/2.1.1",
      "hashPath": "microsoft.extensions.configuration.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.Configuration.Abstractions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-VfuZJNa0WUshZ/+8BFZAhwFKiKuu/qOUCFntfdLpHj7vcRnsGHqd3G2Hse78DM+pgozczGM63lGPRLmy+uhUOA==",
      "path": "microsoft.extensions.configuration.abstractions/2.1.1",
      "hashPath": "microsoft.extensions.configuration.abstractions.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.Configuration.Binder/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-fcLCTS03poWE4v9tSNBr3pWn0QwGgAn1vzqHXlXgvqZeOc7LvQNzaWcKRQZTdEc3+YhQKwMsOtm3VKSA2aWQ8w==",
      "path": "microsoft.extensions.configuration.binder/2.1.1",
      "hashPath": "microsoft.extensions.configuration.binder.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.Configuration.EnvironmentVariables/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-6xMxFIfKL+7J/jwlk8zV8I61sF3+DRG19iKQxnSfYQU+iMMjGbcWNCHFF/3MHf3o4sTZPZ8D6Io+GwKFc3TIZA==",
      "path": "microsoft.extensions.configuration.environmentvariables/2.1.1",
      "hashPath": "microsoft.extensions.configuration.environmentvariables.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.Configuration.FileExtensions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-CDk5CwG0YzlRgvl65J0iK6ahrX12yMRrEat3yVTXjWC+GN9Jg9zHZu2IE4cQIPAMA/IiAI5KjgL08fhP3fPCkw==",
      "path": "microsoft.extensions.configuration.fileextensions/2.1.1",
      "hashPath": "microsoft.extensions.configuration.fileextensions.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.DependencyInjection/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-RVdgNWT/73M0eCpreGpWv5NmbHFGQzzW+G7nChK8ej84m+d1nzeWrtqcRYnEpKNx3B8V/Uek4tNP0WCaCNjYnQ==",
      "path": "microsoft.extensions.dependencyinjection/2.1.1",
      "hashPath": "microsoft.extensions.dependencyinjection.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.DependencyInjection.Abstractions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-MgYpU5cwZohUMKKg3sbPhvGG+eAZ/59E9UwPwlrUkyXU+PGzqwZg9yyQNjhxuAWmoNoFReoemeCku50prYSGzA==",
      "path": "microsoft.extensions.dependencyinjection.abstractions/2.1.1",
      "hashPath": "microsoft.extensions.dependencyinjection.abstractions.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.FileProviders.Abstractions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-UEQB5/QPuLYaCvScZQ9llhcks5xyEUKh41D615FoehRAF9UgGVmXHcCSOH8idHHLRoKm+OJJjEy1oywvuaL33w==",
      "path": "microsoft.extensions.fileproviders.abstractions/2.1.1",
      "hashPath": "microsoft.extensions.fileproviders.abstractions.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.FileProviders.Composite/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-fduNXRROUeV1bvFr7xkeRkTU/gVfqu5hmfqxiJiciOjwH3Q+UOADiXAWoPfnQiwpZEmsCC6z+hIIyBOnO4i5Yw==",
      "path": "microsoft.extensions.fileproviders.composite/2.1.1",
      "hashPath": "microsoft.extensions.fileproviders.composite.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.FileProviders.Embedded/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-TYyZBm9rxNtXvAK81E53VOxWnEbnbDZVzWjwbvgox5oHMUTm3Blm4p6MyK2Rlj2d/tEMK0ofG4ooUEaKYS8Lpg==",
      "path": "microsoft.extensions.fileproviders.embedded/2.1.1",
      "hashPath": "microsoft.extensions.fileproviders.embedded.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.FileProviders.Physical/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-kVCvLm1ePchUgRrQZrno07Mn6knDAzR7vl6eRaI/fem0u6ODg+RTwOYLs4XL39Ttuu+BzEwqzHu3DtDgXT8+vQ==",
      "path": "microsoft.extensions.fileproviders.physical/2.1.1",
      "hashPath": "microsoft.extensions.fileproviders.physical.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.FileSystemGlobbing/2.2.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-ZSsHZp3PyW6vk37tDEdypjgGlNtpJ0EixBMOfUod2Thx7GtwfFSAQXUQx8a8BN8vfWKGGMbp7jPWdoHx/At4wQ==",
      "path": "microsoft.extensions.filesystemglobbing/2.2.0",
      "hashPath": "microsoft.extensions.filesystemglobbing.2.2.0.nupkg.sha512"
    },
    "Microsoft.Extensions.Hosting.Abstractions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-kVVdHnOFJbcXxgZzrT6nwkrWZTHL+47LT59S9J2Jp0BNO3EQWNEZHUUZMb/kKFV7LtW+bp+EuAOPNUqEcqI++Q==",
      "path": "microsoft.extensions.hosting.abstractions/2.1.1",
      "hashPath": "microsoft.extensions.hosting.abstractions.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.Logging/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-hh+mkOAQDTp6XH80xJt3+wwYVzkbwYQl9XZRCz4Um0JjP/o7N9vHM3rZ6wwwtr+BBe/L6iBO2sz0px6OWBzqZQ==",
      "path": "microsoft.extensions.logging/2.1.1",
      "hashPath": "microsoft.extensions.logging.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.Logging.Abstractions/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-XRzK7ZF+O6FzdfWrlFTi1Rgj2080ZDsd46vzOjadHUB0Cz5kOvDG8vI7caa5YFrsHQpcfn0DxtjS4E46N4FZsA==",
      "path": "microsoft.extensions.logging.abstractions/2.1.1",
      "hashPath": "microsoft.extensions.logging.abstractions.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.ObjectPool/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-SErON45qh4ogDp6lr6UvVmFYW0FERihW+IQ+2JyFv1PUyWktcJytFaWH5zarufJvZwhci7Rf1IyGXr9pVEadTw==",
      "path": "microsoft.extensions.objectpool/2.1.1",
      "hashPath": "microsoft.extensions.objectpool.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.Options/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-V7lXCU78lAbzaulCGFKojcCyG8RTJicEbiBkPJjFqiqXwndEBBIehdXRMWEVU3UtzQ1yDvphiWUL9th6/4gJ7w==",
      "path": "microsoft.extensions.options/2.1.1",
      "hashPath": "microsoft.extensions.options.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.Primitives/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-scJ1GZNIxMmjpENh0UZ8XCQ6vzr/LzeF9WvEA51Ix2OQGAs9WPgPu8ABVUdvpKPLuor/t05gm6menJK3PwqOXg==",
      "path": "microsoft.extensions.primitives/2.1.1",
      "hashPath": "microsoft.extensions.primitives.2.1.1.nupkg.sha512"
    },
    "Microsoft.Extensions.WebEncoders/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-XIuJXPNUAX/ZV/onarixNoq3kO7Q9/RXXOY8hhYydsDwHI9PqPeJH6WE3LmPJJDmB+7y3+MT6ZmW78gZZDApBA==",
      "path": "microsoft.extensions.webencoders/2.1.1",
      "hashPath": "microsoft.extensions.webencoders.2.1.1.nupkg.sha512"
    },
    "Microsoft.IO.RecyclableMemoryStream/1.2.2": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-LA4RBTStohA0hAAs6oKchmIC5M5Mjd5MwfB7vbbl+312N5kXj8abTGOgwZy6ASJYLCiqiiK5kHS0hDGEgfkB8g==",
      "path": "microsoft.io.recyclablememorystream/1.2.2",
      "hashPath": "microsoft.io.recyclablememorystream.1.2.2.nupkg.sha512"
    },
    "Microsoft.Net.Http.Headers/2.1.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-lPNIphl8b2EuhOE9dMH6EZDmu7pS882O+HMi5BJNsigxHaWlBrYxZHFZgE18cyaPp6SSZcTkKkuzfjV/RRQKlA==",
      "path": "microsoft.net.http.headers/2.1.1",
      "hashPath": "microsoft.net.http.headers.2.1.1.nupkg.sha512"
    },
    "Microsoft.Win32.Primitives/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
      "path": "microsoft.win32.primitives/4.3.0",
      "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512"
    },
    "Microsoft.Win32.Registry/4.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-dA36TlNVn/XfrZtmf0fiI/z1nd3Wfp2QVzTdj26pqgP9LFWq0i1hYEUAW50xUjGFYn1+/cP3KGuxT2Yn1OUNBQ==",
      "path": "microsoft.win32.registry/4.4.0",
      "hashPath": "microsoft.win32.registry.4.4.0.nupkg.sha512"
    },
    "Newtonsoft.Json/10.0.2": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-iwElSU2IXmwGvytJsezyDML2ZWDkG2JzTYzlU/BNlmzMdlmRvbnwITsGGY74gwVEpDli1UdOLkMT7/3jxWvXzA==",
      "path": "newtonsoft.json/10.0.2",
      "hashPath": "newtonsoft.json.10.0.2.nupkg.sha512"
    },
    "NuGet.Client/4.2.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-VP9/TEK6kLD1lIvqxzR17kKwLjolZWK0xO5oale50yUOWQXjZQA9yMF9geIeiKUqL+VOi5MPnqlTFTDFN6UHPw==",
      "path": "nuget.client/4.2.0",
      "hashPath": "nuget.client.4.2.0.nupkg.sha512"
    },
    "NuGet.Commands/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-Tvj2IQShd+LNBYWgusCHR1hqMQ9iIcWzdxHbW6Go8TCZKt2SBuAdIJ55CcKTFSL0sIPfIZ2TRREMykrC5HsRgA==",
      "path": "nuget.commands/5.3.0",
      "hashPath": "nuget.commands.5.3.0.nupkg.sha512"
    },
    "NuGet.Common/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-j+3OiRoT6Csrb4+l248Oy2+5XPVhWnkTkvlsC73YyUtwhGD66/TkxJz98HdLu5cd9Frubq3X9gIm90NDbAiMSg==",
      "path": "nuget.common/5.3.0",
      "hashPath": "nuget.common.5.3.0.nupkg.sha512"
    },
    "NuGet.Configuration/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-5szJYhttDdfY/kMaqZsau8eog/kTAbwyvP5/4DhmqjcXdQdGj7ZAlvO/j3u/k+64ThXcsAQtxwtWl/qJop0EmQ==",
      "path": "nuget.configuration/5.3.0",
      "hashPath": "nuget.configuration.5.3.0.nupkg.sha512"
    },
    "NuGet.ContentModel/4.2.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-liWh0B5zb6KfzBKlXNygya1apQ3VBvs5PG/IGHrePWkmw+NVo8XRG3/wdIwcTkKAqQPrgXzupSTzhdIWq0LG7w==",
      "path": "nuget.contentmodel/4.2.0",
      "hashPath": "nuget.contentmodel.4.2.0.nupkg.sha512"
    },
    "NuGet.Credentials/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-WKZLoP/xdDhyrcidBI9z/I+9A4hCEsLnDd71pY01N8cWSUgTNd4C/rtNc0Z88BmxzKHuLCM5TES1WdLbgBDOZQ==",
      "path": "nuget.credentials/5.3.0",
      "hashPath": "nuget.credentials.5.3.0.nupkg.sha512"
    },
    "NuGet.DependencyResolver.Core/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-fIzvha8BINNKm34+o/zrVzDZczRxQfvwVlp6P8yzK6aps45EFou3c5n+CL7vJ5YZMJvvL7XnmY2/P6wwl+tAWA==",
      "path": "nuget.dependencyresolver.core/5.3.0",
      "hashPath": "nuget.dependencyresolver.core.5.3.0.nupkg.sha512"
    },
    "NuGet.Frameworks/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-D/NXC0nmvclTcgdHz9ExQFUqUZZtWqbFgAYDZ7rUT+aUbaag4nLRXRSOmRCemafeNndcMoI3WzJWdS+JnTJ8BQ==",
      "path": "nuget.frameworks/5.3.0",
      "hashPath": "nuget.frameworks.5.3.0.nupkg.sha512"
    },
    "NuGet.LibraryModel/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-x7CsvvazrNGCZ+ZsXfcY+GxngnzNyNDjeo1bDX7REiRUUp28FPhNW1C4VygJZZHYVZ3anXHcBNVIFlIN4ido5A==",
      "path": "nuget.librarymodel/5.3.0",
      "hashPath": "nuget.librarymodel.5.3.0.nupkg.sha512"
    },
    "NuGet.PackageManagement.NetStandard/4.9.2": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-zZRlozzPK71/qXrIr90idQQQU0QY/TS24hKitJOb1K8Slisecc3cWUs/g3eWPKWQvjKUQpABciDk2cLJbGGP+g==",
      "path": "nuget.packagemanagement.netstandard/4.9.2",
      "hashPath": "nuget.packagemanagement.netstandard.4.9.2.nupkg.sha512"
    },
    "NuGet.Packaging/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-LnDjlQmvNhXFR6yyYJG/gmmxVfhBk4HHZ64uEt5isZ/xjM+9pAUydcJR06D87w50Wm53PHsNxCHv/nLha8ajBQ==",
      "path": "nuget.packaging/5.3.0",
      "hashPath": "nuget.packaging.5.3.0.nupkg.sha512"
    },
    "NuGet.Packaging.Core/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-jBAhFC91aS8/7bmMzZX7miM0N7b37UgnOSxorDLg8u5BEhVH4oBz7b5WXq4eeN+T3kwD3BB51PcuJQe6SLR4Ng==",
      "path": "nuget.packaging.core/5.3.0",
      "hashPath": "nuget.packaging.core.5.3.0.nupkg.sha512"
    },
    "NuGet.ProjectModel/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-KGmIG8VK8Vo2eG9l74BCF5K7HC/3ChFx1pImCBfaibPpRymCCPPR+d7N759Dx1pRJqtik3eTy5GUvCw4YS4Kqw==",
      "path": "nuget.projectmodel/5.3.0",
      "hashPath": "nuget.projectmodel.5.3.0.nupkg.sha512"
    },
    "NuGet.Protocol/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-TJAOx2tmqMnDc8zKxlt2LTYQI8BGCROZK58e+zpNc/ARxPbgCHv3VaqUxgiiCA4559tjDwskcASyWrUMdTRuZQ==",
      "path": "nuget.protocol/5.3.0",
      "hashPath": "nuget.protocol.5.3.0.nupkg.sha512"
    },
    "NuGet.Repositories/4.2.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-0lIOFBp46TR4LZ4iqePm2Dh41Mz2NFWinnZya4Jdou8GN5A/eqm1qpkJV0GnHtGFTWGfoR/cZE452cwwWWG6xQ==",
      "path": "nuget.repositories/4.2.0",
      "hashPath": "nuget.repositories.4.2.0.nupkg.sha512"
    },
    "NuGet.Resolver/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-6FfMfWXE6CkYkcJ5wXQGIIBGNIamdAxJWUwdrfvx5nGwT2KCvRsX9XD6AhXl7RvMbvjlPlrlv/DJYQ9OniUq5Q==",
      "path": "nuget.resolver/5.3.0",
      "hashPath": "nuget.resolver.5.3.0.nupkg.sha512"
    },
    "NuGet.RuntimeModel/4.2.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-3SGCvEmgMSWwEkcI6KTCOfeso52Ny6/m2JCHQLnHjE0HaWshAbOZW8rUiPJlsDaRr9dI7VgUvMGE3DVdMYR/TA==",
      "path": "nuget.runtimemodel/4.2.0",
      "hashPath": "nuget.runtimemodel.4.2.0.nupkg.sha512"
    },
    "NuGet.Versioning/5.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-OY3d/HNbzqSs1/+Zwzaz5uSFLboJrwHZDIR4yCp3WW96m5FsYT9uZXhXSBmpWUQBzJHrePvdWYWLOlZqfHy/VA==",
      "path": "nuget.versioning/5.3.0",
      "hashPath": "nuget.versioning.5.3.0.nupkg.sha512"
    },
    "Roslynator.Analyzers/2.0.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-LOpng3NdjXtVBTgZnACZ7EhEFpjj4fx6bGGea9nu6tMmOg3NNNTlWwY3mQu8d7Givtjh26dXy5fNsMJcEExiOw==",
      "path": "roslynator.analyzers/2.0.0",
      "hashPath": "roslynator.analyzers.2.0.0.nupkg.sha512"
    },
    "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==",
      "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==",
      "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==",
      "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.native.System/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
      "path": "runtime.native.system/4.3.0",
      "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
    },
    "runtime.native.System.Data.SqlClient.sni/4.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-Xu7AUFtXuxEspQPI5nKCDEiEcbRmE5FTIO0qE1r0qA9v1OoawQZnbWmsnrdYaO8vlSixXMedPv1U6916STjPnQ==",
      "path": "runtime.native.system.data.sqlclient.sni/4.4.0",
      "hashPath": "runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
    },
    "runtime.native.System.IO.Compression/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
      "path": "runtime.native.system.io.compression/4.3.0",
      "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512"
    },
    "runtime.native.System.Net.Http/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
      "path": "runtime.native.system.net.http/4.3.0",
      "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512"
    },
    "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
      "path": "runtime.native.system.security.cryptography.apple/4.3.0",
      "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
    },
    "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
      "path": "runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==",
      "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==",
      "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==",
      "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0",
      "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
    },
    "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==",
      "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==",
      "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==",
      "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==",
      "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==",
      "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0",
      "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg==",
      "path": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni/4.4.0",
      "hashPath": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
    },
    "runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ==",
      "path": "runtime.win-x64.runtime.native.system.data.sqlclient.sni/4.4.0",
      "hashPath": "runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
    },
    "runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA==",
      "path": "runtime.win-x86.runtime.native.system.data.sqlclient.sni/4.4.0",
      "hashPath": "runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
    },
    "SharpScss/1.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-hGX//4BVw2ALDSiOHHnXwJldzMOtUnVObtyYDT0Kt0LviKrQ9fSQkh00rddaVExY/tiVLYSEsHzKRkRIOvRGAg==",
      "path": "sharpscss/1.4.0",
      "hashPath": "sharpscss.1.4.0.nupkg.sha512"
    },
    "StyleCop.Analyzers/1.1.1-beta.61": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-PdEJ0n1yJtmKgzj/RqhhbttkMYeRVrAKreNYM0inPB5xfBSwIZ+V85BlqVmgbAPNMqx5TcI6bjeTMBp6SjDFrA==",
      "path": "stylecop.analyzers/1.1.1-beta.61",
      "hashPath": "stylecop.analyzers.1.1.1-beta.61.nupkg.sha512"
    },
    "StyleCop.Analyzers.Unstable/1.1.1.61": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-0q5yDskqw8l5rIfWVMJGQ5IETe2pnIrLL8K/JmW+ABLcTv7vW+ueUrkyer9Gbvpl9WVg15OzOEZQ1O/BM4Hqeg==",
      "path": "stylecop.analyzers.unstable/1.1.1.61",
      "hashPath": "stylecop.analyzers.unstable.1.1.1.61.nupkg.sha512"
    },
    "System.AppContext/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
      "path": "system.appcontext/4.3.0",
      "hashPath": "system.appcontext.4.3.0.nupkg.sha512"
    },
    "System.Buffers/4.5.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A==",
      "path": "system.buffers/4.5.0",
      "hashPath": "system.buffers.4.5.0.nupkg.sha512"
    },
    "System.Collections/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
      "path": "system.collections/4.3.0",
      "hashPath": "system.collections.4.3.0.nupkg.sha512"
    },
    "System.Collections.Concurrent/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
      "path": "system.collections.concurrent/4.3.0",
      "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512"
    },
    "System.Collections.Immutable/1.5.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==",
      "path": "system.collections.immutable/1.5.0",
      "hashPath": "system.collections.immutable.1.5.0.nupkg.sha512"
    },
    "System.Collections.NonGeneric/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-WxDi0dEBa9rdMvez+seUsamF92/wtfpweEnJxhZbim5NbxRxsVgeUV51tWyluiM4lxWefRxab6uDnZuF72cqlA==",
      "path": "system.collections.nongeneric/4.3.0",
      "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512"
    },
    "System.Collections.Specialized/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-EaJCHRNLUpR12NHFBU7AoF2LUTbE9YuMxT4p5DsBA+Ip8L5jx/Dn99gRF9JWYt/NLp3ynDHWf6bWxRyfXfdXug==",
      "path": "system.collections.specialized/4.3.0",
      "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512"
    },
    "System.ComponentModel/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==",
      "path": "system.componentmodel/4.3.0",
      "hashPath": "system.componentmodel.4.3.0.nupkg.sha512"
    },
    "System.ComponentModel.Primitives/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-I01EHvKconKpH7KrNW1cYMQtLQGmYt0Bf//U3nAGOYgrTKpgNMuyI+yA7CC3mDeObRcwwZCrX9Fuq4j/wx1DWA==",
      "path": "system.componentmodel.primitives/4.3.0",
      "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512"
    },
    "System.ComponentModel.TypeConverter/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-1OPvXGIJ0gocJl2CQh0J9TpA7eArby1WDuX4n/sbyWrRDH+8zdqhpjBF+AQbcikJbCCeMueGqL9X1yToGDS82A==",
      "path": "system.componentmodel.typeconverter/4.3.0",
      "hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512"
    },
    "System.Console/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
      "path": "system.console/4.3.0",
      "hashPath": "system.console.4.3.0.nupkg.sha512"
    },
    "System.Data.Common/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-lm6E3T5u7BOuEH0u18JpbJHxBfOJPuCyl4Kg1RH10ktYLp5uEEE1xKrHW56/We4SnZpGAuCc9N0MJpSDhTHZGQ==",
      "path": "system.data.common/4.3.0",
      "hashPath": "system.data.common.4.3.0.nupkg.sha512"
    },
    "System.Data.SqlClient/4.4.3": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-D1hEOS1oPLJ6WcGCzpTWe8SauWVxnDoDTUWhv5XCNdRm/QeSUk4BQ3ZDe7BH+zNVHDBkPYjVzpVjnCl43eOSGg==",
      "path": "system.data.sqlclient/4.4.3",
      "hashPath": "system.data.sqlclient.4.4.3.nupkg.sha512"
    },
    "System.Diagnostics.Debug/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
      "path": "system.diagnostics.debug/4.3.0",
      "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
    },
    "System.Diagnostics.DiagnosticSource/4.5.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-eIHRELiYDQvsMToML81QFkXEEYXUSUT2F28t1SGrevWqP+epFdw80SyAXIKTXOHrIEXReFOEnEr7XlGiC2GgOg==",
      "path": "system.diagnostics.diagnosticsource/4.5.0",
      "hashPath": "system.diagnostics.diagnosticsource.4.5.0.nupkg.sha512"
    },
    "System.Diagnostics.FileVersionInfo/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-omCF64wzQ3Q2CeIqkD6lmmxeMZtGHUmzgFMPjfVaOsyqpR66p/JaZzManMw1s33osoAb5gqpncsjie67+yUPHQ==",
      "path": "system.diagnostics.fileversioninfo/4.3.0",
      "hashPath": "system.diagnostics.fileversioninfo.4.3.0.nupkg.sha512"
    },
    "System.Diagnostics.Process/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-RCNWMX3wM93cOUkjKKQZ1IKzW//zW5ouFjhT9ax9hAsLFJtoj1nr7i10K0Ynx2U+ZnumlBE8VLCR264o76TiSg==",
      "path": "system.diagnostics.process/4.3.0",
      "hashPath": "system.diagnostics.process.4.3.0.nupkg.sha512"
    },
    "System.Diagnostics.StackTrace/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-BiHg0vgtd35/DM9jvtaC1eKRpWZxr0gcQd643ABG7GnvSlf5pOkY2uyd42mMOJoOmKvnpNj0F4tuoS1pacTwYw==",
      "path": "system.diagnostics.stacktrace/4.3.0",
      "hashPath": "system.diagnostics.stacktrace.4.3.0.nupkg.sha512"
    },
    "System.Diagnostics.Tools/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
      "path": "system.diagnostics.tools/4.3.0",
      "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512"
    },
    "System.Diagnostics.TraceSource/4.0.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
      "path": "system.diagnostics.tracesource/4.0.0",
      "hashPath": "system.diagnostics.tracesource.4.0.0.nupkg.sha512"
    },
    "System.Diagnostics.Tracing/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
      "path": "system.diagnostics.tracing/4.3.0",
      "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512"
    },
    "System.Dynamic.Runtime/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==",
      "path": "system.dynamic.runtime/4.3.0",
      "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512"
    },
    "System.Globalization/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
      "path": "system.globalization/4.3.0",
      "hashPath": "system.globalization.4.3.0.nupkg.sha512"
    },
    "System.Globalization.Calendars/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
      "path": "system.globalization.calendars/4.3.0",
      "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512"
    },
    "System.Globalization.Extensions/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
      "path": "system.globalization.extensions/4.3.0",
      "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512"
    },
    "System.IO/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
      "path": "system.io/4.3.0",
      "hashPath": "system.io.4.3.0.nupkg.sha512"
    },
    "System.IO.Compression/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
      "path": "system.io.compression/4.3.0",
      "hashPath": "system.io.compression.4.3.0.nupkg.sha512"
    },
    "System.IO.FileSystem/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
      "path": "system.io.filesystem/4.3.0",
      "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512"
    },
    "System.IO.FileSystem.Primitives/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
      "path": "system.io.filesystem.primitives/4.3.0",
      "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512"
    },
    "System.IO.FileSystem.Watcher/4.0.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-qM4Wr3La+RYb/03B0mZZjbA7tHsGzDffnuXP8Sl48HW2JwCjn3kfD5qdw0sqyNNowUipcJMi9/q6sMUrOIJ6UQ==",
      "path": "system.io.filesystem.watcher/4.0.0",
      "hashPath": "system.io.filesystem.watcher.4.0.0.nupkg.sha512"
    },
    "System.IO.Pipelines/4.5.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-1GB2tHmb/qRzCF6NX7+1LU6/IKPt8QKm6hHt7Vmyt/olg3XJIwwRzNwdfG0gKgPzNTIj0eOFk6UpVHrVMDrY0w==",
      "path": "system.io.pipelines/4.5.0",
      "hashPath": "system.io.pipelines.4.5.0.nupkg.sha512"
    },
    "System.Linq/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
      "path": "system.linq/4.3.0",
      "hashPath": "system.linq.4.3.0.nupkg.sha512"
    },
    "System.Linq.Expressions/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
      "path": "system.linq.expressions/4.3.0",
      "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512"
    },
    "System.Memory/4.5.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-sDJYJpGtTgx+23Ayu5euxG5mAXWdkDb4+b0rD0Cab0M1oQS9H0HXGPriKcqpXuiJDTV7fTp/d+fMDJmnr6sNvA==",
      "path": "system.memory/4.5.1",
      "hashPath": "system.memory.4.5.1.nupkg.sha512"
    },
    "System.Net.WebSockets.WebSocketProtocol/4.5.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-FquLjdb/0CeMqb15u9Px6TwnyFl306WztKWu6sKKc5kWPYMdpi5BFEkdxzGoieYFp9UksyGwJnCw4KKAUfJjrw==",
      "path": "system.net.websockets.websocketprotocol/4.5.1",
      "hashPath": "system.net.websockets.websocketprotocol.4.5.1.nupkg.sha512"
    },
    "System.Numerics.Vectors/4.5.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==",
      "path": "system.numerics.vectors/4.5.0",
      "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512"
    },
    "System.ObjectModel/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
      "path": "system.objectmodel/4.3.0",
      "hashPath": "system.objectmodel.4.3.0.nupkg.sha512"
    },
    "System.Reflection/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
      "path": "system.reflection/4.3.0",
      "hashPath": "system.reflection.4.3.0.nupkg.sha512"
    },
    "System.Reflection.Emit/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
      "path": "system.reflection.emit/4.3.0",
      "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512"
    },
    "System.Reflection.Emit.ILGeneration/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
      "path": "system.reflection.emit.ilgeneration/4.3.0",
      "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512"
    },
    "System.Reflection.Emit.Lightweight/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
      "path": "system.reflection.emit.lightweight/4.3.0",
      "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512"
    },
    "System.Reflection.Extensions/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
      "path": "system.reflection.extensions/4.3.0",
      "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
    },
    "System.Reflection.Metadata/1.6.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==",
      "path": "system.reflection.metadata/1.6.0",
      "hashPath": "system.reflection.metadata.1.6.0.nupkg.sha512"
    },
    "System.Reflection.Primitives/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
      "path": "system.reflection.primitives/4.3.0",
      "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
    },
    "System.Reflection.TypeExtensions/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
      "path": "system.reflection.typeextensions/4.3.0",
      "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512"
    },
    "System.Resources.ResourceManager/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
      "path": "system.resources.resourcemanager/4.3.0",
      "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
    },
    "System.Runtime/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
      "path": "system.runtime/4.3.0",
      "hashPath": "system.runtime.4.3.0.nupkg.sha512"
    },
    "System.Runtime.CompilerServices.Unsafe/4.5.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-Zh8t8oqolRaFa9vmOZfdQm/qKejdqz0J9kr7o2Fu0vPeoH3BL1EOXipKWwkWtLT1JPzjByrF19fGuFlNbmPpiw==",
      "path": "system.runtime.compilerservices.unsafe/4.5.1",
      "hashPath": "system.runtime.compilerservices.unsafe.4.5.1.nupkg.sha512"
    },
    "System.Runtime.Extensions/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
      "path": "system.runtime.extensions/4.3.0",
      "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
    },
    "System.Runtime.Handles/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
      "path": "system.runtime.handles/4.3.0",
      "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
    },
    "System.Runtime.InteropServices/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
      "path": "system.runtime.interopservices/4.3.0",
      "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
    },
    "System.Runtime.Numerics/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
      "path": "system.runtime.numerics/4.3.0",
      "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512"
    },
    "System.Runtime.Serialization.Formatters/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-KT591AkTNFOTbhZlaeMVvfax3RqhH1EJlcwF50Wm7sfnBLuHiOeZRRKrr1ns3NESkM20KPZ5Ol/ueMq5vg4QoQ==",
      "path": "system.runtime.serialization.formatters/4.3.0",
      "hashPath": "system.runtime.serialization.formatters.4.3.0.nupkg.sha512"
    },
    "System.Runtime.Serialization.Primitives/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-HeX+TxnFlY0lCVsyHlQiUIlyR+xB0WiQQSXAga5dFOQaIwsKFAn8DKW7ul0lRx9SY+ZIOOKNIZ6WIrZT92HUqA==",
      "path": "system.runtime.serialization.primitives/4.3.0",
      "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512"
    },
    "System.Security.AccessControl/4.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-2NRFPX/V81ucKQmqNgGBZrKGH/5ejsvivSGMRum0SMgPnJxwhuNkzVS1+7gC3R2X0f57CtwrPrXPPSe6nOp82g==",
      "path": "system.security.accesscontrol/4.4.0",
      "hashPath": "system.security.accesscontrol.4.4.0.nupkg.sha512"
    },
    "System.Security.Cryptography.Algorithms/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
      "path": "system.security.cryptography.algorithms/4.3.0",
      "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512"
    },
    "System.Security.Cryptography.Cng/4.5.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A==",
      "path": "system.security.cryptography.cng/4.5.0",
      "hashPath": "system.security.cryptography.cng.4.5.0.nupkg.sha512"
    },
    "System.Security.Cryptography.Csp/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
      "path": "system.security.cryptography.csp/4.3.0",
      "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512"
    },
    "System.Security.Cryptography.Encoding/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
      "path": "system.security.cryptography.encoding/4.3.0",
      "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512"
    },
    "System.Security.Cryptography.OpenSsl/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
      "path": "system.security.cryptography.openssl/4.3.0",
      "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512"
    },
    "System.Security.Cryptography.Primitives/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
      "path": "system.security.cryptography.primitives/4.3.0",
      "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512"
    },
    "System.Security.Cryptography.ProtectedData/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-qBUHUk7IqrPHY96THHTa1akCxw0GsNFpsk3XFHbi0A0tMUDBpQprtY1Tbl6yaS1x4c96ilcXU8PocYtmSmkaQQ==",
      "path": "system.security.cryptography.protecteddata/4.3.0",
      "hashPath": "system.security.cryptography.protecteddata.4.3.0.nupkg.sha512"
    },
    "System.Security.Cryptography.X509Certificates/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
      "path": "system.security.cryptography.x509certificates/4.3.0",
      "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512"
    },
    "System.Security.Principal.Windows/4.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-pP+AOzt1o3jESOuLmf52YQTF7H3Ng9hTnrOESQiqsnl2IbBh1HInsAMHYtoh75iUYV0OIkHmjvveraYB6zM97w==",
      "path": "system.security.principal.windows/4.4.0",
      "hashPath": "system.security.principal.windows.4.4.0.nupkg.sha512"
    },
    "System.Text.Encoding/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
      "path": "system.text.encoding/4.3.0",
      "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
    },
    "System.Text.Encoding.CodePages/4.4.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-6JX7ZdaceBiLKLkYt8zJcp4xTJd1uYyXXEkPw6mnlUIjh1gZPIVKPtRXPmY5kLf6DwZmf5YLwR3QUrRonl7l0A==",
      "path": "system.text.encoding.codepages/4.4.0",
      "hashPath": "system.text.encoding.codepages.4.4.0.nupkg.sha512"
    },
    "System.Text.Encoding.Extensions/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
      "path": "system.text.encoding.extensions/4.3.0",
      "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512"
    },
    "System.Text.Encodings.Web/4.5.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-Xg4G4Indi4dqP1iuAiMSwpiWS54ZghzR644OtsRCm/m/lBMG8dUBhLVN7hLm8NNrNTR+iGbshCPTwrvxZPlm4g==",
      "path": "system.text.encodings.web/4.5.0",
      "hashPath": "system.text.encodings.web.4.5.0.nupkg.sha512"
    },
    "System.Text.RegularExpressions/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
      "path": "system.text.regularexpressions/4.3.0",
      "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512"
    },
    "System.Threading/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
      "path": "system.threading/4.3.0",
      "hashPath": "system.threading.4.3.0.nupkg.sha512"
    },
    "System.Threading.Overlapped/4.0.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-f7aLuLkBoCQM2kng7zqLFBXz9Gk48gDK8lk1ih9rH/1arJJzZK9gJwNvPDhL6Ps/l6rwOr8jw+4FCHL0KKWiEg==",
      "path": "system.threading.overlapped/4.0.1",
      "hashPath": "system.threading.overlapped.4.0.1.nupkg.sha512"
    },
    "System.Threading.Tasks/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
      "path": "system.threading.tasks/4.3.0",
      "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
    },
    "System.Threading.Tasks.Extensions/4.5.1": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-WSKUTtLhPR8gllzIWO2x6l4lmAIfbyMAiTlyXAis4QBDonXK4b4S6F8zGARX4/P8wH3DH+sLdhamCiHn+fTU1A==",
      "path": "system.threading.tasks.extensions/4.5.1",
      "hashPath": "system.threading.tasks.extensions.4.5.1.nupkg.sha512"
    },
    "System.Threading.Tasks.Parallel/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-cbjBNZHf/vQCfcdhzx7knsiygoCKgxL8mZOeocXZn5gWhCdzHIq6bYNKWX0LAJCWYP7bds4yBK8p06YkP0oa0g==",
      "path": "system.threading.tasks.parallel/4.3.0",
      "hashPath": "system.threading.tasks.parallel.4.3.0.nupkg.sha512"
    },
    "System.Threading.Thread/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
      "path": "system.threading.thread/4.3.0",
      "hashPath": "system.threading.thread.4.3.0.nupkg.sha512"
    },
    "System.Threading.ThreadPool/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-WLJOoLo269LV9dxHL7D5bNYq2a7LUrdcNphkbpvGShuW4lbydUw0iEmkQ0NwC996lxKd0Ubn0YspMsBm4cVK3w==",
      "path": "system.threading.threadpool/4.3.0",
      "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512"
    },
    "System.ValueTuple/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-cNLEvBX3d6MMQRZe3SMFNukVbitDAEpVZO17qa0/2FHxZ7Y7PpFRpr6m2615XYM/tYYYf0B+WyHNujqIw8Luwg==",
      "path": "system.valuetuple/4.3.0",
      "hashPath": "system.valuetuple.4.3.0.nupkg.sha512"
    },
    "System.Xml.ReaderWriter/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
      "path": "system.xml.readerwriter/4.3.0",
      "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512"
    },
    "System.Xml.XDocument/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
      "path": "system.xml.xdocument/4.3.0",
      "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512"
    },
    "System.Xml.XmlDocument/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==",
      "path": "system.xml.xmldocument/4.3.0",
      "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512"
    },
    "System.Xml.XPath/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==",
      "path": "system.xml.xpath/4.3.0",
      "hashPath": "system.xml.xpath.4.3.0.nupkg.sha512"
    },
    "System.Xml.XPath.XDocument/4.3.0": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-jw9oHHEIVW53mHY9PgrQa98Xo2IZ0ZjrpdOTmtvk+Rvg4tq7dydmxdNqUvJ5YwjDqhn75mBXWttWjiKhWP53LQ==",
      "path": "system.xml.xpath.xdocument/4.3.0",
      "hashPath": "system.xml.xpath.xdocument.4.3.0.nupkg.sha512"
    },
    "UniversalTypeConverter/1.0.4": {
      "type": "package",
      "serviceable": true,
      "sha512": "sha512-lUmHq4OO/yGqJB/1vmgDvJYUQCpdgCLU8xXoW69EuhdZQ0n+CAzbzbsM8XMVknF+W8v4H92t6/2Qu4lm3fjyvA==",
      "path": "universaltypeconverter/1.0.4",
      "hashPath": "universaltypeconverter.1.0.4.nupkg.sha512"
    },
    "Wyam.Common/2.2.9": {
      "type": "project",
      "serviceable": false,
      "sha512": ""
    },
    "Wyam.Configuration/2.2.9": {
      "type": "project",
      "serviceable": false,
      "sha512": ""
    },
    "Wyam.Core/2.2.9": {
      "type": "project",
      "serviceable": false,
      "sha512": ""
    },
    "Wyam.Hosting/2.2.9": {
      "type": "project",
      "serviceable": false,
      "sha512": ""
    },
    "System.CommandLine/4.0.0.0": {
      "type": "reference",
      "serviceable": false,
      "sha512": ""
    }
  }
}
Wyam.dll
md5: 541D78E2446892779D433CDC33D31673 | sha1: CF862E1926497C258BF1ED709F2F74E3AAD338F6 | sha256: 5C5E0F20CE7F6F0E51A6DDF4232F86D3ED9F91724B17F96530FEB1D6138942D4 | sha512: 028270A24BBBCF6E91BAC1D9FA8AF2D392AD26C01DCF9E06D684426DBC1FFF509E63A68C11227CED55B9B131CD5515FB21B5337646249B9D2CBFA4351F6F44DE
Wyam.dll.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <!-- See https://github.com/Wyamio/Wyam/issues/667 -->
      <dependentAssembly>
        <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-99.99.99.99" newVersion="4.0.1.1" />
      </dependentAssembly>
      <!-- Needed for Wyam.CodeAnalysis and MSBuild: https://github.com/Microsoft/msbuild/issues/2369#issuecomment-353674937 -->
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Build" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-99.99.99.99" newVersion="15.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-99.99.99.99" newVersion="15.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Build.Utilities" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-99.99.99.99" newVersion="15.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Build.Utilities.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-99.99.99.99" newVersion="15.1.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
Wyam.Hosting.dll
md5: C163F42697FE0B2FF36EDDF1CD588A63 | sha1: 70E9EDD8FA30C52AF586F71E1873DE5D33729848 | sha256: 84BBCA9E5A2D7378AA464404C8CDBDEB756712ADC9AD802F1D0A620A60B0FB54 | sha512: F8FD6F57D0DEE0C87FC22EA24064E5CBA0A61C32A7A16E88E9B2C5FE633E41F8C4BED64A5B2EA14AD0340A6087BD004351C47BBB877F29F88EF2BCAD6B075C98
Wyam.Hosting.pdb
 
Wyam.Hosting.xml
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Wyam.Hosting</name>
    </assembly>
    <members>
        <member name="T:Wyam.Hosting.Middleware.DefaultExtensionsOptions">
            <summary>
            Extenions to use when no extension is provided in the URL.
            </summary>
        </member>
        <member name="P:Wyam.Hosting.Middleware.DefaultExtensionsOptions.Extensions">
            <summary>
            Gets or sets the extensions.
            </summary>
            <value>
            The extensions.
            </value>
        </member>
        <member name="M:Wyam.Hosting.Middleware.DefaultExtensionsOptions.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Wyam.Hosting.Middleware.DefaultExtensionsOptions"/> class.
            </summary>
        </member>
        <member name="T:Wyam.Hosting.Middleware.ScriptInjectionMiddleware">
            <summary>
            Injects one or more script references into an HTML document just before the closing body element.
            </summary>
        </member>
        <member name="M:Wyam.Hosting.Middleware.ScriptInjectionMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext)">
            <inheritdoc />
        </member>
        <member name="T:Wyam.Hosting.Middleware.VirtualDirectoryMiddleware">
            <summary>
            Implements OWIN support for mapping virtual directories.
            </summary>
        </member>
        <member name="T:Wyam.Hosting.Server">
            <summary>
            An HTTP server that can serve static files from a specified directory on disk.
            </summary>
        </member>
        <member name="P:Wyam.Hosting.Server.VirtualDirectory">
            <summary>
            The virtual directory at which files are served (or null). This will always
            begin with a backslash and end without one.
            </summary>
        </member>
        <member name="M:Wyam.Hosting.Server.#ctor(System.String,System.Int32)">
            <summary>
            Creates the HTTP server.
            </summary>
            <param name="localPath">The local path to serve files from.</param>
            <param name="port">The port the server will serve HTTP requests on.</param>
        </member>
        <member name="M:Wyam.Hosting.Server.#ctor(System.String,System.Int32,System.Boolean,System.String,System.Boolean,Microsoft.Extensions.Logging.ILoggerProvider)">
            <summary>
            Creates the HTTP server.
            </summary>
            <param name="localPath">The local path to serve files from.</param>
            <param name="port">The port the server will serve HTTP requests on.</param>
            <param name="extensionless"><c>true</c> if the server should support extensionless URLs, <c>false</c> otherwise.</param>
            <param name="virtualDirectory">The virtual directory the server should respond to, or <c>null</c> to use the root URL.</param>
            <param name="liveReload">Enables support for LiveReload.</param>
            <param name="loggerProvider">The logger provider to use.</param>
        </member>
        <member name="M:Wyam.Hosting.Server.#ctor(System.String,System.Int32,System.Boolean,System.String,System.Boolean,System.Collections.Generic.IDictionary{System.String,System.String},Microsoft.Extensions.Logging.ILoggerProvider)">
            <summary>
            Creates the HTTP server.
            </summary>
            <param name="localPath">The local path to serve files from.</param>
            <param name="port">The port the server will serve HTTP requests on.</param>
            <param name="extensionless"><c>true</c> if the server should support extensionless URLs, <c>false</c> otherwise.</param>
            <param name="virtualDirectory">The virtual directory the server should respond to, or <c>null</c> to use the root URL.</param>
            <param name="liveReload">Enables support for LiveReload.</param>
            <param name="loggerProvider">The logger provider to use.</param>
            <param name="contentTypes">Additional content types the server should support.</param>
        </member>
        <member name="M:Wyam.Hosting.Server.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Hosting.Server.Start">
            <summary>
            Start listening.
            </summary>
        </member>
        <member name="M:Wyam.Hosting.Server.StartAsync(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:Wyam.Hosting.Server.StopAsync(System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
    </members>
</doc>
Wyam.pdb
 
Wyam.runtimeconfig.json
{
  "runtimeOptions": {
    "tfm": "netcoreapp2.1",
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "2.1.0"
    }
  }
}
Wyam.xml
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Wyam</name>
    </assembly>
    <members>
        <member name="T:Wyam.ActionFileSystemWatcher">
            <summary>
            A wrapper around <see cref="T:System.IO.FileSystemWatcher"/> that invokes a callback action on changes.
            </summary>
        </member>
        <member name="T:Wyam.Commands.Command">
            <summary>
            Represents a single command line command, or a set of options and parameters.
            </summary>
        </member>
        <member name="M:Wyam.Commands.Command.DirectoryPathFromArg(System.String)">
            <summary>
            This helper method is needed due to the escape behavior of command line argument parsing and the
            way PowerShell handles tab completion of directory paths. See https://github.com/Wyamio/Wyam/issues/472#issuecomment-286884482
            </summary>
            <param name="arg">The command line argument containing the path</param>
            <returns>A <see cref="T:Wyam.Common.IO.DirectoryPath"/></returns>
        </member>
        <member name="M:Wyam.Commands.CommandParser.Parse(System.String[],Wyam.Configuration.Preprocessing.Preprocessor,System.Boolean@)">
            <summary>
            Parses the command line arguments.
            </summary>
            <param name="args">The arguments.</param>
            <param name="preprocessor">The preprocessor.</param>
            <param name="hasErrors">If set to <c>true</c>, the command line had errors.</param>
            <returns>The resulting command.</returns>
        </member>
        <member name="T:Wyam.MetadataParser">
            <summary>
            Parses INI-like args in key=value format.
            </summary>
        </member>
        <member name="T:Wyam.Program">
            <summary>
            The primary console entry point.
            </summary>
        </member>
    </members>
</doc>
zh-Hans\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: F36FA85F6A65B19E45FA85C4B2349A6C | sha1: EA11CF10E6C6D01D3DD293DCDBC8EE9444B414BC | sha256: D96810F50DAD0FB89E14A1978975FFAB46F476A75A2A8F13D7E222ECEADBE283 | sha512: A7AA4A2FBECA403651CF6AC6B8865E4108D1DCA9FDBDE0C1A13D5CEE695D393DE704C1BC3971623653CEB5022261B65F6B72F1CCAABBD975E069B275FC617F0A
zh-Hans\Microsoft.CodeAnalysis.resources.dll
md5: F7CFB5BD910E7259BD0AA7EC6D13D049 | sha1: B8A53A905B7DFE665EECB29A9E662109083C7428 | sha256: BF9C495AFEF3E89DAE6345A4C79A0373C0411613A19CA70DB3DE9CD5CDC764E2 | sha512: 2C182CDFF05555B92025E7AF7671E1D340E4E91782C30E2A67D21A95B48F7AE70EB8D92DDD6B820F402AEEC41E40CAE1DE5B20F6263EECEB2566BA04DC432386
zh-Hant\Microsoft.CodeAnalysis.CSharp.resources.dll
md5: 138B590F0E380661CBCCC1A9880491C7 | sha1: 3BE96216D79F8B0E34978F907AEFC6632B98A4B5 | sha256: 1C7301616AD27568CBF86AE3A19EB5131EC47CA0094AA9A2FE1B71B1B8A70194 | sha512: CC67AC9803345C5B3D2186856C6637CCD7A55BA9C9B596C65EB1528D25675FF770DB1FE2ADB519BFB2EF33256A4EAA2ABA07BD8B16CB6BAF457733C9072E05DD
zh-Hant\Microsoft.CodeAnalysis.resources.dll
md5: D3169F832FAB869FA40A0346D101FCB5 | sha1: 611DE94C10F918870AD7A168C578A63A3D757040 | sha256: CE7C770F141718F432939E15A3A025D9F13A97B141F0D733B47D28EB53E369BF | sha512: 626008F955D0C3AB7F64164235F9108F702936F7C1E9720C4EEB25B43464489F3D5BE10EA7D477CCAAC1AB94DE4DAA632E070316F0C642DC545EC225AFDB0F16

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
Wyam 2.2.8 196 Tuesday, October 1, 2019 Approved
Wyam 2.2.7 228 Saturday, August 17, 2019 Approved
Wyam 2.2.6 180 Saturday, August 17, 2019 Approved
Wyam 2.2.5 369 Monday, June 24, 2019 Approved
Wyam 2.2.4 342 Wednesday, March 6, 2019 Approved
Wyam 2.2.3 254 Wednesday, February 27, 2019 Approved
Wyam 2.2.2 217 Tuesday, February 26, 2019 Approved
Wyam 2.2.1 242 Monday, February 25, 2019 Approved
Wyam 2.2.0 197 Wednesday, February 20, 2019 Approved
Wyam 2.1.3 237 Tuesday, January 29, 2019 Approved
Wyam 2.1.2 251 Wednesday, January 16, 2019 Approved
Wyam 2.1.1 292 Monday, December 17, 2018 Approved
Wyam 2.1.0 237 Wednesday, December 5, 2018 Approved
Wyam 2.0.0 261 Sunday, November 25, 2018 Approved
Wyam 1.7.4 236 Monday, November 19, 2018 Approved
Wyam 1.7.3 255 Friday, November 16, 2018 Approved
Wyam 1.7.2 215 Thursday, November 15, 2018 Approved
Wyam 1.7.1 256 Monday, October 29, 2018 Approved
Wyam 1.7.0 213 Monday, October 29, 2018 Approved
Wyam 1.6.0 287 Tuesday, October 2, 2018 Approved
Wyam 1.5.1 306 Tuesday, August 28, 2018 Approved
Wyam 1.5.0 287 Thursday, August 16, 2018 Approved
Wyam 1.4.1 525 Tuesday, April 10, 2018 Approved
Wyam 1.4.0 291 Thursday, April 5, 2018 Approved
Wyam 1.3.0 376 Thursday, February 15, 2018 Approved
Wyam 1.2.0 424 Tuesday, January 9, 2018 Approved

All release notes for Wyam can be found on the GitHub site - https://github.com/Wyamio/Wyam/releases


This package has no dependencies.

Discussion for the Wyam Package

Ground Rules:

  • This discussion is only about Wyam and the Wyam package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Wyam, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus