jekyll-latex-pdf 0.4.2 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a3e64ce2d3f03984f249c185edaa31dcdb03270f
4
- data.tar.gz: 0a2f6ba85b753252c292d0fc8ebe4d1b32ee3e80
3
+ metadata.gz: 9a737aeb75c5bf4341c37833d7e6e7cb6bd51968
4
+ data.tar.gz: 3846bef0d7656169b8aff77026e0b285364ab3f7
5
5
  SHA512:
6
- metadata.gz: 517ab1602eec6a55fa7ce0db5887885ff1ac9be7a76003d1389d219fdf65ee3a7c7509330b6aa1cbaff6f23eee16ef2424a38e134974eb6600f0f9ff40a9c593
7
- data.tar.gz: 40f6b2b970b29046263cccae9a66f40a7e678963dd705e40c19ce01390dc1754f31a2459b4224bfb8a96a4c467a5e247633137a527c63757416725f34d1f0684
6
+ metadata.gz: 4f9ef3d40712ace907e58ef4c647a55d1047d87bb32cf084eec2ce3ccc2eceb993c96437f32627907784ab05816fb7aeab8b1c1545c21adff7d2818e9c17af57
7
+ data.tar.gz: 74b082a6f6f51e729ccd4aa59c70fb22af8e43c680883d219abd39d8b8b1fc317197c6e4b864122d6a74a11d60280c120214802429c054aa30a5270f874a4e94
data/.rubocop.yml CHANGED
@@ -1,162 +1,215 @@
1
- ---
2
-
3
- require:
4
- - ./rubocop/jekyll
5
-
6
- Jekyll/NoPutsAllowed:
7
- Exclude:
8
- - rake/*.rake
9
-
10
1
  AllCops:
11
- TargetRubyVersion: 2.3
2
+ TargetRubyVersion: 2.4
12
3
  Include:
4
+ - bin/*
13
5
  - lib/**/*.rb
14
- - test/**/*.rb
15
- Exclude:
16
- - bin/**/*
17
- - exe/**/*
18
- - benchmark/**/*
19
- - script/**/*
20
- - vendor/**/*
21
- - tmp/**/*
22
- Layout/AlignHash:
23
- EnforcedHashRocketStyle: table
24
- Layout/IndentationWidth:
25
- Severity: error
26
- Layout/IndentArray:
27
- EnforcedStyle: consistent
28
- Layout/IndentHash:
29
- EnforcedStyle: consistent
30
- Layout/MultilineMethodCallIndentation:
31
- EnforcedStyle: indented
32
- Layout/MultilineOperationIndentation:
33
- EnforcedStyle: indented
34
- Lint/NestedPercentLiteral:
35
- Exclude:
36
- - test/test_site.rb
37
- Layout/EmptyComment:
38
- Enabled: false
39
- Layout/EndAlignment:
40
- Severity: error
41
- Lint/UnreachableCode:
42
- Severity: error
43
- Lint/Void:
44
- Exclude:
45
- - lib/jekyll/site.rb
46
- Metrics/AbcSize:
47
- Max: 21
48
- Metrics/BlockLength:
49
- Exclude:
50
- - test/**/*.rb
51
- - lib/jekyll/configuration.rb
52
- - rake/*.rake
53
- Metrics/ClassLength:
54
- Exclude:
55
- - !ruby/regexp /features\/.*.rb$/
56
- - !ruby/regexp /test\/.*.rb$/
57
- - lib/jekyll/document.rb
58
- - lib/jekyll/site.rb
59
- - lib/jekyll/commands/serve.rb
60
- - lib/jekyll/configuration.rb
61
- Max: 240
62
- Metrics/CyclomaticComplexity:
63
- Exclude:
64
- - lib/jekyll/utils.rb
65
- - lib/jekyll/commands/serve.rb
6
+
7
+
8
+
66
9
  Metrics/LineLength:
67
- Exclude:
68
- - !ruby/regexp /features\/.*.rb/
69
- - Rakefile
70
- - rake/*.rake
71
- - Gemfile
72
- Max: 120
73
- Severity: warning
74
- Metrics/MethodLength:
75
- CountComments: false
76
- Max: 20
77
- Severity: error
78
- Metrics/ModuleLength:
79
- Max: 240
10
+ Max: 110 # Preferred length is 100
11
+
80
12
  Metrics/ParameterLists:
81
- Max: 4
82
- Metrics/PerceivedComplexity:
13
+ CountKeywordArgs: false
83
14
  Max: 8
84
- Naming/FileName:
15
+
16
+ Metrics/BlockLength:
85
17
  Enabled: false
86
- Naming/HeredocDelimiterNaming:
87
- Exclude:
88
- - test/**/*.rb
89
- Naming/MemoizedInstanceVariableName:
90
- Exclude:
91
- - lib/jekyll/convertible.rb
92
- - lib/jekyll/drops/site_drop.rb
93
- - lib/jekyll/drops/unified_payload_drop.rb
94
- - lib/jekyll/page_without_a_file.rb
95
- Security/MarshalLoad:
96
- Exclude:
97
- - !ruby/regexp /test\/.*.rb$/
98
- - lib/jekyll/regenerator.rb
99
- Security/YAMLLoad:
100
- Exclude:
101
- - !ruby/regexp /features\/.*.rb/
102
- - !ruby/regexp /test\/.*.rb$/
103
- Style/AccessModifierDeclarations:
18
+
19
+ Metrics/MethodLength:
104
20
  Enabled: false
