Theme support for jigl Date : 10/24/2003 jigl version: 2.0 and up ------------------------ Contents -------- I. Introduction to themes in jigl 2.x II. How themes work III. Creating a theme IV. Template tags V. Information for older jigl installations I. Introduction to themes in jigl 2.x -------------------------------------- First off, it should be noted that jigl now creates a "web" directory in each local directory to put the newly created gallery (html files, slides, thumbnails and any optional theme files). You can still specify the current local directory but it is no longer the default. example: ------- $HOME/.jigl/themes -> location of where themes are stored. myImages/ -> contains the gallery.dat file and all the original images you want to jigl myImages/slides -> the slide images jigl created myImages/thumbs -> the thumbnail images jigl created myImages/web/ -> the new directory containing everthing for the webpage myImages/web/slides/ -> a copy of the slides directory myImages/web/thumbs/ -> a copy of the thumbnail directory myImages/web/theme/ -> the directory containing any extra files needed by this theme. These are copied from the main theme directory. Note: The web/ directory is a write-only directory. jigl does not look for slides, thumbnails, themes or anything else in that directory. Don't try putting things in that directory and expect jigl to find them. It won't. II. How themes work ------------------- Each themes is stored in its own directory under the ~/.jigl/themes/ directory. The default theme, generated by jigl, is located in ~/.jigl/themes/default/ All themes must consists of at least these 4 files: - theme_name.theme (ex: default.theme for the ~/.jigl/themes/default/ theme) - index.template - slide.template - info.template When jigl is run the theme_name.theme and template files are read in from whatever theme was specified. These files are used to create the .html files for the gallery. Template files are no longer copied into the local gallery directory. Yay! jigl also checks to see if files other then the 4 necessary files exist in the "~/.jigl/themes/theme_name/" directory. If so, these extra files are assumed to be needed by this theme for the gallery to work correctly. Thus they are copied into the "web/theme" directory in the local gallery. NOTE: ----- You cannot put a full theme in the local web/theme directory and expect it to simply work. Themes must reside in the ~/.jigl/themes/ directory. The local "web/theme" directory is only for extra images and files needed by the theme to work correctly after the .html files are generated. Example: you may have images for the next, previous, index, and info links above each slide. These images would be copied here. III. Creating a theme --------------------- So, you want to create a theme, eh? This should give you enough info to do so. By far, the easiest way to create a theme is to use an existing theme and modify it. Copy the default theme, or someone elses theme and hack away. There are themes available on at the jigl website: http://xome.net/projects/jigl - download one and see how they work! Okay, say you want to create a theme called "blue" and you're staring with the default theme. Step 1 : Copy a working theme ----------------------------- Copy the directory, $HOME/.jigl/themes/default to $HOME/.jigl/themes/blue In the $HOME/.jigl/themes/bule/ directory move default.theme to blue.theme You should now have a working copy of the defalut theme called blue. Test it by running jigl on a directory of images with the --theme blue option. Ensure that jigl says it's using the blue theme. It'll say what theme it's using at the start of the output and at the end. Step 2 : Modify the theme ------------------------- You'll notice that there are four files in your blue directory. Three template files and a file called blue.theme. The three template files are used to define the general layout of the index, slide and info pages. They contain tags, in all capital letters, that tell jigl to insert specific information about that page. For instance, NEXT-SLIDE-NAME will insert the name of the next slide in that location. Some of the tags in the templates are internal to jigl and what jigl replaces them with can not be changed. Some of the tags are defined in the .theme file and parts of them can be changed to reflect the theme you are trying to create. You may also add your own tags in this file and use those tags in your template files as well. Plese see the next section for exactly what tags are internal and what tags are defined in the default.theme file. Once you've modified your template and theme files, test it out like your did at the end of step 1. You should see your changes in the new output. If you come up with a cool theme, send it to me and I'll put it on the webpage for others to enjoy. IV. Template tags ----------------- These are tags that can not be changed and the templates they correspond to. index_template -------------- INDEX-TITLEBAR This value is set in the gallery.dat file and is what you want the titlebar of the index page to say, i.e. what's between the tags. This value can also be set on the command line using the -it option. INDEX-TITLE This value is set in the gallery.dat file and is what you want the top of the index page to say. This value can also be set on the command line using the -it option. TIME-STAMP The time stamp of when jigl was run. INDEX-HEADER-INFO This value is set in the gallery.dat file and contains information that will be shown above the thumbnails. By default this tag is wrapped in the INDEX-HEADER tag defined in the .theme file. INDEX-FOOTER-INFO This value is set in the gallery.dat file and contains information that will be shown below the thumbnails. By default this tag is wrapped in the INDEX-HEADER tag defined in the .theme file. INDEX-NAVI The links to other index pages. This is used when more than one index page is created. More than one index page will be if you use the -ir option and the number of slides you have is more than (-ir * -iw). example: if you have -ir = 3 and -iw = 5 and you have 40 slides, then you will have 3 index pages with 15 thumbnails in the first two and 10 thumbnails on the last index page. PICTURES This tag is where the thumbnails will be inserted. This is sort of a special tag because it REQUIRES some of the tags in the .theme file to work correctly. The tags that must be defined in the .theme file are: THUMB-ROW - a row of thumbnails. It contains two rows IMG-ROW - the row of images SIZE-DIMENSION-ROW - the row containing kb and XxY info IMG-COLUMN - an individual thumbnail column SIZE-DIMENSION-COLUMN - an individual kb and XxY column The default template says that these must be present and explains what each tag does. slide_template -------------- ORIG-IMAGE-NAME This will insert the name of the original image. NEXT-SLIDE-NAME This will insert the name of the image for the next slide. NEXT-SLIDE-HTML The next slides html page. PREV-SLIDE-HTML The previous slides html page. INDEX-HTML The index.html file name. INFO-HTML The name of this slides info page. SLIDE-IMAGE This slides image. SLIDE-DESCRIPTION The description of this slide. SLIDE-COUNT Will insert (x of n) image count. info_template ------------- ORIG-IMAGE-NAME This will insert the name of the original image. NEXT-SLIDE-NAME This will insert the name of the image for the next slide. THIS-SLIDE-HTML The slide html page for this info page. PREV-SLIDE-HTML The previous slides html page. PREV-INFO-HTML The previous slides info html page. INDEX-HTML The index.html file name. NEXT-INFO-HTML The next slides info html page. NEXT-SLIDE-HTML The next slides html page. INFO-IMAGE The slide image that has been scaled down using the html height and width tags. The inserted code is: unless the link-originals option is used. Then the above line is wrapped in an tag. SLIDE-DESCRIPTION The description of this slide. SLIDE-COUNT Will insert (x of n) image count. EXIF-NAME-COL A string with the names of the exif fields as returned from jhead. Each name has a html tag before it and a
tag after it. This is meant to be used in a table column (between tags). EXIF-VAL-COL A string with the values of the exif fields as returned from jhead. Each value has a
 :  html tag before it and a
