Change md exts; Start adding support for HTML pages input

This commit is contained in:
octospacc 2022-07-21 19:15:30 +02:00
parent 719ddefb48
commit ad8379b419
3 changed files with 25 additions and 8 deletions

View File

@ -37,7 +37,7 @@ def ResetPublic():
pass pass
def DelTmp(): def DelTmp():
for Ext in FileExtensions['Pages']: for Ext in FileExtensions['Tmp']:
for File in Path('public').rglob('*.{}'.format(Ext)): for File in Path('public').rglob('*.{}'.format(Ext)):
os.remove(File) os.remove(File)
for Dir in ('public', 'public.gmi'): for Dir in ('public', 'public.gmi'):
@ -81,7 +81,7 @@ def Main(Args, FeedEntries):
Locale = LoadLocale(SiteLang) Locale = LoadLocale(SiteLang)
MastodonURL = Args.MastodonURL if Args.MastodonURL else '' MastodonURL = Args.MastodonURL if Args.MastodonURL else ''
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', 'md_in_html', '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', 'md_in_html', 'mdx_subscript', 'mdx_superscript', 'tables')
ActivityPubTypeFilter = Args.ActivityPubTypeFilter if Args.ActivityPubTypeFilter else 'Post' ActivityPubTypeFilter = Args.ActivityPubTypeFilter if Args.ActivityPubTypeFilter else 'Post'
FeedCategoryFilter = Args.FeedCategoryFilter if Args.FeedCategoryFilter else 'Blog' FeedCategoryFilter = Args.FeedCategoryFilter if Args.FeedCategoryFilter else 'Blog'

View File

@ -112,7 +112,7 @@ def GetHTMLPagesList(Pages, BlogName, SiteRoot, PathPrefix, Unite=[], Type='Page
def Preprocessor(Path, SiteRoot): def Preprocessor(Path, SiteRoot):
File = ReadFile(Path) File = ReadFile(Path)
Content, Titles, DashyTitles, Meta = '', [], [], { Content, Titles, DashyTitles, HTMLTitlesFound, Meta = '', [], [], False, {
'Template': 'Standard.html', 'Template': 'Standard.html',
'Style': '', 'Style': '',
'Type': '', 'Type': '',
@ -143,16 +143,32 @@ def Preprocessor(Path, SiteRoot):
elif lss.startswith('Order: '): elif lss.startswith('Order: '):
Meta['Order'] = int(lss[len('Order: '):]) Meta['Order'] = int(lss[len('Order: '):])
else: else:
if Path.endswith('.md'): Headings = ('h1', 'h2', 'h3', 'h4', 'h5', 'h6')
if Path.endswith('.html') and not HTMLTitlesFound:
Soup = BeautifulSoup(File, 'html.parser')
Tags = Soup.find_all()
#for t in Soup.find_all(Headings):
for t in Tags:
if t.name in Headings:
Title = '#'*int(t.name[1]) + ' ' + str(t.text)
DashTitle = DashifyTitle(Title.lstrip('#'), DashyTitles)
DashyTitles += [DashTitle]
Titles += [Title]
t.replace_with(MakeLinkableTitle(None, Title, DashTitle, 'md'))
print(Titles)
Content = str(Soup)
print(Content)
HTMLTitlesFound = True
elif Path.endswith('.md'):
if ls.startswith('#'): if ls.startswith('#'):
DashTitle = DashifyTitle(l.lstrip('#'), DashyTitles) DashTitle = DashifyTitle(l.lstrip('#'), DashyTitles)
DashyTitles += [DashTitle] DashyTitles += [DashTitle]
Titles += [l] Titles += [l]
Content += MakeLinkableTitle(l, ls, DashTitle, 'md') + '\n' Content += MakeLinkableTitle(None, ls, DashTitle, 'md') + '\n'
else: else:
Content += l + '\n' Content += l + '\n'
elif Path.endswith('.pug'): elif Path.endswith('.pug'):
if ls.startswith(('h1', 'h2', 'h3', 'h4', 'h5', 'h6')): if ls.startswith(Headings):
if ls[2:].startswith(("(class='NoTitle", '(class="NoTitle')): if ls[2:].startswith(("(class='NoTitle", '(class="NoTitle')):
Content += l + '\n' Content += l + '\n'
else: else:
@ -383,7 +399,7 @@ def MakeSite(TemplatesText, PartsText, ContextParts, ContextPartsText, ConfMenu,
PagePath = 'public/{}.html'.format(StripExt(File)) PagePath = 'public/{}.html'.format(StripExt(File))
if File.endswith('.md'): if File.endswith('.md'):
Content = markdown(Content, extensions=MarkdownExts) Content = markdown(Content, extensions=MarkdownExts)
elif File.endswith('.pug'): elif File.endswith(('.html','.pug')):
Content = ReadFile(PagePath) Content = ReadFile(PagePath)
HTML, ContentHTML, SlimHTML, Description, Image = PatchHTML( HTML, ContentHTML, SlimHTML, Description, Image = PatchHTML(
File=File, File=File,

View File

@ -13,7 +13,8 @@ from datetime import datetime
from pathlib import Path from pathlib import Path
FileExtensions = { FileExtensions = {
'Pages': ('md', 'pug')} 'Pages': ('html', 'md', 'pug'),
'Tmp': ('md', 'pug')}
def ReadFile(p): def ReadFile(p):
try: try: