MAHHHHH!!! Whyever this damn tag-links are broken!?! ... I must take a closer look on the dictionary to care for this bug ... :-/
This commit is contained in:
		
							parent
							
								
									7e98cf7095
								
							
						
					
					
						commit
						da964bf068
					
				|  | @ -159,7 +159,7 @@ except: | ||||||
|     raise |     raise | ||||||
| 
 | 
 | ||||||
| locale.setlocale(locale.LC_ALL,os.environ['LANG']) | locale.setlocale(locale.LC_ALL,os.environ['LANG']) | ||||||
| # print(time.strftime("%x",time.localtime())) | # print(time.strftime(dateFormat,time.localtime())) | ||||||
| 
 | 
 | ||||||
| ######################## | ######################## | ||||||
| # Templating functions # | # Templating functions # | ||||||
|  | @ -181,12 +181,16 @@ def parse_article(path): | ||||||
|     return article_dict |     return article_dict | ||||||
| 
 | 
 | ||||||
| def tags_to_html(tags): | def tags_to_html(tags): | ||||||
|  | 
 | ||||||
|     tag_list = tags.split(",") |     tag_list = tags.split(",") | ||||||
|     html_tags = "" |     html_tags = "" | ||||||
|     sTAG = '<a href="${TAG}.html" class="tag">#${TAG}</a> ' |     sTAG = '<a href="${TAG}.html" class="tag">#${TAG}</a> ' | ||||||
| 
 | 
 | ||||||
|     if len(tag_list) > 0 and len(tag_list[0]) > 1: |     if len(tag_list) > 0 and len(tag_list[0]) > 1: | ||||||
|         for tag in tag_list: |         for tag in tag_list: | ||||||
|  |             tag = tag.strip() | ||||||
|  |             if len(tag) < 2: | ||||||
|  |                 continue | ||||||
|             html_tags += Template(sTAG).safe_substitute({'TAG':tag}) |             html_tags += Template(sTAG).safe_substitute({'TAG':tag}) | ||||||
| 
 | 
 | ||||||
|     return html_tags |     return html_tags | ||||||
|  | @ -198,8 +202,8 @@ def article_to_html(article_dict): | ||||||
| 
 | 
 | ||||||
|     # Read out article txt file |     # Read out article txt file | ||||||
| 
 | 
 | ||||||
