Extensão Baseada em Código
Para desenvolvedores que implantam o Paragraph localmente, se você deseja implementar capacidades de extensão sem reescrever um serviço de API, pode usar extensões baseadas em código. Isso permite que você estenda ou aprimore a funcionalidade do programa na forma de código (ou seja, capacidade de plugin) sem interromper a lógica de código original do Paragraph. Segue certas interfaces ou especificações para alcançar compatibilidade e capacidade plug-and-play com o programa principal. Atualmente, o Paragraph oferece dois tipos de extensões baseadas em código:
- Adicionar um novo tipo de ferramenta de dados externos Ferramenta de Dados Externos
- Estender estratégias de moderação de conteúdo sensível Moderação
Com base nas funcionalidades acima, você pode alcançar uma expansão horizontal seguindo as especificações de interface em nível de código. Se você estiver disposto a contribuir com suas extensões para nós, ficaremos muito felizes em receber sua submissão de PR para o Paragraph.
Definição de Especificação de Componente Frontend
Os estilos frontend das extensões baseadas em código são definidos através do schema.json:
- label: Nome do tipo personalizado, com suporte à troca de idioma do sistema
- form_schema: Lista de conteúdos do formulário
- type: Tipo de componente
- select: Opções de dropdown
- text-input: Texto
- paragraph: Parágrafo
- label: Nome do componente, com suporte à troca de idioma do sistema
- variable: Nome da variável
- required: Se é obrigatório
- default: Valor padrão
- placeholder: Conteúdo de dica do componente
- options: Propriedade exclusiva para o componente "select", definindo o conteúdo do dropdown
- label: Nome do dropdown, com suporte à troca de idioma do sistema
- value: Valor da opção do dropdown
- max_length: Propriedade exclusiva para o componente "text-input", comprimento máximo
Exemplo de Template:
{
"label": {
"en-US": "Cloud Service"
},
"form_schema": [
{
"type": "select",
"label": {
"en-US": "Cloud Provider"
},
"variable": "cloud_provider",
"required": true,
"options": [
{
"label": {
"en-US": "AWS"
},
"value": "AWS"
},
{
"label": {
"en-US": "Google Cloud"
},
"value": "GoogleCloud"
},
{
"label": {
"en-US": "Azure Cloud"
},
"value": "Azure"
}
],
"default": "GoogleCloud",
"placeholder": ""
},
{
"type": "text-input",
"label": {
"en-US": "API Endpoint",
},
"variable": "api_endpoint",
"required": true,
"max_length": 100,
"default": "",
"placeholder": "https://api.example.com"
},
{
"type": "paragraph",
"label": {
"en-US": "API Key",
},
"variable": "api_keys",
"required": true,
"default": "",
"placeholder": "Paste your API key here"
}
]
}