Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
alexblunck committed Nov 6, 2018
0 parents commit 6548098
Show file tree
Hide file tree
Showing 5 changed files with 107 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules/
.DS_Store
package-lock.json
5 changes: 5 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"tabWidth": 4,
"semi": false,
"singleQuote": true
}
54 changes: 54 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Next.js + Html

Import `.html` files as strings in your Next.js project

## Installation

```
npm install --save @blunck/next-html
```

## Usage

Create a `next.config.js` in your project

```js
// next.config.js
const withHtml = require('@blunck/next-html')()
module.exports = withHtml()
```

You can now import `.html` files as strings

```js
import foo from './foo.html'

export default () => <div dangerouslySetInnerHTML={{ __html: foo }} />
```

### With `html-loader` options

Optionally you can provide [html-loader](https://github.com/webpack-contrib/html-loader) options

```js
// next.config.js
const withHtml = require('@blunck/next-html')({
minimize: true,
conservativeCollapse: false
})
module.exports = withHtml()
```

### Configuring Next.js

Optionally you can add your custom Next.js configuration as parameter

```js
// next.config.js
const withHtml = require('@blunck/next-html')()
module.exports = withHtml({
webpack(config, options) {
return config
}
})
```
24 changes: 24 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const defaultHtmlLoaderOptions = {
minimize: true,
conservativeCollapse: false
}

module.exports = htmlLoaderOptions => (nextConfig = {}) => {
htmlLoaderOptions = htmlLoaderOptions || defaultHtmlLoaderOptions

return Object.assign({}, nextConfig, {
webpack(config, options) {
config.module.rules.push({
test: /\.html$/,
loader: 'html-loader',
options: htmlLoaderOptions
})

if (typeof nextConfig.webpack === 'function') {
return nextConfig.webpack(config, options)
}

return config
}
})
}
21 changes: 21 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "@blunck/next-html",
"version": "1.0.0",
"description": "Import `.html` files as strings in your Next.js project",
"main": "index.js",
"repository": "alexblunck/next-html",
"keywords": [
"nextjs",
"html-loader",
"html"
],
"author": "Alexander Blunck",
"license": "MIT",
"bugs": {
"url": "https://github.com/alexblunck/next-html/issues"
},
"homepage": "https://github.com/alexblunck/next-html#readme",
"dependencies": {
"html-loader": "0.5.5"
}
}

0 comments on commit 6548098

Please sign in to comment.