9 | 14 | {article.title} 15 | 16 |
17 |{article.subtitle}
18 |19 | 29 | - Published in : 30 | 35 | {category.title} 36 | 37 |
38 |├── .babelrc ├── .gitignore ├── 404.html ├── LICENSE ├── README.md ├── assets ├── build │ ├── app.min.04d3e4b7cc53af1c.js │ ├── conf.js │ ├── index_dev.html │ └── index_prod.html ├── css │ ├── bootstrap-reboot.css │ └── fa.css ├── font │ ├── fa.eot │ ├── fa.svg │ ├── fa.ttf │ ├── fa.woff │ └── fa.woff2 ├── html │ ├── 404_no_root.html │ ├── 404_with_root.html │ ├── index_dev.html │ └── index_prod.html ├── images │ ├── default-about.jpg │ ├── default-contact.jpg │ ├── default-sidebar.jpg │ ├── favicon.ico │ ├── profile-1.jpg │ └── react_logo.png └── js │ ├── updater.js │ └── vendors │ ├── aphrodite.js │ ├── history.js │ ├── lodash.debounce.js │ ├── prop-types.js │ ├── react-helmet.js │ ├── react-redux.js │ ├── react-router-dom.js │ ├── react.js │ ├── recompose.js │ ├── redux-thunk.js │ └── redux.js ├── conf.json ├── dev ├── build │ └── build-app.js ├── dev-server.js └── middleware │ ├── cache.js │ ├── resolveToUrl.js │ ├── send.js │ ├── transform-file.js │ ├── transform-middleware.js │ ├── update-middleware.js │ └── update.js ├── index.html ├── package-lock.json ├── package.json └── src ├── app.js ├── components ├── blocks │ ├── article.js │ └── category.js ├── disqus │ ├── disqusCount.js │ └── disqusThread.js ├── form │ └── baseInput.js └── layout │ ├── footer.js │ ├── menu.js │ ├── page.js │ └── sidebar.js ├── lib ├── api.js ├── drive.js └── mail.js ├── modules ├── article │ ├── actionCreators.js │ ├── actionTypes.js │ ├── reducer.js │ └── selectors.js ├── category │ ├── actionCreators.js │ ├── actionTypes.js │ ├── reducer.js │ └── selectors.js ├── main │ ├── containers │ │ ├── noMatch.js │ │ └── root.js │ ├── rootReducer.js │ └── store │ │ └── configureStore.js └── route │ ├── ConnectedRouter.js │ ├── actionCreators.js │ ├── actionTypes.js │ ├── middleware.js │ ├── reducer.js │ └── selectors.js ├── routes ├── about.js ├── article.js ├── category.js ├── contact.js ├── home.js └── routes.js ├── styles ├── blocks.js ├── buttons.js └── input.js └── utils ├── capitalize.js ├── jsonpCall.js └── uuid.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/react"], 3 | "plugins": [ 4 | ["@babel/plugin-proposal-class-properties"], 5 | ["@babel/plugin-syntax-object-rest-spread"], 6 | ["module-resolver", { 7 | "root": ["./"], 8 | "alias": { 9 | "conf": "./conf.js", 10 | "components": "./src/components", 11 | "article": "./src/modules/article", 12 | "category": "./src/modules/category", 13 | "contact": "./src/modules/contact", 14 | "display": "./src/modules/display", 15 | "lib": "./src/lib", 16 | "main": "./src/modules/main", 17 | "route": "./src/modules/route", 18 | "routes": "./src/routes", 19 | "styles": "./src/styles", 20 | "utils": "./src/utils" 21 | } 22 | }] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | 4 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |{article.subtitle}
18 |19 | 29 | - Published in : 30 | 35 | {category.title} 36 | 37 |
38 |31 | A demo site to showcase the use of Google Drive as a Content 32 | Management System. Write articles in Google Docs and publish 33 | them directly from there. 34 |
35 |36 | Google Drive is the backend, only a few static files are 37 | hosted on GitHub Pages, and the content is displayed with 38 | React JS. 39 |
40 |128 | {activeArticle.subtitle} 129 |
130 | 134 |