From 80f3a24222711f068ac19ce4b0324985d5036da7 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Wed, 6 Nov 2019 19:05:35 +0200 Subject: [PATCH] [Chore] Update extractor for 30web --- config.js | 5 ++++- scripts/build.js | 8 ++++---- scripts/extract.js | 4 ++++ scripts/util/helpers.js | 4 ++-- scripts/util/snippetParser.js | 8 ++++++-- src/docs/components/SnippetCard.js | 2 +- src/docs/util/index.js | 4 ++-- 7 files changed, 23 insertions(+), 12 deletions(-) diff --git a/config.js b/config.js index 9688bd476..efd977cab 100644 --- a/config.js +++ b/config.js @@ -16,7 +16,10 @@ module.exports = { distPath: `dist`, testPath: `test`, // General information - language: `js`, + language:{ + short: `js`, + long: `JavaScript` + }, // Module information moduleName: `_30s`, rollupInputFile: `imports.temp.js`, diff --git a/scripts/build.js b/scripts/build.js index 39afbcdb3..82128d9b0 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -128,11 +128,11 @@ try { output += snippet.attributes.text; - output += `\`\`\`${config.language}\n${snippet.attributes.codeBlocks.es6}\n\`\`\``; + output += `\`\`\`${config.language.short}\n${snippet.attributes.codeBlocks.es6}\n\`\`\``; output += misc.collapsible( 'Examples', - `\`\`\`${config.language}\n${snippet.attributes.codeBlocks.example}\n\`\`\``, + `\`\`\`${config.language.short}\n${snippet.attributes.codeBlocks.example}\n\`\`\``, ); output += @@ -185,11 +185,11 @@ try { output += snippet.attributes.text; - output += `\`\`\`${config.language}\n${snippet.attributes.codeBlocks.es6}\n\`\`\``; + output += `\`\`\`${config.language.short}\n${snippet.attributes.codeBlocks.es6}\n\`\`\``; output += misc.collapsible( 'Examples', - `\`\`\`${config.language}\n${snippet.attributes.codeBlocks.example}\n\`\`\``, + `\`\`\`${config.language.short}\n${snippet.attributes.codeBlocks.example}\n\`\`\``, ); output += diff --git a/scripts/extract.js b/scripts/extract.js index f0f33bade..ec7da9810 100644 --- a/scripts/extract.js +++ b/scripts/extract.js @@ -62,6 +62,7 @@ const completeData = { specification: 'http://jsonapi.org/format/', type: 'snippetArray', scope: SNIPPETS_PATH, + language: config.language }, }; const listingData = { @@ -81,6 +82,7 @@ const listingData = { specification: 'http://jsonapi.org/format/', type: 'snippetListingArray', scope: SNIPPETS_PATH, + language: config.language }, }; @@ -90,6 +92,7 @@ const archiveCompleteData = { specification: 'http://jsonapi.org/format/', type: 'snippetArray', scope: SNIPPETS_ARCHIVE_PATH, + language: config.language } }; const archiveListingData = { @@ -109,6 +112,7 @@ const archiveListingData = { specification: 'http://jsonapi.org/format/', type: 'snippetListingArray', scope: SNIPPETS_ARCHIVE_PATH, + language: config.language }, }; diff --git a/scripts/util/helpers.js b/scripts/util/helpers.js index de1386935..a2057a81a 100644 --- a/scripts/util/helpers.js +++ b/scripts/util/helpers.js @@ -36,11 +36,11 @@ const prepTaggedData = tagDbData => ); const makeExamples = data => { data = - data.slice(0, data.lastIndexOf(`\`\`\`${config.language}`)).trim() + + data.slice(0, data.lastIndexOf(`\`\`\`${config.language.short}`)).trim() + misc.collapsible( 'Examples', data.slice( - data.lastIndexOf(`\`\`\`${config.language}`), + data.lastIndexOf(`\`\`\`${config.language.short}`), data.lastIndexOf('```'), ) + data.slice(data.lastIndexOf('```')), ); diff --git a/scripts/util/snippetParser.js b/scripts/util/snippetParser.js index 1bb71a4ca..d0c8d8c59 100644 --- a/scripts/util/snippetParser.js +++ b/scripts/util/snippetParser.js @@ -5,6 +5,7 @@ const fs = require('fs-extra'), frontmatter = require('front-matter'), babel = require('@babel/core'); const config = require('../../config'); +const execSync = require('child_process').execSync; // Reade all files in a directory const getFilesInDir = (directoryPath, withPath, exclude = null) => { @@ -54,7 +55,7 @@ const getCodeBlocks = str => { }); } const replacer = new RegExp( - `\`\`\`${config.language}([\\s\\S]*?)\`\`\``, + `\`\`\`${config.language.short}([\\s\\S]*?)\`\`\``, 'g', ); results = results.map(v => v.replace(replacer, '$1').trim()); @@ -102,6 +103,9 @@ const readSnippets = snippetsPath => { }, meta: { hash: hashData(data.body), + firstSeen: execSync(`git log --diff-filter=A --pretty=format:%at -- snippets/${snippet}`).toString(), + lastUpdated: execSync(`git log -n 1 --pretty=format:%at -- snippets/${snippet}`).toString(), + updateCount: execSync(`git log --pretty=%H -- snippets/${snippet}`).toString().split('\n').length }, }; } @@ -117,5 +121,5 @@ module.exports = { hashData, getCodeBlocks, getTextualContent, - readSnippets, + readSnippets }; diff --git a/src/docs/components/SnippetCard.js b/src/docs/components/SnippetCard.js index 071ac8a97..5ed913734 100644 --- a/src/docs/components/SnippetCard.js +++ b/src/docs/components/SnippetCard.js @@ -78,7 +78,7 @@ const FullCard = ({ snippetData, difficulty, isDarkMode }) => { />