├── static ├── .gitkeep ├── reset.css └── iconfont.css ├── config ├── prod.env.js ├── dev.env.js └── index.js ├── src ├── components │ ├── sidebar │ │ ├── tx.png │ │ └── sidebar.vue │ ├── navtop │ │ └── navtop.vue │ ├── operation │ │ └── operation.vue │ ├── newsday │ │ └── newsday.vue │ ├── index │ │ └── index.vue │ ├── column │ │ └── column.vue │ ├── TextTheme │ │ └── TextTheme.vue │ └── commentaries │ │ └── commentaries.vue ├── router │ └── index.js ├── main.js ├── App.vue └── assets │ └── iconfont.js ├── .babelrc ├── .editorconfig ├── .gitignore ├── .postcssrc.js ├── index.html ├── README.md └── package.json /static/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /src/components/sidebar/tx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kongziyi123/zhihuribao/HEAD/src/components/sidebar/tx.png -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false 5 | }], 6 | "stage-2" 7 | ], 8 | "plugins": ["transform-runtime"] 9 | } 10 | -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"' 7 | }) 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | /dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Editor directories and files 9 | .idea 10 | .vscode 11 | *.suo 12 | *.ntvs* 13 | *.njsproj 14 | *.sln 15 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | // to edit target browsers: use "browserslist" field in package.json 6 | "postcss-import": {}, 7 | "autoprefixer": {} 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | zhihuribao 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # zhihuribao 2 | 3 | > A Vue.js project 4 | 5 | ## Build Setup 6 | 7 | ``` bash 8 | # install dependencies 9 | npm install 10 | 11 | # serve with hot reload at localhost:8080 12 | npm run dev 13 | 14 | # build for production with minification 15 | npm run build 16 | 17 | # build for production and view the bundle analyzer report 18 | npm run build --report 19 | ``` 20 | 21 | For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). 22 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import TextTheme from '@/components/TextTheme/TextTheme' 4 | import index from '@/components/index/index' 5 | import column from '@/components/column/column' 6 | Vue.use(Router); 7 | var bus=new Vue(); 8 | export default new Router({ 9 | routes: [ 10 | { 11 | path:'/articles/:id', 12 | name:'articles', 13 | component:TextTheme 14 | }, 15 | { 16 | path: '/index', 17 | name: 'index', 18 | component: index 19 | }, 20 | { 21 | path:'/items/:number', 22 | name:'items', 23 | component:column 24 | }, 25 | { 26 | path:'/', 27 | name:'default', 28 | component:index 29 | } 30 | 31 | ] 32 | }) 33 | -------------------------------------------------------------------------------- /static/reset.css: -------------------------------------------------------------------------------- 1 | body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,figcaption,figure,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0} 2 | body,button,input,select,textarea{font:12px/1 Lucida Grande,'Microsoft YaHei',"Lucida Grande","Lucida Sans Unicode",Helvetica,Arial,Verdana,sans-serif} 3 | h1{font-size:18px;font-weight:normal} 4 | h2{font-size:16px;font-weight:normal} 5 | h3{font-size:14px;font-weight:normal} 6 | h4,h5,h6{font-size:100%;font-weight:normal} 7 | address,cite,dfn,em,var{font-style:normal} 8 | code,kbd,pre,samp,tt{font-family:"Courier New",Courier,monospace} 9 | small{font-size:12px} 10 | ul,ol,li{list-style:none} 11 | a{text-decoration:none} 12 | abbr[title],acronym[title]{border-bottom:1px dotted;cursor:help} 13 | q:before,q:after{content:''} 14 | legend{color:#000} 15 | fieldset,img{border:0} 16 | table{border-collapse:collapse;border-spacing:0} 17 | hr{border:0;height:1px} 18 | *{-ms-word-break:break-all;word-break:break-all;-ms-word-wrap:break-word;word-wrap:break-word;-webkit-tap-highlight-color:rgba(0,0,0,0)} 19 | .clearfix:after { 20 | content: " "; 21 | display: block; 22 | clear: both; 23 | height: 0; 24 | } 25 | .clearfix { 26 | zoom: 1; 27 | } -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue' 4 | import App from './App' 5 | import router from './router' 6 | // import Mint from 'mint-ui' 7 | import {Swipe,SwipeItem,Popup} from 'mint-ui' 8 | import 'mint-ui/lib/style.css' 9 | import axios from 'axios' 10 | import VueLazyload from 'vue-lazyload' 11 | 12 | // Vue.use(VueLazyload) 13 | Vue.use(VueLazyload, { 14 | preLoad: 1.3, 15 | attempt: 1 16 | }) 17 | 18 | Vue.component(Swipe.name,Swipe); 19 | Vue.component(SwipeItem.name,SwipeItem); 20 | Vue.component(Popup.name,Popup); 21 | 22 | 23 | Vue.prototype.$http=axios; 24 | axios.defaults.baseURL = '/api' 25 | 26 | Vue.config.productionTip = false 27 | document.documentElement.style.fontSize=document.documentElement.clientWidth>750?750/10.8+"px":document.documentElement.clientWidth/10.8+"px"; 28 | /* eslint-disable no-new */ 29 | 30 | Vue.prototype.$setgoindex = function () { 31 | if (window.history.length <= 1) { 32 | if (location.href.indexOf('?') === -1) { 33 | window.location.href = location.href + '?goindex=true' 34 | } else if (location.href.indexOf('?') !== -1 && location.href.indexOf('goindex') === -1) { 35 | window.location.href = location.href + '&goindex=true' 36 | } 37 | } 38 | } 39 | 40 | new Vue({ 41 | el: '#app', 42 | router, 43 | template: '', 44 | components: { App } 45 | }) 46 | -------------------------------------------------------------------------------- /src/components/navtop/navtop.vue: -------------------------------------------------------------------------------- 1 | 2 | 21 | 22 | 45 | 46 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zhihuribao", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project", 5 | "author": "kongziyi ", 6 | "private": true, 7 | "scripts": { 8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 9 | "start": "npm run dev", 10 | "build": "node build/build.js" 11 | }, 12 | "dependencies": { 13 | "axios": "^0.17.1", 14 | "jsonp": "^0.2.1", 15 | "mint-ui": "^2.2.12", 16 | "vue": "^2.5.2", 17 | "vue-router": "^3.0.1", 18 | "better-scroll":"^1.4.0", 19 | "vue-lazyload":"^1.1.4" 20 | }, 21 | "devDependencies": { 22 | "autoprefixer": "^7.1.2", 23 | "babel-core": "^6.22.1", 24 | "babel-loader": "^7.1.1", 25 | "babel-plugin-transform-runtime": "^6.22.0", 26 | "babel-preset-env": "^1.3.2", 27 | "babel-preset-stage-2": "^6.22.0", 28 | "chalk": "^2.0.1", 29 | "copy-webpack-plugin": "^4.0.1", 30 | "css-loader": "^0.28.0", 31 | "eventsource-polyfill": "^0.9.6", 32 | "extract-text-webpack-plugin": "^3.0.0", 33 | "file-loader": "^1.1.4", 34 | "friendly-errors-webpack-plugin": "^1.6.1", 35 | "html-webpack-plugin": "^2.30.1", 36 | "node-notifier": "^5.1.2", 37 | "optimize-css-assets-webpack-plugin": "^3.2.0", 38 | "ora": "^1.2.0", 39 | "portfinder": "^1.0.13", 40 | "postcss-import": "^11.0.0", 41 | "postcss-loader": "^2.0.8", 42 | "rimraf": "^2.6.0", 43 | "semver": "^5.3.0", 44 | "shelljs": "^0.7.6", 45 | "uglifyjs-webpack-plugin": "^1.1.1", 46 | "url-loader": "^0.5.8", 47 | "vue-loader": "^13.3.0", 48 | "vue-style-loader": "^3.0.1", 49 | "vue-template-compiler": "^2.5.2", 50 | "webpack": "^3.6.0", 51 | "webpack-bundle-analyzer": "^2.9.0", 52 | "webpack-dev-server": "^2.9.1", 53 | "webpack-merge": "^4.1.0", 54 | "less":"^2.7.2", 55 | "less-loader":"^4.0.4" 56 | }, 57 | "engines": { 58 | "node": ">= 4.0.0", 59 | "npm": ">= 3.0.0" 60 | }, 61 | "browserslist": [ 62 | "> 1%", 63 | "last 2 versions", 64 | "not ie <= 8" 65 | ] 66 | } 67 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 64 | 83 | -------------------------------------------------------------------------------- /src/components/operation/operation.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | // Template version: 1.2.5 3 | // see http://vuejs-templates.github.io/webpack for documentation. 4 | 5 | const path = require('path') 6 | 7 | module.exports = { 8 | dev: { 9 | // Paths 10 | assetsSubDirectory: 'static', 11 | assetsPublicPath: '/', 12 | proxyTable: { 13 | '/api':{ 14 | target:'https://news-at.zhihu.com/api', 15 | changeOrigin:true, 16 | pathRewrite:{ 17 | '^/api':"" 18 | } 19 | } 20 | }, 21 | 22 | // Various Dev Server settings 23 | host: '0.0.0.0', // can be overwritten by process.env.HOST 24 | port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined 25 | autoOpenBrowser: false, 26 | errorOverlay: true, 27 | notifyOnErrors: true, 28 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 29 | 30 | // Use Eslint Loader? 31 | // If true, your code will be linted during bundling and 32 | // linting errors and warnings will be shown in the console. 33 | useEslint: true, 34 | // If true, eslint errors and warnings will also be shown in the error overlay 35 | // in the browser. 36 | showEslintErrorsInOverlay: false, 37 | 38 | /** 39 | * Source Maps 40 | */ 41 | 42 | // https://webpack.js.org/configuration/devtool/#development 43 | devtool: 'eval-source-map', 44 | 45 | // If you have problems debugging vue-files in devtools, 46 | // set this to false - it *may* help 47 | // https://vue-loader.vuejs.org/en/options.html#cachebusting 48 | cacheBusting: true, 49 | 50 | // CSS Sourcemaps off by default because relative paths are "buggy" 51 | // with this option, according to the CSS-Loader README 52 | // (https://github.com/webpack/css-loader#sourcemaps) 53 | // In our experience, they generally work as expected, 54 | // just be aware of this issue when enabling this option. 55 | cssSourceMap: false, 56 | }, 57 | 58 | build: { 59 | // Template for index.html 60 | index: path.resolve(__dirname, '../dist/index.html'), 61 | 62 | // Paths 63 | assetsRoot: path.resolve(__dirname, '../dist'), 64 | assetsSubDirectory: 'static', 65 | assetsPublicPath: '/', 66 | 67 | /** 68 | * Source Maps 69 | */ 70 | 71 | productionSourceMap: true, 72 | // https://webpack.js.org/configuration/devtool/#production 73 | devtool: '#source-map', 74 | 75 | // Gzip off by default as many popular static hosts such as 76 | // Surge or Netlify already gzip all static assets for you. 77 | // Before setting to `true`, make sure to: 78 | // npm install --save-dev compression-webpack-plugin 79 | productionGzip: false, 80 | productionGzipExtensions: ['js', 'css'], 81 | 82 | // Run the build command with an extra argument to 83 | // View the bundle analyzer report after build finishes: 84 | // `npm run build --report` 85 | // Set to `true` or `false` to always turn it on or off 86 | bundleAnalyzerReport: process.env.npm_config_report 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/components/newsday/newsday.vue: -------------------------------------------------------------------------------- 1 | 2 | 22 | 23 | 24 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /static/iconfont.css: -------------------------------------------------------------------------------- 1 | 2 | @font-face {font-family: "iconfont"; 3 | src: url('iconfont.eot?t=1513247045917'); /* IE9*/ 4 | src: url('iconfont.eot?t=1513247045917#iefix') format('embedded-opentype'), /* IE6-IE8 */ 5 | url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), 6 | url('iconfont.ttf?t=1513247045917') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ 7 | url('iconfont.svg?t=1513247045917#iconfont') format('svg'); /* iOS 4.1- */ 8 | } 9 | 10 | .iconfont { 11 | font-family:"iconfont" !important; 12 | font-size:16px; 13 | font-style:normal; 14 | -webkit-font-smoothing: antialiased; 15 | -moz-osx-font-smoothing: grayscale; 16 | } 17 | 18 | .icon-xiangyou:before { content: "\e692"; } 19 | 20 | .icon-jia:before { content: "\e67d"; } 21 | 22 | .icon-xingzhuang60kaobei2:before { content: "\e603"; } 23 | 24 | .icon-icon:before { content: "\e60e"; } 25 | 26 | .icon-weibiaoti1:before { content: "\e613"; } 27 | 28 | .icon-fenxiang:before { content: "\e635"; } 29 | 30 | .icon-jianhaojiacu:before { content: "\e62f"; } 31 | 32 | .icon-pinglun:before { content: "\e6a7"; } 33 | 34 | .icon-lingdang:before { content: "\e652"; } 35 | 36 | .icon-download:before { content: "\e732"; } 37 | 38 | .icon-zan:before { content: "\e90e"; } 39 | 40 | .icon-daohang:before { content: "\e615"; } 41 | 42 | .icon-iconjia:before { content: "\e50b"; } 43 | 44 | .icon-jiajianzujianjiahao:before { content: "\e64d"; } 45 | 46 | -------------------------------------------------------------------------------- /src/components/index/index.vue: -------------------------------------------------------------------------------- 1 | 2 | 29 | 30 | 31 | 154 | 155 | -------------------------------------------------------------------------------- /src/components/column/column.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /src/components/sidebar/sidebar.vue: -------------------------------------------------------------------------------- 1 | 48 | 49 | 50 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /src/components/TextTheme/TextTheme.vue: -------------------------------------------------------------------------------- 1 | 54 | 55 | 56 | 187 | 188 | 189 | 321 | 322 | -------------------------------------------------------------------------------- /src/components/commentaries/commentaries.vue: -------------------------------------------------------------------------------- 1 | 89 | 90 | 91 | 232 | 233 | 234 | -------------------------------------------------------------------------------- /src/assets/iconfont.js: -------------------------------------------------------------------------------- 1 | (function(window){var svgSprite='';var script=function(){var scripts=document.getElementsByTagName("script");return scripts[scripts.length-1]}();var shouldInjectCss=script.getAttribute("data-injectcss");var ready=function(fn){if(document.addEventListener){if(~["complete","loaded","interactive"].indexOf(document.readyState)){setTimeout(fn,0)}else{var loadFn=function(){document.removeEventListener("DOMContentLoaded",loadFn,false);fn()};document.addEventListener("DOMContentLoaded",loadFn,false)}}else if(document.attachEvent){IEContentLoaded(window,fn)}function IEContentLoaded(w,fn){var d=w.document,done=false,init=function(){if(!done){done=true;fn()}};var polling=function(){try{d.documentElement.doScroll("left")}catch(e){setTimeout(polling,50);return}init()};polling();d.onreadystatechange=function(){if(d.readyState=="complete"){d.onreadystatechange=null;init()}}}};var before=function(el,target){target.parentNode.insertBefore(el,target)};var prepend=function(el,target){if(target.firstChild){before(el,target.firstChild)}else{target.appendChild(el)}};function appendSvg(){var div,svg;div=document.createElement("div");div.innerHTML=svgSprite;svgSprite=null;svg=div.getElementsByTagName("svg")[0];if(svg){svg.setAttribute("aria-hidden","true");svg.style.position="absolute";svg.style.width=0;svg.style.height=0;svg.style.overflow="hidden";prepend(svg,document.body)}}if(shouldInjectCss&&!window.__iconfont__svg__cssinject__){window.__iconfont__svg__cssinject__=true;try{document.write("")}catch(e){console&&console.log(e)}}ready(appendSvg)})(window) --------------------------------------------------------------------------------