From 251dd1739e176805010998623456b6672283159e Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Fri, 20 Aug 2010 22:31:58 +0000 Subject: [PATCH] First/prev/next/last links in dotfiles and blog tags. git-svn-id: file:///home/phd/archive/SVN/phdru.name/scripts@109 7bb0bf08-9e0d-0410-b083-99cee3bf18b8 --- dotfiles2html/dotfiles2html.py | 41 +++++++++++++++++++--------------- reindex_blog.py | 36 +++++++++++++++++++++++++++-- 2 files changed, 57 insertions(+), 20 deletions(-) diff --git a/dotfiles2html/dotfiles2html.py b/dotfiles2html/dotfiles2html.py index 3c0e1b1..6bf9e1a 100755 --- a/dotfiles2html/dotfiles2html.py +++ b/dotfiles2html/dotfiles2html.py @@ -13,7 +13,7 @@ from m_lib.m_path import get_homedir home_dir = get_homedir() -def add_headers(fname, start, prev, next): +def add_headers(fname, first, prev, next, last): head_fname = os.path.join(home_dir, fname + ".head") head_file = open(head_fname, 'r') head = head_file.read() @@ -36,14 +36,12 @@ def add_headers(fname, start, prev, next): html_file.write("#implements respond\n") html_file.write("#attr $Title = \"%s\"\n" % dot_name) html_file.write("#attr $Copyright = 2003\n") - if start: - html_file.write("#attr $Start = \"index.html\"\n") - html_file.write("#attr $First = \"profile.html\"\n") + html_file.write("#attr $First = \"%s.html\"\n" % first) if prev: html_file.write("#attr $Prev = \"%s.html\"\n" % prev) if next: html_file.write("#attr $Next = \"%s.html\"\n" % next) - html_file.write("#attr $Last = \"pdbrc.py.html\"\n") + html_file.write("#attr $Last = \"%s.html\"\n" % last) html_file.write('#attr $alternates = (("Plain text version", "text/plain", "%s"),)' % txt_name) html_file.write("\n") html_file.write("#def body_html\n") @@ -57,18 +55,21 @@ def add_headers(fname, start, prev, next): html_file.close() -file_types = (("profile", "sh"), ("shellrc", "sh"), ("fvwm2rc", "fvwm2m4"), +home_file_types = (("profile", "sh"), ("shellrc", "sh"), ("fvwm2rc", "fvwm2m4"), ("mailcap", "conf"), ("mime.types", "conf"), ("muttrc", "muttrc"), ("procmailrc", "procmail"), ("vimrc", "vim"), ("gvimrc", "vim"), - ("init.py", "python"), ("pdbrc", "python"), ("pdbrc.py", "python"), - ("bindings", "conf"), ("menu", "conf")) -ft_len = len(file_types) + ("init.py", "python"), ("pdbrc", "python"), ("pdbrc.py", "python")) -for i, (fname, ftype) in enumerate(file_types): +mc_file_types = (("bindings", "conf"), ("menu", "conf")) + +def process_dotfile(i, fname, ftype, file_types): if os.path.exists('.' + fname) and not os.path.exists(fname): shutil.copy2('.' + fname, fname) + if not os.path.exists(fname): + return + if fname == 'vimrc' and os.path.exists(fname): file = open('vimrc', 'r') text = file.read() @@ -87,23 +88,20 @@ for i, (fname, ftype) in enumerate(file_types): file.write(text) file.close() - if not os.path.exists(fname): - continue - os.system("""exec gvim -f -c "set filetype=%s" -c ":source %s/dotfile2html.vim" "%s" """ % (ftype, home_dir, fname)) - if i == 0: - start = None + first = file_types[0][0] + if i==0: prev = None else: - start = True prev = file_types[i-1][0] - if i >= ft_len - 1: + if i >= len(file_types) - 1: next = None else: next = file_types[i+1][0] - add_headers(fname, start, prev, next) + last = file_types[-1][0] + add_headers(fname, first, prev, next, last) if os.path.exists(fname + ".tmpl") and filecmp.cmp(fname + ".html", fname + ".tmpl"): os.remove(fname + ".html") @@ -120,3 +118,10 @@ for i, (fname, ftype) in enumerate(file_types): if os.path.exists(fname): os.chmod(fname, 0644) + +def process_files(file_types): + for i, (fname, ftype) in enumerate(file_types): + process_dotfile(i, fname, ftype, file_types) + +process_files(home_file_types) +process_files(mc_file_types) diff --git a/reindex_blog.py b/reindex_blog.py index 5c14d46..0ba0804 100755 --- a/reindex_blog.py +++ b/reindex_blog.py @@ -334,17 +334,49 @@ new_text = ["""\
"""] -for count, tag, links in all_tags: +for i, (count, tag, links) in enumerate(all_tags): new_text.append("""\
%s (%d)
""" % (tag, tag, count)) + first = all_tags[0][1] + if i == 0: + prev = None + else: + prev = all_tags[i-1][1] + if i >= len(all_tags)-1: + next = None + else: + next = all_tags[i+1][1] + last = all_tags[-1][1] + tag_text = ["""\ ## THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. #extends phd_pp_ru #implements respond #attr $Title = "Oleg Broytman's blog: tag %s" #attr $Description = "Broytman Russian Blog Tag %s Index Document" +""" % (tag, tag)] + + tag_text.append("""\ +#attr $First = "%s" +""" % first) + + if prev: + tag_text.append("""\ +#attr $Prev = "%s" +""" % prev) + + if next: + tag_text.append("""\ +#attr $Next = "%s" +""" % next) + + tag_text.append("""\ +#attr $Last = "%s" +""" % last) + + tag_text.append("""\ #attr $Copyright = 2006 ## #def body_html @@ -352,7 +384,7 @@ for count, tag, links in all_tags: