Sobre o projeto

Folio é apresentado como um formato Markdown e um conjunto de ferramentas para escrever um programa dentro do documento que o explica. Um documento pode começar com um cabeçalho YAML contendo campos como format, id, type, status e tangle root. Blocos de código podem ser nomeados e podem especificar um arquivo de destino. O tangling coleta os blocos de código de um documento em arquivos de origem, escreve um cabeçalho gerado no estilo de comentário de cada arquivo e registra um sidecar tangle-map mostrando qual trecho produziu qual arquivo. Os trechos podem ser emendados (splice) colocando-se uma referência de bloco em uma linha, colando aquele bloco na indentação da referência. O weaving renderiza o mesmo documento como uma página para leitura. O checker valida os metadados do documento em relação a um vocabulário fornecido ou a um definido nos documentos. O vocabulário fornecido descreve documentos, software e seus relacionamentos, podendo ser estendido ou substituído. Documentos podem declarar conceitos e instâncias usando blocos Turtle ou YAML. As publicações selecionam documentos e código de uma coleção maior e produzem um repositório independente, com as origens registradas em PROVENANCE.json e a recusa de dependências de crates fora da seleção. Este repositório foi produzido dessa forma e inclui a ferramenta mais os documentos de origem que a geraram. O Rust gerado é commitado, portanto, um clone novo pode ser construído com cargo. Guias cobrem a integração, o apontamento de documentos para código existente e as limitações atuais. O CI pode re-tangle e falhar se a árvore mudar. A licença é MIT, e as licenças de dependência mantêm seus próprios termos. O README também fornece um exemplo de prompt para pedir a um agente que avalie onde o Folio poderia ajudar em um projeto.