Repository: SciTools-incubator/image-meta-tag (language: python)

Issue:
New option for the dropdown menu webpage: imager overlay/sliders
A useful new feature for the dropdown webpage would be to add overlay sliders. They would work like this:

When enabled, and when the ImageDict delivers an image payload that is a list of images for side by side comparison then the last image gets applied as a slider overlay to all the other images.

This would be very useful for forecast comparison with other forecasts or satellite imagery - when the data on the plots can be set up to be pixel perfect, and the images the same width. Doing that image preparation is out of scope for ImageMetaTag


Discussion / hints:

Fix patch:
diff --git a/ImageMetaTag/__init__.py b/ImageMetaTag/__init__.py
index 7659fc6..c89cee1 100644
--- a/ImageMetaTag/__init__.py
+++ b/ImageMetaTag/__init__.py
@@ -25,7 +25,7 @@
 
 # Set constants/properties of ImageMetaTag (before any of it is imported)
 # see release_process for details on incrementing the version
-__version__ = '0.7.13'
+__version__ = '0.8.0'
 __documentation__ = 'http://scitools-incubator.github.io/image-meta-tag/build/html/'
 # list fo file formats which are valid for saving metadata to:
 META_IMG_FORMATS = ['png']
diff --git a/ImageMetaTag/javascript/img_comparison_slider_styles.css b/ImageMetaTag/javascript/img_comparison_slider_styles.css
new file mode 100644
index 0000000..228acaa
--- /dev/null
+++ b/ImageMetaTag/javascript/img_comparison_slider_styles.css
@@ -0,0 +1,37 @@
+/* MIT License
+
+Copyright (c) 2019 Dmytro Snisarenko
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE. */
+
+img-comparison-slider {
+  visibility: hidden;
+}
+
+img-comparison-slider [slot='second'] {
+  display: none;
+}
+
+img-comparison-slider.rendered {
+  visibility: inherit;
+}
+
+img-comparison-slider.rendered [slot='second'] {
+  display: unset;
+}
diff --git a/ImageMetaTag/javascript/img_comparison_slider_styles.js b/ImageMetaTag/javascript/img_comparison_slider_styles.js
new file mode 100644
index 0000000..1f99d48
--- /dev/null
+++ b/ImageMetaTag/javascript/img_comparison_slider_styles.js
@@ -0,0 +1,24 @@
+// MIT License
+
+// Copyright (c) 2019 Dmytro Snisarenko
+
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+
+(()=>{"use strict";var t={792:(t,e,i)=>{i.d(e,{Z:()=>n});var s=i(609),o=i.n(s)()((function(t){return t[1]}));o.push([t.id,':host{--divider-width: 1px;--divider-color: #fff;--divider-shadow: none;--default-handle-width: 50px;--default-handle-color: #fff;--default-handle-opacity: 1;--default-handle-shadow: none;--handle-position-start: 50%;position:relative;display:inline-block;overflow:hidden;line-height:0;direction:ltr}@media screen and (-webkit-min-device-pixel-ratio: 0)and (min-resolution: 0.001dpcm){:host{outline-offset:1px}}::slotted(*){-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.first{position:absolute;left:0;top:0;right:0;line-height:normal;font-size:100%;max-height:100%;height:100%;width:100%;--exposure: 50%;--keyboard-transition-time: 0ms;--default-transition-time: 0ms;--transition-time: var(--default-transition-time)}.first .first-overlay-container{position:relative;clip-path:inset(0 var(--exposure) 0 0);transition:clip-path var(--transition-time);height:100%}.first .first-overlay{overflow:hidden;height:100%}.first.focused{will-change:clip-path}.first.focused .first-overlay-container{will-change:clip-path}.second{position:relative}.handle-container{transform:translateX(50%);position:absolute;top:0;right:var(--exposure);height:100%;transition:right var(--transition-time),bottom var(--transition-time)}.focused .handle-container{will-change:right}.divider{position:absolute;height:100%;width:100%;left:0;top:0;display:flex;align-items:center;justify-content:center;flex-direction:column}.divider:after{content:" ";display:block;height:100%;border-left-width:var(--divider-width);border-left-style:solid;border-left-color:var(--divider-color);box-shadow:var(--divider-shadow)}.handle{position:absolute;top:var(--handle-position-start);pointer-events:none;box-sizing:border-box;margin-left:1px;transform:translate(calc(-50% - 0.5px), -50%);line-height:0}.default-handle{width:var(--default-handle-width);opacity:var(--default-handle-opacity);transition:all 1s;filter:drop-shadow(var(--default-handle-shadow))}.default-handle path{stroke:var(--default-handle-color)}.vertical .first-overlay-container{clip-path:inset(0 0 var(--exposure) 0)}.vertical .handle-container{transform:translateY(50%);height:auto;top:unset;bottom:var(--exposure);width:100%;left:0;flex-direction:row}.vertical .divider:after{height:1px;width:100%;border-top-width:var(--divider-width);border-top-style:solid;border-top-color:var(--divider-color);border-left:0}.vertical .handle{top:auto;left:var(--handle-position-start);transform:translate(calc(-50% - 0.5px), -50%) rotate(90deg)}',""]);const n=o},609:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i=t(e);return e[2]?"@media ".concat(e[2]," {").concat(i,"}"):i})).join("")},e.i=function(t,i,s){"string"==typeof t&&(t=[[null,t,""]]);var o={};if(s)for(var n=0;n<this.length;n++){var r=this[n][0];null!=r&&(o[r]=!0)}for(var a=0;a<t.length;a++){var d=[].concat(t[a]);s&&o[d[0]]||(i&&(d[2]?d[2]="".concat(i," and ").concat(d[2]):d[2]=i),e.push(d))}},e}}},e={};function i(s){var o=e[s];if(void 0!==o)return o.exports;var n=e[s]={id:s,exports:{}};return t[s](n,n.exports,i),n.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var s in e)i.o(e,s)&&!i.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:e[s]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{var t=i(792);const e="rendered",s=(t,e)=>{const i=t.getBoundingClientRect();let s,o;return"mousedown"===e.type?(s=e.clientX,o=e.clientY):(s=e.touches[0].clientX,o=e.touches[0].clientY),s>=i.x&&s<=i.x+i.width&&o>=i.y&&o<=i.y+i.height},o=document.createElement("template");o.innerHTML='<div class="second" id="second"> <slot name="second"><slot name="before"></slot></slot> </div> <div class="first" id="first"> <div class="first-overlay"> <div class="first-overlay-container" id="firstImageContainer"> <slot name="first"><slot name="after"></slot></slot> </div> </div> <div class="handle-container"> <div class="divider"></div> <div class="handle" id="handle"> <slot name="handle"> <svg xmlns="http://www.w3.org/2000/svg" class="default-handle" viewBox="-8 -3 16 6"> <path d="M -5 -2 L -7 0 L -5 2 M 5 -2 L 7 0 L 5 2" fill="none" vector-effect="non-scaling-stroke"/> </svg> </slot> </div> </div> </div> ';const n={ArrowLeft:-1,ArrowRight:1},r=["horizontal","vertical"],a=t=>({x:t.touches[0].pageX,y:t.touches[0].pageY}),d=t=>({x:t.pageX,y:t.pageY});class h extends HTMLElement{constructor(){super(),this.exposure=this.hasAttribute("value")?parseFloat(this.getAttribute("value")):50,this.slideOnHover=!1,this.slideDirection="horizontal",this.keyboard="enabled",this.isMouseDown=!1,this.animationDirection=0,this.isFocused=!1,this.handle=!1,this.onMouseMove=t=>{if(this.isMouseDown||this.slideOnHover){const e=d(t);this.slideToPage(e)}},this.bodyUserSelectStyle="",this.onMouseDown=t=>{if(this.slideOnHover)return;if(this.handle&&!s(this.handleElement,t))return;t.preventDefault(),window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("mouseup",this.onWindowMouseUp),this.isMouseDown=!0,this.enableTransition();const e=d(t);this.slideToPage(e),this.focus(),this.bodyUserSelectStyle=window.document.body.style.userSelect,window.document.body.style.userSelect="none"},this.onWindowMouseUp=()=>{this.isMouseDown=!1,window.document.body.style.userSelect=this.bodyUserSelectStyle,window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("mouseup",this.onWindowMouseUp)},this.touchStartPoint=null,this.isTouchComparing=!1,this.hasTouchMoved=!1,this.onTouchStart=t=>{this.handle&&!s(this.handleElement,t)||(this.touchStartPoint=a(t),this.isFocused&&(this.enableTransition(),this.slideToPage(this.touchStartPoint)))},this.onTouchMove=t=>{if(null===this.touchStartPoint)return;const e=a(t);if(this.isTouchComparing)return this.slideToPage(e),t.preventDefault(),!1;if(!this.hasTouchMoved){const i=Math.abs(e.y-this.touchStartPoint.y),s=Math.abs(e.x-this.touchStartPoint.x);if("horizontal"===this.slideDirection&&i<s||"vertical"===this.slideDirection&&i>s)return this.isTouchComparing=!0,this.focus(),this.slideToPage(e),t.preventDefault(),!1;this.hasTouchMoved=!0}},this.onTouchEnd=()=>{this.isTouchComparing=!1,this.hasTouchMoved=!1,this.touchStartPoint=null},this.onBlur=()=>{this.stopSlideAnimation(),this.isFocused=!1,this.firstElement.classList.remove("focused")},this.onFocus=()=>{this.isFocused=!0,this.firstElement.classList.add("focused")},this.onKeyDown=t=>{if("disabled"===this.keyboard)return;const e=n[t.key];this.animationDirection!==e&&void 0!==e&&(this.animationDirection=e,this.startSlideAnimation())},this.onKeyUp=t=>{if("disabled"===this.keyboard)return;const e=n[t.key];void 0!==e&&this.animationDirection===e&&this.stopSlideAnimation()},this.resetDimensions=()=>{this.imageWidth=this.offsetWidth,this.imageHeight=this.offsetHeight};const e=this.attachShadow({mode:"open"}),i=document.createElement("style");i.innerHTML=t.Z,this.getAttribute("nonce")&&i.setAttribute("nonce",this.getAttribute("nonce")),e.appendChild(i),e.appendChild(o.content.cloneNode(!0)),this.firstElement=e.getElementById("first"),this.secondElement=e.getElementById("second"),this.handleElement=e.getElementById("handle")}get value(){return this.exposure}set value(t){const e=parseFloat(t);e!==this.exposure&&(this.exposure=e,this.enableTransition(),this.setExposure())}get hover(){return this.slideOnHover}set hover(t){this.slideOnHover="false"!==t.toString().toLowerCase(),this.removeEventListener("mousemove",this.onMouseMove),this.slideOnHover&&this.addEventListener("mousemove",this.onMouseMove)}get direction(){return this.slideDirection}set direction(t){this.slideDirection=t.toString().toLowerCase(),this.slide(0),this.firstElement.classList.remove(...r),r.includes(this.slideDirection)&&this.firstElement.classList.add(this.slideDirection)}static get observedAttributes(){return["hover","direction"]}connectedCallback(){this.hasAttribute("tabindex")||(this.tabIndex=0),this.addEventListener("dragstart",(t=>(t.preventDefault(),!1))),new ResizeObserver(this.resetDimensions).observe(this),this.setExposure(0),this.keyboard=this.hasAttribute("keyboard")&&"disabled"===this.getAttribute("keyboard")?"disabled":"enabled",this.addEventListener("keydown",this.onKeyDown),this.addEventListener("keyup",this.onKeyUp),this.addEventListener("focus",this.onFocus),this.addEventListener("blur",this.onBlur),this.addEventListener("touchstart",this.onTouchStart,{passive:!0}),this.addEventListener("touchmove",this.onTouchMove,{passive:!1}),this.addEventListener("touchend",this.onTouchEnd),this.addEventListener("mousedown",this.onMouseDown),this.handle=this.hasAttribute("handle"),this.hover=!!this.hasAttribute("hover")&&this.getAttribute("hover"),this.direction=this.hasAttribute("direction")?this.getAttribute("direction"):"horizontal",this.resetDimensions(),this.classList.contains(e)||this.classList.add(e),this.querySelectorAll('[slot="before"], [slot="after"]').length>0&&console.warn('<img-comparison-slider>: slot names "before" and "after" are deprecated and soon won\'t be supported. Please use slot="first" instead of slot="after", and slot="second" instead of slot="before".')}disconnectedCallback(){this.transitionTimer&&window.clearTimeout(this.transitionTimer)}attributeChangedCallback(t,e,i){"hover"===t&&(this.hover=i),"direction"===t&&(this.direction=i),"keyboard"===t&&(this.keyboard="disabled"===i?"disabled":"enabled")}setExposure(t=0){var e;this.exposure=(100,(e=this.exposure+t)<0?0:e>100?100:e),this.firstElement.style.setProperty("--exposure",100-this.exposure+"%")}slide(t=0){this.setExposure(t);const e=new Event("slide");this.dispatchEvent(e)}slideToPage(t){"horizontal"===this.slideDirection&&this.slideToPageX(t.x),"vertical"===this.slideDirection&&this.slideToPageY(t.y)}slideToPageX(t){const e=t-this.getBoundingClientRect().left-window.scrollX;this.exposure=e/this.imageWidth*100,this.slide(0)}slideToPageY(t){const e=t-this.getBoundingClientRect().top-window.scrollY;this.exposure=e/this.imageHeight*100,this.slide(0)}enableTransition(){this.firstElement.style.setProperty("--transition-time","100ms"),this.transitionTimer=window.setTimeout((()=>{this.firstElement.style.setProperty("--transition-time","var(--default-transition-time)"),this.transitionTimer=null}),100)}startSlideAnimation(){let t=null,e=this.animationDirection;this.firstElement.style.setProperty("--transition-time","var(--keyboard-transition-time)");const i=s=>{if(0===this.animationDirection||e!==this.animationDirection)return;null===t&&(t=s);const o=(s-t)/16.666666666666668*this.animationDirection;this.slide(o),setTimeout((()=>window.requestAnimationFrame(i)),0),t=s};window.requestAnimationFrame(i)}stopSlideAnimation(){this.animationDirection=0,this.firstElement.style.setProperty("--transition-time","var(--default-transition-time)")}}"undefined"!=typeof window&&window.customElements.define("img-comparison-slider",h)})()})();
+//# sourceMappingURL=index.js.map
diff --git a/ImageMetaTag/javascript/imt_dropdown.js b/ImageMetaTag/javascript/imt_dropdown.js
index d77bccd..398d7bf 100644
--- a/ImageMetaTag/javascript/imt_dropdown.js
+++ b/ImageMetaTag/javascript/imt_dropdown.js
@@ -1,4 +1,4 @@
-// ImageMetaTag dropdown menu scripting - vn0.7.13
+// ImageMetaTag dropdown menu scripting - vn0.8.0
 // ImageMetaTag is a python package built around a wrapper for savefig in
 // matplotlib, which adds metadata tags to supported image file formats.
 // See https://github.com/SciTools-incubator/image-meta-tag for details.
