A lightweight Nuxt template to build a Markdown driven website. Powered by Nuxt Content, TailwindCSS and Iconify.

Overview

Content Wind

Content Wind

A lightweight Nuxt template to write a Markdown driven website, based on Nuxt Content, TailwindCSS and Iconify.

Features

  • Create pages in Markdown in the content/ directory
  • Enjoy meta tag generation from Markdown files
  • Switch between Light & Dark mode 🌔
  • Generated navigation based on your pages
  • Access 100,000 icons from 100+ icon sets with the component
  • Highlight code blocks with Shiki
  • Create Vue components and use them in your Markdown
  • Deploy on any Node or Static hosting: GH Pages, Vercel, Netlify, Heroku, etc.

Usage

Take a look at content-wind.nuxt.dev for the complete documentation.

Setup

Make sure to install the dependencies:

# yarn
yarn install

# npm
npm install

Development Server

Start the development server on http://localhost:3000

npm run dev

Deployment

Deploy with Vercel Deploy to Netlify

Static Hosting

Pre-render the website to be deployed on any static hosting:

npm run generate

The dist/ directory is ready to be deployed (symlink to .output/public), learn more on Nuxt docs.

Node server

Build the application for production:

npm run build

Start the server in production:

node .output/server/index.mjs

Learn more on Nuxt docs for more information.