105
- Style/Alias:
106
- EnforcedStyle: prefer_alias_method
107
- Style/AndOr:
108
- Severity: error
109
- Style/ClassAndModuleChildren:
110
- Exclude:
111
- - test/**/*.rb
112
- Style/ClassVars:
21
+
22
+ Metrics/ClassLength:
23
+ Enabled: false
24
+
25
+ Metrics/ModuleLength:
113
26
  Enabled: false
114
- Style/FrozenStringLiteralComment:
115
- EnforcedStyle: always
116
- Style/Documentation:
27
+
28
+ Metrics/AbcSize:
117
29
  Enabled: false
118
- Style/DoubleNegation:
30
+
31
+ Metrics/CyclomaticComplexity:
119
32
  Enabled: false
120
- Style/FormatStringToken:
121
- Exclude:
122
- - lib/jekyll/utils/ansi.rb
123
- Style/GuardClause:
33
+
34
+ Metrics/PerceivedComplexity:
124
35
  Enabled: false
125
- Style/HashSyntax:
126
- EnforcedStyle: hash_rockets
127
- Severity: error
128
- Style/MixinUsage:
129
- Exclude:
130
- - test/helper.rb
131
- Style/ModuleFunction:
132
- Enabled: false
133
- Style/MultilineTernaryOperator:
134
- Severity: error
135
- Style/PercentLiteralDelimiters:
136
- PreferredDelimiters:
137
- "%q": "{}"
138
- "%Q": "{}"
139
- "%r": "!!"
140
- "%s": "()"
141
- "%w": "()"
142
- "%W": "()"
143
- "%x": "()"
144
- Style/RegexpLiteral:
145
- EnforcedStyle: percent_r
146
- Style/RescueModifier:
36
+
37
+ Metrics/BlockNesting:
38
+ Max: 5
39
+
40
+
41
+ Style/Encoding:
147
42
  Enabled: false
148
- Style/SafeNavigation:
149
- Exclude:
150
- - lib/jekyll/document.rb
151
- Style/SignalException:
152
- EnforcedStyle: only_raise
43
+
153
44
  Style/StringLiterals:
154
- EnforcedStyle: double_quotes
155
- Style/StringLiteralsInInterpolation:
156
- EnforcedStyle: double_quotes
45
+ Enabled: false # we don't care
46
+
47
+ Style/RegexpLiteral:
48
+ AllowInnerSlashes: true
49
+
50
+ Style/NumericLiterals:
51
+ MinDigits: 6
52
+
53
+ Style/NumericLiteralPrefix:
54
+ EnforcedOctalStyle: zero_only
55
+
157
56
  Style/SymbolArray:
158
57
  EnforcedStyle: brackets
58
+
59
+ Style/WordArray:
60
+ MinSize: 5
61
+
159
62
  Style/TrailingCommaInArrayLiteral:
