indoctrinatr-tools 0.11.0 → 0.12.0
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 +4 -4
- data/.arcconfig +3 -3
- data/.rubocop.yml +3 -0
- data/.rvmrc +1 -1
- data/.travis.yml +2 -2
- data/README.md +12 -3
- data/bin/indoctrinatr +40 -10
- data/features/demo.feature +7 -7
- data/features/doc_keepauxfiles.feature +13 -0
- data/features/documentation.feature +13 -4
- data/features/fieldnames_pdf.feature +9 -0
- data/features/fieldnames_pdf_auxfiles.feature +10 -0
- data/features/parse.feature +1 -1
- data/features/pdf.feature +2 -1
- data/features/pdf_keepauxfiles.feature +11 -0
- data/features/version.feature +1 -1
- data/features/workflow.feature +1 -0
- data/indoctrinatr-tools.gemspec +10 -10
- data/lib/indoctrinatr/templates/configuration.yaml +11 -3
- data/lib/indoctrinatr/templates/documentation/dkd-image-tools.sty +72 -0
- data/lib/indoctrinatr/templates/documentation/indoctrinatr-technical-documentation-content.tex.erb +17 -12
- data/lib/indoctrinatr/templates/documentation/indoctrinatr-technical-documentation.tex.erb +8 -0
- data/lib/indoctrinatr/templates/template.tex.erb +10 -3
- data/lib/indoctrinatr/tools/configuration_extractor.rb +1 -1
- data/lib/indoctrinatr/tools/content_for_tex_files.rb +36 -0
- data/lib/indoctrinatr/tools/default_values.rb +3 -28
- data/lib/indoctrinatr/tools/field_name_values.rb +57 -0
- data/lib/indoctrinatr/tools/pdf_generator.rb +36 -0
- data/lib/indoctrinatr/tools/template_documentation_content.rb +26 -16
- data/lib/indoctrinatr/tools/template_documentation_helpers.rb +13 -0
- data/lib/indoctrinatr/tools/template_documentation_source_file.rb +12 -12
- data/lib/indoctrinatr/tools/template_pack_configuration.rb +1 -1
- data/lib/indoctrinatr/tools/template_pack_default_values_compiler.rb +12 -4
- data/lib/indoctrinatr/tools/template_pack_default_values_parser.rb +4 -0
- data/lib/indoctrinatr/tools/template_pack_documentation.rb +32 -11
- data/lib/indoctrinatr/tools/template_pack_error_checker.rb +104 -0
- data/lib/indoctrinatr/tools/template_pack_fieldnames_creator.rb +79 -0
- data/lib/indoctrinatr/tools/template_pack_helpers.rb +34 -4
- data/lib/indoctrinatr/tools/template_pack_scaffold.rb +2 -2
- data/lib/indoctrinatr/tools/version.rb +1 -1
- data/lib/redcloth_latex_formatter_patch/patch.rb +2 -1
- data/spec/indoctrinatr/templates/configuration_file_spec.rb +1 -1
- data/spec/indoctrinatr/templates/tex_file_spec.rb +1 -1
- data/spec/indoctrinatr/tools/version_spec.rb +1 -1
- metadata +33 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 946f82d2025797573ceeedd251de1548a4a098b1
|
4
|
+
data.tar.gz: c1fb29ef98597a90ae8068c93f6aab58aac47f20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89779066419330bf6d47c20f06aa496bb60a08d1f7d5c53134a13fa565aaa3624468ba2f51698b61c0c1f36c4ca8c0eec3518820c1d11a472d4702dd284f32eb
|
7
|
+
data.tar.gz: 643cb0340284d5d995f1b2d58de983ed2d11b3fb2f82a8f8b65d6673bf2cf0761036cd9a73428c55278747aea39161b6e0307e30cd31f6b6b97bc52ac3804751
|
data/.arcconfig
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
{
|
2
2
|
"phabricator.uri": "https://phabricator.dkd.de/",
|
3
|
-
"project.name": "
|
3
|
+
"project.name": "indoctrinatr-tools",
|
4
|
+
"repository.callsign": "INDOCTRINATRTOOLS",
|
4
5
|
"arc.feature.start.default": "development",
|
5
6
|
"arc.land.onto.default": "development",
|
6
7
|
"history.immutable": true,
|
7
|
-
"base": "git:merge-base(development),arc:upstream"
|
8
|
-
"load": []
|
8
|
+
"base": "git:merge-base(development),arc:upstream"
|
9
9
|
}
|
data/.rubocop.yml
CHANGED
data/.rvmrc
CHANGED
data/.travis.yml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
sudo: true
|
2
2
|
language: ruby
|
3
3
|
rvm:
|
4
|
+
- '2.3'
|
4
5
|
- '2.2'
|
5
6
|
- '2.1'
|
6
|
-
- '2.0'
|
7
7
|
cache:
|
8
8
|
- bundler
|
9
9
|
- apt
|
10
10
|
before_install:
|
11
11
|
- sudo apt-get update && sudo wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/install-tl-ubuntu && sudo chmod +x ./install-tl-ubuntu && sudo ./install-tl-ubuntu
|
12
|
-
- gem install bundler -v 1.
|
12
|
+
- gem install bundler -v 1.12.3
|
13
13
|
script:
|
14
14
|
- bundle exec indoctrinatr demo
|
15
15
|
- bundle exec rake test_with_coveralls
|
data/README.md
CHANGED
@@ -11,9 +11,9 @@ Rubygem: [](http:
|
|
11
11
|
1. Install XeTeX:
|
12
12
|
|
13
13
|
Mac OS X: [MacTeX](https://tug.org/mactex/)
|
14
|
-
|
14
|
+
|
15
15
|
Debian/Ubuntu:
|
16
|
-
|
16
|
+
|
17
17
|
```shell
|
18
18
|
apt-get install texlive texlive-xetex texlive-latex-extra texlive-generic-extra
|
19
19
|
```
|
@@ -27,7 +27,9 @@ Rubygem: [](http:
|
|
27
27
|
|
28
28
|
### LaTeX Requirements
|
29
29
|
|
30
|
+
* `latexmk`
|
30
31
|
* for the template documentation
|
32
|
+
* Tested against TeX Live 2014
|
31
33
|
* `dirtree`
|
32
34
|
* `datetime2`
|
33
35
|
|
@@ -40,13 +42,19 @@ Command | Description
|
|
40
42
|
`indoctrinatr new project_name` | Creates a scaffold for a new Template Pack
|
41
43
|
`indoctrinatr parse project_name` | Parses a XeTex file with ERB and default values
|
42
44
|
`indoctrinatr pdf project_name` | Compiles PDF with default values
|
45
|
+
`indoctrinatr pdf_with_field_names project_name` | Generates PDF with the field names as values
|
43
46
|
`indoctrinatr doc project_name` | Creates a technical documentation of your template pack
|
47
|
+
`indoctrinatr check project_name` | Analyzes your Template Pack for errors
|
44
48
|
`indoctrinatr pack project_name` | Creates a Template Pack from a given project folder
|
45
49
|
`indoctrinatr demo` | Creates, parses, and compiles a demo project
|
46
50
|
`indoctrinatr workflow` | Displays a suggested workflow
|
47
51
|
`indoctrinatr bashcompletion` | Displays instructions for bash completion
|
48
52
|
`indoctrinatr zshcompletion` | Displays instructions for zsh completion
|
49
53
|
|
54
|
+
The commands `pdf`, `pdf_with_field_names` and `doc` have a `keep-aux-files` option. This is helpful if you run in into LaTeX errors, want to inspect the .log file and run LaTeX for yourself again.
|
55
|
+
|
56
|
+
The command `doc` does not overwrite existing examples. This means that you can customize the examples that are appended in the documentation.
|
57
|
+
|
50
58
|
## Build
|
51
59
|
|
52
60
|
If you want to build the Rubygem yourself, run `rake build` to build and `rake install` to build and install the Indoctrinatr Tools gem.
|
@@ -60,6 +68,7 @@ What you think of Indoctrinatr and Indoctrinatr Tools? Drop us a line (<opensour
|
|
60
68
|
We are also looking forward to your [GitHub Pull Requests](https://help.github.com/articles/using-pull-requests/).
|
61
69
|
|
62
70
|
Manual testing: After cloning the repo, run `bundle exec bin/indoctrinatr` inside the directory for testing your own development changes.
|
71
|
+
Automatic testing: run `rake test_with_coveralls`
|
63
72
|
|
64
73
|
## License
|
65
74
|
|
@@ -69,6 +78,6 @@ Indoctrinatr and Indoctrinatr Tools are licensed under the terms and conditions
|
|
69
78
|
|
70
79
|
[](https://dkd.de/)
|
71
80
|
|
72
|
-
* Luka Lüdicke
|
81
|
+
* Luka Lüdicke (development)
|
73
82
|
* Nicolai Reuschling (development)
|
74
83
|
* Søren Schaffstein (idea, product management)
|
data/bin/indoctrinatr
CHANGED
@@ -7,7 +7,9 @@ require 'indoctrinatr/tools/template_pack_scaffold'
|
|
7
7
|
require 'indoctrinatr/tools/template_pack_packer'
|
8
8
|
require 'indoctrinatr/tools/template_pack_default_values_parser'
|
9
9
|
require 'indoctrinatr/tools/template_pack_default_values_compiler'
|
10
|
+
require 'indoctrinatr/tools/template_pack_fieldnames_creator'
|
10
11
|
require 'indoctrinatr/tools/template_pack_documentation'
|
12
|
+
require 'indoctrinatr/tools/template_pack_error_checker'
|
11
13
|
|
12
14
|
include GLI::App
|
13
15
|
include Indoctrinatr::Tools
|
@@ -39,7 +41,10 @@ command :workflow do |c|
|
|
39
41
|
4. Run in shell: indoctrinatr pdf demo
|
40
42
|
Compiles PDF from demo_with_default_values.tex
|
41
43
|
|
42
|
-
5. Run in shell: indoctrinatr
|
44
|
+
5. Run in shell: indoctrinatr check demo
|
45
|
+
Analyzes your Template Pack for potential errors
|
46
|
+
|
47
|
+
6. Run in shell: indoctrinatr pack demo
|
43
48
|
Creates demo.zip with all required file for upload to Indoctrinatr server
|
44
49
|
|
45
50
|
'
|
@@ -49,7 +54,7 @@ end
|
|
49
54
|
desc 'Create, compile and pack a demo project'
|
50
55
|
command :demo do |c|
|
51
56
|
c.action do
|
52
|
-
|
57
|
+
TemplatePackDemo.new('demo').call
|
53
58
|
end
|
54
59
|
end
|
55
60
|
|
@@ -58,7 +63,7 @@ arg_name 'template-pack-name'
|
|
58
63
|
command :new do |c|
|
59
64
|
c.action do |_, _, args|
|
60
65
|
template_pack_name = args.join '_'
|
61
|
-
|
66
|
+
TemplatePackScaffold.new(template_pack_name).call
|
62
67
|
end
|
63
68
|
end
|
64
69
|
|
@@ -67,28 +72,53 @@ arg_name 'template_pack_name'
|
|
67
72
|
command :parse do |c|
|
68
73
|
c.action do |_, _, args|
|
69
74
|
template_pack_name = args.join '_'
|
70
|
-
|
75
|
+
TemplatePackDefaultValuesParser.new(template_pack_name).call
|
71
76
|
end
|
72
77
|
end
|
73
78
|
|
74
79
|
desc 'Compile PDF with default values'
|
75
80
|
arg_name 'template_pack_name'
|
76
81
|
command :pdf do |c|
|
77
|
-
c.
|
82
|
+
c.desc 'Keep generated aux files'
|
83
|
+
c.switch [:'keep-aux-files']
|
84
|
+
c.action do |_, options, args|
|
78
85
|
template_pack_name = args.join '_'
|
86
|
+
keep_aux_files = options[:'keep-aux-files']
|
79
87
|
TemplatePackDefaultValuesParser.new(template_pack_name).call
|
80
|
-
|
88
|
+
TemplatePackDefaultValuesCompiler.new(template_pack_name, keep_aux_files).call
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
desc 'Compile PDF with Variable Names as values'
|
93
|
+
arg_name 'template_pack_name'
|
94
|
+
command :pdf_with_field_names do |c|
|
95
|
+
c.desc 'Keep generated aux files'
|
96
|
+
c.switch [:'keep-aux-files']
|
97
|
+
c.action do |_, options, args|
|
98
|
+
template_pack_name = args.join '_'
|
99
|
+
keep_aux_files = options[:'keep-aux-files']
|
100
|
+
TemplatePackFieldnamesCreator.new(template_pack_name, keep_aux_files).call
|
81
101
|
end
|
82
102
|
end
|
83
103
|
|
84
104
|
desc 'Create a documentation from a given source folder'
|
85
105
|
arg_name 'template_pack_name'
|
86
106
|
command :doc do |c|
|
107
|
+
c.desc 'Keep generated aux files'
|
108
|
+
c.switch [:'keep-aux-files']
|
109
|
+
c.action do |_, options, args|
|
110
|
+
template_pack_name = args.join '_'
|
111
|
+
keep_aux_files = options[:'keep-aux-files']
|
112
|
+
TemplatePackDocumentation.new(template_pack_name, keep_aux_files).call
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
desc 'Check for errors in the given source folder'
|
117
|
+
arg_name 'template_pack_name'
|
118
|
+
command :check do |c|
|
87
119
|
c.action do |_, _, args|
|
88
120
|
template_pack_name = args.join '_'
|
89
|
-
|
90
|
-
TemplatePackDefaultValuesCompiler.new(template_pack_name).call
|
91
|
-
Indoctrinatr::Tools::TemplatePackDocumentation.new(template_pack_name).call
|
121
|
+
TemplatePackErrorChecker.new(template_pack_name).call
|
92
122
|
end
|
93
123
|
end
|
94
124
|
|
@@ -97,7 +127,7 @@ arg_name 'template_pack_name'
|
|
97
127
|
command :pack do |c|
|
98
128
|
c.action do |_, _, args|
|
99
129
|
template_pack_name = args.join '_'
|
100
|
-
|
130
|
+
TemplatePackPacker.new(template_pack_name).call
|
101
131
|
end
|
102
132
|
end
|
103
133
|
|
data/features/demo.feature
CHANGED
@@ -5,13 +5,13 @@ Feature: Running the "demo" command
|
|
5
5
|
|
6
6
|
Scenario:
|
7
7
|
When I successfully run `indoctrinatr demo`
|
8
|
-
Then a file named "
|
8
|
+
Then a file named "demo/doc/demo_technical_documentation.pdf" should exist
|
9
9
|
And a directory named "demo" should exist
|
10
10
|
And a directory named "demo/assets" should exist
|
11
11
|
And the following files should exist:
|
12
|
-
| demo/configuration.yaml
|
13
|
-
| demo/demo.tex.erb
|
14
|
-
| demo/demo_with_default_values.tex
|
15
|
-
| demo/
|
16
|
-
|
|
17
|
-
| demo.zip
|
12
|
+
| demo/configuration.yaml |
|
13
|
+
| demo/demo.tex.erb |
|
14
|
+
| demo/doc/examples/demo_with_default_values.tex |
|
15
|
+
| demo/doc/examples/demo_with_default_values.pdf |
|
16
|
+
| demo/doc/demo_technical_documentation.pdf |
|
17
|
+
| demo.zip |
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: Running the 'doc' command with keepauxfiles
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given the default aruba exit timeout is 40 seconds
|
5
|
+
|
6
|
+
Scenario: creating documentation for given project
|
7
|
+
Given I do not have a 'demo' project
|
8
|
+
When I successfully run `indoctrinatr new demo`
|
9
|
+
And I successfully run `indoctrinatr doc demo --keep-aux-files`
|
10
|
+
Then the output should match /A documentation for 'demo' has been successfully generated/
|
11
|
+
Then a file named "demo/doc/demo_technical_documentation.pdf" should exist
|
12
|
+
And a file named "demo/doc/indoctrinatr-technical-documentation.log" should exist
|
13
|
+
And a file named "demo/doc/indoctrinatr-technical-documentation.tex" should exist
|
@@ -1,11 +1,20 @@
|
|
1
1
|
Feature: Running the 'doc' command
|
2
2
|
|
3
3
|
Background:
|
4
|
-
Given the default aruba exit timeout is
|
5
|
-
|
6
|
-
Scenario: creating documentation for given project
|
4
|
+
Given the default aruba exit timeout is 40 seconds
|
7
5
|
Given I do not have a 'demo' project
|
8
6
|
When I successfully run `indoctrinatr new demo`
|
7
|
+
|
8
|
+
Scenario: creating documentation for given project
|
9
|
+
And I successfully run `indoctrinatr doc demo`
|
10
|
+
Then the output should match /Example with field names has been automatically generated for the documentation/
|
11
|
+
Then the output should match /A documentation for 'demo' has been successfully generated/
|
12
|
+
Then a file named "demo/doc/demo_technical_documentation.pdf" should exist
|
13
|
+
|
14
|
+
Scenario: creating the documentation without overwriting a FieldNames PDF example
|
15
|
+
And I successfully run `indoctrinatr pdf_with_field_names demo`
|
16
|
+
Then a file named "demo/doc/examples/demo_with_fieldname_values.pdf" should exist
|
9
17
|
And I successfully run `indoctrinatr doc demo`
|
18
|
+
Then the output should not match /Example with field names has been automatically generated for the documentation/
|
10
19
|
Then the output should match /A documentation for 'demo' has been successfully generated/
|
11
|
-
Then a file named "demo/demo_technical_documentation.pdf" should exist
|
20
|
+
Then a file named "demo/doc/demo_technical_documentation.pdf" should exist
|
@@ -0,0 +1,9 @@
|
|
1
|
+
Feature: Running the 'pdf_with_field_names' command
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given the default aruba exit timeout is 20 seconds
|
5
|
+
|
6
|
+
Scenario: for a given 'demo' project
|
7
|
+
Given I have an Indoctrinatr project 'demo'
|
8
|
+
And I run `indoctrinatr pdf_with_field_names demo`
|
9
|
+
Then a file named "demo/doc/examples/demo_with_fieldname_values.pdf" should exist
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Feature: Running the 'pdf_with_field_names' command with keepauxfiles
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given the default aruba exit timeout is 20 seconds
|
5
|
+
|
6
|
+
Scenario: for a given 'demo' project
|
7
|
+
Given I have an Indoctrinatr project 'demo'
|
8
|
+
And I run `indoctrinatr pdf_with_field_names demo --keep-aux-files`
|
9
|
+
Then a file named "demo/doc/examples/demo_with_fieldname_values.pdf" should exist
|
10
|
+
And a file named "demo/doc/examples/demo_with_fieldname_values.log" should exist
|
data/features/parse.feature
CHANGED
@@ -3,4 +3,4 @@ Feature: Running the 'parse' command
|
|
3
3
|
Scenario: for a given 'demo' project
|
4
4
|
Given I have an Indoctrinatr project 'demo'
|
5
5
|
When I successfully run `indoctrinatr parse demo`
|
6
|
-
Then a file named "demo/demo_with_default_values.tex" should exist
|
6
|
+
Then a file named "demo/doc/examples/demo_with_default_values.tex" should exist
|
data/features/pdf.feature
CHANGED
@@ -7,4 +7,5 @@ Feature: Running the 'pdf' command
|
|
7
7
|
Given I have an Indoctrinatr project 'demo'
|
8
8
|
When I successfully run `indoctrinatr parse demo`
|
9
9
|
And I run `indoctrinatr pdf demo`
|
10
|
-
Then a file named "demo_with_default_values.pdf" should exist
|
10
|
+
Then a file named "demo/doc/examples/demo_with_default_values.pdf" should exist
|
11
|
+
# there is not (an easy) way to use the current timestamp. Therefore the template for the 'new' command should not be static
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Feature: Running the 'pdf' command with keepauxfiles option
|
2
|
+
|
3
|
+
Background:
|
4
|
+
Given the default aruba exit timeout is 20 seconds
|
5
|
+
|
6
|
+
Scenario: for a given 'demo' project
|
7
|
+
Given I have an Indoctrinatr project 'demo'
|
8
|
+
And I run `indoctrinatr pdf demo --keep-aux-files`
|
9
|
+
Then a file named "demo/doc/examples/demo_with_default_values.pdf" should exist
|
10
|
+
And a file named "demo/doc/examples/demo_with_default_values.log" should exist
|
11
|
+
# there is not (an easy) way to use the current timestamp. Therefore the template for the 'new' command should not be static
|
data/features/version.feature
CHANGED
data/features/workflow.feature
CHANGED
data/indoctrinatr-tools.gemspec
CHANGED
@@ -6,9 +6,9 @@ require 'indoctrinatr/tools/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'indoctrinatr-tools'
|
8
8
|
spec.version = Indoctrinatr::Tools::VERSION
|
9
|
-
spec.authors = ['Nicolai Reuschling']
|
10
|
-
spec.email = ['nicolai.reuschling@dkd.de']
|
11
|
-
spec.summary = 'indoctrinatr-tools provides a set of command line tools for Indoctrinatr (an Open Source Software project by dkd Internet Service GmbH, Frankfurt am Main, Germany.
|
9
|
+
spec.authors = ['Nicolai Reuschling', 'Luka Lüdicke']
|
10
|
+
spec.email = ['nicolai.reuschling@dkd.de', 'luka.luedicke@dkd.de']
|
11
|
+
spec.summary = 'indoctrinatr-tools provides a set of command line tools for Indoctrinatr (an Open Source Software project by dkd Internet Service GmbH, Frankfurt am Main, Germany).'
|
12
12
|
# spec.description = %q{TODO: Write a longer description. Optional.}
|
13
13
|
spec.homepage = ''
|
14
14
|
spec.license = 'MIT'
|
@@ -20,12 +20,12 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
24
|
-
spec.add_development_dependency 'rake', '~>
|
25
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
26
|
-
spec.add_development_dependency 'cucumber', '~> 2.
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.12'
|
24
|
+
spec.add_development_dependency 'rake', '~> 11.1'
|
25
|
+
spec.add_development_dependency 'rspec', '~> 3.4'
|
26
|
+
spec.add_development_dependency 'cucumber', '~> 2.3'
|
27
27
|
spec.add_development_dependency 'aruba', '~> 0.9'
|
28
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
28
|
+
spec.add_development_dependency 'rubocop', '~> 0.40'
|
29
29
|
spec.add_development_dependency 'pry', '~> 0.10'
|
30
30
|
spec.add_development_dependency 'coveralls', '~> 0.8'
|
31
31
|
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_dependency 'rubyzip', '~> 1.1'
|
34
34
|
spec.add_dependency 'erubis', '~> 2.7'
|
35
35
|
spec.add_dependency 'to_latex', '~> 0.5'
|
36
|
-
spec.add_dependency 'RedCloth', '~> 4.
|
36
|
+
spec.add_dependency 'RedCloth', '~> 4.3'
|
37
37
|
|
38
|
-
spec.requirements << '
|
38
|
+
spec.requirements << 'LaTeX development enviroment'
|
39
39
|
end
|
@@ -1,17 +1,25 @@
|
|
1
1
|
template_name: Hello World Template
|
2
|
-
textual_description:
|
2
|
+
textual_description: |
|
3
|
+
This is your first _Indoctrinatr_ template. You can use _Textile_ syntax here to *highlight* important information.
|
3
4
|
|
4
|
-
Edit
|
5
|
+
Edit this template as you like. Read more at https://github.com/dkd/indoctrinatr.
|
5
6
|
fields:
|
6
7
|
-
|
7
8
|
name: variable1
|
9
|
+
label: Who is it?
|
8
10
|
presentation: text
|
9
11
|
default_value: "World"
|
10
12
|
description: "The first variable"
|
13
|
+
-
|
14
|
+
name: date
|
15
|
+
label: Date
|
16
|
+
presentation: date
|
17
|
+
default_value: '#{Time.now.year}-#{Time.now.month}-#{Time.now.day}'
|
11
18
|
-
|
12
19
|
name: variable2
|
20
|
+
label: Type of World
|
21
|
+
required: "true"
|
13
22
|
presentation: dropdown
|
14
23
|
default_value: "not enough"
|
15
24
|
available_options: "not enough, beautiful, your oyster, a template"
|
16
25
|
description: "The second variable. The description name can be very long and should adequately describe what the variable is for etc. pp."
|
17
|
-
required: "true"
|
@@ -0,0 +1,72 @@
|
|
1
|
+
% Author Søren Schaffstein
|
2
|
+
% package "dkd-image-tools"
|
3
|
+
% this package provides some image handling tools to make handling of images easier
|
4
|
+
|
5
|
+
% include required libraries (tikz, xstring, xparse, graphicx)
|
6
|
+
|
7
|
+
%use "graphicx" for including images
|
8
|
+
\usepackage{graphicx}
|
9
|
+
|
10
|
+
|
11
|
+
% use "tikz" package for drawing
|
12
|
+
\usepackage{tikz}
|
13
|
+
|
14
|
+
|
15
|
+
% use "xparse" package to allow command definitions with mutliple optional arguments
|
16
|
+
\usepackage{xparse}
|
17
|
+
|
18
|
+
|
19
|
+
% use "xstring" package to allow string comparisons
|
20
|
+
\usepackage{xstring}
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
% creates a placeholder for images with the given dimensions and name
|
25
|
+
% usage: \imagePlaceholder{<width>}{<height>}{<image name>}[<message>]
|
26
|
+
% usage example: \imagePlaceholder{\textwidth}{120mm}{sunset.jpg}[Image not found:]
|
27
|
+
\DeclareDocumentCommand{\imagePlaceholder}{ m m m O{} }{%
|
28
|
+
\begin{tikzpicture}[x=#1, y=#2]
|
29
|
+
\draw (0,0) rectangle (1,1);
|
30
|
+
\draw[color=light-gray] (0,0) -- (1,1);
|
31
|
+
\draw[color=light-gray] (0,1) -- (1,0);
|
32
|
+
\node at (0.5, 0.7) {\Large\texttt{#4}};
|
33
|
+
\node at (0.5, 0.5) {\Large\texttt{#3}};
|
34
|
+
\end{tikzpicture}
|
35
|
+
}
|
36
|
+
|
37
|
+
|
38
|
+
% defines an image placement command that checks if the file exists and places a placeholder if not
|
39
|
+
% usage: \placeImage{<image name>}[<width>]
|
40
|
+
% usage example: \placeImage{sunset.png}[0.5\textwidth]
|
41
|
+
\DeclareDocumentCommand{\placeImage}{ m O{\textwidth} }{%
|
42
|
+
% check if filename is not blank (don't return anything if filename is blank)
|
43
|
+
\IfStrEq{#1}{}{}{%
|
44
|
+
\IfFileExists{#1}{%
|
45
|
+
\includegraphics[width=#2]{images/#1}
|
46
|
+
}{%
|
47
|
+
\imagePlaceholder{#2}{#2}{#1}[Image not found:]
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
% defines a figure placement command that checks if the file exists and places a placeholder if not
|
55
|
+
% usage: \placeFigure{<image name>}[<caption>][<figure label>][<width>]
|
56
|
+
% usage example: \placeFigure{sunset.png}[This is a beautiful sunset!][fig:sun][0.5\textwidth]
|
57
|
+
\DeclareDocumentCommand{\placeFigure}{ m O{} O{} O{\textwidth} }{%
|
58
|
+
% check if filename is not blank (don't return anything if filename is blank)
|
59
|
+
\IfStrEq{#1}{}{}{%
|
60
|
+
\begin{figure}[htbp]
|
61
|
+
\placeImage{#1}[#4]
|
62
|
+
% place caption if one was given
|
63
|
+
\IfStrEq{#2}{}{}{%
|
64
|
+
\caption{#2}
|
65
|
+
}
|
66
|
+
% place a label if one was given
|
67
|
+
\IfStrEq{#3}{}{}{%
|
68
|
+
\label{#3}
|
69
|
+
}
|
70
|
+
\end{figure}
|
71
|
+
}
|
72
|
+
}
|