Jevko is a minimal general-purpose syntax.
It can be used as a basic building block for simple and portable formats, languages, and notations in a variety of domains, such as data interchange, configuration, or text markup.
Below are a few examples of Jevko formats in different domains, as compared to known formats.
person
< first-name="John"
last-name="Smith"
is-alive="true"
age="27"
>address
< street-address="21 2nd Street"
city="New York"
state="NY"
postal-code="10021-3100"
/>phone-numbers>
<phone-number
< type="home"
number="212 555-1234"
/>phone-number
< type="office"
number="646 555-4567"
/>phone-numbers>
</children />
<spouse xsi:nil="true" />
<person> </
{
"first name": "John",
"last name": "Smith",
"is alive": true,
"age": 27,
"address": {
"street address": "21 2nd Street",
"city": "New York",
"state": "NY",
"postal code": "10021-3100"
},
"phone numbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
}
],
"children": [],
"spouse": null
}
first name [John]
last name [Smith]
is alive [true]
age [27]
address [
street address [21 2nd Street]
city [New York]
state [NY]
postal code [10021-3100]
]
phone numbers [
[
type [home]
number [212 555-1234]
]
[
type [office]
number [646 555-4567]
]
]
children [seq]
spouse [nil]
# last modified 1 April 2001 by John Doe
[owner]
name = "John Doe"
organization = "Acme Widgets Inc."
[database]
# use IP if name resolution is not working
server = "192.0.2.62"
port = 143
file = "payroll.dat"
"select columns" = [
"name",
"address",
"phone number"
]
# last modified 1 April 2001 by John Doe
owner:
name: John Doe
organization: Acme Widgets Inc.
database:
# use IP if name resolution is not working
server: 192.0.2.62
port: 143
file: "payroll.dat"
select columns:
- name
- address
- phone number
last modified 1 April 2001 by John Doe
owner [
name [John Doe]
organization [Acme Widgets Inc.]
]
database [
use IP if name resolution is not working
server [192.0.2.62]
port [143]
file ['payroll.dat']
select columns [
[name]
[address]
[phone number]
]
]
<html>
<head>
<title>This is a title</title>
</head>
<body>
<div>
<p>Hello world!</p>
<abbr
id="anId"
class="jargon"
style="color: purple;"
title="Hypertext Markup Language">
</abbr>
HTML<a href="https://www.wikipedia.org/">
A link to Wikipedia!</a>
<p>
Oh well, <span lang="fr">c'est la vie</span>,
as they say in France.</p>
</div>
</body>
</html>
html [
head [
title [This is a title]
]
body [
div [
p [Hello world!]
abbr [
id=[anId]
class=[jargon]
style=[color: purple;]
title=[Hypertext Markup Language]
HTML]
a [href=[https://www.wikipedia.org/]
A link to Wikipedia!
]
p [
Oh well,
span [lang=[fr]c'est la vie],
as they say in France.
]
]
]
]
The Jevko Syntax: Standard Grammar Specification is a complete, stable formal specification of the basic syntax.
The Jevko interactive railroad diagrams complement the specification, together providing a convenient reference for implementing parsers and other Jevko processors.
The Jevko GitHub organization is the official Jevko development zone. There are open-source implementations of various Jevko-related software.
For do-it-yourself-oriented tinkerers, hackers, or minimalists plain Jevko is ready to be used to define custom formats for all kinds of applications that deal with tree-structured information.
For solution-oriented users, Jevko formats like those shown above are in development and available to experiment with via the Jevko CLI or the Jevko Interface for Visual Studio Code.
You can try out the formats you see above today with the experimental Jevko Command Line Interface or the Jevko Interface for Visual Studio Code. These can convert Jevko into JSON, HTML, or various XML-based formats. This allows for easy integration with existing applications.
Jevko formats give you the full power of the target format via JSON or XML literals and data-model compatibility. On top of that you get features such as here documents (via the backwards-compatible Jevko syntax extension), extremely lean comments, ability to disable (“comment out”) an entire Jevko subtree by prefixing it with “-”, autotrimmed unquoted strings, or quoted multiline strings.
All this in a very simple human-friendly syntax.
Experimental Jevko syntax highlighting extensions for Visual Studio Code are available for the following formats/file types:
There are also experimental Jevko syntax highlighting definitions for other environments:
Jevko has an official RSS channel that you can subscribe to for latest news.
Alternatively, you can follow Jevko on Mastodon or Twitter.
You can also follow the official Jevko GitHub organization to track the latest developments.
There is also an official Jevko organization on Codeberg and an official /r/jevko subreddit.
Jevko-related resources can also be found at the official Jevko profile on archive.org and the official Jevko YouTube channel.
The name Jevko /ˈd͡ʒef.kəʊ/ is derived from Polish drzewko /ˈdʐɛf.kɔ/, meaning small tree.
Jevko is intended as a universal syntax, to be used without restriction in any software, for any purpose. It is open and free, along with any syntaxes, formats, and standards based upon it.
For legal purposes, if not specified otherwise, Jevko and related projects are under the MIT License.
Copyright (c) 2021-2023 Jevko.org
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Thank you for visiting.
Jevko is a part of
TAO, a project to cultivate simplicity in
software.
The data interchange examples shown here are based on an example piece of JSON from Wikipedia.↩︎
The configuration examples shown here are based on an example piece of INI from Wikipedia.↩︎
The text markup examples shown here are based on an example pieces of HTML from Wikipedia.↩︎