Releases: kesac/Syllabore
Releases · kesac/Syllabore
v3.0.1-alpha
v3.0.1-alpha is now available:
- Added new documentation, now available as a gitbook at https://sacro.gitbook.io/syllabore
- Added new usability improvements
- Simplified weights, positions, and probabilities
- Made fluent API optional and less verbose
- Added Unicode support
- Moved away from technical terms or verbose terms (leading consonants, codas, graphemes, etc.)
- Moved toward position-based terms (symbols, inner syllables, etc.)
- Added new experimental class doc generator
- Removed deprecated classes and methods
- Archived old v2 docs
A list of breaking changes is available at https://github.com/kesac/Syllabore/blob/main/docs/v2-to-v3-breaking-changes.md
v2.3.3
Changes
- Generator classes that simulate randomness now implement
IRandomizable - The instance of
System.Randomwithin generator classes is now accessible through theRandomproperty- This affects
NameGenerator,SyllableGenerator,SyllableSet, andTransformerSet
- This affects
- In addition, a new fluent-style method has been added to each generator class to set the
Randominstance during configuration - These changes addresses proposal #14 which asks for control over random seeds
See the new wiki page here for code examples on controlling random seeds.
v2.3.2
Changes
- API documentation now ships with the nuget package: they should appear as tool tips in your favourite IDE when you hover over a class name or method
- API documentation now covers all classes and methods
- More unit tests and improved test organization (thanks @monerofglory)
- The example project and the unit test project have moved to .NET 8 (LTS)
- Note: You do need to use to .NET 8 to use the class library. The library itself targets .NET Standard 2.0 which remains compatible with anything from .NET Framework 4.6.2 through to .NET 8
v2.3.1
v2.3
Changes
- Simplified
DefaultSyllableGeneratorused in vanillaNameGenerators - Added way to control the final consonant of a name
- Simplified way for controlling sequence probabilities
Example
var syllables = new SyllableGenerator();
syllables.WithLeadingConsonants("bdlmprst");
syllables.WithVowels("aeio");
syllables.WithFinalConsonants("dlmnrstx"); // These consonants only appear at the end of a name
syllables.WithProbability(x => x
.OfLeadingConsonants(0.95, 0.25) // The second value is the probability of a sequence
.OfFinalConsonants(0.50, 0.25));v2.2.1
Changes
- Class
SyllableProviderdeprecated in favor forSyllableGenerator - Class
SyllableProviderProbabilityremoved. New classGeneratorProbabilityreplaces it. NameGenerator.UsingProbability()can be used to modify syllable probabilitiesSyllableGenerator.WithProbability()can be used to modify syllable probabilities- New
Of()methods added to classGeneratorProbabilityto control probabilities - Transformations are now defined by calling method
UsingTransform(INameTransformer)orUsingTransform(double, INameTransformer) NameGenerator.UsingTransformer()is now deprecated in favor ofNameGenerator.UsingTransform()- Class
NameGeneratornow has a new(string, string)constructor for simple customization of vowels and consonants - Method
NameGenerator.UsingProvider(ISyllableGenerator)is now deprecated in favor of.UsingSyllables(ISyllableGenerator) - Added method
DoNotAllow()to classNameGeneratorto simplify name filtering
Changes to Wiki
- Every single page in the wiki was updated for this version
v2.0.2
- Improvements to
SyllableSet- Added method for specifying starter, middle, or ending syllables
- Specifying syllables or a
SyllableProvidercan be done in any order
- Deprecated
DefaultNameTransformer - Minor update to generators and transformers
-The check against transform probability has been moved directly in to NameTransformer. It was in NameGenerator originally.
v2.0.1
v2.0.1 Changelog
Provider Changes
- Grapheme positioning and clustering probabilities are now set by calling
WithProbability()on aSyllableProvider
var g = new NameGenerator()
.UsingProvider(x => x
.WithVowels("ae")
.WithLeadingConsonants("str")
.WithTrailingConsonants("mnl")
.WithProbability(x => x
.LeadingConsonantExists(1.0)
.TrailingConsonantExists(0.20)));- Weights can now be assigned directly to consonants and vowels to influence their frequency of use
var g = new NameGenerator()
.UsingProvider(x => x
.WithVowels("a").Weight(5) // This vowel will now occur 2.5 times more often than other vowels
.WithVowels("ei").Weight(2)
.WithConsonants("trs"));Mutator (Transformer) Changes
- Name mutators have been reimplemented and are now called name
Transformers. Similarly, Mutations are nowTransformsand MutationSteps areTransformSteps. - Transformation frequency is now set by calling
Select()andChance()directly on aTransformer - Weights can now be assigned to transforms to influence their frequency
var g = new NameGenerator()
.UsingProvider(x => x
.WithVowels("ae")
.WithLeadingConsonants("str"))
.UsingTransformer(x => x
.Select(1).Chance(0.5)
.WithTransform(x => x.AppendSyllable("gard")).Weight(2)
.WithTransform(x => x.AppendSyllable("dar")))
.UsingSyllableCount(3);- Additionally, all
Transformsare now serializable unless usingExecuteUnserializableAction()
Validator (Filter) Changes
- Name validators are now name
Filters DoNotAllow(),DoNotAllowEnding(),DoNotAlllowBeginning()methods have been added to filters as an alternative to providing regular expressions
var g = new NameGenerator()
.UsingFilter(x => x
.DoNotAllowEnding("j","p","q","w") // Invalidate these awkward endings
.DoNotAllowPattern(@"(\w)\1\1") // Invalidate any sequence of 3 or more identical letters
.DoNotAllowPattern(@"([^aeiouAEIOU])\1\1\1")); // Invalidate any sequence of 4 or more consonantsSerialization Changes
ConfigurationFilehas been replaced with classNameGeneratorSerializer
Minor changes
NameGeneratorLimitSyllableCount()is nowUsingSyllableCount()- Added
SyllableSetas first alternative toSyllableProvider - Syllabore now uses Archigen
v2.0-alpha5
Bump to version 2.0-alpha5
v2.0-alpha4
Increment version to v2.0.0.0-alpha4