Skip to content

istlab/web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ISTLab-Web

This is the repository for the ISTLab web site. This system is used to create and maintain the website. The system manages information regarding

  • research groups
  • group members
  • research projects
  • publications

The technologies that are used are Git, XML, XSLT, make, grep, BiBTeX, and bib2xhtml

Data are kept in XML form (groups, members, projects) and for the publications BiBTeX is used. Data are transformed into static HTML pages by XSLT scripts and data validation checks are performed by XML validator (DTD schemas).

Quick HOWTO

  • To add a new publication edit the file in data/publications corresponding to the type of the publication you are adding. You can use a BibTeX entry exported from a digital library. However, you need to add the XEmember and XEgroup fields; look at existing entries for examples.
  • To add a new member, add a file under data/members; to add a new project, add a file under data/projects; to modify an existing one, edit the corresponding file. Again, when adding, you can get a head-start by copy-pasting a template (see below).

Project Structure

  • bin : win32 version of binaries that are needed by the system note : OS X and Linux users and should install them separetaly.
  • build : Temporary files that are used to locally build the website
  • data : XML and bibtex user data
    • groups : Research group data (XML)
    • members : Members' information (XML)
    • projects : Project information (XML)
    • publications : Bibliographic data (Bibtex)
    • rel_pages : Rogue HTML pages, which are assigned to a research group
  • doc : System's documentation (still work in progress)
  • lists :
  • public_html :
  • schema : System's DTDs and transformation scripts
  • tools : Scripts and tools used by the system to build reports
  • Makefile : The system's operation is orchestrated by this make file. Common commands include
    • html : Build the website locally
    • val : Validate local data and report problems
    • clean : Delete temporary build files (usually run this before using the html target)

Dependencies

  • make : GNU make
  • bibtex : LaTeX's bibtex tool
  • perl : Perl programming Language (used only on reporting)
  • xmlstarlet : A command-line tool that exposes libxml basic facilities

Note: The win32 version of these utilities are included in the basic distribution ot the system.

ISTLab-web System Cheatsheet

Checkout the Project repository

git clone git@github.com:istlab/web.git

Adding a new file

git add <path/filename>

Commit Local Changes

git commit -m '<your-comment-here>' -a

Upload Changes to Main Repository

git push

Building the Site Locally

make clean html

and then open public_html/index.html file with your favorite web browser.

Document Templates

  • doc/templates/group-sample.xml : XML Template for a research group
  • doc/templates/member-example.xml : XML Template for a group member
  • doc/templates/project-example.xml : XML Template for a research project
  • doc/templates/rel_page-example.xml : XML Template for a group HTML page
  • doc/templates/publication-schema.bib : Bibtex entries templates

To create,

  • a new group, copy the template file to the data/groups/ directory
  • a new member, copy the template file to the data/members/ directory
  • a new project, copy the template file to the data/projects/ directory
  • a group HTML page, copy the template file to the data/rel_page/ directory
  • a new publication, update the appropriate bib file in data/publications/ directory (common files for all groups)

Validate Local Data

It is important to validate local data before commiting by using the make val command. For example:

bkarak@pc:~/web [master]$ make val
Creating output directories
Creating unified database
---> Checking group data XML files ... 
---> Checking member data XML files ...
---> Checking project data XML files ...
---> Checking additional HTML pages ...
---> Checking announcements ...
---> Checking db.xml ...