Skip to content

cronvel/kung-fig

Repository files navigation

Kung-Fig

Kung Fig!

The Kung Fu of configuration files!

Kung-Fig is a wonderful file format named KFG, its parser, its stringifier, and a set of great tools.

It is great for:

  • Configuration files
  • Hierarchical configuration files
  • Global/local and vanilla/plugins override and extension management
  • Application data
  • Saving user prefs in a human-friendly format
  • Building scripting language on top of it
  • Game characters, weapons, armors, spells, stats, bonuses, etc
  • Internationalization/localization
  • ... and many more

Now, look at this impressive list of features:

  • Human friendly data structure representation (similar to YAML, but potentially better)
  • Comments support
  • Multi-line strings support, with or without newline folding
  • Sections
  • Nice Map and dictionnary syntax
  • Classes/Constructors (date, binary data, regular expression, and custom constructors!)
  • Including files (.kfg, .json, .js, .txt, etc), featuring globs and recursive parent search
  • Relational data representation support
  • Meta-tags (headers)
  • Tags (to build scripting language on top of KFG)
  • References (i.e. referencing a part of the document from elsewhere)
  • Template strings and internationalization/localization
  • Expressions (arithmetic, logic, maths, etc)
  • Tree operations syntax (merge, combine, etc)
  • ... and many more!

Official support of the Atom editor:

A KFG Primer

Example of simple document:

# This is a comment!

# Set few properties:
first-name: Joe
last-name: Doe
age: 47

# This property contains an array:
interest:
	- science
	- literature
	- computer

# Use the special 'date' constructor:
birth-date: <date> Fri Jan 02 1970 11:17:36 GMT+0100 (CET)

# This include a file
items: @@path/to/file/items.kfg

Example featuring tags, suitable for for scripting (here Spellcast Scripting):

# Meta-tags (like headers)
[[doctype spellcast/story]]
[[locales locales/*]]

# Tags
[chapter story]
	
	[scene intro]
		[image] village.png
		[music] intro-theme.ogg
		
		[message]
			$> Once upon a time, there was a ${character.class}...
		
		[next end]
	
	[scene end]
		[image] castle.png
		[music] ending-theme.ogg
		
		[message]
			$> You found the master and learn everything he taught to you.
			$> You became famous in the entire country.
		
		[win]

Table of Contents

About

The Kung Fu of configuration files!

Resources

License

Stars

Watchers

Forks

Packages

No packages published