threepipe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

config.ts 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. import {defineConfig} from 'vitepress'
  2. // https://vitepress.dev/reference/site-config
  3. export default defineConfig({
  4. title: "ThreePipe",
  5. description: "Effortlessly create 3D web experiences, from quick demos to advanced applications, with Three.js",
  6. themeConfig: {
  7. logo: '/logo.svg',
  8. outline: 'deep',
  9. // https://vitepress.dev/reference/default-theme-config
  10. nav: [
  11. { text: 'Home', link: '/' },
  12. { text: 'Examples', link: 'https://threepipe.org/examples' },
  13. { text: '3D Editor', link: 'https://editor.threepipe.org' },
  14. { text: 'API Reference', link: 'https://threepipe.org/docs' }
  15. ],
  16. sidebar: [
  17. {
  18. text: 'Introduction', collapsed: false,
  19. items: [
  20. {text: 'What is Threepipe?', link: 'guide/introduction'},
  21. {text: 'Getting Started', link: 'guide/getting-started'},
  22. {text: 'Threepipe Editors', link: 'guide/editors'},
  23. {text: 'Features', link: 'guide/features'},
  24. {text: 'Viewer API', link: 'guide/viewer-api'},
  25. {text: 'Core Plugins', link: 'guide/core-plugins'},
  26. {text: '@threepipe Packages', link: 'guide/threepipe-packages'},
  27. ]
  28. },
  29. {
  30. text: 'Guides', collapsed: false,
  31. items: [
  32. {text: 'Loading Files', link: 'guide/loading-files'},
  33. {text: 'Exporting Files', link: 'guide/exporting-files'},
  34. {text: 'Render Pipeline', link: 'guide/render-pipeline'},
  35. {text: 'Material Extension', link: 'guide/material-extension'},
  36. {text: 'UI Configuration', link: 'guide/ui-config'},
  37. {text: 'Serialization', link: 'guide/serialization'},
  38. {text: 'Plugin System', link: 'guide/plugin-system'},
  39. ]
  40. },
  41. {
  42. text: 'Articles', collapsed: false,
  43. items: [
  44. {text: 'Mesh Lines (Spiral)', link: 'notes/fat-lines'},
  45. {text: 'glTF Mesh Lines', link: 'notes/gltf-mesh-lines'},
  46. ]
  47. },
  48. {
  49. text: 'Core Plugins', collapsed: false,
  50. items: [
  51. {
  52. text: 'Import', collapsed: true,
  53. items: [
  54. {text: 'Rhino3dmLoadPlugin', link: 'plugin/Rhino3dmLoadPlugin'},
  55. {text: 'PLYLoadPlugin', link: 'plugin/PLYLoadPlugin'},
  56. {text: 'STLLoadPlugin', link: 'plugin/STLLoadPlugin'},
  57. {text: 'KTX2LoadPlugin', link: 'plugin/KTX2LoadPlugin'},
  58. {text: 'KTXLoadPlugin', link: 'plugin/KTXLoadPlugin'},
  59. {text: 'USDZLoadPlugin', link: 'plugin/USDZLoadPlugin'},
  60. {text: 'GLTFMeshOptDecodePlugin', link: 'plugin/GLTFMeshOptDecodePlugin'},
  61. ],
  62. },
  63. {
  64. text: 'Post-processing', collapsed: true,
  65. items: [
  66. {text: 'TonemapPlugin', link: 'plugin/TonemapPlugin'},
  67. {text: 'VignettePlugin', link: 'plugin/VignettePlugin'},
  68. {text: 'ChromaticAberrationPlugin', link: 'plugin/ChromaticAberrationPlugin'},
  69. {text: 'FilmicGrainPlugin', link: 'plugin/FilmicGrainPlugin'},
  70. ],
  71. },
  72. {
  73. text: 'Rendering Pipeline', collapsed: true,
  74. items: [
  75. {text: 'ProgressivePlugin', link: 'plugin/ProgressivePlugin'},
  76. {text: 'SSAAPlugin', link: 'plugin/SSAAPlugin'},
  77. {text: 'DepthBufferPlugin', link: 'plugin/DepthBufferPlugin'},
  78. {text: 'NormalBufferPlugin', link: 'plugin/NormalBufferPlugin'},
  79. {text: 'GBufferPlugin', link: 'plugin/GBufferPlugin'},
  80. {text: 'SSAOPlugin', link: 'plugin/SSAOPlugin'},
  81. {text: 'FrameFadePlugin', link: 'plugin/FrameFadePlugin'},
  82. ],
  83. },
  84. {
  85. text: 'Interaction', collapsed: true,
  86. items: [
  87. {text: 'DropzonePlugin', link: 'plugin/DropzonePlugin'},
  88. {text: 'PickingPlugin', link: 'plugin/PickingPlugin'},
  89. {text: 'LoadingScreenPlugin', link: 'plugin/LoadingScreenPlugin'},
  90. {text: 'FullScreenPlugin', link: 'plugin/FullScreenPlugin'},
  91. {text: 'InteractionPromptPlugin', link: 'plugin/InteractionPromptPlugin'},
  92. {text: 'TransformControlsPlugin', link: 'plugin/TransformControlsPlugin'},
  93. {text: 'EditorViewWidgetPlugin', link: 'plugin/EditorViewWidgetPlugin'},
  94. {text: 'DeviceOrientationControlsPlugin', link: 'plugin/DeviceOrientationControlsPlugin'},
  95. {text: 'PointerLockControlsPlugin', link: 'plugin/PointerLockControlsPlugin'},
  96. {text: 'ThreeFirstPersonControlsPlugin', link: 'plugin/ThreeFirstPersonControlsPlugin'},
  97. ],
  98. },
  99. {
  100. text: 'Animation', collapsed: true,
  101. items: [
  102. {text: 'GLTFAnimationPlugin', link: 'plugin/GLTFAnimationPlugin'},
  103. {text: 'PopmotionPlugin', link: 'plugin/PopmotionPlugin'},
  104. {text: 'CameraViewPlugin', link: 'plugin/CameraViewPlugin'},
  105. {text: 'TransformAnimationPlugin', link: 'plugin/TransformAnimationPlugin'},
  106. ],
  107. },
  108. {
  109. text: 'Material', collapsed: true,
  110. items: [
  111. {text: 'NoiseBumpMaterialPlugin', link: 'plugin/NoiseBumpMaterialPlugin'},
  112. {text: 'CustomBumpMapPlugin', link: 'plugin/CustomBumpMapPlugin'},
  113. {text: 'ClearcoatTintPlugin', link: 'plugin/ClearcoatTintPlugin'},
  114. {text: 'FragmentClippingExtensionPlugin', link: 'plugin/FragmentClippingExtensionPlugin'},
  115. {text: 'ParallaxMappingPlugin', link: 'plugin/ParallaxMappingPlugin'},
  116. ],
  117. },
  118. {
  119. text: 'Export', collapsed: true,
  120. items: [
  121. {text: 'CanvasSnapshotPlugin', link: 'plugin/CanvasSnapshotPlugin'},
  122. {text: 'AssetExporterPlugin', link: 'plugin/AssetExporterPlugin'},
  123. {text: 'FileTransferPlugin', link: 'plugin/FileTransferPlugin'},
  124. ],
  125. },
  126. {
  127. text: 'Extras', collapsed: true,
  128. items: [
  129. {text: 'ContactShadowGroundPlugin', link: 'plugin/ContactShadowGroundPlugin'},
  130. {text: 'HDRiGroundPlugin', link: 'plugin/HDRiGroundPlugin'},
  131. {text: 'VirtualCamerasPlugin', link: 'plugin/VirtualCamerasPlugin'},
  132. {text: 'Object3DWidgetsPlugin', link: 'plugin/Object3DWidgetsPlugin'},
  133. {text: 'Object3DGeneratorPlugin', link: 'plugin/Object3DGeneratorPlugin'},
  134. {text: 'GLTFKHRMaterialVariantsPlugin', link: 'plugin/GLTFKHRMaterialVariantsPlugin'},
  135. {text: 'SimplifyModifierPlugin', link: 'plugin/SimplifyModifierPlugin'},
  136. {text: 'MeshOptSimplifyModifierPlugin', link: 'plugin/MeshOptSimplifyModifierPlugin'},
  137. ],
  138. },
  139. {
  140. text: 'Configurator', collapsed: true,
  141. items: [
  142. {text: 'MaterialConfiguratorBasePlugin', link: 'plugin/MaterialConfiguratorBasePlugin'},
  143. {text: 'SwitchNodeBasePlugin', link: 'plugin/SwitchNodeBasePlugin'},
  144. ],
  145. },
  146. {
  147. text: 'UI', collapsed: true,
  148. items: [
  149. {text: 'RenderTargetPreviewPlugin', link: 'plugin/RenderTargetPreviewPlugin'},
  150. {text: 'GeometryUVPreviewPlugin', link: 'plugin/GeometryUVPreviewPlugin'},
  151. // {text: 'SceneUiConfigPlugin', link: 'plugin/SceneUiConfigPlugin'},
  152. // {text: 'ViewerUiConfigPlugin', link: 'plugin/ViewerUiConfigPlugin'},
  153. ],
  154. },
  155. {
  156. text: 'Base', collapsed: true,
  157. items: [
  158. {text: 'AAssetManagerProcessStatePlugin', link: 'plugin/AAssetManagerProcessStatePlugin'},
  159. {text: 'ACameraControlsPlugin', link: 'plugin/ACameraControlsPlugin'},
  160. {text: 'BaseGroundPlugin', link: 'plugin/BaseGroundPlugin'},
  161. {text: 'BaseImporterPlugin', link: 'plugin/BaseImporterPlugin'},
  162. {text: 'PipelinePassPlugin', link: 'plugin/PipelinePassPlugin'},
  163. {text: 'AScreenPassExtensionPlugin', link: 'plugin/AScreenPassExtensionPlugin'},
  164. ],
  165. },
  166. ]
  167. },
  168. {
  169. text: 'Packages', collapsed: false,
  170. items: [
  171. {text: 'WebGi Rendering Plugins', link: 'https://webgi.dev/'},
  172. {text: 'Tweakpane Plugin', link: 'package/plugin-tweakpane'},
  173. {text: 'Blueprint.js Plugin', link: 'package/plugin-blueprintjs'},
  174. {text: 'Tweakpane Editor Plugin', link: 'package/plugin-tweakpane-editor'},
  175. {text: 'Configurator Plugins', link: 'package/plugin-configurator'},
  176. {text: 'Geometry Generator Plugin', link: 'package/plugin-geometry-generator'},
  177. {text: 'glTF Transform Plugin', link: 'package/plugin-gltf-transform'},
  178. {text: 'Extra Importers Plugins', link: 'package/plugins-extra-importers'},
  179. {text: 'Network Plugin', link: 'package/plugin-network'},
  180. {text: 'Blend Importer Plugin', link: 'package/plugin-blend-importer'},
  181. {text: 'Gaussian Splatting Plugin', link: 'package/plugin-gaussian-splatting'},
  182. {text: 'svg-renderer Plugin', link: 'package/plugin-svg-renderer'},
  183. {text: '3D Tiles (OGC) Renderer Plugin', link: 'package/plugin-3d-tiles-renderer'},
  184. {text: 'Assimpjs Plugin', link: 'package/plugin-assimpjs'},
  185. {text: 'Path Tracing', link: 'package/plugin-path-tracing'},
  186. ]
  187. },
  188. ],
  189. socialLinks: [
  190. { icon: 'github', link: 'https://github.com/repalash/threepipe' },
  191. { icon: 'twitter', link: 'https://twitter.com/repalash' }
  192. ],
  193. footer: {
  194. message: 'ThreePipe - Make 3D applications on the web',
  195. copyright: 'Copyright © 2023-present, <a href="https://repalash.com/">repalash</a>. All rights reserved.',
  196. },
  197. // https://vitepress.dev/reference/default-theme-search#minisearch-options
  198. search: {
  199. provider: 'local',
  200. options: {
  201. miniSearch: {
  202. /**
  203. * @type {Pick<import('minisearch').Options, 'extractField' | 'tokenize' | 'processTerm'>}
  204. */
  205. options: {
  206. /* ... */
  207. },
  208. /**
  209. * @type {import('minisearch').SearchOptions}
  210. * @default
  211. * { fuzzy: 0.2, prefix: true, boost: { title: 4, text: 2, titles: 1 } }
  212. */
  213. searchOptions: {
  214. /* ... */
  215. }
  216. }
  217. }
  218. },
  219. }
  220. })