hackademic 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03ddbab38fc0b8902f15efa0443042b5b7553a2c
4
- data.tar.gz: f227c94397e739676433b066a110439f8898335d
3
+ metadata.gz: 6b9dc2e329f95c94dce330f01ec5f4bcebdd23ed
4
+ data.tar.gz: 7aed02ebdfe1f94e1ed93a685d31700a6b53abd1
5
5
  SHA512:
6
- metadata.gz: d08c72bb63e5e53fd4f615316b21f07b538e22da437794b1ad734c598bd708ebe81a962f19633d790e7b745da7fc75e17ae4471bfad5aae5bb983304773ab837
7
- data.tar.gz: deea42467d8169c25b6305a6c91635b0156c43c735b6d59c907bfd498ee6705daabb52b5766514bfb974da5f8b48b9977cb0f54f8518d5af950efdb738b10abf
6
+ metadata.gz: 2d1b3c3b9e987bf8ddb5558e130030d98c70a3aeb1dcc2726836b4537faf61ff95b0dc2579d527d1c02f7a58c2361ad272f5bbe36493fab244c53d3777668edd
7
+ data.tar.gz: e50b1368db7426679b6108482b899468bb7eb66cce13d98805bc5a4c29953be37f30f6521cedb1af5edde16b03e712bee15630ec1bf7de0112df6f6289dd124b
data/hackademic.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'hackademic'
3
- s.version = '0.3.0'
3
+ s.version = '0.3.1'
4
4
  s.date = '2016-02-28'
5
5
  s.summary = "Create and manage your academic workflow"
6
6
  s.description = "Hackademic manages your plain-text academic workflow."
@@ -12,10 +12,9 @@ module Hackademic
12
12
 
13
13
  desc "pdf", "compile a pdf"
14
14
  def pdf
15
- check_installation
16
15
  read_draft_file
17
16
  write_master_markdown_file
18
- system(pdf_command)
17
+ system pdf_command
19
18
  say "Writing out PDF file: #{config.output_directory}/#{config.transcluded_draft.gsub(/\..*$/, '')}.pdf"
20
19
  end
21
20
 
@@ -31,7 +30,6 @@ module Hackademic
31
30
 
32
31
  desc "docx", "compile a docx"
33
32
  def docx
34
- check_installation
35
33
  read_draft_file
36
34
  write_master_markdown_file
37
35
  system docx_command
@@ -40,7 +38,6 @@ module Hackademic
40
38
 
41
39
  desc "latex", "compile a latex document"
42
40
  def latex
43
- check_installation
44
41
  read_draft_file
45
42
  write_master_markdown_file
