mirror of
https://gitlab.com/octtspacc/staticoso
synced 2025-03-28 17:10:18 +01:00
INI config additions, no feed as sitemap
This commit is contained in:
parent
3f5534904d
commit
7e7837a04c
@ -437,7 +437,7 @@ def MakeSite(TemplatesText, PartsText, ContextParts, ContextPartsText, SiteName,
|
|||||||
Categories=Categories,
|
Categories=Categories,
|
||||||
SiteLang=SiteLang,
|
SiteLang=SiteLang,
|
||||||
Locale=Locale)
|
Locale=Locale)
|
||||||
if Minify not in ('False', 'None'):
|
if Minify:
|
||||||
HTML = DoMinify(HTML)
|
HTML = DoMinify(HTML)
|
||||||
WriteFile(PagePath, HTML)
|
WriteFile(PagePath, HTML)
|
||||||
MadePages += [[File, Content, Titles, Meta, ContentHTML, SlimHTML, Description, Image]]
|
MadePages += [[File, Content, Titles, Meta, ContentHTML, SlimHTML, Description, Image]]
|
||||||
@ -472,7 +472,7 @@ def GetConfMenu(Conf):
|
|||||||
print(Menu)
|
print(Menu)
|
||||||
return Menu
|
return Menu
|
||||||
|
|
||||||
def Main(Args, FeedEntries, SitemapOut):
|
def Main(Args, FeedEntries):
|
||||||
HavePages, HavePosts = False, False
|
HavePages, HavePosts = False, False
|
||||||
SiteConf = LoadConf('Site.ini')
|
SiteConf = LoadConf('Site.ini')
|
||||||
#SiteMenu = GetConfMenu(SiteConf)
|
#SiteMenu = GetConfMenu(SiteConf)
|
||||||
@ -487,6 +487,15 @@ def Main(Args, FeedEntries, SitemapOut):
|
|||||||
MastodonToken = Args.MastodonToken if Args.MastodonToken else ''
|
MastodonToken = Args.MastodonToken if Args.MastodonToken else ''
|
||||||
MarkdownExts = literal_eval(Args.MarkdownExts) if Args.MarkdownExts else EvalOpt(ReadConf(SiteConf, 'Site', 'MarkdownExts')) if ReadConf(SiteConf, 'Site', 'MarkdownExts') else ['attr_list', 'def_list', 'markdown_del_ins', 'mdx_subscript', 'mdx_superscript']
|
MarkdownExts = literal_eval(Args.MarkdownExts) if Args.MarkdownExts else EvalOpt(ReadConf(SiteConf, 'Site', 'MarkdownExts')) if ReadConf(SiteConf, 'Site', 'MarkdownExts') else ['attr_list', 'def_list', 'markdown_del_ins', 'mdx_subscript', 'mdx_superscript']
|
||||||
|
|
||||||
|
Minify = False # True if Args.Minify and Args.Minify not in ('False', 'None') else False
|
||||||
|
if Args.Minify != None:
|
||||||
|
if Args.Minify not in ('False', 'None'):
|
||||||
|
Minify = True
|
||||||
|
else:
|
||||||
|
if ReadConf(SiteConf, 'Site', 'Minify') != None:
|
||||||
|
if ReadConf(SiteConf, 'Site', 'Minify') not in ('False', 'None'):
|
||||||
|
Minify = True
|
||||||
|
|
||||||
AutoCategories = False
|
AutoCategories = False
|
||||||
if Args.AutoCategories != None:
|
if Args.AutoCategories != None:
|
||||||
if literal_eval(Args.AutoCategories) == True:
|
if literal_eval(Args.AutoCategories) == True:
|
||||||
@ -527,34 +536,23 @@ def Main(Args, FeedEntries, SitemapOut):
|
|||||||
FolderRoots=literal_eval(Args.FolderRoots) if Args.FolderRoots else {},
|
FolderRoots=literal_eval(Args.FolderRoots) if Args.FolderRoots else {},
|
||||||
SiteLang=SiteLang,
|
SiteLang=SiteLang,
|
||||||
Locale=Locale,
|
Locale=Locale,
|
||||||
Minify=Args.Minify if Args.Minify else 'None',
|
Minify=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=MarkdownExts,
|
MarkdownExts=MarkdownExts,
|
||||||
AutoCategories=AutoCategories) # Args.AutoCategories if Args.AutoCategories else EvalOpt(ReadConf(SiteConf, 'Site', 'AutoCategories')) if ReadConf(SiteConf, 'Site', 'AutoCategories') else None)
|
AutoCategories=AutoCategories) # Args.AutoCategories if Args.AutoCategories else EvalOpt(ReadConf(SiteConf, 'Site', 'AutoCategories')) if ReadConf(SiteConf, 'Site', 'AutoCategories') else None)
|
||||||
|
|
||||||
if FeedEntries != 0:
|
if FeedEntries != 0:
|
||||||
print("[I] Generating Feeds")
|
print("[I] Generating Feeds")
|
||||||
MakeFeed(
|
for FeedType in (True, False):
|
||||||
Pages=Pages,
|
MakeFeed(
|
||||||
SiteName=SiteName,
|
Pages=Pages,
|
||||||
SiteTagline=SiteTagline,
|
SiteName=SiteName,
|
||||||
SiteDomain=SiteDomain,
|
SiteTagline=SiteTagline,
|
||||||
MaxEntries=FeedEntries,
|
SiteDomain=SiteDomain,
|
||||||
Lang=SiteLang,
|
MaxEntries=FeedEntries,
|
||||||
FullMap=False,
|
Lang=SiteLang,
|
||||||
Minify=True if Args.Minify and Args.Minify not in ('False', 'None') else False)
|
FullSite=FeedType,
|
||||||
|
Minify=Minify) # True if Args.Minify and Args.Minify not in ('False', 'None') else False)
|
||||||
if SitemapOut:
|
|
||||||
print("[I] Generating Sitemap")
|
|
||||||
MakeFeed(
|
|
||||||
Pages=Pages,
|
|
||||||
SiteName=SiteName,
|
|
||||||
SiteTagline=SiteTagline,
|
|
||||||
SiteDomain=SiteDomain,
|
|
||||||
MaxEntries=FeedEntries,
|
|
||||||
Lang=SiteLang,
|
|
||||||
FullMap=True,
|
|
||||||
Minify=True if Args.Minify and Args.Minify not in ('False', 'None') else False)
|
|
||||||
|
|
||||||
if ActivityPub and MastodonURL and MastodonToken and SiteDomain:
|
if ActivityPub and MastodonURL and MastodonToken and SiteDomain:
|
||||||
print("[I] Mastodon Stuff")
|
print("[I] Mastodon Stuff")
|
||||||
@ -620,13 +618,10 @@ if __name__ == '__main__':
|
|||||||
import lxml
|
import lxml
|
||||||
from Modules.Feed import *
|
from Modules.Feed import *
|
||||||
FeedEntries = Args.FeedEntries if Args.FeedEntries or Args.FeedEntries == 0 else 10
|
FeedEntries = Args.FeedEntries if Args.FeedEntries or Args.FeedEntries == 0 else 10
|
||||||
SitemapOut = True if Args.SitemapOut else False
|
|
||||||
except:
|
except:
|
||||||
print("[E] Can't load the XML libraries. XML Feeds and Sitemaps generation is disabled. Make sure the 'lxml' library is installed.")
|
print("[E] Can't load the XML libraries. XML Feeds Generation is Disabled. Make sure the 'lxml' library is installed.")
|
||||||
FeedEntries = 0
|
FeedEntries = 0
|
||||||
SitemapOut = False
|
|
||||||
|
|
||||||
Main(
|
Main(
|
||||||
Args=Args,
|
Args=Args,
|
||||||
FeedEntries=FeedEntries,
|
FeedEntries=FeedEntries)
|
||||||
SitemapOut=SitemapOut)
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
from Libs.feedgen.feed import FeedGenerator
|
from Libs.feedgen.feed import FeedGenerator
|
||||||
from Modules.Utils import *
|
from Modules.Utils import *
|
||||||
|
|
||||||
def MakeFeed(Pages, SiteName, SiteTagline, SiteDomain, MaxEntries, Lang, FullMap=False, Minify=False):
|
def MakeFeed(Pages, SiteName, SiteTagline, SiteDomain, MaxEntries, Lang, FullSite=False, Minify=False):
|
||||||
Feed = FeedGenerator()
|
Feed = FeedGenerator()
|
||||||
Link = SiteDomain if SiteDomain else ' '
|
Link = SiteDomain if SiteDomain else ' '
|
||||||
Feed.id(Link)
|
Feed.id(Link)
|
||||||
@ -24,16 +24,14 @@ def MakeFeed(Pages, SiteName, SiteTagline, SiteDomain, MaxEntries, Lang, FullMap
|
|||||||
Feed.language(Lang)
|
Feed.language(Lang)
|
||||||
|
|
||||||
DoPages = []
|
DoPages = []
|
||||||
if FullMap:
|
|
||||||
MaxEntries = 50000 # Sitemap standard limit
|
|
||||||
for e in Pages:
|
for e in Pages:
|
||||||
if MaxEntries != 0 and (FullMap or (not FullMap and e[3]['Type'] == 'Post')):
|
if FullSite or (not FullSite and MaxEntries != 0 and e[3]['Type'] == 'Post'): # No entry limit if site feed
|
||||||
DoPages += [e]
|
DoPages += [e]
|
||||||
MaxEntries -= 1
|
MaxEntries -= 1
|
||||||
DoPages.reverse()
|
DoPages.reverse()
|
||||||
|
|
||||||
for File, Content, Titles, Meta, ContentHTML, SlimHTML, Description, Image in DoPages:
|
for File, Content, Titles, Meta, ContentHTML, SlimHTML, Description, Image in DoPages:
|
||||||
if FullMap or (not FullMap and Meta['Type'] == 'Post'):
|
if FullSite or (not FullSite and Meta['Type'] == 'Post'):
|
||||||
Entry = Feed.add_entry()
|
Entry = Feed.add_entry()
|
||||||
File = '{}.html'.format(StripExt(File))
|
File = '{}.html'.format(StripExt(File))
|
||||||
Content = ReadFile('public/'+File)
|
Content = ReadFile('public/'+File)
|
||||||
@ -44,15 +42,18 @@ def MakeFeed(Pages, SiteName, SiteTagline, SiteDomain, MaxEntries, Lang, FullMap
|
|||||||
Entry.title(Meta['Title'] if Meta['Title'] else ' ')
|
Entry.title(Meta['Title'] if Meta['Title'] else ' ')
|
||||||
Entry.description(Description)
|
Entry.description(Description)
|
||||||
Entry.link(href=Link, rel='alternate')
|
Entry.link(href=Link, rel='alternate')
|
||||||
Entry.content(ContentHTML, type='html')
|
if not FullSite: # Avoid making an enormous site feed file...
|
||||||
|
Entry.content(ContentHTML, type='html')
|
||||||
if CreatedOn:
|
if CreatedOn:
|
||||||
Entry.pubDate(CreatedOn)
|
Entry.pubDate(CreatedOn)
|
||||||
EditedOn = EditedOn if EditedOn else CreatedOn if CreatedOn and not EditedOn else '1970-01-01T00:00+00:00'
|
EditedOn = EditedOn if EditedOn else CreatedOn if CreatedOn and not EditedOn else '1970-01-01T00:00+00:00'
|
||||||
Entry.updated(EditedOn)
|
Entry.updated(EditedOn)
|
||||||
|
|
||||||
if FullMap:
|
if not os.path.exists('public/feed'):
|
||||||
Feed.rss_file('public/sitemap.xml', pretty=(not Minify))
|
|
||||||
else:
|
|
||||||
os.mkdir('public/feed')
|
os.mkdir('public/feed')
|
||||||
Feed.atom_file('public/feed/atom.xml', pretty=(not Minify))
|
if FullSite:
|
||||||
Feed.rss_file('public/feed/rss.xml', pretty=(not Minify))
|
FeedType = 'site.'
|
||||||
|
else:
|
||||||
|
FeedType = ''
|
||||||
|
Feed.atom_file('public/feed/' + FeedType + 'atom.xml', pretty=(not Minify))
|
||||||
|
Feed.rss_file('public/feed/' + FeedType + 'rss.xml', pretty=(not Minify))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user