O verificador
Antes de instalar, o RPG Desk confere o plugin. Os erros impedem a instalação; os avisos, não, mas apontam o que não vai funcionar dentro do RPG Desk. Cada problema traz o arquivo e a linha, e Copiar relatório copia a lista inteira, pronta para colar numa conversa com uma IA.
O arquivo e o manifesto
Seção intitulada “O arquivo e o manifesto”| Código | Nível | O que quer dizer |
|---|---|---|
not-plugin |
erro | o arquivo não é um .html nem um .zip |
not-zip |
erro | o .zip está danificado |
rpk-unsupported |
erro | o arquivo é um pacote .rpk (SDK3), que o RPG Desk não suporta; refaça a ficha como plugin web |
package-unpacked |
erro | o .zip descompactado passa de 64 MB ou de 2000 arquivos |
zip-folder |
aviso | o .zip tem uma pasta em volta de tudo; o RPG Desk usou o que está dentro |
manifest-missing |
erro | não há manifesto: falta o <script type="application/rpgdesk+json"> no .html, ou o manifest.json na raiz do .zip |
manifest-json |
erro | o manifesto não é JSON válido (vírgula sobrando, aspas simples, comentário) |
manifest-field |
erro | falta um campo obrigatório, ou ele está vazio, longo demais ou com o tipo errado |
manifest-version |
erro | "rpgdesk" não é 1 |
manifest-id |
erro | o id tem caracteres que não valem |
manifest-semver |
erro | a version não é maior.menor.correção (1.0.0) |
manifest-sdk |
erro | "sdk" não é 1 |
manifest-type |
erro | o type tem caracteres que não valem, ou não começa com o id e um ponto |
manifest-entry |
erro | a entry não é um arquivo .html |
manifest-private |
erro | uma parte privada tem um caminho inválido, ou um nível que não é gm nem owner |
manifest-private-table |
aviso | private numa tabela: não vale; use doc.restrict |
manifest-empty |
erro | o plugin não declara nenhuma ficha nem tabela |
manifest-single |
erro | um .html único com mais de uma ficha ou tabela |
manifest-types |
erro | mais de 20 fichas e tabelas |
manifest-type-repeated |
erro | o mesmo type duas vezes |
manifest-webhooks |
erro | mais de 20 webhooks |
manifest-webhook-name |
erro | o nome de um webhook não vale, ou aparece duas vezes |
manifest-webhook-example |
erro | o exemplo de um webhook passa de 4 KB |
manifest-icon |
erro | o icon não é .png nem .svg |
manifest-unknown |
aviso | um campo que o RPG Desk não conhece (e ignora) |
Os arquivos do pacote
Seção intitulada “Os arquivos do pacote”| Código | Nível | O que quer dizer |
|---|---|---|
package-size |
erro | o pacote passa de 10 MB |
package-files |
erro | o pacote passa de 500 arquivos |
path-invalid |
erro | um caminho começa com /, usa \ ou .. |
file-type |
erro | um tipo de arquivo que o RPG Desk não aceita (veja Pacotes) |
entry-missing |
erro | o HTML de uma entry não está no pacote |
entry-case |
erro | a entry não bate com o arquivo nas maiúsculas e minúsculas |
icon-missing |
erro | o icon não está no pacote |
O HTML, o CSS e o JavaScript
Seção intitulada “O HTML, o CSS e o JavaScript”| Código | Nível | O que quer dizer | Como consertar |
|---|---|---|---|
sdk-missing |
aviso | a página de entrada não carrega o rpgdesk.js | ponha a linha do rpgdesk.js no <head> |
external-script |
erro | um <script src> de fora do pacote |
baixe o arquivo e ponha no pacote |
js-import-external |
erro | um import de um endereço de fora |
baixe o módulo e importe por caminho relativo |
external-resource |
aviso | uma imagem, folha de estilo ou fonte de fora (não carrega) | ponha o arquivo no pacote; fontes com @font-face |
ref-missing |
erro | um arquivo citado não está no pacote | inclua o arquivo ou corrija o caminho |
ref-case |
erro | o caminho não bate com o arquivo nas maiúsculas e minúsculas | escreva o nome exato |
ref-outside |
erro | um caminho sobe além da raiz do pacote (../../) |
use caminhos dentro do pacote |
link-external |
aviso | um link para um site tiraria a página da ficha | use um botão com RPGDesk.ui.openLink(url) |
link-page |
aviso | um link para outra página do pacote (a ficha navegaria) | use abas (data-tabs) |
binding-path |
erro | um data-field, data-text, data-image, data-list ou data-list-add com um caminho inválido (acento, espaço) |
letras sem acento, números e _ |
binding-placeholder |
erro | um {caminho} inválido em data-roll ou data-label |
o caminho de um campo, como {mod_forca} |
html-form |
aviso | um <form> (enviar recarregaria a ficha) |
troque por <div>, ou use event.preventDefault() |
html-base |
aviso | um <base> (ignorado no RPG Desk) |
tire o <base> |
html-iframe |
aviso | um <iframe> |
tire o <iframe> |
js-dialog |
aviso | alert, confirm ou prompt (não funcionam) |
RPGDesk.ui.toast, RPGDesk.ui.confirm, RPGDesk.ui.prompt |
js-storage |
aviso | localStorage, sessionStorage, indexedDB ou cookies (bloqueados) |
o documento (doc.set) e RPGDesk.storage |
js-network |
aviso | fetch para a internet, XMLHttpRequest, WebSocket (sem internet) |
webhooks; fetch de arquivos do pacote funciona |
js-window-open |
aviso | window.open (não abre nada) |
RPGDesk.ui.openLink(url) |
js-navigation |
aviso | location = … (a ficha seria fechada) |
abas, ou RPGDesk.ui.openLink(url) |
js-webrtc |
aviso | WebRTC (as fichas não precisam, e manda dados para fora) | tire o WebRTC |
Os comentários (// e /* */) não contam para as regras do JavaScript.
O código de bibliotecas não recebe avisos: o $.ajax do jQuery cita XMLHttpRequest, por exemplo, sem
a ficha usar a rede. Conta como biblioteca um arquivo numa pasta vendor/ e um código que começa com o
comentário de licença /*!, num arquivo ou num <script> do HTML. Os erros, como js-import-external,
valem para ele também. Veja Bibliotecas.