160
- EnforcedStyleForMultiline: consistent_comma
63
+ EnforcedStyleForMultiline: comma
64
+
161
65
  Style/TrailingCommaInHashLiteral:
162
- EnforcedStyleForMultiline: consistent_comma
66
+ EnforcedStyleForMultiline: comma
67
+
68
+ Style/ClassCheck:
69
+ EnforcedStyle: kind_of?
70
+
71
+ Style/EmptyMethod:
72
+ EnforcedStyle: expanded
73
+
74
+ Style/Lambda:
75
+ EnforcedStyle: lambda
76
+
77
+ Style/NumericPredicate:
78
+ EnforcedStyle: comparison
79
+
80
+ Style/TernaryParentheses:
81
+ EnforcedStyle: require_parentheses
82
+
83
+ Style/FormatString:
84
+ EnforcedStyle: sprintf
85
+
86
+ Style/Semicolon:
87
+ AllowAsExpressionSeparator: true
88
+
89
+ Style/YodaCondition:
90
+ EnforcedStyle: require_for_equality_operators_only
91
+
92
+ Style/EmptyElse:
93
+ EnforcedStyle: empty
94
+
95
+ Style/CaseEquality:
96
+ Enabled: false
97
+
98
+ Style/GuardClause:
99
+ Enabled: false # false alarms
100
+
101
+ Style/MethodMissingSuper:
102
+ Enabled: false # why the need to fallback to super?
103
+
104
+ Style/Next:
105
+ Enabled: false # not really useful
106
+
107
+ Style/ParallelAssignment:
108
+ Enabled: false # not really needed
109
+
110
+ Style/TrivialAccessors:
111
+ Enabled: false
112
+
113
+ Style/NestedTernaryOperator:
114
+ Enabled: false # compact nested ternary operators are okay
115
+
116
+ Style/RescueModifier:
117
+ Enabled: false # valid but using it makes life sometimes easier
118
+
119
+ Style/MutableConstant:
120
+ Enabled: false # valid but sometimes unavoidable
121
+
122
+ Style/CommentedKeyword:
123
+ Enabled: false # false alarms and we do want yield comments on that line
124
+
125
+ Style/StderrPuts:
126
+ Enabled: false # false alarms because not all $stderr.puts messages are Ruby style warnings
127
+
128
+ Style/PerlBackrefs:
129
+ Enabled: false # sometimes there are no good alternatives
130
+
131
+ Style/IfUnlessModifier:
132
+ Enabled: false # useful but sometimes the meaning is better conveyed using an if/unless statement
133
+
134
+ Style/InfiniteLoop:
135
+ Enabled: false # why should Kernel#loop be better than while true?
136
+
137
+ Style/SpecialGlobalVars:
138
+ Enabled: false # I think that $! and $? are recognizable in terms of their function
139
+
140
+ Style/MultipleComparison:
141
+ Enabled: false # why should an array be created? especially if only two items are compared
142
+
143
+ Style/AccessModifierDeclarations:
144
+ Enabled: false
145
+
146
+ Style/WhileUntilModifier:
147
+ Enabled: false # I prefer to use either one or the other, depending on context
148
+
149
+ Style/FormatStringToken:
150
+ Enabled: false # I don't care about this
151
+
152
+ #Style/ClassAndModuleChildren:
153
+ # Enabled: false
154
+
155
+ Style/ClassVars:
156
+ Enabled: false
157
+
158
+
159
+ Layout/AlignHash:
160
+ EnforcedLastArgumentHashStyle: ignore_implicit
161
+
162
+ Layout/SpaceInsideBlockBraces:
163
+ SpaceBeforeBlockParameters: false
164
+
165
+ Layout/SpaceInsideHashLiteralBraces:
166
+ EnforcedStyle: no_space
167
+
168
+ Layout/EmptyLineBetweenDefs:
169
+ AllowAdjacentOneLineDefs: true
170
+
171
+ Layout/EmptyLinesAroundModuleBody:
172
+ Enabled: false
173
+
174
+ Layout/EmptyLinesAroundClassBody:
175
+ EnforcedStyle: empty_lines
176
+
177
+ Layout/MultilineOperationIndentation:
178
+ EnforcedStyle: indented
179
+
180
+ Layout/MultilineMethodCallIndentation:
181
+ EnforcedStyle: indented
182
+
183
+ Layout/DotPosition:
184
+ EnforcedStyle: trailing
185
+
186
+ Layout/EmptyLineAfterMagicComment:
187
+ Enabled: false # we have the magic comment and then the license
188
+
189
+ Layout/IndentAssignment:
190
+ Enabled: false # false alarms
191
+
192
+ Naming/FileName:
193
+ Enabled: false
194
+
195
+ Naming/HeredocDelimiterNaming:
196
+ Enabled: false # we like our delimiters short and obvious
197
+
198
+ Naming/UncommunicativeMethodParamName:
199
+ Enabled: false # for points the names x,y are perfectly reasonable
200
+
201
+ Lint/LiteralAsCondition:
202
+ Enabled: false # we use while true
203
+
204
+ Lint/NonLocalExitFromIterator:
205
+ Enabled: false
206
+
207
+ Lint/HandleExceptions:
208
+ Enabled: false
209
+
210
+ Performance/FixedSize:
211
+ Enabled: false
212
+
213
+
214
+ Security/Open:
215
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,7 +1,14 @@
1
1
  # Changelog
