Browser and install GUI for cookiecutter templates

⌈⌋ ⎇ branch:  cookiedough


Artifact [cff40e737f]

Artifact cff40e737fa48ace968067e7dbcb4a0430d2874402fd7b710cc5d859678d8064:

Wiki page [uidata] by mario 2021-03-22 06:15:30.
D 2021-03-22T06:15:30.107
L uidata
N text/x-markdown
U mario
W 2376

## 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": "https://github.com/vnd/pkg",
        "repo": "https://github.com/vnd/pkg.git",
        "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": "README.md 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](wiki/improve).

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


### config

The config field list is an upmarket version of the cookiecutter.json dict.
Roughly compatible with the [pluginconf](https://fossil.include-once.org/pluginspec/wiki/config)
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](https://github.com/cookiecutter/cookiecutter/issues/794).
So this might be a temporary thing. Still useful to users, btw!)

See also how to [Improve your cookiecutters.json](wiki/improve)


Z c5a4aba02ae89702c855ff7abef01c8a