Escreva e-books com Ruby e Softcover
--
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:
- Rails Tutorial: https://www.railstutorial.org/
- Start programming now: http://www.startprogrammingnowbook.com/
- Meteor Tutorial: http://www.meteor-tutorial.org/
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:

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:
- Capa (cover)
- Introdução com: título (maketitle), índice (tableofcontents) e o prefácio (preface.md)
- 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!
Valeu!