@@ -221,7 +221,19 @@ function apply_payload( payload ) {
     // set the file, and break the loop:
     if (Array.isArray(payload)){
         // the right number of rows for a squarish box is the floor of the square root of the number of images:
-        var n_imgs = payload.length;
+
+    	  // last_img_slider might be inherited from the top level: check for it:
+    	  if (last_img_slider && payload.length > 1){
+    	      // if the last image is a slider then it won't be used as an
+            // image directly, so doesn't count:
+      	    var n_imgs = payload.length - 1;
+    	      var this_img_slider = true;
+    	      var slider_background = payload[n_imgs];
+       	} else {
+    	      var n_imgs = payload.length;
+    	      var this_img_slider = false;
+    	  }
+
         if (n_imgs <= 3){
             var n_cols = n_imgs;
             //var n_rows = 1;
@@ -236,7 +248,11 @@ function apply_payload( payload ) {
         the_file = "<p><table cellspacing=2>";
         for (var i_img=0; i_img < n_imgs; i_img++){
             if (i_img % n_cols == 0){ the_file += "<tr>"}
-            the_file += "<td><img src=" + payload[i_img] + "></td>";
+	    if (this_img_slider){
+		    the_file += "<td>" + apply_slider(payload[i_img], slider_background, i_img) + "</td>";
+		} else {
+		    the_file += "<td><img src=" + payload[i_img] + "></td>";
+		}
         }
         the_file += "</table></p>";
     } else {
@@ -247,6 +263,16 @@ function apply_payload( payload ) {
     _.innerHTML = the_file;
 }
 
+function apply_slider(foreg, backg, i_img){
+    // given an input of a foreground image and a background image,
+    // constructs a slider between them
+    out = '<img-comparison-slider value=95 tabindex=0 class="rendered">'
+    out += '<img slot="first" src="' + foreg + '">'
+    out += '<img slot="second" src="' + backg + '">'
+    out += '</img-comparison-slider>'
+    return out;
+}
+
 function cache_payload( payload ){
     // given the same input as apply_payload, this simply caches the image(s) instead:
     //
diff --git a/ImageMetaTag/webpage.py b/ImageMetaTag/webpage.py
index b14cbeb..7a6b296 100644
--- a/ImageMetaTag/webpage.py
+++ b/ImageMetaTag/webpage.py
@@ -24,7 +24,7 @@
                                                         the javascript will write images to.
     * :func:`ImageMetaTag.webpage.write_json` - writes out the :class:`ImageMetaTag.ImageDict`\
                                                 as a json.dump to a json file
-    * :func:`ImageMetaTag.webpage.copy_required_javascript` - copies required javascript library \
+    * :func:`ImageMetaTag.webpage.copy_required_js_css_etc` - copies required javascript library \
                                                           to the required location.
 
 An easy example of creating a webpage, using an :class:`ImageMetaTag.ImageDict` is shown in
@@ -55,6 +55,8 @@
 PAKO_RELEASE = '1.0.5'
 PAKO_SOURCE_TAR = 'https://github.com/nodeca/pako/archive/{}.tar.gz'.format(PAKO_RELEASE)
 
+IMG_COMP_JS_FILE = 'img_comparison_slider_styles.js'
+IMG_COMP_STYLE = 'img_comparison_slider_styles.css'
 
 def write_full_page(img_dict, filepath, title, page_filename=None, tab_s_name=None,
                     preamble=None, postamble=None, postamble_no_imt_link=False,
@@ -63,7 +65,8 @@ def write_full_page(img_dict, filepath, title, page_filename=None, tab_s_name=No
                     show_singleton_selectors=True, optgroups=None,
                     url_type='int', only_show_rel_url=False, verbose=False,
                     style='horiz dropdowns', write_intmed_tmpfile=False,
-                    description=None, keywords=None, css=None, load_err_msg=None):
+                    description=None, keywords=None, css=None,
+                    load_err_msg=None, last_img_in_list_is_slider=False):
     '''
     Writes out an :class:`ImageMetaTag.ImageDict` as a webpage, to a given file location.
     The files are created as temporary files and when complete they replace any files that
@@ -114,6 +117,9 @@ def write_full_page(img_dict, filepath, title, page_filename=None, tab_s_name=No
                       default is None, but very large pages can crash with Internet Explorer so \
                       a message along the lines of this may be useful: 'If the page does not \
                       load correctly in Internet Explorer, please try using firefox or Chrome.'
+     * last_img_in_list_is_slider - for the 'horiz dropdowns' page style, when the image payload \
+                                    contains a list of images, then when this is True, the last \
+                                    images is used as an on overlay/slider on the other images.
 
     Returns a list of files that the the created webpage is dependent upon.
 
@@ -138,8 +144,10 @@ def write_full_page(img_dict, filepath, title, page_filename=None, tab_s_name=No
         json_files = []
     else:
         # now make sure the required javascript library is copied over to the file_dir:
-        js_files = copy_required_javascript(file_dir, style, compression=compression)
-        page_dependencies.extend(js_files)
+        js_css_files = copy_required_js_css_etc(file_dir, style,
+                                            compression=compression,
+                                            last_img_in_list_is_slider=last_img_in_list_is_slider)
+        page_dependencies.extend(js_css_files)
 
         # we have real data to work with:
         # this tests the dict has uniform_depth, which is needed for all current webpages.
@@ -295,12 +303,13 @@ def write_full_page(img_dict, filepath, title, page_filename=None, tab_s_name=No
             # Here we want the final one:
             final_json_files = [os.path.split(x[1])[1] for x in json_files]
             write_js_to_header(img_dict, initial_selectors=initial_selectors, optgroups=optgroups,
-                               file_obj=out_file, json_files=final_json_files, js_files=js_files,
+                               file_obj=out_file, json_files=final_json_files, js_css_files=js_css_files,
                                pagename=page_filename, tabname=tab_s_name,
                                selector_prefix=selector_prefix, url_separator=url_separator,
                                show_singleton_selectors=show_singleton_selectors,
                                url_type=url_type, only_show_rel_url=only_show_rel_url,
                                style=style, ind=ind, compression=compression,
+                               last_img_in_list_is_slider=last_img_in_list_is_slider,
                                description=description, keywords=keywords)
         # now close the script and head:
         ind = _indent_down_one(ind)
@@ -363,11 +372,12 @@ def write_full_page(img_dict, filepath, title, page_filename=None, tab_s_name=No
     return page_dependencies
 
 def write_js_to_header(img_dict, initial_selectors=None, optgroups=None, style=None,
-                       file_obj=None, json_files=None, js_files=None,
+                       file_obj=None, json_files=None, js_css_files=None,
                        pagename=None, tabname=None, selector_prefix=None,
                        show_singleton_selectors=True,
                        url_separator='|', url_type='str', only_show_rel_url=False,
                        ind=None, compression=False,
+                       last_img_in_list_is_slider=False,
                        description=None, keywords=None):
     '''
     Writes out the required ImageMetaTag config and data paths into a html header section
@@ -405,6 +415,8 @@ def write_js_to_header(img_dict, initial_selectors=None, optgroups=None, style=N
     * only_show_rel_url - If True, the wepage will only show relative urls in is link section.
     * ind - indentation going into the header section.
     * compression - Indicates the json file is compressed using zlib.
+    * last_img_in_list_is_slider - indicates the last image in a list of images \
+                                   in a payload should be used as an overlay/slider
     * description - html description metadata7
     * keywords - html keyword metadata
     '''
@@ -425,8 +437,14 @@ def write_js_to_header(img_dict, initial_selectors=None, optgroups=None, style=N
         #file_obj.write(out_str)
 
         # now add a reference to the javascript functions to implement the style:
-        for js_file in js_files:
-            out_str = '{}<script type="text/javascript" src="{}"></script>\n'.format(ind, js_file)
+        for js_cs_file in js_css_files:
+            if js_cs_file.endswith('.js'):
+                out_str = '{}<script type="text/javascript" src="{}"></script>\n'.format(ind, js_cs_file)
+            elif js_cs_file.endswith('.css'):
+                out_str = '{}<link rel="stylesheet" href="{}"></script>\n'.format(ind, js_cs_file)
+            else:
+                msg = 'Unexpected file type. Expecting .js or .css but got {}'
+                raise ValueError(msg.format(js_cs_file))
             file_obj.write(out_str)
 
         # now write out the javascript configuration variables:
@@ -435,9 +453,13 @@ def write_js_to_header(img_dict, initial_selectors=None, optgroups=None, style=N
         # define, read in and parse the json file:
         out_str = '''{0}var json_files = {1};
 {0}var zl_unpack = {2};
+{0}var last_img_slider = {3};
 {0}imt = read_parse_json_files(json_files, zl_unpack);
 '''
-        file_obj.write(out_str.format(ind, json_files, _py_to_js_bool(bool(compression))))
+        file_obj.write(out_str.format(ind, json_files,
+                                      _py_to_js_bool(bool(compression)),
+                                      _py_to_js_bool(bool(last_img_in_list_is_slider)),
+                       ))
 
         # in case the page we are writing is embedded as a frame, write out the top
         # level page here;
@@ -881,7 +903,8 @@ def write_js_placeholders(img_dict, file_obj=None, dict_depth=None,
     else:
         raise ValueError('"%s" tyle of content placeholder not defined' % style)
 
-def copy_required_javascript(file_dir, style, compression=False, overwrite=True):
+def copy_required_js_css_etc(file_dir, style, compression=False,
+                             last_img_in_list_is_slider=False, overwrite=True):
     '''
     Copies the required javascript library to the directory
     containing the required page (file_dir) for a given webpage style.
@@ -921,7 +944,7 @@ def copy_required_javascript(file_dir, style, compression=False, overwrite=True)
 not being overwritten. Your webpage may be broken!'''.format(file_dir, imt_js_to_copy))
 
     # make a list of all the required javascript files
-    js_files = [imt_js_to_copy]
+    js_css_files = [imt_js_to_copy]
 
     # now move on to javascript dependencies from the compression:
     if compression:
@@ -956,9 +979,24 @@ def copy_required_javascript(file_dir, style, compression=False, overwrite=True)
                 # copy the file:
                 shutil.copy(js_src, js_dest)
         # finally, make a note:
-        js_files.append(js_to_copy)
+        js_css_files.append(js_to_copy)
+
+    if last_img_in_list_is_slider:
+        files_to_copy = [IMG_COMP_STYLE, IMG_COMP_JS_FILE]
+        for js_to_copy in files_to_copy:
+
+            js_src = os.path.join(file_src_dir, js_to_copy)
+            js_dest = os.path.join(file_dir, js_to_copy)
+            # if the file is already at destination, we're good:
+            if os.path.isfile(js_dest):
+                pass
+            else:
+                # copy the file:
+                shutil.copy(js_src, js_dest)
+            # finally, make a note:
+            js_css_files.append(js_to_copy)
 
-    return js_files
+    return js_css_files
 
 def get_pako(pako_to_dir=None):
     '''
diff --git a/README.md b/README.md
index 76f2b4b..c80d70b 100644
--- a/README.md
+++ b/README.md
@@ -4,10 +4,12 @@ Once the images have been tagged, it can also be used to manage an SQL database
 
 As the image metadata tagging process involves reading the image using the Image library, a few common image post-processing options are included such as cropping, logo addition and colour palette manipulation to reduce filesizes.
 
-All ImageMetaTag source code, unless explicitly stated, is © British Crown copyright, 2015-2022 and is released under a [BSD 3-Clause License](LICENSE). Details on how to contribute to ImageMetaTag are given [here](CONTRIBUTING.md).
+All ImageMetaTag source code, unless explicitly stated, is © British Crown copyright, 2015-2023 and is released under a [BSD 3-Clause License](LICENSE). Details on how to contribute to ImageMetaTag are given [here](CONTRIBUTING.md).
 
 The file ImageMetaTag/javascript/pako_inflate.js has been copied from [pako](https://github.com/nodeca/pako "pako") and is © 2014-2017 by Vitaly Puzrin and Andrei Tuputcyn and released under a MIT License, detailed within the file.
 
+The files ImageMetaTag/javascript/img_comparison_slider_styles.css and ImageMetaTag/javascript/img_comparison_slider_styles.js have been copied from [img-compatison-slider](https://github.com/sneas/img-comparison-slider "img-compatison-slider") and is © 2019 by Dmytro Snisarenko and released under a MIT License, detailed within the files.
+
 Supported image file formats: png
 
-Documentation is available via [GitHub Pages](http://scitools-incubator.github.io/image-meta-tag/build/html/index.html "ImageMetaTag Documentation on GitHub Pages")
\ No newline at end of file
+Documentation is available via [GitHub Pages](http://scitools-incubator.github.io/image-meta-tag/build/html/index.html "ImageMetaTag Documentation on GitHub Pages")
diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle
index 32c519d..8a23836 100644
Binary files a/docs/build/doctrees/environment.pickle and b/docs/build/doctrees/environment.pickle differ
diff --git a/docs/build/doctrees/versions.doctree b/docs/build/doctrees/versions.doctree
index 9553fd9..1765818 100644
Binary files a/docs/build/doctrees/versions.doctree and b/docs/build/doctrees/versions.doctree differ
diff --git a/docs/build/doctrees/webpage.doctree b/docs/build/doctrees/webpage.doctree
index b774567..f5e137b 100644
Binary files a/docs/build/doctrees/webpage.doctree and b/docs/build/doctrees/webpage.doctree differ
diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo
index 909e6f7..cd44137 100644
--- a/docs/build/html/.buildinfo
+++ b/docs/build/html/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: e162149e146ce4356b9946e88f30be74
+config: 472ccebd2ce48734937005f67e0b71dd
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/build/html/ImageDict.html b/docs/build/html/ImageDict.html
index c9876ad..de37784 100644
--- a/docs/build/html/ImageDict.html
+++ b/docs/build/html/ImageDict.html
@@ -6,7 +6,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
-    <title>ImageMetaTag.ImageDict &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag.ImageDict &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -35,7 +35,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="db.html" title="ImageMetaTag.db"
              accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.ImageDict</a></li> 
       </ul>
     </div>  
@@ -453,7 +453,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="db.html" title="ImageMetaTag.db"
              >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.ImageDict</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/_modules/ImageMetaTag/db.html b/docs/build/html/_modules/ImageMetaTag/db.html
index cd800ed..88ab128 100644
--- a/docs/build/html/_modules/ImageMetaTag/db.html
+++ b/docs/build/html/_modules/ImageMetaTag/db.html
@@ -5,7 +5,7 @@
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>ImageMetaTag.db &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag.db &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinxdoc.css" />
     <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
@@ -26,7 +26,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
           <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.db</a></li> 
       </ul>
@@ -1056,7 +1056,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
           <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.db</a></li> 
       </ul>
diff --git a/docs/build/html/_modules/ImageMetaTag/img_dict.html b/docs/build/html/_modules/ImageMetaTag/img_dict.html
index 8207f6a..28c1773 100644
--- a/docs/build/html/_modules/ImageMetaTag/img_dict.html
+++ b/docs/build/html/_modules/ImageMetaTag/img_dict.html
@@ -5,7 +5,7 @@
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>ImageMetaTag.img_dict &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag.img_dict &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinxdoc.css" />
     <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
@@ -26,7 +26,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
           <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.img_dict</a></li> 
       </ul>
@@ -624,7 +624,7 @@ <h1>Source code for ImageMetaTag.img_dict</h1><div class="highlight"><pre>
                     <span class="n">metre_patterns_scalings</span> <span class="o">=</span> <span class="p">[(</span><span class="sa">r</span><span class="s1">&#39;([0-9.eE+-]{1,})[\s]{,}m$&#39;</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">),</span>
                                                <span class="p">(</span><span class="sa">r</span><span class="s1">&#39;([0-9.eE+-]{1,})[\s]{,}mm$&#39;</span><span class="p">,</span> <span class="mf">1.0e-3</span><span class="p">),</span>
                                                <span class="p">(</span><span class="sa">r</span><span class="s1">&#39;([0-9.eE+-]{1,})[\s]{,}microns$&#39;</span><span class="p">,</span> <span class="mf">1.0e-6</span><span class="p">),</span>
-                                               <span class="p">(</span><span class="sa">r</span><span class="s1">&#39;([0-9.eE+-]{1,})[\s]{,}</span><span class="se">\\</span><span class="s1">mum$&#39;</span><span class="p">,</span> <span class="mf">1.0</span><span class="o">-</span><span class="mi">6</span><span class="p">),</span>
+                                               <span class="p">(</span><span class="sa">r</span><span class="s1">&#39;([0-9.eE+-]{1,})[\s]{,}</span><span class="se">\\</span><span class="s1">mum$&#39;</span><span class="p">,</span> <span class="mf">1.0e-6</span><span class="p">),</span>
                                                <span class="p">(</span><span class="sa">r</span><span class="s1">&#39;([0-9.eE+-]{1,})[\s]{,}nm$&#39;</span><span class="p">,</span> <span class="mf">1.0e-9</span><span class="p">),</span>
                                                <span class="p">(</span><span class="sa">r</span><span class="s1">&#39;([0-9.eE+-]{1,})[\s]{,}km$&#39;</span><span class="p">,</span> <span class="mf">1000.0</span><span class="p">)]</span>
 
@@ -1088,7 +1088,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
           <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.img_dict</a></li> 
       </ul>
diff --git a/docs/build/html/_modules/ImageMetaTag/savefig.html b/docs/build/html/_modules/ImageMetaTag/savefig.html
index e50a23d..121b3dd 100644
--- a/docs/build/html/_modules/ImageMetaTag/savefig.html
+++ b/docs/build/html/_modules/ImageMetaTag/savefig.html
@@ -5,7 +5,7 @@
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>ImageMetaTag.savefig &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag.savefig &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinxdoc.css" />
     <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
@@ -26,7 +26,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
           <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.savefig</a></li> 
       </ul>
@@ -859,7 +859,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
           <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.savefig</a></li> 
       </ul>
diff --git a/docs/build/html/_modules/ImageMetaTag/webpage.html b/docs/build/html/_modules/ImageMetaTag/webpage.html
index f6d296a..d26dce7 100644
--- a/docs/build/html/_modules/ImageMetaTag/webpage.html
+++ b/docs/build/html/_modules/ImageMetaTag/webpage.html
@@ -5,7 +5,7 @@
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>ImageMetaTag.webpage &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag.webpage &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="../../_static/sphinxdoc.css" />
     <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
@@ -26,7 +26,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
           <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.webpage</a></li> 
       </ul>
@@ -64,7 +64,7 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
 <span class="sd">                                                        the javascript will write images to.</span>
 <span class="sd">    * :func:`ImageMetaTag.webpage.write_json` - writes out the :class:`ImageMetaTag.ImageDict`\</span>
 <span class="sd">                                                as a json.dump to a json file</span>
-<span class="sd">    * :func:`ImageMetaTag.webpage.copy_required_javascript` - copies required javascript library \</span>
+<span class="sd">    * :func:`ImageMetaTag.webpage.copy_required_js_css_etc` - copies required javascript library \</span>
 <span class="sd">                                                          to the required location.</span>
 
 <span class="sd">An easy example of creating a webpage, using an :class:`ImageMetaTag.ImageDict` is shown in</span>
@@ -95,6 +95,8 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
 <span class="n">PAKO_RELEASE</span> <span class="o">=</span> <span class="s1">&#39;1.0.5&#39;</span>
 <span class="n">PAKO_SOURCE_TAR</span> <span class="o">=</span> <span class="s1">&#39;https://github.com/nodeca/pako/archive/</span><span class="si">{}</span><span class="s1">.tar.gz&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">PAKO_RELEASE</span><span class="p">)</span>
 
+<span class="n">IMG_COMP_JS_FILE</span> <span class="o">=</span> <span class="s1">&#39;img_comparison_slider_styles.js&#39;</span>
+<span class="n">IMG_COMP_STYLE</span> <span class="o">=</span> <span class="s1">&#39;img_comparison_slider_styles.css&#39;</span>
 
 <div class="viewcode-block" id="write_full_page"><a class="viewcode-back" href="../../webpage.html#ImageMetaTag.webpage.write_full_page">[docs]</a><span class="k">def</span> <span class="nf">write_full_page</span><span class="p">(</span><span class="n">img_dict</span><span class="p">,</span> <span class="n">filepath</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">page_filename</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">tab_s_name</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
                     <span class="n">preamble</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">postamble</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">postamble_no_imt_link</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
@@ -103,7 +105,8 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
                     <span class="n">show_singleton_selectors</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">optgroups</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
                     <span class="n">url_type</span><span class="o">=</span><span class="s1">&#39;int&#39;</span><span class="p">,</span> <span class="n">only_show_rel_url</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                     <span class="n">style</span><span class="o">=</span><span class="s1">&#39;horiz dropdowns&#39;</span><span class="p">,</span> <span class="n">write_intmed_tmpfile</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-                    <span class="n">description</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">keywords</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">css</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">load_err_msg</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+                    <span class="n">description</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">keywords</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">css</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+                    <span class="n">load_err_msg</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">last_img_in_list_is_slider</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
     <span class="sd">&#39;&#39;&#39;</span>
 <span class="sd">    Writes out an :class:`ImageMetaTag.ImageDict` as a webpage, to a given file location.</span>
 <span class="sd">    The files are created as temporary files and when complete they replace any files that</span>
@@ -154,6 +157,9 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
 <span class="sd">                      default is None, but very large pages can crash with Internet Explorer so \</span>
 <span class="sd">                      a message along the lines of this may be useful: &#39;If the page does not \</span>
 <span class="sd">                      load correctly in Internet Explorer, please try using firefox or Chrome.&#39;</span>
+<span class="sd">     * last_img_in_list_is_slider - for the &#39;horiz dropdowns&#39; page style, when the image payload \</span>
+<span class="sd">                                    contains a list of images, then when this is True, the last \</span>
+<span class="sd">                                    images is used as an on overlay/slider on the other images.</span>
 
 <span class="sd">    Returns a list of files that the the created webpage is dependent upon.</span>
 
@@ -178,8 +184,10 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
         <span class="n">json_files</span> <span class="o">=</span> <span class="p">[]</span>
     <span class="k">else</span><span class="p">:</span>
         <span class="c1"># now make sure the required javascript library is copied over to the file_dir:</span>
-        <span class="n">js_files</span> <span class="o">=</span> <span class="n">copy_required_javascript</span><span class="p">(</span><span class="n">file_dir</span><span class="p">,</span> <span class="n">style</span><span class="p">,</span> <span class="n">compression</span><span class="o">=</span><span class="n">compression</span><span class="p">)</span>
-        <span class="n">page_dependencies</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">js_files</span><span class="p">)</span>
+        <span class="n">js_css_files</span> <span class="o">=</span> <span class="n">copy_required_js_css_etc</span><span class="p">(</span><span class="n">file_dir</span><span class="p">,</span> <span class="n">style</span><span class="p">,</span>
+                                            <span class="n">compression</span><span class="o">=</span><span class="n">compression</span><span class="p">,</span>
+                                            <span class="n">last_img_in_list_is_slider</span><span class="o">=</span><span class="n">last_img_in_list_is_slider</span><span class="p">)</span>
+        <span class="n">page_dependencies</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">js_css_files</span><span class="p">)</span>
 
         <span class="c1"># we have real data to work with:</span>
         <span class="c1"># this tests the dict has uniform_depth, which is needed for all current webpages.</span>
@@ -335,12 +343,13 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
             <span class="c1"># Here we want the final one:</span>
             <span class="n">final_json_files</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">])[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">json_files</span><span class="p">]</span>
             <span class="n">write_js_to_header</span><span class="p">(</span><span class="n">img_dict</span><span class="p">,</span> <span class="n">initial_selectors</span><span class="o">=</span><span class="n">initial_selectors</span><span class="p">,</span> <span class="n">optgroups</span><span class="o">=</span><span class="n">optgroups</span><span class="p">,</span>
-                               <span class="n">file_obj</span><span class="o">=</span><span class="n">out_file</span><span class="p">,</span> <span class="n">json_files</span><span class="o">=</span><span class="n">final_json_files</span><span class="p">,</span> <span class="n">js_files</span><span class="o">=</span><span class="n">js_files</span><span class="p">,</span>
+                               <span class="n">file_obj</span><span class="o">=</span><span class="n">out_file</span><span class="p">,</span> <span class="n">json_files</span><span class="o">=</span><span class="n">final_json_files</span><span class="p">,</span> <span class="n">js_css_files</span><span class="o">=</span><span class="n">js_css_files</span><span class="p">,</span>
                                <span class="n">pagename</span><span class="o">=</span><span class="n">page_filename</span><span class="p">,</span> <span class="n">tabname</span><span class="o">=</span><span class="n">tab_s_name</span><span class="p">,</span>
                                <span class="n">selector_prefix</span><span class="o">=</span><span class="n">selector_prefix</span><span class="p">,</span> <span class="n">url_separator</span><span class="o">=</span><span class="n">url_separator</span><span class="p">,</span>
                                <span class="n">show_singleton_selectors</span><span class="o">=</span><span class="n">show_singleton_selectors</span><span class="p">,</span>
                                <span class="n">url_type</span><span class="o">=</span><span class="n">url_type</span><span class="p">,</span> <span class="n">only_show_rel_url</span><span class="o">=</span><span class="n">only_show_rel_url</span><span class="p">,</span>
                                <span class="n">style</span><span class="o">=</span><span class="n">style</span><span class="p">,</span> <span class="n">ind</span><span class="o">=</span><span class="n">ind</span><span class="p">,</span> <span class="n">compression</span><span class="o">=</span><span class="n">compression</span><span class="p">,</span>
+                               <span class="n">last_img_in_list_is_slider</span><span class="o">=</span><span class="n">last_img_in_list_is_slider</span><span class="p">,</span>
                                <span class="n">description</span><span class="o">=</span><span class="n">description</span><span class="p">,</span> <span class="n">keywords</span><span class="o">=</span><span class="n">keywords</span><span class="p">)</span>
         <span class="c1"># now close the script and head:</span>
         <span class="n">ind</span> <span class="o">=</span> <span class="n">_indent_down_one</span><span class="p">(</span><span class="n">ind</span><span class="p">)</span>
@@ -403,11 +412,12 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
     <span class="k">return</span> <span class="n">page_dependencies</span></div>
 
 <div class="viewcode-block" id="write_js_to_header"><a class="viewcode-back" href="../../webpage.html#ImageMetaTag.webpage.write_js_to_header">[docs]</a><span class="k">def</span> <span class="nf">write_js_to_header</span><span class="p">(</span><span class="n">img_dict</span><span class="p">,</span> <span class="n">initial_selectors</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">optgroups</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-                       <span class="n">file_obj</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">json_files</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">js_files</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+                       <span class="n">file_obj</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">json_files</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">js_css_files</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
                        <span class="n">pagename</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">tabname</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">selector_prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
                        <span class="n">show_singleton_selectors</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
                        <span class="n">url_separator</span><span class="o">=</span><span class="s1">&#39;|&#39;</span><span class="p">,</span> <span class="n">url_type</span><span class="o">=</span><span class="s1">&#39;str&#39;</span><span class="p">,</span> <span class="n">only_show_rel_url</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                        <span class="n">ind</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">compression</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+                       <span class="n">last_img_in_list_is_slider</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
                        <span class="n">description</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">keywords</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="sd">&#39;&#39;&#39;</span>
 <span class="sd">    Writes out the required ImageMetaTag config and data paths into a html header section</span>
@@ -445,6 +455,8 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
 <span class="sd">    * only_show_rel_url - If True, the wepage will only show relative urls in is link section.</span>
 <span class="sd">    * ind - indentation going into the header section.</span>
 <span class="sd">    * compression - Indicates the json file is compressed using zlib.</span>
+<span class="sd">    * last_img_in_list_is_slider - indicates the last image in a list of images \</span>
+<span class="sd">                                   in a payload should be used as an overlay/slider</span>
 <span class="sd">    * description - html description metadata7</span>
 <span class="sd">    * keywords - html keyword metadata</span>
 <span class="sd">    &#39;&#39;&#39;</span>
@@ -465,8 +477,14 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
         <span class="c1">#file_obj.write(out_str)</span>
 
         <span class="c1"># now add a reference to the javascript functions to implement the style:</span>
-        <span class="k">for</span> <span class="n">js_file</span> <span class="ow">in</span> <span class="n">js_files</span><span class="p">:</span>
-            <span class="n">out_str</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">&lt;script type=&quot;text/javascript&quot; src=&quot;</span><span class="si">{}</span><span class="s1">&quot;&gt;&lt;/script&gt;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">ind</span><span class="p">,</span> <span class="n">js_file</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">js_cs_file</span> <span class="ow">in</span> <span class="n">js_css_files</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">js_cs_file</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.js&#39;</span><span class="p">):</span>
+                <span class="n">out_str</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">&lt;script type=&quot;text/javascript&quot; src=&quot;</span><span class="si">{}</span><span class="s1">&quot;&gt;&lt;/script&gt;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">ind</span><span class="p">,</span> <span class="n">js_cs_file</span><span class="p">)</span>
+            <span class="k">elif</span> <span class="n">js_cs_file</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;.css&#39;</span><span class="p">):</span>
+                <span class="n">out_str</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">&lt;link rel=&quot;stylesheet&quot; href=&quot;</span><span class="si">{}</span><span class="s1">&quot;&gt;&lt;/script&gt;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">ind</span><span class="p">,</span> <span class="n">js_cs_file</span><span class="p">)</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="s1">&#39;Unexpected file type. Expecting .js or .css but got </span><span class="si">{}</span><span class="s1">&#39;</span>
+                <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">msg</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">js_cs_file</span><span class="p">))</span>
             <span class="n">file_obj</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">out_str</span><span class="p">)</span>
 
         <span class="c1"># now write out the javascript configuration variables:</span>
@@ -475,9 +493,13 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
         <span class="c1"># define, read in and parse the json file:</span>
         <span class="n">out_str</span> <span class="o">=</span> <span class="s1">&#39;&#39;&#39;</span><span class="si">{0}</span><span class="s1">var json_files = </span><span class="si">{1}</span><span class="s1">;</span>
 <span class="si">{0}</span><span class="s1">var zl_unpack = </span><span class="si">{2}</span><span class="s1">;</span>
+<span class="si">{0}</span><span class="s1">var last_img_slider = </span><span class="si">{3}</span><span class="s1">;</span>
 <span class="si">{0}</span><span class="s1">imt = read_parse_json_files(json_files, zl_unpack);</span>
 <span class="s1">&#39;&#39;&#39;</span>
-        <span class="n">file_obj</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">out_str</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">ind</span><span class="p">,</span> <span class="n">json_files</span><span class="p">,</span> <span class="n">_py_to_js_bool</span><span class="p">(</span><span class="nb">bool</span><span class="p">(</span><span class="n">compression</span><span class="p">))))</span>
+        <span class="n">file_obj</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">out_str</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">ind</span><span class="p">,</span> <span class="n">json_files</span><span class="p">,</span>
+                                      <span class="n">_py_to_js_bool</span><span class="p">(</span><span class="nb">bool</span><span class="p">(</span><span class="n">compression</span><span class="p">)),</span>
+                                      <span class="n">_py_to_js_bool</span><span class="p">(</span><span class="nb">bool</span><span class="p">(</span><span class="n">last_img_in_list_is_slider</span><span class="p">)),</span>
+                       <span class="p">))</span>
 
         <span class="c1"># in case the page we are writing is embedded as a frame, write out the top</span>
         <span class="c1"># level page here;</span>
@@ -921,7 +943,8 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
     <span class="k">else</span><span class="p">:</span>
         <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;&quot;</span><span class="si">%s</span><span class="s1">&quot; tyle of content placeholder not defined&#39;</span> <span class="o">%</span> <span class="n">style</span><span class="p">)</span></div>
 
-<div class="viewcode-block" id="copy_required_javascript"><a class="viewcode-back" href="../../webpage.html#ImageMetaTag.webpage.copy_required_javascript">[docs]</a><span class="k">def</span> <span class="nf">copy_required_javascript</span><span class="p">(</span><span class="n">file_dir</span><span class="p">,</span> <span class="n">style</span><span class="p">,</span> <span class="n">compression</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">copy_required_js_css_etc</span><span class="p">(</span><span class="n">file_dir</span><span class="p">,</span> <span class="n">style</span><span class="p">,</span> <span class="n">compression</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+                             <span class="n">last_img_in_list_is_slider</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
     <span class="sd">&#39;&#39;&#39;</span>
 <span class="sd">    Copies the required javascript library to the directory</span>
 <span class="sd">    containing the required page (file_dir) for a given webpage style.</span>
@@ -961,7 +984,7 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
 <span class="s1">not being overwritten. Your webpage may be broken!&#39;&#39;&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">file_dir</span><span class="p">,</span> <span class="n">imt_js_to_copy</span><span class="p">))</span>
 
     <span class="c1"># make a list of all the required javascript files</span>
-    <span class="n">js_files</span> <span class="o">=</span> <span class="p">[</span><span class="n">imt_js_to_copy</span><span class="p">]</span>
+    <span class="n">js_css_files</span> <span class="o">=</span> <span class="p">[</span><span class="n">imt_js_to_copy</span><span class="p">]</span>
 
     <span class="c1"># now move on to javascript dependencies from the compression:</span>
     <span class="k">if</span> <span class="n">compression</span><span class="p">:</span>
@@ -996,9 +1019,24 @@ <h1>Source code for ImageMetaTag.webpage</h1><div class="highlight"><pre>
                 <span class="c1"># copy the file:</span>
                 <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">js_src</span><span class="p">,</span> <span class="n">js_dest</span><span class="p">)</span>
         <span class="c1"># finally, make a note:</span>
-        <span class="n">js_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">js_to_copy</span><span class="p">)</span>
+        <span class="n">js_css_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">js_to_copy</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">last_img_in_list_is_slider</span><span class="p">:</span>
+        <span class="n">files_to_copy</span> <span class="o">=</span> <span class="p">[</span><span class="n">IMG_COMP_STYLE</span><span class="p">,</span> <span class="n">IMG_COMP_JS_FILE</span><span class="p">]</span>
+        <span class="k">for</span> <span class="n">js_to_copy</span> <span class="ow">in</span> <span class="n">files_to_copy</span><span class="p">:</span>
+
+            <span class="n">js_src</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">file_src_dir</span><span class="p">,</span> <span class="n">js_to_copy</span><span class="p">)</span>
+            <span class="n">js_dest</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">file_dir</span><span class="p">,</span> <span class="n">js_to_copy</span><span class="p">)</span>
+            <span class="c1"># if the file is already at destination, we&#39;re good:</span>
+            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">js_dest</span><span class="p">):</span>
+                <span class="k">pass</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="c1"># copy the file:</span>
+                <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">js_src</span><span class="p">,</span> <span class="n">js_dest</span><span class="p">)</span>
+            <span class="c1"># finally, make a note:</span>
+            <span class="n">js_css_files</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">js_to_copy</span><span class="p">)</span>
 
-    <span class="k">return</span> <span class="n">js_files</span></div>
+    <span class="k">return</span> <span class="n">js_css_files</span>
 
 <span class="k">def</span> <span class="nf">get_pako</span><span class="p">(</span><span class="n">pako_to_dir</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
     <span class="sd">&#39;&#39;&#39;</span>
@@ -1087,7 +1125,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
           <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.webpage</a></li> 
       </ul>
diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html
index bf0764d..502c259 100644
--- a/docs/build/html/_modules/index.html
+++ b/docs/build/html/_modules/index.html
@@ -5,7 +5,7 @@
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>Overview: module code &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>Overview: module code &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="../_static/sphinxdoc.css" />
     <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
@@ -26,7 +26,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Overview: module code</a></li> 
       </ul>
     </div>  
@@ -75,7 +75,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="../index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="../index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Overview: module code</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/_sources/versions.rst.txt b/docs/build/html/_sources/versions.rst.txt
index 4d64649..e672cf0 100644
--- a/docs/build/html/_sources/versions.rst.txt
+++ b/docs/build/html/_sources/versions.rst.txt
@@ -4,7 +4,8 @@ Versions of Python
 ==================
 
 The ImageMetaTag module has been tested on the following versions:
- * Python 2.7.6 ( GCC 4.4.6 20120305 (Red Hat 4.4.6-4) on linux2)
- * Python 2.7.12 ( GCC 4.4.7 20120313 (Red Hat 4.4.7-1) on linux2 )
- * Python 3.6.5 ( GCC 4.8.2 20140120 (Red Hat 4.8.2-15) on linux)
-
+ * Python 2.7.5, 2.7.6, 2.7.12
+ * Python 3.6.5
+ * Python 3.8.16
+ * Python 3.9.13
+ * Python 3.10.9
diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js
index 10dfcfd..458dc5f 100644
--- a/docs/build/html/_static/documentation_options.js
+++ b/docs/build/html/_static/documentation_options.js
@@ -1,6 +1,6 @@
 var DOCUMENTATION_OPTIONS = {
     URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
-    VERSION: '0.7.13',
+    VERSION: '0.8.0',
     LANGUAGE: 'en',
     COLLAPSE_INDEX: false,
     BUILDER: 'html',
diff --git a/docs/build/html/db.html b/docs/build/html/db.html
index f9c383d..b361255 100644
--- a/docs/build/html/db.html
+++ b/docs/build/html/db.html
@@ -6,7 +6,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
-    <title>ImageMetaTag.db &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag.db &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -35,7 +35,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="savefig.html" title="ImageMetaTag.savefig"
              accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.db</a></li> 
       </ul>
     </div>  
@@ -399,7 +399,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="savefig.html" title="ImageMetaTag.savefig"
              >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.db</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html
index 705db97..31cbf59 100644
--- a/docs/build/html/genindex.html
+++ b/docs/build/html/genindex.html
@@ -5,7 +5,7 @@
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>Index &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>Index &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -26,7 +26,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Index</a></li> 
       </ul>
     </div>  
@@ -71,8 +71,6 @@ <h2 id="C">C</h2>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="ImageDict.html#ImageMetaTag.ImageDict.copy_except_dict_and_keys">copy_except_dict_and_keys() (ImageMetaTag.ImageDict method)</a>
-</li>
-      <li><a href="webpage.html#ImageMetaTag.webpage.copy_required_javascript">copy_required_javascript() (in module ImageMetaTag.webpage)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -318,7 +316,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Index</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index c9549f9..bf32b15 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -6,7 +6,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
-    <title>ImageMetaTag - Image metadata tagging and presentation &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag - Image metadata tagging and presentation &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -31,7 +31,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="savefig.html" title="ImageMetaTag.savefig"
              accesskey="N">next</a> |</li>
-        <li class="nav-item nav-item-0"><a href="#">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="#">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag - Image metadata tagging and presentation</a></li> 
       </ul>
     </div>  
@@ -162,7 +162,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="savefig.html" title="ImageMetaTag.savefig"
              >next</a> |</li>
-        <li class="nav-item nav-item-0"><a href="#">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="#">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag - Image metadata tagging and presentation</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv
index 798296c..266beae 100644
--- a/docs/build/html/objects.inv
+++ b/docs/build/html/objects.inv
@@ -1,9 +1,9 @@
 # Sphinx inventory version 2
 # Project: ImageMetaTag
-# Version: 0.7
+# Version: 0.8
 # The remainder of this file is compressed using zlib.
-xڭW�n� ��+,�׍�kn�z�!R�V�"c���}�7��7	vokཁ7o���<���iS��Ӽ�P~+���z��N~Ic���x�-��?��$u��^��6��Ǡ�[ͳ�L���+�	�B'/0��|��#[��`���ZK�=4�
-���
-�X��qC��V	jI�E�p~k>�M��3E0$��]��u`�ndWJ-��*R[�Ŭ�	��R�z������Bjm��{a��Խb>��c^-�,��o�8�+�h�k<s�CЋ��*$1R{���U-$d৐!���t4]���.��r�p�0��@=l 0V3p�8��M�yj�p�g.�6D� 7]��1���-�ł��^�V�	'´�I�c�%l,�d��"�иi:���ۂ����OVృ~�ޙfY�G�~�����}1��g����<g�������M|^�fv�VO��k/����o�9/8C`'�I�x�LE��f��DgP���҃�z�ʌ[=�8����(>����3=RǬ0�vXp�$K~�{�WƵ�9�/ʠՒ�u����ZLy4�1�!<��y~ϱ"��X������aƢ//�Eр���V�
-dX=����x[6R�W����g�ϩ�%6�F���῕��p�����i"�?&�m�f?�=��RK�TQ�c�˩\+�"��-@i(�~8���˝O㥡��xy�:���e�r�i,��J�O)R1/ǑU��>�����ǁ9>|����X���i���3����q1��fn�r�
-�h�y
\ No newline at end of file
+xڭW�n� ��+���F�5�J��)R�^��M���������f˺����޼�=k���Zb��ވA�B��zׅ^}ʱ�gr�����w�Crż'_�[0c/��EJ
+�3�̍)�r��
+P�}���ȗ8�u�	vm!�N�sl�Cc��a��a��޼�b�4�F�F�@S%}���&���"���.�x�?�zp-DeodWI��i�8ӧ�죉��V��$޸P>-x��6ơ������i�C��uQ�欨?��^�T�h0x��Ĥ'9g�M4(j�	>k/�F*(��)c�i'�d���Y}���aƕ°B�p�u���ԃB>0��+��Ԣp���(r�ɨ��l���|ph�"�
+��Mh8RnTI�<gX.�R{d��+2��vq���[�I�r��I<v�/ٻ�,+�����o\�1ލ�X2M"��J�e|Ȟ�Ƈh��^���E|�.^�av���L��[7����/�9O8c�$gY�t�BE����eoQ�T�2�+Lz��N[}Sq�}��([�N��3���p����`:�8��	��Ê��QF��W��>�{�&>3�6P����L}JNZ�jA�;yZ�X*���&��ޗM��˿Y��H�]���j�n	��xЁ�WX���v<�/2�cvN�����ӈ�F�M�8Ʋ�V�T�;i�Z��P}��p��c1ǉe��9J��.Y+��n���l?��'�T��V�SdS��
+o�o�ǎU���7��^�7�6��α�5�0ͤq5����2���/�8~5
\ No newline at end of file
diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html
index cd7c8a0..fef3ff1 100644
--- a/docs/build/html/py-modindex.html
+++ b/docs/build/html/py-modindex.html
@@ -5,7 +5,7 @@
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>Python Module Index &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>Python Module Index &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -29,7 +29,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="#" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Python Module Index</a></li> 
       </ul>
     </div>  
@@ -106,7 +106,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="#" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Python Module Index</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/savefig.html b/docs/build/html/savefig.html
index 478a117..3f2aa56 100644
--- a/docs/build/html/savefig.html
+++ b/docs/build/html/savefig.html
@@ -6,7 +6,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
-    <title>ImageMetaTag.savefig &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag.savefig &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -35,7 +35,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="index.html" title="ImageMetaTag - Image metadata tagging and presentation"
              accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.savefig</a></li> 
       </ul>
     </div>  
@@ -237,7 +237,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="index.html" title="ImageMetaTag - Image metadata tagging and presentation"
              >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.savefig</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/scripts.html b/docs/build/html/scripts.html
index 8dd433b..f3150ab 100644
--- a/docs/build/html/scripts.html
+++ b/docs/build/html/scripts.html
@@ -6,7 +6,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
-    <title>Associated scripts packaged with ImageMetaTag &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>Associated scripts packaged with ImageMetaTag &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -35,7 +35,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="simple.html" title="ImageMetaTag - simplest_img_dict.py"
              accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Associated scripts packaged with ImageMetaTag</a></li> 
       </ul>
     </div>  
@@ -148,7 +148,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="simple.html" title="ImageMetaTag - simplest_img_dict.py"
              >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Associated scripts packaged with ImageMetaTag</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
index 4a7d98c..e1a518c 100644
--- a/docs/build/html/search.html
+++ b/docs/build/html/search.html
@@ -5,7 +5,7 @@
   <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>Search &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>Search &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     
@@ -32,7 +32,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Search</a></li> 
       </ul>
     </div>  
@@ -95,7 +95,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Search</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index 5f532f5..c449eb6 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1,1 +1,1 @@
-Search.setIndex({"docnames": ["ImageDict", "db", "index", "savefig", "scripts", "simple", "test", "versions", "webpage"], "filenames": ["ImageDict.rst", "db.rst", "index.rst", "savefig.rst", "scripts.rst", "simple.rst", "test.rst", "versions.rst", "webpage.rst"], "titles": ["ImageMetaTag.ImageDict", "ImageMetaTag.db", "ImageMetaTag - Image metadata tagging and presentation", "ImageMetaTag.savefig", "Associated scripts packaged with ImageMetaTag", "ImageMetaTag - simplest_img_dict.py", "ImageMetaTag - test.py", "Versions of Python", "ImageMetaTag.webpage"], "terms": {"thi": [0, 1, 3, 4, 5, 6, 8], "submodul": 0, "contain": [0, 1, 3, 8], "instanc": [0, 1, 8], "purpos": [0, 3], "an": [0, 1, 2, 3, 4, 5, 8], "i": [0, 1, 2, 3, 4, 5, 6, 8], "sort": [0, 5, 8], "imag": [0, 1, 3, 4, 5, 6, 8], "metadata": [0, 1, 3, 5, 6, 8], "suppli": [0, 1, 3, 5, 8], "savefig": [0, 1, 2], "usual": [0, 1, 3], "store": [0, 1, 3], "databas": [0, 2, 3, 4, 5], "file": [0, 2, 4, 5, 8], "form": 0, "can": [0, 1, 2, 3, 5, 6, 8], "quickli": [0, 3], "easili": [0, 2], "present": [0, 1, 3, 5, 6, 8], "webpag": [0, 2, 5, 6], "write_full_pag": [0, 5, 8], "easi": [0, 8], "exampl": [0, 4, 6, 8], "creat": [0, 2, 3, 6, 8], "shown": [0, 8], "simplest_image_dict": [0, 8], "py": [0, 2, 8], "c": [0, 1, 2, 8], "crown": [0, 1, 2, 8], "copyright": [0, 1, 2, 8], "met": [0, 1, 2, 8], "offic": [0, 1, 2, 8], "all": [0, 1, 2, 3, 4, 8], "right": [0, 1, 2, 3, 8], "reserv": [0, 1, 2, 8], "releas": [0, 1, 2, 8], "under": [0, 1, 2, 8], "bsd": [0, 1, 2, 8], "3": [0, 1, 2, 3, 7, 8], "claus": [0, 1, 2, 8], "licens": [0, 1, 2, 8], "see": [0, 1, 2, 3, 5, 8], "more": [0, 1, 2, 8], "detail": [0, 1, 2, 8], "input_dict": 0, "level_nam": [0, 8], "none": [0, 1, 3, 5, 8], "selector_width": 0, "selector_anim": 0, "animation_direct": 0, "sourc": [0, 1, 2, 3, 8], "A": [0, 1, 3, 4, 6, 8], "which": [0, 1, 2, 3, 6, 8], "hold": 0, "heirach": [0, 2], "dictionari": [0, 1, 2, 3, 5, 8], "associ": [0, 1, 2], "method": [0, 3], "append": [0, 5, 8], "remov": [0, 1], "from": [0, 1, 3, 4, 5, 8], "expect": [0, 1, 3, 5], "case": [0, 1, 5, 8], "repres": 0, "larg": [0, 1, 2, 3, 6, 8], "set": [0, 1, 3, 5, 6, 8], "organis": 0, "tag": [0, 1, 3, 5], "when": [0, 1, 3, 8], "wai": [0, 4, 5], "modul": [0, 1, 2, 3, 6, 7, 8], "produc": [0, 1, 2, 3, 5, 6, 8], "web": [0, 2, 3, 4, 5, 6], "page": [0, 2, 3, 4, 5, 6], "brows": [0, 6, 8], "should": [0, 1, 3, 4, 6], "requir": [0, 1, 5, 8], "order": [0, 3, 5, 8], "In": [0, 1, 3, 5, 8], "convert": [0, 1], "flat": 0, "item": [0, 1, 3], "dict_heirachy_from_list": [0, 5], "option": [0, 1, 2, 3, 4, 8], "list": [0, 1, 3, 5, 8], "tagnam": [0, 1], "full": [0, 8], "give": 0, "name": [0, 1, 3, 8], "descript": [0, 8], "what": [0, 5], "mean": 0, "level": [0, 3, 5, 8], "input": [0, 1, 3, 8], "dict": [0, 1, 6, 8], "html": [0, 5, 6, 8], "string": [0, 1, 3, 8], "width": [0, 3], "each": [0, 3, 5, 8], "selector": [0, 8], "output": [0, 1, 3, 4, 8], "current": [0, 1, 3, 8], "unus": 0, "integ": [0, 1, 3], "index": [0, 2, 8], "anim": [0, 8], "animation_dicrect": 0, "1": [0, 3, 7], "indic": [0, 8], "move": [0, 8], "forward": 0, "backward": 0, "object": [0, 2, 6, 8], "structur": [0, 1, 2, 8], "kei": [0, 1, 5], "within": [0, 1, 3, 8], "number": [0, 1, 2, 3, 4, 5, 6], "direct": 0, "desir": [0, 3], "new_dict": 0, "devmod": 0, "fals": [0, 1, 3, 8], "skip_key_relist": 0, "new": [0, 1, 3], "singl": [0, 3, 8], "element": [0, 8], "layer": 0, "true": [0, 1, 3, 8], "stop": 0, "regener": 0, "speed": [0, 3, 4], "up": [0, 1, 3, 8], "multipl": [0, 3, 4, 6], "copy_except_dict_and_kei": 0, "return": [0, 1, 5, 8], "copi": [0, 1, 8], "except": [0, 3], "have": [0, 1, 2, 3, 5, 6, 8], "null": 0, "valu": [0, 1, 3, 5, 8], "dict_depth": [0, 8], "uniform_depth": 0, "get": [0, 4], "depth": [0, 8], "branch": 0, "plot_dict": 0, "check": [0, 8], "thei": [0, 1, 3, 5, 8], "equal": 0, "max": 0, "in_dict": 0, "0": [0, 3, 5, 8], "recurs": 0, "find": 0, "dict_index_arrai": 0, "maxdepth": 0, "verbos": [0, 1, 3, 4, 8], "refer": [0, 1], "result": [0, 3, 6], "maximum": [0, 3], "go": [0, 1, 5, 8], "ie": 0, "dict_print": 0, "indent": [0, 8], "outstr": 0, "dict_prun": 0, "dicts_prun": 0, "prune": 0, "empti": [0, 1, 5, 6], "untermin": 0, "occur": 0, "after": [0, 1, 3, 8], "part": [0, 4, 6], "been": [0, 1, 2, 3, 4, 6, 7], "wa": [0, 1, 6], "dict_remov": 0, "rm_dict": 0, "anoth": 0, "larger": [0, 8], "one": [0, 1, 4, 8], "leav": 0, "so": [0, 1, 3, 4, 5, 8], "need": [0, 1, 3, 5, 8], "clean": [0, 1], "afterward": [0, 1], "dict_union": 0, "union": 0, "flatten_list": 0, "in_list": 0, "flatten": 0, "key_at_depth": 0, "given": [0, 1, 2, 3, 8], "keys_by_depth": 0, "subdir": [0, 4], "subdirectori": [0, 1, 3, 4], "target": [0, 8], "list_keys_by_depth": 0, "its": [0, 5], "It": [0, 1, 3, 6], "much": [0, 1, 3, 5], "faster": [0, 1], "without": [0, 1, 3, 6], "call": 0, "onc": [0, 1, 2, 3, 4, 6], "end": 0, "process": [0, 1, 2, 3, 6], "complet": [0, 5, 8], "work": [0, 2, 3], "where": [0, 1, 3, 6, 8], "also": [0, 1, 2, 3, 6, 8], "uniqu": [0, 1], "locat": [0, 1, 3, 5, 8], "mergedict": 0, "dict1": 0, "dict2": 0, "altern": 0, "version": [0, 1, 2, 5], "gener": 0, "": [0, 3, 5, 8], "mergdict": 0, "tip": 0, "becaus": [0, 1], "section": [0, 8], "slow": [0, 1, 3], "often": 0, "build": [0, 1], "thing": [0, 5], "you": [0, 1, 3], "want": [0, 5], "do": [0, 1, 3, 4], "return_from_list": 0, "vals_at_depth": 0, "differ": [0, 1, 8], "assum": [0, 1], "ha": [0, 1, 3, 4, 7], "date": 0, "last": 0, "time": [0, 1, 4, 6], "sinc": 0, "return_key_ind": 0, "out_arrai": 0, "this_set_of_ind": 0, "doe": [0, 1, 3, 6, 8], "ad": [0, 1, 3, 8], "compelt": 0, "sort_kei": [0, 5], "sort_method": [0, 5], "plot": [0, 1, 5, 6], "accord": [0, 1, 5], "particular": 0, "match": [0, 1], "valid": [0, 8], "far": 0, "ar": [0, 1, 2, 3, 4, 5, 6, 8], "mostli": 0, "focus": 0, "meteorolog": 0, "term": 0, "includ": [0, 1, 2, 3, 6, 8], "just": [0, 1, 5, 8], "ordinari": 0, "numer": [0, 5], "start": [0, 1, 3], "surfac": 0, "upward": 0, "special": 0, "like": 0, "cross": 0, "etc": [0, 3, 5], "t": [0, 1], "ascend": 0, "similar": [0, 4, 8], "specif": [0, 1], "per": 0, "while": [0, 5, 8], "rest": 0, "activ": 0, "revers": 0, "reverse_sort": [0, 5], "reverse_numer": [0, 5], "readmeta_from_imag": 0, "img_fil": [0, 5], "img_format": [0, 3], "keep_reserved_tag": 0, "read": [0, 1, 2, 5, 8], "tag_nam": [0, 1, 3], "pair": [0, 1, 3], "By": [0, 3, 8], "default": [0, 1, 3, 8], "cannot": 0, "written": [0, 1, 6, 8], "e": [0, 3], "g": [0, 3], "dpi": [0, 3], "chromat": 0, "keep": [0, 1, 3, 5], "payload": [0, 1], "heirachi": [0, 5], "onli": [0, 1, 3, 6, 8], "final": 0, "describ": [0, 6], "would": [0, 4, 5, 8], "rel": [0, 1, 3, 8], "path": [0, 1, 3, 4, 8], "dict_split": 0, "n_split": 0, "size_split": 0, "extra_opt": 0, "break": 0, "yield": 0, "sub": [0, 8], "chunk": [0, 8], "size": [0, 3, 8], "split": [0, 8], "first": [0, 8], "veri": [0, 1, 6, 8], "parallelis": [0, 6], "If": [0, 1, 3, 8], "iter": 0, "routin": [0, 1, 5], "tupl": [0, 3, 8], "One": 0, "n_slpit": 0, "must": [0, 1], "specifi": [0, 3, 8], "simple_dict_filt": 0, "simple_dict": 0, "test": [0, 1, 2, 5, 7], "raise_key_mismatch": 0, "content": [0, 1, 2, 4, 5, 8], "simpl": [0, 5, 6], "un": 0, "properti": 0, "against": 0, "roll": [0, 5], "6": [0, 1, 3, 7], "simul": 0, "216": 0, "1296": 0, "color": [0, 5], "compress": [0, 3, 5, 8], "type": [0, 5, 8], "histogram": 0, "line": [0, 3, 8], "trim": [0, 3, 5], "here": [0, 3, 6], "restrict": 0, "filter": [0, 1, 3], "second": [0, 1, 3, 8], "both": [0, 1, 3], "togeth": [0, 8], "other": [0, 1, 2, 8], "characterist": 0, "attempt": [0, 1, 3], "miss": [0, 1, 8], "rais": [0, 3], "three": 0, "logic": [0, 1], "whether": 0, "pass": [0, 1, 3, 8], "group": [0, 3, 8], "third": 0, "check_for_required_kei": 0, "img_info": [0, 1, 5], "req_kei": 0, "accordingli": 0, "write": [1, 2, 3, 5, 6], "maintain": [1, 3], "sqlite3": 1, "normal": 1, "usag": [1, 4], "primarili": 1, "figur": [1, 3], "save": [1, 3], "built": [1, 2], "load": [1, 5, 8], "For": [1, 8], "most": 1, "follow": [1, 3, 7, 8], "provid": [1, 3], "write_img_to_dbfil": [1, 3], "db_file": [1, 3], "img_filenam": 1, "add_strict": 1, "attempt_replac": 1, "timeout": [1, 3], "argument": [1, 3], "exist": [1, 3], "filenam": [1, 3, 8], "appli": [1, 3], "either": [1, 3, 8], "absolut": 1, "make": [1, 5, 8], "ani": [1, 3, 4, 5, 8], "write_img_to_open_db": 1, "try": [1, 8], "required_tag": [1, 5], "tag_str": [1, 5], "db_timeout": [1, 3], "db_attempt": [1, 3], "20": [1, 3], "n_sampl": 1, "fail": 1, "popul": 1, "entri": [1, 4], "random": [1, 6], "imagedict": [1, 2, 3, 5, 6, 8], "class": [1, 2, 3, 8], "duplic": 1, "ineffici": 1, "memori": [1, 3, 5, 8], "reduc": [1, 2, 4, 8], "consider": 1, "itself": 1, "Will": 1, "problem": 1, "older": 1, "read_img_info_from_dbfil": 1, "still": [1, 3], "del_plots_from_dbfil": 1, "do_vacuum": 1, "allow_retri": 1, "skip_warn": 1, "delet": [1, 4], "restructur": 1, "retri": 1, "allow": 1, "lock": 1, "sleep": 1, "command": [1, 6], "avoid": [1, 3], "overid": 1, "warn": 1, "request": 1, "select_dbfile_by_tag": 1, "select_tag": 1, "select": [1, 8], "field": 1, "accept": 1, "process_select_star_from": 1, "merge_db_fil": 1, "main_db_fil": 1, "add_db_fil": 1, "delete_add_db": 1, "delete_added_entri": 1, "merg": 1, "two": 1, "The": [1, 2, 6, 7, 8], "same": [1, 3, 5, 6], "them": [1, 5, 6], "were": 1, "parallel": [1, 5], "ignor": 1, "open_or_create_db_fil": 1, "restart_db": 1, "initi": [1, 8], "tabl": 1, "connect": 1, "cursor": 1, "truem": 1, "again": 1, "alreadi": [1, 3, 8], "dbcn": 1, "dbcr": 1, "open_db_fil": 1, "read_db_file_to_mem": 1, "pre": [1, 3], "held": [1, 8], "access": [1, 3, 6], "extenst": 1, "lot": [1, 5], "oper": [1, 4], "There": 1, "cost": 1, "take": 1, "few": [1, 2], "worth": 1, "ish": 1, "250k": 1, "row": 1, "suggest": 1, "100": 1, "add": [1, 2, 3], "report": [1, 3], "valueerror": [1, 3], "aren": 1, "defin": [1, 3, 5, 8], "caus": [1, 3], "rewritten": [1, 3], "column": [1, 3], "recrete_table_new_col": 1, "best": [1, 3, 5], "instead": [1, 3, 4, 6], "ideal": [1, 3], "replac": [1, 3, 8], "otherwis": 1, "read_img_info_from_dbcursor": 1, "select_dbcr_by_tag": 1, "current_col": 1, "new_col": 1, "bdcr": 1, "recreat": [1, 4], "major": 1, "chang": [1, 3], "place": 1, "deliber": [1, 6], "commit": 1, "statement": 1, "seen": 1, "intermedi": 1, "incorrect": 1, "possibl": [1, 3, 5], "db_name_to_info_kei": 1, "in_str": 1, "invers": 1, "info_key_to_db_nam": 1, "consist": [1, 4, 5], "db_content": 1, "standard": [1, 3], "format": [1, 2, 3, 5], "identifi": 1, "mai": [1, 8], "occas": 1, "nopt": 1, "intend": 1, "regular": 1, "scan_dir_for_db": 1, "basedir": 1, "img_tag_req": 1, "subdir_excl_list": 1, "known_file_tag": 1, "no_file_ext": 1, "return_tim": 1, "scan": 1, "directori": [1, 3, 5, 6, 8], "disk": [1, 4], "did": 1, "previous": 1, "optim": [1, 4], "perform": 1, "accid": 1, "unless": [1, 2, 3, 8], "behaviour": 1, "least": 1, "imt_tag_req": 1, "those": [1, 5], "don": 1, "thumbnail": [1, 3], "prevent": 1, "being": [1, 3, 8], "exclud": 1, "extens": [1, 3, 8], "known": 1, "themselv": [1, 3], "old": 1, "backup": 1, "updat": 1, "restart": 1, "python": [2, 6], "packag": 2, "around": [2, 3], "wrapper": 2, "matplotlib": [2, 3], "support": [2, 3], "us": [2, 3, 4, 5, 6, 8], "manag": 2, "sql": 2, "As": [2, 6], "involv": 2, "librari": [2, 4, 8], "common": [2, 4], "post": [2, 3], "crop": 2, "logo": [2, 3], "addit": [2, 8], "colour": [2, 3], "palett": [2, 3], "manipul": [2, 3, 4, 8], "files": [2, 3], "code": [2, 5, 6], "explicitli": 2, "state": 2, "british": 2, "2015": 2, "2023": 2, "licenc": 2, "github": [2, 5, 8], "png": [2, 3, 4], "recommend": 2, "function": [2, 5, 6, 8], "db": [2, 3, 4, 5], "commonli": 2, "open": [2, 8], "intern": 2, "util": [2, 4], "prepar": [2, 4], "whole": 2, "indidividu": 2, "compon": 2, "simplest_img_dict": 2, "script": [2, 6, 8], "rm_imt_imag": 2, "search": 2, "usaulli": 3, "iteself": 3, "fig": 3, "img_tag": [3, 5], "img_convert": 3, "do_trim": 3, "trim_bord": 3, "do_thumb": 3, "keep_open": 3, "logo_fil": 3, "logo_width": 3, "logo_height": 3, "logo_pad": 3, "logo_po": 3, "db_replac": 3, "db_add_strict": 3, "db_full_path": 3, "pyplot": 3, "optimis": 3, "depend": [3, 8], "image_file_postproc": 3, "guess": 3, "convers": 3, "system": [3, 4], "reader": 3, "writer": 3, "gamma": 3, "interlac": 3, "transpar": 3, "express": 3, "link": [3, 8], "whose": 3, "resolut": 3, "close": 3, "switch": [3, 8], "befor": [3, 8], "easiest": 3, "quickest": 3, "manner": 3, "advis": 3, "along": [3, 8], "top": [3, 5, 8], "serv": 3, "server": 3, "home": [3, 6], "public_html": [3, 6], "public": [3, 6], "elsewher": 3, "due": 3, "storag": 3, "limit": 3, "symbol": 3, "databs": [3, 5], "correct": 3, "complex": 3, "could": [3, 8], "outfil": 3, "img_buf": 3, "img_dpi": 3, "overwrit": [3, 8], "buffer": 3, "avail": [3, 8], "horizont": [3, 8], "vertic": 3, "eg": 3, "72": 3, "control": 3, "light": 3, "rgba": 3, "rgb": 3, "2": [3, 7, 8], "moder": [3, 6], "adapt": 3, "256": 3, "heavi": 3, "8": [3, 7], "bit": 3, "whitespac": 3, "edg": 3, "pixel": 3, "border": [3, 5], "left": 3, "resiz": 3, "antialias": 3, "well": 3, "shrink": 3, "text": [3, 5, 8], "smaller": 3, "aspect": 3, "ratio": 3, "alwai": [3, 8], "overrid": 3, "height": 3, "40": 3, "pad": 3, "zero": 3, "corner": 3, "legend": 3, "context": 3, "upper": 3, "grow": 3, "fit": 3, "lower": 3, "4": [3, 7], "small": [4, 8], "pacakg": 4, "alongsid": [4, 8], "interfac": 4, "task": 4, "imt": [4, 5], "basic": [4, 6], "file2": 4, "file1": 4, "wildcard": 4, "v": 4, "f": 4, "forc": 4, "rm": 4, "note": 4, "design": 4, "slower": 4, "than": [4, 8], "risk": 4, "out": [4, 8], "sync": 4, "aim": 5, "show": [5, 8], "simplest": 5, "practic": 5, "moduleauthor": 5, "melissa": 5, "brook": 5, "http": [5, 6, 8], "com": [5, 8], "melissaebrook": 5, "minim": 5, "import": [5, 6], "datetim": 5, "we": [5, 8], "coupl": 5, "get_webdir": 5, "define_imt_db": 5, "date_format_www": 5, "def": 5, "__main__": 5, "real": 5, "applic": 5, "own": 5, "sure": 5, "webdir": 5, "imt_db": 5, "how": [5, 6], "now": [5, 8], "img_list": 5, "images_and_tag": 5, "construct": [5, 8], "therefor": 5, "effici": 5, "print": 5, "assembl": 5, "img_dict": [5, 8], "iteritem": 5, "temporari": [5, 8], "tmp_dict": 5, "turn": 5, "els": 5, "page_filenam": [5, 8], "titl": [5, 8], "page_titl": 5, "wegbpag": 5, "webpage_preambl": 5, "h3": 5, "some": 5, "bottom": [5, 8], "webpage_postambl": 5, "strftime": 5, "preambl": [5, 8], "postambl": [5, 8], "sign": 5, "off": 5, "__path__": 5, "__name__": 5, "main": 6, "act": 6, "demonstr": 6, "action": 6, "data": [6, 8], "run": 6, "imagemetatagtest": 6, "view": [6, 8], "gw": 6, "ceda": 6, "ac": 6, "uk": 6, "mo_forecast": 6, "page_para": 6, "page_multi": 6, "re": 6, "skip": 6, "scalabl": 6, "wepag": [6, 8], "9": 6, "factori": 6, "362880": 6, "member": 6, "mimic": 6, "actual": [6, 8], "biggus_pageu": 6, "big": 6, "imagemetatag": 7, "7": 7, "gcc": 7, "20120305": 7, "red": 7, "hat": 7, "linux2": 7, "12": 7, "20120313": 7, "5": 7, "20140120": 7, "15": 7, "linux": 7, "made": 8, "short": 8, "javascript": 8, "j": 8, "json": 8, "tree": 8, "strcutur": 8, "To": 8, "zlib": 8, "pako": 8, "restor": 8, "browser": 8, "done": 8, "templat": 8, "latter": 8, "write_js_to_head": 8, "inform": 8, "header": 8, "write_js_placehold": 8, "placehold": 8, "write_json": 8, "dump": 8, "copy_required_javascript": 8, "At": 8, "style": 8, "dropdownmenu": 8, "hopefulli": 8, "soon": 8, "filepath": 8, "tab_s_nam": 8, "postamble_no_imt_link": 8, "initial_selector": 8, "show_selector_nam": 8, "show_singleton_selector": 8, "optgroup": 8, "url_typ": 8, "int": 8, "only_show_rel_url": 8, "horiz": 8, "dropdown": 8, "write_intmed_tmpfil": 8, "keyword": 8, "css": 8, "load_err_msg": 8, "rather": 8, "appropri": 8, "messag": 8, "sai": 8, "abl": 8, "menu": 8, "denot": 8, "frame": 8, "bodi": 8, "quit": 8, "postabl": 8, "document": 8, "write_js_setup": 8, "displai": 8, "full_name_map": 8, "readabl": 8, "determin": 8, "url": 8, "str": 8, "stdout": 8, "inflat": 8, "nodeca": 8, "amount": 8, "pleas": 8, "wait": 8, "crash": 8, "internet": 8, "explor": 8, "correctli": 8, "firefox": 8, "chrome": 8, "upon": 8, "file_obj": 8, "json_fil": 8, "js_file": 8, "pagenam": 8, "tabnam": 8, "selector_prefix": 8, "url_separ": 8, "ind": 8, "config": 8, "These": 8, "imt_optgroup_ord": 8, "opgroup": 8, "taken": 8, "represent": 8, "prefix": 8, "sel": 8, "metadata7": 8, "animated_level": 8, "dict_dept": 8, "variabl": 8, "visibl": 8, "peopl": 8, "futur": 8, "great": 8, "length": 8, "label": 8, "button": 8, "file_name_no_ext": 8, "chunk_char_limit": 8, "10000000": 8, "strucutur": 8, "compres": 8, "effic": 8, "tempfil": 8, "final_fil": 8, "file_dir": 8, "base": 8, "overwritten": 8, "obtain": 8}, "objects": {"": [[2, 0, 0, "-", "ImageMetaTag"]], "ImageMetaTag": [[0, 1, 1, "", "ImageDict"], [0, 3, 1, "", "check_for_required_keys"], [1, 0, 0, "-", "db"], [0, 3, 1, "", "dict_heirachy_from_list"], [0, 3, 1, "", "dict_split"], [3, 3, 1, "", "image_file_postproc"], [0, 0, 0, "-", "img_dict"], [0, 3, 1, "", "readmeta_from_image"], [3, 3, 1, "", "savefig"], [0, 3, 1, "", "simple_dict_filter"], [8, 0, 0, "-", "webpage"]], "ImageMetaTag.ImageDict": [[0, 2, 1, "", "append"], [0, 2, 1, "", "copy_except_dict_and_keys"], [0, 2, 1, "", "dict_depth"], [0, 2, 1, "", "dict_depths"], [0, 2, 1, "", "dict_index_array"], [0, 2, 1, "", "dict_print"], [0, 2, 1, "", "dict_prune"], [0, 2, 1, "", "dict_remove"], [0, 2, 1, "", "dict_union"], [0, 2, 1, "", "flatten_lists"], [0, 2, 1, "", "key_at_depth"], [0, 2, 1, "", "keys_by_depth"], [0, 2, 1, "", "list_keys_by_depth"], [0, 2, 1, "", "mergedicts"], [0, 2, 1, "", "remove"], [0, 2, 1, "", "return_from_list"], [0, 2, 1, "", "return_key_inds"], [0, 2, 1, "", "sort_keys"]], "ImageMetaTag.db": [[1, 3, 1, "", "db_name_to_info_key"], [1, 3, 1, "", "del_plots_from_dbfile"], [1, 3, 1, "", "info_key_to_db_name"], [1, 3, 1, "", "merge_db_files"], [1, 3, 1, "", "open_db_file"], [1, 3, 1, "", "open_or_create_db_file"], [1, 3, 1, "", "process_select_star_from"], [1, 3, 1, "", "read"], [1, 3, 1, "", "read_db_file_to_mem"], [1, 3, 1, "", "read_img_info_from_dbcursor"], [1, 3, 1, "", "recrete_table_new_cols"], [1, 3, 1, "", "scan_dir_for_db"], [1, 3, 1, "", "select_dbcr_by_tags"], [1, 3, 1, "", "select_dbfile_by_tags"], [1, 3, 1, "", "write_img_to_dbfile"], [1, 3, 1, "", "write_img_to_open_db"]], "ImageMetaTag.webpage": [[8, 3, 1, "", "copy_required_javascript"], [8, 3, 1, "", "write_full_page"], [8, 3, 1, "", "write_js_placeholders"], [8, 3, 1, "", "write_js_to_header"], [8, 3, 1, "", "write_json"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"imagemetatag": [0, 1, 2, 3, 4, 5, 6, 8], "imagedict": 0, "The": [0, 3], "class": 0, "function": [0, 1, 3], "us": [0, 1], "prepar": 0, "db": 1, "commonli": 1, "open": 1, "creat": 1, "file": [1, 3], "work": 1, "databas": 1, "intern": 1, "util": 1, "imag": 2, "metadata": 2, "tag": 2, "present": 2, "indic": 2, "tabl": 2, "savefig": 3, "wrapper": 3, "recommend": 3, "structur": 3, "other": 3, "associ": 4, "script": 4, "packag": 4, "rm_imt_imag": 4, "simplest_img_dict": 5, "py": [5, 6], "test": 6, "version": 7, "python": 7, "webpag": 8, "write": 8, "whole": 8, "page": 8, "As": 8, "indidividu": 8, "compon": 8}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"ImageMetaTag.ImageDict": [[0, "module-ImageMetaTag.img_dict"]], "The ImageDict Class": [[0, "the-imagedict-class"]], "Functions useful in preparing ImageDicts": [[0, "functions-useful-in-preparing-imagedicts"]], "ImageMetaTag.db": [[1, "module-ImageMetaTag.db"]], "Commonly used functions": [[1, "commonly-used-functions"]], "Functions for opening/creating db files": [[1, "functions-for-opening-creating-db-files"]], "Functions for working with open databases": [[1, "functions-for-working-with-open-databases"]], "Internal functions": [[1, "internal-functions"]], "Utility functions": [[1, "utility-functions"]], "ImageMetaTag - Image metadata tagging and presentation": [[2, "module-ImageMetaTag"]], "Indices and tables": [[2, "indices-and-tables"]], "ImageMetaTag.savefig": [[3, "imagemetatag-savefig"]], "The savefig wrapper": [[3, "the-savefig-wrapper"]], "Recommended file structure": [[3, "recommended-file-structure"]], "Other functions": [[3, "other-functions"]], "Associated scripts packaged with ImageMetaTag": [[4, "associated-scripts-packaged-with-imagemetatag"]], "rm_imt_images": [[4, "rm-imt-images"]], "ImageMetaTag - simplest_img_dict.py": [[5, "imagemetatag-simplest-img-dict-py"]], "ImageMetaTag - test.py": [[6, "imagemetatag-test-py"]], "Versions of Python": [[7, "versions-of-python"]], "ImageMetaTag.webpage": [[8, "module-ImageMetaTag.webpage"]], "Writing a whole page": [[8, "writing-a-whole-page"]], "As indidividual components": [[8, "as-indidividual-components"]]}, "indexentries": {"imagedict (class in imagemetatag)": [[0, "ImageMetaTag.ImageDict"]], "imagemetatag.img_dict": [[0, "module-ImageMetaTag.img_dict"]], "append() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.append"]], "check_for_required_keys() (in module imagemetatag)": [[0, "ImageMetaTag.check_for_required_keys"]], "copy_except_dict_and_keys() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.copy_except_dict_and_keys"]], "dict_depth() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_depth"]], "dict_depths() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_depths"]], "dict_heirachy_from_list() (in module imagemetatag)": [[0, "ImageMetaTag.dict_heirachy_from_list"]], "dict_index_array() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_index_array"]], "dict_print() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_print"]], "dict_prune() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_prune"]], "dict_remove() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_remove"]], "dict_split() (in module imagemetatag)": [[0, "ImageMetaTag.dict_split"]], "dict_union() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_union"]], "flatten_lists() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.flatten_lists"]], "key_at_depth() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.key_at_depth"]], "keys_by_depth() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.keys_by_depth"]], "list_keys_by_depth() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.list_keys_by_depth"]], "mergedicts() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.mergedicts"]], "module": [[0, "module-ImageMetaTag.img_dict"], [1, "module-ImageMetaTag.db"], [2, "module-ImageMetaTag"], [8, "module-ImageMetaTag.webpage"]], "readmeta_from_image() (in module imagemetatag)": [[0, "ImageMetaTag.readmeta_from_image"]], "remove() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.remove"]], "return_from_list() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.return_from_list"]], "return_key_inds() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.return_key_inds"]], "simple_dict_filter() (in module imagemetatag)": [[0, "ImageMetaTag.simple_dict_filter"]], "sort_keys() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.sort_keys"]], "imagemetatag.db": [[1, "module-ImageMetaTag.db"]], "db_name_to_info_key() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.db_name_to_info_key"]], "del_plots_from_dbfile() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.del_plots_from_dbfile"]], "info_key_to_db_name() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.info_key_to_db_name"]], "merge_db_files() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.merge_db_files"]], "open_db_file() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.open_db_file"]], "open_or_create_db_file() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.open_or_create_db_file"]], "process_select_star_from() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.process_select_star_from"]], "read() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.read"]], "read_db_file_to_mem() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.read_db_file_to_mem"]], "read_img_info_from_dbcursor() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.read_img_info_from_dbcursor"]], "recrete_table_new_cols() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.recrete_table_new_cols"]], "scan_dir_for_db() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.scan_dir_for_db"]], "select_dbcr_by_tags() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.select_dbcr_by_tags"]], "select_dbfile_by_tags() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.select_dbfile_by_tags"]], "write_img_to_dbfile() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.write_img_to_dbfile"]], "write_img_to_open_db() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.write_img_to_open_db"]], "imagemetatag": [[2, "module-ImageMetaTag"]], "image_file_postproc() (in module imagemetatag)": [[3, "ImageMetaTag.image_file_postproc"]], "savefig() (in module imagemetatag)": [[3, "ImageMetaTag.savefig"]], "imagemetatag.webpage": [[8, "module-ImageMetaTag.webpage"]], "copy_required_javascript() (in module imagemetatag.webpage)": [[8, "ImageMetaTag.webpage.copy_required_javascript"]], "write_full_page() (in module imagemetatag.webpage)": [[8, "ImageMetaTag.webpage.write_full_page"]], "write_js_placeholders() (in module imagemetatag.webpage)": [[8, "ImageMetaTag.webpage.write_js_placeholders"]], "write_js_to_header() (in module imagemetatag.webpage)": [[8, "ImageMetaTag.webpage.write_js_to_header"]], "write_json() (in module imagemetatag.webpage)": [[8, "ImageMetaTag.webpage.write_json"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["ImageDict", "db", "index", "savefig", "scripts", "simple", "test", "versions", "webpage"], "filenames": ["ImageDict.rst", "db.rst", "index.rst", "savefig.rst", "scripts.rst", "simple.rst", "test.rst", "versions.rst", "webpage.rst"], "titles": ["ImageMetaTag.ImageDict", "ImageMetaTag.db", "ImageMetaTag - Image metadata tagging and presentation", "ImageMetaTag.savefig", "Associated scripts packaged with ImageMetaTag", "ImageMetaTag - simplest_img_dict.py", "ImageMetaTag - test.py", "Versions of Python", "ImageMetaTag.webpage"], "terms": {"thi": [0, 1, 3, 4, 5, 6, 8], "submodul": 0, "contain": [0, 1, 3, 8], "instanc": [0, 1, 8], "purpos": [0, 3], "an": [0, 1, 2, 3, 4, 5, 8], "i": [0, 1, 2, 3, 4, 5, 6, 8], "sort": [0, 5, 8], "imag": [0, 1, 3, 4, 5, 6, 8], "metadata": [0, 1, 3, 5, 6, 8], "suppli": [0, 1, 3, 5, 8], "savefig": [0, 1, 2], "usual": [0, 1, 3], "store": [0, 1, 3], "databas": [0, 2, 3, 4, 5], "file": [0, 2, 4, 5, 8], "form": 0, "can": [0, 1, 2, 3, 5, 6, 8], "quickli": [0, 3], "easili": [0, 2], "present": [0, 1, 3, 5, 6, 8], "webpag": [0, 2, 5, 6], "write_full_pag": [0, 5, 8], "easi": [0, 8], "exampl": [0, 4, 6, 8], "creat": [0, 2, 3, 6, 8], "shown": [0, 8], "simplest_image_dict": [0, 8], "py": [0, 2, 8], "c": [0, 1, 2, 8], "crown": [0, 1, 2, 8], "copyright": [0, 1, 2, 8], "met": [0, 1, 2, 8], "offic": [0, 1, 2, 8], "all": [0, 1, 2, 3, 4, 8], "right": [0, 1, 2, 3, 8], "reserv": [0, 1, 2, 8], "releas": [0, 1, 2, 8], "under": [0, 1, 2, 8], "bsd": [0, 1, 2, 8], "3": [0, 1, 2, 3, 7, 8], "claus": [0, 1, 2, 8], "licens": [0, 1, 2, 8], "see": [0, 1, 2, 3, 5, 8], "more": [0, 1, 2, 8], "detail": [0, 1, 2, 8], "input_dict": 0, "level_nam": [0, 8], "none": [0, 1, 3, 5, 8], "selector_width": 0, "selector_anim": 0, "animation_direct": 0, "sourc": [0, 1, 2, 3, 8], "A": [0, 1, 3, 4, 6, 8], "which": [0, 1, 2, 3, 6, 8], "hold": 0, "heirach": [0, 2], "dictionari": [0, 1, 2, 3, 5, 8], "associ": [0, 1, 2], "method": [0, 3], "append": [0, 5, 8], "remov": [0, 1], "from": [0, 1, 3, 4, 5, 8], "expect": [0, 1, 3, 5], "case": [0, 1, 5, 8], "repres": 0, "larg": [0, 1, 2, 3, 6, 8], "set": [0, 1, 3, 5, 6, 8], "organis": 0, "tag": [0, 1, 3, 5], "when": [0, 1, 3, 8], "wai": [0, 4, 5], "modul": [0, 1, 2, 3, 6, 7, 8], "produc": [0, 1, 2, 3, 5, 6, 8], "web": [0, 2, 3, 4, 5, 6], "page": [0, 2, 3, 4, 5, 6], "brows": [0, 6, 8], "should": [0, 1, 3, 4, 6, 8], "requir": [0, 1, 5, 8], "order": [0, 3, 5, 8], "In": [0, 1, 3, 5, 8], "convert": [0, 1], "flat": 0, "item": [0, 1, 3], "dict_heirachy_from_list": [0, 5], "option": [0, 1, 2, 3, 4, 8], "list": [0, 1, 3, 5, 8], "tagnam": [0, 1], "full": [0, 8], "give": 0, "name": [0, 1, 3, 8], "descript": [0, 8], "what": [0, 5], "mean": 0, "level": [0, 3, 5, 8], "input": [0, 1, 3, 8], "dict": [0, 1, 6, 8], "html": [0, 5, 6, 8], "string": [0, 1, 3, 8], "width": [0, 3], "each": [0, 3, 5, 8], "selector": [0, 8], "output": [0, 1, 3, 4, 8], "current": [0, 1, 3, 8], "unus": 0, "integ": [0, 1, 3], "index": [0, 2, 8], "anim": [0, 8], "animation_dicrect": 0, "1": [0, 3], "indic": [0, 8], "move": [0, 8], "forward": 0, "backward": 0, "object": [0, 2, 6, 8], "structur": [0, 1, 2, 8], "kei": [0, 1, 5], "within": [0, 1, 3, 8], "number": [0, 1, 2, 3, 4, 5, 6], "direct": 0, "desir": [0, 3], "new_dict": 0, "devmod": 0, "fals": [0, 1, 3, 8], "skip_key_relist": 0, "new": [0, 1, 3], "singl": [0, 3, 8], "element": [0, 8], "layer": 0, "true": [0, 1, 3, 8], "stop": 0, "regener": 0, "speed": [0, 3, 4], "up": [0, 1, 3, 8], "multipl": [0, 3, 4, 6], "copy_except_dict_and_kei": 0, "return": [0, 1, 5, 8], "copi": [0, 1, 8], "except": [0, 3], "have": [0, 1, 2, 3, 5, 6, 8], "null": 0, "valu": [0, 1, 3, 5, 8], "dict_depth": [0, 8], "uniform_depth": 0, "get": [0, 4], "depth": [0, 8], "branch": 0, "plot_dict": 0, "check": 0, "thei": [0, 1, 3, 5, 8], "equal": 0, "max": 0, "in_dict": 0, "0": [0, 3, 5, 8], "recurs": 0, "find": 0, "dict_index_arrai": 0, "maxdepth": 0, "verbos": [0, 1, 3, 4, 8], "refer": [0, 1], "result": [0, 3, 6], "maximum": [0, 3], "go": [0, 1, 5, 8], "ie": 0, "dict_print": 0, "indent": [0, 8], "outstr": 0, "dict_prun": 0, "dicts_prun": 0, "prune": 0, "empti": [0, 1, 5, 6], "untermin": 0, "occur": 0, "after": [0, 1, 3, 8], "part": [0, 4, 6], "been": [0, 1, 2, 3, 4, 6, 7], "wa": [0, 1, 6], "dict_remov": 0, "rm_dict": 0, "anoth": 0, "larger": [0, 8], "one": [0, 1, 4, 8], "leav": 0, "so": [0, 1, 3, 4, 5, 8], "need": [0, 1, 3, 5, 8], "clean": [0, 1], "afterward": [0, 1], "dict_union": 0, "union": 0, "flatten_list": 0, "in_list": 0, "flatten": 0, "key_at_depth": 0, "given": [0, 1, 2, 3, 8], "keys_by_depth": 0, "subdir": [0, 4], "subdirectori": [0, 1, 3, 4], "target": [0, 8], "list_keys_by_depth": 0, "its": [0, 5], "It": [0, 1, 3, 6], "much": [0, 1, 3, 5], "faster": [0, 1], "without": [0, 1, 3, 6], "call": 0, "onc": [0, 1, 2, 3, 4, 6], "end": 0, "process": [0, 1, 2, 3, 6], "complet": [0, 5, 8], "work": [0, 2, 3], "where": [0, 1, 3, 6, 8], "also": [0, 1, 2, 3, 6, 8], "uniqu": [0, 1], "locat": [0, 1, 3, 5, 8], "mergedict": 0, "dict1": 0, "dict2": 0, "altern": 0, "version": [0, 1, 2, 5], "gener": 0, "": [0, 3, 5], "mergdict": 0, "tip": 0, "becaus": [0, 1], "section": [0, 8], "slow": [0, 1, 3], "often": 0, "build": [0, 1], "thing": [0, 5], "you": [0, 1, 3], "want": [0, 5], "do": [0, 1, 3, 4], "return_from_list": 0, "vals_at_depth": 0, "differ": [0, 1, 8], "assum": [0, 1], "ha": [0, 1, 3, 4, 7], "date": 0, "last": [0, 8], "time": [0, 1, 4, 6], "sinc": 0, "return_key_ind": 0, "out_arrai": 0, "this_set_of_ind": 0, "doe": [0, 1, 3, 6, 8], "ad": [0, 1, 3, 8], "compelt": 0, "sort_kei": [0, 5], "sort_method": [0, 5], "plot": [0, 1, 5, 6], "accord": [0, 1, 5], "particular": 0, "match": [0, 1], "valid": [0, 8], "far": 0, "ar": [0, 1, 2, 3, 4, 5, 6, 8], "mostli": 0, "focus": 0, "meteorolog": 0, "term": 0, "includ": [0, 1, 2, 3, 6, 8], "just": [0, 1, 5, 8], "ordinari": 0, "numer": [0, 5], "start": [0, 1, 3], "surfac": 0, "upward": 0, "special": 0, "like": 0, "cross": 0, "etc": [0, 3, 5], "t": [0, 1], "ascend": 0, "similar": [0, 4, 8], "specif": [0, 1], "per": 0, "while": [0, 5, 8], "rest": 0, "activ": 0, "revers": 0, "reverse_sort": [0, 5], "reverse_numer": [0, 5], "readmeta_from_imag": 0, "img_fil": [0, 5], "img_format": [0, 3], "keep_reserved_tag": 0, "read": [0, 1, 2, 5, 8], "tag_nam": [0, 1, 3], "pair": [0, 1, 3], "By": [0, 3, 8], "default": [0, 1, 3, 8], "cannot": 0, "written": [0, 1, 6, 8], "e": [0, 3], "g": [0, 3], "dpi": [0, 3], "chromat": 0, "keep": [0, 1, 3, 5], "payload": [0, 1, 8], "heirachi": [0, 5], "onli": [0, 1, 3, 6, 8], "final": 0, "describ": [0, 6], "would": [0, 4, 5, 8], "rel": [0, 1, 3, 8], "path": [0, 1, 3, 4, 8], "dict_split": 0, "n_split": 0, "size_split": 0, "extra_opt": 0, "break": 0, "yield": 0, "sub": [0, 8], "chunk": [0, 8], "size": [0, 3, 8], "split": [0, 8], "first": [0, 8], "veri": [0, 1, 6, 8], "parallelis": [0, 6], "If": [0, 1, 3, 8], "iter": 0, "routin": [0, 1, 5], "tupl": [0, 3, 8], "One": 0, "n_slpit": 0, "must": [0, 1], "specifi": [0, 3, 8], "simple_dict_filt": 0, "simple_dict": 0, "test": [0, 1, 2, 5, 7], "raise_key_mismatch": 0, "content": [0, 1, 2, 4, 5, 8], "simpl": [0, 5, 6], "un": 0, "properti": 0, "against": 0, "roll": [0, 5], "6": [0, 1, 3, 7], "simul": 0, "216": 0, "1296": 0, "color": [0, 5], "compress": [0, 3, 5, 8], "type": [0, 5, 8], "histogram": 0, "line": [0, 3, 8], "trim": [0, 3, 5], "here": [0, 3, 6], "restrict": 0, "filter": [0, 1, 3], "second": [0, 1, 3, 8], "both": [0, 1, 3], "togeth": [0, 8], "other": [0, 1, 2, 8], "characterist": 0, "attempt": [0, 1, 3], "miss": [0, 1, 8], "rais": [0, 3], "three": 0, "logic": [0, 1], "whether": 0, "pass": [0, 1, 3, 8], "group": [0, 3, 8], "third": 0, "check_for_required_kei": 0, "img_info": [0, 1, 5], "req_kei": 0, "accordingli": 0, "write": [1, 2, 3, 5, 6], "maintain": [1, 3], "sqlite3": 1, "normal": 1, "usag": [1, 4], "primarili": 1, "figur": [1, 3], "save": [1, 3], "built": [1, 2], "load": [1, 5, 8], "For": [1, 8], "most": 1, "follow": [1, 3, 7, 8], "provid": [1, 3], "write_img_to_dbfil": [1, 3], "db_file": [1, 3], "img_filenam": 1, "add_strict": 1, "attempt_replac": 1, "timeout": [1, 3], "argument": [1, 3], "exist": [1, 3], "filenam": [1, 3, 8], "appli": [1, 3], "either": [1, 3, 8], "absolut": 1, "make": [1, 5, 8], "ani": [1, 3, 4, 5, 8], "write_img_to_open_db": 1, "try": [1, 8], "required_tag": [1, 5], "tag_str": [1, 5], "db_timeout": [1, 3], "db_attempt": [1, 3], "20": [1, 3], "n_sampl": 1, "fail": 1, "popul": 1, "entri": [1, 4], "random": [1, 6], "imagedict": [1, 2, 3, 5, 6, 8], "class": [1, 2, 3, 8], "duplic": 1, "ineffici": 1, "memori": [1, 3, 5, 8], "reduc": [1, 2, 4, 8], "consider": 1, "itself": 1, "Will": 1, "problem": 1, "older": 1, "read_img_info_from_dbfil": 1, "still": [1, 3], "del_plots_from_dbfil": 1, "do_vacuum": 1, "allow_retri": 1, "skip_warn": 1, "delet": [1, 4], "restructur": 1, "retri": 1, "allow": 1, "lock": 1, "sleep": 1, "command": [1, 6], "avoid": [1, 3], "overid": 1, "warn": 1, "request": 1, "select_dbfile_by_tag": 1, "select_tag": 1, "select": [1, 8], "field": 1, "accept": 1, "process_select_star_from": 1, "merge_db_fil": 1, "main_db_fil": 1, "add_db_fil": 1, "delete_add_db": 1, "delete_added_entri": 1, "merg": 1, "two": 1, "The": [1, 2, 6, 7, 8], "same": [1, 3, 5, 6], "them": [1, 5, 6], "were": 1, "parallel": [1, 5], "ignor": 1, "open_or_create_db_fil": 1, "restart_db": 1, "initi": [1, 8], "tabl": 1, "connect": 1, "cursor": 1, "truem": 1, "again": 1, "alreadi": [1, 3], "dbcn": 1, "dbcr": 1, "open_db_fil": 1, "read_db_file_to_mem": 1, "pre": [1, 3], "held": [1, 8], "access": [1, 3, 6], "extenst": 1, "lot": [1, 5], "oper": [1, 4], "There": 1, "cost": 1, "take": 1, "few": [1, 2], "worth": 1, "ish": 1, "250k": 1, "row": 1, "suggest": 1, "100": 1, "add": [1, 2, 3], "report": [1, 3], "valueerror": [1, 3], "aren": 1, "defin": [1, 3, 5, 8], "caus": [1, 3], "rewritten": [1, 3], "column": [1, 3], "recrete_table_new_col": 1, "best": [1, 3, 5], "instead": [1, 3, 4, 6], "ideal": [1, 3], "replac": [1, 3, 8], "otherwis": 1, "read_img_info_from_dbcursor": 1, "select_dbcr_by_tag": 1, "current_col": 1, "new_col": 1, "bdcr": 1, "recreat": [1, 4], "major": 1, "chang": [1, 3], "place": 1, "deliber": [1, 6], "commit": 1, "statement": 1, "seen": 1, "intermedi": 1, "incorrect": 1, "possibl": [1, 3, 5], "db_name_to_info_kei": 1, "in_str": 1, "invers": 1, "info_key_to_db_nam": 1, "consist": [1, 4, 5], "db_content": 1, "standard": [1, 3], "format": [1, 2, 3, 5], "identifi": 1, "mai": [1, 8], "occas": 1, "nopt": 1, "intend": 1, "regular": 1, "scan_dir_for_db": 1, "basedir": 1, "img_tag_req": 1, "subdir_excl_list": 1, "known_file_tag": 1, "no_file_ext": 1, "return_tim": 1, "scan": 1, "directori": [1, 3, 5, 6, 8], "disk": [1, 4], "did": 1, "previous": 1, "optim": [1, 4], "perform": 1, "accid": 1, "unless": [1, 2, 3, 8], "behaviour": 1, "least": 1, "imt_tag_req": 1, "those": [1, 5], "don": 1, "thumbnail": [1, 3], "prevent": 1, "being": [1, 3, 8], "exclud": 1, "extens": [1, 3, 8], "known": 1, "themselv": [1, 3], "old": 1, "backup": 1, "updat": 1, "restart": 1, "python": [2, 6], "packag": 2, "around": [2, 3], "wrapper": 2, "matplotlib": [2, 3], "support": [2, 3], "us": [2, 3, 4, 5, 6, 8], "manag": 2, "sql": 2, "As": [2, 6], "involv": 2, "librari": [2, 4, 8], "common": [2, 4], "post": [2, 3], "crop": 2, "logo": [2, 3], "addit": [2, 8], "colour": [2, 3], "palett": [2, 3], "manipul": [2, 3, 4, 8], "files": [2, 3], "code": [2, 5, 6], "explicitli": 2, "state": 2, "british": 2, "2015": 2, "2023": 2, "licenc": 2, "github": [2, 5, 8], "png": [2, 3, 4], "recommend": 2, "function": [2, 5, 6, 8], "db": [2, 3, 4, 5], "commonli": 2, "open": [2, 8], "intern": 2, "util": [2, 4], "prepar": [2, 4], "whole": 2, "indidividu": 2, "compon": 2, "simplest_img_dict": 2, "script": [2, 6, 8], "rm_imt_imag": 2, "search": 2, "usaulli": 3, "iteself": 3, "fig": 3, "img_tag": [3, 5], "img_convert": 3, "do_trim": 3, "trim_bord": 3, "do_thumb": 3, "keep_open": 3, "logo_fil": 3, "logo_width": 3, "logo_height": 3, "logo_pad": 3, "logo_po": 3, "db_replac": 3, "db_add_strict": 3, "db_full_path": 3, "pyplot": 3, "optimis": 3, "depend": [3, 8], "image_file_postproc": 3, "guess": 3, "convers": 3, "system": [3, 4], "reader": 3, "writer": 3, "gamma": 3, "interlac": 3, "transpar": 3, "express": 3, "link": [3, 8], "whose": 3, "resolut": 3, "close": 3, "switch": [3, 8], "befor": [3, 8], "easiest": 3, "quickest": 3, "manner": 3, "advis": 3, "along": [3, 8], "top": [3, 5, 8], "serv": 3, "server": 3, "home": [3, 6], "public_html": [3, 6], "public": [3, 6], "elsewher": 3, "due": 3, "storag": 3, "limit": 3, "symbol": 3, "databs": [3, 5], "correct": 3, "complex": 3, "could": [3, 8], "outfil": 3, "img_buf": 3, "img_dpi": 3, "overwrit": 3, "buffer": 3, "avail": [3, 8], "horizont": [3, 8], "vertic": 3, "eg": 3, "72": 3, "control": 3, "light": 3, "rgba": 3, "rgb": 3, "2": [3, 7, 8], "moder": [3, 6], "adapt": 3, "256": 3, "heavi": 3, "8": [3, 7], "bit": 3, "whitespac": 3, "edg": 3, "pixel": 3, "border": [3, 5], "left": 3, "resiz": 3, "antialias": 3, "well": 3, "shrink": 3, "text": [3, 5, 8], "smaller": 3, "aspect": 3, "ratio": 3, "alwai": [3, 8], "overrid": 3, "height": 3, "40": 3, "pad": 3, "zero": 3, "corner": 3, "legend": 3, "context": 3, "upper": 3, "grow": 3, "fit": 3, "lower": 3, "4": 3, "small": [4, 8], "pacakg": 4, "alongsid": [4, 8], "interfac": 4, "task": 4, "imt": [4, 5], "basic": [4, 6], "file2": 4, "file1": 4, "wildcard": 4, "v": 4, "f": 4, "forc": 4, "rm": 4, "note": 4, "design": 4, "slower": 4, "than": [4, 8], "risk": 4, "out": [4, 8], "sync": 4, "aim": 5, "show": [5, 8], "simplest": 5, "practic": 5, "moduleauthor": 5, "melissa": 5, "brook": 5, "http": [5, 6, 8], "com": [5, 8], "melissaebrook": 5, "minim": 5, "import": [5, 6], "datetim": 5, "we": [5, 8], "coupl": 5, "get_webdir": 5, "define_imt_db": 5, "date_format_www": 5, "def": 5, "__main__": 5, "real": 5, "applic": 5, "own": 5, "sure": 5, "webdir": 5, "imt_db": 5, "how": [5, 6], "now": [5, 8], "img_list": 5, "images_and_tag": 5, "construct": [5, 8], "therefor": 5, "effici": 5, "print": 5, "assembl": 5, "img_dict": [5, 8], "iteritem": 5, "temporari": [5, 8], "tmp_dict": 5, "turn": 5, "els": 5, "page_filenam": [5, 8], "titl": [5, 8], "page_titl": 5, "wegbpag": 5, "webpage_preambl": 5, "h3": 5, "some": 5, "bottom": [5, 8], "webpage_postambl": 5, "strftime": 5, "preambl": [5, 8], "postambl": [5, 8], "sign": 5, "off": 5, "__path__": 5, "__name__": 5, "main": 6, "act": 6, "demonstr": 6, "action": 6, "data": [6, 8], "run": 6, "imagemetatagtest": 6, "view": [6, 8], "gw": 6, "ceda": 6, "ac": 6, "uk": 6, "mo_forecast": 6, "page_para": 6, "page_multi": 6, "re": 6, "skip": 6, "scalabl": 6, "wepag": [6, 8], "9": [6, 7], "factori": 6, "362880": 6, "member": 6, "mimic": 6, "actual": [6, 8], "biggus_pageu": 6, "big": 6, "imagemetatag": 7, "7": 7, "5": 7, "12": 7, "16": 7, "13": 7, "10": 7, "made": 8, "short": 8, "javascript": 8, "j": 8, "json": 8, "tree": 8, "strcutur": 8, "To": 8, "zlib": 8, "pako": 8, "restor": 8, "browser": 8, "done": 8, "templat": 8, "latter": 8, "write_js_to_head": 8, "inform": 8, "header": 8, "write_js_placehold": 8, "placehold": 8, "write_json": 8, "dump": 8, "copy_required_js_css_etc": 8, "At": 8, "style": 8, "dropdownmenu": 8, "hopefulli": 8, "soon": 8, "filepath": 8, "tab_s_nam": 8, "postamble_no_imt_link": 8, "initial_selector": 8, "show_selector_nam": 8, "show_singleton_selector": 8, "optgroup": 8, "url_typ": 8, "int": 8, "only_show_rel_url": 8, "horiz": 8, "dropdown": 8, "write_intmed_tmpfil": 8, "keyword": 8, "css": 8, "load_err_msg": 8, "last_img_in_list_is_slid": 8, "rather": 8, "appropri": 8, "messag": 8, "sai": 8, "abl": 8, "menu": 8, "denot": 8, "frame": 8, "bodi": 8, "quit": 8, "postabl": 8, "document": 8, "write_js_setup": 8, "displai": 8, "full_name_map": 8, "readabl": 8, "determin": 8, "url": 8, "str": 8, "stdout": 8, "inflat": 8, "nodeca": 8, "amount": 8, "pleas": 8, "wait": 8, "crash": 8, "internet": 8, "explor": 8, "correctli": 8, "firefox": 8, "chrome": 8, "overlai": 8, "slider": 8, "upon": 8, "file_obj": 8, "json_fil": 8, "js_css_file": 8, "pagenam": 8, "tabnam": 8, "selector_prefix": 8, "url_separ": 8, "ind": 8, "config": 8, "These": 8, "imt_optgroup_ord": 8, "opgroup": 8, "taken": 8, "represent": 8, "js_file": 8, "prefix": 8, "sel": 8, "metadata7": 8, "animated_level": 8, "dict_dept": 8, "variabl": 8, "visibl": 8, "peopl": 8, "futur": 8, "great": 8, "length": 8, "label": 8, "button": 8, "file_name_no_ext": 8, "chunk_char_limit": 8, "10000000": 8, "strucutur": 8, "compres": 8, "effic": 8, "tempfil": 8, "final_fil": 8}, "objects": {"": [[2, 0, 0, "-", "ImageMetaTag"]], "ImageMetaTag": [[0, 1, 1, "", "ImageDict"], [0, 3, 1, "", "check_for_required_keys"], [1, 0, 0, "-", "db"], [0, 3, 1, "", "dict_heirachy_from_list"], [0, 3, 1, "", "dict_split"], [3, 3, 1, "", "image_file_postproc"], [0, 0, 0, "-", "img_dict"], [0, 3, 1, "", "readmeta_from_image"], [3, 3, 1, "", "savefig"], [0, 3, 1, "", "simple_dict_filter"], [8, 0, 0, "-", "webpage"]], "ImageMetaTag.ImageDict": [[0, 2, 1, "", "append"], [0, 2, 1, "", "copy_except_dict_and_keys"], [0, 2, 1, "", "dict_depth"], [0, 2, 1, "", "dict_depths"], [0, 2, 1, "", "dict_index_array"], [0, 2, 1, "", "dict_print"], [0, 2, 1, "", "dict_prune"], [0, 2, 1, "", "dict_remove"], [0, 2, 1, "", "dict_union"], [0, 2, 1, "", "flatten_lists"], [0, 2, 1, "", "key_at_depth"], [0, 2, 1, "", "keys_by_depth"], [0, 2, 1, "", "list_keys_by_depth"], [0, 2, 1, "", "mergedicts"], [0, 2, 1, "", "remove"], [0, 2, 1, "", "return_from_list"], [0, 2, 1, "", "return_key_inds"], [0, 2, 1, "", "sort_keys"]], "ImageMetaTag.db": [[1, 3, 1, "", "db_name_to_info_key"], [1, 3, 1, "", "del_plots_from_dbfile"], [1, 3, 1, "", "info_key_to_db_name"], [1, 3, 1, "", "merge_db_files"], [1, 3, 1, "", "open_db_file"], [1, 3, 1, "", "open_or_create_db_file"], [1, 3, 1, "", "process_select_star_from"], [1, 3, 1, "", "read"], [1, 3, 1, "", "read_db_file_to_mem"], [1, 3, 1, "", "read_img_info_from_dbcursor"], [1, 3, 1, "", "recrete_table_new_cols"], [1, 3, 1, "", "scan_dir_for_db"], [1, 3, 1, "", "select_dbcr_by_tags"], [1, 3, 1, "", "select_dbfile_by_tags"], [1, 3, 1, "", "write_img_to_dbfile"], [1, 3, 1, "", "write_img_to_open_db"]], "ImageMetaTag.webpage": [[8, 3, 1, "", "write_full_page"], [8, 3, 1, "", "write_js_placeholders"], [8, 3, 1, "", "write_js_to_header"], [8, 3, 1, "", "write_json"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"imagemetatag": [0, 1, 2, 3, 4, 5, 6, 8], "imagedict": 0, "The": [0, 3], "class": 0, "function": [0, 1, 3], "us": [0, 1], "prepar": 0, "db": 1, "commonli": 1, "open": 1, "creat": 1, "file": [1, 3], "work": 1, "databas": 1, "intern": 1, "util": 1, "imag": 2, "metadata": 2, "tag": 2, "present": 2, "indic": 2, "tabl": 2, "savefig": 3, "wrapper": 3, "recommend": 3, "structur": 3, "other": 3, "associ": 4, "script": 4, "packag": 4, "rm_imt_imag": 4, "simplest_img_dict": 5, "py": [5, 6], "test": 6, "version": 7, "python": 7, "webpag": 8, "write": 8, "whole": 8, "page": 8, "As": 8, "indidividu": 8, "compon": 8}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"ImageMetaTag.ImageDict": [[0, "module-ImageMetaTag.img_dict"]], "The ImageDict Class": [[0, "the-imagedict-class"]], "Functions useful in preparing ImageDicts": [[0, "functions-useful-in-preparing-imagedicts"]], "ImageMetaTag.db": [[1, "module-ImageMetaTag.db"]], "Commonly used functions": [[1, "commonly-used-functions"]], "Functions for opening/creating db files": [[1, "functions-for-opening-creating-db-files"]], "Functions for working with open databases": [[1, "functions-for-working-with-open-databases"]], "Internal functions": [[1, "internal-functions"]], "Utility functions": [[1, "utility-functions"]], "ImageMetaTag - Image metadata tagging and presentation": [[2, "module-ImageMetaTag"]], "Indices and tables": [[2, "indices-and-tables"]], "ImageMetaTag.savefig": [[3, "imagemetatag-savefig"]], "The savefig wrapper": [[3, "the-savefig-wrapper"]], "Recommended file structure": [[3, "recommended-file-structure"]], "Other functions": [[3, "other-functions"]], "Associated scripts packaged with ImageMetaTag": [[4, "associated-scripts-packaged-with-imagemetatag"]], "rm_imt_images": [[4, "rm-imt-images"]], "ImageMetaTag - simplest_img_dict.py": [[5, "imagemetatag-simplest-img-dict-py"]], "ImageMetaTag - test.py": [[6, "imagemetatag-test-py"]], "Versions of Python": [[7, "versions-of-python"]], "ImageMetaTag.webpage": [[8, "module-ImageMetaTag.webpage"]], "Writing a whole page": [[8, "writing-a-whole-page"]], "As indidividual components": [[8, "as-indidividual-components"]]}, "indexentries": {"imagedict (class in imagemetatag)": [[0, "ImageMetaTag.ImageDict"]], "imagemetatag.img_dict": [[0, "module-ImageMetaTag.img_dict"]], "append() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.append"]], "check_for_required_keys() (in module imagemetatag)": [[0, "ImageMetaTag.check_for_required_keys"]], "copy_except_dict_and_keys() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.copy_except_dict_and_keys"]], "dict_depth() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_depth"]], "dict_depths() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_depths"]], "dict_heirachy_from_list() (in module imagemetatag)": [[0, "ImageMetaTag.dict_heirachy_from_list"]], "dict_index_array() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_index_array"]], "dict_print() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_print"]], "dict_prune() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_prune"]], "dict_remove() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_remove"]], "dict_split() (in module imagemetatag)": [[0, "ImageMetaTag.dict_split"]], "dict_union() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.dict_union"]], "flatten_lists() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.flatten_lists"]], "key_at_depth() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.key_at_depth"]], "keys_by_depth() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.keys_by_depth"]], "list_keys_by_depth() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.list_keys_by_depth"]], "mergedicts() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.mergedicts"]], "module": [[0, "module-ImageMetaTag.img_dict"], [1, "module-ImageMetaTag.db"], [2, "module-ImageMetaTag"], [8, "module-ImageMetaTag.webpage"]], "readmeta_from_image() (in module imagemetatag)": [[0, "ImageMetaTag.readmeta_from_image"]], "remove() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.remove"]], "return_from_list() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.return_from_list"]], "return_key_inds() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.return_key_inds"]], "simple_dict_filter() (in module imagemetatag)": [[0, "ImageMetaTag.simple_dict_filter"]], "sort_keys() (imagemetatag.imagedict method)": [[0, "ImageMetaTag.ImageDict.sort_keys"]], "imagemetatag.db": [[1, "module-ImageMetaTag.db"]], "db_name_to_info_key() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.db_name_to_info_key"]], "del_plots_from_dbfile() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.del_plots_from_dbfile"]], "info_key_to_db_name() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.info_key_to_db_name"]], "merge_db_files() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.merge_db_files"]], "open_db_file() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.open_db_file"]], "open_or_create_db_file() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.open_or_create_db_file"]], "process_select_star_from() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.process_select_star_from"]], "read() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.read"]], "read_db_file_to_mem() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.read_db_file_to_mem"]], "read_img_info_from_dbcursor() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.read_img_info_from_dbcursor"]], "recrete_table_new_cols() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.recrete_table_new_cols"]], "scan_dir_for_db() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.scan_dir_for_db"]], "select_dbcr_by_tags() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.select_dbcr_by_tags"]], "select_dbfile_by_tags() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.select_dbfile_by_tags"]], "write_img_to_dbfile() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.write_img_to_dbfile"]], "write_img_to_open_db() (in module imagemetatag.db)": [[1, "ImageMetaTag.db.write_img_to_open_db"]], "imagemetatag": [[2, "module-ImageMetaTag"]], "image_file_postproc() (in module imagemetatag)": [[3, "ImageMetaTag.image_file_postproc"]], "savefig() (in module imagemetatag)": [[3, "ImageMetaTag.savefig"]], "imagemetatag.webpage": [[8, "module-ImageMetaTag.webpage"]], "write_full_page() (in module imagemetatag.webpage)": [[8, "ImageMetaTag.webpage.write_full_page"]], "write_js_placeholders() (in module imagemetatag.webpage)": [[8, "ImageMetaTag.webpage.write_js_placeholders"]], "write_js_to_header() (in module imagemetatag.webpage)": [[8, "ImageMetaTag.webpage.write_js_to_header"]], "write_json() (in module imagemetatag.webpage)": [[8, "ImageMetaTag.webpage.write_json"]]}})
\ No newline at end of file
diff --git a/docs/build/html/simple.html b/docs/build/html/simple.html
index 2735a23..d33fd7e 100644
--- a/docs/build/html/simple.html
+++ b/docs/build/html/simple.html
@@ -6,7 +6,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
-    <title>ImageMetaTag - simplest_img_dict.py &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag - simplest_img_dict.py &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -35,7 +35,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="test.html" title="ImageMetaTag - test.py"
              accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag - simplest_img_dict.py</a></li> 
       </ul>
     </div>  
