route.config.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import navConfig from './nav.config.json';
  2. const registerRoute = (config) => {
  3. let route = [{
  4. path: '/component',
  5. redirect: '/component/quickstart',
  6. component: require('./pages/component.vue'),
  7. children: []
  8. }];
  9. function addRoute(page) {
  10. const component = page.path === '/changelog' ? require('./pages/changelog.vue') : require(`./docs${page.path}.md`);
  11. let child = {
  12. path: page.path.slice(1),
  13. meta: {
  14. title: page.title || page.name,
  15. description: page.description
  16. },
  17. component: component.default || component
  18. };
  19. route[0].children.push(child);
  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. } else if (nav.children) {
  30. nav.children.map(page => {
  31. addRoute(page);
  32. });
  33. } else {
  34. addRoute(nav);
  35. }
  36. });
  37. return { route, navs: config };
  38. };
  39. const route = registerRoute(navConfig);
  40. let guideRoute = {
  41. path: '/guide',
  42. name: '指南',
  43. redirect: '/guide/design',
  44. component: require('./pages/guide.vue'),
  45. children: [{
  46. path: 'design',
  47. name: '设计原则',
  48. component: require('./pages/design.vue')
  49. }, {
  50. path: 'nav',
  51. name: '导航',
  52. component: require('./pages/nav.vue')
  53. }]
  54. };
  55. let resourceRoute = {
  56. path: '/resource',
  57. name: '资源',
  58. component: require('./pages/resource.vue')
  59. };
  60. let indexRoute = {
  61. path: '/',
  62. name: '首页',
  63. component: require('./pages/index.vue')
  64. };
  65. route.route = route.route.concat([indexRoute, guideRoute, resourceRoute]);
  66. route.route.push({
  67. path: '*',
  68. component: require('./docs/home.md')
  69. });
  70. export const navs = route.navs;
  71. export default route.route;