Pré-requisitos
- Instalar o Pandoc - \\dypevm03\downloads\desktop team\pandoc-1.19.2.1-windows.msi;
- Instalar o Miktex - \\dypevm03\downloads\desktop team\basic-miktex-2.9.6236-x64.exe;
- Instalar o node.js - choco install nodejs -y
- Instalar o mermaid de linha de comando - npm install -g mermaid.cli
- Estar com a pasta c:\infra\ atualizada pelo SVN;
- Estar com a pasta c:\dype\source\desktop.release\Gestor\ atualizada pelo SVN;
Estrutura
- Dentro da pasta c:\dype\source\desktop.release\Gestor\ uma pasta Docs\Manuais.
- O script c:\infra\_desktop\suporte\BuildManuais.ps1 irá criar/atualizar nas soluções do Freshdesk uma categoria com o nome Gestor - Manuais.
- Depois de criar a categoria, o script irá varrer as pastas dentro da pasta Docs\Manuais criando pastas com o mesmo nome do Freshdesk dentro da categoria Gestor - Manuais.
- E da mesma forma, para cada pasta, irá criar um artigo para cada arquivo com a extensão .markdown dentro das pastas.
- A visibilidade das pastas é definida pelo nome. Pastas começando com Documentação Interna serão visíveis apenas para agentes enquanto que todas as outras serão públicas para qualquer pessoa na internet visualizar.
- Não é possível utilizar subpastas pois o freshdesk só permite um nível.
Veja na imagem a seguir a estrutura de pastas e um arquivo .markdown de exemplo.
- O caminho da estrutura da pasta VERSÃO\Docs\Manuais\;
- A pasta de arquivos que irá virar uma pasta de artigos no Freshdesk;
- Um arquivo .markdown que irá virar um artigo no Freshdesk (podemos ter diversos arquivos em cada pasta);
- Um arquivo de imagem que é utilizado dentro do .markdown e vira uma imagem embutida no artigo do Freshdesk;
--
E na imagem a seguir o resultado no freshdesk. Colocamos os marcadores em azul, para não confundir com os marcadores em amarelo da imagem de exemplo.
- A categoria criada com o número da versão correto;
- A pasta criada com o mesmo nome da pasta que está dentro do Docs\Manuais;
- O título do artigo sendo o nome do arquivo .markdown;
- A imagem que está dentro da mesma pasta e referenciada dentro do arquivo .markdown;
Como Atualizar os Artigos no Freshdesk
Basta executar o script c:\infra\desktop\suporte\BuildManuais.ps1.
É importante fazer commit no SVN de todas as alterações nos arquivos .markdown_ ou imagens.
Problemas e Soluções
- Problema: Os acentos não aparecem no artigo no freshdesk;
Solução: O arquivo .markdown tem que ser editado no formato UTF8;
- Problema: As barras \ não aparecem no artigo no freshdesk;
Solução: Dentro do .markdown as barras são indicadores de comandos para o pandoc. Para aparecer uma barra no texto, devemos usar duas barras no .markdown desta forma \\;
- Problema: Minha alteração num artigo desapareceu do freshdesk;
Solução: Não altere artigos desta estrutura diretamente no freshdesk, eles são sobrescritos a cada execução do BuildManuais.ps1;
- Problema: Apaguei um .markdown do SVN mas o artigo não sumiu do freshdesk;
A exclusão de artigos não é automática. Remova manualmente do freshdesk ou remova toda a categoria para ser recriada. O problema disso é que os links publicados se perdem pois tudo ganha um novo ID;
TODO
- Criar um job manual ou com um período grande como uma semana no Jenkins para fazer update e executar o script de atualização;
** Isso fará com que o commit dos .markdown e imagens seja obrigatório e também remove a necessidade da instalação do Pandoc e Miktex localmente no PC; - Escrever uma explicação sobre o merge entre as pastas docs em diferentes versões;
- Criar uma forma de criar links dinâmicos entre soluções sem saber o link real da solução;
** Creio que terá que ser uma solução em duas passadas dentro do próprio BuildManuais.ps1, uma para criar tudo e outra para trocar um texto LINK-xxx para a url correta usando o Get-FreshdeskSolution;