doc: add docs (#145)
12
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
## What does this PR do
|
||||||
|
|
||||||
|
## Rationale for this change
|
||||||
|
|
||||||
|
## Standards checklist
|
||||||
|
|
||||||
|
- [ ] The PR title is descriptive
|
||||||
|
- [ ] The commit messages are [semantic](https://www.conventionalcommits.org/)
|
||||||
|
- [ ] Necessary tests are added
|
||||||
|
- [ ] Updated the release notes
|
||||||
|
- [ ] Necessary documents have been added if this is a new feature
|
||||||
|
- [ ] Performance tests checked, no obvious performance degradation
|
||||||
119
.github/workflows/build-docs.yml
vendored
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
name: Build and Deploy Docs
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- 'v*'
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-deploy-docs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Product Repo
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Set Variables Based on Ref
|
||||||
|
id: vars
|
||||||
|
run: |
|
||||||
|
PRODUCT_NAME=$(basename $(pwd)) # Get the directory name as the product name
|
||||||
|
echo "PRODUCT_NAME=$PRODUCT_NAME" >> $GITHUB_ENV
|
||||||
|
CURRENT_REF=${GITHUB_REF##*/}
|
||||||
|
IS_SEMVER=false
|
||||||
|
SEMVER_REGEX="^v([0-9]+)\.([0-9]+)\.([0-9]+)$"
|
||||||
|
|
||||||
|
if [[ "${GITHUB_REF_TYPE}" == "branch" ]]; then
|
||||||
|
if [[ "$CURRENT_REF" == "main" ]]; then
|
||||||
|
echo "VERSION=main" >> $GITHUB_ENV
|
||||||
|
echo "BRANCH=main" >> $GITHUB_ENV
|
||||||
|
elif [[ "$CURRENT_REF" =~ $SEMVER_REGEX ]]; then
|
||||||
|
IS_SEMVER=true
|
||||||
|
echo "VERSION=$CURRENT_REF" >> $GITHUB_ENV
|
||||||
|
echo "BRANCH=$CURRENT_REF" >> $GITHUB_ENV
|
||||||
|
else
|
||||||
|
echo "Branch '$CURRENT_REF' is not a valid semantic version. Skipping build."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
elif [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
|
||||||
|
if [[ "$CURRENT_REF" =~ $SEMVER_REGEX ]]; then
|
||||||
|
IS_SEMVER=true
|
||||||
|
echo "VERSION=$CURRENT_REF" >> $GITHUB_ENV
|
||||||
|
echo "BRANCH=main" >> $GITHUB_ENV # Set BRANCH to 'main' for tags
|
||||||
|
else
|
||||||
|
echo "Tag '$CURRENT_REF' is not a valid semantic version. Skipping build."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Gather branches and tags, filter for semantic versions, sort, remove duplicates
|
||||||
|
VERSIONS=$(git for-each-ref refs/remotes/origin refs/tags --format="%(refname:short)" | \
|
||||||
|
grep -E "^v[0-9]+\.[0-9]+\.[0-9]+$" | sort -Vr | uniq | tr '\n' ',' | sed 's/,$//')
|
||||||
|
echo "VERSIONS=main,$VERSIONS" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Install Hugo
|
||||||
|
run: |
|
||||||
|
wget https://github.com/gohugoio/hugo/releases/download/v0.79.1/hugo_extended_0.79.1_Linux-64bit.tar.gz
|
||||||
|
tar -xzvf hugo_extended_0.79.1_Linux-64bit.tar.gz
|
||||||
|
sudo mv hugo /usr/local/bin/
|
||||||
|
|
||||||
|
- name: Checkout Docs Repo
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
repository: infinilabs/docs
|
||||||
|
path: docs-output
|
||||||
|
token: ${{ secrets.DOCS_DEPLOYMENT_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build Documentation
|
||||||
|
run: |
|
||||||
|
(cd docs && OUTPUT=$(pwd)/../docs-output make docs-build docs-place-redirect)
|
||||||
|
|
||||||
|
- name: Commit and Push Changes to Docs Repo
|
||||||
|
working-directory: docs-output
|
||||||
|
run: |
|
||||||
|
git config user.name "GitHub Actions"
|
||||||
|
git config user.email "actions@github.com"
|
||||||
|
|
||||||
|
if [[ -n $(git status --porcelain) ]]; then
|
||||||
|
git add .
|
||||||
|
git commit -m "Rebuild $PRODUCT_NAME docs for version $VERSION"
|
||||||
|
git push origin main
|
||||||
|
else
|
||||||
|
echo "No changes to commit."
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Rebuild Docs for Latest Version (main), if not already on main
|
||||||
|
run: |
|
||||||
|
# Only rebuild the main branch docs if the current ref is not "main"
|
||||||
|
if [[ "$CURRENT_REF" != "main" ]]; then
|
||||||
|
echo "Switching to main branch and rebuilding docs for 'latest'"
|
||||||
|
|
||||||
|
# Checkout the main branch of the product repo to rebuild docs for "latest"
|
||||||
|
git checkout main
|
||||||
|
|
||||||
|
# Ensure the latest changes are pulled
|
||||||
|
git pull origin main
|
||||||
|
|
||||||
|
# Build Docs for Main Branch (latest)
|
||||||
|
(cd docs && OUTPUT=$(pwd)/../docs-output VERSION="main" BRANCH="main" make docs-build docs-place-redirect)
|
||||||
|
|
||||||
|
# Commit and Push Latest Docs to Main
|
||||||
|
cd docs-output
|
||||||
|
git config user.name "GitHub Actions"
|
||||||
|
git config user.email "actions@github.com"
|
||||||
|
|
||||||
|
if [[ -n $(git status --porcelain) ]]; then
|
||||||
|
git add .
|
||||||
|
git commit -m "Rebuild $PRODUCT_NAME docs for main branch with latest version"
|
||||||
|
git push origin main
|
||||||
|
else
|
||||||
|
echo "No changes to commit for main."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Current ref is 'main', skipping rebuild for 'latest'."
|
||||||
|
fi
|
||||||
|
working-directory: ./ # Working in the product repo
|
||||||
4
docs/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
/public/
|
||||||
|
resources/_gen/
|
||||||
|
/themes/
|
||||||
|
/config.bak
|
||||||
54
docs/Makefile
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
SHELL=/bin/bash
|
||||||
|
|
||||||
|
# Basic info
|
||||||
|
PRODUCT?= $(shell basename "$(shell cd .. && pwd)")
|
||||||
|
BRANCH?= main
|
||||||
|
VERSION?= $(shell [[ "$(BRANCH)" == "main" ]] && echo "main" || echo "$(BRANCH)")
|
||||||
|
CURRENT_VERSION?= $(VERSION)
|
||||||
|
VERSIONS?= "main"
|
||||||
|
OUTPUT?= "/tmp/docs"
|
||||||
|
THEME_FOLDER?= "themes/book"
|
||||||
|
THEME_REPO?= "https://github.com/infinilabs/docs-theme.git"
|
||||||
|
THEME_BRANCH?= "main"
|
||||||
|
|
||||||
|
.PHONY: docs-build
|
||||||
|
|
||||||
|
default: docs-build
|
||||||
|
|
||||||
|
docs-init:
|
||||||
|
@if [ ! -d $(THEME_FOLDER) ]; then echo "theme does not exist";(git clone -b $(THEME_BRANCH) $(THEME_REPO) $(THEME_FOLDER) ) fi
|
||||||
|
|
||||||
|
docs-env:
|
||||||
|
@echo "Debugging Variables:"
|
||||||
|
@echo "PRODUCT: $(PRODUCT)"
|
||||||
|
@echo "BRANCH: $(BRANCH)"
|
||||||
|
@echo "VERSION: $(VERSION)"
|
||||||
|
@echo "CURRENT_VERSION: $(CURRENT_VERSION)"
|
||||||
|
@echo "VERSIONS: $(VERSIONS)"
|
||||||
|
@echo "OUTPUT: $(OUTPUT)"
|
||||||
|
|
||||||
|
docs-config: docs-init
|
||||||
|
cp config.yaml config.bak
|
||||||
|
# Detect OS and apply the appropriate sed command
|
||||||
|
@if [ "$$(uname)" = "Darwin" ]; then \
|
||||||
|
echo "Running on macOS"; \
|
||||||
|
sed -i '' "s/BRANCH/$(VERSION)/g" config.yaml; \
|
||||||
|
else \
|
||||||
|
echo "Running on Linux"; \
|
||||||
|
sed -i 's/BRANCH/$(VERSION)/g' config.yaml; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
docs-build: docs-config
|
||||||
|
hugo --minify --theme book --destination="$(OUTPUT)/$(PRODUCT)/$(VERSION)" \
|
||||||
|
--baseURL="/$(PRODUCT)/$(VERSION)"
|
||||||
|
@$(MAKE) docs-restore-generated-file
|
||||||
|
|
||||||
|
docs-serve: docs-config
|
||||||
|
hugo serve
|
||||||
|
@$(MAKE) docs-restore-generated-file
|
||||||
|
|
||||||
|
docs-place-redirect:
|
||||||
|
echo "<!DOCTYPE html> <html> <head> <meta http-equiv=refresh content=0;url=main /> </head> <body> <p><a href=main />REDIRECT TO THE LATEST_VERSION</a>.</p> </body> </html>" > $(OUTPUT)/$(PRODUCT)/index.html
|
||||||
|
|
||||||
|
docs-restore-generated-file:
|
||||||
|
mv config.bak config.yaml
|
||||||
93
docs/config.yaml
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
# VERSIONS=latest,v1.0 hugo --minify --baseURL="/product/v1.0/" -d public/product/v1.0
|
||||||
|
|
||||||
|
title: Coco AI App
|
||||||
|
theme: book
|
||||||
|
|
||||||
|
# Book configuration
|
||||||
|
disablePathToLower: true
|
||||||
|
enableGitInfo: false
|
||||||
|
|
||||||
|
# Needed for mermaid/katex shortcodes
|
||||||
|
markup:
|
||||||
|
goldmark:
|
||||||
|
renderer:
|
||||||
|
unsafe: true
|
||||||
|
tableOfContents:
|
||||||
|
startLevel: 1
|
||||||
|
|
||||||
|
# Multi-lingual mode config
|
||||||
|
# There are different options to translate files
|
||||||
|
# See https://gohugo.io/content-management/multilingual/#translation-by-filename
|
||||||
|
# And https://gohugo.io/content-management/multilingual/#translation-by-content-directory
|
||||||
|
defaultContentLanguage: en
|
||||||
|
languages:
|
||||||
|
en:
|
||||||
|
languageName: English
|
||||||
|
contentDir: content.en
|
||||||
|
weight: 3
|
||||||
|
|
||||||
|
|
||||||
|
menu:
|
||||||
|
before: []
|
||||||
|
after:
|
||||||
|
- name: "Github"
|
||||||
|
url: "https://github.com/infinilabs/coco-app"
|
||||||
|
weight: 10
|
||||||
|
|
||||||
|
params:
|
||||||
|
# (Optional, default light) Sets color theme: light, dark or auto.
|
||||||
|
# Theme 'auto' switches between dark and light modes based on browser/os preferences
|
||||||
|
BookTheme: "auto"
|
||||||
|
|
||||||
|
# (Optional, default true) Controls table of contents visibility on right side of pages.
|
||||||
|
# Start and end levels can be controlled with markup.tableOfContents setting.
|
||||||
|
# You can also specify this parameter per page in front matter.
|
||||||
|
BookToC: true
|
||||||
|
|
||||||
|
# (Optional, default none) Set the path to a logo for the book. If the logo is
|
||||||
|
# /static/logo.png then the path would be logo.png
|
||||||
|
BookLogo: img/logo
|
||||||
|
|
||||||
|
# (Optional, default none) Set leaf bundle to render as side menu
|
||||||
|
# When not specified file structure and weights will be used
|
||||||
|
# BookMenuBundle: /menu
|
||||||
|
|
||||||
|
# (Optional, default docs) Specify root page to render child pages as menu.
|
||||||
|
# Page is resoled by .GetPage function: https://gohugo.io/functions/getpage/
|
||||||
|
# For backward compatibility you can set '*' to render all sections to menu. Acts same as '/'
|
||||||
|
BookSection: docs
|
||||||
|
|
||||||
|
# Set source repository location.
|
||||||
|
# Used for 'Last Modified' and 'Edit this page' links.
|
||||||
|
BookRepo: https://github.com/infinilabs/coco-app
|
||||||
|
|
||||||
|
# Enable "Edit this page" links for 'doc' page type.
|
||||||
|
# Disabled by default. Uncomment to enable. Requires 'BookRepo' param.
|
||||||
|
# Edit path must point to root directory of repo.
|
||||||
|
BookEditPath: edit/BRANCH/docs
|
||||||
|
|
||||||
|
# Configure the date format used on the pages
|
||||||
|
# - In git information
|
||||||
|
# - In blog posts
|
||||||
|
BookDateFormat: "January 2, 2006"
|
||||||
|
|
||||||
|
# (Optional, default true) Enables search function with flexsearch,
|
||||||
|
# Index is built on fly, therefore it might slowdown your website.
|
||||||
|
# Configuration for indexing can be adjusted in i18n folder per language.
|
||||||
|
BookSearch: false
|
||||||
|
|
||||||
|
# (Optional, default true) Enables comments template on pages
|
||||||
|
# By default partals/docs/comments.html includes Disqus template
|
||||||
|
# See https://gohugo.io/content-management/comments/#configure-disqus
|
||||||
|
# Can be overwritten by same param in page frontmatter
|
||||||
|
BookComments: false
|
||||||
|
|
||||||
|
# /!\ This is an experimental feature, might be removed or changed at any time
|
||||||
|
# (Optional, experimental, default false) Enables portable links and link checks in markdown pages.
|
||||||
|
# Portable links meant to work with text editors and let you write markdown without {{< relref >}} shortcode
|
||||||
|
# Theme will print warning if page referenced in markdown does not exists.
|
||||||
|
BookPortableLinks: true
|
||||||
|
|
||||||
|
# /!\ This is an experimental feature, might be removed or changed at any time
|
||||||
|
# (Optional, experimental, default false) Enables service worker that caches visited pages and resources for offline use.
|
||||||
|
BookServiceWorker: false
|
||||||
25
docs/content.en/_index.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
title: Coco AI App
|
||||||
|
type: docs
|
||||||
|
---
|
||||||
|
|
||||||
|
# Coco AI - **Co**nnect & **Co**llaborate
|
||||||
|
|
||||||
|
Coco AI is a fully open-source, cross-platform unified search and productivity tool that connects and searches across various data sources, including applications, files, Google Drive, Notion, Yuque, Hugo, and more, both local and cloud-based. By integrating with large models like DeepSeek, Coco AI enables intelligent personal knowledge management, emphasizing privacy and supporting private deployment, helping users quickly and intelligently access their information.
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
For more details on Coco Server, visit: [https://docs.infinilabs.com/coco-app/](https://docs.infinilabs.com/coco-app/).
|
||||||
|
|
||||||
|
## Community
|
||||||
|
|
||||||
|
Feel free to join the Discord server to discuss anything related to this project:
|
||||||
|
|
||||||
|
👉 [Join the INFINI Community on Discord](https://discord.gg/4tKTMkkvVX)
|
||||||
|
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Coco AI is a truly open-source project, licensed under the [MIT License](https://github.com/infinilabs/coco-app/blob/main/LICENSE).
|
||||||
|
We also offer a commercially supported, enterprise-ready version of the software.
|
||||||
24
docs/content.en/docs/_index.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
title: Coco AI App
|
||||||
|
type: docs
|
||||||
|
---
|
||||||
|
|
||||||
|
# Coco AI - **Co**nnect & **Co**llaborate
|
||||||
|
|
||||||
|
Coco AI is a fully open-source, cross-platform unified search and productivity tool that connects and searches across various data sources, including applications, files, Google Drive, Notion, Yuque, Hugo, and more, both local and cloud-based. By integrating with large models like DeepSeek, Coco AI enables intelligent personal knowledge management, emphasizing privacy and supporting private deployment, helping users quickly and intelligently access their information.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
For more details on Coco Server, visit: [https://docs.infinilabs.com/coco-app/](https://docs.infinilabs.com/coco-app/).
|
||||||
|
|
||||||
|
## Community
|
||||||
|
|
||||||
|
Feel free to join the Discord server to discuss anything related to this project:
|
||||||
|
|
||||||
|
👉 [Join the INFINI Community on Discord](https://discord.gg/4tKTMkkvVX)
|
||||||
|
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Coco AI is a truly open-source project, licensed under the [MIT License](https://github.com/infinilabs/coco-app/blob/main/LICENSE).
|
||||||
|
We also offer a commercially supported, enterprise-ready version of the software.
|
||||||
5
docs/content.en/docs/getting-started/_index.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
weight: 10
|
||||||
|
title: "Getting Started"
|
||||||
|
bookCollapseSection: false
|
||||||
|
---
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
weight: 10
|
||||||
|
title: "Installation"
|
||||||
|
bookCollapseSection: true
|
||||||
|
---
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
weight: 10
|
||||||
|
title: "Mac OS"
|
||||||
|
asciinema: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Mac OS
|
||||||
|
|
||||||
|
## Download Coco AI
|
||||||
|
|
||||||
|
Goto [https://coco.rs/](https://coco.rs/)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Unzip DMG file
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Drag to Application Folder
|
||||||
|
|
||||||
|

|
||||||
36
docs/content.en/docs/getting-started/screenshot.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
weight: 10
|
||||||
|
title: "Screenshot"
|
||||||
|
asciinema: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Screenshot
|
||||||
|
|
||||||
|
## Screenshot Gallery
|
||||||
|
|
||||||
|
Here are some screenshots showcasing the user interface:
|
||||||
|
|
||||||
|
**Search Local Desktop Applications**
|
||||||
|

|
||||||
|
Seamlessly search through your local apps directly from Coco AI.
|
||||||
|
|
||||||
|
|
||||||
|
**Search Across Personal & Enterprise Knowledge Bases**
|
||||||
|

|
||||||
|
|
||||||
|
Perform hybrid searches across multiple data sources, including personal and company knowledge bases.
|
||||||
|
|
||||||
|
**Chat with Your AI Assistant**
|
||||||
|

|
||||||
|
|
||||||
|
Interact with the AI assistant, which leverages your personal knowledge base to provide detailed and intelligent answers.
|
||||||
|
|
||||||
|
**Chat History View**
|
||||||
|

|
||||||
|
|
||||||
|
The AI Assistant allows you to review past conversations, ensuring context-aware responses.
|
||||||
|
|
||||||
|
**Private Deployment Support**
|
||||||
|

|
||||||
|
You can deploy Coco Server privately, ensuring data security and privacy.
|
||||||
|
|
||||||
35
docs/content.en/docs/release-notes/_index.md
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
weight: 80
|
||||||
|
title: "Release Notes"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Release Notes
|
||||||
|
|
||||||
|
Information about release notes of Coco Server is provided here.
|
||||||
|
|
||||||
|
## Latest (In development)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
### Breaking changes
|
||||||
|
### Bug fix
|
||||||
|
### Improvements
|
||||||
|
|
||||||
|
## 0.1.0 (2015-02-16)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- Fusion Search
|
||||||
|
- Chat with AI Assistant
|
||||||
|
- RAG-based AI Chat
|
||||||
|
- General Settings
|
||||||
|
- Global Shortcut
|
||||||
|
- Auto Start on Startup
|
||||||
|
- Shortcut to Features
|
||||||
|
- Application Search for macOS
|
||||||
|
- Option to Connect to Self-Hosted Coco Server
|
||||||
|
|
||||||
|
### Breaking changes
|
||||||
|
|
||||||
|
### Bug fix
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
|
||||||
BIN
docs/static/img/download-mac-app.png
vendored
Normal file
|
After Width: | Height: | Size: 155 KiB |
BIN
docs/static/img/drag-to-application-folder.png
vendored
Normal file
|
After Width: | Height: | Size: 69 KiB |
35
docs/static/img/logo-en.svg
vendored
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
docs/static/img/screenshot/chat-history-view.png
vendored
Normal file
|
After Width: | Height: | Size: 257 KiB |
BIN
docs/static/img/screenshot/coco-chat.png
vendored
Normal file
|
After Width: | Height: | Size: 280 KiB |
BIN
docs/static/img/screenshot/coco-connector-to-your-own-server.png
vendored
Normal file
|
After Width: | Height: | Size: 208 KiB |
BIN
docs/static/img/screenshot/coco-search-local-apps.png
vendored
Normal file
|
After Width: | Height: | Size: 263 KiB |
BIN
docs/static/img/screenshot/fusion-search-across-datasources.png
vendored
Normal file
|
After Width: | Height: | Size: 278 KiB |
BIN
docs/static/img/unzip-dmg-file.png
vendored
Normal file
|
After Width: | Height: | Size: 121 KiB |