LoremPress 1.0.3
dotnet add package LoremPress --version 1.0.3
NuGet\Install-Package LoremPress -Version 1.0.3
<PackageReference Include="LoremPress" Version="1.0.3" />
<PackageVersion Include="LoremPress" Version="1.0.3" />
<PackageReference Include="LoremPress" />
paket add LoremPress --version 1.0.3
#r "nuget: LoremPress, 1.0.3"
#:package LoremPress@1.0.3
#addin nuget:?package=LoremPress&version=1.0.3
#tool nuget:?package=LoremPress&version=1.0.3
LoremPress
LoremPress is a minimal .NET library for generating synthetic book and article titles using lightweight grammar templates and curated vocabulary. I missed some features in the Bogus library and, after ChatGPT was unable to find a replacement, the decision was made to create something small and beatiful. I appreciate ChatGPT's assistance at the decision making as well as at coding.
It is designed to be:
- small
- deterministic (optional)
- dependency-free
- easily extensible
- suitable for test data, UI prototyping, and procedural content generation
Concept
LoremPress generates titles by combining:
- Templates (structure rules)
- Vocabulary pools (words)
- Random selection (controlled variability)
Example output:
- Silent Worlds
- The Hidden Theory
- Empire of Broken Signals
- On Ancient Structures
Installation
Nuget
(Will be added)
Clone this repository
Choose the local directory where you want the code files of LoremPress to be cloned to.
Then:
git clone https://github.com/pikkatech-eu/LoremPress
Download binaries
- Download self-extracting file
https://github.com/pikkatech-eu/LoremPress/releases/download/Beta_1.0/LoremPress_setup_2026-05-12.exe(which is the last version at the moment). - Launch the setup exe file, it will ask you where to install the files you need:
LoremPress.dllandLoremPress.deps.json. - Add
LoremPress.dllas a dependency to your project.
Quick Start
using LoremPress;
namespace LoremPress.Tests
{
/// <summary>
/// Getting Started with LoremPress
/// </summary>
public static class Program
{
static void Main()
{
// Create a publication title with academic flair
string academic = Fakir.Publication.Title(Flair.Academic);
Console.WriteLine($"Title academic: \"{academic}\"");
// Create a publication title with literary flair
string literary = Fakir.Publication.Title(Flair.Literary);
Console.WriteLine($"Title literary: \"{literary}\"");
// Create a publication title with sci-fi/technical flair
string technical = Fakir.Publication.Title(Flair.Technical);
Console.WriteLine($"Title technical: \"{technical}\"");
// Create a publication title with random flair
string randomTitle = Fakir.Publication.Title();
Console.WriteLine($"Title random: \"{randomTitle}\"");
Console.WriteLine();
// Create a journal name
string journal = Fakir.Journal.JournalName();
Console.WriteLine($"Journal name: \"{journal}\"");
Console.WriteLine();
// Create a DOI
string doi = Fakir.Codes.Doi();
Console.WriteLine($"DOI: \"{doi}\"");
// Creata an ISBN
string isbn = Fakir.Codes.Isbn();
Console.WriteLine($"ISBN: \"{isbn}\"");
// Creata an ISSN
string issn = Fakir.Codes.Issn();
Console.WriteLine($"ISSN: \"{issn}\"");
Console.WriteLine();
// Create a sentence of academic flair
string sentAcademic = Fakir.Prose.Sentence(Flair.Academic);
Console.WriteLine($"Sentence academic: \"{sentAcademic}\"");
// Create a sentence of literary flair
string sentLiterary = Fakir.Prose.Sentence(Flair.Literary);
Console.WriteLine($"Sentence literary: \"{sentLiterary}\"");
// Create a sentence of technical flair
string sentTechnical = Fakir.Prose.Sentence(Flair.Technical);
Console.WriteLine($"Sentence technical: \"{sentTechnical}\"");
// Create a sentence of random flair
string sentRandom = Fakir.Prose.Sentence();
Console.WriteLine($"Sentence random: \"{sentRandom}\"");
Console.WriteLine();
// Create a text of academic flair with given number of sentences
string textAcademic = Fakir.Prose.Text(Flair.Academic, 4);
Console.WriteLine($"Text academic (4): \"{textAcademic}\"");
Console.WriteLine();
// Create a text of academic flair with random number of sentences
string textAcademicRandom = Fakir.Prose.Text(Flair.Academic, 6, 2);
Console.WriteLine($"Text academic (random): \"{textAcademicRandom}\"");
}
}
}
Your expected output:
<pre>
Title academic: "On Spectral Disciplines"
Title literary: "Chronicle of Radial Expeditions"
Title technical: "Frozen Translations Protocol"
Title random: "Towards a Model of Residual Theories"
Journal name: "Quarterly Transactions of Cultural Memory"
DOI: "10.2284/tzuodh.2013.448"
ISBN: "9783348670272"
ISSN: "8936-8401"
Sentence academic: "The Concealed Labyrinth interacts under controlled conditions."
Sentence literary: "The Vector orchestrates through forgotten Constructs."
Sentence technical: "The interface constructs user-defined Narratives."
Sentence random: "The Empires of the past diverges quietly."
Text academic (4): "The literature echoes conflicting interpretations of Temporal Vectors. This approach manifests existing theories of Fragmentary Narratives. Experimental results connects predicted Transient Constellations. The model extends additional constraints on Dynamic Archives."
Text academic (random): "Empirical data deconstructs across multiple Lost Observations. The hypothesis attenuates the dynamics of Asymmetric Expeditions."
</pre>
Design Philosophy
LoremPress is intentionally minimal.
It avoids:
- external datasets
- NLP models
- runtime corpus loading
- heavy abstraction layers
Instead, it focuses on:
small deterministic components that produce plausible structured text.
Internal Model
The generator is based on three components:
1. Vocabulary
Simple in-memory word lists:
- adjectives
- nouns
- connectors (of, and, in, etc.)
2. Templates
Structural patterns such as:
- {Adj} {Noun}
- The {Adj} {Noun}
- {Noun} of {Adj} {Noun}
3. Renderer
A lightweight substitution engine that fills templates using random selection.
Extensibility (planned)
Future versions may support:
- weighted vocabulary
- multiple style packs (academic, fantasy, news, etc.)
- locale-based word sets
- deterministic seeding modes
- custom template providers
Non-goals
LoremPress is NOT intended to be:
- a natural language generator
- a large-scale AI text system
- a corpus-based NLP tool
- a replacement for real linguistic datasets
It is intentionally small and symbolic.
Inspiration
LoremPress is conceptually inspired by:
- template-based text generation systems
- procedural content generation techniques
- lightweight fake data generators such as Bogus
- classical rhetorical and editorial title structures
License
MIT License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.