fixed some bugs master
authorSabine Engelhardt (Becker) <frosch@atari-frosch.de>
Tue, 30 Apr 2019 17:15:45 +0000 (19:15 +0200)
committerSabine Engelhardt (Becker) <frosch@atari-frosch.de>
Tue, 30 Apr 2019 17:15:45 +0000 (19:15 +0200)
CHANGELOG
MANUAL
ToDo
filters/__pycache__/atarifrosch.cpython-34.pyc
filters/atarifrosch.py
filters/filter.py
makesite.py
piwigo-db.txt
preparesite.py
sites/atarifrosch/DEFAULTS/settings.py
sites/atarifrosch/SNIPPETS/footer.htm

index daea6cf..e2d2075 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,21 @@
+2019-04-30 frosch@atari-frosch.de
+
+    * preparesite.py now stores the filepath of each html file in its
+      $page.py, makefile.py writes the correct URI to the footer.
+
+    * Bug in the menus: The current open folder was not in the menu.py of a
+      folder and so not in the $page.menu files of that same folder. Fixed.
+
+    * Bug in the menus: There was no link in the index files of the
+      subfolders to the start page; deleted the first entry from the
+      original menu (the start page) because it comes from the filter.
+
+    * makesite.py: menus in the created html files were closed two
+      times with </ul>, one of them was in the snippet menuend and one of
+      them in makesite.py; removed from the snippet.
+
+
+
 2019-04-29 frosch@atari-frosch.de
 
     * makesite.py: Created only a new $page.menu file if already one
@@ -7,7 +25,7 @@
       it does not / no more exist.
 
     * preparesite.py with settings.py: Created new variable called
-      dcfromfilter; if set to True, filter entries forcibly overwrite some
+      forcefilter; if set to True, filter entries forcibly overwrite some
       DC meta tags with the settings in the filter.
 
     * preparesite.py: If forcefilter is set to True and/or the settings in
diff --git a/MANUAL b/MANUAL
index 9caaaae..98b8e29 100644 (file)
--- a/MANUAL
+++ b/MANUAL
@@ -30,6 +30,7 @@ Example:
 addcssfile = ["akv.css all"]
 -> will become: <link rel="stylesheet" media="all" href="/akv.css" type="text/css" />
 
+
 * addhead (optional)
 
 The variable addhead is a list of strings which contain SNIPPET file names.
diff --git a/ToDo b/ToDo
index 14f6e48..5731ba6 100644 (file)
--- a/ToDo
+++ b/ToDo
@@ -4,10 +4,6 @@ in general:
   items (default) or another key character(s) given in settings.menukey;
   must be set in filter and used in settings accordingly.
 
