This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public void Configuration(IAppBuilder app) | |
{ | |
// This is the URL template to call | |
// The placeholders are optional -- they will be replaced with data specific to the content that is published | |
var webhookUrl = "https://example.com?id={id}&type={type}&version={version}"; | |
// Here is an example URL that would be called for this example: | |
// https://example.com?id=17&type=ArticlePage&version=691 | |
var events = ServiceLocator.Current.GetInstance<IContentEvents>(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using AngleSharp.Html.Parser; | |
using Microsoft.AspNetCore.Http; | |
using System.IO; | |
using System.Linq; | |
using System.Threading.Tasks; | |
namespace DeaneBarker.Optimizely.Middleware | |
{ | |
public class ExtractFragmentMiddleware | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
This is specifically designed to do as little as possible and have no dependencies. | |
1. It's styled sort of like a code editor (?) | |
2. Spellchecking is turned off (no red squiggly lines -- I hate those!) | |
3. The TAB key will insert 2 spaces, instead of moving focus | |
4. When you press enter, it will add leading spaces to match the leading spaces on the prior line | |
...and that's all it does. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Example: | |
// {% assign people = query.sortby['lastname'].direction['desc'].limit[2] %} | |
public class QueryValue : FluidValue | |
{ | |
// This is only needed for testing | |
// In production, the query would be of some external resource | |
private IEnumerable<Person> _items; | |
// This is an anonymous method that handles the index |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class XmlValue : FluidValue | |
{ | |
// The accessor to retrieve the text content of an element | |
public static string TextAccessor { get; set; } = "_text"; | |
// The accessor to retrieve a dictionary of attributes of an element | |
public static string AttributesAccessor { get; set; } = "_attrs"; | |
// The accessor to retrieve an array of the children of an element | |
public static string ChildrenAccessor { get; set; } = "_children"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace DeaneBarker | |
{ | |
public class FakeFileProvider : IFileProvider | |
{ | |
// I don't think Fluid ever calls these (fingers crossed) | |
public IDirectoryContents GetDirectoryContents(string subpath) { throw new NotImplementedException(); } | |
public IChangeToken Watch(string filter) { throw new NotImplementedException(); } | |
public IFileInfo GetFileInfo(string path) | |
{ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// var parser = new FluidParser(); | |
// parser.ParseFromFile("deane"); | |
namespace DeaneBarker.Fluid | |
{ | |
public static class FluidParserExtensions | |
{ | |
public static IFluidTemplate ParseFromFile(this FluidParser parser, string path) | |
{ | |
if(TemplateOptions.Default.FileProvider == null) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file exists just to name the gist... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Scriban; | |
using Scriban.Parsing; | |
using Scriban.Runtime; | |
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
using Wyam.Common.Configuration; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class XmlNode : Drop | |
{ | |
private const string attributeMethodName = "attr"; | |
private const string xpathQueryMethodName = "xpath"; | |
private const string listQueryMethodName = "list"; | |
private const char shorthandDelimiter = '-'; | |
private XmlElement doc; | |
public XmlNode(XmlDocument xml) |