Skip to content
DSL language to generate static Web sites
Java GAP JavaScript Xtend HTML CSS
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
com.foliage.xenia.ide
com.foliage.xenia.resources
com.foliage.xenia.tests
com.foliage.xenia.ui.tests
com.foliage.xenia.ui
com.foliage.xenia
docs
LICENSE
README.md

README.md

Xenia language - just another domain specific language

Eine DSL-Sprache, mit der sich die Webseiten in 2 Minuten erstellen lassen

Die xenia-Sprache ist mit Xtext-Framework v. 2.18 erstellt. Die Sprache erzeugt nach der Ausfuhrung native html Seiten, CSS und JS Files, htaccess und Bilder. Im weiteren Verlauf wird die Unterstutzung von anderen Sprachen und/oder Frameworks (z.B. PHP, Angular) realisiert. Unter Github Page findet man ein Demo.

Get started

  1. Die Erstellung einer Anwendung in xenia beginnt mit Schlüsselwort app gefolgt von dem Namen der Webseite, die auch im Logo erscheint:
app MyFirstApp
  1. Danach muss man feststellen, welche Seiten die Webseite beinhalten soll. Dafur gibt man an:
app MyFirstApp has pages[]
  1. Die Namen der Seiten sind mit @ At-Zeichen zu definieren:
app MyFirstApp has pages[@Home, @News, @Contact, @Admin]
  1. Semantik der Sprache bestimmt, dass die erste Seite, die in der Liste angegeben wird, als Root-Seite gekennzeichnet und entsprechend in .htaccess geschrieben wird.

  2. Um die Verzweigungen zu definieren, muss man ein zusätzliches Block mit Schlusselwort map angeben:

map: [
	Home -> (News, Contact),
	News -> (Contact),
	Contact -> (Home, News)
]
  1. Es ist zu beachten, dass die Seitennamen nun ohne @ angegeben werden und zu den im ersten Block angegebenen Seiten referenziert werden können. Die Eingabe einer nicht definierten Seite in map-Section wird eine Fehlermeldung auslösen.

image

  1. Es stehen zwei Modi zur Verfügung: Entwickler- und Produktionsmodus:
mode: development
# oder
mode: production

Im Entwicklermodus werden einige Werkzeuge angezeigt, wie z.B. Sitemap Visualizer.

image

Ein Beispiel der frisch generierten Webseite ist unter Github Page zu finden.


app Main has pages[
	@Home with modal(@Notification, @Login), 
	@Contact with modal(
		@Message, 
		@Logout with modal(
			@Contact
		)
	), 
	@Message
]
with: "native"
mode: DEV, // or PROD
xml: "/home/user/foliage/map.xml"
map :[
	Home -> (Login),
	Login -> (Home, Contact)
]
info :[
	Home -> mod: "today", freq: "daily",
	News -> mod: "monday"
]

Der AppName wird innerhalb von Logo angezeigt

app foliage has pages [@Home, @News, @Contact]
map: Contact -> (Home, News)

image

Die xenia-Sprache wurde im Rahmen der Abschlussarbeit an der Technischen Hochschule Brandenburg entwickelt.

You can’t perform that action at this time.