-* NEW: preparesite.py: Set variable uri in page.py to the path within the
-  site, like "internet" and add the slash and the actual target filename in
-  makesite.py.
-
 * REFACT: Rewrite the MANUAL. *sigh* ;-) (better in HTML?)
 
 * FEAT: Multi language support for websites (additional language menu so
@@ -19,7 +15,7 @@ in general:
 
 preparesite.py:
 
-* ERROR: When a site has a different encoding (oldenc is set), the last
+* PROBLEM: When a site has a different encoding (oldenc is set), the last
   pretemp.html page in every original folder remains. Needs to be deleted.
   Alternative: Instead of saving the pretemp to the original path, it should
   perhaps better be saved in the sites/$site path.
@@ -27,14 +23,6 @@ preparesite.py:
 
 makesite.py:
 
-* ERROR: Headline and title cannot be found in page.py although they are
-  there.
-
-* ERROR: After the menu there are two closing </ul>.
-
-* ERROR: Menu is incomplete after opening a folder: Parent folder is
-  missing.
-
 * FEAT: While creating new pages, ignore timestamps if a command line
   argument says „force recreation“.
 
@@ -61,28 +49,3 @@ makesite.py:
   script randomphoto-piwigo.py
 
 * FEAT: create redirect for apache2 and nginx when moving a file?
-
-
-makefolder.py:
-
-(Re-)make folder, like after changing the menu, adding a new page, or adding
-a new (sub-)folder. Include in makesite.py, where useful.
-
-
-makepage.py:
-
-Rebuild a single page after changes in the content part. Include in
-makefolder.py, where useful.
-
-
-movepage.py:
-
-Move the content of a page to another folder, then rebuild both, the source
-folder and the targetted folder (especially menu.py).
-
-* FEAT: rebuild sitemap.xml
-
-
-htmlglue.py:
-
-Menu for using all functions of the project.
index d764783..b20350a 100644 (file)
Binary files a/filters/__pycache__/atarifrosch.cpython-34.pyc and b/filters/__pycache__/atarifrosch.cpython-34.pyc differ
index 92866eb..08c658f 100755 (executable)
@@ -50,7 +50,7 @@ ownpagefoot = False
 ## These settings are necessary directly for preparesite.py:
 
 # Where to find the current web site in the file system
-origpath = "/srv/atarifrosch/"
+origpath = "/srv/OLD/atarifrosch/"
 
 # File extension for HTML files of the source site (some people use .htm
 # here, or even .HTML or .HTM).
@@ -167,7 +167,7 @@ dccoverage = ""
 favicon = "favicon.ico"
 # This is the standard style sheet for the site. Additional style sheets for
 # a page can be added later in the page.py.
-stylesheet = "style.css"
+stylesheet = "frosch.css"
 stylesheetmedia = "all"
 
 # Should the headline be placed in the page head or at the beginning of the
@@ -200,7 +200,7 @@ menuend = '<!-- div#menu -->'
 # 3. name of the according html file (usually /index.html)
 # 4. name of the menu entry
 # Do not set the parameters in additional quotation marks!
-firstmenuitem = 'menuitem.append("htm home /index.html Startseite")\n'
+firstmenuitem = 'menuitem.append("htm home / Startseite")\n'
 
 # How to find the headline in a single html file if it is part of the
 # page's top div (no matter where it will be placed later)
index 1508522..9552254 100755 (executable)
@@ -150,7 +150,7 @@ menuend = '<!-- div#menu -->'
 # 3. name of the according html file (usually /index.html)
 # 4. name of the menu entry
 # Do not set the parameters in additional quotation marks!
-firstmenuitem = 'menuitem.append("htm home /index.html Startseite")\n'
+firstmenuitem = 'menuitem.append("htm home / Startseite")\n'
 
 # How to find the headline in a single html file if it is part of the
 # page's top div (no matter where it will be placed later)
index 398999c..b223345 100755 (executable)
@@ -240,9 +240,13 @@ def makemenus(curdir):
                     curmenuitems = str(menuitems[j])
                     curitems = curmenuitems.split(" ")
                     if j == 0:
-                        indent = ""
+                        menuline = '<li class="' + curitems[1] + '"><a href="' + curitems[2]
+                        menuline += '">' + curitems[3] + '</a></li>' + ln
+                        targetfile.write(menuline)
+                        continue
                     else:
                         indent = "          "
+
                     if curitems[0] == "['htm" or curitems[0] == "htm":
                         if targetpage in curitems[2]:
                             menuline = indent + '<li class="' + curitems[1] + '">'
@@ -251,16 +255,20 @@ def makemenus(curdir):
                             menuline = indent + '<li class="' + curitems[1] + '"><a href="' + curitems[2]
                             menuline += '">' + curitems[3] + '</a></li>' + ln
                         targetfile.write(menuline)
+
                     elif curitems[0] == "['dir" or curitems[0] == "dir":
                         menuline = indent + '<li class="' + curitems[1] + '"><a href="' + curitems[2]
                         menuline += '">' + curitems[3] + '</a></li>' + ln
                         targetfile.write(menuline)
+                    elif curitems[0] == "newlist":
+                        menuline = indent[2:] + "</ul><ul>" + ln
+                        targetfile.write(menuline)
                     else:
                         logging.error('<%s> is an unknown argument in menu.py in <%s>.', curitems[0], curdir)
                 targetfile.close()
                 
 
-def defaultfoot(contentfile, pagefoot, generator, myurl, pageconfig):
+def defaultfoot(contentfile, pagefoot, generator, myurl, pageconfig, htmlfile):
     # This function is used if there is no function makefoot in
     # the site's settings.
 
@@ -272,19 +280,23 @@ def defaultfoot(contentfile, pagefoot, generator, myurl, pageconfig):
         logging.error("Cannot find template for page foot! Pages will have no foot.")
         return "\n"
 
-    # from time import strftime
-
     filetime = os.path.getmtime(contentfile)
     filetimestamp = datetime.fromtimestamp(filetime).strftime('%Y-%m-%d %H:%M:%S')
     curtimestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
 
     try:
-        pageconfig["uri"]
+        pageconfig["filepath"]
     except KeyError:
-        logging.warning("URI not found in page.py for %s.", contentfile)
+        logging.warning("filepath not found in page.py for %s.", contentfile)
         myuri = myurl
     else:
-        myuri = settings.myurl + pageconfig["uri"]
+        filepath = pageconfig["filepath"]
+        if filepath == "/":
+            filepath = ""
+        elif filepath.startswith("/"):
+            filepath = filepath[1:]
+            filepath = filepath + "/"
+        myuri = settings.myurl + filepath + htmlfile + "l"
 
     footer = footer.replace("[FILETIME]", str(filetimestamp))
     footer = footer.replace("[CURTIME]", str(curtimestamp))
@@ -374,7 +386,6 @@ def createpage(filename, sitepath, targetdir, snippets):
             try:
                 pageconfig["menupos"]
             except KeyError:
-                logging.info("Attribute menupos not found in page.py for %s", targetfile)
                 if settings.menupos == "above":
                     menu = makepagemenu(filename, snippets, pageconfig, snippetspath)
                     htmlpage += menu
@@ -433,7 +444,7 @@ def createpage(filename, sitepath, targetdir, snippets):
             try:
                 settings.makefoot
             except AttributeError:
-                pagefoot = defaultfoot(filename, snippets["footer"], defaults.generator, settings.myurl, pageconfig)
+                pagefoot = defaultfoot(filename, snippets["footer"], defaults.generator, settings.myurl, pageconfig, purefilename)
             else:
                 pagefoot = settings.makefoot(filename, snippets)
             htmlpage += pagefoot
index 616c313..3305cca 100644 (file)
@@ -30,3 +30,4 @@ MariaDB [piwigodb]> show columns from pwg_images;
 
 file = original file name
 name = title
+level = level of privacy (0: for everyone)
index 015087c..a1941b1 100755 (executable)
@@ -128,6 +128,7 @@ def makesetting(settingsfile, flt):
     set.write('snippets["htmlhead"] = "' + flt.snippets["htmlhead"] + qln)
     set.write('snippets["bodytopfile"] = "' + flt.snippets["bodytopfile"] + qln)
     set.write('snippets["logofile"] = "' + flt.snippets["logofile"] + qln)
+    set.write('snippets["endpagehead"] = "' + flt.snippets["endpagehead"] + qln)
     set.write('snippets["menustart"] = "' + flt.snippets["menustart"] + qln)
     set.write('snippets["menuend"] = "' + flt.snippets["menuend"] + qln)
     set.write('snippets["footer"] = "' + flt.snippets["footer"] + qln)
@@ -345,6 +346,8 @@ for dirpath, dirs, files in os.walk(origpath):
                 menuread = False
                 contentread = False
 
+                pyfile.write("filepath = '" + curpath + "'\n")
+
                 for i in range(len(htmllines)):
                     curline = htmllines[i]
                     # ignoring unwanted parts
@@ -538,8 +541,10 @@ for dirpath, dirs, files in os.walk(origpath):
                     menu.write("# -*- coding: utf8 -*-\n\n\n")
                     menu.write("# Created automatically with htmlglue/preparesite v" + myversion + "\n\n")
                     menu.write("menuitem = []\n")
-
                     menu.write(flt.firstmenuitem)
+
+                    del origmenuparts[0]
+                    # the first item is the start page, but its entry is defined by the filter
                     for item in range(len(origmenuparts)):
                         curitem = origmenuparts[item].strip()
                         if curitem.startswith("<li"):
@@ -564,6 +569,19 @@ for dirpath, dirs, files in os.walk(origpath):
                                 outline = 'menuitem.append("' + filetype + ' ' + menuclass
                                 outline += ' ' + menufilename + ' ' + menuitemname + '")\n'
                                 menu.write(outline)
+                        
+                            else:
+                                # <li class="open"> Politik</li>
+                                curitemparts = curitem.split(">")
+                                menuitemname = curitemparts[1].replace("</li", "")
+                                menuitemname = menuitemname.strip()
+                                outline = 'menuitem.append("' + filetype + ' ' + menuclass
+                                outline += ' ' + curpath + '/ ' + menuitemname + '")\n'
+                                menu.write(outline)
+
+                        elif "</ul><ul>" in curitem:
+                            outline = 'menuitem.append("newlist - - -")\n'
+                            menu.write(outline)
 
                     menu.close()
                     call(["/bin/chmod", "755", menufile])
index 0c79765..abd0352 100644 (file)
@@ -26,8 +26,8 @@ myurl = proto + "://" + domain + "/"
 # 3 = critical, error, and warning messages
 # 4 = critical, error, warning, and info messages
 # 5 = critical, error, warning, info, and debug messages (very verbose!)
-makelogfile = "atarifrosch.log"
-makeloglevel = 5
+makelogfile = "mysite.log"
+makeloglevel = 4
 
 ## Standard settings for the <head> section of each page
 # These settings can be overwritten in each page.py
@@ -48,10 +48,13 @@ dcrights = "Sabine 'Atari-Frosch' Becker"
 dccoverage = ""
 
 favicon = "favicon.ico"
-stylesheet = "style.css"
+stylesheet = "frosch.css"
 stylesheetmedia = "all"
 
+# Should the headline be placed in the page head or at the beginning of the
+# content section?
 headcontent = False
+# False: page head; True: content section
 
 # Position of menu: above or below content. Be reminded that this is
 # only the menu's position in the HTML code; where it will really be placed
index 5587dd1..aefda67 100644 (file)
@@ -1,9 +1,5 @@
       <div id="footer">
-        <a class="graflink" href="https://validator.w3.org/check?uri=referer"> 
-          <img src="/bilder/valid-xhtml10.png" width="88" height="31"
-               alt="W3C – valid XHTML 1.0" /></a>
         <p>URL: [MYURL]</p>
         <p>last content modification: [FILETIME]</p>
-        <p>last file modification: [CURTIME]</p>
-        <p class="htmlglue">proudly glued together with [GLUE]</p>
+        <p>proudly glued together with [GLUE] on [CURTIME]</p>
       </div><!-- div#footer -->