From 76c46752a78ad1d2abc810dd750fd0050c6b4f4e Mon Sep 17 00:00:00 2001 From: Jonas Mueller Date: Tue, 21 Oct 2014 18:00:23 +0200 Subject: [PATCH 1/2] Add make-process to create HTML files The markdown files are converted to Markdown via kramdown, using a GitHub-like CSS. The resulting HTML files are placed under ./articles-html --- .gitignore | 1 + Gemfile | 3 + Gemfile.lock | 13 ++ Rakefile | 27 +++ assets/images/header.png | Bin 0 -> 3813 bytes templates/default.html.erb | 421 +++++++++++++++++++++++++++++++++++++ 6 files changed, 465 insertions(+) create mode 100644 .gitignore create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 Rakefile create mode 100755 assets/images/header.png create mode 100755 templates/default.html.erb diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bfa7513 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +articles-html diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..84e0e7e --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +gem "rake" +gem "kramdown" +gem "coderay" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..df70cc1 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,13 @@ +GEM + specs: + coderay (1.1.0) + kramdown (1.4.2) + rake (10.3.2) + +PLATFORMS + ruby + +DEPENDENCIES + coderay + kramdown + rake diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..99b4793 --- /dev/null +++ b/Rakefile @@ -0,0 +1,27 @@ +require "kramdown" +require "coderay" +require "fileutils" + +MARKDOWN_FILES = Dir.glob("#{__dir__}/articles/**/*.md") + +task default: :html_files + +desc "Generate HTML files from markdown articles" +task :html_files do + MARKDOWN_FILES.each do |markdown_file| + html_path = markdown_file.sub("/articles/", "/articles-html/").sub(/\.md$/, ".html") + puts "Generating #{html_path}" + FileUtils.mkdir_p(File.dirname(html_path)) + File.open(html_path, "w") do |html_file| + filecontent = File.read(markdown_file) + filecontent = filecontent.gsub("\`\`\`", "~~~") + filecontent = Kramdown::Document.new(filecontent, template: "#{__dir__}/templates/default.html.erb") + html_file.write(filecontent.to_html) + end + end +end + +desc "Delete all generated HTML files" +task :clean do + FileUtils.rm_rf("#{__dir__}/articles-html") +end diff --git a/assets/images/header.png b/assets/images/header.png new file mode 100755 index 0000000000000000000000000000000000000000..36580e566481895d6e2a1c4aa647fc543a20d263 GIT binary patch literal 3813 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 l@o_ + + + Practicing Ruby + + + +
    +

    Practicing Ruby

    + + <%= @body %> +
    + + From 0290af03b0b2d925a40303f137b850c35181c650 Mon Sep 17 00:00:00 2001 From: Jonas Mueller Date: Mon, 10 Nov 2014 19:02:02 +0100 Subject: [PATCH 2/2] Bugfix Gemfile If the sources are not already on the machine, `bundle install` will fail with a warning. This change adds 'https://rubygems.org' as source. --- Gemfile | 2 ++ Gemfile.lock | 1 + 2 files changed, 3 insertions(+) diff --git a/Gemfile b/Gemfile index 84e0e7e..d018022 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,5 @@ +source 'https://rubygems.org' + gem "rake" gem "kramdown" gem "coderay" diff --git a/Gemfile.lock b/Gemfile.lock index df70cc1..b1eaeaf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,4 +1,5 @@ GEM + remote: https://rubygems.org/ specs: coderay (1.1.0) kramdown (1.4.2)