@@ -186,7 +186,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="test.html" title="ImageMetaTag - test.py"
              >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag - simplest_img_dict.py</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/versions.html b/docs/build/html/versions.html
index 6b8d881..16cb4ae 100644
--- a/docs/build/html/versions.html
+++ b/docs/build/html/versions.html
@@ -6,7 +6,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
-    <title>Versions of Python &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>Versions of Python &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -31,7 +31,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="scripts.html" title="Associated scripts packaged with ImageMetaTag"
              accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Versions of Python</a></li> 
       </ul>
     </div>  
@@ -45,9 +45,11 @@ <h3>Navigation</h3>
 <h1>Versions of Python<a class="headerlink" href="#versions-of-python" title="Permalink to this heading">¶</a></h1>
 <dl class="simple">
 <dt>The ImageMetaTag module has been tested on the following versions:</dt><dd><ul class="simple">
-<li><p>Python 2.7.6 ( GCC 4.4.6 20120305 (Red Hat 4.4.6-4) on linux2)</p></li>
-<li><p>Python 2.7.12 ( GCC 4.4.7 20120313 (Red Hat 4.4.7-1) on linux2 )</p></li>
-<li><p>Python 3.6.5 ( GCC 4.8.2 20140120 (Red Hat 4.8.2-15) on linux)</p></li>
+<li><p>Python 2.7.5, 2.7.6, 2.7.12</p></li>
+<li><p>Python 3.6.5</p></li>
+<li><p>Python 3.8.16</p></li>
+<li><p>Python 3.9.13</p></li>
+<li><p>Python 3.10.9</p></li>
 </ul>
 </dd>
 </dl>