46
43
  %x[pandoc #{config.output_directory}/#{config.transcluded_draft} --from=markdown+#{pandoc_from_options.join("+")} --filter pandoc-citeproc --bibliography=#{config.bibliography} --csl=#{config.citation_style} --latex-engine=xelatex --template=#{config.latex_template} -s -o "#{latex_file}"]
@@ -54,14 +51,33 @@ module Hackademic
54
51
  end
55
52
 
56
53
  def libre_office_binary
54
+ # TODO: Check/Test this works as intended
57
55
  config.libre_office_binary || "/Applications/LibreOffice.app/Contents/MacOS/soffice"
58
56
  end
59
57
 
58
+ def add_extra_pandoc_variables(command)
59
+ if config.pandoc_variables.is_a? Hash
60
+ config.pandoc_variables.each do |key, val|
61
+ command << %{ -V #{key}="#{val}" }
62
+ end
63
+ end
64
+ command
65
+ end
66
+
60
67
  def docx_command
61
68
  if File.exists?(libre_office_binary)
62
69
  command = ""
63
70
  # Use pandoc to create an ODT file"
64
- command << %[pandoc #{config.output_directory}/#{config.transcluded_draft} --from=markdown+#{pandoc_from_options.join("+")} --filter pandoc-citeproc --bibliography=#{config.bibliography} --csl=#{config.citation_style} -s -o temp.odt]
71
+ command << %[pandoc \
72
+ --template=#{config.odt_template} \
73
+ --from=markdown+#{pandoc_from_options.join("+")} \
74
+ --filter pandoc-citeproc \
75
+ --bibliography=#{config.bibliography} \
76
+ --csl=#{config.citation_style} \
77
+ -o temp.odt \
78
+ #{config.output_directory}/#{config.transcluded_draft} \
79
+ ]
80
+ command = add_extra_pandoc_variables(command)
65
81
  command << " && "
66
82
  # Use LibreOffice to create a DOCX file"
67
83
  command << "#{libre_office_binary} --invisible --convert-to docx temp.odt"
@@ -70,56 +86,31 @@ module Hackademic
70
86
  command << "rm temp.odt"
71
87
  command << " && "
72
88
  # Rename the temp.docx and move it into the Versions directory
73
- command << "mv temp.docx #{config.output_directory}/#{config.draft_name.gsub(/\..*$/,'')}.docx"
74
- else
75
- %[pandoc #{config.output_directory}/#{config.transcluded_draft} --from=markdown+#{pandoc_from_options.join("+")} --filter pandoc-citeproc --bibliography=#{config.bibliography} --csl=#{config.citation_style} --reference-docx=#{config.docx_template} -s -o "#{config.output_directory}/#{config.draft_name.gsub(/\..*$/,'')}.docx"]
89
+ command << "cp temp.docx #{config.output_directory}/#{config.draft_name.gsub(/\..*$/,'')}.docx"
90
+ command << " && "
91
+ command << "rm temp.docx"
92
+ else # Run without LibreOffice
93
+ command = %[pandoc #{config.output_directory}/#{config.transcluded_draft} --from=markdown+#{pandoc_from_options.join("+")} --filter pandoc-citeproc --bibliography=#{config.bibliography} --csl=#{config.citation_style} --reference-docx=#{config.docx_template} -s -o "#{config.output_directory}/#{config.draft_name.gsub(/\..*$/,'')}.docx"]
94
+ command = add_extra_pandoc_variables(command)
76
95
  end
96
+ command.gsub(/\s+/, ' ')
77
97
  end
78
98
 
79
99
  def pdf_command
80
100
  cmd = %{pandoc \
81
101
  --template=#{config.pdf_template} \
82
102
  -t html5 \
103
+ --from=markdown+#{pandoc_from_options.join("+")} \
83
104
  --bibliography=#{config.bibliography} \
84
105
  --csl=#{config.citation_style} \
85
106
  -s \
86
107
  -o "#{config.output_directory}/#{config.draft_name.gsub(/\..*$/,'')}.pdf" \
87
108
  #{config.output_directory}/#{config.transcluded_draft} \
88
109
  }
89
- if config.pandoc_variables.is_a? Hash
90
- config.pandoc_variables.each do |key, val|
91
- cmd << %{-V #{key}="#{val}"}
92
- end
93
- end
110
+ cmd = add_extra_pandoc_variables(cmd)
94
111
  cmd.gsub(/\s+/, ' ')
95
112
  end
96
113
 
97
- # TODO: Move to Hackademy::Setup
98
- def check_installation
99
- check_versions_directory
100
- check_latex_installation
101
- # check pandoc installation
102
- # check python3 installation (panzer dependency)
103
- # check panzer installation
104
- end
105
-
106
- def check_latex_installation
107
- # TODO: Make sure user has latex/xetex/etc.
108
- end
109
-
110
- def check_versions_directory
111
- begin
112
- if !Dir.open('versions')
113
- File.mkdir("versions")
114
- # %x[mkdir versions]
115
- end
116
- rescue => exception
117
- FileUtils.mkdir("versions") unless Dir.exists?('versions')
118
- puts exception
119
- say "Something went wrong. Make sure versions isn't a plan old file!", :red
120
- end
121
- end
122
-
123
114
  def transclude(file)
124
115
  file = "#{config.drafts_dir}/#{file}" unless file[Regexp.compile("^#{config.drafts_dir}")]
125
116
  if File.exists?(file)
@@ -141,8 +132,6 @@ module Hackademic
141
132
  @draft = File.open("#{config.drafts_dir}/#{config.draft_name}", "r").read
142
133
  say "...Generating the *TRANSCLUDED* source...", :blue
143
134
  transclude(config.draft_name)
144
- # @draft.gsub!("__VERSION__", "v#{version}") if @draft[/__VERSION__/]
145
- # @draft.gsub!("__DATETIME__", timestamp) if @draft[/__DATETIME__/]
146
135
  end
147
136
 
148
137
  def write_master_markdown_file
@@ -13,5 +13,6 @@ hackademic:
13
13
  latex_template: Resources/templates/xelatex.template
14
14
  html_template: Resources/templates/default.html5
15
15
  pdf_template: Resources/templates/default.html5
16
+ odt_template: Resources/templates/default.odt
16
17
  support_directory: Resources
17
18
  libre_office_binary: /Applications/LibreOffice.app/Contents/MacOS/soffice
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hackademic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Petty