Awesome
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 theXEmember
andXEgroup
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 underdata/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 websitedata
: XML and bibtex user datagroups
: 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 scriptstools
: Scripts and tools used by the system to build reportsMakefile
: The system's operation is orchestrated by this make file. Common commands includehtml
: Build the website locallyval
: Validate local data and report problemsclean
: Delete temporary build files (usually run this before using thehtml
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
<code>git clone git@github.com:istlab/web.git</code>
Adding a new file
<code>git add <path/filename></code>
Commit Local Changes
<code>git commit -m '<your-comment-here>' -a</code>
Upload Changes to Main Repository
<code>git push</code>
Building the Site Locally
<code>make clean html</code>
and then open <code>public_html/index.html</code> file with your favorite web browser.
Document Templates
doc/templates/group-sample.xml
: XML Template for a research groupdoc/templates/member-example.xml
: XML Template for a group memberdoc/templates/project-example.xml
: XML Template for a research projectdoc/templates/rel_page-example.xml
: XML Template for a group HTML pagedoc/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 <code>make val</code> command. For example:
<pre> 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 ... </pre>