mirror of https://gitlab.com/octtspacc/staticoso
Update WIP
This commit is contained in:
parent
506f251a7b
commit
271a4323aa
|
@ -11,6 +11,7 @@
|
|||
import argparse
|
||||
import os
|
||||
import shutil
|
||||
import time
|
||||
from ast import literal_eval
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
@ -19,7 +20,7 @@ try:
|
|||
from Modules.ActivityPub import *
|
||||
ActivityPub = True
|
||||
except:
|
||||
print("[W] ⚠️ Can't load the ActivityPub module. Its use is disabled. Make sure the 'requests' library is installed.")
|
||||
print("[W] ⚠ Can't load the ActivityPub module. Its use is disabled. Make sure the 'requests' library is installed.")
|
||||
ActivityPub = False
|
||||
|
||||
from Modules.Config import *
|
||||
|
@ -99,11 +100,6 @@ def GetModifiedFiles(OutDir):
|
|||
for File in All:
|
||||
if File['SrcTime'] > File['ObjTime']:
|
||||
Mod += [File['Tmp']]
|
||||
#Latest = 0
|
||||
#for File in Sources:
|
||||
# if File['t'] > Latest:
|
||||
# Latest = File['t']
|
||||
#Meta = ReadFile('staticoso.meta')
|
||||
return Mod
|
||||
|
||||
def Main(Args, FeedEntries):
|
||||
|
@ -155,6 +151,7 @@ def Main(Args, FeedEntries):
|
|||
if CleanBuild:
|
||||
print("[I] Building Clean")
|
||||
ResetOutputDir(OutputDir)
|
||||
LimitFiles = False
|
||||
else:
|
||||
print("[I] Building Differentially")
|
||||
LimitFiles = GetModifiedFiles(OutputDir)
|
||||
|
@ -258,14 +255,11 @@ def Main(Args, FeedEntries):
|
|||
print("[I] Copying Assets")
|
||||
os.system(f"cp -R Assets/* {OutputDir}/")
|
||||
|
||||
print("[I] ✅ Done!")
|
||||
|
||||
if __name__ == '__main__':
|
||||
Parser = argparse.ArgumentParser()
|
||||
Parser.add_argument('--CleanBuild', action='store_true')
|
||||
Parser.add_argument('--OutputDir', type=str)
|
||||
#Parser.add_argument('--InputDir', type=str)
|
||||
#Parser.add_argument('--InputFiles', type=str, nargs='+')
|
||||
Parser.add_argument('--Sorting', type=str)
|
||||
Parser.add_argument('--SiteLang', type=str)
|
||||
Parser.add_argument('--SiteRoot', type=str)
|
||||
|
@ -298,9 +292,10 @@ if __name__ == '__main__':
|
|||
from Modules.Feed import *
|
||||
FeedEntries = Args.FeedEntries if Args.FeedEntries else 'Default'
|
||||
except:
|
||||
print("[W] ⚠️ Can't load the XML libraries. XML Feeds Generation is Disabled. Make sure the 'lxml' library is installed.")
|
||||
print("[W] ⚠ Can't load the XML libraries. XML Feeds Generation is Disabled. Make sure the 'lxml' library is installed.")
|
||||
FeedEntries = 0
|
||||
|
||||
Main(
|
||||
Args=Args,
|
||||
FeedEntries=FeedEntries)
|
||||
print(f"[I] ✅ Done! ({round(time.process_time(),3)}s)")
|
||||
|
|
|
@ -16,7 +16,7 @@ def PugCompileList(OutputDir, Pages, LimitFiles):
|
|||
# Pug-cli seems to shit itself with folder paths as input, so we pass ALL the files as arguments
|
||||
Paths = ''
|
||||
for File, Content, Titles, Meta in Pages:
|
||||
if File.lower().endswith('.pug') and File in LimitFiles:
|
||||
if File.lower().endswith('.pug') and (LimitFiles == False or File in LimitFiles):
|
||||
Path = f'{OutputDir}/{File}'
|
||||
WriteFile(Path, Content)
|
||||
Paths += f'"{Path}" '
|
||||
|
|
|
@ -135,7 +135,7 @@ def TemplatePreprocessor(Text):
|
|||
Meta.update({i:MetaDefault[i]})
|
||||
return Meta
|
||||
|
||||
def PagePreprocessor(Path, Type, SiteTemplate, SiteRoot, GlobalMacros):
|
||||
def PagePreprocessor(Path, Type, SiteTemplate, SiteRoot, GlobalMacros, LightRun=False):
|
||||
File = ReadFile(Path)
|
||||
Path = Path.lower()
|
||||
Content, Titles, DashyTitles, HTMLTitlesFound, Macros, Meta, MetaDefault = '', [], [], False, '', '', {
|
||||
|
@ -187,7 +187,6 @@ def PagePreprocessor(Path, Type, SiteTemplate, SiteRoot, GlobalMacros):
|
|||
DashyTitles += [DashTitle]
|
||||
Titles += [Title]
|
||||
Title = MakeLinkableTitle(None, Title, DashTitle, 'md')
|
||||
#Title = Title.replace(' </h{Index}>', '</h{Index}>')
|
||||
Title = Title.replace('> </', '> </')
|
||||
Title = Title.replace(' </', '</')
|
||||
Content += Title + '\n'
|
||||
|
@ -392,13 +391,15 @@ def MakeSite(OutputDir, LimitFiles, TemplatesText, StaticPartsText, DynamicParts
|
|||
for Type in ['Page', 'Post']:
|
||||
if Type == 'Page':
|
||||
Files = PagesPaths
|
||||
PathPrefix = ''
|
||||
elif Type == 'Post':
|
||||
Files = PostsPaths
|
||||
PathPrefix = 'Posts/'
|
||||
for File in Files:
|
||||
Content, Titles, Meta = PagePreprocessor(f"{Type}s/{File}", Type, SiteTemplate, SiteRoot, GlobalMacros)
|
||||
if Type != 'Page':
|
||||
File = f"{Type}s/{File}"
|
||||
Pages += [[File, Content, Titles, Meta]]
|
||||
TempPath = f"{PathPrefix}{File}"
|
||||
LightRun = False if LimitFiles == False or TempPath in LimitFiles else True
|
||||
Content, Titles, Meta = PagePreprocessor(f"{Type}s/{File}", Type, SiteTemplate, SiteRoot, GlobalMacros, LightRun=LightRun)
|
||||
Pages += [[TempPath, Content, Titles, Meta]]
|
||||
for Cat in Meta['Categories']:
|
||||
Categories.update({Cat:''})
|
||||
PugCompileList(OutputDir, Pages, LimitFiles)
|
||||
|
|
1
TODO
1
TODO
|
@ -1,5 +1,6 @@
|
|||
- Check if external tools are installed
|
||||
- Specify input folder(s) and files (idea is Makefile compatibility too)
|
||||
- Customize meta line source
|
||||
- Show page size/words/time in meta line
|
||||
- Add feed support for diary-like pages
|
||||
- Fix excess whitespace in some section/menu titles
|
||||
|
|
Loading…
Reference in New Issue