In 2012 a relaunch of the Web pages for CTAN has been
prepared. It should replace the pages of the former years.
Thus for continuity several features had to be preserved and
supported. Those are mainly encapsulated behind fixed URLs.
Features
Skinning
The web pages can be rendered is various ways. Several skins
are provided to accommodate different tastes of the users.
The selection of the skin are persisted even when the user
does not use a personalized login.
Typography on the Web: Responsive Web Design
The web pages can be rendered on various output devises with
different screen sizes. The portal pages adapt to the space
available as good as possible.
Typography on the Web: Logos from the TeX World
The TeX world knows several characteristic word types for
programs or macro packages. Those logos are shown whenever
possible.
Since some users prefer to see the pure ASCII representation
of the logos it is possible to select a respective setting.
Typography on the Web: Hyphenation
The typography on the web is restricted by the possibilities
of the various browsers. In the area of line breaking things
are evolving slowly. Thus we have to help the browsers by
inserting optional break points – soft hyphens –
to help the browsers to produce properly filled lines.
The portal uses TeX's hyphenation algorithm (Liang) to
insert soft hyphens. The hyphenation uses the base hyphenation
patterns and exceptions for american English.
Search: Static Content
This portal has a few static pages. The search finds contents
on these static pages.
Search: Authors
The authors of packages as contained in the Catalogue is
searchable by name.
Search: Topics
The topics for packages as contained in the
Catalogue is searchable.
Search: Packages
The packages as contained in the Catalogue is searchable. At
least the name and description are considered.
Upload: Form
A upload form is provided which allows a user to submit a
contribution.
Upload: Initializing Fields
The fields in the upload form are initialized whenever
possible. The name of the submitter can be filled with the
information of the logged in user. The package can be filled
if the upload in started from a package page or a page
associated to a package in the TeX archive.
Mirrors: List
Provide a page containing a list of all CTAN mirrors.
Visualization of CTAN Mirrors on a Map
It would be nice to have a world map with the CTAN mirrors marked.
Maybe Google Maps might be helpful. [Mojca Miklavec]
Mirrors: Registration
Provide a form to submit a registration of a new mirror site.
Browsing: texarchive
The TeX archive can be browsed. The files and directories
are listed.
Downloading of a whole directory is enabled if
a zip file with the contents exists. This zip file is
suppressed in the listing.
A file named README is displayed if present in a directory.
A file named .zipped is suppressed in the listing.
Browsing: Links
The single files presented are linked
to http://mirros.ctan.org to distribute the load to
the mirrors.
Packages: Links
The descriptions of the packages from the Catalogue are
accessible via the URL /pkg/<package
name>.
Authors: Links
The descriptions of the package authors from the Catalogue are
accessible via the URL /author/<author
id>.
Community Features: User Registration
A user can join the community and register an account. The initial
password is sent by email to the user to check that the email address
works.
Community Features: User Settings
The user can change his settings – except account name.
This works only if the user is logged in.
Community Features: User Login
The user can login and logout.
Community Features: User Password
If the user has forgot his password he can request a new
password by entering his account and email. The new password
can be entered on a page for which the URL is sent by email.
Community Features: User Account
If the user has forgot his account he can request the account.
The account name is sent by email.
Community Features: Guest Book
A guest book can be used to leave some comments on the CTAN portal.
Data Sources
The portal provides access to several sources of information.
Some of them are uniquely presented on these pages.
The TeX Catalogue
The TeX Catalogue is a collection of package descriptions. The
TeX Catalogue is maintained by the CTAN team.
The TeX Archive
The TeX archive is a directory structure hosted by the CTAN sites. The CTAN
portal directly accesses one of the major CTAN
sites for the browsing pages.
The Mirrors Database
The CTAN team maintains a database containing the CTAN
mirrors.
The Mirror Monitor
The monitor for the status of the CTAN mirrors is provided on
ctan.dante.org. This page is rendered with the layout of the
CTAN portal.
Technology
The portal is based on a bunch of well-established frameworks
and libraries. All of them are rooted in
the Open Source
world. Only with the help of those software components this
portal could come to live.
The Web application is based on
Grails. Grails utilizes a
lot of well-known frameworks and libraries like
Spring,
Hibernate,
Groovy,
SiteMesh, and
log4j.
The search functionality has been implemented with the
Apache Lucene
search engine.
The indexing of the search
utilizes Apache PDFBox to
access the contents of PDF files.
The dynamic effects of the Web interface makes use of
jQuery,
jQuery UI, and
lightBox
The underlying Grails project has been augmented with a
Maven POM. Thus it is
possible to build the system with the Maven commands.
Nevertheless the file organization follows the Grails
conventions. (After all I am not convinced by this solution. I
prefer the Grails commands)
The front-end dispatching is performed by an
Apache HTTPD Web Server.
The back-end is a web application running in a
Apache Tomcat
servlet container.
The data is mainly stored in a
PostgreSQL
database.
Regular jobs are performed by
Quartz jobs
running in the web application.
Many thanks go to all people who helped
developing these useful software packages.