diff --git a/config.js b/config.js
index 27a65b1ba..bbad97477 100644
--- a/config.js
+++ b/config.js
@@ -12,5 +12,8 @@ module.exports = {
pagePath: `src/docs/pages`,
staticPartsPath: `src/static-parts`,
// General information
- language: `py`,
+ language: {
+ short: `py`,
+ long: `Python`
+ },
};
diff --git a/scripts/build.js b/scripts/build.js
index 04023e0d4..722605fe5 100644
--- a/scripts/build.js
+++ b/scripts/build.js
@@ -112,11 +112,11 @@ try {
output += snippet.attributes.text;
- output += `\`\`\`${config.language}\n${snippet.attributes.codeBlocks.code}\n\`\`\``;
+ output += `\`\`\`${config.language.short}\n${snippet.attributes.codeBlocks.code}\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 2f1947f0e..e5a3aa7dc 100644
--- a/scripts/extract.js
+++ b/scripts/extract.js
@@ -43,6 +43,7 @@ const completeData = {
meta: {
specification: 'http://jsonapi.org/format/',
type: 'snippetArray',
+ language: config.language
},
};
let listingData = {
@@ -61,6 +62,7 @@ let listingData = {
meta: {
specification: 'http://jsonapi.org/format/',
type: 'snippetListingArray',
+ language: config.language
},
};
// Write files
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 2d33a75f3..c34e225e3 100644
--- a/scripts/util/snippetParser.js
+++ b/scripts/util/snippetParser.js
@@ -53,7 +53,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());
@@ -99,6 +99,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
},
};
}
diff --git a/src/docs/components/SnippetCard.js b/src/docs/components/SnippetCard.js
index c126dc33f..d4264aeca 100644
--- a/src/docs/components/SnippetCard.js
+++ b/src/docs/components/SnippetCard.js
@@ -85,7 +85,7 @@ const FullCard = ({ snippetData, difficulty, isDarkMode }) => {
([\\s\\S]*?)`,
+ `([\\s\\S]*?)`,
'g',
);
results = results.map(v => v.replace(replacer, '$1').trim());
@@ -85,7 +85,7 @@ const getRawCodeBlocks = str => {
});
}
const replacer = new RegExp(
- `\`\`\`${config.language}([\\s\\S]*?)\`\`\``,
+ `\`\`\`${config.language.short}([\\s\\S]*?)\`\`\``,
'g',
);
results = results.map(v => v.replace(replacer, '$1').trim());