Browser and install GUI for cookiecutter templates

⌈⌋ branch:  cookiedough


uidata.json structure

The included cookiecutter database is based upon an extraction from GitHub, filtered, and restructured for easier UI application. Entries typically contain:

"vnd/pkg": {
    "name": "vnd/pkg",
    "short": "pkg",
    "description": "...",
    "url": "",
    "repo": "",
    "homepage": null,
    "created_at": "2011-11-11T11:11:11Z",
    "updated_at": "2021-02-22T22:22:22Z",
    "size": 222,
    "stars": 2,
    "api": "lang",
    "has_wiki": true,
    "forks": 1,
    "license": "MIT",
    "tickets": 0,
    "default_branch": "trunk",
    "_disabled": false,
    "keywords": " from `_keywords` in cookiecutter.json ",
    "dir": "└── lib\n",
    "readme": " contents",
    "cookiecutterjson_url": "https://raw.ghusrcnt/vnd/pkg/trunk/cookiecutter.json",
    "config": [
            "type": "str",
            "name": "project_name",
            "value": "mypkg",
            "class": "cookiecutter",
            "description": " taken from README table, if any "

Most fields are literal copies. Whereas dir is a textual transformation of the /tree list. And config a converted cookiecutter.json list. The api field is either just GitHubs detected repository language (often fairly off), or an extract from the repository name, or whatever was specified as _api in cc.json.

The "score":{} dict will be freshly recreated on startup, so is not in the template database.


The config field list is an upmarket version of the cookiecutter.json dict. Roughly compatible with the pluginconf structure. Albeit CD is using a custom input window anyway.

Notably the description field cannot be set other than from the README. It should contain a table listing each template variable:

 | `cc_varname` | Explanation ... |

(Seen some discussion on a cc.json 2.0 format. So this might be a temporary thing. Still useful to users, btw!)

See also how to Improve your cookiecutters.json