Incorporar diagramas no seu site
Este guia adiciona visões LikeC4 a uma página HTML simples com web components. Funciona com qualquer site, com ou sem framework. Para comparar com as outras formas, veja Escolha como incorporar diagramas.
Antes de começar
Seção intitulada “Antes de começar”Você precisa do Node.js e de uma pasta com seus arquivos .c4.
Os exemplos usam esta estrutura:
my-site/├── model/ # seus arquivos .c4├── public/ # os arquivos que você hospeda│ └── index.html└── package.jsonIncorporar uma visão
Seção intitulada “Incorporar uma visão”-
Instale o LikeC4
Seção intitulada “Instale o LikeC4”Adicione
likec4às dependências de desenvolvimento:npm i -D likec4pnpm add -D likec4yarn add -D likec4bun add -d likec4O próximo passo também precisa de
reactereact-dom. O comando oferece instalá-los se estiverem faltando. -
Gere o bundle
Seção intitulada “Gere o bundle”Execute o comando na raiz do projeto:
npx likec4 gen webcomponent ./model -o ./public/likec4-views.jspnpm likec4 gen webcomponent ./model -o ./public/likec4-views.jsyarn likec4 gen webcomponent ./model -o ./public/likec4-views.jsbunx likec4 gen webcomponent ./model -o ./public/likec4-views.jsEle gera um único arquivo JavaScript com todas as suas visões. O React e os estilos vão dentro do bundle, então a página não precisa de mais nada.
Opção Descrição [path]Diretório com seus arquivos .c4(o padrão é o diretório atual)-o,--outfileArquivo de saída, .jsou.mjs(o padrão élikec4-views.jsno workspace)-w,--webcomponent-prefixPrefixo do nome do elemento (padrão likec4, gera<likec4-view>)-p,--projectProjeto a gerar, em um workspace com vários projetos wcewebcompsão aliases dewebcomponent. Executelikec4 gen webcomponent --helppara ver todas as opções. -
Adicione a visão a uma página
Seção intitulada “Adicione a visão a uma página”Carregue o script e adicione um elemento
<likec4-view>:public/index.html <!doctype html><html><head><title>Arquitetura</title><script src="./likec4-views.js"></script></head><body><h1>Contexto do sistema</h1><likec4-view view-id="index"></likec4-view></body></html>Adicione quantos elementos precisar, um por visão. Configure a visão com estes atributos:
Atributo Descrição view-idId da visão a mostrar (padrão index)browserAbre o navegador de visões ao clicar. Use "false"para desativar (padrãotrue)dynamic-variantComo mostrar uma visão dinâmica: diagramousequence(padrãodiagram)color-schemeForça lightoudark(o padrão segue o sistema)Por exemplo, uma visão dinâmica como diagrama de sequência, sem o navegador de visões:
<likec4-view view-id="checkout" dynamic-variant="sequence" browser="false"></likec4-view>Se você usar
-w c4, o elemento será<c4-view>. -
Abra a página
Seção intitulada “Abra a página”Sirva a pasta
publiccom qualquer servidor estático, por exemplo:Janela do terminal npx serve publicDepois abra a página no navegador.
Gere de novo após mudanças
Seção intitulada “Gere de novo após mudanças”O bundle não se atualiza sozinho. Execute o comando de novo sempre que o modelo mudar.
Adicione um script ao package.json e chame-o antes do build do site:
{ "scripts": { "likec4:gen": "likec4 gen webcomponent ./model -o ./public/likec4-views.js", "build": "npm run likec4:gen && <build do seu site>" }}Para gerar o bundle no CI, execute o mesmo comando antes do deploy. Por exemplo, no GitHub Actions:
- run: npm ci- run: npm run likec4:genAssim você pode adicionar public/likec4-views.js ao .gitignore.
Outras configurações
Seção intitulada “Outras configurações”Aplicação Vite ou React
Seção intitulada “Aplicação Vite ou React”Em uma aplicação React com Vite, use o plugin Vite.
Ele lê seus arquivos .c4 e atualiza os diagramas enquanto você edita, então não há passo de geração.
Importe LikeC4View de likec4:react, ou defina um web component com likec4:webcomponents/<project>.
Para React sem Vite, gere componentes com likec4 gen react, veja Componentes React.
Sites de documentação
Seção intitulada “Sites de documentação”- MkDocs: use o plugin para MkDocs da comunidade.
Ele renderiza uma visão a partir de um bloco de código
likec4-viewno Markdown. - Docusaurus, VitePress e outros geradores de sites: use web components como acima.
Gere o bundle na pasta de arquivos estáticos (
static/no Docusaurus,public/no VitePress). Carregue o script nas páginas e use<likec4-view>no Markdown ou MDX. No VitePress, marque as tags que começam comlikec4-como custom elements nas opções do compilador Vue.
Ainda sem site
Seção intitulada “Ainda sem site”Para publicar todas as visões como um site, gere o site estático.
O diálogo Share dele fornece um snippet <iframe> ou de web component para cada visão.