-import { fileURLToPath } from 'url';
-import { join, resolve, dirname } from 'path';
-import Getenv from 'getenv';
-
-const __filename = fileURLToPath(import.meta.url);
-const __dirname = dirname(__filename);
-
-const internals = {
- // We'll use this to store configuration, such as the remote config,
- // templates, and the static directory.
- configDirectory: Getenv('BLOG_CONFIG_DIRECTORY',
- resolve(
- join(
- Getenv(
- 'XDG_CONFIG_HOME',
- join(Getenv('HOME'), '.config')
- ),
- 'blog'
- )
- )
- ),
- // We'll use this to store the actual blog contents.
- dataDirectory: Getenv('BLOG_DATA_DIRECTORY',
- resolve(
- join(
- Getenv(
- 'XDG_DATA_HOME',
- join(Getenv('HOME'), '.local/share')
- ),
- 'blog'
- )
- )
- ),
- // We'll use this to store the actual blog contents.
- outputDirectory: Getenv('BLOG_OUTPUT_DIRECTORY',
- resolve(
- join(
- Getenv(
- 'XDG_CACHE_HOME',
- join(Getenv('HOME'), '.cache')
- ),
- 'blog'
- )
- )
- )
-};
-
-/**
- * The main configuration object for Blog. It will be used to
- * initialize all of the sub-components. It can extend any property of
- * the blog object.
- *
- * @memberof Blog
- * @typedef {object} tConfiguration
- * @property {number} maxPosts=3 the max number of posts that can exist
- * at one time
- * @property {string} configDirectory=$XDG_CONFIG_HOME/blog the location of
- * the configuration files.
- * @property {string} dataDirectory=$XDG_DATA_HOME/blog the location of
- * the blog data.
- * @property {string} outputDirectory=$XDG_CACHE_HOME/blog the location of
- * the generated blog files.
- * @property {string} postsDirectory=$XDG_DATA_HOME/blog/posts the location of
- * the directory where the posts will be stored.
- * @property {string} archiveDirectory=$XDG_DATA_HOME/blog/archive the location of
- * the directory where the archive will be stored.
- * @property {string} staticDirectory=$XDG_DATA_HOME/blog/static the location of
- * the directory where the generated files will be placed. NOTE: There
- * are some pre-built style files in the default directory, if you
- * select another one, make sure you include them manually.
- * @property {string} templatesDirectory=$XDG_CONFIG_HOME/blog/templates the
- * location of the templates we'll use to generate the index.html, feed.xml,
- * and index.txt.
- * @property {string} remoteConfig=$XDG_CONFIG_HOME/blog/blogremotee the
- * location of the templates we'll use to generate the index.html
- */
-export default {
- // XDG_CONFIG_HOME and XDG_DATA_HOME defaults.
- configDirectory: internals.configDirectory,
- dataDirectory: internals.dataDirectory,
- outputDirectory: internals.outputDirectory,
-
- // User configuration, changeable with BLOG_ env variables.
- maxPosts: Getenv.int('BLOG_MAX_POSTS', 3),
- postsDirectory: resolve(join(internals.dataDirectory, 'posts')),
- archiveDirectory: resolve(join(internals.dataDirectory, 'archive')),
- staticDirectory: resolve(join(internals.dataDirectory, 'static')),
- templatesDirectory: resolve(join(internals.dataDirectory, 'templates')),
-
- remoteConfig: resolve(join(internals.configDirectory, 'blogremote')),
-
- blogOutputDirectory: resolve(join(internals.outputDirectory, 'blog')),
- archiveOutputDirectory: resolve(join(internals.outputDirectory, 'archive')),
-
- // Internal config: This can't be modified.
- defaultTemplatesDirectory: resolve(join(__dirname, '../templates'))
-};