Skip to content

Commit 5d98452

Browse files
committed
build: generate README.md from data/projects.toml
1 parent d1af231 commit 5d98452

8 files changed

+913
-30
lines changed

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Makefile linguist-vendored
2+
*.md.template linguist-vendored
3+
render-template.ts linguist-vendored

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/attic

CONTRIBUTING.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Contributing
2+
3+
## Do not edit `README.md` directly
4+
5+
`README.md` is automatically generated from `README.md.jinja2` and the data in [`data/projects.toml`](data/projects.toml). Do not edit `README.md` directly. To add a project or update a project's information, edit `data/projects.toml`. Edit `README.md.njk` to change information not derived from `data/projects.toml`.

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
all: README.md
2+
3+
README.md: README.md.njk render-template.ts Makefile data/projects.toml
4+
./render-template.ts README.md.njk data/projects.toml > $@
5+
6+
.PHONY: all

README.md

Lines changed: 31 additions & 30 deletions
Large diffs are not rendered by default.

README.md.njk

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Embedded scripting languages
2+
3+
The following is a list of reasonably mature open source [embedded scripting languages](https://en.wikipedia.org/wiki/Scripting_language) to use in your application. Stretching the definition of a scripting language, it also includes [Datalog](https://en.wikipedia.org/wiki/Datalog) implementations. Items with a strong copyleft license (like the GNU GPL) that will apply to the rest of your code are **highlighted** as a warning.
4+
5+
{% macro row(proj) %}
6+
| [{{ proj.name }}]({{ proj.url }}) | {{ proj.impl_lang }} | {{ proj.gc }} | {{ proj.license }} | {{ proj.notes | safe }} |{% endmacro %}
7+
8+
| Project name/link | Implementation language | GC | License | Notes |
9+
|-------------------|-------------------------|----|---------|-------|
10+
{% for proj in projects | sort(caseSen=false, attr="sort_key") %}
11+
{{ row(proj) }}
12+
{% endfor %}
13+
14+
## See also
15+
16+
* [cwal: Scripting Engine Without A Language](https://fossil.wanderinghorse.net/r/cwal/home).
17+
* [Game scripting languages benchmarked](https://github.com/r-lyeh/scriptorium).
18+
* [Languages that compile to JavaScript](https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS).
19+
* [Languages that compile to Lua](https://github.com/hengestone/lua-languages).
20+
* [miniKanren](http://minikanren.org/#implementations) logic programming language implementations.
21+
* [sol](https://github.com/ThePhD/sol2) — C++ bindings for Lua.
22+
23+
## Contributing
24+
25+
Your contributions are welcome! Please submit a pull request or create an issue to add a new language to the list. I am looking for language implementations that are either actively maintained or largely "done". The VM, bytecode compiler, and standard library (if any) must have a free (*libre*) license. They may have optional add-ons with any license. A Datalog implementation must be able to parse Datalog source code; it must not be just an [EDSL](https://en.wikipedia.org/wiki/Domain-specific_language#External_and_Embedded_Domain_Specific_Languages).
26+
27+
## License
28+
29+
[![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/)
30+
31+
## Disclosure
32+
33+
The curator of this document maintains Picol and has contributed to Jim Tcl.

0 commit comments

Comments
 (0)