relative_pos = ''
begin
#- move to previous dir element if exists
- if xmldir.previous_element_byname('dir')
- xmldir = xmldir.previous_element_byname('dir')
+ if prevelem = xmldir.previous_element_byname_notattr('dir', 'deleted')
+ xmldir = prevelem
relative_pos += '../' + xmldir2destdir(xmldir) + '/'
child = nil
#- after having moved to previous dir, we need to go down last subdir until the last one
while child = xmldir.elements['dir']
- while nextchild = child.next_element_byname('dir')
+ while nextchild = child.next_element_byname_notattr('dir', 'deleted')
child = nextchild
end
relative_pos += xmldir2destdir(child) + '/'
else
#- previous dir doesn't exist, move to previous dir element if exists
xmldir = xmldir.parent
- if xmldir.name == 'dir'
+ if xmldir.name == 'dir' && !xmldir.attributes['deleted']
relative_pos += '../'
else
return nil
relative_pos = ''
begin
#- first child dir element (catches when initial xmldir has both thumbnails and subdirs)
- if firstchild = xmldir.elements['dir']
+ if firstchild = xmldir.child_byname_notattr('dir', 'deleted')
xmldir = firstchild
relative_pos += xmldir2destdir(xmldir) + '/'
#- next brother
- elsif nextbro = xmldir.next_element_byname('dir')
+ elsif nextbro = xmldir.next_element_byname_notattr('dir', 'deleted')
xmldir = nextbro
relative_pos += '../' + xmldir2destdir(xmldir) + '/'
else
begin
xmldir = xmldir.parent
relative_pos += '../'
- end while xmldir && !xmldir.next_element_byname('dir')
+ end while xmldir && !xmldir.next_element_byname_notattr('dir', 'deleted')
if xmldir
xmldir = xmldir.next_element_byname('dir')
relative_pos += '../' + xmldir2destdir(xmldir) + '/'
info("index.html: #{dir}")
xmldir = optxpath[utf8(dir)]
- if !xmldir || (xmldir.attributes['already-generated'] && !$force)
+ if !xmldir || (xmldir.attributes['already-generated'] && !$force) || xmldir.attributes['deleted']
next
end
dest_dir = make_dest_filename(dir.sub(/^#{Regexp.quote($source)}/, $dest))
#- deal with sub-albums (direct to subdirs/index.html pages)
xmldir.elements.each('dir') { |child|
+ if child.attributes['deleted']
+ next
+ end
subdir = make_dest_filename(from_utf8(File.basename(child.attributes['path'])))
thumbnail = "#{dest_dir}/thumbnails-#{subdir}.jpg"
html_index += run_iterations(iterations)
return nil
end
+ def previous_element_byname_notattr(name, attr)
+ n = self
+ while n = n.previous_element
+ if n.name == name && !n.attributes[attr]
+ return n
+ end
+ end
+ return nil
+ end
+
def next_element_byname(name)
n = self
while n = n.next_element
return nil
end
+ def next_element_byname_notattr(name, attr)
+ n = self
+ while n = n.next_element
+ if n.name == name && !n.attributes[attr]
+ return n
+ end
+ end
+ return nil
+ end
+
def child_byname_notattr(name, attr)
elements.each(name) { |element|
if !element.attributes[attr]