User Tools

Site Tools


New Developers Working Group

Scripting and Markup Languages Used in Evergreen


Angular: Angular is the JavaScript framework that new Evergreen development uses for the web client. It supercedes AngularJS and uses TypeScript. See:

AngularJS: AngularJS (aka Angular 1) was the precursor to Angular. It was also JavaScript framework, but the developers of the AngularJS framework decided to rework it to use TypeScript, so pages that were coded in AngularJS are decidedly different than pages coded in Angular even though they are both descended from JavaScript.

AsciiDoc: AsciiDoc is a plain text format for creating documentation. Evergreen uses it to write the official Evergreen documentation and release notes that get included with the software.

Bootstrap: The web client uses the Bootstrap CSS library ( The older AngularJS pages use Bootstrap 4 and the newer Angular pages use Bootstrap 5. A version of the public-facing OPAC developed with Bootstrap 4 was made available with Evergreen version 3.6. If you would like to work on upgrading parts of the interface to a newer Bootstrap version, please refer to this Bootstrap 3--5.2 migration guide for a consolidated reference to class and function name changes.

CSS: Cascading Style Sheets are used (along with HTML) to develop the look and feel of Evergreen's user interfaces in the OPAC and staff client. See and CSS Grid.

Dojo: The Dojo Toolkit set of JavaScript libraries was used throughout the XUL client. Dojo-based scripts are currently being deprecated as they are replaced with Angular scripts.

HTML: HTML is used for much of the basic page structure in both the OPAC and the staff client, along with CSS for display, and either Perl Template Toolkit or Angular for the content. See:

JavaScript: Some components, such as the Evergreen self-check interface, use traditional JavaScript coding. The newer Angular pages are written using TypeScript, but are compiled into JavaScript.

JSON: JavaScript Object Notation is used throughout Evergreen.

OpenSRF: Messaging architecture based on XMPP (jabber) that is used to transmit information within Evergreen. See:

Perl: Much of the core business logic underlying Evergreen is built in Perl. If you are editing Perl files directly on the server, they are located under: usr/local/share/perl/[version number]/openils/www. If you are making changes to package into a Git branch, the files are located under: \Open-ILS\src\perlmods\lib\OpenILS\WWW\.

Perl Template Toolkit: Most of the OPAC is built in Perl Template Toolkit (TT2), which blends HTML and CSS with some simple Perl code to create the web pages. See: If you are editing TT2 files directly on the server, they are located under: /openils/var/templates/. If you are making changes to package into a Git branch, they are under: \Open-ILS\src\templates\. Note that CSS files may have the .tt2 file extension.

PostgreSQL: Evergreen uses the open-source PostgreSQL database. See:

TypeScript: TypeScript is a superset of JavaScript that gets compiled into standard JavaScript. See:

XML: XML (Extensible Markup Language) is used in several locations, including the Evergreen Fieldmapper (fm_IDL.xml) and the Kids' Catalog configuration file (kpac.xml),

XUL: The original staff client was built on XULRunner, a Mozilla-based runtime environment. It is often referred to as "the XUL client" (pronounced like Zuul, the Gatekeeper of Gozer), and is no longer utilized by Evergreen. (However, there are still some components that have not been converted to Angular.)

newdevs/landscape/code.txt · Last modified: 2024/06/13 11:43 by sleary

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

© 2008-2022 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a U.S. 501(c)3 non-profit organization.