diff --git a/Figgle.Fonts.Generator/Figgle.Fonts.Generator.csproj b/Figgle.Fonts.Generator/Figgle.Fonts.Generator.csproj
new file mode 100644
index 0000000..d309fd3
--- /dev/null
+++ b/Figgle.Fonts.Generator/Figgle.Fonts.Generator.csproj
@@ -0,0 +1,21 @@
+
+
+
+ netstandard2.0
+ true
+ true
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
diff --git a/Figgle.Fonts.Generator/FiggleFontGenerator.cs b/Figgle.Fonts.Generator/FiggleFontGenerator.cs
new file mode 100644
index 0000000..768053a
--- /dev/null
+++ b/Figgle.Fonts.Generator/FiggleFontGenerator.cs
@@ -0,0 +1,167 @@
+// Copyright Drew Noakes. Licensed under the Apache-2.0 license. See the LICENSE file for more details.
+
+using System;
+using System.Collections.Immutable;
+using System.IO;
+using System.Linq;
+using System.Security;
+using System.Text;
+using Microsoft.CodeAnalysis;
+
+namespace Figgle.Fonts.Generator;
+
+///
+/// This is an internal source generator that populates the FiggleFonts class with properties for each bundled font.
+/// It is not intended for public use, but rather to automate the generation of the FiggleFonts class
+///
+[Generator(LanguageNames.CSharp)]
+internal sealed class FiggleFontGenerator : IIncrementalGenerator
+{
+ private static readonly string[] _newLineCharacters = ["\r\n", "\n"];
+
+ private static readonly DiagnosticDescriptor _errorParsingFontFileDiagnostic = new(
+ "FIGGLE_IMPL001",
+ "Font Parsing Error",
+ "Failed to parse font '{0}'. Ensure it is a valid FIGlet font file.",
+ "FiggleFonts",
+ DiagnosticSeverity.Error,
+ isEnabledByDefault: true);
+
+ private const string Header =
+ """
+ // Copyright Drew Noakes. Licensed under the Apache-2.0 license. See the LICENSE file for more details.
+
+ //
+ // This code was generated by Figgle.Fonts.Generator.
+ //
+ // Changes to this file may cause incorrect behavior and will be lost if
+ // the code is regenerated.
+ //
+
+ """;
+
+ public void Initialize(IncrementalGeneratorInitializationContext context)
+ {
+ var fontMemberNamesProvider = context.AdditionalTextsProvider
+ .Where(file => Path.GetFileName(file.Path).Equals("Aliases.csv", StringComparison.OrdinalIgnoreCase))
+ .Select(static (file, cancellationToken) =>
+ {
+ var csvFileContent = file.GetText(cancellationToken)?.ToString();
+ if (csvFileContent is null)
+ {
+ return [];
+ }
+
+ var fontInfos = ImmutableArray.CreateBuilder();
+ var entries = csvFileContent.Split(_newLineCharacters, StringSplitOptions.RemoveEmptyEntries);
+ foreach (var entry in entries)
+ {
+ var components = entry.Split(',');
+ if (components.Length == 2)
+ {
+ var fontName = components[0].Trim();
+ var memberName = components[1].Trim();
+ fontInfos.Add(new FontInfo(fontName, memberName));
+ }
+ }
+
+ return fontInfos.ToImmutable();
+ });
+
+ var parsedFontsProvider = context.AdditionalTextsProvider
+ .Where(file => file.Path.EndsWith(".flf", StringComparison.OrdinalIgnoreCase))
+ .Select(static (file, cancellationToken) =>
+ {
+ var fontContent = file.GetText(cancellationToken)?.ToString();
+ return new ParsedFont(
+ Path.GetFileNameWithoutExtension(file.Path),
+ fontContent is null ? null : FiggleFontParser.ParseString(fontContent));
+ })
+ .Collect();
+
+ context.RegisterSourceOutput(fontMemberNamesProvider.Combine(parsedFontsProvider), (context, pair) =>
+ {
+ var fontInfos = pair.Left;
+ var parsedFonts = pair.Right.ToImmutableDictionary(
+ keySelector: f => f.Name,
+ elementSelector: f => f.Font);
+
+ foreach (var kvp in parsedFonts)
+ {
+ if (kvp.Value is null)
+ {
+ context.ReportDiagnostic(Diagnostic.Create(
+ _errorParsingFontFileDiagnostic,
+ Location.None,
+ kvp.Key));
+ }
+ }
+
+ var source = $$"""
+ {{Header}}
+ namespace Figgle.Fonts;
+
+ partial class FiggleFonts
+ {{{RenderFiggleFontProperties(fontInfos, parsedFonts)}}
+ }
+ """;
+
+ // we expect only a single Alias.csv file, so we don't need to worry about making
+ // the source file name unique.
+ context.AddSource("FiggleFonts.g.cs", source);
+
+ static string RenderFiggleFontProperties(
+ ImmutableArray fontInfos,
+ ImmutableDictionary parsedFonts)
+ {
+ var builder = new StringBuilder(capacity: 4096);
+ var indentation = new string(' ', 4);
+ foreach (var fontInfo in fontInfos)
+ {
+ builder.Append($$"""
+
+
+ {{indentation}}///
+ {{indentation}}/// Obtains the for the font name "{{fontInfo.FontName}}".
+ {{indentation}}///
+ {{indentation}}///
+ {{indentation}}{{RenderSampleText(fontInfo.FontName, parsedFonts[fontInfo.FontName], indentation)}}
+ {{indentation}}///
+ {{indentation}}///
+ {{indentation}}///
+ {{indentation}}public static FiggleFont {{fontInfo.MemberName}} => GetByName("{{fontInfo.FontName}}");
+ """);
+ }
+
+ return builder.ToString();
+ }
+
+ static string RenderSampleText(string fontName, FiggleFont? font, string indentation)
+ {
+ if (font is null)
+ {
+ return $"Failed to parse {fontName} into a {nameof(FiggleFont)}";
+ }
+
+ var renderedText = font.Render(fontName);
+
+ return string.Join(
+ $"\r\n{indentation}",
+ renderedText
+ .Split(_newLineCharacters, StringSplitOptions.None)
+ .Select(line => $"/// {EscapeXmlSpecialCharacters(line)}"));
+ }
+
+ static string EscapeXmlSpecialCharacters(string text)
+ {
+ // SecurityElement conveniently has Escape that escapes XML special
+ // characters, so we can just reuse it.
+ return SecurityElement.Escape(text);
+ }
+ });
+ }
+
+ private sealed record FontInfo(string FontName, string MemberName);
+
+ private sealed record ParsedFont(string Name, FiggleFont? Font);
+}
diff --git a/Figgle.Fonts/Aliases.csv b/Figgle.Fonts/Aliases.csv
new file mode 100644
index 0000000..a204a9d
--- /dev/null
+++ b/Figgle.Fonts/Aliases.csv
@@ -0,0 +1,92 @@
+1row,OneRow
+3-d,ThreeD
+3d_diagonal,ThreeDDiagonal
+3x5,ThreeByFive
+4max,FourMax
+5lineoblique,FiveLineOblique
+amc3line,Amc3Line
+amc3liv1,Amc3Liv1
+amcaaa01,AmcAaa01
+amcneko,AmcNeko
+amcrazo2,AmcRazor2
+amcrazor,AmcRazor
+amcslash,AmcSlash
+amcslder,AmcSlder
+amcthin,AmcThin
+amctubes,AmcTubes
+amcun1,AmcUn1
+barbwire,BarbWire
+bigchief,BigChief
+bigfig,BigFig
+broadway_kb,BroadwayKB
+calgphy2,Caligraphy2
+catwalk,CatWalk
+cyberlarge,CyberLarge
+cybermedium,CyberMedium
+cybersmall,CyberSmall
+dancingfont,DancingFont
+defleppard,DefLeppard
+dietcola,DietCola
+dosrebel,DosRebel
+dotmatrix,DotMatrix
+doubleshorts,DoubleShorts
+drpepper,DRPepper
+dwhistled,DWhistled
+eftichess,EftiChess
+eftifont,EftiFont
+eftipiti,EftiPiti
+eftirobot,EftiRobot
+eftitalic,EftiItalic
+eftiwall,EftiWall
+eftiwater,EftiWater
+flowerpower,FlowerPower
+fourtops,FourTops
+funface,FunFace
+funfaces,FunFaces
+georgi16,Georgia16
+Georgia11,Georgia11
+graffiti,Graffiti
+henry3d,Henry3d
+horizontalleft,HorizontalLeft
+horizontalright,HorizontalRight
+impossible,Impossible
+kontoslant,KontoSlant
+larry3d,Larry3d
+lildevil,LilDevil
+lineblocks,LineBlocks
+lockergnome,LockerGnome
+maxfour,MaxFour
+mshebrew210,Mshebrew210
+nancyj,NancyJ
+nancyj-fancy,NancyJFancy
+nancyj-improved,NancyJImproved
+nancyj-underlined,NancyJUnderlined
+nscript,NScript
+ntgreek,NTGreek
+nvscript,NVScript
+oldbanner,OldBanner
+os2,OS2
+ogre,Ogre
+peaksslant,PeaksSlant
+rectangles,Rectangles
+rowancap,RowanCap
+santaclara,SantaClara
+sblood,SBlood
+slant,Slant
+slscript,ScriptSlant
+serifcap,SerifCap
+smallcaps,SmallCaps
+smisome1,IsometricSmall
+smkeyboard,KeyboardSmall
+smpoison,PoisonSmall
+smscript,ScriptSmall
+smshadow,ShadowSmall
+smslant,SlantSmall
+smtengwar,TengwarSmall
+standard,Standard
+threepoint,ThreePoint
+ticksslant,TicksSlant
+tinker-toy,TinkerToy
+twopoint,TwoPoint
+usaflag,UsaFlag
+wetletter,WetLetter
diff --git a/Figgle.Fonts/Figgle.Fonts.csproj b/Figgle.Fonts/Figgle.Fonts.csproj
index f8e5bd9..d5c338e 100644
--- a/Figgle.Fonts/Figgle.Fonts.csproj
+++ b/Figgle.Fonts/Figgle.Fonts.csproj
@@ -24,6 +24,11 @@
+
+
+
+
+
@@ -33,6 +38,18 @@
+
+
+
+
+
+
+
diff --git a/Figgle.Fonts/FiggleFonts.cs b/Figgle.Fonts/FiggleFonts.cs
index 04575fa..a13442e 100644
--- a/Figgle.Fonts/FiggleFonts.cs
+++ b/Figgle.Fonts/FiggleFonts.cs
@@ -13,279 +13,11 @@ namespace Figgle.Fonts;
///
/// Fonts are stored as an embedded ZIP archive within the assembly.
///
-public static class FiggleFonts
+public static partial class FiggleFonts
{
private static readonly ConcurrentDictionary _fontByName = new(StringComparer.Ordinal);
private static readonly StringPool _stringPool = new();
-#pragma warning disable CS1591
- public static FiggleFont OneRow => GetByName("1row");
- public static FiggleFont ThreeD => GetByName("3-d");
- public static FiggleFont ThreeDDiagonal => GetByName("3d_diagonal");
- public static FiggleFont ThreeByFive => GetByName("3x5");
- public static FiggleFont FourMax => GetByName("4max");
- public static FiggleFont FiveLineOblique => GetByName("5lineoblique");
- public static FiggleFont Acrobatic => GetByName("acrobatic");
- public static FiggleFont Alligator => GetByName("alligator");
- public static FiggleFont Alligator2 => GetByName("alligator2");
- public static FiggleFont Alligator3 => GetByName("alligator3");
- public static FiggleFont Alpha => GetByName("alpha");
- public static FiggleFont Alphabet => GetByName("alphabet");
- public static FiggleFont Amc3Line => GetByName("amc3line");
- public static FiggleFont Amc3Liv1 => GetByName("amc3liv1");
- public static FiggleFont AmcAaa01 => GetByName("amcaaa01");
- public static FiggleFont AmcNeko => GetByName("amcneko");
- public static FiggleFont AmcRazor2 => GetByName("amcrazo2");
- public static FiggleFont AmcRazor => GetByName("amcrazor");
- public static FiggleFont AmcSlash => GetByName("amcslash");
- public static FiggleFont AmcSlder => GetByName("amcslder");
- public static FiggleFont AmcThin => GetByName("amcthin");
- public static FiggleFont AmcTubes => GetByName("amctubes");
- public static FiggleFont AmcUn1 => GetByName("amcun1");
- public static FiggleFont Arrows => GetByName("arrows");
- public static FiggleFont AsciiNewroman => GetByName("ascii_new_roman");
- public static FiggleFont Avatar => GetByName("avatar");
- public static FiggleFont B1FF => GetByName("B1FF");
- public static FiggleFont Banner => GetByName("banner");
- public static FiggleFont Banner3 => GetByName("banner3");
- public static FiggleFont Banner3D => GetByName("banner3-D");
- public static FiggleFont Banner4 => GetByName("banner4");
- public static FiggleFont BarbWire => GetByName("barbwire");
- public static FiggleFont Basic => GetByName("basic");
- public static FiggleFont Bear => GetByName("bear");
- public static FiggleFont Bell => GetByName("bell");
- public static FiggleFont Benjamin => GetByName("benjamin");
- public static FiggleFont Big => GetByName("big");
- public static FiggleFont BigChief => GetByName("bigchief");
- public static FiggleFont BigFig => GetByName("bigfig");
- public static FiggleFont Binary => GetByName("binary");
- public static FiggleFont Block => GetByName("block");
- public static FiggleFont Blocks => GetByName("blocks");
- public static FiggleFont Bolger => GetByName("bolger");
- public static FiggleFont Braced => GetByName("braced");
- public static FiggleFont Bright => GetByName("bright");
- public static FiggleFont Broadway => GetByName("broadway");
- public static FiggleFont BroadwayKB => GetByName("broadway_kb");
- public static FiggleFont Bubble => GetByName("bubble");
- public static FiggleFont Bulbhead => GetByName("bulbhead");
- public static FiggleFont Caligraphy2 => GetByName("calgphy2");
- public static FiggleFont Caligraphy => GetByName("caligraphy");
- public static FiggleFont Cards => GetByName("cards");
- public static FiggleFont CatWalk => GetByName("catwalk");
- public static FiggleFont Chiseled => GetByName("chiseled");
- public static FiggleFont Chunky => GetByName("chunky");
- public static FiggleFont Coinstak => GetByName("coinstak");
- public static FiggleFont Cola => GetByName("cola");
- public static FiggleFont Colossal => GetByName("colossal");
- public static FiggleFont Computer => GetByName("computer");
- public static FiggleFont Contessa => GetByName("contessa");
- public static FiggleFont Contrast => GetByName("contrast");
- public static FiggleFont Cosmic => GetByName("cosmic");
- public static FiggleFont Cosmike => GetByName("cosmike");
- public static FiggleFont Crawford => GetByName("crawford");
- public static FiggleFont Crazy => GetByName("crazy");
- public static FiggleFont Cricket => GetByName("cricket");
- public static FiggleFont Cursive => GetByName("cursive");
- public static FiggleFont CyberLarge => GetByName("cyberlarge");
- public static FiggleFont CyberMedium => GetByName("cybermedium");
- public static FiggleFont CyberSmall => GetByName("cybersmall");
- public static FiggleFont Cygnet => GetByName("cygnet");
- public static FiggleFont DANC4 => GetByName("DANC4");
- public static FiggleFont DancingFont => GetByName("dancingfont");
- public static FiggleFont Decimal => GetByName("decimal");
- public static FiggleFont DefLeppard => GetByName("defleppard");
- public static FiggleFont Diamond => GetByName("diamond");
- public static FiggleFont DietCola => GetByName("dietcola");
- public static FiggleFont Digital => GetByName("digital");
- public static FiggleFont Doh => GetByName("doh");
- public static FiggleFont Doom => GetByName("doom");
- public static FiggleFont DosRebel => GetByName("dosrebel");
- public static FiggleFont DotMatrix => GetByName("dotmatrix");
- public static FiggleFont Double => GetByName("double");
- public static FiggleFont DoubleShorts => GetByName("doubleshorts");
- public static FiggleFont DRPepper => GetByName("drpepper");
- public static FiggleFont DWhistled => GetByName("dwhistled");
- public static FiggleFont EftiChess => GetByName("eftichess");
- public static FiggleFont EftiFont => GetByName("eftifont");
- public static FiggleFont EftiPiti => GetByName("eftipiti");
- public static FiggleFont EftiRobot => GetByName("eftirobot");
- public static FiggleFont EftiItalic => GetByName("eftitalic");
- public static FiggleFont EftiWall => GetByName("eftiwall");
- public static FiggleFont EftiWater => GetByName("eftiwater");
- public static FiggleFont Epic => GetByName("epic");
- public static FiggleFont Fender => GetByName("fender");
- public static FiggleFont Filter => GetByName("filter");
- public static FiggleFont FireFontK => GetByName("fire_font-k");
- public static FiggleFont FireFontS => GetByName("fire_font-s");
- public static FiggleFont Flipped => GetByName("flipped");
- public static FiggleFont FlowerPower => GetByName("flowerpower");
- public static FiggleFont FourTops => GetByName("fourtops");
- public static FiggleFont Fraktur => GetByName("fraktur");
- public static FiggleFont FunFace => GetByName("funface");
- public static FiggleFont FunFaces => GetByName("funfaces");
- public static FiggleFont Fuzzy => GetByName("fuzzy");
- public static FiggleFont Georgia16 => GetByName("georgi16");
- public static FiggleFont Georgia11 => GetByName("Georgia11");
- public static FiggleFont Ghost => GetByName("ghost");
- public static FiggleFont Ghoulish => GetByName("ghoulish");
- public static FiggleFont Glenyn => GetByName("glenyn");
- public static FiggleFont Goofy => GetByName("goofy");
- public static FiggleFont Gothic => GetByName("gothic");
- public static FiggleFont Graceful => GetByName("graceful");
- public static FiggleFont Gradient => GetByName("gradient");
- public static FiggleFont Graffiti => GetByName("graffiti");
- public static FiggleFont Greek => GetByName("greek");
- public static FiggleFont HeartLeft => GetByName("heart_left");
- public static FiggleFont HeartRight => GetByName("heart_right");
- public static FiggleFont Henry3d => GetByName("henry3d");
- public static FiggleFont Hex => GetByName("hex");
- public static FiggleFont Hieroglyphs => GetByName("hieroglyphs");
- public static FiggleFont Hollywood => GetByName("hollywood");
- public static FiggleFont HorizontalLeft => GetByName("horizontalleft");
- public static FiggleFont HorizontalRight => GetByName("horizontalright");
- public static FiggleFont ICL1900 => GetByName("ICL-1900");
- public static FiggleFont Impossible => GetByName("impossible");
- public static FiggleFont Invita => GetByName("invita");
- public static FiggleFont Isometric1 => GetByName("isometric1");
- public static FiggleFont Isometric2 => GetByName("isometric2");
- public static FiggleFont Isometric3 => GetByName("isometric3");
- public static FiggleFont Isometric4 => GetByName("isometric4");
- public static FiggleFont Italic => GetByName("italic");
- public static FiggleFont Ivrit => GetByName("ivrit");
- public static FiggleFont Jacky => GetByName("jacky");
- public static FiggleFont Jazmine => GetByName("jazmine");
- public static FiggleFont Jerusalem => GetByName("jerusalem");
- public static FiggleFont Katakana => GetByName("katakana");
- public static FiggleFont Kban => GetByName("kban");
- public static FiggleFont Keyboard => GetByName("keyboard");
- public static FiggleFont Knob => GetByName("knob");
- public static FiggleFont Konto => GetByName("konto");
- public static FiggleFont KontoSlant => GetByName("kontoslant");
- public static FiggleFont Larry3d => GetByName("larry3d");
- public static FiggleFont Lcd => GetByName("lcd");
- public static FiggleFont Lean => GetByName("lean");
- public static FiggleFont Letters => GetByName("letters");
- public static FiggleFont LilDevil => GetByName("lildevil");
- public static FiggleFont LineBlocks => GetByName("lineblocks");
- public static FiggleFont Linux => GetByName("linux");
- public static FiggleFont LockerGnome => GetByName("lockergnome");
- public static FiggleFont Madrid => GetByName("madrid");
- public static FiggleFont Marquee => GetByName("marquee");
- public static FiggleFont MaxFour => GetByName("maxfour");
- public static FiggleFont Merlin1 => GetByName("merlin1");
- public static FiggleFont Merlin2 => GetByName("merlin2");
- public static FiggleFont Mike => GetByName("mike");
- public static FiggleFont Mini => GetByName("mini");
- public static FiggleFont Mirror => GetByName("mirror");
- public static FiggleFont Mnemonic => GetByName("mnemonic");
- public static FiggleFont Modular => GetByName("modular");
- public static FiggleFont Morse => GetByName("morse");
- public static FiggleFont Morse2 => GetByName("morse2");
- public static FiggleFont Moscow => GetByName("moscow");
- public static FiggleFont Mshebrew210 => GetByName("mshebrew210");
- public static FiggleFont Muzzle => GetByName("muzzle");
- public static FiggleFont NancyJ => GetByName("nancyj");
- public static FiggleFont NancyJFancy => GetByName("nancyj-fancy");
- public static FiggleFont NancyJImproved => GetByName("nancyj-improved");
- public static FiggleFont NancyJUnderlined => GetByName("nancyj-underlined");
- public static FiggleFont Nipples => GetByName("nipples");
- public static FiggleFont NScript => GetByName("nscript");
- public static FiggleFont NTGreek => GetByName("ntgreek");
- public static FiggleFont NVScript => GetByName("nvscript");
- public static FiggleFont O8 => GetByName("o8");
- public static FiggleFont Octal => GetByName("octal");
- public static FiggleFont Ogre => GetByName("ogre");
- public static FiggleFont OldBanner => GetByName("oldbanner");
- public static FiggleFont OS2 => GetByName("os2");
- public static FiggleFont Pawp => GetByName("pawp");
- public static FiggleFont Peaks => GetByName("peaks");
- public static FiggleFont PeaksSlant => GetByName("peaksslant");
- public static FiggleFont Pebbles => GetByName("pebbles");
- public static FiggleFont Pepper => GetByName("pepper");
- public static FiggleFont Poison => GetByName("poison");
- public static FiggleFont Puffy => GetByName("puffy");
- public static FiggleFont Puzzle => GetByName("puzzle");
- public static FiggleFont Pyramid => GetByName("pyramid");
- public static FiggleFont Rammstein => GetByName("rammstein");
- public static FiggleFont Rectangles => GetByName("rectangles");
- public static FiggleFont RedPhoenix => GetByName("red_phoenix");
- public static FiggleFont Relief => GetByName("relief");
- public static FiggleFont Relief2 => GetByName("relief2");
- public static FiggleFont Rev => GetByName("rev");
- public static FiggleFont Reverse => GetByName("reverse");
- public static FiggleFont Roman => GetByName("roman");
- public static FiggleFont Rot13 => GetByName("rot13");
- public static FiggleFont Rotated => GetByName("rotated");
- public static FiggleFont Rounded => GetByName("rounded");
- public static FiggleFont RowanCap => GetByName("rowancap");
- public static FiggleFont Rozzo => GetByName("rozzo");
- public static FiggleFont Runic => GetByName("runic");
- public static FiggleFont Runyc => GetByName("runyc");
- public static FiggleFont SantaClara => GetByName("santaclara");
- public static FiggleFont SBlood => GetByName("sblood");
- public static FiggleFont Script => GetByName("script");
- public static FiggleFont ScriptSlant => GetByName("slscript");
- public static FiggleFont SerifCap => GetByName("serifcap");
- public static FiggleFont Shadow => GetByName("shadow");
- public static FiggleFont Shimrod => GetByName("shimrod");
- public static FiggleFont Short => GetByName("short");
- public static FiggleFont Slant => GetByName("slant");
- public static FiggleFont Slide => GetByName("slide");
- public static FiggleFont Small => GetByName("small");
- public static FiggleFont SmallCaps => GetByName("smallcaps");
- public static FiggleFont IsometricSmall => GetByName("smisome1");
- public static FiggleFont KeyboardSmall => GetByName("smkeyboard");
- public static FiggleFont PoisonSmall => GetByName("smpoison");
- public static FiggleFont ScriptSmall => GetByName("smscript");
- public static FiggleFont ShadowSmall => GetByName("smshadow");
- public static FiggleFont SlantSmall => GetByName("smslant");
- public static FiggleFont TengwarSmall => GetByName("smtengwar");
- public static FiggleFont Soft => GetByName("soft");
- public static FiggleFont Speed => GetByName("speed");
- public static FiggleFont Spliff => GetByName("spliff");
- public static FiggleFont SRelief => GetByName("s-relief");
- public static FiggleFont Stacey => GetByName("stacey");
- public static FiggleFont Stampate => GetByName("stampate");
- public static FiggleFont Stampatello => GetByName("stampatello");
- public static FiggleFont Standard => GetByName("standard");
- public static FiggleFont Starstrips => GetByName("starstrips");
- public static FiggleFont Starwars => GetByName("starwars");
- public static FiggleFont Stellar => GetByName("stellar");
- public static FiggleFont Stforek => GetByName("stforek");
- public static FiggleFont Stop => GetByName("stop");
- public static FiggleFont Straight => GetByName("straight");
- public static FiggleFont SubZero => GetByName("sub-zero");
- public static FiggleFont Swampland => GetByName("swampland");
- public static FiggleFont Swan => GetByName("swan");
- public static FiggleFont Sweet => GetByName("sweet");
- public static FiggleFont Tanja => GetByName("tanja");
- public static FiggleFont Tengwar => GetByName("tengwar");
- public static FiggleFont Term => GetByName("term");
- public static FiggleFont Test1 => GetByName("test1");
- public static FiggleFont Thick => GetByName("thick");
- public static FiggleFont Thin => GetByName("thin");
- public static FiggleFont ThreePoint => GetByName("threepoint");
- public static FiggleFont Ticks => GetByName("ticks");
- public static FiggleFont TicksSlant => GetByName("ticksslant");
- public static FiggleFont Tiles => GetByName("tiles");
- public static FiggleFont TinkerToy => GetByName("tinker-toy");
- public static FiggleFont Tombstone => GetByName("tombstone");
- public static FiggleFont Train => GetByName("train");
- public static FiggleFont Trek => GetByName("trek");
- public static FiggleFont Tsalagi => GetByName("tsalagi");
- public static FiggleFont Tubular => GetByName("tubular");
- public static FiggleFont Twisted => GetByName("twisted");
- public static FiggleFont TwoPoint => GetByName("twopoint");
- public static FiggleFont Univers => GetByName("univers");
- public static FiggleFont UsaFlag => GetByName("usaflag");
- public static FiggleFont Varsity => GetByName("varsity");
- public static FiggleFont Wavy => GetByName("wavy");
- public static FiggleFont Weird => GetByName("weird");
- public static FiggleFont WetLetter => GetByName("wetletter");
- public static FiggleFont Whimsy => GetByName("whimsy");
- public static FiggleFont Wow => GetByName("wow");
-#pragma warning restore CS1591
-
private static FiggleFont GetByName(string name)
{
return _fontByName.GetOrAdd(name, FontFactory);
diff --git a/Figgle.sln b/Figgle.sln
index f387c99..e2b5a80 100644
--- a/Figgle.sln
+++ b/Figgle.sln
@@ -306,6 +306,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{02EA
.github\workflows\release.yml = .github\workflows\release.yml
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Figgle.Fonts.Generator", "Figgle.Fonts.Generator\Figgle.Fonts.Generator.csproj", "{021EFDCD-EE3F-4C35-B93E-2E760AA481AF}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -400,6 +402,18 @@ Global
{A94B3D16-C26C-4822-A0DF-846A11B27F7D}.Release|x64.Build.0 = Release|Any CPU
{A94B3D16-C26C-4822-A0DF-846A11B27F7D}.Release|x86.ActiveCfg = Release|Any CPU
{A94B3D16-C26C-4822-A0DF-846A11B27F7D}.Release|x86.Build.0 = Release|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Debug|x64.Build.0 = Debug|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Debug|x86.Build.0 = Debug|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Release|x64.ActiveCfg = Release|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Release|x64.Build.0 = Release|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Release|x86.ActiveCfg = Release|Any CPU
+ {021EFDCD-EE3F-4C35-B93E-2E760AA481AF}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE