{"id":19650945,"url":"https://github.com/falinor/vue-md-route-generator","last_synced_at":"2025-02-27T01:19:48.746Z","repository":{"id":92820563,"uuid":"259574466","full_name":"Falinor/vue-md-route-generator","owner":"Falinor","description":"Vue Router route generator for markdown arborescence.","archived":false,"fork":false,"pushed_at":"2020-07-20T11:44:02.000Z","size":739,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-10T15:49:30.277Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Falinor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-04-28T08:17:39.000Z","updated_at":"2022-08-19T02:38:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"a812dab2-3869-47e2-b348-506c58fa3a66","html_url":"https://github.com/Falinor/vue-md-route-generator","commit_stats":{"total_commits":152,"total_committers":5,"mean_commits":30.4,"dds":0.368421052631579,"last_synced_commit":"3fce185e1535ee1c10c4adb3542a0940c990c6aa"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Falinor%2Fvue-md-route-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Falinor%2Fvue-md-route-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Falinor%2Fvue-md-route-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Falinor%2Fvue-md-route-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Falinor","download_url":"https://codeload.github.com/Falinor/vue-md-route-generator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240959665,"owners_count":19885002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T15:04:10.165Z","updated_at":"2025-02-27T01:19:48.716Z","avatar_url":"https://github.com/Falinor.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vue-route-generator\n\n[Vue Router](https://github.com/vuejs/vue-router) route config generator.\n\nYou may want to use [vue-markdown-routing](https://github.com/Falinor/vue-markdown-routing) to generate routes.\n\n## Overview\n\nThis tool generates a JavaScript code that exporting Vue Router's `routes` config by reading your assets directories containing markdown files.\n\nFor example, when you have following file structure:\n\n```\nassets/\n└── guides/\n    ├── index.md\n    └── foo.md\n```\n\nThen run the following script:\n\n```js\nconst path = require('path')\nconst { generateRoutes } = require('vue-md-route-generator')\n\nconst code = generateRoutes({\n  folders: [\n    // Your markdown asset directories\n    path.resolve(__dirname, 'assets', 'guides')\n  ]\n})\n```\n\nvue-route-generator will generate the following code:\n\n```js\nexport default [\n  {\n    name: 'guides',\n    path: '/guides',\n    children: [\n      {\n        name: 'guides-index',\n        path: '',\n        component: () =\u003e import('@/assets/guides/index.md')\n      },\n      {\n        name: 'guides-foo',\n        path: 'foo',\n        component: () =\u003e import('@/assets/guides/foo.md')\n      }\n    ]\n  }\n]\n```\n\nYou can save the code and include router instance:\n\n```js\nconst fs = require('fs')\nconst { generateRoutes } = require('vue-md-route-generator')\n\nconst code = generateRoutes({\n  folders: [\n    path.resolve(__dirname, 'assets', 'guides')\n  ]\n})\n\nfs.writeFileSync('./router/routes.js', code)\n```\n\n```js\n// router/index.js\nimport Vue from 'vue'\nimport Router from 'vue-router'\n\n// import generated routes\nimport routes from './routes'\n\nVue.use(Router)\n\nexport default new Router({\n  routes\n})\n```\n\n## Routing\n\n## Route metadata\n\nThe generator supports front-matter metadata in various format. It uses [gray-matter](https://www.npmjs.com/package/gray-matter)\nunder the hood to handle YAML, JSON, TOML and Coffee formats.\n\n```markdown\n---\nrequiresAuth: true\n---\n\n# Hello\n```\n\nThe generated route config is like the following:\n\n```js\nexport default [\n  {\n    name: 'guides',\n    path: '/guides',\n    children: [\n      {\n        name: 'guides-index',\n        path: '',\n        component: () =\u003e import('@/assets/guides/index.md'),\n        meta: {\n          requiresAuth: true\n        }\n      }\n    ]\n  }\n]\n```\n\n## References\n\n### `generateRoutes(config: GenerateConfig): string`\n\n`GenerateConfig` has the following properties:\n\n- `folders`: An array of paths containing markdown files you want to load.\n- `importPrefix`: A string that will be added to importing component path (default `@/assets/`).\n- `dynamicImport`: Use dynamic import expression (`import()`) to import component (default `true`).\n- `chunkNamePrefix`: Prefix for each route chunk name (only available when `dynamicImport: true`).\n- `nested`: If `true`, generated route path will be always treated as nested. (e.g. will generate `path: 'foo'` rather than `path: '/foo'`)\n\n## Related Projects\n\n- [vue-markdown-routing](https://github.com/Falinor/vue-markdown-routing): Generate Vue Router routing automatically.\n\n## License\n\nMIT\n\n## Thanks\n\nThanks to [ktsn](https://github.com/ktsn) for the initial code!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffalinor%2Fvue-md-route-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffalinor%2Fvue-md-route-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffalinor%2Fvue-md-route-generator/lists"}