Escreva e-books com Ruby e Softcover

Henrique F. Teixeira
@truehenrique
Published in
6 min readFeb 16, 2019

Você tem idéias para escrever e-books, mas não sabe como começar e nem onde publicar?

Aqui vai uma excelente dica:

Softcover

Softcover é um framework escrito em Ruby que possibilita a conversão de arquivos Markdown em EPUB, MOBI, HTML, PDF e outros formatos, além de contar com 3 grandes diferenciais:

  • Podemos vincular screencasts ao e-book.
  • Softcover suporta uma versão extendida de Markdown, que nos permite incrementar o texto de forma bem mais ampla que outros frameworks. (veja aqui: http://manual.softcover.io/book/softcover_markdown)
  • Assim que o e-book estiver finalizado, podemos facilmente publicar uma página online para sua divulgação e venda, totalmente $$free$$ (softcover.io faz tudo para você).

Exemplos de e-books e suas páginas online:

Legal né? Você pode conferir como é simples e rápido desenvolver seu próprio e-book com Softcover! Através desse artigo lhe convido a fazer uma pequena “tour” pelo framework.

Lets go!

Instalação

Para os passos a seguir, vou entender que você já tem o Ruby instalado na sua máquina. Caso não tiver, veja como instalar em um dos links abaixo:

Com o Ruby na sua máquina, instale a gem do softcover:

$ sudo apt-get install libcurl4-openssl-dev
$ gem install softcover

Caso tenha problemas na instalação com o comando acima, utilize:

$ gem install softcover — — with-cppflags=-I/usr/local/opt/openssl/include

Criando o seu primeiro e-book

No seu terminal, digite:

$ softcover new nome_do_seu_livro

Este comando prepara tudo o que você precisa para começar o seu trabalho!

Vamos conhecer um pouco sobre as principais pastas criadas pelo comando:

/config

Nesta pasta temos alguns arquivos .yml de configuração:

  • book.yml:

O arquivo book.yml é responsável pelos dados sobre o seu livro como o título, subtítulo, autor, nome do arquivo, descrição e etc…

Podemos inclusive configurar quantas páginas de preview teremos com “pdf_preview_page_range” e “epub_mobi_preview_chapter_range”!

Isso mesmo! Além de todos os formatos de exportação disponíveis, caso quisermos vender o ebook e disponibilizar uma versão de preview (amostra) também podemos!

  • lang.yml:

O arquivo lang.yml é responsável por configurar algumas palavras padrões do livro para a linguagem que quisermos. O padrão é em inglês, mas caso desejarmos ter nosso livro em português precisaremos apenas trocar estas palavras, “Chapter” para “Capítulo” por exemplo.

  • marketing.yml:

Este arquivo é responsável pelos textos de marketing que teremos caso publiquemos o livro junto a plataforma do softcover. Podemos adicionar nossa biografia, links para redes sociais, depoimentos e até screencasts!

/chapters

Nesta pasta é onde colocaremos todo o conteúdo do livro em Markdown. Veja como o softcover entende a estrutura de uma página:

O header ‘#’ é interpretado pelo softcover como sendo o nome do capítulo e os seguintes ‘##’ ou ‘###’ como sendo as seções desse capítulo, logo, o markdown acima seria interpretado da seguinte maneira:

/images

Nesta pasta estão as imagens do livro, que podem ser incluídas nos textos com:

![Descrição da imagem.](images/figures/arquivo_da_imagem.jpg)

As imagens na raiz da pasta com os nomes de “cover” representam as capas do livro nos seus diversos formatos. Logo, quando tivermos a capa do nosso livro feita, devemos inclui-la nessa pasta com o nome de “cover”.

/media

Esta pasta é onde adicionamos nossos screencasts, em qualquer formato de vídeo. Os screencasts poderão ser adicionados na página de marketing personalizada do seu livro quando o publicar ou vinculados ao arquivo do livro como conteúdo extra.

O arquivo Book.txt

Após escrevermos todas as páginas, teremos que organiza-las com o arquivo Book.txt, que define a estrutura do livro:

Veja como a estrutura está definida através do arquivo Book.txt padrão:

  1. Capa (cover)
  2. Introdução com: título (maketitle), índice (tableofcontents) e o prefácio (preface.md)
  3. Conteúdo com: primeiro capítulo (a_chapter.md), segundo capítulo (another_chapter.md) e terceiro capítulo (yet_another_chapter.md)

Se invertemos a ordem dos capítulos como no exemplo abaixo:

“mainmatter:
yet_another_chapter.md
another_chapter.md
a_chapter.md”

“yet_another_chapter.md” será interpretado como o primeiro capítulo.

Rodando o e-book no browser

Quando estivermos escrevendo nosso livro, podemos ver como está ficando o resultado final. Basta rodar o seguinte comando:

$ softcover serve

Ao acessar o endereço localhost:4000 no seu browser, terá um preview do seu livro já formatado!

Exportando para diversos formatos

O comando utilizado para exportação do seu livro é:

$ softcover build:formato_escolhido

por exemplo, temos:

  • $ softcover build:epub
  • $ softcover build:html
  • $ softcover build:mobi
  • $ softcover build:pdf
  • $ softcover build:preview

Material extra sobre Softcover

Você pode descobrir mais sobre a ferramenta e todas as suas funcionalidades acessando os links abaixo:

  • Manual oficial:
  • Site oficial:
  • Repositório do GitHub:

Softcover vs Gitbook

Uma outra alternativa para criação de e-books e exportação de markdown para diversos formatos é o Gitbook (veja aqui caso não conheça). As duas ferramentas são muito boas, mas acredito que tenham focos diferentes: Softcover é muito mais focada na produção e venda de e-books, então funcionalidades como a possibilidade de lançar um preview, adicionar screencasts, todas as configurações de marketing, publicação na plataforma e adição de domínio personalisado gratuitamente você não encontrará no Gitbook. Em contrapartida, caso seu objetivo seja escrever uma documentação específica sobre o seu código ou regras de negócio, recomendaria o Gitbook, a versão em HTML é bem superior ao do Softcover e inclui até um campo de busca. Gitbook também é mais simples de manter junto a um time.

Se você curtiu o post e deseja acompanhar mais sobre Elixir, Ruby e desenvolvimento web em geral você pode acompanhar meu blog pessoal ou me seguir aqui no Medium!

www.truehenrique.com.br

Valeu!

--

--