bulmatown 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +38 -0
- data/.rspec +2 -0
- data/.rubocop.yml +22 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +53 -0
- data/Rakefile +8 -0
- data/bridgetown.automation.rb +11 -0
- data/bulmatown.gemspec +29 -0
- data/components/bulmatown/button.liquid +16 -0
- data/components/bulmatown/collection.liquid +37 -0
- data/components/bulmatown/collection.scss +12 -0
- data/components/bulmatown/hero.liquid +16 -0
- data/components/bulmatown/hero.scss +31 -0
- data/components/bulmatown/hero_wrapper.liquid +12 -0
- data/components/bulmatown/navbar.liquid +20 -0
- data/components/bulmatown/navbar.scss +54 -0
- data/components/bulmatown/pagination.liquid +31 -0
- data/content/bulmatown/example_page.md +8 -0
- data/content/bulmatown/train-on-rails.jpeg +0 -0
- data/example/.gitignore +35 -0
- data/example/Gemfile +22 -0
- data/example/bridgetown.config.yml +26 -0
- data/example/frontend/fonts/forkawesome-webfont.eot +0 -0
- data/example/frontend/fonts/forkawesome-webfont.svg +2849 -0
- data/example/frontend/fonts/forkawesome-webfont.ttf +0 -0
- data/example/frontend/fonts/forkawesome-webfont.woff +0 -0
- data/example/frontend/fonts/forkawesome-webfont.woff2 +0 -0
- data/example/frontend/javascript/index.js +4 -0
- data/example/frontend/styles/index.scss +5 -0
- data/example/package.json +37 -0
- data/example/plugins/builders/.keep +0 -0
- data/example/plugins/site_builder.rb +4 -0
- data/example/src/404.html +9 -0
- data/example/src/_components/footer.liquid +53 -0
- data/example/src/_components/head.liquid +9 -0
- data/example/src/_components/navbar.liquid +51 -0
- data/example/src/_data/authors.yml +5 -0
- data/example/src/_data/site_metadata.yml +18 -0
- data/example/src/_layouts/default.html +15 -0
- data/example/src/_layouts/home.html +5 -0
- data/example/src/_layouts/page.html +5 -0
- data/example/src/_layouts/post.html +5 -0
- data/example/src/_posts/2020-06-13-this-is-groovy.md +29 -0
- data/example/src/_posts/2020-06-13-welcome-to-bridgetown.md +30 -0
- data/example/src/about.md +11 -0
- data/example/src/favicon.ico +0 -0
- data/example/src/images/jared-white-avatar.jpg +0 -0
- data/example/src/index.md +21 -0
- data/example/src/posts.md +11 -0
- data/example/start.js +17 -0
- data/example/sync.js +35 -0
- data/example/webpack.config.js +78 -0
- data/example/yarn.lock +6127 -0
- data/layouts/bulmatown/homepage.html +18 -0
- data/layouts/bulmatown/page.html +18 -0
- data/layouts/bulmatown/post.html +29 -0
- data/lib/bulmatown.rb +11 -0
- data/lib/bulmatown/builder.rb +13 -0
- data/lib/bulmatown/version.rb +5 -0
- data/package.json +21 -0
- data/yarn.lock +51 -0
- metadata +210 -0
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,37 @@
|
|
1
|
+
{
|
2
|
+
"name": "new-bridgetown-site",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"private": true,
|
5
|
+
"scripts": {
|
6
|
+
"build": "bundle exec bridgetown build",
|
7
|
+
"serve": "bundle exec bridgetown serve",
|
8
|
+
"webpack-build": "webpack --mode production",
|
9
|
+
"webpack-dev": "webpack --mode development -w",
|
10
|
+
"deploy": "yarn webpack-build && yarn build",
|
11
|
+
"sync": "node sync.js",
|
12
|
+
"start": "node start.js"
|
13
|
+
},
|
14
|
+
"dependencies": {
|
15
|
+
"bridgetown-quick-search": "1.0.3",
|
16
|
+
"bulmatown": "../../bulmatown"
|
17
|
+
},
|
18
|
+
"devDependencies": {
|
19
|
+
"@babel/core": "^7.9.0",
|
20
|
+
"@babel/plugin-proposal-class-properties": "^7.8.3",
|
21
|
+
"@babel/plugin-proposal-decorators": "^7.10.1",
|
22
|
+
"@babel/plugin-transform-runtime": "^7.9.0",
|
23
|
+
"@babel/preset-env": "^7.9.0",
|
24
|
+
"babel-loader": "^8.1.0",
|
25
|
+
"browser-sync": "^2.26.7",
|
26
|
+
"concurrently": "^5.2.0",
|
27
|
+
"css-loader": "^3.4.2",
|
28
|
+
"file-loader": "^6.0.0",
|
29
|
+
"mini-css-extract-plugin": "^0.9.0",
|
30
|
+
"node-sass": "^4.13.1",
|
31
|
+
"sass-loader": "^8.0.2",
|
32
|
+
"style-loader": "^1.1.3",
|
33
|
+
"webpack": "^4.42.1",
|
34
|
+
"webpack-cli": "^3.3.11",
|
35
|
+
"webpack-manifest-plugin": "^2.2.0"
|
36
|
+
}
|
37
|
+
}
|
File without changes
|
@@ -0,0 +1,53 @@
|
|
1
|
+
<footer class="footer">
|
2
|
+
<div class="container">
|
3
|
+
<div class="columns">
|
4
|
+
<div class="column is-5">
|
5
|
+
<div class="logo">
|
6
|
+
{{ metadata.title}}
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<h4>
|
10
|
+
{{ metadata.tagline }}
|
11
|
+
</h4>
|
12
|
+
|
13
|
+
<div class="mt-3">
|
14
|
+
Follow on Twitter: <strong><a href="https://twitter.com/{{ metadata.twitter }}">@{{ metadata.twitter }}</strong></a>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="mt-6 is-size-7">
|
18
|
+
Website content licensed <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</div>
|
22
|
+
<div class="column is-4">
|
23
|
+
<h4>
|
24
|
+
Other <strong>Resources</strong>
|
25
|
+
</h4>
|
26
|
+
|
27
|
+
<div class="mt-5">
|
28
|
+
<a href="https://wikipedia.org">Wikipedia</a><br/>
|
29
|
+
<a href="https://archive.org/web/">Wayback Machine</a>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<div class="column is-3">
|
33
|
+
<h4>
|
34
|
+
<strong>Share</strong> on Social Media
|
35
|
+
</h4>
|
36
|
+
|
37
|
+
<div class="mt-5">
|
38
|
+
<a href="https://twitter.com/intent/tweet?url={{ url | uri_escape }}&via={{ metadata.twitter }}&text=Check%20out%20this%20awesome%20new%20site%20built%20with%20Bridgetown%20and%20Ruby%21&hashtags=SpinUpBridgetown%2CJamstack" class="button is-info">
|
39
|
+
<span class="icon"> <i class="fa fa-twitter is-size-5"></i> </span>
|
40
|
+
<span class="has-text-weight-bold">Tweet</span>
|
41
|
+
</a>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<div class="mt-6">
|
45
|
+
<a href="/feed.xml" class="button is-danger is-small">
|
46
|
+
<span class="icon"> <i class="fa fa-rss"></i> </span>
|
47
|
+
<span class="has-text-weight-bold">News Feed</span>
|
48
|
+
</a>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
</footer>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<meta charset="utf-8" />
|
2
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
3
|
+
{% capture page_title %}{{ title | strip_html | strip_newlines }}{% endcapture %}
|
4
|
+
<title>{% if page_title != "" %}{{ page_title | escape }} | {{ metadata.title | escape }}{% else %}{{ metadata.title | escape }}: {{ metadata.tagline | escape }}{% endif %}</title>
|
5
|
+
|
6
|
+
<meta name="description" content="{{ metadata.description }}" />
|
7
|
+
|
8
|
+
<link rel="stylesheet" href="{% webpack_path css %}" />
|
9
|
+
<script src="{% webpack_path js %}" defer></script>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
{% rendercontent "bulmatown/navbar", class: "is-dark" %}
|
2
|
+
{% with logo %}
|
3
|
+
<a class="navbar-item" href="/">
|
4
|
+
{{ metadata.title }}
|
5
|
+
</a>
|
6
|
+
{% endwith %}
|
7
|
+
{% with items_start %}
|
8
|
+
<a class="navbar-item" href="/">Home</a>
|
9
|
+
<a class="navbar-item" href="/posts">Articles</a>
|
10
|
+
<a class="navbar-item" href="/about">About</a>
|
11
|
+
<div class="navbar-item has-dropdown is-hoverable">
|
12
|
+
<a class="navbar-link" href="/topics">
|
13
|
+
Topics
|
14
|
+
</a>
|
15
|
+
<div class="navbar-dropdown is-boxed">
|
16
|
+
<a class="navbar-item" href="https://bulma.io/documentation/overview/start/">
|
17
|
+
Overview
|
18
|
+
</a>
|
19
|
+
<a class="navbar-item" href="https://bulma.io/documentation/overview/modifiers/">
|
20
|
+
Modifiers
|
21
|
+
</a>
|
22
|
+
<a class="navbar-item" href="https://bulma.io/documentation/columns/basics/">
|
23
|
+
Columns
|
24
|
+
</a>
|
25
|
+
<a class="navbar-item" href="https://bulma.io/documentation/layout/container/">
|
26
|
+
Layout
|
27
|
+
</a>
|
28
|
+
<a class="navbar-item" href="https://bulma.io/documentation/form/general/">
|
29
|
+
Form
|
30
|
+
</a>
|
31
|
+
<hr class="navbar-divider">
|
32
|
+
<a class="navbar-item" href="https://bulma.io/documentation/elements/box/">
|
33
|
+
Elements
|
34
|
+
</a>
|
35
|
+
<a class="navbar-item" href="https://bulma.io/documentation/components/breadcrumb/">
|
36
|
+
Components
|
37
|
+
</a>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
{% endwith %}
|
41
|
+
|
42
|
+
{% with items_end %}
|
43
|
+
<div class="navbar-item search-item">
|
44
|
+
{% render "bridgetown_quick_search/search", placeholder: "Search", input_class: "input" %}
|
45
|
+
</div>
|
46
|
+
<a class="navbar-item is-hidden-desktop-only" href="https://twitter.com/{{ metadata.twitter }}" target="_blank">
|
47
|
+
<span class="icon"><i class="fa fa-twitter is-size-6"></i></span>
|
48
|
+
<span class="is-hidden-tablet">Twitter</span>
|
49
|
+
</a>
|
50
|
+
{% endwith %}
|
51
|
+
{% endrendercontent %}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Site settings
|
2
|
+
# These are used to personalize your new site. If you look in the HTML files,
|
3
|
+
# you will see them accessed via {{ site.metadata.title }}, {{ site.metadata.email }}, and so on.
|
4
|
+
# You can create any custom variable you would like, and they will be accessible
|
5
|
+
# in the templates via {{ site.metadata.myvariable }}.
|
6
|
+
|
7
|
+
title: Your awesome title
|
8
|
+
tagline: This site is totally awesome
|
9
|
+
email: your-email@example.com
|
10
|
+
description: >- # this means to ignore newlines until "baseurl:"
|
11
|
+
Write an awesome description for your new site here. It will appear in your document head meta (for Google search results) and in your feed.xml site description.
|
12
|
+
|
13
|
+
twitter: jaredcwhite
|
14
|
+
|
15
|
+
bulmatown_theme:
|
16
|
+
image_sizes:
|
17
|
+
embed: image
|
18
|
+
hero: image_hero
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
{% render "head", metadata: site.metadata, title: page.title %}
|
5
|
+
</head>
|
6
|
+
<body class="{{ page.layout }} {{ page.page_class }}">
|
7
|
+
{% render "navbar", metadata: site.metadata %}
|
8
|
+
|
9
|
+
<main>
|
10
|
+
{{ content }}
|
11
|
+
</main>
|
12
|
+
|
13
|
+
{% render "footer", url: site.url, metadata: site.metadata %}
|
14
|
+
</body>
|
15
|
+
</html>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
---
|
2
|
+
layout: post
|
3
|
+
title: This is Groovy
|
4
|
+
subtitle: Take a look at the source for this post to get an idea about how it works.
|
5
|
+
image: https://res.cloudinary.com/mariposta/image/upload/w_1800,c_limit,q_65/EEF14FD7-4409-419C-B4CF-DE4934C67F1A_eexxp7.jpg
|
6
|
+
image_hero: https://res.cloudinary.com/mariposta/image/upload/w_2048,c_limit,q_65/EEF14FD7-4409-419C-B4CF-DE4934C67F1A_eexxp7.jpg
|
7
|
+
rainbow_hero: true
|
8
|
+
author: jared
|
9
|
+
---
|
10
|
+
|
11
|
+
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `bridgetown serve`, which launches a web server and auto-regenerates your site when a file is updated.
|
12
|
+
|
13
|
+
Bridgetown requires blog post files to be named according to the following format:
|
14
|
+
|
15
|
+
`YEAR-MONTH-DAY-title.EXT`
|
16
|
+
|
17
|
+
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `EXT` is the file extension representing the format used in the file (for example, `md` for Markdown). After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
|
18
|
+
|
19
|
+
Bridgetown also offers powerful support for code snippets:
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
def print_hi(name)
|
23
|
+
puts "Hi, #{name}"
|
24
|
+
end
|
25
|
+
print_hi('Tom')
|
26
|
+
#=> prints 'Hi, Tom' to STDOUT.
|
27
|
+
````
|
28
|
+
|
29
|
+
Check out the [Bridgetown docs](https://bridgetownrb.com/docs/) for more info on how to get the most out of Bridgetown. File all bugs/feature requests at [Bridgetown’s GitHub repo](https://github.com/bridgetownrb/bridgetown). If you have questions, you can ask them on [Bridgetown Community Forum](https://community.bridgetownrb.com).
|
@@ -0,0 +1,30 @@
|
|
1
|
+
---
|
2
|
+
layout: post
|
3
|
+
title: "Your First Post on Bridgetown"
|
4
|
+
subtitle: You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes!
|
5
|
+
date: 2020-06-13 08:39:40 -0700
|
6
|
+
categories: updates
|
7
|
+
image: https://res.cloudinary.com/mariposta/image/upload/w_1800,c_limit,q_65/IMG_5232_srqhvl.jpg
|
8
|
+
image_hero: https://res.cloudinary.com/mariposta/image/upload/w_2048,c_limit,q_65/IMG_5232_srqhvl.jpg
|
9
|
+
author: jared
|
10
|
+
---
|
11
|
+
|
12
|
+
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `bridgetown serve`, which launches a web server and auto-regenerates your site when a file is updated.
|
13
|
+
|
14
|
+
Bridgetown requires blog post files to be named according to the following format:
|
15
|
+
|
16
|
+
`YEAR-MONTH-DAY-title.EXT`
|
17
|
+
|
18
|
+
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `EXT` is the file extension representing the format used in the file (for example, `md` for Markdown). After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
|
19
|
+
|
20
|
+
Bridgetown also offers powerful support for code snippets:
|
21
|
+
|
22
|
+
```ruby
|
23
|
+
def print_hi(name)
|
24
|
+
puts "Hi, #{name}"
|
25
|
+
end
|
26
|
+
print_hi('Tom')
|
27
|
+
#=> prints 'Hi, Tom' to STDOUT.
|
28
|
+
````
|
29
|
+
|
30
|
+
Check out the [Bridgetown docs](https://bridgetownrb.com/docs/) for more info on how to get the most out of Bridgetown. File all bugs/feature requests at [Bridgetown’s GitHub repo](https://github.com/bridgetownrb/bridgetown). If you have questions, you can ask them on [Bridgetown Community Forum](https://community.bridgetownrb.com).
|
@@ -0,0 +1,11 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
title: About
|
4
|
+
subtitle: This is an About page.
|
5
|
+
---
|
6
|
+
|
7
|
+
This is the basic Bridgetown site template. You can find out more info about customizing your Bridgetown site, as well as basic Bridgetown usage documentation at [bridgetownrb.com](https://bridgetownrb.com/)
|
8
|
+
|
9
|
+
You can find the source code for Bridgetown at GitHub:
|
10
|
+
[bridgetownrb](https://github.com/bridgetownrb) /
|
11
|
+
[bridgetown](https://github.com/bridgetownrb/bridgetown)
|
File without changes
|
Binary file
|
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
layout: home
|
3
|
+
---
|
4
|
+
|
5
|
+
Welcome to my site!
|
6
|
+
|
7
|
+
I write about topics that I care about and believe are important. I try to bring my authentic voice every time I set out to type, and I strive to share a viewpoint that gets you thinking and inspired to dig deeper.
|
8
|
+
|
9
|
+
----
|
10
|
+
{: .my-6}
|
11
|
+
|
12
|
+
# Latest Articles
|
13
|
+
{: .mb-5 .title .has-text-centered}
|
14
|
+
|
15
|
+
{% assign posts = site.posts | slice: 0, 6 %}
|
16
|
+
{% render "bulmatown/collection", collection: posts, metadata: site.metadata %}
|
17
|
+
|
18
|
+
{% if site.posts.size > 6 %}
|
19
|
+
<a href="/posts/" class="button is-primary is-outlined is-small"><span>Previous Articles</span> <span class="icon"><i class="fa fa-arrow-right"></i></span></a>
|
20
|
+
{: .mt-6 .has-text-centered}
|
21
|
+
{% endif %}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
---
|
2
|
+
layout: page
|
3
|
+
title: Articles
|
4
|
+
pagination:
|
5
|
+
enabled: true
|
6
|
+
---
|
7
|
+
|
8
|
+
{% assign posts = paginator.documents %}
|
9
|
+
{% render "bulmatown/collection", collection: posts, metadata: site.metadata %}
|
10
|
+
|
11
|
+
{% render "bulmatown/pagination", paginator: paginator %}
|
data/example/start.js
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
const concurrently = require('concurrently');
|
2
|
+
|
3
|
+
// By default, configure Bridgetown to use port 4001 so Browsersync can use 4000
|
4
|
+
// See also Browsersync settings in sync.js
|
5
|
+
const port = 4001
|
6
|
+
|
7
|
+
/////////////////
|
8
|
+
// Concurrently
|
9
|
+
/////////////////
|
10
|
+
concurrently([
|
11
|
+
{ command: "yarn webpack-dev", name: "Webpack", prefixColor: "yellow"},
|
12
|
+
{ command: "sleep 4; yarn serve --port " + port, name: "Bridgetown", prefixColor: "green"},
|
13
|
+
{ command: "sleep 8; yarn sync", name: "Live", prefixColor: "blue"}
|
14
|
+
], {
|
15
|
+
restartTries: 3,
|
16
|
+
killOthers: ['failure', 'success'],
|
17
|
+
}).then(() => { console.log("Done.");console.log('\033[0G'); }, () => {});
|
data/example/sync.js
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
const browserSync = require("browser-sync").create();
|
2
|
+
|
3
|
+
// You can change these configuration values:
|
4
|
+
const proxy = "http://localhost:4001"
|
5
|
+
const port = 4000
|
6
|
+
const uiPort = 4002
|
7
|
+
|
8
|
+
////////////////
|
9
|
+
// Browsersync
|
10
|
+
////////////////
|
11
|
+
browserSync.init({
|
12
|
+
open: false,
|
13
|
+
notify: false,
|
14
|
+
proxy: proxy,
|
15
|
+
port: port,
|
16
|
+
files: "output/index.html",
|
17
|
+
ghostMode: {
|
18
|
+
clicks: false,
|
19
|
+
forms: false,
|
20
|
+
scroll: false,
|
21
|
+
},
|
22
|
+
reloadDelay: 0,
|
23
|
+
injectChanges: false,
|
24
|
+
ui: {
|
25
|
+
port: uiPort
|
26
|
+
},
|
27
|
+
snippetOptions: {
|
28
|
+
rule: {
|
29
|
+
match: /<\/head>/i,
|
30
|
+
fn: function (snippet, match) {
|
31
|
+
return snippet + match;
|
32
|
+
},
|
33
|
+
},
|
34
|
+
},
|
35
|
+
});
|
@@ -0,0 +1,78 @@
|
|
1
|
+
const path = require("path");
|
2
|
+
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
3
|
+
const ManifestPlugin = require("webpack-manifest-plugin");
|
4
|
+
|
5
|
+
module.exports = {
|
6
|
+
entry: "./frontend/javascript/index.js",
|
7
|
+
devtool: "source-map",
|
8
|
+
// Set some or all of these to true if you want more verbose logging:
|
9
|
+
stats: {
|
10
|
+
modules: false,
|
11
|
+
builtAt: false,
|
12
|
+
timings: false,
|
13
|
+
children: false,
|
14
|
+
},
|
15
|
+
output: {
|
16
|
+
path: path.resolve(__dirname, "output", "_bridgetown", "static", "js"),
|
17
|
+
filename: "all.[contenthash].js",
|
18
|
+
},
|
19
|
+
resolve: {
|
20
|
+
extensions: [".js", ".jsx"],
|
21
|
+
},
|
22
|
+
plugins: [
|
23
|
+
new MiniCssExtractPlugin({
|
24
|
+
filename: "../css/all.[contenthash].css",
|
25
|
+
}),
|
26
|
+
new ManifestPlugin({
|
27
|
+
fileName: path.resolve(__dirname, ".bridgetown-webpack", "manifest.json"),
|
28
|
+
}),
|
29
|
+
],
|
30
|
+
module: {
|
31
|
+
rules: [
|
32
|
+
{
|
33
|
+
test: /\.(js|jsx)/,
|
34
|
+
use: {
|
35
|
+
loader: "babel-loader",
|
36
|
+
options: {
|
37
|
+
presets: ["@babel/preset-env"],
|
38
|
+
plugins: [
|
39
|
+
["@babel/plugin-proposal-decorators", { "legacy": true }],
|
40
|
+
["@babel/plugin-proposal-class-properties", { "loose" : true }],
|
41
|
+
[
|
42
|
+
"@babel/plugin-transform-runtime",
|
43
|
+
{
|
44
|
+
helpers: false,
|
45
|
+
},
|
46
|
+
],
|
47
|
+
],
|
48
|
+
},
|
49
|
+
},
|
50
|
+
},
|
51
|
+
{
|
52
|
+
test: /\.(s[ac]|c)ss$/,
|
53
|
+
use: [
|
54
|
+
MiniCssExtractPlugin.loader,
|
55
|
+
"css-loader",
|
56
|
+
{
|
57
|
+
loader: "sass-loader",
|
58
|
+
options: {
|
59
|
+
sassOptions: {
|
60
|
+
includePaths: [
|
61
|
+
path.resolve(__dirname, "src/_components")
|
62
|
+
],
|
63
|
+
},
|
64
|
+
},
|
65
|
+
},
|
66
|
+
],
|
67
|
+
},
|
68
|
+
{
|
69
|
+
test: /\.woff2?$|\.ttf$|\.eot$|\.svg$/,
|
70
|
+
loader: "file-loader",
|
71
|
+
options: {
|
72
|
+
outputPath: "../fonts",
|
73
|
+
publicPath: "../fonts",
|
74
|
+
},
|
75
|
+
},
|
76
|
+
],
|
77
|
+
},
|
78
|
+
};
|