diff --git a/docs.json b/docs.json index 44a64f824..76f764df7 100644 --- a/docs.json +++ b/docs.json @@ -1,296 +1,463 @@ { - "$schema": "https://mintlify.com/docs.json", "theme": "maple", + "$schema": "https://mintlify.com/docs.json", "name": "Mintlify", "colors": { "primary": "#0D9373", "light": "#55D799", "dark": "#0D9373" }, + "logo": { + "light": "/logo/light.svg", + "dark": "/logo/dark.svg", + "href": "https://mintlify.com" + }, "favicon": "/favicon.svg", + "api": { + "mdx": { + "auth": { + "method": "bearer" + } + } + }, + "navbar": { + "links": [ + { + "label": "Community", + "href": "https://mintlify.com/community" + } + ], + "primary": { + "type": "button", + "label": "Get Started", + "href": "https://mintlify.com/start" + } + }, "navigation": { - "dropdowns": [ + "languages": [ { - "dropdown": "Getting Started", - "icon": "book", - "description": "Set up your documentation", - "groups": [ + "language": "en", + "dropdowns": [ { - "group": "Getting Started", - "pages": [ - "quickstart", - { - "group": "Editing", - "icon": "pen-paintbrush", - "pages": ["development", "web-editor"] - }, - "settings/global", + "dropdown": "Getting Started", + "icon": "book", + "description": "Set up your documentation", + "groups": [ { - "group": "Navigation", - "icon": "map", + "group": "Getting Started", "pages": [ - "navigation/overview", - "navigation/pages", - "navigation/divisions", - "navigation/versions", - "navigation/localization" - ] - }, - "themes", - "migration" - ] - }, - { - "group": "Writing Content", - "pages": [ - "page", - "text", - "image-embeds", - "list-table", - "code", - "reusable-snippets" - ] - }, - { - "group": "API References", - "pages": [ - "api-playground/overview", - { - "group": "OpenAPI", - "icon": "brackets-curly", - "pages": [ - "api-playground/openapi/setup", - "api-playground/openapi/writing-openapi", - "api-playground/openapi/advanced-features" - ] - }, - { - "group": "MDX", - "icon": "markdown", - "pages": [ - "api-playground/mdx/configuration", - "api-playground/mdx/authentication" + "quickstart", + { + "group": "Editing", + "icon": "pen-paintbrush", + "pages": [ + "development", + "web-editor" + ] + }, + "settings/global", + { + "group": "Navigation", + "icon": "map", + "pages": [ + "navigation/overview", + "navigation/pages", + "navigation/divisions", + "navigation/versions", + "navigation/localization" + ] + }, + "themes", + "migration" ] }, - "api-playground/troubleshooting" - ] - }, - { - "group": "Configurations", - "pages": [ - "settings/custom-domain", - "settings/seo", - "settings/llms", - "settings/custom-scripts", - "settings/broken-links", - "settings/github", - "settings/gitlab", - "settings/ci", - "settings/preview-deployments" - ] - }, - { - "group": "Advanced", - "pages": [ { - "group": "Custom Subdirectory", - "icon": "folder", + "group": "Writing Content", "pages": [ - "advanced/subpath/cloudflare", - "advanced/subpath/route53-cloudfront", - "advanced/subpath/vercel" + "page", + "text", + "image-embeds", + "list-table", + "code", + "reusable-snippets" ] }, { - "group": "Auth & Personalization", - "icon": "user-lock", + "group": "API References", "pages": [ - "settings/authentication-personalization/authentication", - "settings/authentication-personalization/partial-authentication", - "settings/authentication-personalization/personalization", - "settings/authentication-personalization/authentication-vs-personalization", + "api-playground/overview", { - "group": "Authentication Setup", + "group": "OpenAPI", + "icon": "brackets-curly", "pages": [ - "settings/authentication-personalization/authentication-setup/choosing-a-handshake", - "settings/authentication-personalization/authentication-setup/password", - "settings/authentication-personalization/authentication-setup/jwt", - "settings/authentication-personalization/authentication-setup/oauth", - "settings/authentication-personalization/authentication-setup/mintlify" + "api-playground/openapi/setup", + "api-playground/openapi/writing-openapi", + "api-playground/openapi/advanced-features" ] }, { - "group": "Personalization Setup", + "group": "MDX", + "icon": "markdown", "pages": [ - "settings/authentication-personalization/personalization-setup/choosing-a-handshake", - "settings/authentication-personalization/personalization-setup/shared-session", - "settings/authentication-personalization/personalization-setup/jwt", - "settings/authentication-personalization/personalization-setup/oauth" + "api-playground/mdx/configuration", + "api-playground/mdx/authentication" ] }, - "settings/authentication-personalization/sending-data" + "api-playground/troubleshooting" ] }, { - "group": "Dashboard Access", - "icon": "house-lock", + "group": "Configurations", "pages": [ - "advanced/dashboard/sso", - "advanced/dashboard/permissions" + "settings/custom-domain", + "settings/seo", + "settings/llms", + "settings/custom-scripts", + "settings/broken-links", + "settings/github", + "settings/gitlab", + "settings/ci", + "settings/preview-deployments" ] }, { - "group": "Model Context Protocol", - "icon": "server", - "pages": ["advanced/mcp/quickstart", "advanced/mcp/generate"] - }, - { - "group": "REST API", - "icon": "brackets-curly", + "group": "Advanced", "pages": [ - "advanced/rest-api/overview", { - "group": "Updates", + "group": "Custom Subdirectory", + "icon": "folder", + "pages": [ + "advanced/subpath/cloudflare", + "advanced/subpath/route53-cloudfront", + "advanced/subpath/vercel" + ] + }, + { + "group": "Auth & Personalization", + "icon": "user-lock", + "pages": [ + "settings/authentication-personalization/authentication", + "settings/authentication-personalization/partial-authentication", + "settings/authentication-personalization/personalization", + "settings/authentication-personalization/authentication-vs-personalization", + { + "group": "Authentication Setup", + "pages": [ + "settings/authentication-personalization/authentication-setup/choosing-a-handshake", + "settings/authentication-personalization/authentication-setup/password", + "settings/authentication-personalization/authentication-setup/jwt", + "settings/authentication-personalization/authentication-setup/oauth", + "settings/authentication-personalization/authentication-setup/mintlify" + ] + }, + { + "group": "Personalization Setup", + "pages": [ + "settings/authentication-personalization/personalization-setup/choosing-a-handshake", + "settings/authentication-personalization/personalization-setup/shared-session", + "settings/authentication-personalization/personalization-setup/jwt", + "settings/authentication-personalization/personalization-setup/oauth" + ] + }, + "settings/authentication-personalization/sending-data" + ] + }, + { + "group": "Dashboard Access", + "icon": "house-lock", + "pages": [ + "advanced/dashboard/sso", + "advanced/dashboard/permissions" + ] + }, + { + "group": "Model Context Protocol", + "icon": "server", "pages": [ - "advanced/rest-api/update/trigger", - "advanced/rest-api/update/status" + "advanced/mcp/quickstart", + "advanced/mcp/generate" ] }, { - "group": "Chat API", + "group": "REST API", + "icon": "brackets-curly", "pages": [ - "advanced/rest-api/chat/create-topic", - "advanced/rest-api/chat/generate-message" + "advanced/rest-api/overview", + { + "group": "Updates", + "pages": [ + "advanced/rest-api/update/trigger", + "advanced/rest-api/update/status" + ] + }, + { + "group": "Chat API", + "pages": [ + "advanced/rest-api/chat/create-topic", + "advanced/rest-api/chat/generate-message" + ] + } ] } ] } ] - } - ] - }, - { - "dropdown": "Components", - "icon": "block-brick", - "description": "Component library", - "groups": [ + }, { - "group": "Components", - "pages": [ - "content/components/accordions", - "content/components/accordion-groups", - "content/components/callouts", - "content/components/cards", - "content/components/card-groups", - "content/components/code", - "content/components/code-groups", - "content/components/frames", - "content/components/icons", - "content/components/mermaid-diagrams", - "content/components/steps", - "content/components/tabs", - "content/components/tooltips", - "content/components/update" + "dropdown": "Components", + "icon": "block-brick", + "description": "Component library", + "groups": [ + { + "group": "Components", + "pages": [ + "content/components/accordions", + "content/components/accordion-groups", + "content/components/callouts", + "content/components/cards", + "content/components/card-groups", + "content/components/code", + "content/components/code-groups", + "content/components/frames", + "content/components/icons", + "content/components/mermaid-diagrams", + "content/components/steps", + "content/components/tabs", + "content/components/tooltips", + "content/components/update" + ] + }, + { + "group": "API Components", + "pages": [ + "content/components/params", + "content/components/responses", + "content/components/expandables", + "content/components/sticky-examples" + ] + } + ] + }, + { + "dropdown": "Integrations", + "icon": "plug", + "description": "Connect your providers", + "groups": [ + { + "group": "Analytics", + "pages": [ + "integrations/analytics/overview", + "integrations/analytics/amplitude", + "integrations/analytics/clearbit", + "integrations/analytics/fathom", + "integrations/analytics/google-analytics", + "integrations/analytics/google-tag-manager", + "integrations/analytics/heap", + "integrations/analytics/hotjar", + "integrations/analytics/koala", + "integrations/analytics/logrocket", + "integrations/analytics/mixpanel", + "integrations/analytics/pirsch", + "integrations/analytics/plausible", + "integrations/analytics/posthog", + "integrations/analytics/segment" + ] + }, + { + "group": "SDKs", + "pages": [ + "integrations/sdks/speakeasy", + "integrations/sdks/stainless" + ] + }, + { + "group": "Support", + "pages": [ + "integrations/support/overview", + "integrations/support/intercom", + "integrations/support/front" + ] + }, + { + "group": "Privacy", + "pages": [ + "integrations/privacy/overview", + "integrations/privacy/osano" + ] + } ] }, { - "group": "API Components", - "pages": [ - "content/components/params", - "content/components/responses", - "content/components/expandables", - "content/components/sticky-examples" + "dropdown": "Changelog", + "icon": "list-timeline", + "description": "Updates and changes", + "groups": [ + { + "group": "Changelog", + "pages": [ + "changelog/overview" + ] + } ] } ] }, { - "dropdown": "Integrations", - "icon": "plug", - "description": "Connect your providers", - "groups": [ + "language": "id", + "dropdowns": [ { - "group": "Analytics", - "pages": [ - "integrations/analytics/overview", - "integrations/analytics/amplitude", - "integrations/analytics/clearbit", - "integrations/analytics/fathom", - "integrations/analytics/google-analytics", - "integrations/analytics/google-tag-manager", - "integrations/analytics/heap", - "integrations/analytics/hotjar", - "integrations/analytics/koala", - "integrations/analytics/logrocket", - "integrations/analytics/mixpanel", - "integrations/analytics/pirsch", - "integrations/analytics/plausible", - "integrations/analytics/posthog", - "integrations/analytics/segment" + "dropdown": "Getting Started", + "icon": "book", + "description": "Set up your documentation", + "groups": [ + { + "group": "Getting Started", + "pages": [ + "id/quickstart", + "id/settings/global", + "id/themes", + "id/migration" + ] + }, + { + "group": "Writing Content", + "pages": [ + "id/page", + "id/text", + "id/image-embeds", + "id/list-table", + "id/code", + "id/reusable-snippets" + ] + }, + { + "group": "API References", + "pages": [ + "id/api-playground/overview", + "id/api-playground/troubleshooting" + ] + }, + { + "group": "Configurations", + "pages": [ + "id/settings/custom-domain", + "id/settings/seo", + "id/settings/llms", + "id/settings/custom-scripts", + "id/settings/broken-links", + "id/settings/github", + "id/settings/gitlab", + "id/settings/ci", + "id/settings/preview-deployments" + ] + }, + { + "group": "Advanced", + "pages": [] + } ] }, { - "group": "SDKs", - "pages": [ - "integrations/sdks/speakeasy", - "integrations/sdks/stainless" + "dropdown": "Components", + "icon": "block-brick", + "description": "Component library", + "groups": [ + { + "group": "Components", + "pages": [ + "id/content/components/accordions", + "id/content/components/accordion-groups", + "id/content/components/callouts", + "id/content/components/cards", + "id/content/components/card-groups", + "id/content/components/code", + "id/content/components/code-groups", + "id/content/components/frames", + "id/content/components/icons", + "id/content/components/mermaid-diagrams", + "id/content/components/steps", + "id/content/components/tabs", + "id/content/components/tooltips", + "id/content/components/update" + ] + }, + { + "group": "API Components", + "pages": [ + "id/content/components/params", + "id/content/components/responses", + "id/content/components/expandables", + "id/content/components/sticky-examples" + ] + } ] }, { - "group": "Support", - "pages": [ - "integrations/support/overview", - "integrations/support/intercom", - "integrations/support/front" + "dropdown": "Integrations", + "icon": "plug", + "description": "Connect your providers", + "groups": [ + { + "group": "Analytics", + "pages": [ + "id/integrations/analytics/overview", + "id/integrations/analytics/amplitude", + "id/integrations/analytics/clearbit", + "id/integrations/analytics/fathom", + "id/integrations/analytics/google-analytics", + "id/integrations/analytics/google-tag-manager", + "id/integrations/analytics/heap", + "id/integrations/analytics/hotjar", + "id/integrations/analytics/koala", + "id/integrations/analytics/logrocket", + "id/integrations/analytics/mixpanel", + "id/integrations/analytics/pirsch", + "id/integrations/analytics/plausible", + "id/integrations/analytics/posthog", + "id/integrations/analytics/segment" + ] + }, + { + "group": "SDKs", + "pages": [ + "id/integrations/sdks/speakeasy", + "id/integrations/sdks/stainless" + ] + }, + { + "group": "Support", + "pages": [ + "id/integrations/support/overview", + "id/integrations/support/intercom", + "id/integrations/support/front" + ] + }, + { + "group": "Privacy", + "pages": [ + "id/integrations/privacy/overview", + "id/integrations/privacy/osano" + ] + } ] }, { - "group": "Privacy", - "pages": [ - "integrations/privacy/overview", - "integrations/privacy/osano" + "dropdown": "Changelog", + "icon": "list-timeline", + "description": "Updates and changes", + "groups": [ + { + "group": "Changelog", + "pages": [ + "id/changelog/overview" + ] + } ] } ] - }, - { - "dropdown": "Changelog", - "icon": "list-timeline", - "description": "Updates and changes", - "groups": [ - { - "group": "Changelog", - "pages": ["changelog/overview"] - } - ] } ] }, - "logo": { - "light": "/logo/light.svg", - "dark": "/logo/dark.svg", - "href": "https://mintlify.com" - }, - "api": { - "mdx": { - "auth": { - "method": "bearer" - } - } - }, - "navbar": { - "links": [ - { - "label": "Community", - "href": "https://mintlify.com/community" - } - ], - "primary": { - "type": "button", - "label": "Get Started", - "href": "https://mintlify.com/start" - } - }, "footer": { "socials": { "x": "https://x.com/mintlify", @@ -373,6 +540,11 @@ } }, "contextual": { - "options": ["copy", "view", "chatgpt", "claude"] + "options": [ + "copy", + "view", + "chatgpt", + "claude" + ] } -} +} \ No newline at end of file diff --git a/id/advanced/dashboard/permissions.mdx b/id/advanced/dashboard/permissions.mdx new file mode 100644 index 000000000..0d83eacf8 --- /dev/null +++ b/id/advanced/dashboard/permissions.mdx @@ -0,0 +1,16 @@ +--- +title: Izin Editor +description: Izinkan lebih banyak anggota tim Anda untuk memperbarui docs +--- + +Anggota tim yang membuat docs awal Anda akan memiliki akses pembaruan ke docs Anda, selama mereka melakukan push ke repo dokumentasi Anda dengan akun GitHub yang sama yang digunakan saat mendaftar untuk Mintlify. + +Jika editor lain mencoba memperbarui docs saat menggunakan paket gratis, Anda akan melihat peringatan dalam pemeriksaan git commit Anda. + + + + + +Dalam detail peringatan pemeriksaan git, Anda akan menemukan tautan untuk meningkatkan paket Anda. Anda juga dapat meningkatkan paket Anda di [dashboard](https://dashboard.mintlify.com) untuk mengaktifkan editor tak terbatas untuk memperbarui docs Anda. Setelah Anda meningkatkan paket, picu pembaruan manual atau push perubahan lain untuk menerapkan pembaruan Anda. + +Pelajari lebih lanjut tentang harga kami [di sini](https://mintlify.com/pricing). diff --git a/id/advanced/dashboard/sso.mdx b/id/advanced/dashboard/sso.mdx new file mode 100644 index 000000000..0c93b1712 --- /dev/null +++ b/id/advanced/dashboard/sso.mdx @@ -0,0 +1,105 @@ +--- +title: Single Sign-On (SSO) +description: Sesuaikan cara tim Anda dapat masuk ke dasbor admin Anda +--- + +Gunakan single sign-on ke dasbor Anda melalui SAML dan OIDC. Jika Anda menggunakan Okta atau Google Workspace, kami memiliki dokumentasi khusus penyedia untuk mengatur SSO, tetapi jika Anda menggunakan penyedia lain, silakan hubungi kami! + + + Fungsi SSO tersedia pada paket Enterprise kami.[Hubungi + kami](https://mintlify.com/enterprise) untuk mempelajari lebih lanjut! + + +## Okta + + + + + + Di bawah `Applications`, klik untuk membuat integrasi aplikasi baru menggunakan SAML 2.0. + + + + Masukkan yang berikut: + + * URL single sign-on (disediakan oleh Mintlify) + * URI Audiens (disediakan oleh Mintlify) + * Format ID Nama: `EmailAddress` + * Pernyataan Atribut: + | Nama | Format nama | Nilai | + | ----------- | ----------- | ---------------- | + | `firstName` | Dasar | `user.firstName` | + | `lastName` | Dasar | `user.lastName` | + + + + Setelah aplikasi diatur, navigasi ke tab sign-on dan kirimkan URL metadata kepada kami. + Kami akan mengaktifkan koneksi dari sisi kami menggunakan informasi ini. + + + + + + + + Di bawah `Applications`, klik untuk membuat integrasi aplikasi baru menggunakan OIDC. + Anda harus memilih `Web Application` tipe aplikasi. + + + + Pilih tipe grant kode otorisasi dan masukkan URI Pengalihan yang disediakan oleh Mintlify. + + + + Setelah aplikasi diatur, navigasi ke tab Umum dan temukan ID klien & rahasia klien. + Mohon berikan kami informasi ini secara aman, bersama dengan URL instansi Okta Anda (misalnya `.okta.com`). Anda dapat mengirimkan ini melalui layanan seperti 1Password atau SendSafely. + + + + + +## Google Workspace + + + + + + Di bawah `Web and mobile apps`, pilih `Add custom SAML app` dari `Add app` dropdown. + + + ![](/images/gsuite-add-custom-saml-app.png) + + + + + Salin URL SSO, ID Entitas, dan sertifikat x509 yang disediakan dan kirimkan ke tim Mintlify. + + + ![](/images/gsuite-saml-metadata.png) + + + + + Pada halaman detail Penyedia layanan, masukkan yang berikut: + + * URL ACS (disediakan oleh Mintlify) + * ID Entitas (disediakan oleh Mintlify) + * Format ID Nama: `EMAIL` + * ID Nama: `Basic Information > Primary email` + + + ![](/images/gsuite-sp-details.png) + + + Pada halaman berikutnya, masukkan pernyataan atribut berikut: + + | Atribut Direktori Google | Atribut Aplikasi | + | ------------------------ | ---------------- | + | `First name` | `firstName` | + | `Last name` | `lastName` | + + Setelah langkah ini selesai dan pengguna ditugaskan ke aplikasi, beri tahu tim kami dan kami akan mengaktifkan SSO untuk akun Anda! + + + + diff --git a/id/advanced/mcp/generate.mdx b/id/advanced/mcp/generate.mdx new file mode 100644 index 000000000..4ca45a7ae --- /dev/null +++ b/id/advanced/mcp/generate.mdx @@ -0,0 +1,42 @@ +--- +title: MCP Generator +description: Pelajari cara menyiapkan Server MCP Anda sendiri +icon: 'text-size' +--- + + + Halaman ini didedikasikan untuk menyiapkan Server MCP Anda sendiri. Jika Anda mencari informasi tentang penggunaan Server Mintlify MCP, silakan merujuk ke + [Menginstal dan menggunakan Server Mintlify MCP](/advanced/mcp/quickstart) halaman. + + +## Memulai + +Jalankan `npm i @mintlify/mcp` untuk menginstal `@mintlify/mcp` CLI. + +Di [dasbor](https://dashboard.mintlify.com/products/mcp) pergi ke `MCP Server`, di halaman ini alihkan untuk melihat perintah instalasi unik Anda. Ini adalah perintah untuk menginstal Server MCP Anda dengan `@mintlify/mcp` CLI. + + + Pastikan untuk mengalihkan akses OpenAPI untuk memungkinkan server MCP mengakses **semua** + endpoint dalam spesifikasi OpenAPI Anda. + + +## Memulai server MCP secara lokal + + + + Jalankan perintah berikut untuk menginstal server: + + ```bash + npx @mintlify/mcp add [your subdomain] + ``` + + + + Jika API Anda memerlukan token autentikasi, beri tahu pelanggan akhir Anda untuk mendapatkannya dan menerapkannya ketika diberikan respons ini: `> What is the Authorization + (basic token)?` Jika tidak, Anda dapat melewati langkah ini. + + + + Anda sekarang dapat menjalankan: `bash npm --prefix ~/.mcp/[your subdomain] start ` + + diff --git a/id/advanced/mcp/quickstart.mdx b/id/advanced/mcp/quickstart.mdx new file mode 100644 index 000000000..340c296e0 --- /dev/null +++ b/id/advanced/mcp/quickstart.mdx @@ -0,0 +1,97 @@ +--- +title: Quickstart +description: Menghasilkan server MCP untuk membantu menghubungkan produk Anda ke LLM +--- + +## Pendahuluan + +MCP Generator adalah alat CLI yang menghasilkan server MCP berdasarkan dokumentasi perusahaan Anda & spesifikasi OpenAPI jika tersedia. Ini mengambil dokumentasi Anda dan spesifikasi OpenAPI dan menghasilkan server MCP yang dapat digunakan dengan klien MCP apa pun. MCP Generator disampaikan melalui[paket npm](https://www.npmjs.com/package/mcp) dan menghasilkan server MCP yang dapat digunakan dengan klien MCP apa pun. + +Mintlify memungkinkan Anda membuat server MCP yang memungkinkan alat AI berinteraksi dengan dokumentasi Anda dalam skenario kunci berikut: + +1. **Docs Q\&A**, mirip dengan AI Chat kami. Ini secara otomatis diaktifkan untuk dokumentasi Anda, tidak diperlukan pengaturan. +2. **Kueri API real-time**, jika Anda memiliki spesifikasi OpenAPI, buka`Mintlify Dashboard > Products > MCP Server` dan klik toggle untuk mengaktifkan spesifikasi OpenAPI Anda. + + + Dengan mengaktifkan toggle OpenAPI, Anda mengizinkan server MCP untuk mengakses + **semua** endpoint dalam spesifikasi OpenAPI Anda. + + +## Instal server MCP + + + Halaman ini didedikasikan untuk Server MCP Mintlify. Jika Anda mencari informasi tentang cara menghasilkan MCP Anda, silakan lihat halaman[MCP Generator](/advanced/mcp/generate). + + +## Contoh instalasi dengan server MCP Mintlify + +Untuk menggunakan server MCP Mintlify Anda akan memerlukan[kunci API](https://mintlify.com/docs/advanced/rest-api/overview#authentication) dari akun Mintlify Anda. Jika Anda belum memilikinya, navigasikan ke`Settings > API Keys > Chat API Key` dan buat kunci baru. + +## Mulai server MCP secara lokal + + + + Jalankan perintah berikut untuk menginstal server: + + ```bash + npx @mintlify/mcp add mintlify + ``` + + + + Respons berikut akan diberikan setelah menjalankan perintah sebelumnya: + + ``` + > What is the Authorization (basic token)? + ``` + + Menggunakan kunci chat API Anda, salin token autentikasi dan tempelkan ke dalam CLI. + + + + Anda sekarang dapat menjalankan: + + ```bash + npm --prefix ~/.mcp/mintlify start + ``` + + + +## Gunakan server Anda dengan Claude + + + Unduh[Aplikasi Desktop Claude](https://claude.ai/download) + + +Setelah Anda menginstal Aplikasi Desktop Claude, ikuti langkah-langkah berikut: + + + + + + Tambahkan yang berikut ke`claude_desktop_config.json`: + + ```json + { + "mcpServers": { + "mintlify": { + "command": "npm", + "args": [ + "--prefix", + "~/.mcp/mintlify", + "start" + ] + } + } + } + ``` + + + + Jika Anda mengkliknya, Anda akan melihat MCP Tools yang tersedia di server Anda. + + + ![Claude MCP](/images/mcp-with-claude.png) + + + diff --git a/id/advanced/rest-api/chat/create-topic.mdx b/id/advanced/rest-api/chat/create-topic.mdx new file mode 100644 index 000000000..dc00663e3 --- /dev/null +++ b/id/advanced/rest-api/chat/create-topic.mdx @@ -0,0 +1,3 @@ +--- +openapi: POST /chat/topic +--- diff --git a/id/advanced/rest-api/chat/generate-message.mdx b/id/advanced/rest-api/chat/generate-message.mdx new file mode 100644 index 000000000..b1cdbbb37 --- /dev/null +++ b/id/advanced/rest-api/chat/generate-message.mdx @@ -0,0 +1,3 @@ +--- +openapi: POST /chat/message +--- diff --git a/id/advanced/rest-api/overview.mdx b/id/advanced/rest-api/overview.mdx new file mode 100644 index 000000000..79c09718f --- /dev/null +++ b/id/advanced/rest-api/overview.mdx @@ -0,0 +1,38 @@ +--- +title: Overview +--- + +## Memicu Pembaruan + +Anda dapat memanfaatkan REST API untuk memicu pembaruan secara terprogram saat diinginkan. + + + Meskipun kasus penggunaan utama akan menjadi memicu pembaruan, kami akan menambahkan lebih banyak + fungsionalitas ke API seiring waktu. Beri tahu kami apa lagi yang ingin Anda lihat di + [komunitas kami](https://mintlify.com/community)! + + +## Autentikasi + +Anda dapat menghasilkan kunci API melalui +[dasbor](https://dashboard.mintlify.com/settings/organization/api-keys). Kunci API tersebut terkait dengan seluruh organisasi dan dapat digunakan di berbagai deployment. + + + + + +## Kunci API Admin + +Kunci API Admin digunakan untuk sebagian besar API. Ini digunakan untuk memicu pembaruan melalui [endpoint Pembaruan](/advanced/rest-api/update/trigger). + +## Kunci API Chat + +API Chat memungkinkan Anda untuk menyematkan pengalaman chat AI yang didasarkan pada dokumentasi Anda dan terus diperbarui ke dalam aplikasi pilihan Anda. + +Respons mencakup kutipan sehingga Anda dapat mengarahkan pengguna ke tempat yang tepat untuk mendapatkan bantuan. + + + Token API Chat adalah token publik yang dapat direferensikan dalam kode frontend Anda sedangkan kunci API adalah token sisi server yang harus dijaga kerahasiaannya. + + +Sekarang Anda memiliki kunci API, lihat [contoh](https://github.com/mintlify/discovery-api-example) kami untuk cara menggunakan API untuk AI chat. Anda juga dapat melihat versi yang sudah di-deploy di [chat.mintlify.com](https://chat.mintlify.com). diff --git a/id/advanced/rest-api/update/status.mdx b/id/advanced/rest-api/update/status.mdx new file mode 100644 index 000000000..0bc6efc18 --- /dev/null +++ b/id/advanced/rest-api/update/status.mdx @@ -0,0 +1,3 @@ +--- +openapi: GET /project/update-status/{statusId} +--- diff --git a/id/advanced/rest-api/update/trigger.mdx b/id/advanced/rest-api/update/trigger.mdx new file mode 100644 index 000000000..8d47fe1e6 --- /dev/null +++ b/id/advanced/rest-api/update/trigger.mdx @@ -0,0 +1,3 @@ +--- +openapi: POST /project/update/{projectId} +--- diff --git a/id/advanced/subpath/cloudflare.mdx b/id/advanced/subpath/cloudflare.mdx new file mode 100644 index 000000000..06dba438f --- /dev/null +++ b/id/advanced/subpath/cloudflare.mdx @@ -0,0 +1,75 @@ +--- +title: Cloudflare +description: Host dokumentasi di subpath /docs menggunakan Cloudflare Workers +--- + +## Buat Cloudflare Worker + +Navigasi ke`Workers & Pages > Create application > Create worker`. Anda akan melihat tampilan berikut di mana Anda dapat membuat worker Cloudflare baru. + + + Create a Cloudflare worker + + + + Perlu diingat: Jika penyedia DNS Anda adalah Cloudflare, Anda tidak boleh menggunakan proxying untuk record CNAME + + +### Tambahkan domain kustom + +Setelah worker dibuat, klik`Configure worker`. Navigasi ke worker +`Settings > Triggers`. Klik pada`Add Custom Domain` untuk menambahkan domain yang Anda inginkan ke dalam daftar - kami menyarankan Anda menambahkan kedua versi dengan dan tanpa`www.` +ditambahkan ke domain. + + + Cloudflare worker custom domain + + +Jika Anda mengalami kesulitan dalam mengatur subdirektori kustom, +[hubungi tim dukungan kami](mailto:sales@mintlify.com) dan kami akan membantu Anda melalui proses peningkatan hosting Anda dengan kami. + +### Edit Skrip Worker + +Klik pada`Edit Code` dan tambahkan skrip berikut ke dalam kode worker. + + + Cloudflare edit code + + + + Edit`DOCS_URL` dengan mengganti`[SUBDOMAIN]` dengan subdomain unik Anda dan`CUSTOM_URL` dengan URL dasar situs web Anda. + + +```javascript +addEventListener("fetch", (event) => { + event.respondWith(handleRequest(event.request)); +}); + +async function handleRequest(request) { + try { + const urlObject = new URL(request.url); + // If the request is to the docs subdirectory + if (/^\/docs/.test(urlObject.pathname)) { + // Then Proxy to Mintlify + const DOCS_URL = "[SUBDOMAIN].mintlify.dev"; + const CUSTOM_URL = "[YOUR_DOMAIN]"; + + let url = new URL(request.url); + url.hostname = DOCS_URL; + + let proxyRequest = new Request(url, request); + + proxyRequest.headers.set("Host", DOCS_URL); + proxyRequest.headers.set("X-Forwarded-Host", CUSTOM_URL); + proxyRequest.headers.set("X-Forwarded-Proto", "https"); + + return await fetch(proxyRequest); + } + } catch (error) { + // if no action found, play the regular request + return await fetch(request); + } +} +``` + +Klik pada`Deploy` dan tunggu perubahan tersebar (bisa memakan waktu hingga beberapa jam). diff --git a/id/advanced/subpath/route53-cloudfront.mdx b/id/advanced/subpath/route53-cloudfront.mdx new file mode 100644 index 000000000..1acebeab1 --- /dev/null +++ b/id/advanced/subpath/route53-cloudfront.mdx @@ -0,0 +1,137 @@ +--- +title: AWS Route 53 dan Cloudfront +sidebarTitle: AWS +description: Host dokumentasi di subdirektori /docs menggunakan layanan AWS +--- + +## Membuat Distribusi Cloudfront + +Navigasi ke [Cloudfront](https://aws.amazon.com/cloudfront) di dalam konsol AWS dan klik pada `Create distribution` + + + ![Cloudfront Create Distribution](/images/cloudfront/create-distribution.png) + + +Untuk domain Origin, masukkan `[SUBDOMAIN].mintlify.dev` dimana `[SUBDOMAIN]` adalah subdomain unik proyek. Klik pada `Use: [SUBDOMAIN].mintlify.dev` + +![Cloudfront Origin name](/images/cloudfront/origin-name.png) + +Untuk **Kunci cache dan permintaan asal**, pilih `Caching Optimized`. + + + ![Cloudfront Caching policy](/images/cloudfront/caching-policy.png) + + +Dan untuk **Firewall Aplikasi Web (WAF)**, aktifkan perlindungan keamanan + + + ![Cloudfront Caching + policy](/images/cloudfront/enable-security-protections.png) + + +Pengaturan lainnya harus default. Klik `Create distribution`. + +## Tambahkan Origin Default + +Setelah membuat distribusi, navigasi ke tab `Origins`. + +![Cloudfront Origins](/images/cloudfront/origins.png) + +Kita ingin menemukan URL staging yang mencerminkan domain utama (example.com). Ini sangat bervariasi tergantung pada bagaimana halaman landing Anda dihosting. + + + Misalnya, jika halaman landing Anda dihosting di Webflow, Anda dapat menggunakan URL staging Webflow. URL tersebut akan terlihat seperti `.webflow.io`. + + Jika Anda menggunakan Vercel, Anda menggunakan domain `.vercel.app` yang tersedia untuk setiap proyek. + + + + Jika Anda tidak yakin bagaimana cara mendapatkan URL staging untuk halaman landing Anda, [hubungi + dukungan](mailto:support@mintlify.com) dan kami dengan senang hati akan membantu + + +Setelah Anda memiliki URL staging, untuk kami misalnya adalah [mintlify-landing-page.vercel.app](https://mintlify-landing-page.vercel.app), buat Origin baru dan tambahkan sebagai **Domain asal**. + + + ![Cloudfront Default Origins](/images/cloudfront/default-origin.png) + + +Pada tahap ini, Anda seharusnya memiliki dua Origin - satu dengan `[SUBDOMAIN].mintlify.app` dan yang lainnya dengan URL staging. + +## Atur Perilaku + +Perilaku di Cloudfront memungkinkan kontrol atas logika subpath. Secara umum, kita ingin membuat logika berikut. + +* **Jika pengguna mengakses /docs**, pergi ke `[SUBDOMAIN].mintlify.dev` +* **Jika pengguna mengakses halaman lain**, pergi ke halaman landing saat ini + +Kita akan membuat tiga perilaku dengan mengklik tombol `Create behavior`. + +### `/docs/*` + +Perilaku pertama harus memiliki **Pola path** berupa `/docs/*` dengan **Origin dan grup origin** mengarah ke `.mintlify.dev` URL (dalam kasus kami `acme.mintlify.dev`) + +![Cloudfront Behavior 1](/images/cloudfront/behavior-1.png) + +Untuk **Kebijakan cache**, pilih `CachingOptimized` dan buat perilaku. + +### `/docs` + +Perilaku kedua harus sama dengan yang pertama tetapi dengan **Pola path** berupa `/docs` dan **Origin dan grup origin** mengarah ke `.mintlify.dev` URL yang sama. + +![Cloudfront Behavior 2](/images/cloudfront/behavior-2.png) + +### `Default (*)` + +Terakhir, kita akan mengedit perilaku `Default (*)`. + + + ![Cloudfront Behavior Default 1](/images/cloudfront/default-behavior-1.png) + + +Kita akan mengubah **Origin dan grup origin** perilaku default ke URL staging (dalam kasus kami `mintlify-landing-page.vercel.app`). + + + ![Cloudfront Behavior Default 2](/images/cloudfront/default-behavior-2.png) + + +Klik pada `Save changes`. + +## Pratinjau Distribusi + +Sekarang Anda dapat menguji apakah distribusi Anda telah diatur dengan benar dengan membuka tab `General` dan mengunjungi URL **Nama domain distribusi**. + + + ![Cloudfront Preview + distribution](/images/cloudfront/preview-distribution.png) + + +Semua halaman harus mengarah ke halaman utama Anda, tetapi jika Anda menambahkan`/docs` ke URL, Anda seharusnya melihatnya mengarah ke instance dokumentasi Mintlify. + +## Menghubungkannya dengan Route53 + +Sekarang, kita akan membawa fungsionalitas distribusi Cloudfront ke domain utama Anda. + + + Untuk bagian ini, Anda juga dapat merujuk ke panduan resmi AWS tentang[Mengkonfigurasi Amazon Route 53 untuk mengarahkan lalu lintas ke distribusi CloudFront](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html#routing-to-cloudfront-distribution-config) + + +Navigasi ke[Route53](https://aws.amazon.com/route53) di dalam konsol AWS, dan klik ke`Hosted zone` untuk domain utama Anda. Klik pada`Create record` + + + ![Route 53 create record](/images/cloudfront/route53-create-record.png) + + +Alihkan`Alias` dan kemudian**Arahkan lalu lintas ke** pilihan`Alias to CloudFront distribution`. + + + ![Route 53 create record alias](/images/cloudfront/create-record-alias.png) + + +Klik`Create records`. + + + Anda mungkin perlu menghapus catatan A yang ada jika saat ini ada. + + +Dan voila! Anda seharusnya dapat memiliki dokumentasi Anda yang disajikan di`/docs` untuk domain utama Anda. diff --git a/id/advanced/subpath/vercel.mdx b/id/advanced/subpath/vercel.mdx new file mode 100644 index 000000000..afc127c41 --- /dev/null +++ b/id/advanced/subpath/vercel.mdx @@ -0,0 +1,27 @@ +--- +title: Vercel +description: Host dokumentasi di subpath /docs menggunakan Vercel +--- + +## Konfigurasi vercel.json + +Untuk meng-host dokumentasi Anda di subpath kustom menggunakan Vercel, Anda perlu menambahkan konfigurasi berikut ke berkas `vercel.json` Anda. + +```json +{ + "rewrites": [ + { + "source": "/docs", + "destination": "https://[subdomain].mintlify.dev/docs" + }, + { + "source": "/docs/:match*", + "destination": "https://[subdomain].mintlify.dev/docs/:match*" + } + ] +} +``` + + + Untuk informasi lebih lanjut, Anda juga dapat merujuk ke panduan resmi Vercel tentang rewrites: [Konfigurasi Proyek: Rewrites](https://vercel.com/docs/projects/project-configuration#rewrites) + diff --git a/id/api-playground/mdx/authentication.mdx b/id/api-playground/mdx/authentication.mdx new file mode 100644 index 000000000..ec0d0a871 --- /dev/null +++ b/id/api-playground/mdx/authentication.mdx @@ -0,0 +1,87 @@ +--- +title: Authentication +description: Anda dapat mengatur parameter autentikasi agar pengguna dapat menggunakan kunci API mereka yang sebenarnya. +--- + +## Mengaktifkan Autentikasi + +Anda dapat menambahkan metode autentikasi ke docs.json untuk mengaktifkannya di setiap halaman atau Anda dapat mengaturnya berdasarkan halaman tertentu. + +Metode autentikasi halaman akan menggantikan docs.json jika keduanya diatur. + +### Token Bearer + + + ```json docs.json + "api": { + "mdx": { + "auth": { + "method": "bearer" + } + } + } + ``` + + ```md Page Metadata + --- + title: "Your page title" + authMethod: "bearer" + --- + ``` + + +### Autentikasi Dasar + + + ```json docs.json + "api": { + "mdx": { + "auth": { + "method": "basic" + } + } + } + ``` + + ```md Page Metadata + --- + title: "Your page title" + authMethod: "basic" + --- + ``` + + +### Kunci API + + + ```json docs.json + "api": { + "mdx": { + "auth": { + "method": "key", + "name": "x-api-key" + } + } + } + ``` + + ```md Page Metadata + --- + title: "Your page title" + authMethod: "key" + --- + ``` + + +### Tidak Ada + +Metode autentikasi "none" berguna untuk menonaktifkan autentikasi pada endpoint tertentu setelah mengatur default di docs.json. + + + ```md Page Metadata + --- + title: "Your page title" + authMethod: "none" + --- + ``` + diff --git a/id/api-playground/mdx/configuration.mdx b/id/api-playground/mdx/configuration.mdx new file mode 100644 index 000000000..115e21a0a --- /dev/null +++ b/id/api-playground/mdx/configuration.mdx @@ -0,0 +1,70 @@ +--- +title: MDX Setup +description: Menghasilkan halaman dokumentasi untuk endpoint API Anda menggunakan MDX +--- + +Mintlify memungkinkan Anda untuk mendefinisikan endpoint API Anda menggunakan kombinasi dari`docs.json` konfigurasi, bidang metadata MDX, dan komponen``. Dari endpoint yang didefinisikan, kami menghasilkan playground API, contoh permintaan, dan contoh respons. + + + + Dalam file`docs.json` Anda, definisikan URL dasar dan metode autentikasi: + + ```json + "api": { + "mdx": { + "server": "https://mintlify.com/api", // string array for multiple base URLs + "auth": { + "method": "key", + "name": "x-api-key" // options: bearer, basic, key. + } + } + } + ``` + + Jika Anda tidak ingin menampilkan playground API, Anda tidak perlu menyertakan tipe autentikasi. Sembunyikan playground dengan bidang berikut: + + ```json + "api": { + "playground": { + "display": "none" + } + } + ``` + + Temukan daftar lengkap konfigurasi API[di sini](/settings/global#param-api). + + + + Setiap halaman endpoint API harus memiliki file MDX yang sesuai. Di bagian atas setiap file, definisikan: + + ```md + --- + title: 'Create new user' + api: 'POST https://api.mintlify.com/user' + --- + ``` + + Anda dapat menentukan parameter path dengan menambahkan nama parameter ke path, dibungkus dengan`{}`: + + ```bash + https://api.example.com/v1/endpoint/{userId} + ``` + + + Jika Anda memiliki`server` dikonfigurasi di[docs.json](/settings/global), Anda dapat menggunakan path relatif seperti`/v1/endpoint`. + + + Anda juga dapat mengganti mode tampilan yang didefinisikan secara global untuk playground API per halaman dengan menambahkan`playground` di bagian atas file MDX: + + ```md + --- + title: 'Create new user' + api: 'POST https://api.mintlify.com/user' + playground: 'none' + ``` + + + + Tambahkan halaman endpoint Anda ke sidebar dengan menambahkan path ke`navigation` field di `docs.json`. Pelajari lebih lanjut tentang menyusun dokumen Anda [di sini](/settings/navigation). + + diff --git a/id/api-playground/openapi/advanced-features.mdx b/id/api-playground/openapi/advanced-features.mdx new file mode 100644 index 000000000..4e5450573 --- /dev/null +++ b/id/api-playground/openapi/advanced-features.mdx @@ -0,0 +1,139 @@ +--- +title: Fitur Lanjutan +description: Dukungan untuk fitur OpenAPI lanjutan +--- + +OpenAPI 3 memiliki beberapa fitur lanjutan untuk mendeskripsikan API yang kompleks. Berikut cara Anda dapat menggunakannya dengan Mintlify. + +## `oneOf`, `anyOf`, `allOf` + +Untuk tipe data kompleks, OpenAPI menyediakan kata kunci `oneOf`, `anyOf`, dan `allOf` yang memungkinkan Anda menggabungkan skema dengan cara tertentu. Anda dapat membaca lebih lanjut tentang kata kunci ini di [dokumentasi Swagger](https://swagger.io/docs/specification/data-models/oneof-anyof-allof-not/), tetapi intinya: + +* `oneOf` berfungsi seperti operator "exclusive-or" +* `anyOf` berfungsi seperti operator "or" +* `allOf` berfungsi seperti operator "and" + +Kata kunci `oneOf` dan `anyOf` diperlakukan sama. Kami menemukan bahwa ketika orang menggunakan `oneOf`, mereka sering *bermaksud* `anyOf` - dan seringkali tidak ada perbedaan yang berarti bagi pengguna. + +Kata kunci `not` saat ini tidak didukung. + +### Menggabungkan skema dengan `allOf` + +Mintlify melakukan beberapa pra-pemrosesan pada dokumen OpenAPI Anda untuk menampilkan kombinasi kompleks ini dengan cara yang mudah dibaca. Misalnya, ketika Anda menggabungkan dua skema objek dengan `allOf`, Mintlify menggabungkan properti keduanya menjadi satu objek. Ini menjadi sangat berguna ketika memanfaatkan [OpenAPI yang dapat digunakan kembali `components`](https://swagger.io/docs/specification/components/). + +```yaml +org_with_users: + allOf: + - $ref: '#/components/schemas/Org' + - type: object + properties: + users: + type: array + description: An array containing all users in the organization +... +components: + schemas: + Org: + type: object + properties: + id: + type: string + description: The ID of the organization +``` + + + + + ID dari organisasi + + + + Array yang berisi semua pengguna dalam organisasi + + + + +### Menyediakan opsi dengan `oneOf` dan `anyOf` + +Ketika Anda menggunakan `oneOf` atau `anyOf`, Mintlify menampilkan opsi dalam kontainer bertab. Untuk memberikan nama yang membantu pada opsi Anda, pastikan untuk memberikan setiap subskema bidang `title`. Misalnya, berikut cara Anda mungkin menampilkan dua jenis alamat pengiriman yang berbeda: + +```yaml +delivery_address: + oneOf: + - title: StreetAddress + type: object + properties: + address_line_1: + type: string + description: The street address of the recipient + ... + - title: POBox + type: object + properties: + box_number: + type: string + description: The number of the PO Box + ... +``` + + +
+ + + + Alamat jalan dari tempat tinggal + + + + + + Nomor PO Box + + + +
+
+ +## `x-codeSamples` + +Jika pengguna Anda berinteraksi dengan API menggunakan SDK daripada langsung melalui permintaan jaringan, Anda dapat menambahkan contoh kode ke dokumen OpenAPI Anda, dan Mintlify akan menampilkannya di halaman OpenAPI Anda. Anda dapat mendefinisikan contoh kode Anda menggunakan`x-codeSamples` ekstensi. Properti ini dapat ditambahkan dalam metode permintaan apa pun, dan memiliki skema berikut: + + + Bahasa dari contoh kode. + + + + Label untuk contoh. Ini berguna ketika menyediakan beberapa contoh untuk satu endpoint. + + + + Kode sumber dari contoh. + + +Berikut adalah contoh beberapa contoh kode untuk aplikasi pelacakan tanaman, yang memiliki alat CLI Bash dan SDK JavaScript. + +```yaml +paths: + /plants: + get: + ... + x-codeSamples: + - lang: bash + label: List all unwatered plants + source: | + planter list -u + - lang: javascript + label: List all unwatered plants + source: | + const planter = require('planter'); + planter.list({ unwatered: true }); + - lang: bash + label: List all potted plants + source: | + planter list -p + - lang: javascript + label: List all potted plants + source: | + const planter = require('planter'); + planter.list({ potted: true }); +``` diff --git a/id/api-playground/openapi/setup.mdx b/id/api-playground/openapi/setup.mdx new file mode 100644 index 000000000..07ba21b84 --- /dev/null +++ b/id/api-playground/openapi/setup.mdx @@ -0,0 +1,148 @@ +--- +title: Pengaturan OpenAPI +description: Referensikan endpoint OpenAPI di halaman dokumen Anda +--- + +## Tambahkan file spesifikasi OpenAPI + +Untuk mendeskripsikan endpoint Anda dengan OpenAPI, pastikan Anda memiliki dokumen OpenAPI yang valid dalam format JSON atau YAML yang mengikuti[spesifikasi OpenAPI](https://swagger.io/specification/). Dokumen Anda harus +mengikuti spesifikasi OpenAPI 3.0+. +Untuk memvalidasi spesifikasi OpenAPI Anda, gunakan [CLI](https://www.npmjs.com/package/mintlify) kami dan jalankan perintah ini:
`mintlify openapi-check `
+ +## Isi otomatis halaman API + +Cara tercepat untuk memulai dengan OpenAPI adalah menambahkan bidang `openapi` ke tab dalam `docs.json`. Bidang ini dapat berisi path ke dokumen OpenAPI dalam repo dokumen Anda, atau URL dari dokumen OpenAPI yang dihosting. Mintlify akan secara otomatis menghasilkan halaman untuk setiap operasi OpenAPI dan menempatkannya dalam tab. + +**Contoh dengan Tab:** + +```json {5} +"navigation": { + "tabs": [ + { + "tab": "API Reference", + "openapi": "https://petstore3.swagger.io/api/v3/openapi.json" + } + ] +} +``` + +![](/images/autogeneration-with-tabs.png) + +**Contoh dengan Grup:** + +```json {8-11} +"navigation": { + "tabs": [ + { + "tab": "API Reference", + "groups": [ + { + "group": "Endpoints", + "openapi": { + "source": "/path/to/openapi-1.json", + "directory": "api-reference" + } + } + ] + } + ] +} +``` + +Bidang direktori bersifat opsional. Jika tidak ditentukan, file akan ditempatkan di **api-reference** folder dari repo docs. + +Saat menggunakan opsi ini, metadata untuk halaman yang dihasilkan akan memiliki nilai default berikut: + +* `title`: Bidang `summary` dari operasi OpenAPI, jika ada. Jika tidak, judul yang dihasilkan dari metode HTTP dan endpoint. + +* `description`: Bidang `description` dari operasi OpenAPI, jika ada. + +* `version`: Nilai `version` dari anchor atau tab, jika ada. + +Ada beberapa skenario di mana perilaku default tidak mencukupi. Jika Anda membutuhkan lebih banyak kustomisasi, Anda dapat membuat halaman MDX untuk operasi OpenAPI Anda, dan memodifikasinya seperti halaman MDX lainnya. + +## Membuat file MDX untuk halaman API + +Jika Anda ingin menyesuaikan metadata halaman, menambahkan konten tambahan, menghilangkan operasi OpenAPI tertentu, atau mengatur ulang halaman OpenAPI dalam navigasi Anda, Anda akan memerlukan halaman MDX untuk setiap operasi. Berikut adalah [contoh halaman OpenAPI MDX](https://github.com/mindsdb/mindsdb/blob/main/docs/rest/databases/create-databases.mdx) dari [MindsDB](https://docs.mindsdb.com/rest/databases/create-databases). + +![](/images/mindsdb.png) + +### Menentukan file secara manual + +Anda selalu dapat membuat halaman MDX secara manual, dan mereferensikan operasi OpenAPI dalam metadata halaman menggunakan bidang `openapi`. + + + +Dengan menggunakan referensi OpenAPI, nama, deskripsi, parameter, respons, dan playground API akan secara otomatis dihasilkan dari dokumen OpenAPI. + +Jika Anda memiliki beberapa file OpenAPI, sertakan path ke file OpenAPI untuk memastikan Mintlify menemukan dokumen OpenAPI yang benar. Ini tidak diperlukan jika Anda hanya memiliki satu file OpenAPI - itu akan secara otomatis mendeteksi file OpenAPI Anda. + +Jika Anda ingin mereferensikan file OpenAPI eksternal menggunakan metode ini, berikan URL file dalam docs.json. Lihat [di sini](https://mintlify.com/docs/settings/global#param-source-4) untuk format yang benar. + + + ```md Example + --- + title: "Get users" + openapi: "/path/to/openapi-1.json GET /users" + --- + ``` + + ```md Format + --- + title: "title of the page" + openapi: openapi-file-path method path + --- + ``` + + + + Dalam kebanyakan kasus, metode dan path harus cocok persis dengan metode dan path yang ditentukan dalam dokumen OpenAPI. Jika endpoint tidak ada dalam file OpenAPI, halaman akan kosong. + + Untuk webhook, ganti metode (misalnya "POST") dengan "webhook" (tidak case sensitive) dan metode yang benar akan dihasilkan. + + +### Menghasilkan file secara otomatis + +Untuk dokumen OpenAPI yang besar, membuat satu halaman MDX untuk setiap operasi OpenAPI bisa memakan banyak waktu. Untuk memudahkan, kami membuat scraper halaman OpenAPI lokal. + +Mintlify kami [scraper](https://www.npmjs.com/package/@mintlify/scraping) +menghasilkan file MDX secara otomatis untuk endpoint OpenAPI Anda. + +Setiap halaman yang dihasilkan akan sesuai dengan operasi OpenAPI di bawah bagian "paths" dari skema OpenAPI. Jika dokumen OpenAPI Anda versi 3.1+, scraper juga akan menghasilkan halaman untuk webhook di bawah bagian "webhooks" dari skema OpenAPI. + +```bash +npx @mintlify/scraping@latest openapi-file +``` + +Tambahkan `-o` flag untuk menentukan folder untuk mengisi file. Jika folder tidak ditentukan, file akan diisi di direktori kerja. + +```bash +npx @mintlify/scraping@latest openapi-file -o api-reference +``` + +Pelajari lebih lanjut tentang paket scraping kami [di sini](https://www.npmjs.com/package/@mintlify/scraping). + +Scraper akan menghasilkan array dari +[Entri Navigasi](/settings/global#structure) yang berisi file OpenAPI MDX Anda. Anda dapat menambahkan entri ini ke Navigasi yang ada, atau mengatur ulang dan menambahkan file ke navigasi Anda secara manual. + + + Jika dokumen OpenAPI Anda tidak valid, file tidak akan dihasilkan secara otomatis. + + +## Membuat file MDX untuk skema OpenAPI + +Mintlify juga memungkinkan Anda untuk membuat halaman individual untuk setiap skema OpenAPI yang didefinisikan dalam bidang `components.schemas` dokumen OpenAPI: + + + ```md Example + --- + openapi-schema: OrderItem + --- + ``` + + ```md Format + --- + openapi-schema: "schema-key" + --- + ``` + diff --git a/id/api-playground/openapi/writing-openapi.mdx b/id/api-playground/openapi/writing-openapi.mdx new file mode 100644 index 000000000..4a0173977 --- /dev/null +++ b/id/api-playground/openapi/writing-openapi.mdx @@ -0,0 +1,33 @@ +--- +title: Menulis OpenAPI +description: Gunakan fitur OpenAPI untuk meningkatkan dokumentasi Anda +--- + +## Mendeskripsikan API Anda + +Ada banyak alat bagus online untuk mempelajari dan membuat dokumen OpenAPI. Berikut adalah favorit kami: + +* [Panduan OpenAPI Swagger](https://swagger.io/docs/specification/about/) untuk membiasakan diri dengan sintaks OpenAPI +* [Spesifikasi OpenAPI v3.1.0](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md) untuk semua detail tentang spesifikasi OpenAPI terbaru +* [Validator Swagger & OpenAPI](https://editor.swagger.io/) untuk debug dokumen OpenAPI Anda +* [Editor Swagger](https://editor.swagger.io/) untuk melihat contoh dalam aksi + + + Panduan OpenAPI Swagger adalah untuk OpenAPI v3.0, tetapi hampir semua informasi berlaku untuk v3.1. Untuk informasi lebih lanjut tentang perbedaan antara v3.0 dan v3.1, lihat [postingan blog OpenAPI](https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0). + + +## Menentukan URL untuk API Anda + +Dalam dokumen OpenAPI, endpoint API yang berbeda ditentukan oleh jalurnya, seperti `/users/{id}`, atau mungkin hanya `/`. Untuk menentukan URL dasar tempat jalur ini harus ditambahkan, OpenAPI menyediakan bidang `servers`. Bidang ini diperlukan untuk menggunakan beberapa fitur Mintlify seperti API Playground. Baca cara mengkonfigurasi bidang `servers` di [dokumentasi Swagger](https://swagger.io/docs/specification/api-host-and-base-path/). + +API Playground akan menggunakan URL server ini untuk menentukan ke mana mengirim permintaan. Jika beberapa server ditentukan, dropdown akan muncul untuk memungkinkan beralih antar server. Jika tidak ada server yang disediakan, API Playground akan menggunakan mode sederhana, karena tidak ada cara untuk mengirim permintaan. + +Jika endpoint berbeda dalam API Anda ada di URL yang berbeda, Anda dapat [mengganti bidang server](https://swagger.io/docs/specification/api-host-and-base-path/#:~:text=%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%2D%20southeastasia-,Overriding%20Servers,-The%20global%20servers) untuk path atau operasi tertentu. + +## Menentukan autentikasi + +Hampir semua API memerlukan beberapa metode autentikasi. OpenAPI menyediakan `securitySchemes` bidang untuk mendefinisikan metode autentikasi yang digunakan di seluruh API Anda, dengan konfigurasi sederhana untuk jenis autentikasi yang paling umum - [Basic](https://swagger.io/docs/specification/authentication/basic-authentication/), [Bearer](https://swagger.io/docs/specification/authentication/bearer-authentication/), dan [API Keys](https://swagger.io/docs/specification/authentication/api-keys/). Untuk menerapkan metode autentikasi ini ke endpoint Anda, OpenAPI menggunakan `security` bidang. Sintaks untuk mendefinisikan dan menerapkan autentikasi agak tidak intuitif, jadi pastikan untuk memeriksa [dokumentasi dan contoh Swagger](https://swagger.io/docs/specification/authentication/) tentang topik ini. + +Deskripsi API dan API Playground akan menambahkan bidang autentikasi berdasarkan konfigurasi keamanan dalam dokumen OpenAPI Anda. + +Jika endpoint yang berbeda dalam API Anda memerlukan metode autentikasi yang berbeda, Anda dapat [mengganti bidang keamanan](https://swagger.io/docs/specification/authentication/#:~:text=you%20can%20apply%20them%20to%20the%20whole%20API%20or%20individual%20operations%20by%20adding%20the%20security%20section%20on%20the%20root%20level%20or%20operation%20level%2C%20respectively.) untuk operasi tertentu. diff --git a/id/api-playground/overview.mdx b/id/api-playground/overview.mdx new file mode 100644 index 000000000..869711c9e --- /dev/null +++ b/id/api-playground/overview.mdx @@ -0,0 +1,13 @@ +--- +title: Playground +description: Memungkinkan pengguna untuk berinteraksi dengan API Anda +openapi: POST /project/update/{projectId} +hideApiMarker: true +icon: play +--- + +API playground adalah lingkungan interaktif untuk membuat permintaan dan mempratinjau endpoint API. + + + Pembuatan halaman API secara otomatis dengan OpenAPI akan secara otomatis menghasilkan API playground. Baca lebih lanjut tentang penggunaan OpenAPI[di sini](/api-playground/openapi). + diff --git a/id/api-playground/troubleshooting.mdx b/id/api-playground/troubleshooting.mdx new file mode 100644 index 000000000..33c83427e --- /dev/null +++ b/id/api-playground/troubleshooting.mdx @@ -0,0 +1,72 @@ +--- +title: Pemecahan Masalah +description: Masalah umum dengan Referensi API +icon: triangle-exclamation +--- + +Halaman API itu rumit. Akibatnya, ada banyak hal yang bisa salah. +Berikut adalah daftar masalah umum yang sering kami lihat dialami pelanggan: + + + + Dalam skenario ini, kemungkinan Mintlify tidak dapat menemukan dokumen OpenAPI Anda, + atau dokumen OpenAPI Anda tidak valid. + + Menjalankan `mintlify dev` secara lokal seharusnya mengungkapkan beberapa masalah ini. + + Untuk memverifikasi dokumen OpenAPI Anda akan lulus validasi: + + 1. Kunjungi [validator ini](https://editor.swagger.io/) + 2. Beralih ke tab "Validate text" + 3. Tempel dokumen OpenAPI Anda + 4. Klik "Validate it!" + + Jika kotak teks yang muncul di bawah memiliki batas hijau, dokumen Anda telah lulus validasi. + Ini adalah paket validasi yang sama persis yang digunakan Mintlify untuk memvalidasi dokumen OpenAPI, jadi jika dokumen Anda + lulus validasi di sini, ada kemungkinan besar masalahnya ada di tempat lain. + + Selain itu, Mintlify tidak mendukung OpenAPI 2.0. Jika dokumen Anda menggunakan versi spesifikasi ini, + Anda mungkin mengalami masalah ini. Anda dapat mengkonversi dokumen Anda di [editor.swagger.io](https://editor.swagger.io/) (di bawah Edit > Convert to OpenAPI 3): + + + + + + + + Ini biasanya disebabkan oleh kesalahan penulisan`openapi` field dalam metadata halaman. Pastikan metode HTTP dan path cocok persis dengan metode HTTP dan path dalam dokumen OpenAPI. + + Berikut contoh bagaimana sesuatu bisa salah: + + ```md get-user.mdx + --- + openapi: "GET /users/{id}/" + --- + ``` + + ```yaml openapi.yaml + paths: + "/users/{id}": + get: ... + ``` + + Perhatikan bahwa path di`openapi` field memiliki garis miring di akhir, sedangkan path di dokumen OpenAPI tidak. + + Masalah umum lainnya adalah kesalahan penulisan nama file. Jika Anda menentukan dokumen OpenAPI tertentu di`openapi` field, pastikan nama filenya benar. Misalnya, jika Anda memiliki dua dokumen OpenAPI`openapi/v1.json` dan`openapi/v2.json`, metadata Anda mungkin terlihat seperti ini: + + ```md api-reference/v1/users/get-user.mdx + --- + openapi: "v1 GET /users/{id}" + --- + ``` + + + + Jika Anda memiliki domain kustom yang dikonfigurasi, ini bisa jadi masalah dengan reverse proxy Anda. Secara default, permintaan yang dibuat melalui API Playground dimulai dengan permintaan`POST` ke path + `/api/request` pada situs dokumentasi. Jika reverse proxy Anda dikonfigurasi untuk hanya mengizinkan`GET` + permintaan, maka semua permintaan ini akan gagal. Untuk memperbaikinya, konfigurasikan reverse proxy Anda untuk mengizinkan`POST` permintaan ke`/api/request` path. + + Atau, jika reverse proxy Anda mencegah Anda menerima`POST` permintaan, Anda dapat mengonfigurasi Mintlify untuk mengirim permintaan langsung ke backend Anda dengan`api.playground.disableProxy` + pengaturan di`docs.json`, seperti dijelaskan[di sini](/settings/global#api-configurations). Ini mungkin mengharuskan Anda mengonfigurasi CORS di server Anda, karena permintaan ini sekarang akan datang langsung dari browser pengguna Anda. + + diff --git a/id/changelog/overview.mdx b/id/changelog/overview.mdx new file mode 100644 index 000000000..ec355b265 --- /dev/null +++ b/id/changelog/overview.mdx @@ -0,0 +1,392 @@ +--- +title: Pembaruan Produk +description: Pembaruan dan peningkatan baru +mode: center +--- + + + ## Generator server MCP + + Menghasilkan server MCP sehingga aplikasi AI dapat berinteraksi dengan dokumentasi atau API Anda. Konten tertulis secara otomatis dihasilkan sebagai server MCP, dan Anda dapat menghasilkan server MCP dari spesifikasi OpenAPI Anda dengan satu klik. + Lihat [dokumentasi tentang memulai dengan MCP.](/advanced/mcp/quickstart.mdx) + + ## mcpt: registri untuk server MCP + + Temukan 105+ server MCP di [mcpt](https://www.mcpt.com). Direktori ini mencakup server resmi dan server dari basis pelanggan kami sendiri. + + ## Peningkatan + + * Tag pembaruan changelog sehingga pengguna akhir dapat memfilter pembaruan + * Sonnet-3.7 didukung untuk AI Chat. Konfigurasikan model pilihan Anda melalui dasbor + * Ubah nama deployment Anda langsung di pengaturan dasbor + + ## Perbaikan bug + + * Gambar OG diperbaiki + * Memperbaiki inkonsistensi gaya ikon untuk jangkar tanpa kontainer + * Meningkatkan detail gaya batas dasbor untuk responsivitas mobile-tablet-desktop + * Menampilkan contoh kode bahkan dalam mode sederhana untuk API playground + * Mendukung pintasan "command + k" untuk pencarian di editor web + * Blok kode dalam callout memperluas untuk mengisi lebar area callout + + + + ## Skema Konfigurasi Baru`docs.json` + + Kami telah memperkenalkan `docs.json` skema sebagai pengganti `mint.json`, untuk mendukung versi multi-level yang lebih baik, pemahaman visual yang lebih mudah, dan terminologi yang lebih konsisten. Untuk informasi lebih lanjut tentang apa yang berubah, [lihat blog kami](https://mintlify.com/blog/refactoring-mint-json-into-docs-json). + + Upgrade dari `mint.json` ke `docs.json` dengan langkah-langkah berikut: + + 1. Pastikan CLI Anda adalah versi terbaru + + ``` + npm i mintlify@latest -g + ``` + + 1. Di repositori docs Anda, jalankan + + ``` + mintlify upgrade + ``` + + 1. Hapus file mint.json lama Anda dan push perubahan Anda + + ## Pemeriksaan CI + + Secara otomatis periksa docs Anda untuk menemukan tautan yang rusak, menemukan masalah ejaan dan tata bahasa, atau menerapkan gaya penulisan dengan konfigurasi Vale Anda sendiri. Pelajari lebih lanjut di [dokumentasi](settings/ci). + + ## Dukungan .md untuk LLM + + Semua halaman dokumentasi sekarang secara otomatis tersedia sebagai file Markdown biasa—cukup tambahkan `.md` ke URL. Ini memudahkan LLM untuk mengambil halaman individual dari dokumentasi Anda. + + ## Tema Tambahan + + Tema [pra-bangun](/themes) baru untuk memodifikasi tampilan & nuansa docs Anda. Konfigurasikan melalui [file docs.json](/settings/global). + + Sekarang tersedia: + + * Maple + * Palm + * Willow + + ## Peningkatan lainnya + + * [Panduan Penulisan Teknis:](https://mintlify.com/guides/introduction)Praktik terbaik untuk menulis dokumentasi teknis, termasuk riset audiens, jenis konten, dan tips penulisan. + * [Komponen dropdown](/navigation/divisions#dropdowns): Mengatur navigasi dengan dropdown, selain tab dan jangkar. + * [Perbaikan sintaks AI](https://x.com/ricardonunez_io/status/1892334887644123192): Editor web akan menangkap jika ada kesalahan parsing dan menggunakan AI untuk menyarankan perbaikan. + + + + ## Peningkatan Asisten AI + + * UI baru dengan halaman chat khusus & prompt yang telah diisi + * Peningkatan stabilitas, misalnya perbaikan bug pengeditan file yang salah atau tidak ada file sama sekali + * Pengetahuan yang lebih kuat untuk menambah & mengedit komponen + * Peningkatan pengeditan file mint.json + + ## Autentikasi Parsial + + Sesuaikan akses ke setiap halaman atau bagian konten tergantung pada izin pengguna. Mendukung koneksi dengan sistem autentikasi Anda sendiri. + + ## API Playground yang Diperbarui + + Kami telah memperbarui desain dan kinerja [API Playground](/api-playground/). Pembaruan meliputi: + + * Ekspansi detail yang lebih mudah untuk gambaran umum sebuah field + * Desain bersarang yang lebih intuitif, misalnya menambah atau menghapus item + * Waktu respons yang lebih cepat + + ## Peningkatan Kualitas + + * Dukungan untuk memerlukan autentikasi untuk mengakses deployment preview + + + + ## Autentikasi + + + ![Authentication screenshot](/images/changelog/authentication.png) + + + Buat dokumentasi menjadi privat dengan mengatur autentikasi melalui JWT, OAuth, atau kata sandi universal. Dengan privasi ini, Anda dapat membuat basis pengetahuan internal atau mencegah pesaing melihat dokumentasi Anda. + + + + ## Asisten AI + + + ![AI Assistant](/images/changelog/ai-assistant.jpg) + + + Sekarang Anda dapat meminta AI untuk membuat perubahan pada dokumentasi Anda, dengan konteks dari semua dokumentasi yang ada. Ketik prompt dan asisten akan mengusulkan perubahan dengan menghasilkan pull request. + + ## Peningkatan Integrasi GitLab + + Kami telah meningkatkan dukungan kami untuk sinkronisasi dengan GitLab, seperti mengaktifkan pembaruan otomatis dan deployment preview. Lihat [dokumentasi tentang GitLab](/settings/gitlab) untuk memulai. + + ## Editor Web + + + ![Web Editor](/images/changelog/webeditor.jpg) + + + Kami telah memperbarui editor web kami sehingga sekarang Anda dapat memperbarui dokumentasi dengan pengalaman WYSIWYG lengkap, sambil tetap sinkron dengan markdown. + + Lihat [dokumentasi tentang memulai dengan Editor Web](/web-editor). + + ## Dukungan /llms.txt + + + ![llms.txt support](/images/changelog/llms.jpg) + + + Semua instansi dokumentasi sekarang secara otomatis di-host di /llms.txt dan /llms-full.txt sehingga LLM dapat dengan mudah mengambil dokumentasi Anda. Untuk informasi lebih lanjut, baca [dokumentasi tentang standar llms.txt yang baru](https://llmstxt.org) + + ## Lokalisasi + + Sekarang Anda dapat melokalisasi dokumentasi Anda yang beroperasi mirip dengan versi. Tambahkan `locale` ke versi dan konten tetap di Mintlify seperti "Apakah halaman ini membantu?" juga akan sesuai dengan lokal. + + ### Peningkatan Kualitas + + * Mengembalikan hasil obrolan & pencarian berdasarkan versi yang sedang dibaca pengguna + * Mengautentikasi pengguna dengan OAuth, selain JWT atau token Shared Session. + + + + ## Changelog + + Meluncurkan [Komponen Update](/content/components/update) untuk mempermudah menampilkan dan melaporkan pembaruan (seperti ini) kepada pengguna Anda. + + + ![Changelog](/images/changelog/changelog.jpg) + + + ## Penyorotan Baris Kode + + Sekarang Anda dapat menyorot baris kode dalam dokumentasi Anda untuk menekankan dan menarik perhatian ke bagian penting dengan menambahkan komentar khusus setelah pengidentifikasi bahasa. Gunakan kurung kurawal `{}` dan tentukan nomor baris atau rentang yang dipisahkan dengan koma. + + ```javascript Line Highlighting Example {1,3-5} + const greeting = "Hello, World!"; + function sayHello() { + console.log(greeting); + } + sayHello(); + ``` + + ````md + ```javascript Line Highlighting Example {1,3-5} + const greeting = "Hello, World!"; + function sayHello() { + console.log(greeting); + } + sayHello(); + ``` + ```` + + ## Blok kode mode terang + + Blok kode sekarang memiliki varian mode terang yang dapat diaktifkan dengan menambahkan berikut ke `mint.json`: + + ```json + "codeBlock": { + "mode": "auto" + } + ``` + + ## Footer Lanjutan + + + ![Advanced Footer](/images/changelog/advanced-footer.gif) + + + Sekarang Anda dapat menambahkan lebih banyak tautan ke footer standar. Peningkatan ini memberikan konsistensi yang lebih baik antara halaman landing dan dokumentasi, atau kustomisasi yang lebih besar jika Anda ingin menyoroti halaman tertentu seperti sosial media atau log status. + + ## Filter pencarian berdasarkan pengguna saat ini + + Ketika personalisasi diaktifkan, hasil pencarian sekarang difilter berdasarkan pengguna yang sedang login sehingga mereka hanya melihat konten yang relevan. + + ## Prompt Kustom untuk AI Chat + + Sekarang Anda dapat menyesuaikan prompt untuk AI chat. Silakan hubungi [dukungan](mailto:sales@mintlify.com) jika Anda ingin menyesuaikan prompt. + + ## Peningkatan Dashboard + + * Menambahkan kemampuan untuk mengubah domain kustom menjadi /docs langsung melalui pengaturan dashboard. + * Menggabungkan halaman login dan signup untuk mengurangi friksi dan kebingungan. + * Mengimplementasikan alur login discovery sehingga pengguna yang menjadi anggota beberapa organisasi sekarang dapat beralih di antara mereka. + * Menambahkan login dengan Google OAuth + * Menambahkan kemampuan untuk menambah deployment baru melalui pengaturan dashboard. + + ## Perbaikan Bug + + * Sekarang dapat menggunakan garis miring di awal dalam navigasi. + * Sekarang dapat mengedit file CSS & JS di editor web. + * Memperbaiki `suggestEdit` yang tidak muncul meskipun diaktifkan. + * Memperbaiki navigasi keyboard untuk Pencarian dan Chat sehingga sekarang Anda dapat menggunakan tombol panah atas dan bawah untuk menavigasi hasil. + * Tidak mengizinkan mesin pencari untuk merayapi halaman yang dilindungi user-auth. + * Memvalidasi ulang cache ketika organisasi dihapus. + * Kami sekarang menggunakan parser OpenAPI Scalar untuk mengurai definisi OpenAPI yang meningkatkan kinerja, memperbaiki masalah penguraian, dan menampilkan pesan kesalahan yang lebih baik. + * Deskripsi tingkat atas sekarang didukung dalam halaman referensi API yang dibuat secara otomatis dari definisi OpenAPI. + * Menambahkan dukungan gaya in-line untuk ikon + * Memperbaiki pop-in dari CSS kustom di dokumentasi. + * Menampilkan gaya kode inline dengan benar bersama dengan tautan. + * Mempertahankan posisi scroll saat Anda mengklik tombol kembali di browser. + + + + ## Font Kustom + + + ![Custom Fonts](/images/changelog/custom-fonts.jpeg) + + + Personalisasi font dokumentasi Anda dengan font Anda sendiri yang dihosting di CDN atau dengan memilih dari Google fonts untuk mencocokkan dokumentasi dengan brand Anda. + + ## Gambar dalam komponen Card + + Tambahkan `img` properti ke card untuk menampilkan gambar di bagian atas card. Pelajari lebih lanjut tentang ini [di sini](/content/components/cards#image-card). + + ## Pembaruan Kinerja Kecepatan + + + ![Performance Improvements](/images/changelog/performance-improvements.png) + + + Untuk proyek besar (\~3.000 file), langkah pengunduhan untuk pembaruan dokumentasi sekarang \~440x lebih cepat - pengurangan waktu 99,8%. Secara keseluruhan, pengunduhan file selama pembaruan sekarang \~5,5x lebih cepat - pengurangan waktu 81,8%. + + ## Peningkatan SEO + + + ![SEO Improvements](/images/changelog/seo-improvements.jpeg) + + + Kami telah memperbaiki tata letak dokumentasi kami baik untuk mobile maupun desktop agar lebih ramah SEO - termasuk menambahkan tag aria yang tepat ke elemen navbar dan toggle. + + ## Peningkatan Dashboard + + * Migrasi router aplikasi di dashboard. + * Analitik pencarian sekarang tersedia di dashboard. + * Fungsi hapus organisasi telah ditambahkan ke dashboard. + * Meluncurkan UI koneksi GitLab. + * Memperbaiki data analitik yang tidak tepat. + * Add-on sekarang dapat dibeli langsung melalui dashboard. + + ## Perbaikan Bug + + * Memperbaiki bug di mana bar atas tidak akan meregang ke lebar layar ketika dalam mode kustom dan tata letak sidebar adalah `sidenav`. + * Memperbaiki posisi relatif widget AI. + + ## Lainnya + + * **Pemecahan masalah untuk halaman API**: Halaman API bisa rumit jadi kami mencantumkan masalah umum untuk membantu Anda menyelesaikannya dengan cepat —[Baca dokumentasi](/api-playground/troubleshooting) + + + + ## Halaman Referensi OpenAPI + + * Endpoint yang didefinisikan oleh OpenAPI yang kompleks dan rekursif sekarang 98% lebih kecil. + * Kami sekarang menampilkan[additionalProperties](https://swagger.io/docs/specification/data-models/dictionaries/)di halaman OpenAPI. + + ## Unggah File di API Playground + + Secara default, permintaan API playground diproxy oleh Mintlify. Sekarang Anda dapat menggunakan`disableProxy` untuk menonaktifkan perilaku ini dan mendukung jenis permintaan seperti unggahan file. + + * [Pelajari lebih lanjut tentang konfigurasi API](/settings/global#api-configurations) + + ## Peningkatan SEO Mobile + + Kami telah memperbaiki tata letak mobile dari dokumentasi kami agar lebih ramah SEO - termasuk menambahkan tag aria yang tepat ke elemen. + + ## Formulir Dukungan + + Kami menambahkan formulir dukungan yang lebih detail ke dashboard Mintlify. Anda sekarang dapat mengirimkan formulir untuk menghubungi kami. + + ## Perbaikan Bug + + * Memperbaiki bug untuk fungsi integrasi Segment. + * Kami sekarang menampilkan pesan kesalahan yang lebih rinci untuk izin GitHub saat berinteraksi dengan editor. + * Memperbaiki bug di mana navigasi tidak akan memperluas dengan benar ketika tautan langsung digunakan. + + + + ## Widget AI + + + ![AI Widget](/images/changelog/widget.png) + + + Untuk `Pro` pengguna, kami memperkenalkan Mintlify Widget, sebuah ekstensi dari dokumentasi Anda untuk menjawab pertanyaan pengguna Anda kapan dan di mana mereka bertanya. Anda dapat menambahkan chatbot bertenaga AI ini ke halaman web mana pun: halaman landing Anda, di dalam produk Anda, atau di halaman dokumentasi Anda yang ada. + + * [Baca pengumuman blog](https://mintlify.com/blog/widget) + + ## Paket Pro + + Kami juga memperbarui paket harga kami untuk kustomisasi dan skala yang lebih baik. + + * [Baca pengumuman blog](https://mintlify.com/blog/pro-plan) + + ## Sinkronisasi Contoh Kode API Playground + + Saat Anda menjelajahi dokumentasi API, contoh kode yang dipilih sekarang tersinkronisasi di seluruh halaman Anda. + + ## Wawasan + + Saat ini dalam beta, fitur ini merangkum pertanyaan dan pola umum pengguna menjadi laporan yang mudah dicerna dengan saran bertenaga AI tentang cara meningkatkan produk Anda. + + + + ## Sorotan Minggu Peluncuran + + * Tema: Sesuaikan gaya Anda dengan tema yang telah dikonfigurasi sebelumnya. Cukup tambahkan tema Quill, Prism, atau Venus ke file `mint.json` Anda dan itu akan memperbarui gaya dokumentasi Anda. + * Pencarian V2: langsung kueri deskripsi endpoint OpenAPI dan judul untuk mencapai halaman Referensi API, hapus halaman tersembunyi dari pencarian, dan nikmati UI searchbar kami yang diperbarui. + * Percabangan Editor Web: buat cabang di editor web kami tanpa IDE. + * Personalisasi Pengguna: autentikasi pengguna dengan Shared Session atau JWT sehingga Anda dapat menampilkan konten yang disesuaikan, seperti pra-mengisi kunci API atau menampilkan konten spesifik untuk pelanggan. + * Peningkatan Otomatisasi OpenAPI: untuk mengisi otomatis halaman API Playground, Anda dapat menambahkan`openapi` bidang ke objek dalam array tabs atau anchors di mint.json. + + + + ## Okta SSO + + Kami sekarang mendukung sign-on melalui Okta SAML dan OIDC. + + ## Mintlify REST API + + Secara programatik memicu pembaruan ke dokumentasi Anda. + + + + ## Mode kustom + + Tambahkan konfigurasi ke metadata untuk menghapus semua elemen kecuali bar atas. + Contoh penggunaan: + + * Buat pengaturan halaman landing global kustom dengan komponen kustom + * Tambahkan video layar penuh atau galeri gambar + * Sematkan elemen demo iFrame kustom untuk menambahkan interaktivitas ke dokumentasi Anda + + Lihat[dokumentasi Mode Kustom](/page#custom-mode). + + + + ## Mintlify MDX untuk VSCode + + Panggil cuplikan komponen dan callout pra-bangun kami tanpa meninggalkan VSCode.[Instal ekstensinya di sini](https://marketplace.visualstudio.com/items?itemName=mintlify.mintlify-snippets). + + + + ## Peningkatan Kualitas + + * Peningkatan Dashboard: lihat log pembaruan untuk melihat apa yang berubah dan status pembaruan, beralih antara proyek Mintlify untuk mengelola deployment + * Versi dengan tab sepenuhnya didukung + * Pengalihan wildcard sekarang didukung + * Deteksi Error CLI: kami sekarang menunjukkan posisi frontmatter yang tidak valid ketika ada masalah parsing selama pengembangan lokal + + + + ## Sorotan Minggu Peluncuran + + * Preview Deployment: Ketika Anda membuat pull request, kami akan menghasilkan tautan unik yang menunjukkan preview langsung tentang bagaimana dokumentasi Anda terlihat di prod. Anda dapat membagikan tautan ini dengan rekan tim. + * Snippets V2: Kami sekarang mendukung komponen yang dapat digunakan kembali sepenuhnya dan variabel untuk snippets. + * Mesin MDX Open-source: Kami telah mengekspos dua API—getCompiledMdx dan MDXComponent—sehingga Anda dapat mengakses markdown Mintlify dan penyorotan sintaks kode.[Kontribusi untuk proyek](https://github.com/mintlify/mdx) sangat dipersilakan. + * Wawasan AI Chat: Segmentasi riwayat chat berdasarkan tanggal dan tingkatkan kuota AI Chat dari dashboard, dan lihat seberapa sering query tertentu muncul. + diff --git a/id/code.mdx b/id/code.mdx new file mode 100644 index 000000000..f87be7b79 --- /dev/null +++ b/id/code.mdx @@ -0,0 +1,39 @@ +--- +title: Blok Kode +description: Menampilkan kode inline dan blok kode +icon: code +--- + +## Dasar + +### Kode Inline + +Untuk menandai `word` atau `phrase` sebagai kode, apit dengan tanda kutip balik (\`). + +``` +To denote a `word` or `phrase` as code, enclose it in backticks (`). +``` + +### Blok Kode + +Gunakan [blok kode yang dibatasi](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) dengan mengapit kode dalam tiga tanda kutip balik dan ikuti tanda kutip awal dengan bahasa pemrograman dari potongan kode Anda untuk mendapatkan penyorotan sintaks. Secara opsional, Anda juga dapat menulis nama kode Anda setelah bahasa pemrograman. + +```java HelloWorld.java +class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` + +````md +```java HelloWorld.java +class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` +```` + +Kunjungi [halaman Code Block](/content/components/code) untuk dokumentasi lebih detail. diff --git a/id/content/components/accordion-groups.mdx b/id/content/components/accordion-groups.mdx new file mode 100644 index 000000000..cf2e3f836 --- /dev/null +++ b/id/content/components/accordion-groups.mdx @@ -0,0 +1,58 @@ +--- +title: Grup Akordeon +description: Mengelompokkan beberapa akordeon dalam satu tampilan. +icon: table-rows +--- + +Cukup tambahkan``di sekitar komponen``yang ada. + + + + Anda dapat menempatkan komponen lain di dalam Akordeon. + + ```java HelloWorld.java + class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } + } + ``` + + + + Lihat dokumentasi[Accordion](/content/components/accordions)untuk semua props yang didukung. + + + + Lihat dokumentasi[Accordion](/content/components/accordions)untuk semua props yang didukung. + + + + + ````jsx Accordion Group Example + + + You can put other components inside Accordions. + + ```java HelloWorld.java + class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } + } + ``` + + + + + Check out the [Accordion](/content/components/accordions) docs for all the supported props. + + + + Check out the [Accordion](/content/components/accordions) docs for all the supported props. + + + ```` + + +`AccordionGroup`tidak memiliki props apapun. diff --git a/id/content/components/accordions.mdx b/id/content/components/accordions.mdx new file mode 100644 index 000000000..4f0f81458 --- /dev/null +++ b/id/content/components/accordions.mdx @@ -0,0 +1,39 @@ +--- +title: Accordions +description: Komponen dropdown untuk mengalihkan konten +icon: square-caret-down +--- + + + Anda dapat menempatkan konten apa pun di sini. Lihat[AccordionGroup](/content/components/accordion-groups) jika Anda ingin mengelompokkan beberapa Accordion menjadi satu tampilan. + + + + ```jsx Accordion Example + + You can put any content in here. + + ``` + + +## Props + + + Judul dalam pratinjau Accordion. + + + + Detail di bawah judul dalam pratinjau Accordion. + + + + Apakah Accordion terbuka secara default. + + + + Sebuah [ikon Font Awesome](https://fontawesome.com/icons), [ikon Lucide](https://lucide.dev/icons), atau kode SVG + + + + Salah satu dari "regular", "solid", "light", "thin", "sharp-solid", "duotone", atau "brands" + diff --git a/id/content/components/callouts.mdx b/id/content/components/callouts.mdx new file mode 100644 index 000000000..1b7eecbc2 --- /dev/null +++ b/id/content/components/callouts.mdx @@ -0,0 +1,45 @@ +--- +title: Callout Boxes +description: Gunakan callout untuk menambahkan konteks yang menarik perhatian ke konten Anda +icon: circle-exclamation +--- + +### Callout Catatan + +Ini menambahkan catatan dalam konten + +```jsx +This adds a note in the content +``` + +### Callout Peringatan + +Ini memberikan peringatan untuk diperhatikan + +```jsx +This raises a warning to watch out for +``` + +### Callout Info + +Ini menarik perhatian pada informasi penting + +```jsx +This draws attention to important information +``` + +### Callout Tips + +Ini menyarankan tips yang berguna + +```jsx +This suggests a helpful tip +``` + +### Callout Centang + +Ini memberi kita status tercentang + +```jsx +This brings us a checked status +``` diff --git a/id/content/components/card-groups.mdx b/id/content/components/card-groups.mdx new file mode 100644 index 000000000..5200147e8 --- /dev/null +++ b/id/content/components/card-groups.mdx @@ -0,0 +1,50 @@ +--- +title: Grup Kartu +description: Menampilkan kartu berdampingan dalam format grid +icon: rectangles-mixed +--- + +Komponen`CardGroup`memungkinkan Anda mengelompokkan beberapa`Card`komponen bersama. Ini paling sering digunakan untuk menempatkan beberapa kartu pada kolom yang sama. + + + + Tidak ada seorang pun yang mencintai penderitaan karena penderitaan itu sendiri + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit + + + + Ut enim ad minim veniam, quis nostrud exercitation ullamco + + + + Excepteur sint occaecat cupidatat non proident + + + + + ```jsx Card Group Example + + + Neque porro quisquam est qui dolorem ipsum quia dolor sit amet + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit + + + Ut enim ad minim veniam, quis nostrud exercitation ullamco + + + Excepteur sint occaecat cupidatat non proident + + + ``` + + +## Props + + + Jumlah kolom per baris + diff --git a/id/content/components/cards.mdx b/id/content/components/cards.mdx new file mode 100644 index 000000000..b85e33347 --- /dev/null +++ b/id/content/components/cards.mdx @@ -0,0 +1,71 @@ +--- +title: Kartu +description: Sorot poin utama atau tautan dengan ikon yang dapat disesuaikan +icon: rectangle +--- + + + Ini adalah cara menggunakan kartu dengan ikon dan tautan. Mengklik kartu ini + membawa Anda ke halaman Grup Kartu. + + + + ```jsx Card Example + + This is how you use a card with an icon and a link. Clicking on this card + brings you to the Card Group page. + + ``` + + ```jsx Image Card Example + + Here is an example of a card with an image + + ``` + + +### Kartu Horizontal + +Tambahkan `horizontal` properti ke kartu untuk membuatnya ditampilkan secara horizontal. + + + Ini adalah contoh kartu horizontal + + +### Kartu Gambar + +Tambahkan `img` properti ke kartu untuk menampilkan gambar di bagian atas kartu. + + + Ini adalah contoh kartu dengan gambar + + +## Props + + + Judul kartu + + + + Sebuah [Font Awesome icon](https://fontawesome.com/icons), [Lucide icon](https://lucide.dev/icons), atau kode SVG dalam `icon={}` + + + + Salah satu dari `regular`, `solid`, `light`, `thin`, `sharp-solid`, `duotone`, `brands` + + + + Warna ikon dalam kode hex + + + + URL yang akan dinavigasi pengguna saat mengklik kartu + + + + Membuat kartu lebih ringkas dan horizontal + + + + URL atau path lokal ke gambar untuk ditampilkan di bagian atas kartu + diff --git a/id/content/components/code-groups.mdx b/id/content/components/code-groups.mdx new file mode 100644 index 000000000..af6d352d6 --- /dev/null +++ b/id/content/components/code-groups.mdx @@ -0,0 +1,52 @@ +--- +title: Grup Kode +description: Komponen CodeGroup memungkinkan Anda menggabungkan blok kode dalam tampilan + yang dipisahkan oleh tab +icon: rectangle-code +--- + +Anda perlu membuat [Blok Kode](/content/components/code) kemudian tambahkan `` komponen di sekitarnya. Setiap Blok Kode harus memiliki nama file karena kita menggunakan nama tersebut untuk tombol tab. + +Lihat di bawah ini untuk contoh hasil akhir. + + + ```javascript helloWorld.js + console.log("Hello World"); + ``` + + ```python hello_world.py + print('Hello World!') + ``` + + ```java HelloWorld.java + class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } + } + ``` + + + + ````md Code Group Example + + + ```javascript helloWorld.js + console.log("Hello World"); + ``` + + ```python hello_world.py + print('Hello World!') + ``` + + ```java HelloWorld.java + class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } + } + ``` + + + ```` + diff --git a/id/content/components/code.mdx b/id/content/components/code.mdx new file mode 100644 index 000000000..ab348e7d9 --- /dev/null +++ b/id/content/components/code.mdx @@ -0,0 +1,199 @@ +--- +title: Blok Kode +description: Menampilkan kode dengan penyorotan sintaks opsional +icon: code +--- + + + ````md Code Block Example + ```javascript Code Block Example + const hello = "world"; + ``` + ```` + + +## Blok Kode Dasar + +Gunakan [blok kode berpagar](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) dengan mengapit kode dalam tiga tanda kutip. + +``` +helloWorld(); +``` + +````md +``` +helloWorld(); +``` +```` + +## Penyorotan Sintaks + +Letakkan nama bahasa pemrograman Anda setelah tiga tanda kutip untuk mendapatkan penyorotan sintaks. + +Kami menggunakan [Prism](https://prismjs.com/#supported-languages) untuk penyorotan sintaks. [Uji Coba Prism](https://prismjs.com/test.html#language=markup) mencantumkan semua bahasa yang didukung. + +```java +class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` + +````md +```java +class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` +```` + +## Nama + +Tambahkan judul setelah bahasa pemrograman untuk menetapkan nama contoh kode Anda. Teksnya bisa apa saja selama dalam satu baris. + +```javascript Code Block Example +const hello = "world"; +``` + +````md Code Block Example +```javascript Code Block Example +const hello = "world"; +``` +```` + +## Penyorotan Baris + +Sorot baris tertentu dalam blok kode Anda dengan menambahkan komentar khusus setelah pengenal bahasa. Gunakan kurung kurawal `{}` dan tentukan nomor baris atau rentang yang dipisahkan dengan koma. + +```javascript Line Highlighting Example {1,3-5} +const greeting = "Hello, World!"; +function sayHello() { + console.log(greeting); +} +sayHello(); +``` + +````md +```javascript Line Highlighting Example {1,3-5} +const greeting = "Hello, World!"; +function sayHello() { + console.log(greeting); +} +sayHello(); +``` +```` + +## Dapat Diperluas + +Jika Anda memiliki blok kode yang panjang dan `[expandable]` setelah judul Anda untuk membuatnya dapat ditutup dan diperluas. + +```python library.py [expandable] +from datetime import datetime, timedelta +from typing import Dict, List, Optional +from dataclasses import dataclass + +@dataclass +class Book: + title: str + author: str + isbn: str + checked_out: bool = False + due_date: Optional[datetime] = None + +class Library: + def __init__(self): + self.books: Dict[str, Book] = {} + self.checkouts: Dict[str, List[str]] = {} # patron -> list of ISBNs + + def add_book(self, book: Book) -> None: + if book.isbn in self.books: + raise ValueError(f"Book with ISBN {book.isbn} already exists") + self.books[book.isbn] = book + + def checkout_book(self, isbn: str, patron: str, days: int = 14) -> None: + if patron not in self.checkouts: + self.checkouts[patron] = [] + + book = self.books.get(isbn) + if not book: + raise ValueError("Book not found") + + if book.checked_out: + raise ValueError("Book is already checked out") + + if len(self.checkouts[patron]) >= 3: + raise ValueError("Patron has reached checkout limit") + + book.checked_out = True + book.due_date = datetime.now() + timedelta(days=days) + self.checkouts[patron].append(isbn) + + def return_book(self, isbn: str) -> float: + book = self.books.get(isbn) + if not book or not book.checked_out: + raise ValueError("Book not found or not checked out") + + late_fee = 0.0 + if datetime.now() > book.due_date: + days_late = (datetime.now() - book.due_date).days + late_fee = days_late * 0.50 + + book.checked_out = False + book.due_date = None + + # Remove from patron's checkouts + for patron, books in self.checkouts.items(): + if isbn in books: + books.remove(isbn) + break + + return late_fee + + def search(self, query: str) -> List[Book]: + query = query.lower() + return [ + book for book in self.books.values() + if query in book.title.lower() or query in book.author.lower() + ] + +def main(): + library = Library() + + # Add some books + books = [ + Book("The Hobbit", "J.R.R. Tolkien", "978-0-261-10295-4"), + Book("1984", "George Orwell", "978-0-452-28423-4"), + ] + + for book in books: + library.add_book(book) + + # Checkout and return example + library.checkout_book("978-0-261-10295-4", "patron123") + late_fee = library.return_book("978-0-261-10295-4") + print(f"Late fee: ${late_fee:.2f}") + +if __name__ == "__main__": + main() +``` + +````md +```javascript Expandable Example [expandable] +const greeting = "Hello, World!"; +function sayHello() { + console.log(greeting); +} +sayHello(); +``` +```` + +## Grup Kode + +Ingin menampilkan beberapa contoh kode dalam satu kotak kode? Lihat dokumentasi Grup Kode: + + + Baca referensi untuk komponen Grup Kode + diff --git a/id/content/components/expandables.mdx b/id/content/components/expandables.mdx new file mode 100644 index 000000000..6dcd89fc3 --- /dev/null +++ b/id/content/components/expandables.mdx @@ -0,0 +1,44 @@ +--- +title: Dapat Diperluas +description: Toggle untuk menampilkan properti bersarang. +icon: caret-down +--- + + + + + Nama lengkap pengguna + + + + Apakah pengguna berusia di atas 21 tahun + + + + + + ```jsx Expandable Example + + + + The full name of the user + + + + Whether the user is over 21 years old + + + + ``` + + +## Props + + + Nama objek yang Anda tampilkan. Digunakan untuk menghasilkan teks "Show NAME" dan + "Hide NAME". + + + + Atur ke true untuk menampilkan komponen dalam keadaan terbuka saat halaman dimuat. + diff --git a/id/content/components/frames.mdx b/id/content/components/frames.mdx new file mode 100644 index 000000000..ec178c928 --- /dev/null +++ b/id/content/components/frames.mdx @@ -0,0 +1,39 @@ +--- +title: Frames +description: Gunakan komponen Frame untuk membungkus gambar atau komponen lain dalam wadah. +icon: frame +--- + +Frame sangat membantu jika Anda ingin memusatkan gambar. + + + + + +## Keterangan + +Anda dapat menambahkan konteks tambahan ke gambar menggunakan `caption` opsional. + + + + + +## Props + + + Teks keterangan opsional untuk ditampilkan di tengah di bawah komponen Anda. + + + + ```jsx Frame + + + + ``` + + ```jsx Frame with Captions + + + + ``` + diff --git a/id/content/components/icons.mdx b/id/content/components/icons.mdx new file mode 100644 index 000000000..c82f354bd --- /dev/null +++ b/id/content/components/icons.mdx @@ -0,0 +1,42 @@ +--- +title: Ikon +description: Gunakan ikon [Font Awesome](https://fontawesome.com/icons) atau + [Lucide](https://lucide.dev/icons) di mana saja dalam dokumen +icon: icons +--- + + + + + ```jsx Icon Example + + ``` + + +## Ikon Inline + +Ikon akan ditempatkan secara inline ketika digunakan dalam paragraf. + +```markdown Inline Icon Example + The documentation you want, effortlessly +``` + + Dokumentasi yang Anda inginkan, tanpa usaha + +## Props + + + Sebuah [Font Awesome](https://fontawesome.com/icons) ikon + + + + Salah satu dari `regular`, `solid`, `light`, `thin`, `sharp-solid`, `duotone`, `brands` + + + + Warna ikon dalam kode hex (misalnya, `#FF5733`) + + + + Ukuran ikon dalam piksel + diff --git a/id/content/components/mermaid-diagrams.mdx b/id/content/components/mermaid-diagrams.mdx new file mode 100644 index 000000000..37d9336dd --- /dev/null +++ b/id/content/components/mermaid-diagrams.mdx @@ -0,0 +1,71 @@ +--- +title: Diagram Mermaid +description: Menampilkan diagram menggunakan Mermaid +icon: diagram-project +--- + + + ````md Mermaid Flowchart Example + ```mermaid + flowchart LR + subgraph subgraph1 + direction TB + top1[top] --> bottom1[bottom] + end + subgraph subgraph2 + direction TB + top2[top] --> bottom2[bottom] + end + %% ^ These subgraphs are identical, except for the links to them: + + %% Link *to* subgraph1: subgraph1 direction is maintained + outside --> subgraph1 + %% Link *within* subgraph2: + %% subgraph2 inherits the direction of the top-level graph (LR) + outside ---> top2 + ``` + ```` + + +[Mermaid](https://mermaid.js.org/)memungkinkan Anda membuat diagram visual menggunakan teks dan kode. + +```mermaid + flowchart LR + subgraph subgraph1 + direction TB + top1[top] --> bottom1[bottom] + end + subgraph subgraph2 + direction TB + top2[top] --> bottom2[bottom] + end + %% ^ These subgraphs are identical, except for the links to them: + + %% Link *to* subgraph1: subgraph1 direction is maintained + outside --> subgraph1 + %% Link *within* subgraph2: + %% subgraph2 inherits the direction of the top-level graph (LR) + outside ---> top2 +``` + +Anda dapat membuat hal-hal berikut menggunakan diagram Mermaid: + +* Diagram Alur +* Diagram Urutan +* Diagram Kelas +* Diagram Status +* Diagram Hubungan Entitas +* Perjalanan Pengguna +* dan lainnya + +Untuk daftar lengkap diagram yang didukung oleh Mermaid, kunjungi[situs web mereka](https://mermaid.js.org/). + +## Sintaks untuk diagram Mermaid + +Untuk membuat diagram alur, Anda dapat menulis diagram alur Mermaid di dalam blok kode Mermaid. + +````md +```mermaid +// Your mermaid code block here +``` +```` diff --git a/id/content/components/params.mdx b/id/content/components/params.mdx new file mode 100644 index 000000000..43d9ed14b --- /dev/null +++ b/id/content/components/params.mdx @@ -0,0 +1,69 @@ +--- +title: Bidang Parameter +description: Atur parameter path, query, dan body +icon: text-size +--- + +`ParamField` komponen membantu mendefinisikan parameter untuk API atau SDK Anda. Menambahkan ParamField akan secara otomatis menambahkan [API Playground](/api-playground/overview). + + + Contoh bidang parameter + + + + ```jsx Path Example + + An example of a parameter field + + ``` + + ```jsx Query Example + + The filtering command used to sort through the users + + ``` + + ```jsx Body Example + + The age of the user. Cannot be less than 0 + + ``` + + +## Props + + + Apakah itu parameter query, path, body, atau header diikuti dengan nama + + + + Tipe yang diharapkan dari nilai parameter + + Mendukung `number`, `string`, `bool`, `object`. + + Array dapat didefinisikan menggunakan akhiran `[]`. Sebagai contoh `string[]`. + + + + Menunjukkan apakah parameter diperlukan + + + + Menunjukkan apakah parameter sudah usang + + + + Nilai default yang digunakan oleh server jika permintaan tidak menyediakan nilai + + + + Nilai yang akan digunakan untuk menginisialisasi playground + + + + Teks placeholder untuk input di playground + + + + Deskripsi parameter (markdown diaktifkan) + diff --git a/id/content/components/responses.mdx b/id/content/components/responses.mdx new file mode 100644 index 000000000..7c093bee7 --- /dev/null +++ b/id/content/components/responses.mdx @@ -0,0 +1,37 @@ +--- +title: Response Fields +description: Menampilkan nilai respons API +icon: message +--- + +Komponen `` dirancang untuk mendefinisikan nilai pengembalian dari API. Banyak dokumentasi juga menggunakan `` pada halaman ketika Anda perlu mendaftar tipe sesuatu. + + + Contoh response field + + + + ```jsx ResponseField Example + + A response field example + + ``` + + +## Props + + + Nama dari nilai respons. + + + + Tipe yang diharapkan dari nilai respons + + + + Nilai default. + + + + Tampilkan "required" di samping nama field. + diff --git a/id/content/components/steps.mdx b/id/content/components/steps.mdx new file mode 100644 index 000000000..7cb0bd28a --- /dev/null +++ b/id/content/components/steps.mdx @@ -0,0 +1,73 @@ +--- +title: Steps +description: Urutkan konten menggunakan komponen Steps +icon: arrow-progress +--- + +Steps adalah cara terbaik untuk menampilkan serangkaian tindakan atau peristiwa kepada pengguna Anda. Anda dapat menambahkan sebanyak mungkin langkah yang diinginkan. + + + + Ini adalah instruksi atau konten yang hanya berkaitan dengan langkah pertama. + + + + Ini adalah instruksi atau konten yang hanya berkaitan dengan langkah kedua. + + + + Ini adalah instruksi atau konten yang hanya berkaitan dengan langkah ketiga. + + + + + ```jsx Steps Example + + + These are instructions or content that only pertain to the first step. + + + These are instructions or content that only pertain to the second step. + + + These are instructions or content that only pertain to the third step. + + + ``` + + +## Props Steps + + + Sebuah daftar `Step` komponen. + + + + Ukuran judul langkah. Salah satu dari`p`, `h2` dan `h3`. + + +## Props Langkah Individual + + + Konten langkah baik sebagai teks biasa, atau komponen. + + + + Sebuah [Font Awesome icon](https://fontawesome.com/icons), [Lucide icon](https://lucide.dev/icons), atau kode SVG dalam `icon={}` + + + + Salah satu dari `regular`, `solid`, `light`, `thin`, `sharp-solid`, `duotone`, `brands` + + + + Judul adalah teks utama untuk langkah dan muncul di sebelah indikator. + + + + Nomor langkah. + + + + Ukuran judul langkah. Salah satu dari `p`, `h2` dan `h3`. + diff --git a/id/content/components/sticky-examples.mdx b/id/content/components/sticky-examples.mdx new file mode 100644 index 000000000..8c853e58f --- /dev/null +++ b/id/content/components/sticky-examples.mdx @@ -0,0 +1,44 @@ +--- +title: Contoh Kode Sidebar +description: Menampilkan blok kode di kanan atas halaman pada perangkat desktop +icon: sidebar-flip +--- + +The `` dan `` menempelkan blok kode di kanan atas halaman bahkan saat Anda menggulir. Komponen ini berfungsi di semua halaman bahkan jika Anda tidak menggunakan API playground. + +`` dan `` tampil seperti blok kode biasa di perangkat mobile. + +## Contoh Request + +The `` komponen bekerja mirip dengan [CodeGroup](/content/components/code-groups), tetapi menampilkan konten request di sidebar kanan. Dengan demikian, Anda dapat menempatkan beberapa blok kode di dalam ``. + +Harap tetapkan nama pada setiap blok kode yang Anda tempatkan di dalam RequestExample. + + + ````md RequestExample Example + + + ```bash Request + curl --request POST \ + --url https://dog-api.kinduff.com/api/facts + ``` + + + ```` + + +## Contoh Response + +The `` komponen sama dengan `` tetapi akan muncul di bawahnya. + + + ````md ResponseExample Example + + + ```json Response + { "status": "success" } + ``` + + + ```` + diff --git a/id/content/components/tabs.mdx b/id/content/components/tabs.mdx new file mode 100644 index 000000000..1c0212f5c --- /dev/null +++ b/id/content/components/tabs.mdx @@ -0,0 +1,43 @@ +--- +title: Tab +description: Beralih konten menggunakan komponen Tab +icon: window-restore +--- + +Anda dapat menambahkan tab sebanyak yang Anda inginkan. + + + + ☝️ Selamat datang di konten yang hanya dapat Anda lihat di dalam Tab pertama. + + + + ✌️ Ini adalah konten yang hanya ada di dalam Tab kedua. + + + + 💪 Ini adalah konten yang hanya ada di dalam Tab ketiga. + + + + + ```jsx Tabs Example + + + ☝️ Welcome to the content that you can only see inside the first Tab. + + + ✌️ Here's content that's only inside the second Tab. + + + 💪 Here's content that's only inside the third Tab. + + + ``` + + +## Props Tab + + + Judul dari tab. Judul yang singkat lebih mudah untuk dinavigasi. + diff --git a/id/content/components/tooltips.mdx b/id/content/components/tooltips.mdx new file mode 100644 index 000000000..530adca2e --- /dev/null +++ b/id/content/components/tooltips.mdx @@ -0,0 +1,13 @@ +--- +title: Tooltips +description: Tampilkan definisi saat Anda mengarahkan kursor ke teks. +icon: message-lines +--- + +Arahkan kursor ke saya dan lihat tooltip dalam aksi + + + ```jsx Tooltip Example + Hover over me + ``` + diff --git a/id/content/components/update.mdx b/id/content/components/update.mdx new file mode 100644 index 000000000..9a072231e --- /dev/null +++ b/id/content/components/update.mdx @@ -0,0 +1,57 @@ +--- +title: Update +description: Melacak perubahan dan pembaruan +icon: rectangle-history +--- + +Komponen `Update` digunakan untuk melacak perubahan dan pembaruan. + + + + + + + ## Changelog + + Anda dapat menambahkan apa saja di sini, seperti tangkapan layar, potongan kode, atau daftar perubahan. + + #### Fitur + + * Desain responsif + * Bagian tetap untuk setiap changelog + + + + ### Cara penggunaan + + ```md + + This is how you use a changelog with a label + and a description. + + + This is how you use a changelog with a label + and a description. + + ``` + + Anda dapat menggunakan beberapa komponen `Update` untuk membuat changelog. + + + + Setiap `label` membuat jangkar dan juga muncul di daftar isi di sebelah kanan. + + +## Props + + + Label dalam changelog, di sisi kiri yang tetap. + + + + Deskripsi di bawah label dalam pratinjau Changelog. + + + + Tag untuk changelog, akan ditampilkan sebagai filter di panel sisi kanan + diff --git a/id/development.mdx b/id/development.mdx new file mode 100644 index 000000000..7248dc6cb --- /dev/null +++ b/id/development.mdx @@ -0,0 +1,120 @@ +--- +title: Pengembangan Lokal +description: Pratinjau perubahan secara lokal untuk memperbarui dokumentasi Anda +--- + + + **Prasyarat**: Silakan instal Node.js (versi 19 atau lebih tinggi) sebelum melanjutkan. + + +**Langkah 1**: Instal Mintlify CLI: + + + ```bash npm + npm i -g mintlify + ``` + + ```bash yarn + yarn global add mintlify + ``` + + ```bash pnpm + pnpm add -g mintlify + ``` + + +**Langkah 2**: Navigasi ke direktori docs (di mana file `docs.json` berada) dan jalankan perintah berikut: + +```bash +mintlify dev +``` + +Atau, jika Anda tidak ingin menginstal CLI secara global, Anda dapat menggunakan skrip run yang tersedia: + + + ```bash npm + npx mintlify dev + ``` + + ```bash yarn + yarn dlx mintlify dev + ``` + + ```bash pnpm + pnpm dlx mintlify dev + ``` + + + + Skrip run "dlx" Yarn memerlukan yarn versi >2. Lihat [di sini](https://yarnpkg.com/cli/dlx) untuk informasi lebih lanjut. + + +Pratinjau lokal dokumentasi Anda akan tersedia di `http://localhost:3000`. + +### Port Kustom + +Secara default, Mintlify menggunakan port 3000. Anda dapat menyesuaikan port menggunakan flag `--port`. Untuk menjalankan Mintlify di port 3333, misalnya, gunakan perintah ini: + +```bash +mintlify dev --port 3333 +``` + +Jika Anda mencoba menjalankan pada port yang sudah digunakan, maka akan menggunakan port berikutnya yang tersedia: + +```md +Port 3000 is already in use. Trying 3001 instead. +``` + +## Versi + +Harap dicatat bahwa setiap rilis CLI terkait dengan versi Mintlify tertentu. Jika situs web lokal Anda tidak sesuai dengan versi produksi, silakan perbarui CLI: + + + ```bash npm + npm i -g mintlify@latest + ``` + + ```bash yarn + yarn global upgrade mintlify + ``` + + ```bash pnpm + pnpm up --global mintlify + ``` + + +## Memvalidasi Tautan + +CLI dapat membantu memvalidasi tautan referensi yang dibuat dalam dokumentasi Anda. Untuk mengidentifikasi tautan yang rusak, gunakan perintah berikut: + +```bash +mintlify broken-links +``` + +## Penerapan + +Jika penerapan berhasil, Anda akan melihat hal berikut: + + + + + +## Pemformatan Kode + +Kami menyarankan menggunakan ekstensi pada IDE Anda untuk mengenali dan memformat MDX. Jika Anda pengguna VSCode, pertimbangkan [ekstensi MDX VSCode](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) untuk penyorotan sintaks, dan [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) untuk pemformatan kode. + +## Pemecahan Masalah + + + + Ini mungkin disebabkan oleh versi node yang sudah usang. Coba langkah berikut: + + 1. Hapus versi mintlify yang saat ini terinstal: `npm remove -g mintlify` + 2. Tingkatkan ke Node v19 atau lebih tinggi. + 3. Instal ulang mintlify: `npm install -g mintlify` + + + + Solusi: Pergi ke root perangkat Anda dan hapus folder \~/.mintlify. Setelah itu, jalankan `mintlify dev` lagi. + + diff --git a/id/guides/auth0.mdx b/id/guides/auth0.mdx new file mode 100644 index 000000000..7105187cf --- /dev/null +++ b/id/guides/auth0.mdx @@ -0,0 +1,62 @@ +--- +title: Menggunakan Auth0 dengan OAuth Handshake +description: Jika Auth0 adalah sumber kebenaran untuk data pengguna Anda, Anda dapat mengatur Mintlify sebagai aplikasi klien OAuth untuk mengautentikasi pengguna Anda. +--- + + + **Peringatan Keamanan**: Meskipun kami menyediakan panduan ini untuk membantu Anda mengintegrasikan Auth0 dengan Mintlify, silakan berkonsultasi dengan tim keamanan Anda sebelum menerapkan solusi autentikasi apa pun. Mintlify tidak bertanggung jawab atas masalah keamanan yang mungkin timbul dari implementasi spesifik Anda. + + +## Ikhtisar + +Panduan ini akan memandu Anda melalui proses pengaturan Auth0 sebagai penyedia autentikasi untuk dokumentasi Mintlify Anda. Pada akhirnya, pengguna Anda akan dapat masuk ke dokumentasi Anda menggunakan kredensial Auth0 mereka. + + + + Masuk ke dasbor Auth0 Anda dan navigasikan ke **Applications** > **Applications**. Klik tombol **Create Application**, beri nama aplikasi Anda (misalnya, "Mintlify"), dan pilih **Regular Web Applications** sebagai tipe aplikasi. Kemudian klik **Create**. + + ![Creating a new application in Auth0](/images/guides/auth0/auth0-create-application.png) + + + + Setelah membuat aplikasi Anda, Anda akan dibawa ke halaman pengaturan aplikasi. Di sini, Anda akan menemukan kredensial penting yang diperlukan untuk integrasi OAuth: + + ![Auth0 client settings page](/images/guides/auth0/auth0clientsettings.png) + + Catat informasi berikut: + + * **Domain**: Ini adalah domain tenant Auth0 Anda (misalnya, `your-tenant.auth0.com`) + * **Client ID**: Pengidentifikasi publik untuk aplikasi Anda + * **Client Secret**: Kunci rahasia untuk aplikasi Anda (jaga keamanannya) + + Anda akan memerlukan nilai-nilai ini untuk mengkonfigurasi Mintlify di langkah berikutnya. + + + + Navigasikan ke Dasbor Mintlify Anda dan pergi ke bagian **Settings** > **Authentication**. Pilih **OAuth** sebagai metode autentikasi Anda dan Anda akan melihat formulir konfigurasi OAuth: + + ![Mintlify OAuth client settings](/images/guides/auth0/mintlifyoauthclientsettings.png) + + Isi formulir dengan nilai-nilai berikut: + + * **Authorization URL**: `https://YOUR_AUTH0_DOMAIN/authorize` (ganti `YOUR_AUTH0_DOMAIN` dengan domain Auth0 aktual Anda dari langkah 2) + * **Client ID**: Masukkan Client ID dari aplikasi Auth0 Anda + * **Client Secret**: Masukkan Client Secret dari aplikasi Auth0 Anda + * **Scopes**: Biarkan kosong kecuali Anda memiliki scope kustom yang diatur di Auth0 + * **Token URL**: `https://YOUR_AUTH0_DOMAIN/oauth/token` (ganti `YOUR_AUTH0_DOMAIN` dengan domain Auth0 aktual Anda) + + Setelah mengisi detail ini, klik **Save changes** untuk menyimpan konfigurasi OAuth Anda. + + + + Mintlify akan menghasilkan URL Pengalihan unik yang perlu dikenali Auth0 agar alur OAuth berfungsi dengan baik. + + Salin URL Pengalihan dari pengaturan Autentikasi Dasbor Mintlify Anda: + ![Mintlify redirect URL](/images/guides/auth0/mintlifyredirecturl.png) + + Kembali ke halaman pengaturan aplikasi Auth0 Anda, gulir ke bawah ke bagian **Application URIs**, dan tempel URL Pengalihan ke dalam kolom **Allowed Callback URLs**: + ![Auth0 redirect URL configuration](/images/guides/auth0/auth0redirecturl.png) + + Klik **Save Changes** di bagian bawah halaman Auth0 untuk menerapkan konfigurasi ini. + + diff --git a/id/image-embeds.mdx b/id/image-embeds.mdx new file mode 100644 index 000000000..4f600fd23 --- /dev/null +++ b/id/image-embeds.mdx @@ -0,0 +1,129 @@ +--- +title: Gambar, Video, dan Embeds +description: Tambahkan gambar, video, dan elemen HTML lainnya +icon: image +--- + + + + + Mintlify mendukung file hingga 5 MB. Untuk menggunakan file yang lebih besar, pertimbangkan layanan penyimpanan seperti Cloudinary dan sematkan dalam dokumentasi Anda menggunakan URL. + + +## Gambar + +### Menggunakan Markdown + +Sintaks [markdown](https://www.markdownguide.org/basic-syntax/#images) memungkinkan Anda menambahkan gambar menggunakan kode berikut + +```md +![title](/path/image.jpg) +``` + +Perhatikan bahwa ukuran file gambar harus kurang dari 5MB. Jika tidak, kami menyarankan untuk hosting di layanan seperti [Cloudinary](https://cloudinary.com/) atau [S3](https://aws.amazon.com/s3/). Anda kemudian dapat menggunakan URL tersebut dan menyematkannya. + +### Menggunakan Embeds + +Untuk mendapatkan kustomisasi yang lebih baik dengan gambar, Anda juga dapat menggunakan embeds untuk menambahkan gambar. + +```html + +``` + +### Menonaktifkan Zoom Gambar + +Untuk menonaktifkan zoom default saat mengklik gambar, tambahkan properti noZoom ke embeds gambar. + +```html + +``` + +### Menautkan Gambar + +Untuk menautkan gambar, misalnya untuk membuat tombol pada dokumentasi Anda, masukkan gambar dalam tautan dengan properti`noZoom`. Gambar dalam tag`a` akan secara otomatis memiliki kursor pointer. + +```html + + + +``` + +### Mode Gelap + +Untuk menggunakan gambar yang berbeda untuk mode terang dan gelap, gunakan Tailwind CSS untuk menyembunyikan dan menampilkan gambar. + +```html + + +``` + +### Terkait + +Untuk informasi lebih lanjut, kami merekomendasikan bagian berikut: + + + Baca referensi untuk komponen Frame + + +## Video + + +``` + +Untuk video lainnya, gunakan: + +```html + +``` + +Untuk memutar video secara otomatis, gunakan: + +```html + +``` + + + Karena Mintlify perlu mematuhi sintaks JSX, atribut kata ganda perlu ditulis dalam camelCase: autoPlay, playsInline. + + +## iFrame + +Memuat halaman HTML lain dalam dokumen. + +```html + +``` + + + Meskipun tidak wajib, kami menyarankan untuk menambahkan`alt` dan `title` atribut pada gambar untuk SEO dan aksesibilitas yang lebih baik. Pelajari lebih lanjut di [SEO gambar](https://yoast.com/image-seo-alt-tag-and-title-tag-optimization/). + diff --git a/id/integrations/analytics/amplitude.mdx b/id/integrations/analytics/amplitude.mdx new file mode 100644 index 000000000..e435a0af2 --- /dev/null +++ b/id/integrations/analytics/amplitude.mdx @@ -0,0 +1,23 @@ +--- +title: Amplitude +--- + +Tambahkan berikut ini ke`docs.json` file untuk mengirim analitik ke Amplitude. + + + ```json Analytics options in docs.json + "integrations": { + "amplitude": { + "apiKey": "required" + } + } + ``` + + ```json Example + "integrations": { + "amplitude": { + "apiKey": "76bb138bf3fbf58186XXX00000" + } + } + ``` + diff --git a/id/integrations/analytics/clearbit.mdx b/id/integrations/analytics/clearbit.mdx new file mode 100644 index 000000000..dbc39ac29 --- /dev/null +++ b/id/integrations/analytics/clearbit.mdx @@ -0,0 +1,23 @@ +--- +title: Clearbit +--- + +Tambahkan berikut ini ke`docs.json` file untuk mengirim analitik ke Clearbit. + + + ```json Analytics options in docs.json + "integrations": { + "clearbit": { + "publicApiKey": "required" + } + } + ``` + + ```json Example + "integrations": { + "clearbit": { + "publicApiKey": "pk_1a1882" + } + } + ``` + diff --git a/id/integrations/analytics/fathom.mdx b/id/integrations/analytics/fathom.mdx new file mode 100644 index 000000000..a00f69151 --- /dev/null +++ b/id/integrations/analytics/fathom.mdx @@ -0,0 +1,25 @@ +--- +title: Fathom +--- + +Tambahkan berikut ini ke`docs.json` file untuk mengirim analitik ke Fathom. + +Anda bisa mendapatkan`siteId` dari pengaturan skrip Anda. + + + ```json Analytics options in docs.json + "integrations": { + "fathom": { + "siteId": "required" + } + } + ``` + + ```json Example + "integrations": { + "fathom": { + "siteId": "YSVMSDAY" + } + } + ``` + diff --git a/id/integrations/analytics/google-analytics.mdx b/id/integrations/analytics/google-analytics.mdx new file mode 100644 index 000000000..7606a7639 --- /dev/null +++ b/id/integrations/analytics/google-analytics.mdx @@ -0,0 +1,43 @@ +--- +title: Google Analytics 4 +--- + +Anda perlu membuat propertiGA4baru untuk digunakan dengan Mintlify. Data yang dikumpulkan akan masuk ke proyek yang sama dengan data Google Analytics Anda lainnya. + +Jika Anda menggunakan versi lama Google Analytics, Universal Analytics, Anda masih akan dapat menghasilkan GA4 properti. GA4 data sedikit berbeda dari data UA tetapi masih dikumpulkan dalam proyek yang sama. + +## Cara Menghubungkan GA4 ke Mintlify + +### Buat Web Stream + +Anda perlu membuat web stream untuk mendapatkan ID Pengukuran yang akan dimasukkan ke Mintlify. + +Klik ikon roda gigi di pojok kiri bawah layar Google Analytics. Kemudian klik Data Streams. + +![](/images/ga4-web-streams.png) + +Buat Web Stream dan masukkan URL situs dokumentasi Mintlify Anda sebagai URL stream. + +ID Pengukuran Anda terlihat seperti `G-XXXXXXX` dan akan muncul di bawah Stream Details segera setelah Anda membuat Web Stream. + +### Masukkan ID Pengukuran di docs.json + +Tambahkan ID Pengukuran Anda ke file `docs.json` seperti ini: + +```json docs.json +"integrations": { + "ga4": { + "measurementId": "G-XXXXXXX" + } +} +``` + +### Tunggu + +Google Analytics membutuhkan waktu dua sampai tiga hari untuk menampilkan data Anda. + +Anda dapat menggunakan [Google Analytics Debugger](https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna?hl=en) untuk memeriksa apakah analitik telah diaktifkan dengan benar. Ekstensi akan mencatat ke konsol browser Anda setiap kali GA4 membuat permintaan. + + + Tautan pratinjau memiliki analitik yang dinonaktifkan. + diff --git a/id/integrations/analytics/google-tag-manager.mdx b/id/integrations/analytics/google-tag-manager.mdx new file mode 100644 index 000000000..168d53f10 --- /dev/null +++ b/id/integrations/analytics/google-tag-manager.mdx @@ -0,0 +1,25 @@ +--- +title: Google Tag Manager +--- + +Tambahkan ID tag Anda ke`docs.json` file dan kami akan menyuntikkan skrip Google Tag Manager ke semua halaman Anda. + +Anda bertanggung jawab untuk mengatur banner persetujuan cookie dengan Google Tag Manager jika Anda membutuhkannya. + + + ```json Analytics options in docs.json + "integrations": { + "gtm": { + "tagId": "required" + } + } + ``` + + ```json Example + "integrations": { + "gtm": { + "tagId": "GTM-MGBL4PW" + } + } + ``` + diff --git a/id/integrations/analytics/heap.mdx b/id/integrations/analytics/heap.mdx new file mode 100644 index 000000000..0d551b4a4 --- /dev/null +++ b/id/integrations/analytics/heap.mdx @@ -0,0 +1,23 @@ +--- +title: Heap +--- + +Tambahkan berikut ini ke`docs.json` file untuk mengirim analitik ke Heap. + + + ```json Analytics options in docs.json + "integrations": { + "heap": { + "appId": "required" + } + } + ``` + + ```json Example + "integrations": { + "heap": { + "appId": "1234567890" + } + } + ``` + diff --git a/id/integrations/analytics/hotjar.mdx b/id/integrations/analytics/hotjar.mdx new file mode 100644 index 000000000..1b8b32222 --- /dev/null +++ b/id/integrations/analytics/hotjar.mdx @@ -0,0 +1,14 @@ +--- +title: HotJar +--- + +Tambahkan berikut ini ke`docs.json` file untuk mengirim analitik ke HotJar. + +```json Analytics options in docs.json +"integrations": { + "hotjar": { + "hjid": "required", + "hjsv": "required" + } +} +``` diff --git a/id/integrations/analytics/koala.mdx b/id/integrations/analytics/koala.mdx new file mode 100644 index 000000000..d46b613ce --- /dev/null +++ b/id/integrations/analytics/koala.mdx @@ -0,0 +1,23 @@ +--- +title: Koala +--- + +Tambahkan berikut ini ke`docs.json` file untuk mengirim analitik ke Koala. + + + ```json Analytics options in docs.json + "integrations": { + "koala": { + "publicApiKey": "required" + } + } + ``` + + ```json Example + "integrations": { + "koala": { + "publicApiKey": "pk_1a1882" + } + } + ``` + diff --git a/id/integrations/analytics/logrocket.mdx b/id/integrations/analytics/logrocket.mdx new file mode 100644 index 000000000..ce40d7c08 --- /dev/null +++ b/id/integrations/analytics/logrocket.mdx @@ -0,0 +1,13 @@ +--- +title: LogRocket +--- + +Tambahkan berikut ini ke`docs.json` file untuk mengirim analitik ke LogRocket. + +```json Analytics options in docs.json +"integrations": { + "logrocket": { + "apiKey": "required" + } +} +``` diff --git a/id/integrations/analytics/mixpanel.mdx b/id/integrations/analytics/mixpanel.mdx new file mode 100644 index 000000000..ac5d1314f --- /dev/null +++ b/id/integrations/analytics/mixpanel.mdx @@ -0,0 +1,13 @@ +--- +title: Mixpanel +--- + +Tambahkan berikut ini ke`docs.json` file untuk mengirim analitik ke Mixpanel. + +```json Analytics options in docs.json +"integrations": { + "mixpanel": { + "projectToken": "required" + } +} +``` diff --git a/id/integrations/analytics/overview.mdx b/id/integrations/analytics/overview.mdx new file mode 100644 index 000000000..432c5d6d1 --- /dev/null +++ b/id/integrations/analytics/overview.mdx @@ -0,0 +1,612 @@ +--- +title: Integrasi Analytics +description: Integrasikan dengan platform analytics untuk melacak event +--- + +Secara otomatis mengirim data tentang keterlibatan dokumentasi Anda ke penyedia analytics pihak ketiga. + +## Semua Integrasi + + + + + +} + /> + + + + + + +} + /> + + + + + + + + +} + /> + + + + + + + + + + +} + /> + + + + + + + + + + +} + /> + + + + + +} + /> + + + + + +} + /> + + + + + + +} + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + /> + + + + + + + + + + + + + + + + + + + + + + + + + + +} + /> + + + + + + + +} + /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + /> + + + + + +} + /> + + + + + + + + +} + /> + + +## Mengaktifkan Analytics + +Atur kunci analytics Anda di `docs.json`. Anda dapat menambahkan integrasi analytics tanpa batas secara gratis. + +Sintaks untuk `docs.json` ada di bawah ini. Anda hanya perlu menyertakan entri untuk platform yang ingin Anda hubungkan. + + + ```json Analytics options in docs.json + "integrations": { + "amplitude": { + "apiKey": "required" + }, + "clearbit": { + "publicApiKey": "required" + }, + "fathom": { + "siteId": "required" + }, + "ga4": { + "measurementId": "required" + }, + "gtm": { + "tagId": "required" + }, + "hotjar": { + "hjid": "required", + "hjsv": "required" + }, + "koala": { + "publicApiKey": "required" + }, + "logrocket": { + "appId": "required" + }, + "mixpanel": { + "projectToken": "required" + }, + "pirsch": { + "id": "required" + }, + "plausible": { + "domain": "required" + }, + "posthog": { + "apiKey": "required", + "apiHost": "optional" + }, + "segment": { + "key": "required" + }, + } + ``` + + ```json Google Analytics 4 Example + "integrations": { + "ga4": { + "measurementId": "G-XXXXXXX" + } + } + ``` + + +## FAQ + + + * `expandable_open` + + * `expandable_close` + + * `accordion_open` + + * `accordion_close` + + * `header_nav_item_click` + + * `cta_click` + + * `scroll_to_bottom` + + * `search_close` + + * `api_playground_call` + + * `search_result_click` + + * `chat_enter` + + * `chat_followup` + + * `chat_completed` + + * `code_block_copy` + + * `chat_shared` + + * `thumb_vote` + + * `powered_by_mintlify_click` + + * `ai_chat_citation_click` + + * `ai_chat_feedback_positive_click` + + * `ai_chat_feedback_negative_click` + + * `pageview` + diff --git a/id/integrations/analytics/pirsch.mdx b/id/integrations/analytics/pirsch.mdx new file mode 100644 index 000000000..9e1de4f85 --- /dev/null +++ b/id/integrations/analytics/pirsch.mdx @@ -0,0 +1,25 @@ +--- +title: Pirsch +--- + +Tambahkan berikut ini ke `docs.json` berkas untuk mengirim analitik ke Pirsch. + +Anda dapat mendapatkan ID situs Anda dari Settings > Developer > Identification Code. + + + ```json Analytics options in docs.json + "integrations": { + "pirsch": { + "id": "required" + } + } + ``` + + ```json Example + "integrations": { + "pirsch": { + "id": "8Kw7OKxBfswOjnKGZa7P9Day8JmVYwTp" + } + } + ``` + diff --git a/id/integrations/analytics/plausible.mdx b/id/integrations/analytics/plausible.mdx new file mode 100644 index 000000000..35830667a --- /dev/null +++ b/id/integrations/analytics/plausible.mdx @@ -0,0 +1,28 @@ +--- +title: Plausible +--- + +Tambahkan domain situs Anda ke `docs.json` untuk mengirim analitik ke Plausible. + + + Jangan sertakan`https://` untuk domain atau server. + + + + ```json Analytics options in docs.json + "integrations": { + "plausible": { + "domain": "required", + "server": "optional" + } + } + ``` + + ```json Example + "integrations": { + "plausible": { + "domain": "docs.domain.com" + } + } + ``` + diff --git a/id/integrations/analytics/posthog.mdx b/id/integrations/analytics/posthog.mdx new file mode 100644 index 000000000..4bd202f56 --- /dev/null +++ b/id/integrations/analytics/posthog.mdx @@ -0,0 +1,36 @@ +--- +title: PostHog +--- + +Tambahkan berikut ini ke file `docs.json` Anda untuk mengirim analitik ke PostHog. + +Anda hanya perlu menyertakan `apiHost` jika Anda melakukan self-hosting PostHog. Kami mengirim event ke `https://app.posthog.com` secara default. + + + ```json Analytics options in docs.json + "integrations": { + "posthog": { + "apiKey": "YOUR_POSTHOG_PROJECT_API_KEY", + "apiHost": "optional" + } + } + ``` + + ```json Example + "integrations": { + "posthog": { + "apiKey": "phc_TXdpocbYTeZVm5VJmMzHTMrCofBQu3e0kN7HGMNGTVW" + } + } + ``` + + +
+ + + Mengaktifkan analitik PostHog akan menonaktifkan analitik di dashboard Mintlify. + + +## Perekaman Sesi + +Anda perlu menambahkan URL untuk situs web dokumentasi Anda ke "Domain yang Diizinkan untuk perekaman" PostHog sebelum Anda dapat menerima perekaman sesi. Opsi untuk menambahkan URL Anda ada di pengaturan proyek Posthog. diff --git a/id/integrations/analytics/segment.mdx b/id/integrations/analytics/segment.mdx new file mode 100644 index 000000000..834a1675c --- /dev/null +++ b/id/integrations/analytics/segment.mdx @@ -0,0 +1,23 @@ +--- +title: Segment +--- + +Tambahkan kunci penulisan Segment Anda ke file`docs.json` untuk mengirim analitik ke Segment. + + + ```json Analytics options in docs.json + "integrations": { + "segment": { + "key": "required", + } + } + ``` + + ```json Example + "integrations": { + "segment": { + "key": "nqJxiRG15Y6M594P8Sb8ESEciU3VC2" + } + } + ``` + diff --git a/id/integrations/privacy/osano.mdx b/id/integrations/privacy/osano.mdx new file mode 100644 index 000000000..96702e59f --- /dev/null +++ b/id/integrations/privacy/osano.mdx @@ -0,0 +1,25 @@ +--- +title: Osano +--- + +Tambahkan berikut ini ke`docs.json` berkas untuk menambahkan [Osano](https://www.osano.com/) pengelola persetujuan cookie. + + + ```json Integration options in docs.json + "integrations": { + "osano": "SOURCE" + } + ``` + + ```json Example + "integrations": { + "osano": "https://cmp.osano.com/2sUB2dqwqdkks/8dqwd-dwd86£-4a9b/osano.js" + } + ``` + + +The `SOURCE` dapat ditemukan sebagai `src` nilai dalam potongan kode yang dihasilkan oleh Osano. Ini selalu dimulai dengan `https://cmp.osano.com/`. + +```html Code snippet from Osano +