2
2
 
3
- ## [Unreleased]
4
- ### [0.4.2] - 2019-04-21
3
+ ## [0.5.0]
4
+ ### Added
5
+ - Adding support for the jekyll-figure package.
6
+ - Adding tkiz support, for HTML and PDF.
7
+ - Moved to chache files inside project tree instead of tmp files.
8
+
9
+
10
+ ## [0.4.2] - 2019-04-21
11
+ ### Added
5
12
  - Template search routine
6
13
  - apa6 template
7
14
  - some new config variables (see readme)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jekyll-latex-pdf (0.4.2)
4
+ jekyll-latex-pdf (0.5.0)
5
5
  jekyll (~> 3.8.5)
6
6
  kramdown (~> 1.17)
7
7
 
data/README.md CHANGED
@@ -36,6 +36,17 @@ Or install it yourself as:
36
36
  To make it work with jekyll, you need to add `- jekyll-latex-pdf` to the plugins
37
37
  section in your `_config.yml` file of your jekyll site.
38
38
 
39
+ You need to have Latex installed on your system. Default is to use `lualatex`
40
+ and `biber` which depends on your system how to install. Look for texlive and
41
+ biblatex to see how it works.
42
+
43
+ If you want to use the `tikz` environment you additionally need to install
44
+ `pdf2svg` and `graphicsmagick`.
45
+
46
+ You may want to add `.latex-cache` and maybe `.tikz-cache` to your
47
+ `.gitignore`. This is where we store the latex projects for faster recompiling
48
+ if needed.
49
+
39
50
  ## Usage
40
51
 
41
52
  Simply add `pdf: true` somewhere in your yaml header of the post.
@@ -66,21 +77,17 @@ pdf:
66
77
  All this variables can also be adjusted in the yaml header of your post.
67
78
 
68
79
  Variables to customize are:
