mirror of https://gitlab.com/octtspacc/staticoso
Autogen. missing category pages
This commit is contained in:
parent
2a8f563a63
commit
bf438c75f3
|
@ -115,13 +115,6 @@ def FormatTitles(Titles):
|
||||||
MDTitles += Heading + Title + '\n'
|
MDTitles += Heading + Title + '\n'
|
||||||
return markdown(MDTitles)
|
return markdown(MDTitles)
|
||||||
|
|
||||||
def LoadFromDir(Dir, Rglob):
|
|
||||||
Contents = {}
|
|
||||||
for File in Path(Dir).rglob(Rglob):
|
|
||||||
File = str(File)[len(Dir)+1:]
|
|
||||||
Contents.update({File: ReadFile('{}/{}'.format(Dir, File))})
|
|
||||||
return Contents
|
|
||||||
|
|
||||||
def Preprocessor(Path, SiteRoot):
|
def Preprocessor(Path, SiteRoot):
|
||||||
File = ReadFile(Path)
|
File = ReadFile(Path)
|
||||||
Content, Titles, DashyTitles, Meta = '', [], [], {
|
Content, Titles, DashyTitles, Meta = '', [], [], {
|
||||||
|
@ -344,7 +337,7 @@ def DoMinify(HTML):
|
||||||
convert_charrefs=True,
|
convert_charrefs=True,
|
||||||
keep_pre=True)
|
keep_pre=True)
|
||||||
|
|
||||||
def MakeSite(TemplatesText, PartsText, ContextParts, ContextPartsText, SiteName, SiteTagline, SiteDomain, SiteRoot, FolderRoots, Locale, Minify, Sorting, MarkdownExts):
|
def MakeSite(TemplatesText, PartsText, ContextParts, ContextPartsText, SiteName, SiteTagline, SiteDomain, SiteRoot, FolderRoots, Locale, Minify, Sorting, MarkdownExts, AutoCategories):
|
||||||
PagesPaths, PostsPaths, Pages, MadePages, Categories = [], [], [], [], {}
|
PagesPaths, PostsPaths, Pages, MadePages, Categories = [], [], [], [], {}
|
||||||
for Ext in Extensions['Pages']:
|
for Ext in Extensions['Pages']:
|
||||||
for File in Path('Pages').rglob('*.{}'.format(Ext)):
|
for File in Path('Pages').rglob('*.{}'.format(Ext)):
|
||||||
|
@ -374,22 +367,43 @@ def MakeSite(TemplatesText, PartsText, ContextParts, ContextPartsText, SiteName,
|
||||||
if not Meta['Type']:
|
if not Meta['Type']:
|
||||||
Meta['Type'] = Type
|
Meta['Type'] = Type
|
||||||
Pages += [[File, Content, Titles, Meta]]
|
Pages += [[File, Content, Titles, Meta]]
|
||||||
for Category in Meta['Categories']:
|
for Cat in Meta['Categories']:
|
||||||
Categories.update({Category:''})
|
Categories.update({Cat:''})
|
||||||
PugCompileList(Pages)
|
PugCompileList(Pages)
|
||||||
|
|
||||||
if Categories:
|
if Categories:
|
||||||
print("[I] Generating Category Lists")
|
print("[I] Generating Category Lists")
|
||||||
for Category in Categories:
|
for Cat in Categories:
|
||||||
for Type in ('Page', 'Post'):
|
for Type in ('Page', 'Post'):
|
||||||
Categories[Category] += GetHTMLPagesList(
|
Categories[Cat] += GetHTMLPagesList(
|
||||||
Pages=Pages,
|
Pages=Pages,
|
||||||
SiteRoot=SiteRoot,
|
SiteRoot=SiteRoot,
|
||||||
PathPrefix=GetLevels('Categories/'),
|
PathPrefix=GetLevels('Categories/'),
|
||||||
Type=Type,
|
Type=Type,
|
||||||
Category=Category,
|
Category=Cat,
|
||||||
For='Categories')
|
For='Categories')
|
||||||
|
|
||||||
|
if AutoCategories:
|
||||||
|
Dir = 'public/Categories'
|
||||||
|
for Cat in Categories:
|
||||||
|
Exists = False
|
||||||
|
for File in Path(Dir).rglob(str(Cat)+'.*'):
|
||||||
|
Exists = True
|
||||||
|
break
|
||||||
|
if not Exists:
|
||||||
|
File = 'Categories/{}.md'.format(Cat)
|
||||||
|
FilePath = 'public/{}'.format(File)
|
||||||
|
WriteFile(FilePath, """\
|
||||||
|
// Title: {Category}
|
||||||
|
// Type: Page
|
||||||
|
|
||||||
|
# {Category}
|
||||||
|
|
||||||
|
<div><span>[HTML:Category:{Category}]</span></div>
|
||||||
|
""".format(Category=Cat))
|
||||||
|
Content, Titles, Meta = Preprocessor(FilePath, SiteRoot)
|
||||||
|
Pages += [[File, Content, Titles, Meta]]
|
||||||
|
|
||||||
print("[I] Writing Pages")
|
print("[I] Writing Pages")
|
||||||
for File, Content, Titles, Meta in Pages:
|
for File, Content, Titles, Meta in Pages:
|
||||||
HTMLPagesList = GetHTMLPagesList(
|
HTMLPagesList = GetHTMLPagesList(
|
||||||
|
@ -467,7 +481,8 @@ def Main(Args, FeedEntries):
|
||||||
Locale=Locale,
|
Locale=Locale,
|
||||||
Minify=Args.Minify if Args.Minify else 'None',
|
Minify=Args.Minify if Args.Minify else 'None',
|
||||||
Sorting=SetSorting(literal_eval(Args.ContextParts) if Args.ContextParts else {}),
|
Sorting=SetSorting(literal_eval(Args.ContextParts) if Args.ContextParts else {}),
|
||||||
MarkdownExts=literal_eval(Args.MarkdownExts) if Args.MarkdownExts else ['attr_list', 'def_list', 'markdown_del_ins', 'mdx_subscript', 'mdx_superscript'])
|
MarkdownExts=literal_eval(Args.MarkdownExts) if Args.MarkdownExts else ['attr_list', 'def_list', 'markdown_del_ins', 'mdx_subscript', 'mdx_superscript'],
|
||||||
|
AutoCategories=Args.AutoCategories)
|
||||||
|
|
||||||
if FeedEntries != 0:
|
if FeedEntries != 0:
|
||||||
print("[I] Generating Feeds")
|
print("[I] Generating Feeds")
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
def ReadFile(p):
|
def ReadFile(p):
|
||||||
try:
|
try:
|
||||||
|
@ -35,6 +36,13 @@ def FileToStr(File, Truncate=''):
|
||||||
def IgnoreFiles(Dir, Files):
|
def IgnoreFiles(Dir, Files):
|
||||||
return [f for f in Files if os.path.isfile(os.path.join(Dir, f))]
|
return [f for f in Files if os.path.isfile(os.path.join(Dir, f))]
|
||||||
|
|
||||||
|
def LoadFromDir(Dir, Rglob):
|
||||||
|
Contents = {}
|
||||||
|
for File in Path(Dir).rglob(Rglob):
|
||||||
|
File = str(File)[len(Dir)+1:]
|
||||||
|
Contents.update({File: ReadFile('{}/{}'.format(Dir, File))})
|
||||||
|
return Contents
|
||||||
|
|
||||||
def StripExt(Path):
|
def StripExt(Path):
|
||||||
return ".".join(Path.split('.')[:-1])
|
return ".".join(Path.split('.')[:-1])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue