LoremPress 1.0.3

dotnet add package LoremPress --version 1.0.3
                    
NuGet\Install-Package LoremPress -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LoremPress" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LoremPress" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="LoremPress" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LoremPress --version 1.0.3
                    
#r "nuget: LoremPress, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LoremPress@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LoremPress&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=LoremPress&version=1.0.3
                    
Install as a Cake Tool

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.dll and LoremPress.deps.json.
  • Add LoremPress.dll as 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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.

Version Downloads Last Updated
1.0.3 120 5/14/2026
1.0.2 99 5/14/2026
1.0.1 108 5/14/2026
1.0.0 106 5/13/2026