mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2026-02-24 15:52:27 +00:00
Compare commits
3 Commits
add_redire
...
tutorials-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e36e45582 | ||
|
|
b149e7a25f | ||
|
|
6c1c7ad300 |
@@ -577,6 +577,16 @@ Stay ahead of the curve with the latest developments in RWA tokenization on the
|
||||
Join the Developer Discord: 開発者ディスコードに参加
|
||||
Sign up for the Newsletter: ニュースレターに登録
|
||||
|
||||
# docs/tutorials/index.page.tsx
|
||||
Crypto Wallet and Blockchain Development Tutorials: 暗号資産ウォレットやブロックチェーン開発のチュートリアル
|
||||
These tutorials walk you through the basics of building a very simple XRP Ledger-connected application using your favorite programming language.: これらのチュートリアルでは、お好きなプログラミング言語を使って、XRP Ledgerに接続するアプリケーションを構築するための基礎について説明します。
|
||||
Get Started with SDKs: SDKを使って始める
|
||||
Using the xrpl.js client library.: クライアントライブラリxrpl.jsを使用。
|
||||
Using xrpl.py, a pure Python library.: Pythonライブラリxrpl.pyを使用。
|
||||
Using xrpl4j, a pure Java library.: Javaライブラリを使用。
|
||||
Using the XRPL_PHP client library.: PHPライブラリXRPL_PHPを使用。
|
||||
Access the XRP Ledger directly through the APIs of its core server.: コアサーバのAPIを通じてXRP Ledgerに直接アクセス。
|
||||
|
||||
# community/index.page.tsx
|
||||
XRPL Community: XRPLコミュニティ
|
||||
community.index.h1part1: 開発者とイノベーターによる
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import { indexPages } from './plugins/index-pages.js';
|
||||
import { codeSamples } from './plugins/code-samples.js';
|
||||
import { blogPosts } from './plugins/blog-posts.js';
|
||||
import { tutorialLanguages } from './plugins/tutorial-languages.js'
|
||||
|
||||
export default function customPlugin() {
|
||||
const indexPagesInst = indexPages();
|
||||
const codeSamplesInst = codeSamples();
|
||||
const blogPostsInst = blogPosts();
|
||||
|
||||
const tutorialLanguagesInst = tutorialLanguages();
|
||||
|
||||
|
||||
/** @type {import("@redocly/realm/dist/server/plugins/types").PluginInstance } */
|
||||
@@ -16,11 +17,13 @@ export default function customPlugin() {
|
||||
await indexPagesInst.processContent?.(content, actions);
|
||||
await codeSamplesInst.processContent?.(content, actions);
|
||||
await blogPostsInst.processContent?.(content, actions);
|
||||
await tutorialLanguagesInst.processContent?.(content, actions);
|
||||
},
|
||||
afterRoutesCreated: async (content, actions) => {
|
||||
await indexPagesInst.afterRoutesCreated?.(content, actions);
|
||||
await codeSamplesInst.afterRoutesCreated?.(content, actions);
|
||||
await blogPostsInst.afterRoutesCreated?.(content, actions);
|
||||
await tutorialLanguagesInst.processContent?.(content, actions);
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
118
@theme/plugins/tutorial-languages.js
Normal file
118
@theme/plugins/tutorial-languages.js
Normal file
@@ -0,0 +1,118 @@
|
||||
// @ts-check
|
||||
|
||||
/**
|
||||
* Plugin to detect languages supported in tutorial pages by scanning for tab labels.
|
||||
* This creates shared data that maps tutorial paths to their supported languages.
|
||||
*/
|
||||
export function tutorialLanguages() {
|
||||
/** @type {import("@redocly/realm/dist/server/plugins/types").PluginInstance } */
|
||||
const instance = {
|
||||
processContent: async (actions, { fs, cache }) => {
|
||||
try {
|
||||
/** @type {Record<string, string[]>} */
|
||||
const tutorialLanguagesMap = {}
|
||||
const allFiles = await fs.scan()
|
||||
|
||||
// Find all markdown files in tutorials directory
|
||||
const tutorialFiles = allFiles.filter((file) =>
|
||||
file.relativePath.match(/^docs[\/\\]tutorials[\/\\].*\.md$/)
|
||||
)
|
||||
|
||||
for (const { relativePath } of tutorialFiles) {
|
||||
try {
|
||||
const { data } = await cache.load(relativePath, 'markdown-ast')
|
||||
const languages = extractLanguagesFromAst(data.ast)
|
||||
|
||||
if (languages.length > 0) {
|
||||
// Convert file path to URL path
|
||||
const urlPath = '/' + relativePath
|
||||
.replace(/\.md$/, '/')
|
||||
.replace(/\\/g, '/')
|
||||
tutorialLanguagesMap[urlPath] = languages
|
||||
}
|
||||
} catch (err) {
|
||||
continue // Skip files that can't be parsed.
|
||||
}
|
||||
}
|
||||
|
||||
actions.createSharedData('tutorial-languages', tutorialLanguagesMap)
|
||||
actions.addRouteSharedData('/docs/tutorials/', 'tutorial-languages', 'tutorial-languages')
|
||||
actions.addRouteSharedData('/ja/docs/tutorials/', 'tutorial-languages', 'tutorial-languages')
|
||||
actions.addRouteSharedData('/es-es/docs/tutorials/', 'tutorial-languages', 'tutorial-languages')
|
||||
} catch (e) {
|
||||
console.log('[tutorial-languages] Error:', e)
|
||||
}
|
||||
},
|
||||
}
|
||||
return instance
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract language names from tab labels in the markdown AST
|
||||
*/
|
||||
function extractLanguagesFromAst(ast) {
|
||||
const languages = new Set()
|
||||
|
||||
visit(ast, (node) => {
|
||||
// Look for tab nodes with a label attribute
|
||||
if (isNode(node) && node.type === 'tag' && node.tag === 'tab') {
|
||||
const label = node.attributes?.label
|
||||
if (label) {
|
||||
const normalizedLang = normalizeLanguage(label)
|
||||
if (normalizedLang) {
|
||||
languages.add(normalizedLang)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return Array.from(languages)
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert tab labels like "JavaScript", "Python", etc. to lowercase keys
|
||||
* used for displaying the correct language icons on tutorial cards.
|
||||
*/
|
||||
function normalizeLanguage(label) {
|
||||
const labelLower = label.toLowerCase()
|
||||
|
||||
if (labelLower.includes('javascript') || labelLower === 'js') {
|
||||
return 'javascript'
|
||||
}
|
||||
if (labelLower.includes('python') || labelLower === 'py') {
|
||||
return 'python'
|
||||
}
|
||||
if (labelLower.includes('java') && !labelLower.includes('javascript')) {
|
||||
return 'java'
|
||||
}
|
||||
if (labelLower.includes('php')) {
|
||||
return 'php'
|
||||
}
|
||||
if (labelLower.includes('go') || labelLower === 'golang') {
|
||||
return 'go'
|
||||
}
|
||||
if (labelLower.includes('http') || labelLower.includes('websocket')) {
|
||||
return 'http'
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
function isNode(value) {
|
||||
return !!(value?.$$mdtype === 'Node')
|
||||
}
|
||||
|
||||
function visit(node, visitor) {
|
||||
if (!node) return
|
||||
|
||||
visitor(node)
|
||||
|
||||
if (node.children) {
|
||||
for (const child of node.children) {
|
||||
if (!child || typeof child === 'string') {
|
||||
continue
|
||||
}
|
||||
visit(child, visitor)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ labels:
|
||||
- Decentralized Finance
|
||||
- Permissioned Domains
|
||||
---
|
||||
# Create Permissioned Domains
|
||||
# Create Permissioned Domains in JavaScript
|
||||
|
||||
Permissioned domains are controlled environments within the broader ecosystem of the XRP Ledger blockchain. Domains restrict access to other features such as Permissioned DEXes and Lending Protocols, only allowing access to them for accounts with specific credentials.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Add Assets to an AMM
|
||||
# Add Assets to an AMM in JavaScript
|
||||
|
||||
Follow the steps from the [Create an AMM](./create-an-automated-market-maker.md) tutorial before proceeding.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Trade with an AMM Auction Slot
|
||||
# Trade with an AMM Auction Slot in JavaScript
|
||||
|
||||
Follow the steps from the [Create an AMM](./create-an-automated-market-maker.md) tutorial before proceeding.
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
seo:
|
||||
description: Pool funds in a single asset vault and enable on-chain, fixed-term, uncollateralized loans.
|
||||
metadata:
|
||||
indexPage: true
|
||||
labels:
|
||||
- Lending Protocol
|
||||
- Single Asset Vault
|
||||
---
|
||||
# Set Up Lending
|
||||
|
||||
Pool funds in a single asset vault and enable on-chain, fixed-term, uncollateralized loans. The lending protocol is highly configurable, enabling loan brokers to easily tune risk appetite, depostitor protections, and economic incentives.
|
||||
|
||||
{% child-pages /%}
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
seo:
|
||||
description: Create, deposit into, and withdraw from single asset vaults.
|
||||
metadata:
|
||||
indexPage: true
|
||||
labels:
|
||||
- Single Asset Vault
|
||||
---
|
||||
# Use Single Asset Vaults
|
||||
|
||||
Single asset vaults aggregate assets from multiple depositors and make them available to other on-chain protocols.
|
||||
|
||||
{% child-pages /%}
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
seo:
|
||||
description: Create and manage loans on the XRP Ledger.
|
||||
metadata:
|
||||
indexPage: true
|
||||
labels:
|
||||
- Lending Protocol
|
||||
---
|
||||
# Use the Lending Protocol
|
||||
|
||||
The Lending Protocol enables you to create highly configurable loans on the XRP Ledger.
|
||||
|
||||
{% child-pages /%}
|
||||
@@ -1,29 +0,0 @@
|
||||
---
|
||||
seo:
|
||||
description: Learn how to get started building on the XRP Ledger with these helpful crypto wallet and blockchain tutorials for developers.
|
||||
---
|
||||
# Crypto Wallet and Blockchain Development Tutorials
|
||||
|
||||
The XRP Ledger tutorials walk you through the steps to learn and get started with the XRP Ledger and to use the ledger for advanced use cases.
|
||||
|
||||
## Get Started with SDKs
|
||||
|
||||
These tutorials walk you through the basics of building a very simple XRP Ledger-connected application using your favorite programming language.
|
||||
|
||||
{% card-grid %}
|
||||
|
||||
{% xrpl-card title="Javascript" body="Using the xrpl.js client library." href="/docs/tutorials/get-started/get-started-javascript/" image="/img/logos/javascript.svg" imageAlt="Javascript logo" /%}
|
||||
|
||||
{% xrpl-card title="Python" body="Using xrpl.py, a pure Python library." href="/docs/tutorials/get-started/get-started-python/" image="/img/logos/python.svg" imageAlt="Python logo" /%}
|
||||
|
||||
{% xrpl-card title="Go" body="Using xrpl-go, a pure Go library." href="/docs/tutorials/get-started/get-started-go/" image="/img/logos/golang.svg" imageAlt="Go logo" /%}
|
||||
|
||||
{% xrpl-card title="Java" body="Using xrpl4j, a pure Java library." href="/docs/tutorials/get-started/get-started-java/" image="/img/logos/java.svg" imageAlt="Java logo" /%}
|
||||
|
||||
{% xrpl-card title="PHP" body="Using the XRPL_PHP client library." href="/docs/tutorials/get-started/get-started-php/" image="/img/logos/php.svg" imageAlt="PHP logo" /%}
|
||||
|
||||
{% xrpl-card title="HTTP & WebSocket APIs" body="Access the XRP Ledger directly through the APIs of its core server." href="/docs/tutorials/get-started/get-started-http-websocket-apis/" image="/img/logos/globe.svg" imageAlt="globe icon" /%}
|
||||
|
||||
{% /card-grid %}
|
||||
|
||||
<!-- TODO: Add new sections for the new tutorial categories -->
|
||||
353
docs/tutorials/index.page.tsx
Normal file
353
docs/tutorials/index.page.tsx
Normal file
@@ -0,0 +1,353 @@
|
||||
import { useThemeHooks } from "@redocly/theme/core/hooks"
|
||||
|
||||
export const frontmatter = {
|
||||
seo: {
|
||||
title: "Tutorials",
|
||||
description:
|
||||
"Learn how to get started building on the XRP Ledger with these helpful crypto wallet and blockchain tutorials for developers.",
|
||||
},
|
||||
}
|
||||
|
||||
const langIcons: Record<string, { src: string; alt: string }> = {
|
||||
javascript: { src: "/img/logos/javascript.svg", alt: "JavaScript" },
|
||||
python: { src: "/img/logos/python.svg", alt: "Python" },
|
||||
java: { src: "/img/logos/java.svg", alt: "Java" },
|
||||
go: { src: "/img/logos/golang.svg", alt: "Go" },
|
||||
php: { src: "/img/logos/php.svg", alt: "PHP" },
|
||||
http: { src: "/img/logos/globe.svg", alt: "HTTP / WebSocket" },
|
||||
xrpl: { src: "/img/logos/xrp-mark.svg", alt: "XRP Ledger" },
|
||||
}
|
||||
|
||||
// Type for the tutorial languages map from the plugin
|
||||
type TutorialLanguagesMap = Record<string, string[]>
|
||||
|
||||
interface Tutorial {
|
||||
title: string
|
||||
body?: string
|
||||
path: string
|
||||
icon?: string // Single language icon (for single-language tutorials)
|
||||
}
|
||||
|
||||
interface TutorialSection {
|
||||
id: string
|
||||
title: string
|
||||
description: string
|
||||
tutorials: Tutorial[]
|
||||
}
|
||||
|
||||
// Get Started tutorials -----------------
|
||||
const getStartedTutorials: Tutorial[] = [
|
||||
{
|
||||
title: "JavaScript",
|
||||
body: "Using the xrpl.js client library.",
|
||||
path: "/docs/tutorials/get-started/get-started-javascript/",
|
||||
icon: "javascript",
|
||||
},
|
||||
{
|
||||
title: "Python",
|
||||
body: "Using xrpl.py, a pure Python library.",
|
||||
path: "/docs/tutorials/get-started/get-started-python/",
|
||||
icon: "python",
|
||||
},
|
||||
{
|
||||
title: "Go",
|
||||
body: "Using xrpl-go, a pure Go library.",
|
||||
path: "/docs/tutorials/get-started/get-started-go/",
|
||||
icon: "go",
|
||||
},
|
||||
{
|
||||
title: "Java",
|
||||
body: "Using xrpl4j, a pure Java library.",
|
||||
path: "/docs/tutorials/get-started/get-started-java/",
|
||||
icon: "java",
|
||||
},
|
||||
{
|
||||
title: "PHP",
|
||||
body: "Using the XRPL_PHP client library.",
|
||||
path: "/docs/tutorials/get-started/get-started-php/",
|
||||
icon: "php",
|
||||
},
|
||||
{
|
||||
title: "HTTP & WebSocket APIs",
|
||||
body: "Access the XRP Ledger directly through the APIs of its core server.",
|
||||
path: "/docs/tutorials/get-started/get-started-http-websocket-apis/",
|
||||
icon: "http",
|
||||
},
|
||||
]
|
||||
|
||||
// Other tutorial sections -----------------
|
||||
// Languages are auto-detected from the markdown files by the tutorial-languages plugin.
|
||||
// Only specify `icon` for single-language tutorials without tabs.
|
||||
const sections: TutorialSection[] = [
|
||||
{
|
||||
id: "tokens",
|
||||
title: "Tokens",
|
||||
description: "Create and manage tokens on the XRP Ledger.",
|
||||
tutorials: [
|
||||
{
|
||||
title: "Issue a Multi-Purpose Token",
|
||||
body: "Issue new tokens using the v2 fungible token standard.",
|
||||
path: "/docs/tutorials/tokens/mpts/issue-a-multi-purpose-token/",
|
||||
},
|
||||
{
|
||||
title: "Issue a Fungible Token",
|
||||
body: "Issue new tokens using the v1 fungible token standard.",
|
||||
path: "/docs/tutorials/tokens/fungible-tokens/issue-a-fungible-token/",
|
||||
},
|
||||
{
|
||||
title: "Mint and Burn NFTs Using JavaScript",
|
||||
body: "Create new NFTs, retrieve existing tokens, and burn the ones you no longer need.",
|
||||
path: "/docs/tutorials/tokens/nfts/mint-and-burn-nfts-js/",
|
||||
icon: "javascript",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "payments",
|
||||
title: "Payments",
|
||||
description: "Transfer XRP and issued currencies using various payment types.",
|
||||
tutorials: [
|
||||
{
|
||||
title: "Send XRP",
|
||||
body: "Send a direct XRP payment to another account.",
|
||||
path: "/docs/tutorials/payments/send-xrp/",
|
||||
},
|
||||
{
|
||||
title: "Sending MPTs in JavaScript",
|
||||
body: "Send a Multi-Purpose Token (MPT) to another account with the JavaScript SDK.",
|
||||
path: "/docs/tutorials/tokens/mpts/sending-mpts-in-javascript/",
|
||||
icon: "javascript",
|
||||
},
|
||||
{
|
||||
title: "Create Trust Line and Send Currency in JavaScript",
|
||||
body: "Set up trust lines and send issued currencies with the JavaScript SDK.",
|
||||
path: "/docs/tutorials/payments/create-trust-line-send-currency-in-javascript/",
|
||||
icon: "javascript",
|
||||
},
|
||||
{
|
||||
title: "Create Trust Line and Send Currency in Python",
|
||||
body: "Set up trust lines and send issued currencies with the Python SDK.",
|
||||
path: "/docs/tutorials/payments/create-trust-line-send-currency-in-python/",
|
||||
icon: "python",
|
||||
},
|
||||
{
|
||||
title: "Send a Conditional Escrow",
|
||||
body: "Send an escrow that can be released when a specific crypto-condition is fulfilled.",
|
||||
path: "/docs/tutorials/payments/send-a-conditional-escrow/",
|
||||
},
|
||||
{
|
||||
title: "Send a Timed Escrow",
|
||||
body: "Send an escrow whose only condition for release is that a specific time has passed.",
|
||||
path: "/docs/tutorials/payments/send-a-timed-escrow/",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "defi",
|
||||
title: "DeFi",
|
||||
description: "Trade, provide liquidity, and lend using native XRP Ledger DeFi features.",
|
||||
tutorials: [
|
||||
{
|
||||
title: "Create an Automated Market Maker",
|
||||
body: "Set up an AMM for a token pair and provide liquidity.",
|
||||
path: "/docs/tutorials/defi/dex/create-an-automated-market-maker/",
|
||||
},
|
||||
{
|
||||
title: "Trade in the Decentralized Exchange",
|
||||
body: "Buy and sell tokens in the Decentralized Exchange (DEX).",
|
||||
path: "/docs/tutorials/defi/dex/trade-in-the-decentralized-exchange/",
|
||||
},
|
||||
{
|
||||
title: "Create a Loan Broker",
|
||||
body: "Set up a loan broker to create and manage loans.",
|
||||
path: "/docs/tutorials/defi/lending/use-the-lending-protocol/create-a-loan-broker/",
|
||||
},
|
||||
{
|
||||
title: "Create a Loan",
|
||||
body: "Create a loan on the XRP Ledger.",
|
||||
path: "/docs/tutorials/defi/lending/use-the-lending-protocol/create-a-loan/",
|
||||
},
|
||||
{
|
||||
title: "Create a Single Asset Vault",
|
||||
body: "Create a single asset vault on the XRP Ledger.",
|
||||
path: "/docs/tutorials/defi/lending/use-single-asset-vaults/create-a-single-asset-vault/",
|
||||
},
|
||||
{
|
||||
title: "Deposit into a Vault",
|
||||
body: "Deposit assets into a vault and receive shares.",
|
||||
path: "/docs/tutorials/defi/lending/use-single-asset-vaults/deposit-into-a-vault/",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "best-practices",
|
||||
title: "Best Practices",
|
||||
description: "Learn recommended patterns for building reliable, secure applications on the XRP Ledger.",
|
||||
tutorials: [
|
||||
{
|
||||
title: "API Usage",
|
||||
body: "Best practices for using XRP Ledger APIs.",
|
||||
path: "/docs/tutorials/best-practices/api-usage/",
|
||||
},
|
||||
{
|
||||
title: "Use Tickets",
|
||||
body: "Use tickets to send transactions out of the normal order.",
|
||||
path: "/docs/tutorials/best-practices/transaction-sending/use-tickets/",
|
||||
},
|
||||
{
|
||||
title: "Send a Single Account Batch Transaction",
|
||||
body: "Group multiple transactions together and execute them as a single atomic operation.",
|
||||
path: "/docs/tutorials/best-practices/transaction-sending/send-a-single-account-batch-transaction/",
|
||||
},
|
||||
{
|
||||
title: "Assign a Regular Key Pair",
|
||||
body: "Assign a regular key pair for signing transactions.",
|
||||
path: "/docs/tutorials/best-practices/key-management/assign-a-regular-key-pair/",
|
||||
},
|
||||
{
|
||||
title: "Set Up Multi-Signing",
|
||||
body: "Configure multi-signing for enhanced security.",
|
||||
path: "/docs/tutorials/best-practices/key-management/set-up-multi-signing/",
|
||||
},
|
||||
{
|
||||
title: "Send a Multi-Signed Transaction",
|
||||
body: "Send a transaction with multiple signatures.",
|
||||
path: "/docs/tutorials/best-practices/key-management/send-a-multi-signed-transaction/",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "sample-apps",
|
||||
title: "Sample Apps",
|
||||
description: "Build complete, end-to-end applications like wallets and credential services.",
|
||||
tutorials: [
|
||||
{
|
||||
title: "Build a Browser Wallet in JavaScript",
|
||||
body: "Build a browser wallet for the XRP Ledger using JavaScript and various libraries.",
|
||||
path: "/docs/tutorials/sample-apps/build-a-browser-wallet-in-javascript/",
|
||||
icon: "javascript",
|
||||
},
|
||||
{
|
||||
title: "Build a Desktop Wallet in JavaScript",
|
||||
body: "Build a desktop wallet for the XRP Ledger using JavaScript, the Electron Framework, and various libraries.",
|
||||
path: "/docs/tutorials/sample-apps/build-a-desktop-wallet-in-javascript/",
|
||||
icon: "javascript",
|
||||
},
|
||||
{
|
||||
title: "Build a Desktop Wallet in Python",
|
||||
body: "Build a desktop wallet for the XRP Ledger using Python and various libraries.",
|
||||
path: "/docs/tutorials/sample-apps/build-a-desktop-wallet-in-python/",
|
||||
icon: "python",
|
||||
},
|
||||
{
|
||||
title: "Credential Issuing Service in JavaScript",
|
||||
body: "Build a credential issuing service using the JavaScript SDK.",
|
||||
path: "/docs/tutorials/sample-apps/credential-issuing-service-in-javascript/",
|
||||
icon: "javascript",
|
||||
},
|
||||
{
|
||||
title: "Credential Issuing Service in Python",
|
||||
body: "Build a credential issuing service using the Python SDK.",
|
||||
path: "/docs/tutorials/sample-apps/credential-issuing-service-in-python/",
|
||||
icon: "python",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
function TutorialCard({
|
||||
tutorial,
|
||||
detectedLanguages,
|
||||
showFooter = false,
|
||||
translate,
|
||||
}: {
|
||||
tutorial: Tutorial
|
||||
detectedLanguages?: string[]
|
||||
showFooter?: boolean
|
||||
translate: (text: string) => string
|
||||
}) {
|
||||
// Get icons: auto-detected languages take priority, then manual icon, then XRPL fallback
|
||||
const icons = detectedLanguages && detectedLanguages.length > 0
|
||||
? detectedLanguages.map((lang) => langIcons[lang]).filter(Boolean)
|
||||
: tutorial.icon && langIcons[tutorial.icon]
|
||||
? [langIcons[tutorial.icon]]
|
||||
: [langIcons.xrpl]
|
||||
|
||||
return (
|
||||
<a href={tutorial.path} className="card">
|
||||
<div className="card-header d-flex align-items-center flex-wrap">
|
||||
{icons.map((icon, idx) => (
|
||||
<span className="circled-logo" key={idx}>
|
||||
<img src={icon.src} alt={icon.alt} />
|
||||
</span>
|
||||
))}
|
||||
</div>
|
||||
<div className="card-body">
|
||||
<h4 className="card-title h5">{translate(tutorial.title)}</h4>
|
||||
{tutorial.body && <p className="card-text">{translate(tutorial.body)}</p>}
|
||||
</div>
|
||||
{showFooter && <div className="card-footer"></div>}
|
||||
</a>
|
||||
)
|
||||
}
|
||||
|
||||
export default function TutorialsIndex() {
|
||||
const { useTranslate, usePageSharedData } = useThemeHooks()
|
||||
const { translate } = useTranslate()
|
||||
|
||||
// Get auto-detected languages from the plugin (maps tutorial paths to language arrays).
|
||||
const tutorialLanguages = usePageSharedData<TutorialLanguagesMap>("tutorial-languages") || {}
|
||||
|
||||
return (
|
||||
<main className="landing page-tutorials landing-builtin-bg">
|
||||
<section className="container-new py-26">
|
||||
<div className="col-lg-8 mx-auto text-lg-center">
|
||||
<div className="d-flex flex-column-reverse">
|
||||
<h1 className="mb-0">
|
||||
{translate("Crypto Wallet and Blockchain Development Tutorials")}
|
||||
</h1>
|
||||
<h6 className="eyebrow mb-3">{translate("Tutorials")}</h6>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Get Started */}
|
||||
<section className="container-new pt-10 pb-20">
|
||||
<div className="col-12 col-xl-8 p-0">
|
||||
<h3 className="h4 mb-3">{translate("Get Started with SDKs")}</h3>
|
||||
<p className="mb-4">
|
||||
{translate("These tutorials walk you through the basics of building a very simple XRP Ledger-connected application using your favorite programming language.")}
|
||||
</p>
|
||||
</div>
|
||||
<div className="row tutorial-cards">
|
||||
{getStartedTutorials.map((tutorial, idx) => (
|
||||
<div key={idx} className="col-lg-4 col-md-6 mb-5">
|
||||
<TutorialCard tutorial={tutorial} showFooter translate={translate} />
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Other Tutorials */}
|
||||
{sections.map((section) => (
|
||||
<section className="container-new pt-10 pb-10" key={section.id}>
|
||||
<div className="col-12 col-xl-8 p-0">
|
||||
<h3 className="h4 mb-3">{translate(section.title)}</h3>
|
||||
<p className="mb-4">{translate(section.description)}</p>
|
||||
</div>
|
||||
<div className="row tutorial-cards">
|
||||
{section.tutorials.slice(0, 6).map((tutorial, idx) => (
|
||||
<div key={idx} className="col-lg-4 col-md-6 mb-5">
|
||||
<TutorialCard
|
||||
tutorial={tutorial}
|
||||
detectedLanguages={tutorialLanguages[tutorial.path]}
|
||||
translate={translate}
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
))}
|
||||
</main>
|
||||
)
|
||||
}
|
||||
@@ -5,7 +5,7 @@ labels:
|
||||
- Tokens
|
||||
- MPT
|
||||
---
|
||||
# Sending MPTs
|
||||
# Sending MPTs in JavaScript
|
||||
|
||||
To send an MPT to another account, the receiving account must first authorize the receipt of the MPT, based on its MPToken Issuance ID. This is to prevent malicious users from spamming accounts with unwanted tokens that could negatively impact storage and XRP reserves.
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ labels:
|
||||
- XRP
|
||||
---
|
||||
|
||||
# Batch Mint NFTs
|
||||
# Batch Mint NFTs Using Python
|
||||
|
||||
You can create an application that mints multiple NFTs at one time, using a `for` loop to send one transaction after another.
|
||||
|
||||
|
||||
420
redirects.yaml
420
redirects.yaml
@@ -1,9 +1,7 @@
|
||||
# Docs Redirects ---------------------------------------------------------------
|
||||
|
||||
/resources/contribute-documentation/tutorial-structure/:
|
||||
to: /resources/contribute-documentation/tutorial-guidelines/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/use-an-escrow-as-a-smart-contract:
|
||||
to: /docs/tutorials/payments/send-a-conditional-escrow/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditional-escrow
|
||||
/docs/references/protocol/transactions/pseudo-transaction-types/pseudo-transaction-types/:
|
||||
to: /docs/references/protocol/transactions/pseudo-transaction-types/
|
||||
/docs/concepts/tokens/transfer-fees/:
|
||||
@@ -29,250 +27,21 @@
|
||||
/docs/concepts/accounts/decentralized-identifiers/:
|
||||
to: /docs/concepts/decentralized-storage/decentralized-identifiers/
|
||||
/docs/tutorials/javascript/trade-on-ledger/:
|
||||
to: /docs/tutorials/defi/dex/trade-in-the-decentralized-exchange/
|
||||
to: /docs/tutorials/javascript/amm/
|
||||
/docs/tutorials/javascript/trade-on-ledger/earn-passive-income-as-a-liquidity-provider:
|
||||
to: /docs/tutorials/defi/dex/add-assets-to-amm-in-javascript/
|
||||
to: /docs/tutorials/javascript/amm/add-assets-to-amm
|
||||
/docs/tutorials/javascript/trade-on-ledger/use-amm-auction-slot-for-lower-fees:
|
||||
to: /docs/tutorials/defi/dex/trade-with-auction-slot-in-javascript/
|
||||
to: /docs/tutorials/javascript/amm/trade-with-auction-slot
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-recipient:
|
||||
to: /docs/tutorials/payments/look-up-checks/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-sender:
|
||||
to: /docs/tutorials/payments/look-up-checks/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/use-checks:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks
|
||||
/docs/references/http-websocket-apis/public-api-methods/clio-server:
|
||||
to: /docs/references/http-websocket-apis/public-api-methods/clio-methods
|
||||
/docs/references/protocol/transactions/transaction-results/transaction-results:
|
||||
to: /docs/references/protocol/transactions/transaction-results
|
||||
|
||||
# Docs redirects for Tutorials IAv4: -------------------------------------------
|
||||
|
||||
/docs/tutorials/python/build-apps/credential-issuing-service/:
|
||||
to: /docs/tutorials/sample-apps/credential-issuing-service-in-python/
|
||||
/docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python/:
|
||||
to: /docs/tutorials/sample-apps/build-a-desktop-wallet-in-python/
|
||||
/docs/tutorials/python/build-apps/get-started/:
|
||||
to: /docs/tutorials/get-started/get-started-python/
|
||||
/docs/tutorials/python/send-payments/send-and-cash-checks/:
|
||||
to: /docs/tutorials/payments/send-a-check/
|
||||
/docs/tutorials/python/send-payments/create-time-based-escrows/:
|
||||
to: /docs/tutorials/payments/send-a-timed-escrow/
|
||||
/docs/tutorials/python/send-payments/create-trust-line-send-currency/:
|
||||
to: /docs/tutorials/payments/create-trust-line-send-currency-in-python/
|
||||
/docs/tutorials/python/send-payments/create-accounts-send-xrp/:
|
||||
to: /docs/tutorials/payments/send-xrp/
|
||||
/docs/tutorials/python/send-payments/create-conditional-escrows/:
|
||||
to: /docs/tutorials/payments/send-a-conditional-escrow/
|
||||
/docs/tutorials/python/nfts/assign-an-authorized-minter/:
|
||||
to: /docs/tutorials/tokens/nfts/assign-an-authorized-minter-py/
|
||||
/docs/tutorials/python/nfts/broker-an-nft-sale/:
|
||||
to: /docs/tutorials/tokens/nfts/broker-an-nft-sale-py/
|
||||
/docs/tutorials/python/nfts/mint-and-burn-nfts/:
|
||||
to: /docs/tutorials/tokens/nfts/mint-and-burn-nfts-py/
|
||||
/docs/tutorials/python/nfts/batch-mint-nfts/:
|
||||
to: /docs/tutorials/tokens/nfts/batch-mint-nfts-py/
|
||||
/docs/tutorials/python/nfts/transfer-nfts/:
|
||||
to: /docs/tutorials/tokens/nfts/transfer-nfts-py/
|
||||
/docs/tutorials/python/compliance/verify-credential/:
|
||||
to: /docs/tutorials/compliance-features/verify-credentials/
|
||||
/docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript/:
|
||||
to: /docs/tutorials/sample-apps/build-a-desktop-wallet-in-javascript/
|
||||
/docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/:
|
||||
to: /docs/tutorials/sample-apps/build-a-browser-wallet-in-javascript/
|
||||
/docs/tutorials/javascript/send-payments/sending-mpts/:
|
||||
to: /docs/tutorials/tokens/mpts/sending-mpts-in-javascript/
|
||||
/docs/tutorials/javascript/send-payments/create-offers/:
|
||||
to: /docs/tutorials/defi/dex/trade-in-the-decentralized-exchange/
|
||||
/docs/tutorials/javascript/compliance/create-permissioned-domains/:
|
||||
to: /docs/tutorials/compliance-features/create-permissioned-domains-in-javascript/
|
||||
/docs/tutorials/javascript/amm/add-assets-to-amm/:
|
||||
to: /docs/tutorials/defi/dex/add-assets-to-amm-in-javascript/
|
||||
/docs/tutorials/javascript/amm/trade-with-auction-slot/:
|
||||
to: /docs/tutorials/defi/dex/trade-with-auction-slot-in-javascript/
|
||||
/docs/tutorials/javascript/amm/create-an-amm/:
|
||||
to: /docs/tutorials/defi/dex/create-an-automated-market-maker/
|
||||
/docs/tutorials/how-tos/send-xrp/:
|
||||
to: /docs/tutorials/payments/send-xrp/
|
||||
/docs/tutorials/how-tos/testing-devnet-features/:
|
||||
to: /docs/tutorials/advanced-developer-topics/protocol-development/testing-devnet-features/
|
||||
/docs/tutorials/how-tos/use-tokens/enact-global-freeze/:
|
||||
to: /docs/tutorials/tokens/fungible-tokens/enact-global-freeze/
|
||||
/docs/tutorials/how-tos/use-tokens/freeze-a-trust-line/:
|
||||
to: /docs/tutorials/tokens/fungible-tokens/freeze-a-trust-line/
|
||||
/docs/tutorials/how-tos/use-tokens/issue-a-multi-purpose-token/:
|
||||
to: /docs/tutorials/tokens/mpts/issue-a-multi-purpose-token/
|
||||
/docs/tutorials/how-tos/use-tokens/issue-a-fungible-token/:
|
||||
to: /docs/tutorials/tokens/fungible-tokens/issue-a-fungible-token/
|
||||
/docs/tutorials/how-tos/use-tokens/enable-no-freeze/:
|
||||
to: /docs/tutorials/tokens/fungible-tokens/enable-no-freeze/
|
||||
/docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange/:
|
||||
to: /docs/tutorials/defi/dex/trade-in-the-decentralized-exchange/
|
||||
/docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker/:
|
||||
to: /docs/tutorials/defi/dex/create-an-automated-market-maker/
|
||||
/docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction/:
|
||||
to: /docs/tutorials/programmability/submit-cross-chain-transaction/
|
||||
/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge/:
|
||||
to: /docs/tutorials/programmability/set-up-xrp-xrp-bridge/
|
||||
/docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge/:
|
||||
to: /docs/tutorials/programmability/set-up-iou-iou-bridge/
|
||||
/docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair/:
|
||||
to: /docs/tutorials/best-practices/key-management/disable-master-key-pair/
|
||||
/docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction/:
|
||||
to: /docs/tutorials/best-practices/key-management/send-a-multi-signed-transaction/
|
||||
/docs/tutorials/how-tos/manage-account-settings/offline-account-setup/:
|
||||
to: /docs/tutorials/best-practices/key-management/offline-account-setup/
|
||||
/docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair/:
|
||||
to: /docs/tutorials/best-practices/key-management/assign-a-regular-key-pair/
|
||||
/docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing/:
|
||||
to: /docs/tutorials/best-practices/key-management/set-up-multi-signing/
|
||||
/docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair/:
|
||||
to: /docs/tutorials/best-practices/key-management/change-or-remove-a-regular-key-pair/
|
||||
/docs/tutorials/how-tos/manage-account-settings/use-tickets/:
|
||||
to: /docs/tutorials/best-practices/transaction-sending/use-tickets/
|
||||
/docs/tutorials/how-tos/manage-account-settings/require-destination-tags/:
|
||||
to: /docs/tutorials/compliance-features/require-destination-tags/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow/:
|
||||
to: /docs/tutorials/payments/cancel-an-expired-escrow/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditional-escrow/:
|
||||
to: /docs/tutorials/payments/send-a-conditional-escrow/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-timed-escrow/:
|
||||
to: /docs/tutorials/payments/send-a-timed-escrow/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows/:
|
||||
to: /docs/tutorials/payments/look-up-escrows/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check/:
|
||||
to: /docs/tutorials/payments/send-a-check/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount/:
|
||||
to: /docs/tutorials/payments/cash-a-check-for-an-exact-amount/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check/:
|
||||
to: /docs/tutorials/payments/cancel-a-check/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount/:
|
||||
to: /docs/tutorials/payments/cash-a-check-for-a-flexible-amount/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks/:
|
||||
to: /docs/tutorials/payments/look-up-checks/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/open-a-payment-channel-to-enable-an-inter-exchange-network/:
|
||||
to: /docs/tutorials/payments/use-payment-channels/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-the-lending-protocol/manage-a-loan/:
|
||||
to: /docs/tutorials/defi/lending/use-the-lending-protocol/manage-a-loan/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-the-lending-protocol/claw-back-cover/:
|
||||
to: /docs/tutorials/defi/lending/use-the-lending-protocol/claw-back-cover/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-the-lending-protocol/create-a-loan-broker/:
|
||||
to: /docs/tutorials/defi/lending/use-the-lending-protocol/create-a-loan-broker/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-the-lending-protocol/deposit-and-withdraw-cover/:
|
||||
to: /docs/tutorials/defi/lending/use-the-lending-protocol/deposit-and-withdraw-cover/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-the-lending-protocol/pay-off-a-loan/:
|
||||
to: /docs/tutorials/defi/lending/use-the-lending-protocol/pay-off-a-loan/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-the-lending-protocol/create-a-loan/:
|
||||
to: /docs/tutorials/defi/lending/use-the-lending-protocol/create-a-loan/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-single-asset-vaults/withdraw-from-a-vault/:
|
||||
to: /docs/tutorials/defi/lending/use-single-asset-vaults/withdraw-from-a-vault/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-single-asset-vaults/create-a-single-asset-vault/:
|
||||
to: /docs/tutorials/defi/lending/use-single-asset-vaults/create-a-single-asset-vault/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-single-asset-vaults/deposit-into-a-vault/:
|
||||
to: /docs/tutorials/defi/lending/use-single-asset-vaults/deposit-into-a-vault/
|
||||
/docs/tutorials/how-tos/use-batch-transactions/send-a-multi-account-batch-transaction/:
|
||||
to: /docs/tutorials/best-practices/transaction-sending/send-a-multi-account-batch-transaction/
|
||||
/docs/tutorials/how-tos/use-batch-transactions/send-a-single-account-batch-transaction/:
|
||||
to: /docs/tutorials/best-practices/transaction-sending/send-a-single-account-batch-transaction/
|
||||
/docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket/:
|
||||
to: /docs/tutorials/advanced-developer-topics/client-library-development/monitor-incoming-payments-with-websocket/
|
||||
/docs/tutorials/php/build-apps/get-started/:
|
||||
to: /docs/tutorials/get-started/get-started-php/
|
||||
/docs/tutorials/javascript/build-apps/get-started/:
|
||||
to: /docs/tutorials/get-started/get-started-javascript/
|
||||
/docs/tutorials/go/build-apps/get-started/:
|
||||
to: /docs/tutorials/get-started/get-started-go/
|
||||
/docs/tutorials/java/build-apps/get-started/:
|
||||
to: /docs/tutorials/get-started/get-started-java/
|
||||
/docs/tutorials/http-websocket-apis/build-apps/get-started/:
|
||||
to: /docs/tutorials/get-started/get-started-http-websocket-apis/
|
||||
/docs/tutorials/javascript/build-apps/credential-issuing-service/:
|
||||
to: /docs/tutorials/sample-apps/credential-issuing-service-in-javascript/
|
||||
/docs/tutorials/javascript/send-payments/send-and-cash-checks/:
|
||||
to: /docs/tutorials/payments/send-a-check/
|
||||
/docs/tutorials/javascript/send-payments/create-time-based-escrows/:
|
||||
to: /docs/tutorials/payments/send-a-timed-escrow/
|
||||
/docs/tutorials/javascript/send-payments/create-trust-line-send-currency/:
|
||||
to: /docs/tutorials/payments/create-trust-line-send-currency-in-javascript/
|
||||
/docs/tutorials/javascript/send-payments/create-accounts-send-xrp/:
|
||||
to: /docs/tutorials/payments/send-xrp/
|
||||
/docs/tutorials/javascript/send-payments/create-conditional-escrows/:
|
||||
to: /docs/tutorials/payments/send-a-conditional-escrow/
|
||||
/docs/tutorials/javascript/nfts/assign-an-authorized-minter/:
|
||||
to: /docs/tutorials/tokens/nfts/assign-an-authorized-minter-js/
|
||||
/docs/tutorials/javascript/nfts/broker-an-nft-sale/:
|
||||
to: /docs/tutorials/tokens/nfts/broker-an-nft-sale-js/
|
||||
/docs/tutorials/javascript/nfts/mint-and-burn-nfts/:
|
||||
to: /docs/tutorials/tokens/nfts/mint-and-burn-nfts-js/
|
||||
/docs/tutorials/javascript/nfts/batch-mint-nfts/:
|
||||
to: /docs/tutorials/tokens/nfts/batch-mint-nfts-js/
|
||||
/docs/tutorials/javascript/nfts/transfer-nfts/:
|
||||
to: /docs/tutorials/tokens/nfts/transfer-nfts-js/
|
||||
/docs/tutorials/javascript/compliance/verify-credential/:
|
||||
to: /docs/tutorials/compliance-features/verify-credentials/
|
||||
/docs/tutorials/python/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/python/build-apps/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/python/send-payments/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/python/nfts/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/python/compliance/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/php/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/php/build-apps/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/javascript/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/javascript/build-apps/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/javascript/send-payments/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/javascript/nfts/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/javascript/compliance/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/javascript/amm/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/go/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/go/build-apps/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/how-tos/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/how-tos/use-tokens/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/how-tos/use-xrpl-sidechains/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/how-tos/manage-account-settings/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-checks/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels/:
|
||||
to: /docs/tutorials/payments/use-payment-channels/
|
||||
/docs/tutorials/how-tos/set-up-lending/:
|
||||
to: /docs/tutorials/defi/lending/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-the-lending-protocol/:
|
||||
to: /docs/tutorials/defi/lending/use-the-lending-protocol/
|
||||
/docs/tutorials/how-tos/set-up-lending/use-single-asset-vaults/:
|
||||
to: /docs/tutorials/defi/lending/use-single-asset-vaults/
|
||||
/docs/tutorials/how-tos/use-batch-transactions/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/java/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/java/build-apps/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/http-websocket-apis/:
|
||||
to: /docs/tutorials/
|
||||
/docs/tutorials/http-websocket-apis/build-apps/:
|
||||
to: /docs/tutorials/
|
||||
|
||||
# Redirects from pre-Redocly .html URLs ----------------------------------------
|
||||
xrp-ledger-rpc-tool.html:
|
||||
to: /resources/dev-tools/rpc-tool
|
||||
xrp-ledger-toml-checker.html:
|
||||
@@ -604,25 +373,25 @@ witness-servers.html:
|
||||
public-servers.html:
|
||||
to: /docs/tutorials/public-servers
|
||||
python.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/python/
|
||||
get-started-using-python.html:
|
||||
to: /docs/tutorials/get-started/get-started-python/
|
||||
to: /docs/tutorials/python/get-started
|
||||
docs/tutorials/python/get-started/:
|
||||
to: /docs/tutorials/get-started/get-started-python/
|
||||
to: docs/tutorials/python/build-apps/get-started/
|
||||
modular-tutorials-in-python.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/python/
|
||||
send-payments-using-python.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/python/send-payments
|
||||
py-create-accounts-send-xrp.html:
|
||||
to: /docs/tutorials/payments/send-xrp/
|
||||
to: /docs/tutorials/python/send-payments/create-accounts-send-xrp
|
||||
py-create-trustline-send-currency.html:
|
||||
to: /docs/tutorials/python/send-payments/create-trustline-send-currency
|
||||
py-create-time-based-escrows.html:
|
||||
to: /docs/tutorials/payments/send-a-timed-escrow/
|
||||
to: /docs/tutorials/python/send-payments/create-time-based-escrows
|
||||
py-mint-and-burn-nfts.html:
|
||||
to: /docs/tutorials/tokens/nfts/mint-and-burn-nfts-py/
|
||||
to: /docs/tutorials/python/nfts/mint-and-burn-nfts
|
||||
py-transfer-nfts.html:
|
||||
to: /docs/tutorials/tokens/nfts/transfer-nfts-py/
|
||||
to: /docs/tutorials/python/nfts/transfer-nfts
|
||||
py-broker-sale.html:
|
||||
to: /docs/tutorials/python/nfts/broker-sale
|
||||
py-authorize-minter.html:
|
||||
@@ -630,155 +399,155 @@ py-authorize-minter.html:
|
||||
py-batch-minting.html:
|
||||
to: /docs/tutorials/python/nfts/batch-minting
|
||||
build-a-desktop-wallet-in-python.html:
|
||||
to: /docs/tutorials/sample-apps/build-a-desktop-wallet-in-python/
|
||||
to: /docs/tutorials/python/build-apps/build-a-desktop-wallet-in-python
|
||||
javascript.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/javascript/
|
||||
get-started-using-javascript.html:
|
||||
to: /docs/tutorials/get-started/get-started-javascript/
|
||||
to: /docs/tutorials/javascript/build-apps/get-started
|
||||
docs/tutorials/javascript/get-started:
|
||||
to: docs/tutorials/javascript/build-apps/get-started/
|
||||
docs/tutorials/javascript/get-started/:
|
||||
to: docs/tutorials/javascript/build-apps/get-started/
|
||||
get-started-using-node-js.html:
|
||||
to: /docs/tutorials/get-started/get-started-javascript/
|
||||
to: /docs/tutorials/javascript/build-apps/get-started
|
||||
get-started-with-rippleapi-for-javascript.html:
|
||||
to: /docs/tutorials/get-started/get-started-javascript/
|
||||
to: /docs/tutorials/javascript/build-apps/get-started
|
||||
modular-tutorials-in-javascript.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/javascript/
|
||||
send-payments-using-javascript.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/javascript/send-payments
|
||||
create-accounts-send-xrp-using-javascript.html:
|
||||
to: /docs/tutorials/payments/send-xrp/
|
||||
to: /docs/tutorials/javascript/send-payments/create-accounts-send-xrp
|
||||
create-trustline-send-currency-using-javascript.html:
|
||||
to: /docs/tutorials/javascript/send-payments/create-trustline-send-currency
|
||||
create-time-based-escrows-using-javascript.html:
|
||||
to: /docs/tutorials/payments/send-a-timed-escrow/
|
||||
to: /docs/tutorials/javascript/send-payments/create-time-based-escrows
|
||||
create-conditional-escrows-using-javascript.html:
|
||||
to: /docs/tutorials/payments/send-a-conditional-escrow/
|
||||
to: /docs/tutorials/javascript/send-payments/create-conditional-escrows
|
||||
nfts-using-javascript.html:
|
||||
to: /docs/tutorials/javascript/nfts-using-javascript/
|
||||
nfts-using-python.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/python/nfts
|
||||
mint-and-burn-nfts-using-javascript.html:
|
||||
to: /docs/tutorials/tokens/nfts/mint-and-burn-nfts-js/
|
||||
to: /docs/tutorials/javascript/nfts/mint-and-burn-nfts
|
||||
transfer-nfts-using-javascript.html:
|
||||
to: /docs/tutorials/tokens/nfts/transfer-nfts-js/
|
||||
to: /docs/tutorials/javascript/nfts/transfer-nfts
|
||||
broker-an-nft-sale-using-javascript.html:
|
||||
to: /docs/tutorials/tokens/nfts/broker-an-nft-sale-js/
|
||||
to: /docs/tutorials/javascript/nfts/broker-an-nft-sale
|
||||
assign-an-authorized-minter-using-javascript.html:
|
||||
to: /docs/tutorials/tokens/nfts/assign-an-authorized-minter-js/
|
||||
to: /docs/tutorials/javascript/nfts/assign-an-authorized-minter
|
||||
batch-mint-nfts-using-javascript.html:
|
||||
to: /docs/tutorials/tokens/nfts/batch-mint-nfts-js/
|
||||
to: /docs/tutorials/javascript/nfts/batch-mint-nfts
|
||||
build-a-browser-wallet-in-javascript.html:
|
||||
to: /docs/tutorials/sample-apps/build-a-browser-wallet-in-javascript/
|
||||
to: /docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/
|
||||
build-a-browser-wallet-using-javascript.html:
|
||||
to: /docs/tutorials/sample-apps/build-a-browser-wallet-in-javascript/
|
||||
to: /docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/
|
||||
docs/tutorials/javascript/build-a-browser-wallet-in-javascript:
|
||||
to: docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/
|
||||
docs/tutorials/javascript/build-a-browser-wallet-in-javascript/:
|
||||
to: docs/tutorials/javascript/build-apps/build-a-browser-wallet-in-javascript/
|
||||
build-a-desktop-wallet-in-javascript.html:
|
||||
to: /docs/tutorials/sample-apps/build-a-desktop-wallet-in-javascript/
|
||||
to: /docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript
|
||||
docs/tutorials/javascript/build-a-desktop-wallet-in-javascript:
|
||||
to: /docs/tutorials/sample-apps/build-a-desktop-wallet-in-javascript/
|
||||
to: /docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript
|
||||
docs/tutorials/javascript/build-a-desktop-wallet-in-javascript/:
|
||||
to: /docs/tutorials/sample-apps/build-a-desktop-wallet-in-javascript/
|
||||
to: /docs/tutorials/javascript/build-apps/build-a-desktop-wallet-in-javascript
|
||||
java.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/java/
|
||||
get-started-using-java.html:
|
||||
to: /docs/tutorials/get-started/get-started-java/
|
||||
to: /docs/tutorials/java/build-apps/get-started
|
||||
docs/tutorials/java/get-started:
|
||||
to: /docs/tutorials/get-started/get-started-java/
|
||||
to: /docs/tutorials/java/build-apps/get-started
|
||||
docs/tutorials/java/get-started/:
|
||||
to: /docs/tutorials/get-started/get-started-java/
|
||||
to: /docs/tutorials/java/build-apps/get-started
|
||||
php.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/php
|
||||
get-started-using-php.html:
|
||||
to: /docs/tutorials/get-started/get-started-php/
|
||||
to: /docs/tutorials/php/build-apps/get-started
|
||||
http-websocket-apis-tutorials.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/http-websocket-apis/
|
||||
get-started-with-the-rippled-api.html:
|
||||
to: /docs/tutorials/get-started/get-started-http-websocket-apis/
|
||||
to: /docs/tutorials/http-websocket-apis/build-apps/get-started
|
||||
get-started-using-http-websocket-apis.html:
|
||||
to: /docs/tutorials/get-started/get-started-http-websocket-apis/
|
||||
to: /docs/tutorials/http-websocket-apis/build-apps/get-started/
|
||||
docs/tutorials/http-websocket-apis/get-started:
|
||||
to: /docs/tutorials/get-started/get-started-http-websocket-apis/
|
||||
to: /docs/tutorials/http-websocket-apis/build-apps/get-started/
|
||||
docs/tutorials/http-websocket-apis/get-started/:
|
||||
to: /docs/tutorials/get-started/get-started-http-websocket-apis/
|
||||
to: /docs/tutorials/http-websocket-apis/build-apps/get-started/
|
||||
monitor-incoming-payments-with-websocket.html:
|
||||
to: /docs/tutorials/advanced-developer-topics/client-library-development/monitor-incoming-payments-with-websocket/
|
||||
to: /docs/tutorials/http-websocket-apis/build-apps/monitor-incoming-payments-with-websocket
|
||||
tasks.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/how-tos/
|
||||
manage-account-settings.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/how-tos/manage-account-settings/
|
||||
assign-a-regular-key-pair.html:
|
||||
to: /docs/tutorials/best-practices/key-management/assign-a-regular-key-pair/
|
||||
to: /docs/tutorials/how-tos/manage-account-settings/assign-a-regular-key-pair
|
||||
change-or-remove-a-regular-key-pair.html:
|
||||
to: /docs/tutorials/best-practices/key-management/change-or-remove-a-regular-key-pair/
|
||||
to: /docs/tutorials/how-tos/manage-account-settings/change-or-remove-a-regular-key-pair
|
||||
disable-master-key-pair.html:
|
||||
to: /docs/tutorials/best-practices/key-management/disable-master-key-pair/
|
||||
to: /docs/tutorials/how-tos/manage-account-settings/disable-master-key-pair
|
||||
set-up-multi-signing.html:
|
||||
to: /docs/tutorials/best-practices/key-management/set-up-multi-signing/
|
||||
to: /docs/tutorials/how-tos/manage-account-settings/set-up-multi-signing
|
||||
send-a-multi-signed-transaction.html:
|
||||
to: /docs/tutorials/best-practices/key-management/send-a-multi-signed-transaction/
|
||||
to: /docs/tutorials/how-tos/manage-account-settings/send-a-multi-signed-transaction
|
||||
require-destination-tags.html:
|
||||
to: /docs/tutorials/compliance-features/require-destination-tags/
|
||||
to: /docs/tutorials/how-tos/manage-account-settings/require-destination-tags
|
||||
offline-account-setup.html:
|
||||
to: /docs/tutorials/best-practices/key-management/offline-account-setup/
|
||||
to: /docs/tutorials/how-tos/manage-account-settings/offline-account-setup
|
||||
use-tickets.html:
|
||||
to: /docs/tutorials/best-practices/transaction-sending/use-tickets/
|
||||
to: /docs/tutorials/how-tos/manage-account-settings/use-tickets
|
||||
send-xrp.html:
|
||||
to: /docs/tutorials/payments/send-xrp/
|
||||
to: /docs/tutorials/how-tos/send-xrp
|
||||
use-specialized-payment-types.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/
|
||||
use-complex-payment-types.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/
|
||||
use-escrows.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/
|
||||
send-a-time-held-escrow.html:
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-time-held-escrow
|
||||
send-a-conditionally-held-escrow.html:
|
||||
to: /docs/tutorials/payments/send-a-conditional-escrow/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditional-escrow
|
||||
cancel-an-expired-escrow.html:
|
||||
to: /docs/tutorials/payments/cancel-an-expired-escrow/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/cancel-an-expired-escrow
|
||||
look-up-escrows.html:
|
||||
to: /docs/tutorials/payments/look-up-escrows/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/look-up-escrows
|
||||
use-an-escrow-as-a-smart-contract.html:
|
||||
to: /docs/tutorials/payments/send-a-conditional-escrow/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditional-escrow
|
||||
use-payment-channels.html:
|
||||
to: /docs/tutorials/payments/use-payment-channels/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-payment-channels
|
||||
open-a-payment-channel-to-enable-an-inter-exchange-network.html:
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/open-a-payment-channel-to-enable-an-inter-exchange-network
|
||||
use-checks.html:
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/use-checks
|
||||
send-a-check.html:
|
||||
to: /docs/tutorials/payments/send-a-check/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/send-a-check
|
||||
cash-a-check-for-an-exact-amount.html:
|
||||
to: /docs/tutorials/payments/cash-a-check-for-an-exact-amount/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-an-exact-amount
|
||||
cash-a-check-for-a-flexible-amount.html:
|
||||
to: /docs/tutorials/payments/cash-a-check-for-a-flexible-amount/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cash-a-check-for-a-flexible-amount
|
||||
cancel-a-check.html:
|
||||
to: /docs/tutorials/payments/cancel-a-check/
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/cancel-a-check
|
||||
look-up-checks-by-sender.html:
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-sender
|
||||
look-up-checks-by-recipient.html:
|
||||
to: /docs/tutorials/how-tos/use-specialized-payment-types/use-checks/look-up-checks-by-recipient
|
||||
use-tokens.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/how-tos/use-tokens/
|
||||
issue-a-fungible-token.html:
|
||||
to: /docs/tutorials/tokens/fungible-tokens/issue-a-fungible-token/
|
||||
to: /docs/tutorials/how-tos/use-tokens/issue-a-fungible-token
|
||||
trade-in-the-decentralized-exchange.html:
|
||||
to: /docs/tutorials/defi/dex/trade-in-the-decentralized-exchange/
|
||||
to: /docs/tutorials/how-tos/use-tokens/trade-in-the-decentralized-exchange
|
||||
enable-no-freeze.html:
|
||||
to: /docs/tutorials/tokens/fungible-tokens/enable-no-freeze/
|
||||
to: /docs/tutorials/how-tos/use-tokens/enable-no-freeze
|
||||
enact-global-freeze.html:
|
||||
to: /docs/tutorials/tokens/fungible-tokens/enact-global-freeze/
|
||||
to: /docs/tutorials/how-tos/use-tokens/enact-global-freeze
|
||||
freeze-a-trust-line.html:
|
||||
to: /docs/tutorials/tokens/fungible-tokens/freeze-a-trust-line/
|
||||
to: /docs/tutorials/how-tos/use-tokens/freeze-a-trust-line
|
||||
create-an-automated-market-maker.html:
|
||||
to: /docs/tutorials/defi/dex/create-an-automated-market-maker/
|
||||
to: /docs/tutorials/how-tos/use-tokens/create-an-automated-market-maker
|
||||
use-simple-xrp-payments.html:
|
||||
to: /docs/tutorials/payments/send-xrp/
|
||||
to: /docs/tutorials/how-tos/send-xrp
|
||||
cancel-or-skip-a-transaction.html:
|
||||
to: /docs/concepts/transactions/finality-of-results/canceling-a-transaction
|
||||
evm-sidechains.html:
|
||||
@@ -794,13 +563,13 @@ evm-sidechain-validator-security.html:
|
||||
evm-sidechain-run-a-validator-node.html:
|
||||
to: https://opensource.ripple.com/docs/evm-sidechain/evm-sidechain-run-a-validator-node/
|
||||
use-xrpl-sidechains.html:
|
||||
to: /docs/tutorials/
|
||||
to: /docs/tutorials/how-tos/use-xrpl-sidechains/
|
||||
set-up-xrp-xrp-bridge.html:
|
||||
to: /docs/tutorials/programmability/set-up-xrp-xrp-bridge/
|
||||
to: /docs/tutorials/how-tos/use-xrpl-sidechains/set-up-xrp-xrp-bridge
|
||||
set-up-iou-iou-bridge.html:
|
||||
to: /docs/tutorials/programmability/set-up-iou-iou-bridge/
|
||||
to: /docs/tutorials/how-tos/use-xrpl-sidechains/set-up-iou-iou-bridge
|
||||
submit-cross-chain-transactions.html:
|
||||
to: /docs/tutorials/programmability/submit-cross-chain-transaction/
|
||||
to: /docs/tutorials/how-tos/use-xrpl-sidechains/submit-cross-chain-transaction
|
||||
references.html:
|
||||
to: /docs/references/
|
||||
protocol-reference.html:
|
||||
@@ -1351,21 +1120,14 @@ report-a-scam.html:
|
||||
to: /contributing/report-a-scam
|
||||
wallets.html:
|
||||
to: /docs/introduction/crypto-wallets
|
||||
blog/2014:
|
||||
to: /blog
|
||||
blog/2015:
|
||||
to: /blog
|
||||
|
||||
# Blog redirects ---------------------------------------------------------------
|
||||
blog/2014/:
|
||||
blog/2020:
|
||||
to: /blog
|
||||
blog/2015/:
|
||||
to: /blog
|
||||
blog/2017/:
|
||||
to: /blog
|
||||
blog/2018/:
|
||||
to: /blog
|
||||
blog/2019/:
|
||||
to: /blog
|
||||
blog/2020/:
|
||||
to: /blog
|
||||
blog/2021/:
|
||||
blog/2021:
|
||||
to: /blog
|
||||
blog/2024/rippled-2.2.0.html:
|
||||
to: /blog/2024/rippled-2.2.0
|
||||
@@ -1803,8 +1565,6 @@ blog/2024.html:
|
||||
to: /blog/
|
||||
blog/label/developer-reflections.html:
|
||||
to: /blog/
|
||||
|
||||
# Miscellaneous redirects ------------------------------------------------------
|
||||
code_of_conduct/:
|
||||
to: /code-of-conduct
|
||||
code_of_conduct:
|
||||
|
||||
@@ -127,7 +127,7 @@ footer:
|
||||
- page: docs/concepts/index.md
|
||||
label: Concepts
|
||||
labelTranslationKey: footer.docs.concepts
|
||||
- page: docs/tutorials/index.md
|
||||
- page: docs/tutorials/index.page.tsx
|
||||
label: Tutorials
|
||||
labelTranslationKey: footer.docs.tutorials
|
||||
- page: docs/references/index.md
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
- page: docs/concepts/decentralized-storage/decentralized-identifiers.md
|
||||
- page: docs/concepts/decentralized-storage/price-oracles.md
|
||||
|
||||
- page: docs/tutorials/index.md
|
||||
- page: docs/tutorials/index.page.tsx
|
||||
label: Tutorials
|
||||
labelTranslationKey: sidebar.docs.tutorials
|
||||
expanded: false
|
||||
@@ -221,24 +221,27 @@
|
||||
- page: docs/tutorials/defi/dex/add-assets-to-amm-in-javascript.md
|
||||
- page: docs/tutorials/defi/dex/trade-in-the-decentralized-exchange.md
|
||||
- page: docs/tutorials/defi/dex/trade-with-auction-slot-in-javascript.md
|
||||
- page: docs/tutorials/defi/lending/index.md
|
||||
- group: Set Up Lending
|
||||
groupTranslationKey: sidebar.docs.tutorials.defi.setUpLending
|
||||
expanded: false
|
||||
items:
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/index.md
|
||||
- group: Use the Lending Protocol
|
||||
groupTranslationKey: sidebar.docs.tutorials.defi.setUpLending.useTheLendingProtocol
|
||||
expanded: false
|
||||
items:
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/manage-a-loan.md
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/claw-back-cover.md
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/create-a-loan-broker.md
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/claw-back-cover.md
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/deposit-and-withdraw-cover.md
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/pay-off-a-loan.md
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/create-a-loan.md
|
||||
- page: docs/tutorials/defi/lending/use-single-asset-vaults/index.md
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/manage-a-loan.md
|
||||
- page: docs/tutorials/defi/lending/use-the-lending-protocol/pay-off-a-loan.md
|
||||
- group: Use Single Asset Vaults
|
||||
groupTranslationKey: sidebar.docs.tutorials.defi.setUpLending.useSingleAssetVaults
|
||||
expanded: false
|
||||
items:
|
||||
- page: docs/tutorials/defi/lending/use-single-asset-vaults/withdraw-from-a-vault.md
|
||||
- page: docs/tutorials/defi/lending/use-single-asset-vaults/create-a-single-asset-vault.md
|
||||
- page: docs/tutorials/defi/lending/use-single-asset-vaults/deposit-into-a-vault.md
|
||||
- page: docs/tutorials/defi/lending/use-single-asset-vaults/withdraw-from-a-vault.md
|
||||
- group: Payments
|
||||
groupTranslationKey: sidebar.docs.tutorials.payments
|
||||
expanded: false
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -320,3 +320,87 @@ main article .card-grid {
|
||||
margin-bottom: 0.25rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
/* Tutorial cards */
|
||||
.page-tutorials .tutorial-cards {
|
||||
> div {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
min-height: 280px;
|
||||
transition: all 0.35s ease-out;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-16px);
|
||||
}
|
||||
|
||||
.card-header {
|
||||
border-bottom: none;
|
||||
background: transparent;
|
||||
padding: 1.5rem 1.5rem 0 2rem;
|
||||
}
|
||||
|
||||
.circled-logo {
|
||||
margin-left: -10px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.card-body {
|
||||
padding: 1rem 1.5rem;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-weight: 700;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.card-text {
|
||||
font-size: 1rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.card-footer {
|
||||
background-color: transparent;
|
||||
border-top: none;
|
||||
padding: 0;
|
||||
height: 40px;
|
||||
background-size: cover;
|
||||
background-position: bottom;
|
||||
background-repeat: no-repeat;
|
||||
margin-top: auto;
|
||||
}
|
||||
}
|
||||
|
||||
// Apply colored footers to each card
|
||||
> div:nth-child(1) .card .card-footer {
|
||||
background-image: url("../img/cards/3-col-pink.svg");
|
||||
}
|
||||
> div:nth-child(2) .card .card-footer {
|
||||
background-image: url("../img/cards/3col-blue-light-blue.svg");
|
||||
}
|
||||
> div:nth-child(3) .card .card-footer {
|
||||
background-image: url("../img/cards/3-col-light-blue.svg");
|
||||
}
|
||||
> div:nth-child(4) .card .card-footer {
|
||||
background-image: url("../img/cards/3col-blue-green.svg");
|
||||
}
|
||||
> div:nth-child(5) .card .card-footer {
|
||||
background-image: url("../img/cards/3col-magenta.svg");
|
||||
}
|
||||
> div:nth-child(6) .card .card-footer {
|
||||
background-image: url("../img/cards/3-col-orange.svg");
|
||||
}
|
||||
}
|
||||
|
||||
.light .page-tutorials .tutorial-cards .circled-logo img[alt="HTTP / WebSocket"] {
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
- page: ./docs/concepts/index.md
|
||||
label: Concepts
|
||||
labelTranslationKey: topnav.docs.concepts
|
||||
- page: ./docs/tutorials/index.md
|
||||
- page: ./docs/tutorials/index.page.tsx
|
||||
label: Tutorials
|
||||
labelTranslationKey: topnav.docs.tutorials
|
||||
- page: ./docs/references/index.md
|
||||
|
||||
Reference in New Issue
Block a user