mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2026-04-12 22:17:06 +08:00
Merge branch 'dev' of https://github.com/jerryc127/hexo-theme-butterfly into dev
This commit is contained in:
@@ -1016,6 +1016,10 @@ Open_Graph_meta:
|
|||||||
# fb_admins:
|
# fb_admins:
|
||||||
# fb_app_id:
|
# fb_app_id:
|
||||||
|
|
||||||
|
# Structured Data
|
||||||
|
# https://developers.google.com/search/docs/guides/intro-structured-data
|
||||||
|
structured_data: true
|
||||||
|
|
||||||
# Add the vendor prefixes to ensure compatibility
|
# Add the vendor prefixes to ensure compatibility
|
||||||
css_prefix: true
|
css_prefix: true
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ meta(name="theme-color" content=themeColor)
|
|||||||
//- Open_Graph
|
//- Open_Graph
|
||||||
include ./head/Open_Graph.pug
|
include ./head/Open_Graph.pug
|
||||||
|
|
||||||
|
//- Structured Data
|
||||||
|
include ./head/structured_data.pug
|
||||||
|
|
||||||
!=favicon_tag(theme.favicon || config.favicon)
|
!=favicon_tag(theme.favicon || config.favicon)
|
||||||
link(rel="canonical" href=urlNoIndex(null,config.pretty_urls.trailing_index,config.pretty_urls.trailing_html))
|
link(rel="canonical" href=urlNoIndex(null,config.pretty_urls.trailing_index,config.pretty_urls.trailing_html))
|
||||||
|
|
||||||
|
|||||||
34
layout/includes/head/structured_data.pug
Normal file
34
layout/includes/head/structured_data.pug
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
if theme.structured_data && page.layout === 'post'
|
||||||
|
-
|
||||||
|
// use json-ld to add structured data
|
||||||
|
|
||||||
|
const title = page.title
|
||||||
|
const url = page.permalink
|
||||||
|
const imageVal = page.cover_type === 'img' ? page.cover : theme.avatar.img
|
||||||
|
const image = imageVal ? full_url_for(imageVal) : ''
|
||||||
|
const datePublished = page.date.toISOString()
|
||||||
|
const dateModified = (page.updated || page.date).toISOString()
|
||||||
|
const author = page.copyright_author || config.author
|
||||||
|
const authorHrefVal = page.copyright_author_href || theme.post_copyright.author_href || site.url;
|
||||||
|
const authorHref = full_url_for(authorHrefVal);
|
||||||
|
|
||||||
|
const jsonLd = {
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "BlogPosting",
|
||||||
|
"headline": title,
|
||||||
|
"url": url,
|
||||||
|
"image": image,
|
||||||
|
"datePublished": datePublished,
|
||||||
|
"dateModified": dateModified,
|
||||||
|
"author": [{
|
||||||
|
"@type": "Person",
|
||||||
|
"name": author,
|
||||||
|
"url": authorHref
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
|
||||||
|
jsonLdScript = JSON.stringify(jsonLd, null, 2);
|
||||||
|
-
|
||||||
|
|
||||||
|
script(type="application/ld+json").
|
||||||
|
!{jsonLdScript}
|
||||||
@@ -563,6 +563,7 @@ hexo.extend.filter.register('before_generate', () => {
|
|||||||
enable: true,
|
enable: true,
|
||||||
option: null
|
option: null
|
||||||
},
|
},
|
||||||
|
structured_data: true,
|
||||||
css_prefix: true,
|
css_prefix: true,
|
||||||
inject: {
|
inject: {
|
||||||
head: null,
|
head: null,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
hexo.extend.filter.register('before_post_render', data => {
|
hexo.extend.filter.register('before_post_render', data => {
|
||||||
const imgTestReg = /\.(png|jpe?g|gif|svg|webp)(\?.*)?$/i
|
const imgTestReg = /\.(png|jpe?g|gif|svg|webp|avif)(\?.*)?$/i
|
||||||
let { cover: coverVal, top_img: topImg } = data
|
let { cover: coverVal, top_img: topImg } = data
|
||||||
|
|
||||||
// Add path to top_img and cover if post_asset_folder is enabled
|
// Add path to top_img and cover if post_asset_folder is enabled
|
||||||
|
|||||||
Reference in New Issue
Block a user