mirror of
				https://gitlab.com/octtspacc/staticoso
				synced 2025-06-05 22:09:23 +02:00 
			
		
		
		
	Merge branch 'dev' into 'main'
Add CLI setting for site root See merge request octtspacc/staticoso!2
This commit is contained in:
		| @@ -7,6 +7,7 @@ | |||||||
| | Copyright (C) 2022, OctoSpacc       | | | Copyright (C) 2022, OctoSpacc       | | ||||||
| | ================================= """ | | ================================= """ | ||||||
|  |  | ||||||
|  | import argparse | ||||||
| import os | import os | ||||||
| import shutil | import shutil | ||||||
| from markdown import Markdown | from markdown import Markdown | ||||||
| @@ -149,7 +150,7 @@ def PatchHTML(Template, Parts, HTMLPagesList, Content, Titles, Meta): | |||||||
| def FileToStr(File, Truncate=''): | def FileToStr(File, Truncate=''): | ||||||
| 	return str(File)[len(Truncate):] | 	return str(File)[len(Truncate):] | ||||||
|  |  | ||||||
| def GetHTMLPagesList(Pages): | def GetHTMLPagesList(Pages, Root): | ||||||
| 	List = '' | 	List = '' | ||||||
| 	LastParent = [] | 	LastParent = [] | ||||||
| 	for File, Content, Titles, Meta in Pages: | 	for File, Content, Titles, Meta in Pages: | ||||||
| @@ -167,26 +168,9 @@ def GetHTMLPagesList(Pages): | |||||||
| 			Title = Meta['Title'] if Meta['Title'] else 'Untitled' if not Titles else Titles[0].lstrip('#') | 			Title = Meta['Title'] if Meta['Title'] else 'Untitled' if not Titles else Titles[0].lstrip('#') | ||||||
| 			Title = '[{}]({})'.format( | 			Title = '[{}]({})'.format( | ||||||
| 				Title, | 				Title, | ||||||
| 				'/{}.html'.format(File.rstrip('.pug'))) | 				'{}{}.html'.format(Root, File.rstrip('.pug'))) | ||||||
| 			List += Levels + Title + '\n' | 			List += Levels + Title + '\n' | ||||||
| 	return Markdown().convert(List) | 	return Markdown().convert(List) | ||||||
| """ |  | ||||||
| 	for t in Titles: |  | ||||||
| 		n = t.split(' ')[0].count('#') |  | ||||||
| 		Heading = '- ' * n |  | ||||||
| 		Title = t.lstrip('#') |  | ||||||
| 		Title = '[{}](#{})'.format(Title, DashifyStr(Title)) |  | ||||||
| 		MDTitles += Heading + Title + '\n' |  | ||||||
|  |  | ||||||
| 	Pages = '' |  | ||||||
| 	for File in Path('Pages').rglob('*.pug'): |  | ||||||
| 		File = FileToStr(File, 'Pages/') |  | ||||||
| 		Content = ReadFile(File) |  | ||||||
| 	for File in Path('Pages').rglob('*.md'): |  | ||||||
| 		File = FileToStr(File, 'Pages/') |  | ||||||
| 		Content = ReadFile(File) |  | ||||||
| 	return Pages |  | ||||||
| """ |  | ||||||
|  |  | ||||||
| def DelTmp(): | def DelTmp(): | ||||||
| 	for File in Path('public').rglob('*.pug'): | 	for File in Path('public').rglob('*.pug'): | ||||||
| @@ -194,14 +178,14 @@ def DelTmp(): | |||||||
| 	for File in Path('public').rglob('*.md'): | 	for File in Path('public').rglob('*.md'): | ||||||
| 		os.remove(File) | 		os.remove(File) | ||||||
|  |  | ||||||
| def MakeSite(Templates, Parts): | def MakeSite(Templates, Parts, Root): | ||||||
| 	Pages = [] | 	Pages = [] | ||||||
| 	for File in Path('Pages').rglob('*.pug'): | 	for File in Path('Pages').rglob('*.pug'): | ||||||
| 		File = FileToStr(File, 'Pages/') | 		File = FileToStr(File, 'Pages/') | ||||||
| 		Content, Titles, Meta = PreProcessor('Pages/{}'.format(File)) | 		Content, Titles, Meta = PreProcessor('Pages/{}'.format(File)) | ||||||
| 		Pages += [[File, Content, Titles, Meta]] | 		Pages += [[File, Content, Titles, Meta]] | ||||||
| 	PugCompileList(Pages) | 	PugCompileList(Pages) | ||||||
| 	HTMLPagesList = GetHTMLPagesList(Pages) | 	HTMLPagesList = GetHTMLPagesList(Pages, Root) | ||||||
| 	for File, Content, Titles, Meta in Pages: | 	for File, Content, Titles, Meta in Pages: | ||||||
| 		Template = Templates[Meta['Template']] | 		Template = Templates[Meta['Template']] | ||||||
| 		Template = Template.replace( | 		Template = Template.replace( | ||||||
| @@ -228,14 +212,20 @@ def MakeSite(Templates, Parts): | |||||||
| 				Titles, Meta)) | 				Titles, Meta)) | ||||||
| 	DelTmp() | 	DelTmp() | ||||||
|  |  | ||||||
| def Main(): | def Main(Args): | ||||||
| 	ResetPublic() | 	ResetPublic() | ||||||
|  | 	Root = Args.Root if Args.Root else '/' | ||||||
|  |  | ||||||
| 	Templates = LoadFromDir('Templates') | 	Templates = LoadFromDir('Templates') | ||||||
| 	Parts = LoadFromDir('Parts') | 	Parts = LoadFromDir('Parts') | ||||||
| 	#HTMLPages = SearchIndexedPages() | 	#HTMLPages = SearchIndexedPages() | ||||||
| 	shutil.copytree('Pages', 'public') | 	shutil.copytree('Pages', 'public') | ||||||
| 	MakeSite(Templates, Parts) #, HTMLPages) | 	MakeSite(Templates, Parts, Root) | ||||||
| 	os.system("cp -R Assets/* public/") | 	os.system("cp -R Assets/* public/") | ||||||
|  |  | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
| 	Main() | 	Parser = argparse.ArgumentParser() | ||||||
|  | 	Parser.add_argument('--Root', type=str) | ||||||
|  | 	Args = Parser.parse_args() | ||||||
|  |  | ||||||
|  | 	Main(Args) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user