An Elvish Data Model in XML.
Most consumers of this project are probably interested in the finished product, the generated Elvish lexicon. This can be found at http://eldamo.org (mirror http://pfstrack.github.io/eldamo/) and project releases are zip files of this site.
This document provides information for those interested in how the Eldamo site is generated. To fully understand this process, you need to know:
- Java web application development
- XML editing and parsing, include XSL and XQuery
- Git
- Java 1.6+
- Gradle 2.6+ (which will download other dependencies)
- A good text editor (I use TextWrangler on OS X).
- For generating the site, a web crawler (I use SiteSucker on OS X)
- Clone the project from github:
git clone https://github.com/pfstrack/eldamo.git
- Copy the data directory inside the web application directory:
cp -R src/data src/main/webapp
Or simply manually copy the directory.
- Use gradle to launch the Jetty web application server (tomcat probably also works).
gradle :jettyRun
- Browse the site:
http://localhost:8080/eldamo/
- Edit the data file (src/main/webapp/eldamo-data.xml) and refresh the pages to see changes.
If you want to use an Java development tool, here is how to set the project up in Eclipse.
- Use gradle generate an Eclipse project:
gradle :eclipse
-
Import the project into Eclipse: File > Import : General > Existing Project Into Workspace
-
In the project properties, set the file encoding to UTF-8:
- Project > Properties
- Resource > Text File Encoding
- Select Other: UTF-8
-
Install the Jetty plug-in for Eclipse.
-
Select the project and Run > Run As > Run Jetty
-
Browse the site as above:
http://localhost:8080/eldamo/
- For best performance, you will need to increase the memory in JVM arguments for the Jetty run configurations:
- Run > Run Configurations
- Jetty Webapp > eldamo
- Arguments > VM Arguments
-Xmx1024m
- Switch to the "pub" (publish) version of the site:
http://localhost:8080/eldamo/pub/index.html
- Use your web crawler of choice to crawl and download the site contents.