mirror of https://gitlab.com/octtspacc/staticoso
Fix some Open Graph issues
This commit is contained in:
parent
a6b35433ba
commit
2a1a55aa81
|
@ -15,6 +15,8 @@ Feel free to experiment with all of this stuff!
|
||||||
- [pug-cli >= 1.0.0-alpha6](https://npmjs.com/package/pug-cli)
|
- [pug-cli >= 1.0.0-alpha6](https://npmjs.com/package/pug-cli)
|
||||||
|
|
||||||
## Features roadmap
|
## Features roadmap
|
||||||
|
- [-] Open Graph support
|
||||||
|
- [ ] Custom categories for blog posts
|
||||||
- [x] Custom static page parts programmable by context
|
- [x] Custom static page parts programmable by context
|
||||||
- [x] Handle showing creation and modified date for posts
|
- [x] Handle showing creation and modified date for posts
|
||||||
- [x] Generation of category pages (ex. page with list of blog posts)
|
- [x] Generation of category pages (ex. page with list of blog posts)
|
||||||
|
|
|
@ -56,9 +56,16 @@ def GetTitle(Meta, Titles, Prefer='MetaTitle'):
|
||||||
Title = Meta['HTMLTitle'] if Meta['HTMLTitle'] else Meta['Title'] if Meta['Title'] else Titles[0].lstrip('#') if Titles else 'Untitled'
|
Title = Meta['HTMLTitle'] if Meta['HTMLTitle'] else Meta['Title'] if Meta['Title'] else Titles[0].lstrip('#') if Titles else 'Untitled'
|
||||||
if Meta['Type'] == 'Post':
|
if Meta['Type'] == 'Post':
|
||||||
# TODO: This hardcodes my blog name, bad, will fix asap
|
# TODO: This hardcodes my blog name, bad, will fix asap
|
||||||
Title += ' - Blogocto'
|
Title += ' - blogoctt'
|
||||||
return Title
|
return Title
|
||||||
|
|
||||||
|
def GetDescription(Meta, Prefer='MetaDescription'):
|
||||||
|
if Prefer == 'Description':
|
||||||
|
Description = Meta['Description']
|
||||||
|
elif Prefer == 'MetaDescription':
|
||||||
|
Description = Meta['Description']
|
||||||
|
return Description
|
||||||
|
|
||||||
def GetTitleIdLine(Line, Title, Type):
|
def GetTitleIdLine(Line, Title, Type):
|
||||||
DashTitle = DashifyStr(Title.lstrip('#'))
|
DashTitle = DashifyStr(Title.lstrip('#'))
|
||||||
if Type == 'md':
|
if Type == 'md':
|
||||||
|
@ -111,6 +118,8 @@ def PreProcessor(Path, SiteRoot):
|
||||||
'Index': 'True',
|
'Index': 'True',
|
||||||
'Title': '',
|
'Title': '',
|
||||||
'HTMLTitle': '',
|
'HTMLTitle': '',
|
||||||
|
'Description': '',
|
||||||
|
'Image': '',
|
||||||
'CreatedOn': '',
|
'CreatedOn': '',
|
||||||
'EditedOn': '',
|
'EditedOn': '',
|
||||||
'Order': None}
|
'Order': None}
|
||||||
|
@ -118,7 +127,7 @@ def PreProcessor(Path, SiteRoot):
|
||||||
ls = l.lstrip()
|
ls = l.lstrip()
|
||||||
if ls.startswith('// '):
|
if ls.startswith('// '):
|
||||||
lss = ls[3:]
|
lss = ls[3:]
|
||||||
for Item in ('Template', 'Type', 'Index', 'Title', 'HTMLTitle', 'CreatedOn', 'EditedOn'):
|
for Item in ('Template', 'Type', 'Index', 'Title', 'HTMLTitle', 'Description', 'Image', 'CreatedOn', 'EditedOn'):
|
||||||
ItemText = '{}: '.format(Item)
|
ItemText = '{}: '.format(Item)
|
||||||
if lss.startswith(ItemText):
|
if lss.startswith(ItemText):
|
||||||
Meta[Item] = lss[len(ItemText):]
|
Meta[Item] = lss[len(ItemText):]
|
||||||
|
@ -159,7 +168,7 @@ def PugCompileList(Pages):
|
||||||
Path = 'public/{}'.format(File)
|
Path = 'public/{}'.format(File)
|
||||||
WriteFile(Path, Content)
|
WriteFile(Path, Content)
|
||||||
Paths += '"{}" '.format(Path)
|
Paths += '"{}" '.format(Path)
|
||||||
os.system('pug {} > /dev/null'.format(Paths))
|
os.system('pug -P {} > /dev/null'.format(Paths))
|
||||||
|
|
||||||
def MakeContentHeader(Meta):
|
def MakeContentHeader(Meta):
|
||||||
Header = ''
|
Header = ''
|
||||||
|
@ -173,7 +182,7 @@ def MakeContentHeader(Meta):
|
||||||
Header += "Modificato in data {} \n".format(Meta['EditedOn'])
|
Header += "Modificato in data {} \n".format(Meta['EditedOn'])
|
||||||
return Markdown().convert(Header)
|
return Markdown().convert(Header)
|
||||||
|
|
||||||
def PatchHTML(Template, PartsText, ContextParts, ContextPartsText, HTMLPagesList, Content, Titles, Meta, SiteRoot, Macros):
|
def PatchHTML(Template, PartsText, ContextParts, ContextPartsText, HTMLPagesList, PagePath, Content, Titles, Meta, SiteRoot, Macros):
|
||||||
HTMLTitles = FormatTitles(Titles)
|
HTMLTitles = FormatTitles(Titles)
|
||||||
for Line in Template.splitlines():
|
for Line in Template.splitlines():
|
||||||
Line = Line.lstrip().rstrip()
|
Line = Line.lstrip().rstrip()
|
||||||
|
@ -196,6 +205,8 @@ def PatchHTML(Template, PartsText, ContextParts, ContextPartsText, HTMLPagesList
|
||||||
Template = Template.replace('[HTML:Page:LeftBox]', HTMLPagesList)
|
Template = Template.replace('[HTML:Page:LeftBox]', HTMLPagesList)
|
||||||
Template = Template.replace('[HTML:Page:RightBox]', HTMLTitles)
|
Template = Template.replace('[HTML:Page:RightBox]', HTMLTitles)
|
||||||
Template = Template.replace('[HTML:Page:Title]', GetTitle(Meta, Titles, 'MetaTitle'))
|
Template = Template.replace('[HTML:Page:Title]', GetTitle(Meta, Titles, 'MetaTitle'))
|
||||||
|
Template = Template.replace('[HTML:Page:Description]', GetDescription(Meta, 'MetaDescription'))
|
||||||
|
Template = Template.replace('[HTML:Page:Path]', PagePath)
|
||||||
Template = Template.replace('[HTML:Page:Style]', Meta['Style'])
|
Template = Template.replace('[HTML:Page:Style]', Meta['Style'])
|
||||||
Template = Template.replace('[HTML:Page:Content]', Content)
|
Template = Template.replace('[HTML:Page:Content]', Content)
|
||||||
Template = Template.replace('[HTML:Page:ContentHeader]', MakeContentHeader(Meta))
|
Template = Template.replace('[HTML:Page:ContentHeader]', MakeContentHeader(Meta))
|
||||||
|
@ -283,10 +294,11 @@ def MakeSite(TemplatesText, PartsText, ContextParts, ContextPartsText, SiteRoot)
|
||||||
HTMLPagesList = GetHTMLPagesList(Pages, SiteRoot, 'Page')
|
HTMLPagesList = GetHTMLPagesList(Pages, SiteRoot, 'Page')
|
||||||
Macros['BlogPosts'] = GetHTMLPagesList(Pages, SiteRoot, 'Post')
|
Macros['BlogPosts'] = GetHTMLPagesList(Pages, SiteRoot, 'Post')
|
||||||
for File, Content, Titles, Meta in Pages:
|
for File, Content, Titles, Meta in Pages:
|
||||||
|
PagePath = 'public/{}.html'.format(StripExt(File))
|
||||||
if File.endswith('.md'):
|
if File.endswith('.md'):
|
||||||
Content = Markdown().convert(Content)
|
Content = Markdown().convert(Content)
|
||||||
elif File.endswith('.pug'):
|
elif File.endswith('.pug'):
|
||||||
Content = ReadFile('public/{}.html'.format(StripExt(File)))
|
Content = ReadFile(PagePath)
|
||||||
Template = TemplatesText[Meta['Template']]
|
Template = TemplatesText[Meta['Template']]
|
||||||
Template = Template.replace(
|
Template = Template.replace(
|
||||||
'[HTML:Site:AbsoluteRoot]',
|
'[HTML:Site:AbsoluteRoot]',
|
||||||
|
@ -295,10 +307,10 @@ def MakeSite(TemplatesText, PartsText, ContextParts, ContextPartsText, SiteRoot)
|
||||||
'[HTML:Site:RelativeRoot]',
|
'[HTML:Site:RelativeRoot]',
|
||||||
'../'*File.count('/'))
|
'../'*File.count('/'))
|
||||||
WriteFile(
|
WriteFile(
|
||||||
'public/{}.html'.format(StripExt(File)),
|
PagePath,
|
||||||
PatchHTML(
|
PatchHTML(
|
||||||
Template, PartsText, ContextParts, ContextPartsText, HTMLPagesList,
|
Template, PartsText, ContextParts, ContextPartsText, HTMLPagesList,
|
||||||
Content, Titles, Meta, SiteRoot, Macros))
|
PagePath[len('public/'):], Content, Titles, Meta, SiteRoot, Macros))
|
||||||
DelTmp()
|
DelTmp()
|
||||||
|
|
||||||
def Main(Args):
|
def Main(Args):
|
||||||
|
|
Loading…
Reference in New Issue