Progressos 23 a 26/01/2023
Finalizei as funções e telas básicas de cadastro, edição e exclusão de módulos e atividades. Estes integram o “coração” do Fred, na medida em que “servem” os conteúdos textuais e multimídia (via módulos) e “aplicam” as avaliações de desempenho (via atividades vinculadas aos módulos).
No Fred2, a edição do conteúdo dos módulos foi baseada no editor Pell. Gosto dele por ser minimalista, pouco intrusivo e facilmente personalizável. Há outras opções populares (p.ex., TinyMCE), que infelizmente arrastam para o editor mais recursos (e peso) do que eu preciso. Basicamente, módulos requerem hierarquia de títulos (níveis 1-3), mudança de estilos (negrito, itálico, monoespaçado) e cores (algum destaque), marcação de links e inserção de imagens.
Ainda assim, há uma consequência indesejada: os textos são armazenados no banco de dados com os marcadores HTML. Pode parecer um detalhe sem importância, embora as consequências para a reutilização e modularidade dos conteúdos são relevantes. Por exemplo, a conversão de textos de módulos formatados para outras saídas, tal como PDF ou TXT (texto puro), requer tarefas adicionais de limpeza e remoção dos marcadores. A questão de os registros de texto ocuparem mais espaço (em bytes) com os marcadores é menos importante, apesar de fazer diferença no longo prazo. Por fim, há a dependência de JavaScript para editar os conteúdos, o que sou contra “por definição”.
Por isso, o Fred23 deixará de utilizar editores rich-text para os módulos e adotará Markdown, convertido na geração da página HTML de cada módulo. Resolverei todos os problemas acima (armazenamento menor e mais limpo, dispensando JavaScript na edição) e ainda facilitarei a transposição de conteúdos para outros formatos. Markdown é a língua franca de ferramentas maravilhosas como pandoc, que convertem Markdown em qualquer coisa – PDF, LaTeX, Word, EPub etc. Tenho planos para adaptar minhas disciplinas para livros autoinstrucionais, o que será muito facilitado pela mudança.
Nas disciplinas com exemplos e atividades de código, o marcador HTML <code>
é suficiente, e trivialmente suportado via Markdown. Adotei, no Fred2, e pretendo manter o CodeMirror nas situações em que estudantes precisam escrever código com formatação automática da sintaxe na entrega das atividades.
A seguir: banco de mídias e banco de atividades, as grandes mudanças de Fred23.