-
-
-
+ {favicon}
{this.props.rule.name}
diff --git a/src/newsreader/js/pages/homepage/reducers/error.js b/src/newsreader/js/pages/homepage/reducers/error.js
new file mode 100644
index 0000000..3d20b14
--- /dev/null
+++ b/src/newsreader/js/pages/homepage/reducers/error.js
@@ -0,0 +1,12 @@
+import { RECEIVE_API_ERROR } from '../actions/error.js';
+
+const defaultState = {};
+
+export const error = (state = { ...defaultState }, action) => {
+ switch (action.type) {
+ case RECEIVE_API_ERROR:
+ return { ...state, error: action.error };
+ default:
+ return {};
+ }
+};
diff --git a/src/newsreader/js/pages/homepage/reducers/index.js b/src/newsreader/js/pages/homepage/reducers/index.js
index f70ca2a..20dea78 100644
--- a/src/newsreader/js/pages/homepage/reducers/index.js
+++ b/src/newsreader/js/pages/homepage/reducers/index.js
@@ -1,10 +1,11 @@
import { combineReducers } from 'redux';
import { categories } from './categories.js';
+import { error } from './error.js';
import { rules } from './rules.js';
import { posts } from './posts.js';
import { selected } from './selected.js';
-const rootReducer = combineReducers({ categories, rules, posts, selected });
+const rootReducer = combineReducers({ categories, error, rules, posts, selected });
export default rootReducer;
diff --git a/src/newsreader/js/pages/rules/components/RuleCard.js b/src/newsreader/js/pages/rules/components/RuleCard.js
index 07d4e99..d74b8d1 100644
--- a/src/newsreader/js/pages/rules/components/RuleCard.js
+++ b/src/newsreader/js/pages/rules/components/RuleCard.js
@@ -4,19 +4,21 @@ import Card from '../../../components/Card.js';
const RuleCard = props => {
const { rule } = props;
+ let favicon = null;
- const faviconUrl = rule.favicon ? rule.favicon : '/static/icons/picture.svg';
- const stateIcon = !rule.error
- ? '/static/icons/checkmark-circle.svg'
- : '/static/icons/warning.svg';
+ if (rule.favicon) {
+ favicon =

;
+ } else {
+ favicon =
;
+ }
+
+ const stateIcon = !rule.error ? 'gg-check' : 'gg-danger';
const cardHeader = (
<>
-
-

-
{rule.name}
-
-

+
+
{rule.name}
+ {favicon}
>
);
diff --git a/src/newsreader/js/tests/homepage/actions/category.test.js b/src/newsreader/js/tests/homepage/actions/category.test.js
index a6be5ad..8c0266c 100644
--- a/src/newsreader/js/tests/homepage/actions/category.test.js
+++ b/src/newsreader/js/tests/homepage/actions/category.test.js
@@ -5,6 +5,7 @@ import fetchMock from 'fetch-mock';
import * as actions from '../../../pages/homepage/actions/categories.js';
import * as constants from '../../../pages/homepage/constants.js';
import * as ruleActions from '../../../pages/homepage/actions/rules.js';
+import * as errorActions from '../../../pages/homepage/actions/error.js';
const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);
@@ -247,4 +248,69 @@ describe('category actions', () => {
expect(store.getActions()).toEqual(expectedActions);
});
+
+ it('should handle an unexpected response when fetching a category', () => {
+ const category = {
+ id: 1,
+ name: 'Tech',
+ unread: 1138,
+ };
+
+ const errorMessage = 'Key id not found';
+
+ fetchMock.getOnce('/api/categories/1', () => {
+ throw new TypeError(errorMessage);
+ });
+
+ const expectedActions = [
+ { type: actions.REQUEST_CATEGORY },
+ { type: actions.RECEIVE_CATEGORY, category: {} },
+ { type: errorActions.RECEIVE_API_ERROR, error: TypeError(errorMessage) },
+ ];
+
+ const store = mockStore({
+ categories: { items: {}, isFetching: false },
+ rules: { items: {}, isFetching: false },
+ posts: { items: {}, isFetching: false },
+ selected: { item: {}, next: false, lastReached: false, post: {} },
+ error: { error: {} },
+ });
+
+ return store.dispatch(actions.fetchCategory(category)).then(() => {
+ expect(store.getActions()).toEqual(expectedActions);
+ });
+ });
+
+ it('should handle an unexpected response when multiple categories', () => {
+ const category = {
+ id: 1,
+ name: 'Tech',
+ unread: 1138,
+ };
+
+ const errorMessage = 'URL not found';
+
+ fetchMock.getOnce('/api/categories/', () => {
+ throw new Error(errorMessage);
+ });
+
+ const expectedActions = [
+ { type: actions.REQUEST_CATEGORIES },
+ { type: actions.RECEIVE_CATEGORIES, categories: [] },
+ { type: ruleActions.RECEIVE_RULES, rules: [] },
+ { type: errorActions.RECEIVE_API_ERROR, error: Error(errorMessage) },
+ ];
+
+ const store = mockStore({
+ categories: { items: {}, isFetching: false },
+ rules: { items: {}, isFetching: false },
+ posts: { items: {}, isFetching: false },
+ selected: { item: {}, next: false, lastReached: false, post: {} },
+ error: { error: {} },
+ });
+
+ return store.dispatch(actions.fetchCategories()).then(() => {
+ expect(store.getActions()).toEqual(expectedActions);
+ });
+ });
});
diff --git a/src/newsreader/js/tests/homepage/actions/post.test.js b/src/newsreader/js/tests/homepage/actions/post.test.js
index 65967b4..e8f84de 100644
--- a/src/newsreader/js/tests/homepage/actions/post.test.js
+++ b/src/newsreader/js/tests/homepage/actions/post.test.js
@@ -3,12 +3,13 @@ import thunk from 'redux-thunk';
import fetchMock from 'fetch-mock';
import * as actions from '../../../pages/homepage/actions/posts.js';
+import * as errorActions from '../../../pages/homepage/actions/error.js';
import * as constants from '../../../pages/homepage/constants.js';
const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);
-describe('rule actions', () => {
+describe('post actions', () => {
afterEach(() => {
fetchMock.restore();
});
@@ -322,4 +323,86 @@ describe('rule actions', () => {
expect(store.getActions()).toEqual(expectedActions);
});
+
+ it('should handle exceptions when marking a post read', () => {
+ const post = {
+ id: 2067,
+ remoteIdentifier: 'https://arstechnica.com/?p=1648607',
+ title:
+ 'This amazing glitch puts Star Fox 64 ships in an unmodified Zelda cartridge',
+ body:
+ '"Stale-reference manipulation," 300-character file names, and a clash between worlds.',
+ author: 'Kyle Orland',
+ publicationDate: '2020-01-24T19:50:12Z',
+ url: 'https://arstechnica.com/?p=1648607',
+ rule: 5,
+ read: false,
+ };
+
+ const rule = {
+ id: 4,
+ name: 'Ars Technica',
+ unread: 100,
+ category: 1,
+ url: 'http://feeds.arstechnica.com/arstechnica/index?fmt=xml',
+ favicon: 'https://cdn.arstechnica.net/favicon.ico',
+ };
+
+ const errorMessage = 'Permission denied';
+
+ fetchMock.patch(`/api/posts/${post.id}/`, () => {
+ throw new Error(errorMessage);
+ });
+
+ const store = mockStore({
+ categories: { items: {}, isFetching: false },
+ rules: { items: {}, isFetching: false },
+ posts: { items: {}, isFetching: false },
+ selected: { item: { ...rule }, next: false, lastReached: false, post: {} },
+ });
+
+ const expectedActions = [
+ { type: actions.RECEIVE_POST, post: {} },
+ { type: errorActions.RECEIVE_API_ERROR, error: TypeError(errorMessage) },
+ ];
+
+ return store.dispatch(actions.markPostRead(post, 'FAKE_TOKEN')).then(() => {
+ expect(store.getActions()).toEqual(expectedActions);
+ });
+ });
+
+ it('should handle exceptions when fetching posts by section', () => {
+ const rule = {
+ id: 4,
+ name: 'Ars Technica',
+ unread: 100,
+ category: 1,
+ url: 'http://feeds.arstechnica.com/arstechnica/index?fmt=xml',
+ favicon: 'https://cdn.arstechnica.net/favicon.ico',
+ type: constants.RULE_TYPE,
+ };
+
+ const errorMessage = 'Page not found';
+
+ fetchMock.getOnce(`/api/rules/${rule.id}/posts/?read=false`, () => {
+ throw new Error(errorMessage);
+ });
+
+ const store = mockStore({
+ categories: { items: {}, isFetching: false },
+ rules: { items: {}, isFetching: false },
+ posts: { items: {}, isFetching: false },
+ selected: { item: { ...rule }, next: false, lastReached: false, post: {} },
+ });
+
+ const expectedActions = [
+ { type: actions.REQUEST_POSTS },
+ { type: actions.RECEIVE_POSTS, posts: [] },
+ { type: errorActions.RECEIVE_API_ERROR, error: Error(errorMessage) },
+ ];
+
+ return store.dispatch(actions.fetchPostsBySection(rule)).then(() => {
+ expect(store.getActions()).toEqual(expectedActions);
+ });
+ });
});
diff --git a/src/newsreader/js/tests/homepage/actions/rule.test.js b/src/newsreader/js/tests/homepage/actions/rule.test.js
index 70a3a89..7e167e7 100644
--- a/src/newsreader/js/tests/homepage/actions/rule.test.js
+++ b/src/newsreader/js/tests/homepage/actions/rule.test.js
@@ -7,6 +7,7 @@ import { objectsFromArray } from '../../../utils.js';
import * as actions from '../../../pages/homepage/actions/rules.js';
import * as constants from '../../../pages/homepage/constants.js';
import * as categoryActions from '../../../pages/homepage/actions/categories.js';
+import * as errorActions from '../../../pages/homepage/actions/error.js';
const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);
@@ -253,4 +254,88 @@ describe('rule actions', () => {
expect(store.getActions()).toEqual(expectedActions);
});
});
+
+ it('should handle an unexpected response when fetching a rule', () => {
+ const rule = {
+ id: 1,
+ name: 'Test rule',
+ unread: 100,
+ category: 1,
+ url: 'http://feeds.arstechnica.com/arstechnica/index?fmt=xml',
+ favicon: 'https://cdn.arstechnica.net/favicon.ico',
+ };
+
+ const errorMessage = 'Too many requests';
+
+ fetchMock.getOnce('/api/rules/1', () => {
+ throw new TypeError(errorMessage);
+ });
+
+ const store = mockStore({
+ categories: { items: {}, isFetching: false },
+ rules: { items: {}, isFetching: false },
+ posts: { items: {}, isFetching: false },
+ selected: { item: {}, next: false, lastReached: false, post: {} },
+ });
+
+ const expectedActions = [
+ { type: actions.REQUEST_RULE },
+ { type: actions.RECEIVE_RULE, rule: {} },
+ { type: errorActions.RECEIVE_API_ERROR, error: TypeError(errorMessage) },
+ ];
+
+ return store.dispatch(actions.fetchRule(rule)).then(() => {
+ expect(store.getActions()).toEqual(expectedActions);
+ });
+ });
+
+ it('should handle an unexpected response when fetching rules by category', () => {
+ const category = {
+ id: 1,
+ name: 'Tech',
+ unread: 0,
+ };
+
+ const rules = [
+ {
+ id: 1,
+ name: 'Ars Technica',
+ url: 'http://feeds.arstechnica.com/arstechnica/index?fmt=xml',
+ favicon: 'https://cdn.arstechnica.net/favicon.ico',
+ category: 1,
+ unread: 200,
+ },
+ {
+ id: 2,
+ name: 'Hacker News',
+ url: 'https://news.ycombinator.com/rss',
+ favicon: 'https://news.ycombinator.com/favicon.ico',
+ category: 1,
+ unread: 350,
+ },
+ ];
+
+ const errorMessage = 'Too many request';
+
+ fetchMock.getOnce('/api/categories/1/rules/', () => {
+ throw new Error(errorMessage);
+ });
+
+ const expectedActions = [
+ { type: actions.REQUEST_RULES },
+ { type: actions.RECEIVE_RULES, rules: [] },
+ { type: errorActions.RECEIVE_API_ERROR, error: Error(errorMessage) },
+ ];
+
+ const store = mockStore({
+ categories: { items: {}, isFetching: false },
+ rules: { items: {}, isFetching: false },
+ posts: { items: {}, isFetching: false },
+ selected: {},
+ });
+
+ return store.dispatch(actions.fetchRulesByCategory(category)).then(() => {
+ expect(store.getActions()).toEqual(expectedActions);
+ });
+ });
});
diff --git a/src/newsreader/js/tests/homepage/actions/selected.test.js b/src/newsreader/js/tests/homepage/actions/selected.test.js
index a55d232..b0f163c 100644
--- a/src/newsreader/js/tests/homepage/actions/selected.test.js
+++ b/src/newsreader/js/tests/homepage/actions/selected.test.js
@@ -4,13 +4,14 @@ import fetchMock from 'fetch-mock';
import * as actions from '../../../pages/homepage/actions/selected.js';
import * as categoryActions from '../../../pages/homepage/actions/categories.js';
+import * as errorActions from '../../../pages/homepage/actions/error.js';
import * as ruleActions from '../../../pages/homepage/actions/rules.js';
import * as constants from '../../../pages/homepage/constants.js';
const middlewares = [thunk];
const mockStore = configureMockStore(middlewares);
-describe('category actions', () => {
+describe('selected actions', () => {
afterEach(() => {
fetchMock.restore();
});
@@ -138,4 +139,99 @@ describe('category actions', () => {
expect(store.getActions()).toEqual(expectedActions);
});
});
+
+ it('should handle exceptions when marking a category as read', () => {
+ const category = { id: 1, name: 'Test category', unread: 100 };
+ const rules = {
+ 1: {
+ id: 1,
+ name: 'Ars Technica',
+ url: 'http://feeds.arstechnica.com/arstechnica/index?fmt=xml',
+ favicon: 'https://cdn.arstechnica.net/favicon.ico',
+ category: 1,
+ unread: 200,
+ },
+ 2: {
+ id: 2,
+ name: 'Hacker News',
+ url: 'https://news.ycombinator.com/rss',
+ favicon: 'https://news.ycombinator.com/favicon.ico',
+ category: 1,
+ unread: 350,
+ },
+ };
+
+ const errorMessage = 'Page not found';
+
+ fetchMock.postOnce('/api/categories/1/read/', () => {
+ throw new Error(errorMessage);
+ });
+
+ const expectedActions = [
+ { type: categoryActions.REQUEST_CATEGORY },
+ { type: categoryActions.RECEIVE_CATEGORY, category: {} },
+ { type: errorActions.RECEIVE_API_ERROR, error: Error(errorMessage) },
+ ];
+
+ const store = mockStore({
+ categories: { items: {}, isFetching: false },
+ rules: { items: { ...rules }, isFetching: false },
+ posts: { items: {}, isFetching: false },
+ selected: {
+ item: { ...category, type: actions.CATEGORY_TYPE },
+ next: false,
+ lastReached: false,
+ post: {},
+ },
+ error: {},
+ });
+
+ return store
+ .dispatch(actions.markRead({ ...category, type: constants.CATEGORY_TYPE }, 'TOKEN'))
+ .then(() => {
+ expect(store.getActions()).toEqual(expectedActions);
+ });
+ });
+
+ it('should handle exceptions when marking a rule as read', () => {
+ const rule = {
+ id: 1,
+ name: 'Ars Technica',
+ url: 'http://feeds.arstechnica.com/arstechnica/index?fmt=xml',
+ favicon: 'https://cdn.arstechnica.net/favicon.ico',
+ category: 1,
+ unread: 200,
+ };
+
+ const errorMessage = 'Page not found';
+
+ fetchMock.postOnce('/api/rules/1/read/', () => {
+ throw new Error(errorMessage);
+ });
+
+ const expectedActions = [
+ { type: ruleActions.REQUEST_RULE },
+ { type: ruleActions.RECEIVE_RULE, rule: {} },
+ { type: errorActions.RECEIVE_API_ERROR, error: Error(errorMessage) },
+ ];
+
+ const store = mockStore({
+ categories: { items: {}, isFetching: false },
+ rules: { items: { [rule.id]: { ...rule } }, isFetching: false },
+ posts: { items: {}, isFetching: false },
+ selected: {
+ item: { ...rule, type: constants.RULE_TYPE },
+ next: false,
+ lastReached: false,
+ post: {},
+ },
+ error: {},
+ });
+
+ return store
+ .dispatch(actions.markRead({ ...rule, type: constants.RULE_TYPE }, 'TOKEN'))
+ .then(() => {
+ expect(store.getActions()).toEqual(expectedActions);
+ });
+ });
});
diff --git a/src/newsreader/js/utils.js b/src/newsreader/js/utils.js
index 9db723e..bba4717 100644
--- a/src/newsreader/js/utils.js
+++ b/src/newsreader/js/utils.js
@@ -1,11 +1,11 @@
export const formatDatetime = dateString => {
const locale = navigator.language ? navigator.language : 'en-US';
const dateOptions = {
- hour: '2-digit',
- weekday: 'long',
year: 'numeric',
- month: 'long',
+ month: 'numeric',
day: 'numeric',
+ minute: 'numeric',
+ hour: 'numeric',
};
const date = new Date(dateString);
diff --git a/src/newsreader/news/core/templates/core/category.html b/src/newsreader/news/core/templates/core/category.html
index dfe7318..0771345 100644
--- a/src/newsreader/news/core/templates/core/category.html
+++ b/src/newsreader/news/core/templates/core/category.html
@@ -38,8 +38,12 @@
{% if category and rule.pk in category.rule_ids %}checked{% endif %}
value="{{ rule.pk }}" />
-

+ {% if rule.favicon %}
+

+ {% else %}
+
+ {% endif %}
+
{{ rule.name }}
{% endfor %}
diff --git a/src/newsreader/scss/components/card/_card.scss b/src/newsreader/scss/components/card/_card.scss
index 6e544f6..a9f957e 100644
--- a/src/newsreader/scss/components/card/_card.scss
+++ b/src/newsreader/scss/components/card/_card.scss
@@ -31,7 +31,6 @@
}
& .favicon {
- height: 30px;
- margin: 0 20px 0 0;
+ height: 20px;
}
}
diff --git a/src/newsreader/scss/components/form/_form.scss b/src/newsreader/scss/components/form/_form.scss
index d99c246..931fba9 100644
--- a/src/newsreader/scss/components/form/_form.scss
+++ b/src/newsreader/scss/components/form/_form.scss
@@ -24,7 +24,7 @@
}
& .favicon {
- height: 30px;
+ height: 20px;
}
}
diff --git a/src/newsreader/scss/components/messages/_messages.scss b/src/newsreader/scss/components/messages/_messages.scss
index 56af888..5779820 100644
--- a/src/newsreader/scss/components/messages/_messages.scss
+++ b/src/newsreader/scss/components/messages/_messages.scss
@@ -3,6 +3,9 @@
flex-direction: column;
align-items: center;
+ position: fixed;
+ top: 0;
+ width: 100%;
margin: 5px 0 20px 0;
color: $white;
@@ -10,6 +13,7 @@
&__item {
width: 80%;
+ position: relative;
padding: 20px 15px;
margin: 5px 0;
@@ -28,5 +32,12 @@
&--success {
background-color: $success-green;
}
+
+ & .gg-close {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ --ggs: 2;
+ }
}
}
diff --git a/src/newsreader/scss/components/rules/_rules.scss b/src/newsreader/scss/components/rules/_rules.scss
index a1e9f67..029a070 100644
--- a/src/newsreader/scss/components/rules/_rules.scss
+++ b/src/newsreader/scss/components/rules/_rules.scss
@@ -14,10 +14,6 @@
padding: 0 2px 0 2px;
}
- & div {
- padding: 0;
- }
-
&:hover {
cursor: pointer;
background-color: darken($azureish-white, +10%);
@@ -32,6 +28,16 @@
display: flex;
align-items: center;
width: 80%;
+
+ & .gg-image {
+ --ggs: 80%;
+ margin: 0 5px 0 0;
+ min-width: 20px;
+ }
+
+ & .favicon {
+ margin: 0 5px 0 0;
+ }
}
&__title {
diff --git a/src/newsreader/scss/lib/_css.gg.scss b/src/newsreader/scss/lib/_css.gg.scss
index fbdbaa7..389e533 100644
--- a/src/newsreader/scss/lib/_css.gg.scss
+++ b/src/newsreader/scss/lib/_css.gg.scss
@@ -1 +1 @@
-@import url("https://css.gg/c");
+@import "~css.gg/icons-scss/icons";
diff --git a/src/newsreader/scss/partials/_colors.scss b/src/newsreader/scss/partials/_colors.scss
index 0259883..664ddf7 100644
--- a/src/newsreader/scss/partials/_colors.scss
+++ b/src/newsreader/scss/partials/_colors.scss
@@ -28,7 +28,7 @@ $light-orange: rgba(237, 212, 178, 1);
$light-red: rgba(255, 118, 117, 1);
$success-green: rgba(46,204,113, 1);
-$error-red: rgba(231,76,60, 1);
+$error-red: lighten(rgba(231, 76, 60, 1), 10%);
$confirm-green: $success-green;
$cancel-red: $error-red;
diff --git a/src/newsreader/static/icons/rss.png b/src/newsreader/static/favicon.png
similarity index 100%
rename from src/newsreader/static/icons/rss.png
rename to src/newsreader/static/favicon.png
diff --git a/src/newsreader/static/icons/alarm.svg b/src/newsreader/static/icons/alarm.svg
deleted file mode 100755
index 94c3105..0000000
--- a/src/newsreader/static/icons/alarm.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/angle-down.svg b/src/newsreader/static/icons/angle-down.svg
deleted file mode 100644
index 1462342..0000000
--- a/src/newsreader/static/icons/angle-down.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/newsreader/static/icons/angle-right.svg b/src/newsreader/static/icons/angle-right.svg
deleted file mode 100644
index ec7fbe9..0000000
--- a/src/newsreader/static/icons/angle-right.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/newsreader/static/icons/apartment.svg b/src/newsreader/static/icons/apartment.svg
deleted file mode 100755
index ff14506..0000000
--- a/src/newsreader/static/icons/apartment.svg
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/arrow-down-circle.svg b/src/newsreader/static/icons/arrow-down-circle.svg
deleted file mode 100755
index c09ee4e..0000000
--- a/src/newsreader/static/icons/arrow-down-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/arrow-down.svg b/src/newsreader/static/icons/arrow-down.svg
deleted file mode 100755
index d802122..0000000
--- a/src/newsreader/static/icons/arrow-down.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/arrow-left-circle.svg b/src/newsreader/static/icons/arrow-left-circle.svg
deleted file mode 100755
index a135160..0000000
--- a/src/newsreader/static/icons/arrow-left-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/arrow-left.svg b/src/newsreader/static/icons/arrow-left.svg
deleted file mode 100644
index c1168f6..0000000
--- a/src/newsreader/static/icons/arrow-left.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/arrow-right-circle.svg b/src/newsreader/static/icons/arrow-right-circle.svg
deleted file mode 100755
index 9b8d2f5..0000000
--- a/src/newsreader/static/icons/arrow-right-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/arrow-right.svg b/src/newsreader/static/icons/arrow-right.svg
deleted file mode 100755
index 21c0a0c..0000000
--- a/src/newsreader/static/icons/arrow-right.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/arrow-up-circle.svg b/src/newsreader/static/icons/arrow-up-circle.svg
deleted file mode 100755
index 044fc48..0000000
--- a/src/newsreader/static/icons/arrow-up-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/arrow-up.svg b/src/newsreader/static/icons/arrow-up.svg
deleted file mode 100755
index fa2d12e..0000000
--- a/src/newsreader/static/icons/arrow-up.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/bicycle.svg b/src/newsreader/static/icons/bicycle.svg
deleted file mode 100755
index 2599f0d..0000000
--- a/src/newsreader/static/icons/bicycle.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/bold.svg b/src/newsreader/static/icons/bold.svg
deleted file mode 100755
index 86271f6..0000000
--- a/src/newsreader/static/icons/bold.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/book.svg b/src/newsreader/static/icons/book.svg
deleted file mode 100755
index cc4892e..0000000
--- a/src/newsreader/static/icons/book.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/bookmark.svg b/src/newsreader/static/icons/bookmark.svg
deleted file mode 100755
index 6057646..0000000
--- a/src/newsreader/static/icons/bookmark.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/briefcase.svg b/src/newsreader/static/icons/briefcase.svg
deleted file mode 100755
index 58d54b6..0000000
--- a/src/newsreader/static/icons/briefcase.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/bubble.svg b/src/newsreader/static/icons/bubble.svg
deleted file mode 100755
index 87317cc..0000000
--- a/src/newsreader/static/icons/bubble.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/bug.svg b/src/newsreader/static/icons/bug.svg
deleted file mode 100755
index 7cedf5a..0000000
--- a/src/newsreader/static/icons/bug.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/bullhorn.svg b/src/newsreader/static/icons/bullhorn.svg
deleted file mode 100755
index bc8ffcc..0000000
--- a/src/newsreader/static/icons/bullhorn.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/bus.svg b/src/newsreader/static/icons/bus.svg
deleted file mode 100755
index 1a3416f..0000000
--- a/src/newsreader/static/icons/bus.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/calendar-full.svg b/src/newsreader/static/icons/calendar-full.svg
deleted file mode 100755
index c835eaa..0000000
--- a/src/newsreader/static/icons/calendar-full.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/camera-video.svg b/src/newsreader/static/icons/camera-video.svg
deleted file mode 100755
index 99e6ebe..0000000
--- a/src/newsreader/static/icons/camera-video.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/camera.svg b/src/newsreader/static/icons/camera.svg
deleted file mode 100755
index b1e662a..0000000
--- a/src/newsreader/static/icons/camera.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/car.svg b/src/newsreader/static/icons/car.svg
deleted file mode 100755
index dd9af01..0000000
--- a/src/newsreader/static/icons/car.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/cart.svg b/src/newsreader/static/icons/cart.svg
deleted file mode 100755
index cf0df35..0000000
--- a/src/newsreader/static/icons/cart.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/chart-bars.svg b/src/newsreader/static/icons/chart-bars.svg
deleted file mode 100755
index 15b0f54..0000000
--- a/src/newsreader/static/icons/chart-bars.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/checkmark-circle.svg b/src/newsreader/static/icons/checkmark-circle.svg
deleted file mode 100755
index e46b93f..0000000
--- a/src/newsreader/static/icons/checkmark-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/chevron-down-circle.svg b/src/newsreader/static/icons/chevron-down-circle.svg
deleted file mode 100755
index e530413..0000000
--- a/src/newsreader/static/icons/chevron-down-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/chevron-down.svg b/src/newsreader/static/icons/chevron-down.svg
deleted file mode 100644
index 5342155..0000000
--- a/src/newsreader/static/icons/chevron-down.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/chevron-left-circle.svg b/src/newsreader/static/icons/chevron-left-circle.svg
deleted file mode 100755
index 495f43b..0000000
--- a/src/newsreader/static/icons/chevron-left-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/chevron-left.svg b/src/newsreader/static/icons/chevron-left.svg
deleted file mode 100755
index 4117261..0000000
--- a/src/newsreader/static/icons/chevron-left.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/chevron-right-circle.svg b/src/newsreader/static/icons/chevron-right-circle.svg
deleted file mode 100755
index b5bd4d4..0000000
--- a/src/newsreader/static/icons/chevron-right-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/chevron-right.svg b/src/newsreader/static/icons/chevron-right.svg
deleted file mode 100644
index 14db8e8..0000000
--- a/src/newsreader/static/icons/chevron-right.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/chevron-up-circle.svg b/src/newsreader/static/icons/chevron-up-circle.svg
deleted file mode 100755
index 9e8acdd..0000000
--- a/src/newsreader/static/icons/chevron-up-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/chevron-up.svg b/src/newsreader/static/icons/chevron-up.svg
deleted file mode 100755
index 778bbaa..0000000
--- a/src/newsreader/static/icons/chevron-up.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/circle-minus.svg b/src/newsreader/static/icons/circle-minus.svg
deleted file mode 100755
index 1e4a8c9..0000000
--- a/src/newsreader/static/icons/circle-minus.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/clock.svg b/src/newsreader/static/icons/clock.svg
deleted file mode 100755
index 55169fe..0000000
--- a/src/newsreader/static/icons/clock.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/cloud-check.svg b/src/newsreader/static/icons/cloud-check.svg
deleted file mode 100755
index 253b386..0000000
--- a/src/newsreader/static/icons/cloud-check.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/cloud-download.svg b/src/newsreader/static/icons/cloud-download.svg
deleted file mode 100755
index 1cbe14c..0000000
--- a/src/newsreader/static/icons/cloud-download.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/cloud-sync.svg b/src/newsreader/static/icons/cloud-sync.svg
deleted file mode 100755
index c239e0d..0000000
--- a/src/newsreader/static/icons/cloud-sync.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/cloud-upload.svg b/src/newsreader/static/icons/cloud-upload.svg
deleted file mode 100755
index 9fcbabe..0000000
--- a/src/newsreader/static/icons/cloud-upload.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/cloud.svg b/src/newsreader/static/icons/cloud.svg
deleted file mode 100755
index 24918b1..0000000
--- a/src/newsreader/static/icons/cloud.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/code.svg b/src/newsreader/static/icons/code.svg
deleted file mode 100755
index fbdfd39..0000000
--- a/src/newsreader/static/icons/code.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/coffee-cup.svg b/src/newsreader/static/icons/coffee-cup.svg
deleted file mode 100755
index 478ee27..0000000
--- a/src/newsreader/static/icons/coffee-cup.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/cog.svg b/src/newsreader/static/icons/cog.svg
deleted file mode 100755
index 4b4948a..0000000
--- a/src/newsreader/static/icons/cog.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/construction.svg b/src/newsreader/static/icons/construction.svg
deleted file mode 100755
index 72726ff..0000000
--- a/src/newsreader/static/icons/construction.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/crop.svg b/src/newsreader/static/icons/crop.svg
deleted file mode 100755
index 1568611..0000000
--- a/src/newsreader/static/icons/crop.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/cross-circle.svg b/src/newsreader/static/icons/cross-circle.svg
deleted file mode 100755
index dbc08af..0000000
--- a/src/newsreader/static/icons/cross-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/cross.svg b/src/newsreader/static/icons/cross.svg
deleted file mode 100755
index 2edad61..0000000
--- a/src/newsreader/static/icons/cross.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/database.svg b/src/newsreader/static/icons/database.svg
deleted file mode 100755
index 64236ad..0000000
--- a/src/newsreader/static/icons/database.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/diamond.svg b/src/newsreader/static/icons/diamond.svg
deleted file mode 100755
index 679df4a..0000000
--- a/src/newsreader/static/icons/diamond.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/dice.svg b/src/newsreader/static/icons/dice.svg
deleted file mode 100755
index 6859d8b..0000000
--- a/src/newsreader/static/icons/dice.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/dinner.svg b/src/newsreader/static/icons/dinner.svg
deleted file mode 100755
index 0cf54d6..0000000
--- a/src/newsreader/static/icons/dinner.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/direction-ltr.svg b/src/newsreader/static/icons/direction-ltr.svg
deleted file mode 100755
index 827ada0..0000000
--- a/src/newsreader/static/icons/direction-ltr.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/direction-rtl.svg b/src/newsreader/static/icons/direction-rtl.svg
deleted file mode 100755
index 47ce7d4..0000000
--- a/src/newsreader/static/icons/direction-rtl.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/download.svg b/src/newsreader/static/icons/download.svg
deleted file mode 100755
index 51b561f..0000000
--- a/src/newsreader/static/icons/download.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/drop.svg b/src/newsreader/static/icons/drop.svg
deleted file mode 100755
index d726f67..0000000
--- a/src/newsreader/static/icons/drop.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/earth.svg b/src/newsreader/static/icons/earth.svg
deleted file mode 100755
index 411b22c..0000000
--- a/src/newsreader/static/icons/earth.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/enter-down.svg b/src/newsreader/static/icons/enter-down.svg
deleted file mode 100755
index 85794a1..0000000
--- a/src/newsreader/static/icons/enter-down.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/enter.svg b/src/newsreader/static/icons/enter.svg
deleted file mode 100755
index 1130e28..0000000
--- a/src/newsreader/static/icons/enter.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/envelope.svg b/src/newsreader/static/icons/envelope.svg
deleted file mode 100755
index f030873..0000000
--- a/src/newsreader/static/icons/envelope.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/exit-up.svg b/src/newsreader/static/icons/exit-up.svg
deleted file mode 100755
index c67b28c..0000000
--- a/src/newsreader/static/icons/exit-up.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/exit.svg b/src/newsreader/static/icons/exit.svg
deleted file mode 100755
index b54f4b5..0000000
--- a/src/newsreader/static/icons/exit.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/eye.svg b/src/newsreader/static/icons/eye.svg
deleted file mode 100755
index f67edba..0000000
--- a/src/newsreader/static/icons/eye.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/favicon-placeholder.svg b/src/newsreader/static/icons/favicon-placeholder.svg
deleted file mode 100644
index 2dac325..0000000
--- a/src/newsreader/static/icons/favicon-placeholder.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
\ No newline at end of file
diff --git a/src/newsreader/static/icons/file-add.svg b/src/newsreader/static/icons/file-add.svg
deleted file mode 100755
index 5f0b06d..0000000
--- a/src/newsreader/static/icons/file-add.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/file-empty.svg b/src/newsreader/static/icons/file-empty.svg
deleted file mode 100755
index c203b20..0000000
--- a/src/newsreader/static/icons/file-empty.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/film-play.svg b/src/newsreader/static/icons/film-play.svg
deleted file mode 100755
index d2a9db0..0000000
--- a/src/newsreader/static/icons/film-play.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/flag.svg b/src/newsreader/static/icons/flag.svg
deleted file mode 100755
index 2f91d68..0000000
--- a/src/newsreader/static/icons/flag.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/frame-contract.svg b/src/newsreader/static/icons/frame-contract.svg
deleted file mode 100755
index 3a70458..0000000
--- a/src/newsreader/static/icons/frame-contract.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/frame-expand.svg b/src/newsreader/static/icons/frame-expand.svg
deleted file mode 100755
index 40f6af0..0000000
--- a/src/newsreader/static/icons/frame-expand.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/funnel.svg b/src/newsreader/static/icons/funnel.svg
deleted file mode 100755
index d2688f7..0000000
--- a/src/newsreader/static/icons/funnel.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/gift.svg b/src/newsreader/static/icons/gift.svg
deleted file mode 100755
index 72c0bdc..0000000
--- a/src/newsreader/static/icons/gift.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/graduation-hat.svg b/src/newsreader/static/icons/graduation-hat.svg
deleted file mode 100755
index abb6099..0000000
--- a/src/newsreader/static/icons/graduation-hat.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/hand.svg b/src/newsreader/static/icons/hand.svg
deleted file mode 100755
index 1eacb25..0000000
--- a/src/newsreader/static/icons/hand.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/heart-pulse.svg b/src/newsreader/static/icons/heart-pulse.svg
deleted file mode 100755
index 62e0c08..0000000
--- a/src/newsreader/static/icons/heart-pulse.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/heart.svg b/src/newsreader/static/icons/heart.svg
deleted file mode 100755
index 660600b..0000000
--- a/src/newsreader/static/icons/heart.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/highlight.svg b/src/newsreader/static/icons/highlight.svg
deleted file mode 100755
index eb706fa..0000000
--- a/src/newsreader/static/icons/highlight.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/history.svg b/src/newsreader/static/icons/history.svg
deleted file mode 100755
index 4acfb22..0000000
--- a/src/newsreader/static/icons/history.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/home.svg b/src/newsreader/static/icons/home.svg
deleted file mode 100755
index c259dc3..0000000
--- a/src/newsreader/static/icons/home.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/hourglass.svg b/src/newsreader/static/icons/hourglass.svg
deleted file mode 100755
index 0e72fba..0000000
--- a/src/newsreader/static/icons/hourglass.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/inbox.svg b/src/newsreader/static/icons/inbox.svg
deleted file mode 100755
index 2e0a9f8..0000000
--- a/src/newsreader/static/icons/inbox.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/indent-decrease.svg b/src/newsreader/static/icons/indent-decrease.svg
deleted file mode 100755
index 9443dcf..0000000
--- a/src/newsreader/static/icons/indent-decrease.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/indent-increase.svg b/src/newsreader/static/icons/indent-increase.svg
deleted file mode 100755
index 25666f4..0000000
--- a/src/newsreader/static/icons/indent-increase.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/italic.svg b/src/newsreader/static/icons/italic.svg
deleted file mode 100755
index 6ddde14..0000000
--- a/src/newsreader/static/icons/italic.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/keyboard.svg b/src/newsreader/static/icons/keyboard.svg
deleted file mode 100755
index ae51d9c..0000000
--- a/src/newsreader/static/icons/keyboard.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/laptop-phone.svg b/src/newsreader/static/icons/laptop-phone.svg
deleted file mode 100755
index e67b5b3..0000000
--- a/src/newsreader/static/icons/laptop-phone.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/laptop.svg b/src/newsreader/static/icons/laptop.svg
deleted file mode 100755
index 51fdb07..0000000
--- a/src/newsreader/static/icons/laptop.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/layers.svg b/src/newsreader/static/icons/layers.svg
deleted file mode 100755
index 8cec392..0000000
--- a/src/newsreader/static/icons/layers.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/leaf.svg b/src/newsreader/static/icons/leaf.svg
deleted file mode 100755
index 428a264..0000000
--- a/src/newsreader/static/icons/leaf.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/license.svg b/src/newsreader/static/icons/license.svg
deleted file mode 100755
index cf95671..0000000
--- a/src/newsreader/static/icons/license.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/lighter.svg b/src/newsreader/static/icons/lighter.svg
deleted file mode 100755
index 09c5e0c..0000000
--- a/src/newsreader/static/icons/lighter.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/line-spacing.svg b/src/newsreader/static/icons/line-spacing.svg
deleted file mode 100755
index 8cf8f24..0000000
--- a/src/newsreader/static/icons/line-spacing.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/linearicons.svg b/src/newsreader/static/icons/linearicons.svg
deleted file mode 100755
index bbf2a26..0000000
--- a/src/newsreader/static/icons/linearicons.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/link.svg b/src/newsreader/static/icons/link.svg
deleted file mode 100644
index 7bb4a0e..0000000
--- a/src/newsreader/static/icons/link.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/list.svg b/src/newsreader/static/icons/list.svg
deleted file mode 100755
index 6255ad9..0000000
--- a/src/newsreader/static/icons/list.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/location.svg b/src/newsreader/static/icons/location.svg
deleted file mode 100755
index 272c1d9..0000000
--- a/src/newsreader/static/icons/location.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/lock.svg b/src/newsreader/static/icons/lock.svg
deleted file mode 100755
index 76259cf..0000000
--- a/src/newsreader/static/icons/lock.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/magic-wand.svg b/src/newsreader/static/icons/magic-wand.svg
deleted file mode 100755
index 55753d8..0000000
--- a/src/newsreader/static/icons/magic-wand.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/magnifier.svg b/src/newsreader/static/icons/magnifier.svg
deleted file mode 100755
index 9c26539..0000000
--- a/src/newsreader/static/icons/magnifier.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/map-marker.svg b/src/newsreader/static/icons/map-marker.svg
deleted file mode 100755
index 3a20637..0000000
--- a/src/newsreader/static/icons/map-marker.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/map.svg b/src/newsreader/static/icons/map.svg
deleted file mode 100755
index 319e300..0000000
--- a/src/newsreader/static/icons/map.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/menu-circle.svg b/src/newsreader/static/icons/menu-circle.svg
deleted file mode 100755
index f3544eb..0000000
--- a/src/newsreader/static/icons/menu-circle.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/menu.svg b/src/newsreader/static/icons/menu.svg
deleted file mode 100755
index e0952e0..0000000
--- a/src/newsreader/static/icons/menu.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/mic.svg b/src/newsreader/static/icons/mic.svg
deleted file mode 100755
index 9c08d2d..0000000
--- a/src/newsreader/static/icons/mic.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/moon.svg b/src/newsreader/static/icons/moon.svg
deleted file mode 100755
index 3f150c6..0000000
--- a/src/newsreader/static/icons/moon.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/move.svg b/src/newsreader/static/icons/move.svg
deleted file mode 100755
index 86c223d..0000000
--- a/src/newsreader/static/icons/move.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/music-note.svg b/src/newsreader/static/icons/music-note.svg
deleted file mode 100755
index a4ab001..0000000
--- a/src/newsreader/static/icons/music-note.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/mustache.svg b/src/newsreader/static/icons/mustache.svg
deleted file mode 100755
index 8c12f70..0000000
--- a/src/newsreader/static/icons/mustache.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/neutral.svg b/src/newsreader/static/icons/neutral.svg
deleted file mode 100755
index 4f55a69..0000000
--- a/src/newsreader/static/icons/neutral.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/page-break.svg b/src/newsreader/static/icons/page-break.svg
deleted file mode 100755
index 493c248..0000000
--- a/src/newsreader/static/icons/page-break.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/paperclip.svg b/src/newsreader/static/icons/paperclip.svg
deleted file mode 100755
index 2afa342..0000000
--- a/src/newsreader/static/icons/paperclip.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/paw.svg b/src/newsreader/static/icons/paw.svg
deleted file mode 100755
index 4170890..0000000
--- a/src/newsreader/static/icons/paw.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/pencil.svg b/src/newsreader/static/icons/pencil.svg
deleted file mode 100755
index fb618b1..0000000
--- a/src/newsreader/static/icons/pencil.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/phone-handset.svg b/src/newsreader/static/icons/phone-handset.svg
deleted file mode 100755
index cdadbe5..0000000
--- a/src/newsreader/static/icons/phone-handset.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/phone.svg b/src/newsreader/static/icons/phone.svg
deleted file mode 100755
index 2883bc8..0000000
--- a/src/newsreader/static/icons/phone.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/picture.svg b/src/newsreader/static/icons/picture.svg
deleted file mode 100755
index c927a37..0000000
--- a/src/newsreader/static/icons/picture.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/pie-chart.svg b/src/newsreader/static/icons/pie-chart.svg
deleted file mode 100755
index a02c1a5..0000000
--- a/src/newsreader/static/icons/pie-chart.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/pilcrow.svg b/src/newsreader/static/icons/pilcrow.svg
deleted file mode 100755
index 1a61c76..0000000
--- a/src/newsreader/static/icons/pilcrow.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/plus-circle.svg b/src/newsreader/static/icons/plus-circle.svg
deleted file mode 100755
index a0cf6fa..0000000
--- a/src/newsreader/static/icons/plus-circle.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/pointer-down.svg b/src/newsreader/static/icons/pointer-down.svg
deleted file mode 100755
index e2321c6..0000000
--- a/src/newsreader/static/icons/pointer-down.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/pointer-left.svg b/src/newsreader/static/icons/pointer-left.svg
deleted file mode 100755
index e3aa356..0000000
--- a/src/newsreader/static/icons/pointer-left.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/pointer-right.svg b/src/newsreader/static/icons/pointer-right.svg
deleted file mode 100755
index 011ffba..0000000
--- a/src/newsreader/static/icons/pointer-right.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/pointer-up.svg b/src/newsreader/static/icons/pointer-up.svg
deleted file mode 100755
index 08f82a1..0000000
--- a/src/newsreader/static/icons/pointer-up.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/poop.svg b/src/newsreader/static/icons/poop.svg
deleted file mode 100755
index 570fade..0000000
--- a/src/newsreader/static/icons/poop.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/power-switch.svg b/src/newsreader/static/icons/power-switch.svg
deleted file mode 100755
index 9f47372..0000000
--- a/src/newsreader/static/icons/power-switch.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/printer.svg b/src/newsreader/static/icons/printer.svg
deleted file mode 100755
index d338626..0000000
--- a/src/newsreader/static/icons/printer.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/pushpin.svg b/src/newsreader/static/icons/pushpin.svg
deleted file mode 100755
index d88009d..0000000
--- a/src/newsreader/static/icons/pushpin.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/question-circle.svg b/src/newsreader/static/icons/question-circle.svg
deleted file mode 100755
index 45e5929..0000000
--- a/src/newsreader/static/icons/question-circle.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/redo.svg b/src/newsreader/static/icons/redo.svg
deleted file mode 100755
index ec68693..0000000
--- a/src/newsreader/static/icons/redo.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/rocket.svg b/src/newsreader/static/icons/rocket.svg
deleted file mode 100755
index 552cbcc..0000000
--- a/src/newsreader/static/icons/rocket.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/sad.svg b/src/newsreader/static/icons/sad.svg
deleted file mode 100755
index ed63b85..0000000
--- a/src/newsreader/static/icons/sad.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/screen.svg b/src/newsreader/static/icons/screen.svg
deleted file mode 100755
index 057f0d9..0000000
--- a/src/newsreader/static/icons/screen.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/select.svg b/src/newsreader/static/icons/select.svg
deleted file mode 100755
index 3e8cfee..0000000
--- a/src/newsreader/static/icons/select.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/shirt.svg b/src/newsreader/static/icons/shirt.svg
deleted file mode 100755
index f6dd52d..0000000
--- a/src/newsreader/static/icons/shirt.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/smartphone.svg b/src/newsreader/static/icons/smartphone.svg
deleted file mode 100755
index 779f7d2..0000000
--- a/src/newsreader/static/icons/smartphone.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/smile.svg b/src/newsreader/static/icons/smile.svg
deleted file mode 100755
index a1a0a0a..0000000
--- a/src/newsreader/static/icons/smile.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/sort-alpha-asc.svg b/src/newsreader/static/icons/sort-alpha-asc.svg
deleted file mode 100755
index 56b8d3f..0000000
--- a/src/newsreader/static/icons/sort-alpha-asc.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/sort-amount-asc.svg b/src/newsreader/static/icons/sort-amount-asc.svg
deleted file mode 100755
index d24c0e4..0000000
--- a/src/newsreader/static/icons/sort-amount-asc.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/spell-check.svg b/src/newsreader/static/icons/spell-check.svg
deleted file mode 100755
index 1c4875c..0000000
--- a/src/newsreader/static/icons/spell-check.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/star-empty.svg b/src/newsreader/static/icons/star-empty.svg
deleted file mode 100755
index fd5098c..0000000
--- a/src/newsreader/static/icons/star-empty.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/star-half.svg b/src/newsreader/static/icons/star-half.svg
deleted file mode 100755
index c48aa79..0000000
--- a/src/newsreader/static/icons/star-half.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/star.svg b/src/newsreader/static/icons/star.svg
deleted file mode 100755
index 3302123..0000000
--- a/src/newsreader/static/icons/star.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/store.svg b/src/newsreader/static/icons/store.svg
deleted file mode 100755
index 9fce882..0000000
--- a/src/newsreader/static/icons/store.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/strikethrough.svg b/src/newsreader/static/icons/strikethrough.svg
deleted file mode 100755
index 825d1d0..0000000
--- a/src/newsreader/static/icons/strikethrough.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/sun.svg b/src/newsreader/static/icons/sun.svg
deleted file mode 100755
index b9d9038..0000000
--- a/src/newsreader/static/icons/sun.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/sync.svg b/src/newsreader/static/icons/sync.svg
deleted file mode 100755
index 982223f..0000000
--- a/src/newsreader/static/icons/sync.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/tablet.svg b/src/newsreader/static/icons/tablet.svg
deleted file mode 100755
index 8554d69..0000000
--- a/src/newsreader/static/icons/tablet.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/tag.svg b/src/newsreader/static/icons/tag.svg
deleted file mode 100755
index f2a207b..0000000
--- a/src/newsreader/static/icons/tag.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/text-align-center.svg b/src/newsreader/static/icons/text-align-center.svg
deleted file mode 100755
index 4ca60a9..0000000
--- a/src/newsreader/static/icons/text-align-center.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/text-align-justify.svg b/src/newsreader/static/icons/text-align-justify.svg
deleted file mode 100755
index 814e51e..0000000
--- a/src/newsreader/static/icons/text-align-justify.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/text-align-left.svg b/src/newsreader/static/icons/text-align-left.svg
deleted file mode 100755
index ee71585..0000000
--- a/src/newsreader/static/icons/text-align-left.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/text-align-right.svg b/src/newsreader/static/icons/text-align-right.svg
deleted file mode 100755
index 4884054..0000000
--- a/src/newsreader/static/icons/text-align-right.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/text-format-remove.svg b/src/newsreader/static/icons/text-format-remove.svg
deleted file mode 100755
index f472c8c..0000000
--- a/src/newsreader/static/icons/text-format-remove.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/text-format.svg b/src/newsreader/static/icons/text-format.svg
deleted file mode 100755
index 5fe551c..0000000
--- a/src/newsreader/static/icons/text-format.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/text-size.svg b/src/newsreader/static/icons/text-size.svg
deleted file mode 100755
index aef49f1..0000000
--- a/src/newsreader/static/icons/text-size.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/thumbs-down.svg b/src/newsreader/static/icons/thumbs-down.svg
deleted file mode 100755
index efe684e..0000000
--- a/src/newsreader/static/icons/thumbs-down.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/thumbs-up.svg b/src/newsreader/static/icons/thumbs-up.svg
deleted file mode 100755
index bcfaec2..0000000
--- a/src/newsreader/static/icons/thumbs-up.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/times.svg b/src/newsreader/static/icons/times.svg
deleted file mode 100644
index 571a32a..0000000
--- a/src/newsreader/static/icons/times.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/newsreader/static/icons/train.svg b/src/newsreader/static/icons/train.svg
deleted file mode 100755
index efdeef9..0000000
--- a/src/newsreader/static/icons/train.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/trash.svg b/src/newsreader/static/icons/trash.svg
deleted file mode 100755
index 4b35080..0000000
--- a/src/newsreader/static/icons/trash.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/underline.svg b/src/newsreader/static/icons/underline.svg
deleted file mode 100755
index 0d440e5..0000000
--- a/src/newsreader/static/icons/underline.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/undo.svg b/src/newsreader/static/icons/undo.svg
deleted file mode 100755
index ba812e0..0000000
--- a/src/newsreader/static/icons/undo.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/unlink.svg b/src/newsreader/static/icons/unlink.svg
deleted file mode 100755
index 2c176da..0000000
--- a/src/newsreader/static/icons/unlink.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/upload.svg b/src/newsreader/static/icons/upload.svg
deleted file mode 100755
index 12ac621..0000000
--- a/src/newsreader/static/icons/upload.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/user.svg b/src/newsreader/static/icons/user.svg
deleted file mode 100755
index 5931e5f..0000000
--- a/src/newsreader/static/icons/user.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/users.svg b/src/newsreader/static/icons/users.svg
deleted file mode 100755
index 743ef13..0000000
--- a/src/newsreader/static/icons/users.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/volume-high.svg b/src/newsreader/static/icons/volume-high.svg
deleted file mode 100755
index 7e891c2..0000000
--- a/src/newsreader/static/icons/volume-high.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/volume-low.svg b/src/newsreader/static/icons/volume-low.svg
deleted file mode 100755
index 4872d97..0000000
--- a/src/newsreader/static/icons/volume-low.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/volume-medium.svg b/src/newsreader/static/icons/volume-medium.svg
deleted file mode 100755
index 71b2fca..0000000
--- a/src/newsreader/static/icons/volume-medium.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/volume.svg b/src/newsreader/static/icons/volume.svg
deleted file mode 100755
index edb1f6e..0000000
--- a/src/newsreader/static/icons/volume.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/warning.svg b/src/newsreader/static/icons/warning.svg
deleted file mode 100755
index 21f9e68..0000000
--- a/src/newsreader/static/icons/warning.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/static/icons/wheelchair.svg b/src/newsreader/static/icons/wheelchair.svg
deleted file mode 100755
index 25cdac0..0000000
--- a/src/newsreader/static/icons/wheelchair.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
diff --git a/src/newsreader/templates/base.html b/src/newsreader/templates/base.html
index 7f3f560..42d438b 100644
--- a/src/newsreader/templates/base.html
+++ b/src/newsreader/templates/base.html
@@ -4,7 +4,7 @@
Newreader
-
+
{% block head %}
{% endblock %}
diff --git a/webpack.common.babel.js b/webpack.common.babel.js
index 0a0602e..2c8471c 100644
--- a/webpack.common.babel.js
+++ b/webpack.common.babel.js
@@ -7,14 +7,14 @@ export default {
main: ['./src/newsreader/js/index.js', './src/newsreader/scss/index.scss'],
},
output: {
- path: resolve(__dirname, 'src', 'newsreader', 'static', 'js'),
- filename: '[name].bundle.js',
+ path: resolve(__dirname, 'src', 'newsreader', 'static'),
+ filename: 'js/[name].bundle.js',
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
- exclude: /(node_modules|bower_components)/,
+ exclude: /node_modules/,
use: { loader: 'babel-loader' },
},
{
@@ -25,9 +25,11 @@ export default {
},
plugins: [
new MiniCssExtractPlugin({
- filename: './src/newsreader/static/css/[name].css',
+ filename: 'css/main.css',
allChunks: true,
}),
- new CleanWebpackPlugin(),
+ new CleanWebpackPlugin({
+ cleanOnceBeforeBuildPatterns: ['**/*', '!favicon.png'],
+ }),
],
};