tag after it. This is meant to be used in a table column (between tags). default.theme ------------- these are tags that portions of can be modified to help integrage better with the theme you're trying to create. INDEX-LINK HTML for the link to index.html INFO-LINK HTML for the link to a slide's info page THIS-SLIDE-LINK HTML for the link to the current slide. Used on info page NEXT-SLIDE-LINK HTML for the link to next slide LAST-SLIDE-NEXT-LINK HTML for the Next link on the last slide page PREV-SLIDE-LINK HTML for the link to previous slide FIRST-SLIDE-PREV-LINK HTML for the Prev link on the first slide page NEXT-INFO-LINK HTML for the link to next info page LAST-INFO-NEXT-LINK HTML for the Next link on the last info page PREV-INFO-LINK HTML for the link to previous info page FIRST-INFO-PREV-LINK HTML for the Prev link on the first info page INDEX-HEADER HTML for the Header area on index page INDEX-FOOTER HTML for the Footer area on index page THUMB-ROW Table around each row of thumbnails This tag must be present and must contain the two tags: IMG-ROW and SIZE-DIMENSION-ROW IMG-ROW Row of the actual thumbnails This tag must be present and must contain the IMG-COLUMN tag SIZE-DIMENSION-ROW Row of size and dimension information under each slide This tag must be present and must contain the SIZE-DIMENSION-COLUMN tag. IMG-COLUMN HTML for an individual thumbnail This tag must be present. SIZE-DIMENSION-COLUMN HTML for the size and dimension information of an individual thumbnail This tag must be present. V. Information for older jigl installations ================================================================================ Basic Theme Support for jigl Date : 04/17/2003 jigl version: 1.0 and 1.1 ---------------------------- Basic themes are supported in jigl by the use of template files. There are three template files that jigl uses: index_template slide_template info_template The templates describe the basic layout of the page including the placement of information generated by jigl and the foreground and background colors. The default templates are built into the jigl program and will be generated if none exist. If these files do exist in the directory jigl is processing it will use those templates. The placement of information by jigl is done by using a series of tags that jigl reads and replaces with the appropriate information. These tags are keywords and are in all capital letters. The following tags are available in their respective templates. index_template -------------- INDEX-TITLEBAR This value is set in the gallery.dat file and is what you want the titlebar of the index page to say, i.e. what's between the tags. INDEX-TITLE This value is set in the gallery.dat file and is what you want the top of the index page to say. TIME-STAMP The time stamp of when jigl was run. INDEX-HEADER bgcolor=#rrggbb This value is set in the gallery.dat file and contains information that will be shown in it's own table above the thumbnails. The bgcolor tag extender is optional and is meant to change the background color of the table. INDEX-FOOTER bgcolor=#rrggbb This value is set in the gallery.dat file and contains information that will be shown in it's own table below the thumbnails. The bgcolor tag extender is optional and is meant to change the background color of the table. PICTURES bgcolor=#rrggbb This tag is where the pictures will be inserted. Each row of pictures will be it's own table and the background of the tables can be set with the optional bgcolor tag extender. slide_template -------------- ORIG-IMAGE-NAME This will insert the name of the original image. NEXT-SLIDE-NAME This will insert the name of the image for the next slide. PREV-SLIDE-HTML The previous slides html page. INDEX-HTML The index.html file name. INFO-HTML The name of this slides info page. NEXT-SLIDE-HTML The next slides html page. SLIDE-IMAGE This slides image. SLIDE-DESCRIPTION The description of this slide. SLIDE-COUNT Will insert (x of n) image count. info_template ------------- ORIG-IMAGE-NAME This will insert the name of the original image. NEXT-SLIDE-NAME This will insert the name of the image for the next slide. THIS-SLIDE-HTML The slide html page for this info page. PREV-SLIDE-HTML The previous slides html page. PREV-INFO-HTML The previous slides info html page. INDEX-HTML The index.html file name. NEXT-INFO-HTML The next slides info html page. NEXT-SLIDE-HTML The next slides html page. INFO-IMAGE The slide image that has been scaled down using the html height and width tags. The inserted code is: unless the link-originals option is used. Then the above line is wrapped in an
tag. SLIDE-DESCRIPTION The description of this slide. SLIDE-COUNT Will insert (x of n) image count. EXIF-INFO A table with all of the exif info in it for this image. Creating your own templates --------------------------- The easiest way to create you own template files it to let jigl create the default templates for you and modify them. This will give you a good idea of how it all fits together. If you come up with some interesting templates, send them to me and I'll put them on the web site for others to use!