Update WIP

This commit is contained in:
octospacc 2022-08-28 00:32:45 +02:00
parent 506f251a7b
commit 271a4323aa
4 changed files with 14 additions and 17 deletions

View File

@ -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)")

View File

@ -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}" '

View File

@ -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
View File

@ -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