Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

kung-fig

0.46.1 • Public • Published

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)
  • Comments support
  • Multi-line strings support
  • 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
  • Template strings and internationalization/localization
  • Expressions (arithmetic, logic, maths, etc)
  • Tree operations (merge, combine, etc)

Official support of the Atom editor:

A KFG Primer

Example of 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

install

npm i kung-fig

Downloadsweekly downloads

599

version

0.46.1

license

MIT

repository

githubgithub

last publish

collaborators

  • avatar