diff --git a/.eslintrc.js b/.eslintrc.js
index 5004e26..85f98ec 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -4,38 +4,42 @@ module.exports = {
'commonjs': true,
'es2021': true,
'node': true,
- 'jest/globals': true
+ 'jest/globals': true,
},
'extends': ['eslint:recommended', 'plugin:jest/recommended'],
'parserOptions': {
- 'ecmaVersion': 12
+ 'ecmaVersion': 12,
},
'rules': {
'indent': [
'error',
- 4
+ 4,
],
'linebreak-style': [
'error',
- 'unix'
+ 'unix',
],
'quotes': [
'error',
- 'single'
+ 'single',
],
'semi': [
'error',
- 'always'
+ 'always',
],
'curly': [
'error',
- 'all'
+ 'all',
],
'brace-style': [
'error',
- '1tbs'
+ '1tbs',
],
'jest/no-done-callback': 'off',
- 'jest/expect-expect': 'off'
- }
+ 'jest/expect-expect': 'off',
+ 'comma-dangle': [
+ 'error',
+ 'always-multiline',
+ ],
+ },
};
diff --git a/src/app.js b/src/app.js
index 6ae48e6..0459650 100644
--- a/src/app.js
+++ b/src/app.js
@@ -93,7 +93,7 @@ module.exports = (config) => {
host: host,
version: pjson.version,
request: req,
- config: config
+ config: config,
};
res.render(vPath, data, (err, html) => {
if (err && vPath !== path.join(config['data_dir'], config['home']['error'])) {
@@ -130,7 +130,7 @@ module.exports = (config) => {
//rate limit for safer server
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
- max: config['rate_limit']
+ max: config['rate_limit'],
});
app.use(limiter);
@@ -174,7 +174,7 @@ module.exports = (config) => {
'title': config['rss']['title'],
'description': config['rss']['description'],
'feed_url': host + req.url,
- 'site_url': host
+ 'site_url': host,
});
Object.values(articles)
.slice(0, config['rss']['length'])
@@ -182,7 +182,7 @@ module.exports = (config) => {
feed.item({
title: article.title,
url: host + article.url,
- date: article.date
+ date: article.date,
});
});
lastRSS = feed.xml();
diff --git a/src/file_walker.js b/src/file_walker.js
index 22feb2f..4a397ca 100644
--- a/src/file_walker.js
+++ b/src/file_walker.js
@@ -92,7 +92,7 @@ module.exports = (config) => {
realPath: path.join(config['data_dir'], p[0], p[1], p[2], p[3]),
year: parseInt(p[0]),
month: parseInt(p[1]),
- day: parseInt(p[2])
+ day: parseInt(p[2]),
};
article.date = new Date(article.year, article.month, article.day);
article.date.setUTCHours(0);
@@ -116,6 +116,6 @@ module.exports = (config) => {
});
});
- }
+ },
};
};
\ No newline at end of file
diff --git a/src/renderer.js b/src/renderer.js
index c059204..bd197cc 100644
--- a/src/renderer.js
+++ b/src/renderer.js
@@ -112,9 +112,9 @@ module.exports = (config) => {
MathJax: {
tex2jax: {
inlineMath: [['$', '$']],
- displayMath: [['$$', '$$']]
- }
- }
+ displayMath: [['$$', '$$']],
+ },
+ },
});
}
@@ -131,7 +131,7 @@ module.exports = (config) => {
const mjConf = {
math: eq,
format: format,
- speakText: config['mathjax']['speak_text']
+ speakText: config['mathjax']['speak_text'],
};
mjConf[output] = true;
mjAPI.typeset(mjConf, (res) => {
@@ -222,7 +222,7 @@ module.exports = (config) => {
});
});
});
- }
+ },
};
};
diff --git a/test/app.test.js b/test/app.test.js
index ec5599b..590172b 100644
--- a/test/app.test.js
+++ b/test/app.test.js
@@ -163,7 +163,7 @@ describe('Test root path', () => {
utils.createEmptyDirs([
path.join(dataDir, '2019', '05', '05'),
path.join(dataDir, '2018', '05', '05'),
- path.join(dataDir, '2017', '05', '05')
+ path.join(dataDir, '2017', '05', '05'),
]);
utils.createEmptyFiles([
path.join(dataDir, '2019', '05', '05', 'draft.md'),
@@ -219,11 +219,11 @@ describe('Test RSS feed', () => {
test('200 2 rss items', (done, fail) => {
utils.createEmptyDirs([
path.join(dataDir, '2019', '05', '05'),
- path.join(dataDir, '2018', '05', '05')
+ path.join(dataDir, '2018', '05', '05'),
]);
utils.createEmptyFiles([
path.join(dataDir, '2019', '05', '05', 'index.md'),
- path.join(dataDir, '2018', '05', '05', 'index.md')
+ path.join(dataDir, '2018', '05', '05', 'index.md'),
]);
app.reload(() => {
request(app).get('/rsstest').then((response) => {
@@ -238,12 +238,12 @@ describe('Test RSS feed', () => {
utils.createEmptyDirs([
path.join(dataDir, '2019', '05', '05'),
path.join(dataDir, '2018', '05', '05'),
- path.join(dataDir, '2017', '05', '05')
+ path.join(dataDir, '2017', '05', '05'),
]);
utils.createEmptyFiles([
path.join(dataDir, '2019', '05', '05', 'index.md'),
path.join(dataDir, '2018', '05', '05', 'index.md'),
- path.join(dataDir, '2017', '05', '05', 'index.md')
+ path.join(dataDir, '2017', '05', '05', 'index.md'),
]);
app.reload(() => {
request(app).get('/rsstest').then((response) => {
@@ -265,10 +265,10 @@ describe('Test webhook', () => {
});
});
test('200 no secret', (done) => {
- utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]);
+ utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05')]);
utils.createEmptyFiles([
path.join(dataDir, '2019', '05', '05', 'index.md'),
- path.join(dataDir, testTemplate)
+ path.join(dataDir, testTemplate),
]);
config['webhook']['pull_command'] = 'git --help';
request(app).post('/webhooktest').then((response) => {
@@ -280,10 +280,10 @@ describe('Test webhook', () => {
});
});
test('500 command failed', (done) => {
- utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]);
+ utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05')]);
utils.createEmptyFiles([
path.join(dataDir, '2019', '05', '05', 'index.md'),
- path.join(dataDir, testTemplate)
+ path.join(dataDir, testTemplate),
]);
config['webhook']['pull_command'] = 'qzgfqgqz';
request(app).post('/webhooktest').then((response) => {
@@ -322,7 +322,7 @@ describe('Test articles rendering', () => {
});
test('500 fail to render', (done, fail) => {
- utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]);
+ utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05')]);
fs.writeFileSync(path.join(dataDir, '2019', '05', '05', 'index.md'), '# Hello');
fs.writeFileSync(path.join(dataDir, testTemplate), '<%- articl.content %><%- `reload` %>');
app.reload(() => {
@@ -334,7 +334,7 @@ describe('Test articles rendering', () => {
});
test('500 no template', (done, fail) => {
- utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]);
+ utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05')]);
fs.writeFileSync(path.join(dataDir, '2019', '05', '05', 'index.md'), '# Hello');
app.reload(() => {
request(app).get('/2019/05/05/hello/').then((response) => {
@@ -345,7 +345,7 @@ describe('Test articles rendering', () => {
});
test('200 rendered article', (done, fail) => {
- utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]);
+ utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05')]);
fs.writeFileSync(path.join(dataDir, '2019', '05', '05', 'index.md'), '# Hello');
fs.writeFileSync(path.join(dataDir, testTemplate), '<%- article.content %><%- `reload` %>');
app.reload(() => {
@@ -358,7 +358,7 @@ describe('Test articles rendering', () => {
});
test('200 rendered draft', (done, fail) => {
- utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]);
+ utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05')]);
fs.writeFileSync(path.join(dataDir, '2019', '05', '05', 'draft.md'), '# Hello');
fs.writeFileSync(path.join(dataDir, testTemplate), '<%- article.content %><%- `reload` %>');
app.reload(() => {
@@ -371,10 +371,10 @@ describe('Test articles rendering', () => {
});
test('200 other url', (done, fail) => {
- utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]);
+ utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05')]);
utils.createEmptyFiles([
path.join(dataDir, '2019', '05', '05', 'index.md'),
- path.join(dataDir, testTemplate)
+ path.join(dataDir, testTemplate),
]);
app.reload(() => {
request(app).get('/2019/05/05/anything/').then((response) => {
@@ -385,10 +385,10 @@ describe('Test articles rendering', () => {
});
test('200 other url 2', (done, fail) => {
- utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]);
+ utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05')]);
utils.createEmptyFiles([
path.join(dataDir, '2019', '05', '05', 'index.md'),
- path.join(dataDir, testTemplate)
+ path.join(dataDir, testTemplate),
]);
app.reload(() => {
request(app).get('/2019/05/05/').then((response) => {
@@ -441,7 +441,7 @@ describe('Test static files', () => {
});
});
test('200 valid resource of article', (done) => {
- utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05'),]);
+ utils.createEmptyDirs([path.join(dataDir, '2019', '05', '05')]);
fs.writeFileSync(path.join(dataDir, '2019', '05', '05', 'somefile.txt'), 'filecontent');
request(app).get('/2019/05/05/title/somefile.txt').then((response) => {
expect(response.statusCode).toBe(200);
diff --git a/test/file_walker.test.js b/test/file_walker.test.js
index 109de43..bd9c244 100644
--- a/test/file_walker.test.js
+++ b/test/file_walker.test.js
@@ -15,8 +15,8 @@ const config = {
'draft': 'draft.md',
'default_title': 'Untitled',
'default_thumbnail': 'default.png',
- 'thumbnail_tag': 'thumbnail'
- }
+ 'thumbnail_tag': 'thumbnail',
+ },
};
const fw = require('../src/file_walker')(config);
@@ -46,7 +46,7 @@ describe('Test function fileTree', () => {
utils.createEmptyDirs([
path.join(dataDir, 'test', 'test'),
path.join(dataDir, 'test', 'test2'),
- path.join(dataDir, 'test2')
+ path.join(dataDir, 'test2'),
]);
fw.fileTree(dataDir, (err, list) => {
expect(err).toBeNull();
@@ -58,7 +58,7 @@ describe('Test function fileTree', () => {
test('simple files', (done) => {
const fileList = [
path.join(dataDir, 'f1.txt'),
- path.join(dataDir, 'f2.txt')
+ path.join(dataDir, 'f2.txt'),
];
utils.createEmptyFiles(fileList);
fw.fileTree(dataDir, (err, list) => {
@@ -72,13 +72,13 @@ describe('Test function fileTree', () => {
test('nested files', (done) => {
utils.createEmptyDirs([
path.join(dataDir, 'test', 'test'),
- path.join(dataDir, 'test2')
+ path.join(dataDir, 'test2'),
]);
const fileList = [
path.join(dataDir, 'f1.txt'),
path.join(dataDir, 'test', 'f2.txt'),
path.join(dataDir, 'test', 'test', 'f3.txt'),
- path.join(dataDir, 'test2', 'f4.txt')
+ path.join(dataDir, 'test2', 'f4.txt'),
];
utils.createEmptyFiles(fileList);
fw.fileTree(dataDir, (err, list) => {
@@ -120,7 +120,7 @@ describe('Test index article reading', () => {
expect(err).toBeNull();
expect(info).toEqual({
title: 'This is an awesome title !?¤',
- thumbnail: './thumbnail.jpg'
+ thumbnail: './thumbnail.jpg',
});
done();
});
@@ -136,7 +136,7 @@ describe('Test index article reading', () => {
expect(err).toBeNull();
expect(info).toEqual({
title: undefined,
- thumbnail: './thumbnail.jpg'
+ thumbnail: './thumbnail.jpg',
});
done();
});
@@ -148,7 +148,7 @@ describe('Test index article reading', () => {
expect(err).toBeNull();
expect(info).toEqual({
title: 'title',
- thumbnail: undefined
+ thumbnail: undefined,
});
done();
});
@@ -164,7 +164,7 @@ describe('Test index article reading', () => {
expect(err).toBeNull();
expect(info).toEqual({
title: 'This is an awesome title !?¤',
- thumbnail: undefined
+ thumbnail: undefined,
});
done();
});
@@ -181,7 +181,7 @@ describe('Test index article reading', () => {
expect(err).toBeNull();
expect(info).toEqual({
title: 'This is an awesome title !?¤',
- thumbnail: './thumbnail.jpg'
+ thumbnail: './thumbnail.jpg',
});
done();
});
@@ -208,12 +208,12 @@ describe('Test article fetching', () => {
test('misplaced index file', (done) => {
utils.createEmptyDirs([
path.join(dataDir, 'test', 'test'),
- path.join(dataDir, '2019', '05', '05')
+ path.join(dataDir, '2019', '05', '05'),
]);
utils.createEmptyFiles([
path.join(dataDir, testIndex),
path.join(dataDir, 'test', 'test', testIndex),
- path.join(dataDir, '2019', '05', testIndex)
+ path.join(dataDir, '2019', '05', testIndex),
]);
fw.fetchArticles((err, dict) => {
expect(err).toBeNull();
diff --git a/test/renderer.test.js b/test/renderer.test.js
index ea629c1..9cd8711 100644
--- a/test/renderer.test.js
+++ b/test/renderer.test.js
@@ -15,15 +15,15 @@ const config = {
},
'showdown': {
'simplifiedAutoLink': true,
- 'smartIndentationFix': true
+ 'smartIndentationFix': true,
},
'mathjax': {
'output_format': 'html',
- 'speak_text': false
+ 'speak_text': false,
},
'plantuml': {
- 'output_format': 'svg'
- }
+ 'output_format': 'svg',
+ },
};
const renderer = require('../src/renderer')(config);
@@ -48,7 +48,7 @@ describe('get parts', () => {
const data = 'Hello\nthere\ngeneral\nkenobi';
const parts = renderer.getParts(data);
expect(parts.map(p => p.text)).toEqual([
- 'Hello\nthere\ngeneral\nkenobi'
+ 'Hello\nthere\ngeneral\nkenobi',
]);
});
test('lot of stuff', () => {
@@ -58,27 +58,27 @@ describe('get parts', () => {
{
index: 0,
end: 12,
- text: 'Hello\nthere\n'
+ text: 'Hello\nthere\n',
},
{
index: 22,
end: 30,
- text: '\ngeneral'
+ text: '\ngeneral',
},
{
index: 53,
end: 54,
- text: '\n'
+ text: '\n',
},
{
index: 78,
end: 79,
- text: '\n'
+ text: '\n',
},
{
index: 109,
end: 115,
- text: 'kenobi'
+ text: 'kenobi',
},
]);
});