@@ -101,7 +103,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="scripts.html" title="Associated scripts packaged with ImageMetaTag"
              >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">Versions of Python</a></li> 
       </ul>
     </div>
diff --git a/docs/build/html/webpage.html b/docs/build/html/webpage.html
index 1a68fff..4c24f2b 100644
--- a/docs/build/html/webpage.html
+++ b/docs/build/html/webpage.html
@@ -6,7 +6,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
-    <title>ImageMetaTag.webpage &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag.webpage &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -35,7 +35,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="ImageDict.html" title="ImageMetaTag.ImageDict"
              accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.webpage</a></li> 
       </ul>
     </div>  
@@ -65,7 +65,7 @@ <h3>Navigation</h3>
 <li><p><a class="reference internal" href="#ImageMetaTag.webpage.write_js_to_header" title="ImageMetaTag.webpage.write_js_to_header"><code class="xref py py-func docutils literal notranslate"><span class="pre">ImageMetaTag.webpage.write_js_to_header()</span></code></a> - writes out the javascript information                                                to the html header</p></li>
 <li><p><a class="reference internal" href="#ImageMetaTag.webpage.write_js_placeholders" title="ImageMetaTag.webpage.write_js_placeholders"><code class="xref py py-func docutils literal notranslate"><span class="pre">ImageMetaTag.webpage.write_js_placeholders()</span></code></a> - writes out the placeholders that                                                        the javascript will write images to.</p></li>
 <li><p><a class="reference internal" href="#ImageMetaTag.webpage.write_json" title="ImageMetaTag.webpage.write_json"><code class="xref py py-func docutils literal notranslate"><span class="pre">ImageMetaTag.webpage.write_json()</span></code></a> - writes out the <a class="reference internal" href="ImageDict.html#ImageMetaTag.ImageDict" title="ImageMetaTag.ImageDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">ImageMetaTag.ImageDict</span></code></a>                                                as a json.dump to a json file</p></li>
