]> git.phdru.name Git - phdru.name/phdru.name.git/commitdiff
First/prev/next/last links in dotfiles and blog tags.
authorOleg Broytman <phd@phdru.name>
Fri, 20 Aug 2010 22:31:58 +0000 (22:31 +0000)
committerOleg Broytman <phd@phdru.name>
Fri, 20 Aug 2010 22:31:58 +0000 (22:31 +0000)
git-svn-id: file:///home/phd/archive/SVN/phdru.name/scripts@109 7bb0bf08-9e0d-0410-b083-99cee3bf18b8

dotfiles2html/dotfiles2html.py
reindex_blog.py

index 3c0e1b12c6efad69d9a6a4f1d1fe449cda4b8953..6bf9e1af7ab95fdfed2641a25f476d98dc9059e5 100755 (executable)
@@ -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)
index 5c14d4693590138f44db0fe794b8f95ca8339e39..0ba0804d4c1d458628744a4c9d8ba5f6c2781744 100755 (executable)
@@ -334,17 +334,49 @@ new_text = ["""\
 <dl>
 """]
 
-for count, tag, links in all_tags:
+for i, (count, tag, links) in enumerate(all_tags):
    new_text.append("""\
    <dt><a href="%s.html">%s (%d)</a></dt>
 """ % (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:
 
 <p class="head">
 <ul>
-""" % (tag, tag, tag)]
+""" % tag)
 
    count = 0
    for year, month, day, filename, title, lead in reversed(links):