route.config.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import navConfig from './nav.config.json';
  2. const registerRoute = (config) => {
  3. let route = [{
  4. path: '/component',
  5. component: require('./pages/component.vue'),
  6. children: [],
  7. scrollToTop: true
  8. }];
  9. function addRoute(page) {
  10. const component = require(`./docs${page.path}.md`);
  11. route[0].children.push({
  12. path: page.path.slice(1),
  13. meta: {
  14. title: page.title || page.name,
  15. description: page.description,
  16. scrollToTop: true
  17. },
  18. component: component.default || component
  19. });
  20. }
  21. config
  22. .map(nav => {
  23. if (nav.groups) {
  24. nav.groups.map(group => {
  25. group.list.map(page => {
  26. addRoute(page);
  27. });
  28. });
  29. }
  30. if (nav.children) {
  31. nav.children.map(page => {
  32. addRoute(page);
  33. });
  34. }
  35. });
  36. return { route, navs: config };
  37. };
  38. const route = registerRoute(navConfig);
  39. let guideRoute = {
  40. path: '/guide',
  41. name: '指南',
  42. component: require('./pages/guide.vue'),
  43. meta: { scrollToTop: true },
  44. children: [{
  45. path: 'design',
  46. name: '设计原则',
  47. component: require('./pages/design.vue')
  48. }, {
  49. path: 'nav',
  50. name: '导航',
  51. component: require('./pages/nav.vue')
  52. }]
  53. };
  54. let resourceRoute = {
  55. path: '/resource',
  56. name: '资源',
  57. meta: { scrollToTop: true },
  58. component: require('./pages/resource.vue')
  59. };
  60. let indexRoute = {
  61. path: '/',
  62. name: '首页',
  63. meta: { scrollToTop: true },
  64. component: require('./pages/index.vue')
  65. };
  66. let changeLogRoute = {
  67. path: '/changelog',
  68. meta: { scrollToTop: true },
  69. component: require('./pages/changelog.vue')
  70. };
  71. route.route = route.route.concat([indexRoute, guideRoute, resourceRoute, changeLogRoute]);
  72. route.route.push({
  73. path: '*',
  74. component: require('./docs/home.md')
  75. });
  76. export const navs = route.navs;
  77. export default route.route;