-<li><p><a class="reference internal" href="#ImageMetaTag.webpage.copy_required_javascript" title="ImageMetaTag.webpage.copy_required_javascript"><code class="xref py py-func docutils literal notranslate"><span class="pre">ImageMetaTag.webpage.copy_required_javascript()</span></code></a> - copies required javascript library                                                           to the required location.</p></li>
+<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">ImageMetaTag.webpage.copy_required_js_css_etc()</span></code> - copies required javascript library                                                           to the required location.</p></li>
 </ul>
 </div></blockquote>
 <p>An easy example of creating a webpage, using an <a class="reference internal" href="ImageDict.html#ImageMetaTag.ImageDict" title="ImageMetaTag.ImageDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">ImageMetaTag.ImageDict</span></code></a> is shown in
@@ -80,7 +80,7 @@ <h3>Navigation</h3>
 <h2>Writing a whole page<a class="headerlink" href="#writing-a-whole-page" title="Permalink to this heading">¶</a></h2>
 <dl class="py function">
 <dt class="sig sig-object py" id="ImageMetaTag.webpage.write_full_page">
-<span class="sig-prename descclassname"><span class="pre">ImageMetaTag.webpage.</span></span><span class="sig-name descname"><span class="pre">write_full_page</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">img_dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">filepath</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">page_filename</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tab_s_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">preamble</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">postamble</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">postamble_no_imt_link</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">initial_selectors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_selector_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_singleton_selectors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">optgroups</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'int'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">only_show_rel_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'horiz</span> <span class="pre">dropdowns'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">write_intmed_tmpfile</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">description</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">keywords</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">css</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_err_msg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ImageMetaTag/webpage.html#write_full_page"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ImageMetaTag.webpage.write_full_page" title="Permalink to this definition">¶</a></dt>
+<span class="sig-prename descclassname"><span class="pre">ImageMetaTag.webpage.</span></span><span class="sig-name descname"><span class="pre">write_full_page</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">img_dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">filepath</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">page_filename</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tab_s_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">preamble</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">postamble</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">postamble_no_imt_link</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">initial_selectors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_selector_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_singleton_selectors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">optgroups</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'int'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">only_show_rel_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'horiz</span> <span class="pre">dropdowns'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">write_intmed_tmpfile</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">description</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">keywords</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">css</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">load_err_msg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">last_img_in_list_is_slider</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ImageMetaTag/webpage.html#write_full_page"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ImageMetaTag.webpage.write_full_page" title="Permalink to this definition">¶</a></dt>
 <dd><p>Writes out an <a class="reference internal" href="ImageDict.html#ImageMetaTag.ImageDict" title="ImageMetaTag.ImageDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">ImageMetaTag.ImageDict</span></code></a> as a webpage, to a given file location.
 The files are created as temporary files and when complete they replace any files that
 are currently in the specified location.</p>
