google / typedoc-neo-theme

Apache License 2.0
85 stars 22 forks source link

Modules are not grouped by folder. #78

Open shtlrs opened 3 years ago

shtlrs commented 3 years ago

Hello, I am using the following setup:

TypeDoc 0.20.37 TypeScript 4.1.2 node v14.17.2 typedoc-neo-theme 1.1.1

And I have the following tsconfig.json

{
  "compileOnSave": false,
  "typedocOptions": {
    "entryPoints": ["src"],
    "theme": "node_modules/typedoc-neo-theme/bin/default",
    "plugin":"typedoc-neo-theme",
    "out": "docs",
  },
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "module": "commonjs",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "ES2019",
    "typeRoots": [ "node_modules/@types" ],
    "lib": [ "ES2015", "dom" ],
    "skipLibCheck": true,

    "paths": {
      "@app/*": [ "src/*" ],
      "@environments/*": [ "src/environments/*" ]
    }
  }
}

The problem is, when I run npx typedoc I get the following structure image

And here's my folder structure . └── project/ ├── src/ │ ├── apis │ ├── menus │ ├── models │ ├── pages │ └── utils ├── tests └── node_modules

Fleker commented 3 years ago

The text overlay is kinda strange. Is that part of the outline?

By default, the structure will be single column with x/y/z. There is a way to define a custom outline JSON to reflect your structure in the way you want.

shtlrs commented 3 years ago

I'll try that. But, isn't it supposed to work without me having to specify the outline ?

Fleker commented 3 years ago

By default it won't create a tree but will do as described. In most projects using the theme they just use a custom outline so it hasn't been an area to focus.

shtlrs commented 3 years ago

Alright so I tried it, but when I click on one of the menus on the left, I get an error " your url couldn't be accessed" Here's what I've done in the tsconfig.json file

{
  "compileOnSave": false,
  "typedocOptions": {
    "entryPoints": [ "src" ],
    "theme": "node_modules/typedoc-neo-theme/bin/default",
    "plugin": "typedoc-neo-theme",
    "out": "docs",
    "outline": [
      {
          "Api": "src/apis",
          "Menus": "src/menus",
          "Models": "src/models",
          "Pages": "src/pages",
          "Utilities": "src/utils"
      }
    ]
  },
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "module": "commonjs",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "ES2019",
    "typeRoots": [ "node_modules/@types" ],
    "lib": [ "ES2015", "dom" ],
    "skipLibCheck": true,
    "paths": {
      "@app/*": [ "src/*" ],
      "@environments/*": [ "src/environments/*" ]
    }
  }
}

This will generate the following

image

What is it exactly that I'm doing wrong here ?

Fleker commented 3 years ago

By default the link will go to file_classification/file_name or if you look at how it's done in assistant-conversation-nodejs:

typedoc.json:

  "outline": [{
    "Conversation builder": {
      "Overview": "modules/conversation_conversation",
      "App": "interfaces/conversation_conversation.conversationv3app",
      "Options": "interfaces/conversation_conv.conversationv3options",
      "Conversation": "classes/conversation_conv.conversationv3"
    },
    "Prompt Items": {
      "Overview": "modules/conversation_prompt_prompt",
      "Simple": "classes/conversation_prompt_simple.simple",
      "Card": "classes/conversation_prompt_content_card.card",
      "Collection": "classes/conversation_prompt_content_collection.collection",
      "CollectionBrowse": "classes/conversation_prompt_content_collectionbrowse.collectionbrowse",
      "Canvas": "classes/conversation_prompt_canvas.canvas",
      "Image": "classes/conversation_prompt_content_image.image",
      "List": "classes/conversation_prompt_content_list.list",
      "Media": "classes/conversation_prompt_content_media.media",
      "Table": "classes/conversation_prompt_content_table.table",
      "Link": "classes/conversation_prompt_content_link.link",
      "Suggestion": "classes/conversation_prompt_suggestion.suggestion",
      "OrderUpdate": "classes/conversation_prompt_content_order.orderupdate"
    },
    "Highlighted Features": {
      "Engagement": "interfaces/api_schema.engagement",
      "Package Entitlements": "interfaces/api_schema.packageentitlements"
    },
    "api/schema": "modules/api_schema"
  }],

Hopefully that will show the right file path to use.

waruwaruwaru commented 3 years ago

Hi @Fleker, I am also experiencing the text overlay in my left navigation menu. I am using the default structure. Is there a way to make it so that when the text is big, the menu would have a way of scrolling side to side instead of the menu being static and having the texts overlay? Thank you for your help.

Fleker commented 3 years ago

@waruwaruwaru there may be something that can be done in the CSS. Can you make a new feature request for that?

waruwaruwaru commented 3 years ago

Hi @Fleker, what is the process to create a feature request?

Fleker commented 3 years ago

Just create a new issue.