@droyer/nuxtcms
v0.8.20
Published
CMS for Nuxt.js
Readme
:package: NuxtCMS

Nuxt.js module for managing your projects data and content.
NuxtCMS Demo
Github Repo | Live Site

:heavy_check_mark: Features
:memo: Write content in Markdown
:card_file_box: Use YAML for data
:lock: Can set content collection items to draft
:mag: Easy access to get the content and data you need
:label: Automatic tag API creation for any collections that include them in frontmatter
:zap: The Quick Overview
- :ballot_box_with_check: Everything lives in the
_CMSdirectory - Two Directories for storing files
Contentfor Markdown collectionsDatafor Yaml collections and individual files
- Everything can be accessed as
JSONvia the$cmsApi.get()method
Example Directory Structure
# INSIDE NUXT SOUCE DIRECTORY
_CMS
├── Content
│ ├── Blog
│ ├── Markdown
│ └── Pages
└── Data
├── Courses
└── Projects
├── menu.yml
└── settings.ymlMarkdown files go inside subdirectories within
ContentDirectory name of
Blogis NOT customizableYAML files go inside within
Dataas files or inside subdirectoriesSubdirectories inside
Dataare considered "DataCollections" This means they will a slug and title will automatically be provided for each item within the collection so they can be used for dynamic route generation
:page_facing_up: Using Your Content & Data
NuxtCMS provides a helper via $cmsApi that is available on the context and instance.
Whether you want all the items within a content type or a specific item, you use the same method, $cmsApi.get() to get both content and data. For example:
const allProjects = $cmsApi.get("projects");
const specificProject = $cmsApi.get("projects", params.slug);Examples
In A Page Route
Getting All Items Within a Data or Content Collection
asyncData({ $cmsApi }) {
const articles = $cmsApi.get('articles')
return { articles }
}In A Dynamic Page Route
Get An Item Within a Data or Content Collection
asyncData({ $cmsApi, params }) {
const article = $cmsApi.get('articles', params.slug)
return { article }
}Within Vuex Store
nuxtServerInit({ commit }, { $cmsApi }) {
commit('setDataFileExample', $cmsApi.get('data-file-example'))
}Within A Component
computed: {
nav() {
return this.$cmsApi.get('nav-menu')
}
}Using Provided Blog Styles
<style src="@droyer/nuxtcms/lib/assets/blog-styles.css"></style>
<style src="prismjs/themes/prism-tomorrow.css"></style>Setup
- Add
nuxtcmsdependency withyarnornpminto your project - Add
nuxtcmstomodulessection ofnuxt.config.js - Configure it:
{
modules: [
// Simple usage
"@droyer/nuxtcms",
// With options
[
"@droyer/nuxtcms",
{
/* module options */
}
]
];
}Options
The Options go here
Development
- Clone this repository
- Install dependencies using
yarn installornpm install - Start development server using
npm run dev
License
Copyright (c) David Royer [email protected]
