codemerger 0.5.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 138e0018aa36bcdef11297caa65360ba39db60afe8afc5d23f13e7d6897cbd05
4
- data.tar.gz: 1e986254f52e0005d9effd651d281cd5e55b04b70b0358bbb40ecba81a6b1612
3
+ metadata.gz: 3d0842aaaa78108dde76209c855adfa07e342b334bab01f85ae39e0a71bf6aac
4
+ data.tar.gz: 3208adeca4b259a5eeda912dd5f26d62feb3b20e65ca1cecd7690ca24dd92ef6
5
5
  SHA512:
6
- metadata.gz: bd032ec6da7b1c713240d098fe1f43c58ed8f1bfe050e6489c28605c6a7b4f69b736c49cebd61b6ac9cd8413deef4db75eacb6a646dec79f497c82564245f4bb
7
- data.tar.gz: c6c06615c9e412e058d72271c30c53599d1c2718940aec7c233d44a447c8881caeca2a697e792f188edbfecae4de258e5a534c49d4a4e8a382313ac781d66fd5
6
+ metadata.gz: 163915fd7db6a6ee9b715555fa5e089ca5f5fce4fb22bf49b09f065e36a2ea5721da61dc9c9971260ef73dbdcf8be1c6161db236f95c8744231b5b285fad9580
7
+ data.tar.gz: 629cef86e5c60154e2dd0a3749b400c3abe4ae33dfd1302eeca765e7f555d5f740e1eea26ac0edc4f548dc6bb296797850ea2738350f2cf0ab8d99c808d3c940
data/README.markdown CHANGED
@@ -4,7 +4,7 @@ To use this GEM I usually create a new directory for the post or post group proj
4
4
 
5
5
  source "http://rubygems.org"
6
6
  group :rake do
7
- gem "codemerger", "0.5.0", :require => "codemerger/rake_tasks"
7
+ gem "codemerger", "1.0.0", :require => "codemerger/rake_tasks"
8
8
  end
9
9
 
10
10
  After that I create a Rakefile like this:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 1.0.1
data/codemerger.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: codemerger 0.5.0 ruby lib
5
+ # stub: codemerger 1.0.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "codemerger".freeze
9
- s.version = "0.5.0".freeze
9
+ s.version = "1.0.1".freeze
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Rodrigo Urubatan".freeze]
14
- s.date = "2025-02-26"
14
+ s.date = "2025-02-27"
15
15
  s.description = "This gem is used to help writing technical posts for wordpress.\n The output is copied and pasted to a post into my wordpress blog, and the code gets colored using the plugin wp-syntax, and the output can be turned into PDF with the plugin wp-mpdf.\n\nToday this gem supports source files in the following languages:\n\n* Ruby (including Rakefile and Gemfile)\n* Java\n* YAML\n* HTML\n* XML\n* Scala\n* CSS\n* Javascript\n* Bash\n* Batch\n\nAll other files are configured as \"text\".".freeze
16
16
  s.email = "rodrigo@urubatan.com.br".freeze
17
17
  s.extra_rdoc_files = [
@@ -36,8 +36,7 @@ Gem::Specification.new do |s|
36
36
  "test/sample.rb",
37
37
  "test/test.html",
38
38
  "test/test2.markdown",
39
- "test/test_helper.rb",
40
- "test/version_spec.rb"
39
+ "test/test_helper.rb"
41
40
  ]
42
41
  s.homepage = "https://github.com/urubatan/codemerger".freeze
43
42
  s.licenses = ["MIT".freeze]
@@ -16,6 +16,56 @@ end
16
16
  <title><%= title %></title>
17
17
  <meta name="generator" content="kramdown <%= ::Kramdown::VERSION %>" />
18
18
  <style>
