Sobre o projeto

markdown-viewer (nome do binário `mdv`) é um visualizador local de Markdown e navegador de arquivos distribuído como um único binário. Ele serve um diretório de arquivos Markdown por meio de um endereço HTTP local e apresenta uma interface de dois painéis: uma árvore de arquivos expansível e persistente à esquerda e o conteúdo renderizado à direita. A renderização abrange GitHub Flavored Markdown com estilo semelhante ao GitHub, blocos de código com realce de sintaxe e suporte a diagramas Mermaid incluído. Todos os recursos da interface — CSS, JavaScript e templates HTML — são incorporados ao binário, portanto não são necessárias dependências externas nem etapas de instalação separadas. Os padrões de segurança incluem proteção contra travessia de diretórios e sanitização de HTML contra XSS. O encerramento pode ser acionado pela interface ou com Ctrl+C. A instalação é feita baixando o binário `mdv` para a plataforma desejada na página de releases, extraindo o arquivo e colocando o binário no PATH. A configuração pode vir de um arquivo `config.json` ou de flags de linha de comando, com a seguinte precedência (o posterior substitui o anterior): padrões internos, `$HOME/.config/mdv/config.json`, `config.json` no diretório de trabalho atual, variáveis de ambiente com prefixo `MDV_` (por exemplo `MDV_PORT=9000`) e, por fim, flags de linha de comando. Um `config.json.example` é fornecido como referência. O uso consiste em executar `mdv` de qualquer diretório que contenha arquivos Markdown e abrir `http://127.0.0.1:8080` em um navegador. As flags incluem `-p, --port` (padrão 8080), `-o, --open` para iniciar o navegador automaticamente, `-d, --dir` para definir o diretório raiz a ser servido (padrão `.`) e `--version`. A compilação a partir do código-fonte requer Go 1.24 ou posterior. Os alvos do Make incluem `build` para a plataforma atual, `build-all` para compilação cruzada, `package` para produzir arquivos zip, `test` e `clean`. As plataformas-alvo são linux/amd64, linux/arm64, darwin/arm64 e windows/amd64; as compilações para macOS são apenas arm64, enquanto Macs com Intel podem compilar a partir do código-fonte. O repositório também inclui CHANGELOG.md e NOTICE.md com atribuições de licenças de terceiros.