diff --git a/docs/documentation/modules.md b/docs/documentation/modules.md index e046d5e..7ad3d31 100644 --- a/docs/documentation/modules.md +++ b/docs/documentation/modules.md @@ -133,4 +133,4 @@ The default gitignore may be a good start for what files you can safely leave ou ### Submodules -TSWoW submodules have no relation to git submodules, but you can of course implement one using the other if you wish. +TSWoW submodules have no relation to git submodules, but you can of course implement one using the other if you wish. \ No newline at end of file diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md index 01a421c..c2842ef 100644 --- a/docs/tutorials/index.md +++ b/docs/tutorials/index.md @@ -21,3 +21,6 @@ This sections contains user-submitted tutorials, walkthroughs or example modules - [**Client <-> Server Communications: Example Messaging**](./example-messaging) - _Demo showcasing how to utilize ClientExtensions dll._ + +- [**Library Search**](./library-search) + - _Find and share community-created TSWoW modules._ diff --git a/docs/tutorials/library-search.md b/docs/tutorials/library-search.md new file mode 100644 index 0000000..ab91fe5 --- /dev/null +++ b/docs/tutorials/library-search.md @@ -0,0 +1,84 @@ +--- +layout: default +title: Library Search +nav_order: 5 +--- + +# Library Search + +Find and share community-created TSWoW modules. + +[**Browse the Library**](https://tswow-library-search.bold-term-1c95.workers.dev/){: .btn .btn-primary } + +--- + +## Publishing Your Module + +To make your module discoverable in the library search, follow these two steps: + +### 1. Add the GitHub Topic + +The library search finds modules by looking for repositories tagged with `tswow-module`: + +1. Go to your repository on GitHub +2. Click the gear icon next to "About" in the right sidebar +3. Add `tswow-module` to the Topics field +4. Save changes + +Your repository will be indexed automatically within a few hours. + +### 2. Structure Your Repository + +The search supports two layouts depending on whether you're publishing one module or several. + +**Single module** — Place your endpoint folders at the repository root: + +``` +myname-mymodule/ +├── datascripts/ +├── livescripts/ +├── assets/ +└── README.md +``` + +**Multiple modules** — Each top-level folder becomes a separate module: + +``` +my-module-collection/ +├── myname-module-one/ +│ ├── datascripts/ +│ └── README.md +├── myname-module-two/ +│ ├── livescripts/ +│ └── README.md +└── README.md +``` + +Common directories like `.github`, `node_modules`, `docs`, `tests`, `src`, `lib`, and `examples` are automatically excluded from module detection. + +--- + +## Optimizing for Search + +The library uses semantic search, which means it understands the meaning behind queries rather than just matching keywords. + +### Indexed Content + +The search indexes the following from your repository: + +| Content | Notes | +|---------|-------| +| Repository name | Use a descriptive name | +| GitHub description | The "About" text on your repo | +| GitHub topics | All topics, not just `tswow-module` | +| README content | First ~5,000 characters | + +### Tips for Discoverability + +**Write a strong GitHub description.** This appears prominently in search results. Be specific about what your module does. + +**Add relevant topics.** Go beyond `tswow-module` — add topics like `custom-class`, `profession`, `dungeon`, `quests`, or whatever describes your content. + +**Document your README well.** Explain what the module does, what features it includes, and how to use it. Good documentation helps both search ranking and users evaluating your module. + +**Use descriptive folder names.** For multi-module repositories, clear folder names help users understand what each module contains at a glance.