浏览代码

feat: export creation date in dumped content (#2345)

* Export creation date in dumped content

* date_creation -> dateCreated

Co-authored-by: Joris Langlois <joris.langlois@knplabs.com>
jaljo 4 年之前
父节点
当前提交
cda1f1e805

+ 2 - 1
server/helpers/page.js

@@ -72,7 +72,8 @@ module.exports = {
       ['published', page.isPublished.toString()],
       ['date', page.updatedAt],
       ['tags', page.tags ? page.tags.map(t => t.tag).join(', ') : ''],
-      ['editor', page.editorKey]
+      ['editor', page.editorKey],
+      ['dateCreated', page.createdAt],
     ]
     switch (page.contentType) {
       case 'markdown':

+ 1 - 1
server/modules/storage/azure/storage.js

@@ -126,7 +126,7 @@ module.exports = {
 
     // -> Pages
     await pipeline(
-      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt').select().from('pages').where({
+      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt', 'createdAt').select().from('pages').where({
         isPrivate: false
       }).stream(),
       new stream.Transform({

+ 1 - 1
server/modules/storage/disk/storage.js

@@ -127,7 +127,7 @@ module.exports = {
 
     // -> Pages
     await pipeline(
-      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt').select().from('pages').where({
+      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt', 'createdAt').select().from('pages').where({
         isPrivate: false
       }).stream(),
       new stream.Transform({

+ 1 - 1
server/modules/storage/git/storage.js

@@ -411,7 +411,7 @@ module.exports = {
 
     // -> Pages
     await pipeline(
-      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt').select().from('pages').where({
+      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt', 'createdAt').select().from('pages').where({
         isPrivate: false
       }).stream(),
       new stream.Transform({

+ 1 - 1
server/modules/storage/s3/common.js

@@ -131,7 +131,7 @@ module.exports = class S3CompatibleStorage {
 
     // -> Pages
     await pipeline(
-      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt').select().from('pages').where({
+      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt', 'createdAt').select().from('pages').where({
         isPrivate: false
       }).stream(),
       new stream.Transform({

+ 1 - 1
server/modules/storage/sftp/storage.js

@@ -115,7 +115,7 @@ module.exports = {
 
     // -> Pages
     await pipeline(
-      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt').select().from('pages').where({
+      WIKI.models.knex.column('path', 'localeCode', 'title', 'description', 'contentType', 'content', 'isPublished', 'updatedAt', 'createdAt').select().from('pages').where({
         isPrivate: false
       }).stream(),
       new stream.Transform({

+ 39 - 20
server/test/helpers/page.test.js

@@ -1,43 +1,62 @@
 const { injectPageMetadata } = require('../../helpers/page')
 
-describe('injectPageMetadata tests', () => {
-  let page = {
+describe('helpers/page/injectPageMetadata', () => {
+  const page = {
     title: 'PAGE TITLE',
     description: 'A PAGE',
     isPublished: true,
     updatedAt: new Date(),
-    content: 'TEST CONTENT'
+    content: 'TEST CONTENT',
+    createdAt: new Date('2019-01-01'),
   }
-  test('injectPageMetadata: default', () => {
+
+  it('returns the page content by default when content type is unknown', () => {
     const expected = 'TEST CONTENT'
     const result = injectPageMetadata(page)
     expect(result).toEqual(expected)
   })
-  test('injectPageMetadata: markdown', () => {
-    page.contentType = 'markdown'
+
+  it('injects metadata for markdown contents', () => {
+    const markdownPage = {
+      ...page,
+      contentType: 'markdown',
+      editorKey: 'markdown',
+    }
+
     const expected = `---
-title: ${page.title}
-description: ${page.description}
-published: ${page.isPublished.toString()}
-date: ${page.updatedAt}
-tags: \n---
+title: ${markdownPage.title}
+description: ${markdownPage.description}
+published: ${markdownPage.isPublished.toString()}
+date: ${markdownPage.updatedAt}
+tags:\x20
+editor: ${markdownPage.editorKey}
+dateCreated: ${markdownPage.createdAt}\n---
 
 TEST CONTENT`
-    const result = injectPageMetadata(page)
+
+    const result = injectPageMetadata(markdownPage)
     expect(result).toEqual(expected)
   })
 
-  test('injectPageMetadata: hmtl', () => {
-    page.contentType = 'html'
+  it('injects metadata for html contents', () => {
+    const htmlPage = {
+      ...page,
+      contentType: 'html',
+      editorKey: 'html',
+    }
+
     const expected = `<!--
-title: ${page.title}
-description: ${page.description}
-published: ${page.isPublished.toString()}
-date: ${page.updatedAt}
-tags: \n-->
+title: ${htmlPage.title}
+description: ${htmlPage.description}
+published: ${htmlPage.isPublished.toString()}
+date: ${htmlPage.updatedAt}
+tags:\x20
+editor: ${htmlPage.editorKey}
+dateCreated: ${htmlPage.createdAt}\n-->
 
 TEST CONTENT`
-    const result = injectPageMetadata(page)
+
+    const result = injectPageMetadata(htmlPage)
     expect(result).toEqual(expected)
   })
 })