69
- - *pdf_engine*: Defaults to `lualatex` and can be changed to pdflatex, xelatex,
70
- ...
71
- - *bib_engine*: Defaults to `biber` and is only used if the
72
- (jekyll-scholar)[https://github.com/inukshuk/jekyll-scholar] is present and
73
- enabled in your `_config.yml` file. biber is part of biblatex, which is
74
- used by default. If you use bibtex, change this to 'bibtex' instead.
75
- - *template*: defaults to `jekyll-latex-pdf` which is a upgraded template from
76
- kramdown, but to use title author and date and creates the title. There is
77
- also `apa6` present which can be used. See section *apa6* below. If you
78
- want to use, and this is why this gem was made, just start with one of this
79
- templates from the git repository and save it inside the `template_path`
80
- (which defaults to '_latex') folder in your project with the `.latex`
81
- extension, and set the template in your `_config.yml`.
82
- - *template_path*: defaults to `_latex` and is the path where your custom
83
- templates can be stored. It is not used if you use the shipped templates only.
80
+
81
+ | Variable | Description |
82
+ |-----------------+---------------------------------------------------------------------|
83
+ | `pdf_engine` | Defaults to `lualatex` and can be changed to pdflatex, xelatex, ... |
84
+ | `bib_engine` | Defaults to `biber` and is used when `jekyll-scholar` is present. |
85
+ | `template` | Defaults to `jekyll-latex-pdf` |
86
+ | `template_path` | Is where we look for your own templates. Defaults to `_latex`. |
87
+ | `date_as_note` | Is `false` by default. See apa6 |
88
+ | `tikz_path` | Defaults to `assets/tikz_svg`. See tikz section. |
89
+ |-----------------+---------------------------------------------------------------------|
90
+
84
91
 
85
92
  Just set up a ticket on
86
93
  (issues)[https://gitlab.com/grauschnabel/jekyll-latex-pdf/issues] to add feature
@@ -90,8 +97,9 @@ requests you need.
90
97
 
91
98
  The default template is a good way to start. Copy it to your `_latex` folder,
92
99
  and adjust it. Change the name and set the `template` in your config or the
93
- yaml header of your post. Your template in _latex will be prefered to the one
94
- shiped with this gem if it has the same name.
100
+ yaml header of your post. Your template in `_latex` will be prefered to the one
101
+ shiped with this gem if it has the same name. Files should have the `.latex`
102
+ extension.
95
103
 
96
104
  ### jekyll-latex-pdf
97
105
 
@@ -122,8 +130,19 @@ class)[http://mirrors.ctan.org/macros/latex/contrib/apa6/apa6.pdf].
122
130
  instead of the date.
123
131
  - *authornote*
124
132
  - *keywords*
133
+ - *journal*: Original uscase is the journal name. You can use your website here
134
+ if you want.
135
+ - *volume*
136
+ - *ccoppy*
137
+ - *copnum*
138
+
139
+ apa6 does not render the date by default. You can render the date in the note
140
+ field. Let jekyll-latex-pdf do that for you by setting `date_as_note` to `true`
141
+ in the yaml header of your post or the `_config.yml`s pdf section for all.
125
142
 
126
- ## jekyll-scholar integration
143
+ ## Integration of other jekyll plugins:
144
+
145
+ ### jekyll-scholar
127
146
 
128
147
  Check the (jekyll-scholar
129
148
  documentation)[https://github.com/inukshuk/jekyll-scholar] to figure out how
@@ -134,6 +153,51 @@ Basically this ignores most of the jekyll-scholar configuration which is just
134
153
  for the webpages it creates. You need to define your citation styles and so on
135
154
  in a customized template.
136
155
 
156
+ ### jekyll-figure
157
+
158
+ Use this to create figure environments inside html. With jekyll-latex-pdf you
159
+ get also the figure environment inside latex files.
160
+
161
+ ## Other extras
162
+
163
+ ### Tikz
164
+
165
+ tikz is a graphics interface used in latex. We add support for using tikz also
166
+ for html files, so you can use
167
+
168
+ ```
169
+ {% tikz filename %}
170
+ \tikz code goes here
171
+ {% endtikz %}
172
+ ```
173
+
174
+ On your page. This will use latex to render the tikz code to a pdf which will
175
+ be converted to svg and png then. This svg is included as object. For latex,
176
+ the tikz code will go directly into the source file and will be rendered during
177
+ the rendering process.
178
+
179
+ You can adjust the `tikz_path` if you want to store the svg and png files
180
+ somewhere else. The svg file will be used in your page by default, but if the
181
+ browser cannot render it, the png file will be used.
182
+
183
+ You need to have `pdf2svg` and `graphicsmagick` installed on your system.
184
+
185
+ ## Different versions for html and latex.
186
+
187
+ Kramdowns (nomarkdown)[https://kramdown.gettalong.org/syntax.html#extensions]
188
+ extension is great for this. Simple example:
189
+
190
+ ```
191
+ {::nomarkdown type="latex"}
192
+ This should be written in latex, and will not be put in the html version.
193
+ {:/nomarkdown}
194
+
195
+ {::nomarkdown type="html"}
196
+ This will only be available in the HTML version of the page. Use HTML instead
197
+ of markdown here.
198
+ {:/nomarkdown}
199
+ ```
200
+
137
201
  ## Todo:
138
202
 
139
203
  - add cite support in the abstract.