Skip to content

Commit 1aba8e5

Browse files
committed
Treat handlebars extensions same as .html
1 parent ba81d81 commit 1aba8e5

File tree

5 files changed

+16
-15
lines changed

5 files changed

+16
-15
lines changed

src/compiler/contentModel/models/category.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const { join } = require('path')
22
const _ = require('lodash')
33
const Settings = require('../../../settings')
4-
const { getSlug, makePermalink } = require('../../../helpers')
4+
const { getSlug, makePermalink, maybeRawHTMLType } = require('../../../helpers')
55
const contentTypes = require('../contentTypes')
66
const parseTemplate = require('../parseTemplate')
77
const { isPost } = require('./post')
@@ -38,13 +38,11 @@ const createCategory = (fsObject) => {
3838
attributes: {}
3939
}
4040

41-
const type = indexFile?.extension === '.html' ? 'raw-index-html' : DEFAULT_TYPE
42-
4341
return {
4442
..._.omit(fsObject, 'children'),
4543
type: contentTypes.CATEGORY,
4644
data: {
47-
type: metadata.type || type,
45+
type: metadata.type || maybeRawHTMLType(indexFile?.extension) || DEFAULT_TYPE,
4846
name: metadata.title || fsObject.name,
4947
content: metadata.content || '',
5048
summary: metadata.summary || '',

src/compiler/contentModel/models/homepage.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const _ = require('lodash')
22
const Settings = require('../../../settings')
3+
const { maybeRawHTMLType } = require('../../../helpers')
34
const contentTypes = require('../contentTypes')
45
const parseTemplate = require('../parseTemplate')
56
const { isLocalAsset } = require('./localAsset')
@@ -26,13 +27,11 @@ const _createHomepage = (fsObject, { foldered }) => {
2627
localAssets
2728
})
2829

29-
const type = indexFile?.extension === '.html' ? 'raw-index-html' : DEFAULT_TYPE
30-
3130
return {
3231
..._.omit(fsObject, 'children'),
3332
type: contentTypes.HOMEPAGE,
3433
data: {
35-
type: metadata.type || type,
34+
type: metadata.type || maybeRawHTMLType(indexFile?.extension) || DEFAULT_TYPE,
3635
title: metadata.title || '',
3736
content: metadata.content || '',
3837
mentions: metadata.mentions || [],

src/compiler/contentModel/models/post.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const _ = require('lodash')
22
const { dirname, join } = require('path')
33
const Settings = require('../../../settings')
44
const Dictionary = require('../../../dictionary')
5-
const { getSlug, makePermalink, removeExtension } = require('../../../helpers')
5+
const { getSlug, makePermalink, removeExtension, maybeRawHTMLType } = require('../../../helpers')
66
const contentTypes = require('../contentTypes')
77
const parseTemplate = require('../parseTemplate')
88
const { isLocalAsset } = require('./localAsset')
@@ -93,13 +93,11 @@ const _createPost = (fsObject, { categorized, foldered }) => {
9393
permalink
9494
})
9595

96-
const type = postFile?.extension === '.html' ? 'raw-index-html' : DEFAULT_TYPE
97-
9896
return {
9997
..._.omit(fsObject, 'children'),
10098
type: contentTypes.POST,
10199
data: {
102-
type: metadata.type || type,
100+
type: metadata.type || maybeRawHTMLType(postFile?.extension) || DEFAULT_TYPE,
103101
title: metadata.title || removeExtension(fsObject.name),
104102
cover: metadata.cover ? [permalink, metadata.cover].join('/') : '',
105103
media: metadata.media ? [permalink, metadata.media].join('/') : '',

src/compiler/contentModel/models/subpage.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const _ = require('lodash')
22
const { join } = require('path')
33
const Settings = require('../../../settings')
4-
const { getSlug, makePermalink, removeExtension } = require('../../../helpers')
4+
const { getSlug, makePermalink, removeExtension, maybeRawHTMLType } = require('../../../helpers')
55
const contentTypes = require('../contentTypes')
66
const parseTemplate = require('../parseTemplate')
77
const { isLocalAsset } = require('./localAsset')
@@ -67,13 +67,11 @@ const _createSubpage = (fsObject, { foldered }) => {
6767
const permalink = getSubpagePermalink(fsObject, foldered)
6868
const metadata = parseTemplate(pageFile)
6969

70-
const type = pageFile?.extension === '.html' ? 'raw-index-html' : DEFAULT_TYPE
71-
7270
return {
7371
..._.omit(fsObject, 'children'),
7472
type: contentTypes.SUBPAGE,
7573
data: {
76-
type: metadata.type || type,
74+
type: metadata.type || maybeRawHTMLType(pageFile?.extension) || DEFAULT_TYPE,
7775
title: metadata.title || removeExtension(fsObject.name),
7876
cover: metadata.cover ? [permalink, metadata.cover].join('/') : '',
7977
media: metadata.media ? [permalink, metadata.media].join('/') : '',

src/helpers.js

+8
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ const makePermalink = ({ prefix, parts, addHTMLExtension }) => {
5555
return addHTMLExtension ? permalink + '.html' : permalink
5656
}
5757

58+
const maybeRawHTMLType = (extension) => {
59+
if (!extension || !extension.match(/^\.(html|hbs|handlebars)$/i)) {
60+
return null
61+
}
62+
return 'raw-html-type'
63+
}
64+
5865
const removeExtension = (fileName) => {
5966
return fileName.replace(extname(fileName), '')
6067
}
@@ -90,6 +97,7 @@ module.exports = {
9097
ensureDirectory,
9198
getSlug,
9299
makePermalink,
100+
maybeRawHTMLType,
93101
removeExtension,
94102
replaceExtension,
95103
pipe,

0 commit comments

Comments
 (0)