Skip to content
Snippets Groups Projects
Verified Commit f48f290f authored by Isabella Skořepová's avatar Isabella Skořepová
Browse files

Add pipeline.js and tranform gitInfo to new format

parent 4dc6d9b0
No related branches found
No related tags found
No related merge requests found
......@@ -7,8 +7,21 @@ require('./sitegin/sitegin')({
var sass = require('node-sass');
var fs = require('fs');
var isRunning = false;
var runAgain = false;
function run() {
jobs.runSequence('config','readFiles','parseHugo','print')
runAgain = false;
if(isRunning) {
runAgain = true;
return;
}
isRunning = true;
jobs.run('pipeline',jobs)
.then(function() {
isRunning = false;
if(runAgain) run();
})
.catch(e => console.log(e.stack));
}
......
// Add git commit author and date to metadata
/*
* Add date: {creation, modification, modified} and author: {name, email}
* to metadata if not already present
*/
var nodegit = require('nodegit');
var git = require('nodegit-kit');
var path = require('path');
......@@ -73,51 +77,38 @@ var getFilesHistory = function() {
});
}
module.exports = function() {
var tr = this;
tr.fancyname = "transformer git";
tr.pre = function(cb, articleList) {
getFilesHistory()
.then((filesHistory) => {
var todo = articleList.length;
articleList.forEach(function(article) {
var file = path.relative(pathToRepo, article.origFile);
var commits = filesHistory[file];
if(commits !== undefined) {
commits.sort(function(a,b){
return b.date - a.date;
});
var newestCommit = commits[0];
var oldestCommit = commits[commits.length-1];
module.exports = function(obj) {
return getFilesHistory()
.then((filesHistory) => {
obj.pages.forEach(function(article) {
var file = path.relative(pathToRepo, article.filename);
var commits = filesHistory[file];
if(commits !== undefined) {
commits.sort(function(a,b){
return b.date - a.date;
});
var newestCommit = commits[0];
var oldestCommit = commits[commits.length-1];
if(article.metadata.date == undefined)
article.metadata.date = {};
if(article.metadata.date == undefined)
article.metadata.date = {};
if(article.metadata.date.creation == undefined)
article.metadata.date.creation = oldestCommit.date;
if(article.metadata.date.creation == undefined)
article.metadata.date.creation = oldestCommit.date;
article.metadata.date.modification = newestCommit.date;
article.metadata.date.modified = (newestCommit !== oldestCommit);
article.metadata.date.modification = newestCommit.date;
article.metadata.date.modified = (newestCommit !== oldestCommit);
if(article.metadata.author === undefined)
article.metadata.author = {}
if(article.metadata.author.name == undefined)
article.metadata.author.name = oldestCommit.author.name
if(article.metadata.author.email == undefined)
article.metadata.author.email = oldestCommit.author.email
if(article.metadata.author === undefined)
article.metadata.author = {}
if(article.metadata.author.name == undefined)
article.metadata.author.name = oldestCommit.author.name
if(article.metadata.author.email == undefined)
article.metadata.author.email = oldestCommit.author.email
article.commits = commits;
}
todo--;
if(todo == 0) cb();
});
})
.catch(function(err) {console.log(err.stack);});
}
tr.forEachPage = function(article, cb) {
cb();
}
article.commits = commits;
}
});
return obj;
})
}
......@@ -18,6 +18,7 @@ var readPageWorker = function(content, articleName) {
}
var obj = {};
obj.content = content.substring(fm_end+4);
obj.filename = articleName;
try {
obj.metadata = toml.parse(content.substring(0,fm_end-1)+"\n");
} catch(e) {
......
/*
* This jobs just runs all job in the right order
*/
module.exports = function(jobs) {
return jobs.runSequence('config','readFiles','parseHugo','gitInfo','print');
}
......@@ -4,19 +4,12 @@ module.exports = function(config) {
return jobs.registerMultiple(
config,
['config', './config'],
['readFiles', './readFiles'],
['gitInfo', './gitInfo'],
['parseHugo', './parseHugo'],
['print', './print'],
['readFiles', './readFiles'],
['transformer-git', './transformer-git'],
['output-console', './output-console'],
['output-filesystem', './output-filesystem'],
['transformer-basichtml', './transformer-basichtml'],
['transformer-markdown', './transformer-markdown'],
['transformer-nunjucks', './transformer-nunjucks'],
['transformer-urlizetags', './transformer-urlizetags'],
['transformer-other', './transformer-other']
['pipeline','./pipeline']
)
.then(function() {
return jobs;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment