mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-10 21:07:48 +00:00
* Add API for frameworks and examples * Adjust headers * Update frameworks list * Always use latest * Add types * Use now repo for downloading and listing * Use .existsSync * Remove unused packages * Use 307 for redirect * Add examples * Update tsconfig.json Co-Authored-By: Steven <steven@ceriously.com> * Make examples unique * Remove detectors from frameworks API * Use /api instead of Next.js * Install dependencies * Rename project * Change name * Empty * Change name * Update api/tsconfig.json Co-Authored-By: Steven <steven@ceriously.com> * Update examples Co-authored-by: Steven <steven@ceriously.com>
92 lines
2.5 KiB
JavaScript
92 lines
2.5 KiB
JavaScript
const { DateTime } = require('luxon');
|
||
const fs = require('fs');
|
||
const pluginRss = require('@11ty/eleventy-plugin-rss');
|
||
const pluginSyntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight');
|
||
|
||
module.exports = function(eleventyConfig) {
|
||
eleventyConfig.addPlugin(pluginRss);
|
||
eleventyConfig.addPlugin(pluginSyntaxHighlight);
|
||
eleventyConfig.setDataDeepMerge(true);
|
||
|
||
eleventyConfig.addLayoutAlias('post', 'layouts/post.njk');
|
||
|
||
eleventyConfig.addFilter('readableDate', dateObj => {
|
||
return DateTime.fromJSDate(dateObj, { zone: 'utc' }).toFormat(
|
||
'dd LLL yyyy'
|
||
);
|
||
});
|
||
|
||
// https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
|
||
eleventyConfig.addFilter('htmlDateString', dateObj => {
|
||
return DateTime.fromJSDate(dateObj, { zone: 'utc' }).toFormat('yyyy-LL-dd');
|
||
});
|
||
|
||
// Get the first `n` elements of a collection.
|
||
eleventyConfig.addFilter('head', (array, n) => {
|
||
if (n < 0) {
|
||
return array.slice(n);
|
||
}
|
||
|
||
return array.slice(0, n);
|
||
});
|
||
|
||
eleventyConfig.addCollection('tagList', require('./_11ty/getTagList'));
|
||
|
||
eleventyConfig.addPassthroughCopy('img');
|
||
eleventyConfig.addPassthroughCopy('css');
|
||
|
||
/* Markdown Plugins */
|
||
let markdownIt = require('markdown-it');
|
||
let markdownItAnchor = require('markdown-it-anchor');
|
||
let options = {
|
||
html: true,
|
||
breaks: true,
|
||
linkify: true,
|
||
};
|
||
let opts = {
|
||
permalink: true,
|
||
permalinkClass: 'direct-link',
|
||
permalinkSymbol: '#',
|
||
};
|
||
|
||
eleventyConfig.setLibrary(
|
||
'md',
|
||
markdownIt(options).use(markdownItAnchor, opts)
|
||
);
|
||
|
||
eleventyConfig.setBrowserSyncConfig({
|
||
callbacks: {
|
||
ready: function(err, browserSync) {
|
||
const content_404 = fs.readFileSync('_site/404.html');
|
||
|
||
browserSync.addMiddleware('*', (req, res) => {
|
||
// Provides the 404 content without redirect.
|
||
res.write(content_404);
|
||
res.end();
|
||
});
|
||
},
|
||
},
|
||
});
|
||
|
||
return {
|
||
templateFormats: ['md', 'njk', 'html', 'liquid'],
|
||
|
||
// If your site lives in a different subdirectory, change this.
|
||
// Leading or trailing slashes are all normalized away, so don’t worry about it.
|
||
// If you don’t have a subdirectory, use "" or "/" (they do the same thing)
|
||
// This is only used for URLs (it does not affect your file structure)
|
||
pathPrefix: '/',
|
||
|
||
markdownTemplateEngine: 'liquid',
|
||
htmlTemplateEngine: 'njk',
|
||
dataTemplateEngine: 'njk',
|
||
passthroughFileCopy: true,
|
||
dir: {
|
||
input: '.',
|
||
includes: '_includes',
|
||
data: '_data',
|
||
output: '_site',
|
||
},
|
||
};
|
||
};
|