Skip to content

Files

Latest commit

8dc2b32 · Feb 21, 2025

History

History

website

**** UNDER CONSTRUCTION ****

The website/ directory contains the source code required to build the
web pages for exiv2.org as well as scripts to build exiv2 releases.

How to build the website
------------------------

- Build and install exiv2, build the samples and doc. And while you're
  at it, it never hurts to also run the tests.
- Build website/bin/rssdate from the source file website/bin/rssdate.cpp 
- Define the environment variable EXIV2HOME to the path of your exiv2
  directory, i.e., the parent directory of website/ 
- cd website
- Run 'make update' to import whatever is required from the rest of the
  exiv2 sources (doc/, samples/, src/)
- Run 'make' to build the web pages in website/html/

Subsequently, 'make clean; make' will remove and rebuild the web
pages; 'make update' is only needed if something changed in the exiv2
source or doc.

To build the pages with correct version info, download links, dates and
checksums (this is a step usually done only during the release
process, but you can do it with the packages from exiv2.org to try):

- Copy the release tarball and windows package to website/html/
- Run 'bin/release_info.sh <version>', <version> must correspond to the
  version of the packages in website/html/ (e.g., 0.23)
- Run 'make' to build the web pages again

Dependencies
------------

- python
- doxygen
- xsltproc
- ps2pdf
- man2html

Generated HTML pages
--------------------

Master HTML files
To modify HTML content, change the master HTML files master/*.in.
Do _not_ change the html/*.html files. These are generated files.

Placeholders
The master HTML files contain placeholders for HTML code that is
common to multiple files.  Placeholders are strings of the form
__placeholder__.  The content for each placeholder is in a file
var/__placeholder__. A special placeholder is __last_modified__: It
doesn't need a corresponding file in the var/ directory to be
substituted. Instead, every occurrence of __last_modified__ is
automatically replaced with the current date.

Substitution of placeholders
A small Python script bin/gen.py performs the substitutions. Variables
are substituted in one pass, in alphabetical order. Thus variables in
the content of another placeholder only get substituted if their names
are greater than the name of the containing placeholder.  The special
variable __last_modified__ is substituted after all regular
placeholders, so it can occur in the content of any other placeholder.

News
The file news.xml contains all news items. There are two stylesheets 
(whatsnew-table.xsl, whatsnew-latest.xsl) which are used to create 
placeholders __whatsnew-table__ and __whatsnew-latest__. To add or 
change news items, only change the news.xml masterfile and run make.

Makefile
To re-generate the HTML pages from the master files and move them 
to the html/ directory, run "make" in this directory