@@ -110,6 +110,7 @@ <h2>Writing a whole page<a class="headerlink" href="#writing-a-whole-page" title
 <li><p>compression - default False. If True, then the json data object will be compressed                      using zlib string compression. When read into the browser, we will use                      pako to inflate it (<a class="reference external" href="https://github.com/nodeca/pako">https://github.com/nodeca/pako</a>)</p></li>
 <li><p>css - Optional CSS file used to style webpage. By default a small amount of css is              written out in the page header.</p></li>
 <li><p>load_err_msg - additional message to show after ‘Please wait while the page is loading’.                       default is None, but very large pages can crash with Internet Explorer so                       a message along the lines of this may be useful: ‘If the page does not                       load correctly in Internet Explorer, please try using firefox or Chrome.’</p></li>
+<li><p>last_img_in_list_is_slider - for the ‘horiz dropdowns’ page style, when the image payload                                     contains a list of images, then when this is True, the last                                     images is used as an on overlay/slider on the other images.</p></li>
 </ul>
 </div></blockquote>
 <p>Returns a list of files that the the created webpage is dependent upon.</p>
@@ -120,7 +121,7 @@ <h2>Writing a whole page<a class="headerlink" href="#writing-a-whole-page" title
 <h2>As indidividual components<a class="headerlink" href="#as-indidividual-components" title="Permalink to this heading">¶</a></h2>
 <dl class="py function">
 <dt class="sig sig-object py" id="ImageMetaTag.webpage.write_js_to_header">
-<span class="sig-prename descclassname"><span class="pre">ImageMetaTag.webpage.</span></span><span class="sig-name descname"><span class="pre">write_js_to_header</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">img_dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">initial_selectors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">optgroups</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file_obj</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">json_files</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">js_files</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pagename</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tabname</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">selector_prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_singleton_selectors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url_separator</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'|'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'str'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">only_show_rel_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ind</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">description</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">keywords</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ImageMetaTag/webpage.html#write_js_to_header"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ImageMetaTag.webpage.write_js_to_header" title="Permalink to this definition">¶</a></dt>
+<span class="sig-prename descclassname"><span class="pre">ImageMetaTag.webpage.</span></span><span class="sig-name descname"><span class="pre">write_js_to_header</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">img_dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">initial_selectors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">optgroups</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file_obj</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">json_files</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">js_css_files</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pagename</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tabname</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">selector_prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_singleton_selectors</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url_separator</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'|'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'str'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">only_show_rel_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ind</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">last_img_in_list_is_slider</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">description</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">keywords</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ImageMetaTag/webpage.html#write_js_to_header"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ImageMetaTag.webpage.write_js_to_header" title="Permalink to this definition">¶</a></dt>
 <dd><p>Writes out the required ImageMetaTag config and data paths into a html header section
 for an input <a class="reference internal" href="ImageDict.html#ImageMetaTag.ImageDict" title="ImageMetaTag.ImageDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">ImageMetaTag.ImageDict</span></code></a>.</p>
 <p>Currently only able to write out a page with horizontal dropdown menus, but other
@@ -145,6 +146,7 @@ <h2>As indidividual components<a class="headerlink" href="#as-indidividual-compo
 <li><p>only_show_rel_url - If True, the wepage will only show relative urls in is link section.</p></li>
 <li><p>ind - indentation going into the header section.</p></li>
 <li><p>compression - Indicates the json file is compressed using zlib.</p></li>
+<li><p>last_img_in_list_is_slider - indicates the last image in a list of images                                    in a payload should be used as an overlay/slider</p></li>
 <li><p>description - html description metadata7</p></li>
 <li><p>keywords - html keyword metadata</p></li>
 </ul>
@@ -184,17 +186,6 @@ <h2>As indidividual components<a class="headerlink" href="#as-indidividual-compo
 <p>Returns a list of json files as (tempfile, final_file) tuples.</p>
 </dd></dl>
 
-<dl class="py function">
-<dt class="sig sig-object py" id="ImageMetaTag.webpage.copy_required_javascript">
-<span class="sig-prename descclassname"><span class="pre">ImageMetaTag.webpage.</span></span><span class="sig-name descname"><span class="pre">copy_required_javascript</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">file_dir</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">compression</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">overwrite</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ImageMetaTag/webpage.html#copy_required_javascript"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ImageMetaTag.webpage.copy_required_javascript" title="Permalink to this definition">¶</a></dt>
-<dd><p>Copies the required javascript library to the directory
-containing the required page (file_dir) for a given webpage style.</p>
-<p>If a file is already present it will be checked based it’s first line.
-If the file is different, it will be overwritten if overwrite is True.</p>
-<p>Also copies/obtains required javascript for reading files compressed
-with zlib, if compression=True.</p>
-</dd></dl>
-
 </section>
 </section>
 
@@ -220,7 +211,6 @@ <h3><a href="index.html">Table of Contents</a></h3>
 <li><a class="reference internal" href="#ImageMetaTag.webpage.write_js_to_header"><code class="docutils literal notranslate"><span class="pre">write_js_to_header()</span></code></a></li>
 <li><a class="reference internal" href="#ImageMetaTag.webpage.write_js_placeholders"><code class="docutils literal notranslate"><span class="pre">write_js_placeholders()</span></code></a></li>
 <li><a class="reference internal" href="#ImageMetaTag.webpage.write_json"><code class="docutils literal notranslate"><span class="pre">write_json()</span></code></a></li>
-<li><a class="reference internal" href="#ImageMetaTag.webpage.copy_required_javascript"><code class="docutils literal notranslate"><span class="pre">copy_required_javascript()</span></code></a></li>
 </ul>
 </li>
 </ul>
@@ -274,7 +264,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="ImageDict.html" title="ImageMetaTag.ImageDict"
              >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag.webpage</a></li> 
       </ul>
     </div>
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 173f2b5..f30e3e4 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -59,10 +59,10 @@
 # built documents.
 #
 # The short X.Y version.
-version = '0.7'
+version = '0.8'
 # The full version, including alpha/beta/rc tags
 # (see release_process for details on incrementing the version):
-release = '0.7.13'
+release = '0.8.0'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/release_process b/release_process
index 0ea5fcd..4d7348a 100644
--- a/release_process
+++ b/release_process
@@ -4,7 +4,7 @@ and making it available via conda
 1) Develop, prepare and test your changes as normal, up to the point where
 the changes warrants a new release.
 
