Skip to content

Instantly share code, notes, and snippets.

@jphager2
Created September 11, 2017 07:08
Show Gist options
  • Save jphager2/815b70d296ab3402c1a81b94bc216047 to your computer and use it in GitHub Desktop.
Save jphager2/815b70d296ab3402c1a81b94bc216047 to your computer and use it in GitHub Desktop.
Example of using PagesToEpub with Ember Igniter
require 'open-uri'
require 'nokogiri'
require_relative '../pages_to_epub/lib/pages_to_epub'
pages = []
DOMAIN = 'https://emberigniter.com/'.freeze
def path(url_path)
url = URI.parse(DOMAIN)
url.path = url_path
url.to_s
end
doc = Nokogiri::HTML(open(path('/articles')).read)
articles = doc.css('article .wrapper ul li a').map { |a| path(a[:href]) }
pages = articles.map do |url|
doc = Nokogiri::HTML(open((url)).read)
post = doc.css('#post')
title = post.css('h1').first.text
post.css('h1').remove
post.css('#disqus').remove
post.css('.notice').remove
post.css('form').remove
body = post.inner_html
{ title: title, body: body }
end
writer = PagesToEpub.new(pages)
writer.to_epub(
title: 'Ember Igniter',
author: 'Frank Treacy',
language: 'en',
creator: 'Frank Treacy',
publisher: 'jphager2',
subject: 'web development, frontend development, emberjs',
rights: 'All rights to the author, Frank Treacy',
description: 'ebook of the wonderful articles written by Frank Treacy on Ember Igniter',
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment