route.config.js 1.7 KB

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