# =================================
# The root path of our our project
rootPath: process.cwd() # default
# The project's package.json path
# If it is a relative path, it will have the resolved `rootPath` prepended to it
packagePath: 'package.json' # default
# An array of paths that we try to extract our docpad configuration from
# An array of special paths which to load single plugins from
# (e.g., ['/a/path/to/a/docpad-plugin-special'])
pluginPaths: [] # default
# An array of paths which to load multiple plugins from
pluginsPaths: [ # default
# An array of special paths that when changes occur in, we reload our configuration
reloadPaths: [] # default
# An array of special paths that when changes occur in, we regenerate our website
regeneratePaths: [] # default
# The time (in milliseconds) to wait after a source file has
# changed before using it to regenerate. Updating over the
# network (e.g., via FTP) can cause a page to be partially
# rendered as the page is regenerated *before* the source file
# has completed updating: in this case increase this value.
regenerateDelay: 100 # default
# Where should we put our generated website files?
# If it is a relative path, it will have the resolved `rootPath` prepended to it
# Where can we find our source website files?
# If it is a relative path, it will have the resolved `rootPath` prepended to it
# An array of paths which contents will be treated as documents
# If it is a relative path, it will have the resolved `srcPath` prepended to it
documentsPaths: [ # default
# An array of paths which contents will be treated as files
# If it is a relative path, it will have the resolved `srcPath` prepended to it
# An array of paths which contents will be treated as layouts
# If it is a relative path, it will have the resolved `srcPath` prepended to it
layoutsPaths: [ # default
# Can be set to an array of absolute paths that we should ignore from the scanning process
ignorePaths: false # default
# Whether or not we should ignore files that start with a dot from the scanning process
ignoreHiddenFiles: false # default
# Whether or not we should ignore commonly undesired files from the scanning process
# (e.g., .DStore, thumbs.db, .git, files that start with a tilda, etc.)
ignoreCommonPatterns: true # default
# Can be set to a regex of custom patterns to ignore from the scanning process
ignoreCustomPatterns: false # default
# =================================
# Use to change the port that DocPad listens to
# By default we will detect the appropriate port number for our environment
# if no environment port number is detected we will use 9778 as the port number
# Checked environment variables are:
# - PORT - Heroku, Nodejitsu, Custom
# - VCAP_APP_PORT - AppFog
# - VMC_APP_PORT - CloudFoundry
# The default caching time limit that is sent with the response to the client
# Can be set to `false` to disable caching
maxAge: 86400000 # default
# The Express.js instance that we want DocPad to use
# If not set, we will create our own
serverExpress: null # default
# The Node.js HTTP server instance that we want DocPad to use
# If not set, we will create our own
serverHttp: null # default
# =================================
# Middleware Configuration
# Which middlewares would you like us to activate
# Setting `extendServer` to `false` will set all of these to `false` automatically
# Whether or not we should extend the server with our custom middleware
extendServer: true # default
# The standard middlewares (bodeParser, methodOverride, Express router)
middlewareStandard: true # default
# The standard bodyParser middleware
middlewareBodyParser: true # default
# The standard methodOverride middleware
middlewareMethodOverride: true # default
# The standard Express router middleware
middlewareExpressRouter: true # default
middleware404: true # default
middleware500: true # default
# =================================
# Up to which level of logging should we output
logLevel: (if ('-d' in process.argv) then 7 else 6) # default
# The caterpillar instance that we want to use
# If not set, we will create our own
# Whether or not we should display system notifications as things progress within DocPad
# Whether or not DocPad should catch uncaught exceptions
catchExceptions: true # default
# Whether or not we should report errors back to the DocPad Team
reportErrors: process.argv.join('').indexOf('test') is -1 # default (don't enable if we are running inside a test)
# Whether or not we should report statistics back to the DocPad Team
reportStatistics: process.argv.join('').indexOf('test') is -1 # default (don't enable if we are running inside a test)
# The airbrake token we should use for reporting errors
# By default, uses the DocPad Team's token
airbrakeToken: null # default
# The mixpanel token we should use for reporting statistics
# By default, uses the DocPad Team's token
mixpanelToken: null # default
# =================================
# Should we attempt to auto detect the encoding of our files?
# Useful when you are using foreign encoding (e.g., GBK) for your files
# Only works on unix systems currently (limit of iconv module)
# Render Single Extensions
# Whether or not we should render single extensions by default
renderSingleExtensions: false # default
# How many times should we render documents that reference other documents?
renderPasses: 1 # default
# Whether or not to check for newer versions of DocPad
checkVersion: false # default
# Whether or not we should display any custom welcome callbacks
# Whether or not we should display any prompts
# Used for subscribing to newsletter, account information, and statistics, etc.
helperUrl: 'https://docpad.org/helper/' # default
# If enabled, we will try our best to sandbox our template rendering so that they cannot modify things outside of them
safeMode: false # default
# A hash of functions that create collections
collections: {} # default
# Performs a regenerate every x milliseconds, useful for always having the latest data
regenerateEvery: false # default
# =================================
# Use to define your own template data and helpers that will be accessible to your templates
# Complete listing of default values can be found here: http://docpad.org/docs/template-data
# Specify some site properties
# The production URL of our website
url: "http://website.com"
# The default title of our website
# The website description (for SEO)
When your website appears in search results in say Google, the text here will be shown underneath your website's title.
# The website keywords (for SEO) separated by commas
place, your, website, keywoards, here, keep, them, related, to, the, content, of, your, website
# -----------------------------
# Get the prepared site/document title
# Often we would like to specify particular formatting to our page's title
# we can apply that formatting here
# if we have a document title, then we should use that and suffix the site's title onto it
"#{@document.title} | #{@site.title}"
# if our document does not have its own title, then we should just use the site's title
# Get the prepared site/document description
getPreparedDescription: ->
# if we have a document description, then we should use that, otherwise use the site's description
@document.description or @site.description
# Get the prepared site/document keywords
# Merge the document keywords with the site keywords
@site.keywords.concat(@document.keywords or []).join(', ')
# =================================
# Skip Unsupported Plugins
# Set to `false` to load all plugins whether or not they are compatible with our DocPad version or not
skipUnsupportedPlugins: true # default
# Enable Unlisted Plugins
# Set to false to only enable plugins that have been explicity set to `true` inside `enabledPlugins`
enableUnlistedPlugins: true # default
enabledPlugins: # example
# Disable the Pokemon Plugin
# Enable the Digimon Plugin
# Unless, enableUnlistedPlugins is set to false, all plugins are enabled by default
# Should contain the plugin short names on the left, and the configuration to pass the plugin on the right
# Disable NIB within the Stylus Plugin
# =================================
# Allows us to bind listeners to the events that DocPad emits
# Complete event listing can be found here: http://docpad.org/docs/events
# Used to add our own custom routes to the server before the docpad routes are added
# Extract the server from the options
# =================================
# Environment Configuration
# The code we shall use for our locale (e.g., `en`, `fr`, etc.)
# If not set, we will attempt to detect the system's locale, if the locale can't be detected or if our locale file is not found for it, we will revert to `en`
localeCode: null # default
# Which environment we should load up
# If not set, we will default the `NODE_ENV` environment variable, if that isn't set, we will default to `development`
# Allows us to set custom configuration for specific environments
# Always refresh from server
# Only do these if we are running standalone via the `docpad` executable
checkVersion: process.argv.length >= 2 and /docpad$/.test(process.argv[1]) # default
welcome: process.argv.length >= 2 and /docpad$/.test(process.argv[1]) # default
prompts: process.argv.length >= 2 and /docpad$/.test(process.argv[1]) # default
# Listen to port 9005 on the development environment
# Export the DocPad Configuration
module.exports = docpadConfig