wpetit e587d00265 | ||
---|---|---|
.chglog | ||
.githooks | ||
.github/workflows | ||
cmd/frmd | ||
internal | ||
misc | ||
.env.dist | ||
.gitignore | ||
.goreleaser.yaml | ||
CHANGELOG.md | ||
Makefile | ||
README.md | ||
commitlint.config.js | ||
go.mod | ||
go.sum | ||
modd.conf | ||
package-lock.json | ||
package.json | ||
tailwind.config.js |
README.md
Formidable
Web-based - but terminal compatible ! - little form editor using JSONSchema models.
Terminal compatible ?
The generated web UI does not use Javascript and can be used with terminal browsers like w3m or lynx.
⚠ Formidable is currently in a very alpha stage ! Expect breaking changes...
Install
Manually
Download the pre-compiled binaries from the releases page and copy them to the desired location.
Bash script
curl -sfL https://raw.githubusercontent.com/Bornholm/formidable/master/misc/script/install.sh | bash
It will download frmd
to your current directory.
Install script environment variables
Name | Description | Default |
---|---|---|
FORMIDABLE_VERSION |
Formidable version to download | latest |
FORMIDABLE_DESTDIR |
Formidable destination directory | . |
URLs
Formidable uses URLs to define how to handle schemas/defaults/values.
For example, to edit with Firefox a schema (in YAML) from an HTTPS server, while readig default values from stdin
(in JSON) and using effective values from the local file system (in HCL), outputing updates to stdout
:
echo '{}' | FORMIDABLE_BROWSER="firefox" frmd \
edit
--schema 'https://example.com/my-schema.yml' \
--defaults 'stdin://local?format=json' \
--values 'file:///my/file/absolute/path.hcl' \
--output 'stdout://local?format=json'
Available loaders
stdin://
TODO: Write doc + example
http://
and https://
TODO: Write doc + example
file://
TODO: Write doc + example
Available formats
JSON
- URL Query:
?format=json
- File extension:
.json
- As input: yes
- As output: yes
YAML
- URL Query:
?format=yaml
- File extension:
.yaml
or.yml
- As input: yes
- As output: yes
HCL
- URL Query:
?format=hcl
- File extension:
.hcl
- As input: yes
- As output: no
Available outputs
stdout://
(default)
TODO: Write doc + example
null://
TODO: Write doc + example
file://
TODO: Write doc + example
exec://
TODO: Write doc + example
Changelog
Licence
AGPL-3.0