hackademic 0.3.0 → 0.3.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
  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