Comments
  • How can i modify the AppLayout.vue and AppNavBar.vue?

    How can i modify the AppLayout.vue and AppNavBar.vue?

    Hi there,

    Thanks for this project!

    I have installed the project with this command: npx [email protected] init -t themes/content-wind my-website

    How can i customize the layout? This is possible?

    opened by hermesalvesbr 9
  • pnpm issue

    pnpm issue

    Pnpm version: 7.1.2

    ~/tmp/docs-test via  v16.14.2
    ❯ pnpm install --shamefully-hoist
    
    ~/tmp/docs-test via  v16.14.2 took 10s
    ❯ pnpm dev
    
    > @ dev /Users/yesyes/tmp/docs-test
    > nuxi dev
    Nuxt CLI v3.0.0-rc.3                                                                              07:18:56
                                                                                                      07:18:56
      > Local:    http://localhost:3000/
      > Network:  http://192.168.1.13:3000/
    
    ✔ Using ~/components/content for components in Markdown                             @nuxt/content 07:19:00
    ℹ Using default Tailwind CSS file from runtime/tailwind.css                      nuxt:tailwindcss 07:19:00
    ℹ Merging Tailwind config from ~/tailwind.config.js                              nuxt:tailwindcss 07:19:00
    ℹ Tailwind Viewer: http://localhost:3000/_tailwind/                              nuxt:tailwindcss 07:19:00
    ℹ Vite server warmed up in 582ms                                                                  07:19:03
    ℹ Vite client warmed up in 2660ms                                                                 07:19:03
    ✔ Vite server built in 2000ms                                                                     07:19:05
    ✔ Nitro built in 1317 ms                                                                    nitro 07:19:06
    TypeError [ERR_PACKAGE_IMPORT_NOT_DEFINED]: Package import specifier "#imports" is not defined in package /Users/yesyes/tmp/docs-test/node_modules/.pnpm/@[email protected]/node_modules/@nuxt/content-edge/package.json imported from /Users/yesyes/tmp/docs-test/node_modules/.pnpm/@[email protected]/node_modules/@nuxt/content-edge/dist/runtime/components/ContentDoc.mjs
        at new NodeError (node:internal/errors:371:5)
        at throwImportNotDefined (node:internal/modules/esm/resolve:442:9)
        at packageImportsResolve (node:internal/modules/esm/resolve:819:3)
        at moduleResolve (node:internal/modules/esm/resolve:973:21)
        at defaultResolve (node:internal/modules/esm/resolve:1080:11)
        at ESMLoader.resolve (node:internal/modules/esm/loader:530:30)
        at ESMLoader.getModuleJob (node:internal/modules/esm/loader:251:18)
        at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:79:40)
        at link (node:internal/modules/esm/module_job:78:36) {
      code: 'ERR_PACKAGE_IMPORT_NOT_DEFINED'
    }
    
    opened by wobsoriano 6
  • rendering issue NITRO_PRESET=azure

    rendering issue NITRO_PRESET=azure

    I have noticed a rendering issue when a route is visited for the first time after a build with NITRO_PRESET=azure

    Steps to reproduce:

    git clone [email protected]:Atinux/content-wind.git cw-issue
    cd cw-issue
    yarn
    NITRO_PRESET=azure yarn build
    npx @azure/static-web-apps-cli start .output/public --api-location .output/server
    

    This should start the azure static web app cli on localhost:4280 which proxies requests to static pages and functions.

    When I navigate to localhost:4280 the / route renders nicely. Clicking About in the nav bar yields the results in the image below. Reloading http://localhost:4280/about shows the properly rendered /about route.

    Alternately, if I first navigate to localhost:4280/about it will render nicely. Then clicking on the Home link in the nav bar shows raw json from the path="/" content query.

    Seems to need a full reload on each route. I suspect there is some state preserved serverside because after all the routes have been hit once, I can open the pages in a different browser or incognito and the issue is no longer there.

    I see this issue when running builds locally and also when builds are freshly deployed to azure static web apps.

    image

    I'm guessing this might not be the right place to report this. I would appreciate any debug tips or redirects.

    opened by sig9 4
  • How would I enable TailwindCSS Intellisense?

    How would I enable TailwindCSS Intellisense?

    I ran npx tailwindcss init and it generates tailwind.config.js.

    I put this in there:

    /** @type {import('tailwindcss').Config} */
    module.exports = {
      content: ["./content/**/*.md"],
      theme: {
        extend: {},
      },
      plugins: [],
    }
    

    and expected TailwindCSS Intellisense to "just work", but it's not 🤔

    Anyone have a solution?

    question 
    opened by jjaimealeman 3
  • Fresh install failed with 3 errors

    Fresh install failed with 3 errors

    Reproduction

    1. Cloned the repo
    2. npm i
    3. npm run dev

    Errors in Terminal and the website doesn't show up

     ERROR  Missing "./dist/app/entry" export in "nuxt3" package
    
    i Vite server using experimental vite-node...                                              
    
     ERROR  Missing "./dist/app/entry" export in "nuxt3" package
    
    i @nuxt-themes/config-edge v0.0.1-27648855.385c9ae enabled!                                             
    i Using Content Wind by Sebastien Chopin (@Atinux)                                                      
    √ Design Tokens built in 120ms                                                                  
    
     ERROR  Rollup error:  Unexpected token (Note that you need plugins to import files that are not JavaScript)
    
    √ Nitro built in 1503 ms
    

    The localhost page is stuck on this: image

    And this error in Console:

    GET http://localhost:3000/ 503 (Server Unavailable)
    
    opened by ManasMadrecha 3
  • Support code diffs & file names

    Support code diffs & file names

    Hi,

    It would be cool if this could support code diffs, like seen here: CleanShot 2022-06-03 at 11 55 05@2x

    In addition to file names and tabs like: CleanShot 2022-06-03 at 11 56 46@2x CleanShot 2022-06-03 at 11 57 17@2x

    I wasn't sure if these are natively supported by Nuxt Content v2 already, and needed some form of syntax or flag. These are in the docs.

    opened by heychazza 3
  • feat: use experimental `nuxt.schema` to define app config

    feat: use experimental `nuxt.schema` to define app config

    Use experimental nuxt-config-schema to define app config from nuxt.schema.ts. This way we can annotate documentation and have custom resolvers for appConfig.

    input:

    export default defineNuxtConfigSchema({
      appConfig: {
        cover: '/cover.jpg',
        socials: {
          /** Twitter handle */
          twitter: '',
          /** Github repository name */
          github: '',
        }
      }
    })
    

    output: (.nuxt/schema/nuxt.schema.d.ts)

    export interface NuxtUserConfig {
       appConfig: {
        /** @default "/cover.jpg" */
        cover: string,
    
        socials: {
           /**
            * Twitter handle
            * @default ""
           */
           twitter: string,
    
           /**
            * Github repository name
            * @default ""
           */
           github: string,
        },
      },
    }
    
    opened by pi0 2
  • wrong theme switcher behavior

    wrong theme switcher behavior

    The current theme switcher button shows Sun icon when it's light mode and Moon icon when it's in dark mode, which is actually quite the opposite of how its supposed to behave. It should be Moon when it's in light mode and vice-versa.

    image image

    Can open a PR if you feel like this needs to be fixed.

    opened by asrvd 2
  • Excerpt displaying

    Excerpt displaying

    Hello, i don't find how to display the excerpt on a list of articles.

     <div v-for="article in articles" :key="article._path">
          <h2>{{ article.title }}</h2>
          <ContentRenderer :value="article" :excerpt="true" />
        </div>
    

    this code display all the content of page : Screenshot 2022-08-08 at 15 35 31

    Thanks for help 👍🏼

    opened by ipatate 2
  • [nuxt] [request error] fetch failed - while serving app locally

    [nuxt] [request error] fetch failed - while serving app locally

    Getting this error spammed after I try to visit the locally served app. Using M1 mac, yarn 1.22.17 - any idea? I basically just cloned and installed dependencies.

    [nuxt] [request error] fetch failed ()
      at createError (./node_modules/h3/dist/index.mjs:191:15)
      at nodeHandler (./node_modules/h3/dist/index.mjs:381:21)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      at async ufetch (./node_modules/unenv/runtime/fetch/index.mjs:9:17)
      at async $fetchRaw2 (./node_modules/ohmyfetch/dist/chunks/fetch.mjs:131:20)
      at async Object.errorhandler [as onError] (./.nuxt/dev/index.mjs:336:16)
      at async nodeHandler (./node_modules/h3/dist/index.mjs:389:9)
      at async ufetch (./node_modules/unenv/runtime/fetch/index.mjs:9:17)
      at async $fetchRaw2 (./node_modules/ohmyfetch/dist/chunks/fetch.mjs:131:20)
      at async Object.errorhandler [as onError] (./.nuxt/dev/index.mjs:336:16)
    [h3] [unhandled] H3Error: fetch failed ()
        at createError (file:///Users/bird/GitHub/wtfffff/node_modules/h3/dist/index.mjs:191:15)
        at nodeHandler (file:///Users/bird/GitHub/wtfffff/node_modules/h3/dist/index.mjs:381:21)
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
        at async ufetch (file:///Users/bird/GitHub/wtfffff/node_modules/unenv/runtime/fetch/index.mjs:9:17)
        at async $fetchRaw2 (file:///Users/bird/GitHub/wtfffff/node_modules/ohmyfetch/dist/chunks/fetch.mjs:131:20)
        at async Object.errorhandler [as onError] (file:///Users/bird/GitHub/wtfffff/.nuxt/dev/index.mjs:336:16)
        at async nodeHandler (file:///Users/bird/GitHub/wtfffff/node_modules/h3/dist/index.mjs:389:9)
        at async ufetch (file:///Users/bird/GitHub/wtfffff/node_modules/unenv/runtime/fetch/index.mjs:9:17)
        at async $fetchRaw2 (file:///Users/bird/GitHub/wtfffff/node_modules/ohmyfetch/dist/chunks/fetch.mjs:131:20)
        at async Object.errorhandler [as onError] (file:///Users/bird/GitHub/wtfffff/.nuxt/dev/index.mjs:336:16) {
      statusCode: 500,
      fatal: false,
      unhandled: true,
      statusMessage: 'Internal Server Error'
    }
    
    opened by PatrikBird 2
  • Add option to disable Tailwind's module (and maybe others too)

    Add option to disable Tailwind's module (and maybe others too)

    I'm using the unocss module and my classes have duplicated definitions due to both frameworks generating their own styles.

    I'd like a way to opt-out, similar to how the typography setting works.

    opened by hacknug 1
  • Errors in the project

    Errors in the project

    Hi, I'm just setting up the project and I'm getting 2 errors in vscode.

    These errors do not affect the functionality of the project, but I find them a bit annoying during development.

    List.vue: image

    ColorModeSwitch.vue: image

    Is it only me who has these errors and how can I fix them?

    I might have already found a solution for the first error:

    <script setup lang="ts">
    const { flatUnwrap } = useUnwrap()
    const slots = useSlots()
    
    defineProps({
      icon: {
        type: String,
        default: 'ph:check-circle-duotone'
      }
    })
    </script>
    
    <template>
      <ul class="p-0">
        <li v-for="(item, index) of flatUnwrap((slots.default && slots.default()) ?? [], ['ul'])" :key="index" class="flex pl-0 space-x-2 my-1 items-center">
          <Icon :name="icon" class="flex-shrink-0 w-6 h-6 mt-1 text-emerald-500" />
          <span><ContentSlot :use="() => item" unwrap="li" /></span>
        </li>
      </ul>
    </template>
    

    For the second one I haven't found anything yet, but I don't seem to be the only one with this problem: https://github.com/nuxt-modules/color-mode/issues/168

    opened by jannikbuscha 2
  • Support Wikilink Syntax

    Support Wikilink Syntax

    I would like to use Nuxt Content to generate HTML form Obsidian files (see https://www.obsidian.md). Obsidian uses the Wikilink syntax to reference files.

    e.g. [[anotherfile]] references the file "anotherfile.md" in the current directory.

    This syntax is (as far as I could see) not supported by nuxt content. I could do some preprocessing to convert that syntax to the standard markdown syntax. But that would not work if I use the content-directory directly as the root folder for the Obsidian vault.

    Therefore it would be great if you could provide a remark plugin and a configuration example that handles that.

    enhancement 
    opened by henriette-einstein 9
Releases(v0.4.0)
  • v0.4.0(Dec 16, 2022)

  • v0.3.7(Dec 6, 2022)

  • v0.3.6(Dec 5, 2022)

  • v0.3.5(Dec 1, 2022)

  • v0.3.0(Nov 22, 2022)

    What's Changed

    • Move to Nuxt Typography in https://github.com/Atinux/content-wind/pull/34 instead of Tailwind Typography for better customization

    Full Changelog: https://github.com/Atinux/content-wind/compare/v0.2.9...v0.3.0

    Source code(tar.gz)
    Source code(zip)
  • v0.2.7(Nov 3, 2022)

    Update default cover

    By default, the cover will be /cover.jpg. (Inside public/cover.jpg).

    You can now update it using the app.config.ts:

    defineAppConfig({
      cover: '/my-cover.png'
    })
    

    Show Content Wind Version

    CleanShot 2022-11-03 at 11 19 22

    Also, the dependencies has been upgraded ✨

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Oct 7, 2022)

  • v0.0.7(Oct 7, 2022)

  • v0.0.6(Oct 7, 2022)

    Content Wind is now a Nuxt theme ✨

    It is no longer a GitHub template in order to power the extends feature of Nuxt 3.

    This means that you can get updates from content-wind as a normal NPM package with the possibility to extend each part of it by creating the same file in your project as on https://github.com/Atinux/content-wind/tree/main/theme 🚀

    Take a look at the online playground.

    Or start locally with:

    npx [email protected] init -t themes/content-wind my-website
    
    Source code(tar.gz)
    Source code(zip)
  • v0.0.5(Aug 3, 2022)

    What's Changed

    • It now has a loading bar ✨

    https://user-images.githubusercontent.com/904724/182500351-207fead5-ed51-4f39-a6a6-476301187a26.mp4

    • chore: use nuxt edge by @Atinux in https://github.com/Atinux/content-wind/pull/16

    Full Changelog: https://github.com/Atinux/content-wind/compare/v0.0.4...v0.0.5

    Source code(tar.gz)
    Source code(zip)
Owner
Sébastien Chopin
Making @nuxt and @nuxtlabs
Sébastien Chopin
Nuxt3 starter with tailwindcss, prisma, vueuse, formkit, iconify

Nuxt3 starter with tailwindcss, prisma, vueuse, formkit, iconify

null 2 Jun 30, 2022
Data-driven conference website in Vue.js. Speakers, sessions, and scheduling.

Events with Nuxt.js Data-driven conference website in Vue.js. Speakers, sessions, and scheduling. Deployed from sanity.io/create. What you have An eve

Bianca W 0 May 3, 2022
The component, supporting Iconify, Emojis and custom components.

Nuxt Icon Icon module for Nuxt with 100,000+ ready to use icons from Iconify. ✨ Release Notes ?? Online playground Features ✨ Nuxt 3 ready Support 100

Nuxt Modules 366 Jan 4, 2023
Nuxt.js powered personal website also used for web development practice ⚡️

nuxtio Build Setup # install dependencies $ npm install # serve with hot reload at localhost:3000 $ npm run dev # build for production and launch se

Maximilian Niquet 0 Jan 20, 2022
Youtube UI clone website built with Nuxt.js, TailwindCSS

Youtube clone with Tailwind CSS and Nuxt 3 Development process preview Youtube preview Setup Make sure to install the dependencies yarn install Develo

Honey Bear 2 Dec 5, 2022
Nefa - Free landing page template built using nuxt and tailwindcss

NEFA Landing Page Free landing page template built using Nuxt 2 and Tailwindcss

Rafli Surya P 112 Dec 28, 2022
🖼Portfolio built with Nuxt and Nuxt Content

??Portfolio built with Nuxt and Nuxt Content

Colin Lienard 6 Jan 8, 2023
Example Jamstack app with Nuxt 3, Content, and Storyblok deployed to Vercel

Nuxt 3 Minimal Starter Look at the nuxt 3 documentation to learn more. Setup Make sure to install the dependencies: # yarn yarn install # npm npm ins

Jakub Andrzejewski 2 Nov 4, 2022
A simple multipage and responsive Nuxt.js & TailwindCSS portfolio theme with dark mode.

Nuxt.js & TailwindCSS Portfolio - With Dark Mode A simple portfolio starter theme built with Nuxt.js and TailwindCSS. This is the Nuxt version of the

Nangialai Stoman 42 Dec 3, 2022
💼 Responsive Job portal UI made with ❤️ with Nuxt.js and tailwindcss

?? Responsive Job portal UI made with ❤️ with Nuxt.js and tailwindcss Run Locally Clone the project git clone [email protected]:al-alec/look4job_portal

Alexis Yehadji 9 Oct 29, 2022
Build a mult-user blogging app with Supabase and Nuxt.js

Building a Multi-User Blogging App with Nuxt and Supabase This project goes along with the blog post featured on CSS Tricks. Running the project To ge

Nader Dabit 60 Nov 5, 2022
Build a full-blown jamstack blog with Nuxt 3, Storyblok and Tailwind CSS demo repo

Nuxt 3 Minimal Starter Look at the nuxt 3 documentation to learn more. Setup Make sure to install the dependencies: # yarn yarn install # npm npm ins

Dawntraoz Storyblok 6 Nov 17, 2022
Fcl-nuxt-starter - FCL plugin + full stack Nuxt application starter template

How to use the Flow Client Library (FCL) with Nuxt Access the FCL instance from

Bruno Gonzales 3 Jul 18, 2022
Netlify ❤️ Nuxt.js: a simple template to give you the code you need to use Netlify features with Nuxt.

Nuxt Toolbox Template This is a NuxtJS v2 project. It is a reference on how to integrate commonly used features within Netlify for Nuxt.js. Build Setu

null 19 Nov 7, 2022
A static site build with Nuxt for svenjungnickel.com

svenjungnickel Build Setup # install dependencies $ npm install # serve with hot reload at localhost:3000 $ npm run dev # build for production and l

Sven Jungnickel 0 Jan 10, 2022
A static site build with Nuxt for svenjungnickel.com

svenjungnickel.com Build Setup # install dependencies $ npm install # serve with hot reload at localhost:3000 $ npm run dev # build for production a

Sven Jungnickel 0 Jan 10, 2022
My personal website/portfolio built with Nuxt and Storyblok CMS.

My Portfolio Multilingual JAMstack site built with Nuxt.js, styled with SCSS (BEM methodology) and deployed on Netlify. I used Storyblok CMS and its i

Claudia Benito 80 Jan 3, 2023
My personal website built with Nuxt.js, TypeScript and Tailwind CSS✨

My personal website built with Nuxt.js, TypeScript and Tailwind CSS✨

Luis 3 Nov 17, 2022
⚡ A portfolio for developers with a blog powered by Notion

nuxt-portfolio-dev a portfolio for developers w/ a blog powered by Notion Demo: https://aymaneMx.com Features ?? minimal and clean portfolio ?? the da

Aymane Mimouni 120 Dec 29, 2022