19
+
20
+ body {
21
+ font-family: Palatino, serif;
22
+ font-size: 14pt;
23
+ line-height: 1.6;
24
+ margin: 0 30px;
25
+ /*max-width: 65ch;*/
26
+ }
27
+
28
+ header {
29
+ text-align: center;
30
+ break-after: page;
31
+ }
32
+
33
+ h1, h2, h3, h4, h5, h6 {
34
+ margin-top: 2em;
35
+ margin-bottom: 1em;
36
+ }
37
+
38
+ h2 {
39
+ break-before: page;
40
+ }
41
+
42
+ p {
43
+ margin: 0;
44
+ }
45
+
46
+ /* Add text indents to every paragraph except the first. This includes other
47
+ elements, so there will be no text indent after let's say an image or a list.
48
+ p + p {
49
+ text-indent: 2ch;
50
+ }
51
+ */
52
+ hr {
53
+ border: none;
54
+ margin-bottom: 2em;
55
+ }
56
+
57
+ hr[data-break="hard"] {
58
+ margin: 1em auto;
59
+ font-size: 1.25em;
60
+ color: currentColor;
61
+ text-align: center;
62
+ }
63
+
64
+ hr[data-break="hard"]::before {
65
+ content: "* * *";
66
+ }
67
+
68
+
19
69
  p:has(.code-title) {
20
70
  margin-bottom: 0;
21
71
  .code-title {
@@ -1,5 +1,6 @@
1
1
  require "fileutils"
2
2
  require "kramdown"
3
+ require "rouge"
3
4
 
4
5
  module Codemerger
5
6
  class Merger
@@ -60,17 +61,29 @@ module Codemerger
60
61
 
61
62
  def build_md_merged_file_content(f_name)
62
63
  ext = f_name[/(\.[a-zA-Z]+)/]
63
- lang_str = get_language_str(ext)
64
- %(_#{sanitize(f_name)}_{:.code-title}
64
+ if ext !~ /^(md|markdown)$/
65
+ lang_str = get_language_str(ext)
66
+ %(_#{sanitize(f_name)}_{:.code-title}
65
67
 
66
68
  ~~~ #{lang_str}
67
69
  #{read_contents(f_name)}
68
70
  ~~~
69
71
  )
72
+ else
73
+ %(
74
+
75
+ #{read_contents(f_name)}
76
+
77
+ )
78
+ end
70
79
  end
71
80
 
72
- def process_files
73
- in_files = Dir.glob("#{@dir_name}/**/*.{markdown,md,html}")
81
+ def process_files(html: false)
82
+ in_files = if html
83
+ Dir.glob("#{@dir_name}/**/*.{markdown,md,html}")
84
+ else
85
+ Dir.glob("#{@dir_name}/**/*.{markdown,md}")
86
+ end
74
87
  in_files.sort.each do |file|
75
88
  in_lines = IO.readlines(file).join("")
76
89
  is_markdown = (file =~ /markdown$/) || (file =~ /md$/)
@@ -98,7 +111,7 @@ module Codemerger
98
111
  end
99
112
 
100
113
  def process_markdown(text)
101
- template = "string://#{File.read(File.join(File.dirname(File.expand_path(__FILE__)),'document_with_css.html.erb'))}"
114
+ template = "string://#{File.read(File.join(File.dirname(File.expand_path(__FILE__)), 'document_with_css.html.erb'))}"
102
115
  doc = Kramdown::Document.new(text, syntax_highlighter: :rouge, header_links: true, auto_ids: true, template: template)
103
116
  doc.to_html
104
117
  end
@@ -1,3 +1,3 @@
1
1
  module Codemerger
2
- VERSION = "0.5.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/test/merger_spec.rb CHANGED
@@ -1,4 +1,4 @@
1
- require_relative 'test_helper'
1
+ require_relative "test_helper"
2
2
  require "codemerger"
3
3
  describe Codemerger::Merger do
4
4
  def setup
@@ -37,9 +37,13 @@ describe Codemerger::Merger do
37
37
  _(expected).must_equal actual
38
38
  end
39
39
  it "should process HTML and Markdown files" do
40
- @merger.process_files
40
+ @merger.process_files(html: true)
41
41
  _(File.exist?("output/test/test.html")).must_equal true
42
42
  _(File.exist?("output/test/test2.html")).must_equal true
43
- puts File.new("output/test/test2.html").read
43
+ end
44
+ it "should process only Markdown files" do
45
+ @merger.clean_dirs
46
+ @merger.process_files
47
+ _(File.exist?("output/test/test2.html")).must_equal true
44
48
  end
45
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codemerger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Urubatan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-26 00:00:00.000000000 Z
11
+ date: 2025-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kramdown
@@ -165,7 +165,6 @@ files:
165
165
  - test/test.html
166
166
  - test/test2.markdown
167
167
  - test/test_helper.rb
168
- - test/version_spec.rb
169
168
  homepage: https://github.com/urubatan/codemerger
170
169
  licenses:
171
170
  - MIT
data/test/version_spec.rb DELETED
@@ -1,8 +0,0 @@
1
- require_relative 'test_helper'
2
- require "codemerger/version"
3
-
4
- describe Codemerger do
5
- it "should return the correct version number" do
6
- _("0.5.0").must_equal Codemerger::VERSION
7
- end
8
- end