-2) The release number should be changed using the Semantic versioning 
+2) The release number should be changed using the Semantic versioning
 convention (http://semver.org/)
  * The version number should be incemented in the following locations:
    * ImageMetaTag/__init__.py
@@ -19,7 +19,7 @@ convention (http://semver.org/)
   cd docs
  * Clean the documentation build:
      make html clean
- * Rebuild the docs, ensuring that the PYTHONPATH refers to the source of 
+ * Rebuild the docs, ensuring that the PYTHONPATH refers to the source of
    the new build:
      PYTHONPATH=../ make html
 
@@ -46,7 +46,7 @@ From this point onwards, admin rights are required to both image-meta-tag and im
 7) Pulbish a release in the image-meta-tag repository for the new release
 number at: https://github.com/SciTools-incubator/image-meta-tag/releases
  * Tag version is just the version number e.g. '0.6.7' in the code.
- * The convention used for the release title adds 'vn' before the number, e.g. 
+ * The convention used for the release title adds 'vn' before the number, e.g.
    'vn0.6.7'
  * The release description can be used to give a very brief outline of the
    changes.
@@ -78,6 +78,6 @@ number at: https://github.com/SciTools-incubator/image-meta-tag/releases
  * Without an hour or so the new release should be available via conda.
 
 
-9) With a correctly set up pypi login and .pypirc file, the following 
+9) With a correctly set up pypi login and .pypirc file, the following
 command will set up a pypi record for the release (python > 2.7.13 is needed):
   twine upload dist/*
diff --git a/setup.py b/setup.py
index 24a9df1..c1e69ab 100644
--- a/setup.py
+++ b/setup.py
@@ -12,7 +12,7 @@
 setup_args = dict(
     name = 'ImageMetaTag',
     # see release_process for details on incrementing the version
-    version = '0.7.13',
+    version = '0.8.0',
     description = 'Image metadata tagging, database and presentation',
     license = 'BSD3',
     author = 'Melissa Brooks',


Test patch:
diff --git a/docs/build/html/test.html b/docs/build/html/test.html
index 05ec4f1..d7b5aac 100644
--- a/docs/build/html/test.html
+++ b/docs/build/html/test.html
@@ -6,7 +6,7 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
-    <title>ImageMetaTag - test.py &#8212; ImageMetaTag 0.7.13 documentation</title>
+    <title>ImageMetaTag - test.py &#8212; ImageMetaTag 0.8.0 documentation</title>
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
     <link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
@@ -35,7 +35,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="webpage.html" title="ImageMetaTag.webpage"
              accesskey="P">previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag - test.py</a></li> 
       </ul>
     </div>  
@@ -132,7 +132,7 @@ <h3>Navigation</h3>
         <li class="right" >
           <a href="webpage.html" title="ImageMetaTag.webpage"
              >previous</a> |</li>
-        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.7.13 documentation</a> &#187;</li>
+        <li class="nav-item nav-item-0"><a href="index.html">ImageMetaTag 0.8.0 documentation</a> &#187;</li>
         <li class="nav-item nav-item-this"><a href="">ImageMetaTag - test.py</a></li> 
       </ul>
     </div>
diff --git a/test.py b/test.py
index 8f8772e..c707b1a 100644
--- a/test.py
+++ b/test.py
@@ -1263,6 +1263,7 @@ def __main__():
                                                               preamble=webpage_preamble,
                                                               postamble=webpage_postamble,
                                                               postamble_no_imt_link=True,
+                                                              last_img_in_list_is_slider=True,
                                                               verbose=True, url_type='str')
         web_out[out_page_css] = imt.webpage.write_full_page(img_dict, out_page_css,
                                                             'Test ImageDict webpage with CSS',