|     article_dict['DATE'] = time.strftime(dateFormat, time.strptime(article_dict['DATE'],"%x")) |     article_dict['DATE'] = time.strftime(dateFormat, time.strptime(article_dict['DATE'],dateFormat)) | ||||||
|     article_dict['TIME'] = time.strftime(timeFormat, time.strptime(article_dict['TIME'],"%X")) |     article_dict['TIME'] = time.strftime(timeFormat, time.strptime(article_dict['TIME'],timeFormat)) | ||||||
|     article_dict['TAGS'] = tags_to_html(article_dict['TAGS']) |     article_dict['TAGS'] = tags_to_html(article_dict['TAGS']) | ||||||
|      |      | ||||||
|     tplSub = { |     tplSub = { | ||||||
|  | @ -217,14 +221,29 @@ def article_to_html(article_dict): | ||||||
|     sARTICLE = Template(sARTICLE).safe_substitute(tplSub) |     sARTICLE = Template(sARTICLE).safe_substitute(tplSub) | ||||||
|     return sARTICLE |     return sARTICLE | ||||||
| 
 | 
 | ||||||
| def join_articles(artDir = articleDir): |  | ||||||
| 
 | 
 | ||||||
|  | def join_articles(list_of_articles): | ||||||
|  |     joined_html = "" | ||||||
|  |     articles_dict = {} | ||||||
|  |     for article in list_of_articles: | ||||||
|  |         # Bring articles into chronological order | ||||||
|  |         t = time.mktime(time.strptime(article['DATE'] + " " + article['TIME'], dateFormat + " " + timeFormat)) | ||||||
|  |         articles_dict[str(t)] = article | ||||||
|  |     dates_of_creation = [float(value) for value in articles_dict.keys()] | ||||||
|  |     dates_of_creation.sort(key=None,reverse=True) | ||||||
|  |     for date in dates_of_creation: | ||||||
|  |         joined_html += article_to_html(articles_dict[str(time.strftime(str(date)))]) | ||||||
|  |      | ||||||
|  |     return joined_html | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def join_articles_of_dir(artDir = articleDir): | ||||||
|     joined_html = "" |     joined_html = "" | ||||||
|     articles_dict = {} |     articles_dict = {} | ||||||
|     for name in [os.path.splitext(item)[0] for item in os.listdir(artDir) if not "~" in item]: |     for name in [os.path.splitext(item)[0] for item in os.listdir(artDir) if not "~" in item]: | ||||||
|         article = (parse_article(os.path.join(artDir, name + ".txt"))) |         article = (parse_article(os.path.join(artDir, name + ".txt"))) | ||||||
|         # Bring articles into chronological order |         # Bring articles into chronological order | ||||||
|         t = time.mktime(time.strptime(article['DATE'] + " " + article['TIME'], "%x %H:%M:%S")) |         t = time.mktime(time.strptime(article['DATE'] + " " + article['TIME'], dateFormat + " " + timeFormat)) | ||||||
|         articles_dict[str(t)] = article |         articles_dict[str(t)] = article | ||||||
|     dates_of_creation = [float(value) for value in articles_dict.keys()] |     dates_of_creation = [float(value) for value in articles_dict.keys()] | ||||||
|     dates_of_creation.sort(key=None,reverse=True) |     dates_of_creation.sort(key=None,reverse=True) | ||||||
|  | @ -238,8 +257,8 @@ def recent_to_html(article_dict): | ||||||
| 
 | 
 | ||||||
|     # Read out article txt file |     # Read out article txt file | ||||||
| 
 | 
 | ||||||
|     article_dict['DATE'] = time.strftime(dateFormat, time.strptime(article_dict['DATE'],"%x")) |     article_dict['DATE'] = time.strftime(dateFormat, time.strptime(article_dict['DATE'], dateFormat)) | ||||||
|     article_dict['TIME'] = time.strftime(timeFormat, time.strptime(article_dict['TIME'],"%X")) |     article_dict['TIME'] = time.strftime(timeFormat, time.strptime(article_dict['TIME'], timeFormat)) | ||||||
|     article_dict['TAGS'] = tags_to_html(article_dict['TAGS']) |     article_dict['TAGS'] = tags_to_html(article_dict['TAGS']) | ||||||
|      |      | ||||||
|     tplSub = { |     tplSub = { | ||||||
|  | @ -265,7 +284,7 @@ def recent_articles(amount): | ||||||
|     for name in [os.path.splitext(item)[0] for item in os.listdir(artDir) if not "~" in item]: |     for name in [os.path.splitext(item)[0] for item in os.listdir(artDir) if not "~" in item]: | ||||||
|         article = (parse_article(os.path.join(artDir, name + ".txt"))) |         article = (parse_article(os.path.join(artDir, name + ".txt"))) | ||||||
|         # Bring articles into chronological order |         # Bring articles into chronological order | ||||||
|         t = time.mktime(time.strptime(article['DATE'] + " " + article['TIME'], "%x %H:%M:%S")) |         t = time.mktime(time.strptime(article['DATE'] + " " + article['TIME'], dateFormat +  " " + timeFormat)) | ||||||
|         articles_dict[str(t)] = article |         articles_dict[str(t)] = article | ||||||
|     dates_of_creation = [float(value) for value in articles_dict.keys()] |     dates_of_creation = [float(value) for value in articles_dict.keys()] | ||||||
|     dates_of_creation.sort(key=None,reverse=True) |     dates_of_creation.sort(key=None,reverse=True) | ||||||
|  | @ -283,7 +302,7 @@ def archive_articles(): | ||||||
|     for article in articles: |     for article in articles: | ||||||
|         aName = article["FILENAME"] |         aName = article["FILENAME"] | ||||||
|         aPath = os.path.join(article["PATH"], aName) |         aPath = os.path.join(article["PATH"], aName) | ||||||
|         aDate = time.strptime(article["DATE"],"%x") |         aDate = time.strptime(article["DATE"], dateFormat) | ||||||
|         aMonth = aDate.tm_mon |         aMonth = aDate.tm_mon | ||||||
|         aYear = aDate.tm_year |         aYear = aDate.tm_year | ||||||
|          |          | ||||||
|  | @ -333,19 +352,24 @@ def list_articles(folder): | ||||||
|     for name in [os.path.splitext(item)[0] for item in os.listdir(folder) if not "~" in item]: |     for name in [os.path.splitext(item)[0] for item in os.listdir(folder) if not "~" in item]: | ||||||
|         article = (parse_article(os.path.join(folder, name + ".txt"))) |         article = (parse_article(os.path.join(folder, name + ".txt"))) | ||||||
|         # Bring articles into chronological order |         # Bring articles into chronological order | ||||||
|         t = time.mktime(time.strptime(article['DATE'] + " " + article['TIME'], "%x %H:%M:%S")) |         t = time.mktime(time.strptime(article['DATE'] + " " + article['TIME'], dateFormat + " " + timeFormat)) | ||||||
|         articles_dict[str(t)] = article |         articles_dict[str(t)] = article | ||||||
|      |      | ||||||
|     return articles_dict |     return articles_dict | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| def list_articles_by_tag(): | def list_articles_by_tag(): | ||||||
|     tags_dict = {} | 
 | ||||||
|     folder = articleDir |     folder = articleDir | ||||||
|     for name in [os.path.splitext(item)[0] for item in os.listdir(folder) if not "~" in item]: |     tags_dict = {} | ||||||
|         article = (parse_article(os.path.join(folder, name + ".txt"))) |     articles = [item for item in os.listdir(folder) if os.path.splitext(item)[1] == ".txt"] | ||||||
|  |     for name in articles: | ||||||
|  |         article = (parse_article(os.path.join(folder, name))) | ||||||
|         for tag in article['TAGS'].split(","): |         for tag in article['TAGS'].split(","): | ||||||
|             tag = tag.strip() |             tag = tag.strip() | ||||||
|  |             if len(tag) < 2: | ||||||
|  |                 continue | ||||||
|             if tag not in tags_dict.keys(): |             if tag not in tags_dict.keys(): | ||||||
|                 tags_dict[tag] = list() |                 tags_dict[tag] = list() | ||||||
|             tags_dict[tag].append(article) |             tags_dict[tag].append(article) | ||||||
|  | @ -354,7 +378,11 @@ def list_articles_by_tag(): | ||||||
|     for year in months: |     for year in months: | ||||||
|         for month in months[year]: |         for month in months[year]: | ||||||
|             monthFolder = os.path.join(archiveDir,str(year),str(month)) |             monthFolder = os.path.join(archiveDir,str(year),str(month)) | ||||||
|             for article in list_articles(monthFolder).values(): |              | ||||||
|  |             articles = [item for item in os.listdir(monthFolder) if os.path.splitext(item)[1] == ".txt"] | ||||||
|  |             for name in articles: | ||||||
|  |                 article = (parse_article(os.path.join(monthFolder, name))) | ||||||
|  |                  | ||||||
|                 for tag in article['TAGS'].split(","): |                 for tag in article['TAGS'].split(","): | ||||||
|                     tag = tag.strip() |                     tag = tag.strip() | ||||||
|                     if len(tag) < 2: |                     if len(tag) < 2: | ||||||
|  | @ -467,7 +495,7 @@ def templating(dic): | ||||||
| def build_index(): | def build_index(): | ||||||
|     param = {} |     param = {} | ||||||
|     param['sRECENT'] = recent_articles(amountRecent) |     param['sRECENT'] = recent_articles(amountRecent) | ||||||
|     param['sMAIN'] = join_articles() |     param['sMAIN'] = join_articles_of_dir() | ||||||
|     param['sMAIN_TITLE'] = l10nconf['CURRENT'] |     param['sMAIN_TITLE'] = l10nconf['CURRENT'] | ||||||
|     htmlString = templating(param) |     htmlString = templating(param) | ||||||
|     with open(htmlIndex,"w", encoding=l10nconf['BLOG_CHARSET']) as f: |     with open(htmlIndex,"w", encoding=l10nconf['BLOG_CHARSET']) as f: | ||||||
|  | @ -516,17 +544,24 @@ def build_archive_articles(): | ||||||
| def build_tag(tag,articles): | def build_tag(tag,articles): | ||||||
|     param={} |     param={} | ||||||
|     param['sRECENT'] = recent_articles(amountRecent) |     param['sRECENT'] = recent_articles(amountRecent) | ||||||
|     param['sMAIN'] = list_articles_by_tag() |     param['sMAIN'] = join_articles(articles) | ||||||
|     param['sMAIN_TITLE'] = l10nconf['TAG'] + " #" + tag |     param['sMAIN_TITLE'] = l10nconf['TAG'] + " #" + tag | ||||||
|     htmlTag = os.path.join(htmlDir,tag + ".html") |     htmlTag = os.path.join(htmlDir,tag + ".html") | ||||||
|     htmlString = templating(param) |     htmlString = templating(param) | ||||||
| #    with open(htmlTag,"w", encoding=l10nconf['BLOG_CHARSET']) as f: |     with open(htmlTag,"w", encoding=l10nconf['BLOG_CHARSET']) as f: | ||||||
| #        print(htmlString, file=f) |         print(htmlString, file=f) | ||||||
|  | 
 | ||||||
|  | def build_tag_cloud(): | ||||||
|  |     dic = list_articles_by_tag() | ||||||
|  |     for tag in dic.keys(): | ||||||
|  |         print(tag + " " + str(len(dic[tag]))) | ||||||
|  | 
 | ||||||
|      |      | ||||||
| def build_tags(): | def build_tags(): | ||||||
|     dic = list_articles_by_tag() |     dic = list_articles_by_tag() | ||||||
|     for tag in dic.keys(): |     for tag in dic.keys(): | ||||||
|         print(tag + " " + str(len(dic[tag]))) |         print(dic[tag]) | ||||||
|  |         build_tag(tag,dic[tag]) | ||||||
|      |      | ||||||
| 
 | 
 | ||||||
| def build_feed(): | def build_feed(): | ||||||
|  | @ -599,7 +634,7 @@ if vars(args)['target'] == 'draft': | ||||||
|         draft = os.path.join(blog_dir,"drafts",vars(args)['name'] + ".txt") |         draft = os.path.join(blog_dir,"drafts",vars(args)['name'] + ".txt") | ||||||
|         tpl = os.path.join(tplDir,"article.tpl") |         tpl = os.path.join(tplDir,"article.tpl") | ||||||
|         sTpl = open(tpl).read() |         sTpl = open(tpl).read() | ||||||
|         subs = {"ID":int(time.mktime(time.localtime())), "DATE" : time.strftime("%x",time.localtime()), "TIME" : time.strftime("%X",time.localtime()), |         subs = {"ID":int(time.mktime(time.localtime())), "DATE" : time.strftime(dateFormat, time.localtime()), "TIME" : time.strftime(timeFormat,time.localtime()), | ||||||
|                 "AUTHOR" : user |                 "AUTHOR" : user | ||||||
|                 } |                 } | ||||||
|          |          | ||||||
|  | @ -649,7 +684,7 @@ if vars(args)['target'] == 'article': | ||||||
|         article = os.path.join(blog_dir,"articles",vars(args)['name'] + ".txt") |         article = os.path.join(blog_dir,"articles",vars(args)['name'] + ".txt") | ||||||
|         tpl = os.path.join(tplDir,"article.tpl") |         tpl = os.path.join(tplDir,"article.tpl") | ||||||
|         sTpl = open(tpl).read() |         sTpl = open(tpl).read() | ||||||
|         subs = {"ID":int(time.mktime(time.localtime())), "DATE" : time.strftime("%x",time.localtime()), "TIME" : time.strftime("%X",time.localtime()), |         subs = {"ID":int(time.mktime(time.localtime())), "DATE" : time.strftime(dateFormat,time.localtime()), "TIME" : time.strftime(timeFormat,time.localtime()), | ||||||
|                 "AUTHOR" : user |                 "AUTHOR" : user | ||||||
|                 } |                 } | ||||||
|          |          | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue