polytexnic 0.9.10 → 1.0.beta1

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
  SHA1:
3
- metadata.gz: 7d1357e1fdbafae6d29c54a966649109ceaef92f
4
- data.tar.gz: a15026b6f6b37bc2c37fe9d9fa81571b62e3bf59
3
+ metadata.gz: 751a1b5ecbbcd95df78fdc4651d8ec270990abbb
4
+ data.tar.gz: b57645b0af7b1d4c1a3067f0a2d8d954937348fc
5
5
  SHA512:
6
- metadata.gz: a38508985733c163261cd035a86d60c793b22c4027d737dee582431859163765ace742a67649599aba8225739f672f3018104e7c06f0225d899aa2e592cc95f3
7
- data.tar.gz: da175c2ed00d3b95b8ff7c849123ec76dc6fb4980e3fb445a96fff73f93b75e93918ba461998605d121217a807bf8abad75fb0b7aef2220c0b91a324c2007413
6
+ metadata.gz: 44ca3dac0ba83a5089e4066f82ec3330010c3e4020bfee990225282530d52c72cc972842ea63386fd2419b9025579014b2545bc2c1b262809c18c43de449a78f
7
+ data.tar.gz: 053ea3fcf06caac0461614417ca3b856fea2632dcf28491608dfe01445a745cf45e011a2488caeed12ddd38c42ea2a77449aeabbabf9cd4e68790560e5c11d44
File without changes
@@ -602,12 +602,26 @@ module Polytexnic
602
602
  end
603
603
  end
604
604
 
605
+ # Converts colored text to HTML.
605
606
  def coloredtext(doc)
607
+ # Handle \coloredtext{red}{text}
606
608
  doc.xpath('//coloredtext').each do |node|
607
609
  node.name = 'span'
608
610
  node['style'] = "color: #{node['color']}"
609
611
  clean_node node, 'color'
610
612
  end
613
+
614
+ # Handle \coloredtexthtml{ff0000}{text}
615
+ doc.xpath('//coloredtexthtml').each do |node|
616
+ node.name = 'span'
617
+ color = node['color']
618
+ # Catch common case of using lower-case hex.
619
+ if color =~ /[a-f]/
620
+ raise "RGB hex color must be upper-case (for LaTeX's sake)"
621
+ end
622
+ node['style'] = "color: ##{color}"
623
+ clean_node node, 'color'
624
+ end
611
625
  end
612
626
 
613
627
  # Converts filesystem path (\filepath) to the proper tag.
@@ -89,6 +89,7 @@ module Polytexnic
89
89
  puts cleaned_markdown if debug?
90
90
  cleaned_markdown.tap do |markdown|
91
91
  convert_code_inclusion(markdown)
92
+ expand_input(markdown)
92
93
  cache_latex_literal(markdown)
93
94
  cache_raw_latex(markdown)
94
95
  cache_image_locations(markdown)
@@ -187,6 +188,14 @@ module Polytexnic
187
188
  end
188
189
  end
189
190
 
191
+ # Expands '\input' command by processing & inserting the target source.
192
+ def expand_input(text)
193
+ text.gsub!(/^[ \t]*\\input\{(.*?)\}[ \t]*$/) do
194
+ source = File.read("#{$1}.md")
195
+ Polytexnic::Pipeline.new(source, source: :markdown).polytex
196
+ end
197
+ end
198
+
190
199
  # Restores raw code from the cache.
191
200
  def restore_hashed_content(text)
192
201
  $cache.each do |key, value|
@@ -113,6 +113,7 @@ module Polytexnic
113
113
  \newcommand{\sout}[1]{\xmlelt{sout}{#1}}
114
114
  \newcommand{\kode}[1]{\xmlelt{kode}{#1}}
115
115
  \newcommand{\coloredtext}[2]{\xmlelt{coloredtext}{\AddAttToCurrent{color}{#1}#2}}
116
+ \newcommand{\coloredtexthtml}[2]{\xmlelt{coloredtexthtml}{\AddAttToCurrent{color}{#1}#2}}
116
117
  \newcommand{\filepath}[1]{\xmlelt{filepath}{#1}}
117
118
  \newcommand{\image}[1]{\xmlelt{image}{#1}}
118
119
  \newcommand{\imagebox}[1]{\xmlelt{imagebox}{#1}}
@@ -1,3 +1,3 @@
1
1
  module Polytexnic
2
- VERSION = "0.9.10"
2
+ VERSION = "1.0.beta1"
3
3
  end
@@ -528,5 +528,19 @@ def hello; puts 'hello'; end
528
528
  end
529
529
  end
530
530
  end
531
+
532
+ describe '\input command' do
533
+ let(:external_file) { 'foo.md' }
534
+ before { File.write(external_file, input) }
535
+ after { File.unlink(external_file) }
536
+
537
+ let(:input) { 'lorem *ipsum* dolor sit amet' }
538
+ let(:output) do
539
+ Polytexnic::Pipeline.new(input, source: :markdown).polytex
540
+ end
541
+ let(:source) { "# Foo\n\n \\input{foo} " }
542
+
543
+ it { should include output }
544
+ end
531
545
  end
532
546
  end
@@ -47,9 +47,24 @@ describe 'Polytexnic::Pipeline#to_html' do
47
47
  it { should resemble '<code>function_name</code>' }
48
48
  end
49
49
 
50
- describe "color command" do
51
- let(:polytex) { '\coloredtext{red}{text}' }
52
- it { should resemble '<span style="color: red">text</span>' }
50
+ context "coloredtext" do
51
+ describe "coloredtext command" do
52
+ let(:polytex) { '\coloredtext{red}{text}' }
53
+ it { should resemble '<span style="color: red">text</span>' }
54
+ end
55
+
56
+ context "coloredtexthtml command" do
57
+ describe "with a lower-case hex color" do
58
+ let(:polytex) { '\coloredtexthtml{ff0000}{text}' }
59
+ it "should raise an error" do
60
+ expect { processed_text }.to raise_error
61
+ end
62
+ end
63
+ describe "with an upper-case hex color" do
64
+ let(:polytex) { '\coloredtexthtml{FF0000}{text}' }
65
+ it { should resemble '<span style="color: #FF0000">text</span>' }
66
+ end
67
+ end
53
68
  end
54
69
  end
55
70
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polytexnic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.10
4
+ version: 1.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Hartl
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-20 00:00:00.000000000 Z
12
+ date: 2014-06-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -205,6 +205,7 @@ files:
205
205
  - .pull_requests/1388802190
206
206
  - .pull_requests/1389652617
207
207
  - .pull_requests/1395697424
208
+ - .pull_requests/1403381407
208
209
  - .rspec
209
210
  - Gemfile
210
211
  - Guardfile
@@ -283,9 +284,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
283
284
  version: '0'
284
285
  required_rubygems_version: !ruby/object:Gem::Requirement
285
286
  requirements:
286
- - - '>='
287
+ - - '>'
287
288
  - !ruby/object:Gem::Version
288
- version: '0'
289
+ version: 1.3.1
289
290
  requirements: []
290
291
  rubyforge_project:
291
292
  rubygems_version: 2.0.14