This is an implementation of a web-application for consulting A Greek-English Lexicon, edited by Liddell, Scott, & Jones. It is written in Julia with the Dash framework. It is the successor to an earlier version, written in ScalaJS (See, this blog post about that earlier version, and the data behind it)
- I needed to get good at Julia and Dash.
- The ScalaJS version, to achieve sufficient performance, requires a back-end microservice to do the heavy lifting of querying, mapping, and filtering the 117,000 entries in the lexicon. So the app was "online only", and requires some ongoing babysitting to keep running. This implementation in Julia can run entirely offline*.
- The Dash framework imposes a number of restrictions on how components of a web-app, and data, interact. These restrictions require some thought, but results in a simpler, more stable, and more maintainable architecture. The Scala version (the LSJ app and necessary microservice) required about 4,500 lines of code. This implementation required only 800.
* In "entirely offline mode", the app will not be able to download the EB Garamond font from Google, so the text will not be as attractive as it might be.
- Download Julia and do whatever it takes to install it.
- Clone this repository.
- In a terminal,
cd
intoLSJ.jl
, e.g.cd ~/Desktop/LSJ.jl
, if you cloned the repository onto your Desktop. - In the terminal:
julia dashboard/lsj.jl
. - There is a good chance that you will need to add some libraries via Julia's package manager. Julia will tell you what to do. Do that.
- When it is up and running (the initial load may take a while, as it downloads and compiles necessary libraries), visit
http://localhost:8054/
in your browser.
You can report bugs in the program, or errors in data, by submitting an Issue on GitHub.