asciidoctor-pdf 1.5.0.beta.2 → 1.5.0.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.adoc +41 -0
  3. data/README.adoc +233 -18
  4. data/asciidoctor-pdf.gemspec +5 -2
  5. data/data/fonts/ABOUT-mplus1mn-subset +2 -0
  6. data/data/fonts/ABOUT-mplus1p-subset +1 -0
  7. data/data/fonts/ABOUT-notoserif-subset +1 -0
  8. data/data/fonts/mplus1mn-bold-ascii.ttf +0 -0
  9. data/data/fonts/mplus1mn-bold-subset.ttf +0 -0
  10. data/data/fonts/mplus1mn-bold_italic-ascii.ttf +0 -0
  11. data/data/fonts/mplus1mn-bold_italic-subset.ttf +0 -0
  12. data/data/fonts/mplus1mn-italic-ascii.ttf +0 -0
  13. data/data/fonts/mplus1mn-italic-subset.ttf +0 -0
  14. data/data/fonts/mplus1mn-regular-ascii-conums.ttf +0 -0
  15. data/data/fonts/mplus1mn-regular-subset.ttf +0 -0
  16. data/data/fonts/mplus1p-regular-fallback.ttf +0 -0
  17. data/data/fonts/notoserif-bold-subset.ttf +0 -0
  18. data/data/fonts/notoserif-bold_italic-subset.ttf +0 -0
  19. data/data/fonts/notoserif-italic-subset.ttf +0 -0
  20. data/data/fonts/notoserif-regular-subset.ttf +0 -0
  21. data/data/themes/base-theme.yml +5 -2
  22. data/data/themes/default-theme.yml +5 -1
  23. data/docs/theming-guide.adoc +176 -53
  24. data/lib/asciidoctor-pdf/converter.rb +342 -238
  25. data/lib/asciidoctor-pdf/formatted_text/inline_image_arranger.rb +1 -1
  26. data/lib/asciidoctor-pdf/formatted_text/parser.rb +16 -4
  27. data/lib/asciidoctor-pdf/formatted_text/parser.treetop +1 -1
  28. data/lib/asciidoctor-pdf/formatted_text/transform.rb +22 -6
  29. data/lib/asciidoctor-pdf/implicit_header_processor.rb +1 -1
  30. data/lib/asciidoctor-pdf/prawn_ext/extensions.rb +3 -3
  31. data/lib/asciidoctor-pdf/prawn_ext/images.rb +3 -3
  32. data/lib/asciidoctor-pdf/sanitizer.rb +1 -1
  33. data/lib/asciidoctor-pdf/theme_loader.rb +54 -31
  34. data/lib/asciidoctor-pdf/version.rb +1 -1
  35. metadata +47 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 39073eb8a1bb2d5cac70b6909884e9c7e28813919295d5058c4471ea5805f103
4
- data.tar.gz: e527403b220a3969d0398e9a6e3b4e3101fb9a55eafe9dacbe429b6abd8399ee
3
+ metadata.gz: a069bf48fbe99050934610c30657128be8730eb5efcfc05cb63501374e904fbd
4
+ data.tar.gz: b2975922d3e8da6f7da239285fab79d285ec1a57b3870af130aa248c01475445
5
5
  SHA512:
6
- metadata.gz: 15142864ee5aa1ab97c6ec2c5c82793532528b10ebe093a3af8514c313c0c3f06b4a3aabc2c1d246546991332a6de7bd8772843373fd715a96b4d38d5f563228
7
- data.tar.gz: 3c3d20aebe612eb3869fc5f38b8af536e5bb51ea95765cbe1c61515e36d03e0d62dbe97262629b581524a6d8783cb886c8bfc4832c6e5b4dab0dd3a4e4624a17
6
+ metadata.gz: 005bb7e4b493d6adae9b3fef48b94caeacea1a84e47ae5209c0562a5d9ba10131a71cba011b35f1f09de57850ccea7fe5456d1d59906f0a76d2a3a63e70f4c7f
7
+ data.tar.gz: ea0f6d4a02d5ef32e4fb467e8793e1b4da458391eca2f678d0dbc1e9a52c22987843b1ebf6260d41cb4ae27780f6cde686a2c64bda24817ac83e978a8050a83c
data/CHANGELOG.adoc CHANGED
@@ -5,6 +5,47 @@
5
5
  This document provides a high-level view of the changes to the {project-name} by release.
6
6
  For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
7
7
 
8
+ == 1.5.0.beta.3 (2019-08-30) - @mojavelinux
9
+
10
+ * allow multiple font dirs to be specified using the pdf-fontsdir attribute (#80)
11
+ * fill and stroke bounds of example across all pages (#362)
12
+ * allow page background color and background image to be used simultaneously (#1186)
13
+ * allow theme to specifiy initial zoom (#305)
14
+ * strip surrounding whitespace from text in normal table cells
15
+ * allow attribute references to be used in image paths in theme (#588)
16
+ * resolve variables in font catalog in theme file
17
+ * honor the cellbgcolor attribute defined in a table cell to set the cell background color (#234) (*mch*)
18
+ * add the .notdef glyph to the bundled fonts (a box which is used as the default glyph if the font is missing a character) (#1194)
19
+ * don't drop headings if base font family is not set in theme
20
+ * don't crash if heading margins are not set in theme
21
+ * don't rely on base_line_height_length theme key in converter (should be internal to theme)
22
+ * set fallback value for base (root) font size
23
+ * reduce min font size in base theme
24
+ * allow theme to configure the minimum height required after a section title for it to stay on same page (#1210)
25
+ * convert hyphen to underscore in theme key for admonition icon type (#1217)
26
+ * always resolve images in running content relative to themesdir (instead of document) (#1183)
27
+ * fix placement of toc in article when doctitle is not set (#1240)
28
+ * honor text alignment role on abstract paragraph(s)
29
+ * don't insert blank page at start of document if media=prepress and document does not have a cover (#1181)
30
+ * insert blank page after cover if media=prepress (#1181)
31
+ * add support for stretch role on table (as preferred alias for spread) (#1225)
32
+ * include revremark on title page if specified (#1198)
33
+ * allow theme to configure border around block image (#767)
34
+ * align first block of list item with marker if primary text is blank (#1196)
35
+ * apply correct margin to list item if primary text is blank (#1196)
36
+ * allow page break before and after part and before chapter to be configured by theme (#74)
37
+ * allow page number of PDF to import to be specified using `page` attribute on image macro (#1202)
38
+ * use value of theme key heading-margin-page-top as top margin for heading if cursor is at top of page (#576)
39
+ * resolve icon image relative to docdir instead of current working directory
40
+ * allow theme to style mark element; add default styles to built-in themes (#1226)
41
+ * if value of scripts attribute is cjk, break lines between any two CJK characters (except punctuation) (#1206)
42
+ * add support for role to font-based icon (to change font color) (#349)
43
+ * use fallback size for admonition icon
44
+ * allow attribute reference in running content to be escaped using a backslash
45
+ * allow theme to configure text background and border on a phrase with a custom role (#1223)
46
+ * fix crash if source-highlighter attribute is defined outside the header (#1231)
47
+ * fix crash when aligning line numbers of source highlighted with Pygments (#1233)
48
+
8
49
  == 1.5.0.beta.2 (2019-07-30) - @mojavelinux
9
50
 
10
51
  * only apply title page background image to the title page (#1144)
data/README.adoc CHANGED
@@ -1,6 +1,6 @@
1
1
  = Asciidoctor PDF: A native PDF converter for AsciiDoc
2
2
  Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>
3
- v1.5.0.beta.2, 2019-07-30
3
+ v1.5.0.beta.3, 2019-08-30
4
4
  // Settings:
5
5
  :experimental:
6
6
  :idprefix:
@@ -24,7 +24,7 @@ endif::[]
24
24
  :project-name: Asciidoctor PDF
25
25
  :project-handle: asciidoctor-pdf
26
26
  // Variables:
27
- :release-version: 1.5.0.beta.2
27
+ :release-version: 1.5.0.beta.3
28
28
  // URIs:
29
29
  :uri-asciidoctor: http://asciidoctor.org
30
30
  :uri-gem: http://rubygems.org/gems/asciidoctor-pdf
@@ -58,11 +58,6 @@ _No more middleman._ +
58
58
  _No more DocBook toolchain._ +
59
59
  It's AsciiDoc straight to PDF!
60
60
 
61
- [caption=Status]
62
- CAUTION: {project-name} is currently _alpha_ software.
63
- While the converter handles most AsciiDoc content, there's still work needed to fill in gaps where conversion is incomplete, incorrect or not implemented.
64
- See the milestone v1.5.0 in the {uri-project-issues}[issue tracker] for details.
65
-
66
61
  toc::[]
67
62
 
68
63
  == Prawn, the Majestic PDF Generator
@@ -148,9 +143,11 @@ ifndef::env-site[You can also <<development,run the code from source>> if you wa
148
143
 
149
144
  === Install the Published Gem
150
145
 
151
- {project-name} is published as a pre-release on RubyGems.org.
152
- First, make sure you have satisfied the <<Prerequisites,prerequisites>>.
153
- Then, you can install the published gem using the following command:
146
+ {project-name} is published to RubyGems.org as a pre-release.
147
+ Since it's in pre-release, you have to specify the `--pre` flag when installing using the `gem` command.
148
+
149
+ To install {project-name}, first make sure you have satisfied the <<Prerequisites,prerequisites>>.
150
+ Then, install the gem from RubyGems.org using the following command:
154
151
 
155
152
  $ gem install asciidoctor-pdf --pre
156
153
 
@@ -329,17 +326,19 @@ To find a complete list of available icons, consult the https://github.com/jesse
329
326
 
330
327
  == Image Paths
331
328
 
332
- Relative images paths are resolved relative to the value of the `imagesdir` attribute at the time the converter is run.
329
+ Relative images paths in the document are resolved relative to the value of the `imagesdir` attribute (at the time the converter runs).
333
330
  This is effectively the same as how the built-in HTML converter works when the `data-uri` attribute is set.
334
331
  The `imagesdir` is blank by default, which means relative images paths are resolved relative to the input document.
332
+ Relative images paths in the theme are resolved relative to the value of the `pdf-themesdir` attribute (which defaults to the directory of the theme file).
333
+ The `imagesdir` attribute is not used when resolving an image path in the theme file.
335
334
  Absolute image paths are used as is.
336
335
 
337
336
  If the image is an SVG, and the SVG includes a nested raster image (PNG or JPG) with a relative path, that path is resolved relative to the directory that contains the SVG.
338
337
 
339
- The converter will refuse to include an image if the target is a URI unless the `allow-uri-read` attribute is enabled via the CLI or API.
338
+ The converter will refuse to embed an image if the target is a URI (including image references in an SVG) unless the `allow-uri-read` attribute is enabled via the CLI or API.
340
339
 
341
- If the image is an SVG and that SVG links to another image, the linked image will be resolved using the same rules as the original image.
342
- However, note that a width and height must be specified on the linked image or else the SVG library will fail to process it.
340
+ If you use a linked image in an SVG, the width and height of that image must be specified.
341
+ Otherwise, the SVG library will fail to process it.
343
342
 
344
343
  === Asciidoctor Diagram Integration
345
344
 
@@ -358,7 +357,7 @@ Keep in mind that this strategy may introduce other side effects you'll have to
358
357
  Since PDF is a fixed-width canvas, you almost always need to specify a width to get the image to fit properly on the page.
359
358
  There are five ways to specify the width of an image, listed here in order of precedence:
360
359
 
361
- [cols="1s,3d"]
360
+ [cols="1s,3"]
362
361
  |===
363
362
  |Attribute{nbsp}Name | Description
364
363
 
@@ -385,7 +384,7 @@ If the width exceeds the content area width, the image is scaled down to the con
385
384
  |If you don't specify one of the aforementioned width settings, the intrinsic width of the image is used (the px value is multiplied by 75% to convert to pt, assuming canvas is 96 dpi) unless the width exceeds the content area width, in which case the image is scaled down to the content area width.
386
385
  |===
387
386
 
388
- The image is always sized according to the explicit or intrinsic width and its height is scaled proportionally.
387
+ The image is always sized according to the explicit or intrinsic width, then its height is scaled proportionally.
389
388
  The height of the image is ignored by the PDF converter unless the height of the image exceeds the content height of the page.
390
389
  In this case, the image is scaled down to fit on a single page.
391
390
 
@@ -442,6 +441,72 @@ Once the resolved height exceeds this amount, the height of the line is increase
442
441
  In this case, the surrounding text will be aligned to the bottom of the image.
443
442
  If the image height exceeds the height of the page, the image will be scaled down to fit on a single page (this may cause the image to advance to the subsequent page).
444
443
 
444
+ === Background Image Sizing
445
+
446
+ In addition to the width-related attributes previously covered, background images can be sized relative to the page using the `fit` attribute of the image macro.
447
+ The `fit` attribute works similarly to the `object-fit` property in CSS.
448
+ It's value must be specified as a single keyword, chosen from the table below.
449
+ The starting size of the image is determined by the explicit width, if specified, or the implicit width.
450
+ The height is always derived from with width, respecting the implicit aspect ratio of the image.
451
+ The available space for a background image (i.e., the canvas) is the page.
452
+
453
+ [cols="1s,3"]
454
+ |===
455
+ | Value | Purpose
456
+
457
+ | contain
458
+ | The image is scaled up or down while retaining its aspect ratio to fit within the available space.
459
+
460
+ | cover
461
+ | The image is scaled up or down while retaining its aspect ratio so the image completely covers the available space, even if it means the image must be clipped in one direction.
462
+
463
+ | scale-down
464
+ | The image is scaled down while retaining its aspect ratio to fit within the available space.
465
+ If the image already fits, it is not scaled.
466
+
467
+ | none
468
+ | The image is not scaled.
469
+ |===
470
+
471
+ The `fit` attribute is often combined with the `position` attribute, covered next, to control the placement of the image on the canvas.
472
+
473
+ == Background Image Positioning
474
+
475
+ In addition to scaling, background images for cover pages, content pages, and the title page support positioning via the `position` attribute.
476
+ The `position` attribute accepts a syntax similar to the `background-position` property in CSS, except only the keyword positions are supported.
477
+ The position consists of two values, the vertical position and the horizontal position (e.g., `top center`).
478
+ If only one value is specified (e.g., `top`), the other value is assumed to be `center`.
479
+ If the `position` attribute is not specified, the value is assumed to be `center center` (i.e., the image is centered on the page).
480
+
481
+ The following table provides a list of the vertical and horizontal positioning keywords that are supported.
482
+ You can use any combination of these keywords to position the image.
483
+
484
+ |===
485
+ | Vertical Positions | Horizontal Positions
486
+
487
+ | top +
488
+ center +
489
+ bottom
490
+
491
+ | left +
492
+ center +
493
+ right
494
+ |===
495
+
496
+ Here's an example of how to place a background image at the top center of every page:
497
+
498
+ ----
499
+ :page-background-image: image:bg.png[pdfwidth=50%,position=top]
500
+ ----
501
+
502
+ Here's how to move it to the bottom right:
503
+
504
+ ----
505
+ :page-background-image: image:bg.png[pdfwidth=50%,position=bottom right]
506
+ ----
507
+
508
+ If an image dimension matches the height or width of the page, the positioning keyword for that axis has no effect.
509
+
445
510
  == Fonts in SVG Images
446
511
 
447
512
  Asciidoctor PDF uses {uri-prawn-svg}[prawn-svg] to embed SVGs in the PDF document, including SVGs generated by Asciidoctor Diagram.
@@ -500,6 +565,123 @@ Please refer to the {uri-prawn-gmagick}[README for prawn-gmagick] to learn how t
500
565
  Once this gem is installed, Asciidoctor automatically switches over to it to handle embedding of all images.
501
566
  In addition to support for more additional image file formats, this gem also speeds up image processing considerably, so we highly recommend using it if you can.
502
567
 
568
+ == Importing PDF Pages
569
+
570
+ In addition to using a PDF page for the front or back cover, you can also insert a PDF page at an arbitrary location.
571
+ This technique is useful to include pages that have complex layouts and graphics prepared in a specialized design program (such as Inkscape), which would otherwise not be achievable using this converter.
572
+ One such example is an insert such as an advertisement or visual interlude.
573
+
574
+ To import the first page from a PDF file, use the block image macro with the PDF filename as the image target.
575
+
576
+ [source,asciidoc]
577
+ ----
578
+ image::custom-page.pdf[]
579
+ ----
580
+
581
+ By default, this macro will import the first page of the PDF.
582
+ To import a different page, specify it as a 1-based index using the `page` attribute.
583
+
584
+ [source,asciidoc]
585
+ ----
586
+ image::custom-page.pdf[page=2]
587
+ ----
588
+
589
+ To import multiple pages, you'll need to use multiple image macros, each specifying the page number to import.
590
+
591
+ CAUTION: An image macro that imports a PDF page should never be nested inside a delimited block or table.
592
+ It should be a direct descendant of the document or a section.
593
+ Otherwise, the behavior is unspecified.
594
+
595
+ The converter will insert the page from the PDF as a dedicated page that matches the size and layout of the page being imported (no matter where the block image occurs).
596
+ Therefore, there's no need to put a manual page break (i.e., `<<<`) around the image macro.
597
+
598
+ To see a practical example of how to use this feature, refer to the blog post https://fromplantoprototype.com/blog/2019/08/07/importing-pdf-pages-in-asciidoctor-pdf/[Importing PDF Pages in asciidoctor-pdf].
599
+
600
+ == Crafting Interdocument Xrefs
601
+
602
+ This converter produces a single PDF file, which means content from multiple source documents get colocated into the same output file.
603
+ That means references between documents must necessarily become internal references.
604
+ These interdocument cross references (i.e., xrefs) will only successfully make that transition if you structure your document in accordance with the rules.
605
+
606
+ Those rules are as follows:
607
+
608
+ . The path segment of the interdocument xref must match the project-relative path of the included document
609
+ . The reference must include the ID of the target element
610
+
611
+ For instance, if your primary document contains the following include:
612
+
613
+ [source,asciidoc]
614
+ ----
615
+ \include::chapters/chapter-1.adoc[]
616
+ ----
617
+
618
+ Then an interdocument xref to an anchor in that chapter must be expressed as:
619
+
620
+ [source,asciidoc]
621
+ ----
622
+ <<chapters/chapter-1.adoc#_anchor_name,Destination in Chapter 1>>
623
+ ----
624
+
625
+ This rule holds regardless of which document the xref is located in.
626
+
627
+ To resolve the interdocument xref, the converter first checks if the target matches the `docname` attribute.
628
+ It then looks to see if the target matches one of the included files.
629
+ (In both cases, it ignores the file extension).
630
+ If Asciidoctor cannot resolve the target of an interdocument xref, it simply makes a link (like the HTML converter).
631
+
632
+ Let's consider a complete example.
633
+ Assume you are converting the following book document at the root of the project:
634
+
635
+ [source,asciidoc]
636
+ ----
637
+ = Book Title
638
+ :doctype: book
639
+
640
+ \include::chapters/chapter-1.adoc[]
641
+
642
+ \include::chapters/chapter-2.adoc[]
643
+ ----
644
+
645
+ Where the contents of chapter 1 is as follows:
646
+
647
+ [source,asciidoc]
648
+ ----
649
+ == Chapter 1
650
+
651
+ We cover a little bit here.
652
+ The rest you can find in <<chapters/chapter-2.adoc#_chapter_2,Chapter 2>>.
653
+ ----
654
+
655
+ And the contents of chapter 2 is as follows:
656
+
657
+ [source,asciidoc]
658
+ ----
659
+ == Chapter 2
660
+
661
+ Prepare to be educated.
662
+ This chapter has it all!
663
+
664
+ To begin, jump to <<chapters/chapter-2/first-steps.adoc#_first_steps,first steps>>.
665
+
666
+ <<<
667
+
668
+ \include::chapter-2/first-steps.adoc[]
669
+ ----
670
+
671
+ And, finally, the contents of the nested include is as follows:
672
+
673
+ [source,asciidoc]
674
+ ----
675
+ === First Steps
676
+
677
+ Let's start small.
678
+ ----
679
+
680
+ You'll find when you run this example that all the interdocument xrefs become internal references in the PDF.
681
+
682
+ The reason both the path and anchor are required (even when liking to the top of a chapter) is so the interdocument xref works independent of the converter.
683
+ In other words, it encodes the complete information about the reference so the converter can sort out where the target is in all circumstances.
684
+
503
685
  == STEM Support
504
686
 
505
687
  Unlike the built-in HTML converter, Asciidoctor PDF does not provide native support for STEM blocks and inline macros (i.e., asciimath and latexmath).
@@ -590,10 +772,11 @@ Therefore, the long lines are forced to wrap.
590
772
  Wrapped lines can make the verbatim blocks hard to read or even cause confusion.
591
773
 
592
774
  To help address this problem, Asciidoctor PDF provides the `autofit` option on all verbatim (i.e., literal, listing and source) blocks to attempt to fit the text within the available width.
593
- When the `autofit` option is enabled, Asciidoctor PDF will decrease the font size until the longest line fits without wrapping.
775
+ When the `autofit` option is enabled, Asciidoctor PDF will decrease the font size (as much as it can) until the longest line fits without wrapping.
594
776
 
595
- CAUTION: The font size will not be decreased beyond the value of the `base_font_size_min` key specified in the PDF theme.
777
+ CAUTION: The converter will not shrink the font size beyond the value of the `base_font_size_min` key specified in the PDF theme.
596
778
  If that threshold is reached, lines may still wrap.
779
+ To allow `autofit` to handle all cases, set `base_font_size_min` to `0` in your theme.
597
780
 
598
781
  Here's an example of the autofit option enabled on a source block:
599
782
 
@@ -895,6 +1078,38 @@ To switch back to master, just type:
895
1078
 
896
1079
  $ git checkout master
897
1080
 
1081
+ === Generate Code Coverage Report
1082
+
1083
+ To generate a code coverage report when running tests using simplecov, set the `COVERAGE` environment variable as follows when running the tests:
1084
+
1085
+ $ COVERAGE=true bundle exec rake spec
1086
+
1087
+ You'll see a total coverage score as well as a link to the HTML report in the output.
1088
+ The HTML report helps you understand which lines and branches were missed, if any.
1089
+
1090
+ Despite being fast, the downside of using simplecov is that it misses code branches.
1091
+ You can use deep-cover instead of simplecov to generate a more thorough report.
1092
+ To do so, set the `COVERAGE` environment variable to `deep` when running the tests:
1093
+
1094
+ $ COVERAGE=deep bundle exec rake spec
1095
+
1096
+ You'll see a total coverage score, a detailed coverage report, and a link to HTML report in the output.
1097
+ The HTML report helps you understand which lines and branches were missed, if any.
1098
+
1099
+ ////
1100
+ As an alternative to deep cover's native HTML reporter, you can also use istanbul / nyc.
1101
+ First, you'll need to have the `nyc` command available on your system:
1102
+
1103
+ $ npm install -g nyc
1104
+
1105
+ Next, in addition to the `COVERAGE` environment variable, also set the `DEEP_COVER_REPORTER` environment variable as follows when running the tests:
1106
+
1107
+ $ COVERAGE=deep DEEP_COVER_REPORTER=istanbul bundle exec rake spec
1108
+
1109
+ You'll see a total coverage score, a detailed coverage report, and a link to HTML report in the output.
1110
+ The HTML report helps you understand which lines and branches were missed, if any.
1111
+ ////
1112
+
898
1113
  [[resources,Links]]
899
1114
  == Resources
900
1115
 
@@ -48,9 +48,12 @@ Gem::Specification.new do |s|
48
48
  s.add_runtime_dependency 'treetop', '~> 1.5.0'
49
49
 
50
50
  s.add_development_dependency 'rake', '~> 12.3.0'
51
- # Asciidoctor PDF supports Rouge >= 2 (verified in CI build using 2.0.0)
52
- s.add_development_dependency 'rouge', '~> 3.6.0'
51
+ s.add_development_dependency 'deep-cover-core', '~> 0.7.0'
52
+ s.add_development_dependency 'simplecov', '~> 0.17.0'
53
53
  s.add_development_dependency 'rspec', '~> 3.8.0'
54
54
  s.add_development_dependency 'pdf-inspector', '~> 1.3.0'
55
+ # Asciidoctor PDF supports Rouge >= 2 (verified in CI build using 2.0.0)
56
+ s.add_development_dependency 'rouge', '~> 3.6.0'
57
+ s.add_development_dependency 'coderay', '~> 1.1.0'
55
58
  s.add_development_dependency 'chunky_png', '~> 1.3.0'
56
59
  end
@@ -7,6 +7,7 @@ The following changes were made using fontforge to produce mplus1mn-*-ascii.ttf
7
7
  ** Basic Latin (U+0020–U+007e)
8
8
  ** Enclosed Numbers (U+2460–U+2473, U+2776–U+277f, U+24eb–U+24f4) (M+ 1mn Regular only)
9
9
  ** Box Drawing Symbols (U+2500–U+257f)
10
+ ** .notdef glyph
10
11
  * Subsetted to include (subset variant):
11
12
  ** Non-visible Characters (U+00a0)
12
13
  ** Basic Latin (U+0020–U+007e)
@@ -17,6 +18,7 @@ The following changes were made using fontforge to produce mplus1mn-*-ascii.ttf
17
18
  ** Assorted Symbols (U+20ac)
18
19
  ** Enclosed Numbers (U+2460–U+2473, U+2776–U+277f, U+24eb–U+24f4) (mplus1mn-regular only)
19
20
  ** Box Drawing Symbols (U+2500–U+257f)
21
+ ** .notdef glyph
20
22
  * Added BOM (U+feff) and line feed (U+000a) characters (from blank)
21
23
  * Generated old-style kern table (neither Apple or OpenType) (required to make kerning work in Prawn) (flags: 0x90)
22
24
  * Removed Truetype instructions (information not used by Prawn) (flags: 0x08)
@@ -17,6 +17,7 @@ The following changes were made using fontforge to produce mplus1p-regular-fallb
17
17
  ** General Punctuation (U+2000–U203a)
18
18
  ** Geometric Shapes (U+25a0–U25ff)
19
19
  ** Assorted Symbols (U+20ac, U+2122, U+21d0–U+21d5, U+2190–U+2195, U+2610–U+2611, U+2713)
20
+ ** .notdef glyph
20
21
  * Added BOM (U+feff), hair space (U+200a), zero-width space (U+200b) and line feed (U+000a) characters (from blank)
21
22
  * Manually added non-breaking hyphen (U+2011) from hyphen (U+002d)
22
23
  * Generated old-style kern table (neither Apple or OpenType) (required to make kerning work in Prawn) (flags: 0x90)
@@ -17,6 +17,7 @@ The following changes were made using fontforge to produce the notoserif-*-subse
17
17
  ** General Punctuation (U+2000–U203a)
18
18
  ** Geometric Shapes (U+25a0–U25ff)
19
19
  ** Assorted Symbols (U+20ac, U+2122, U+21d0, U+21d2, U+2190, U+2192)
20
+ ** .notdef glyph
20
21
  * Imported ballot boxes from Font Awesome (U+2610, U+2611) (Noto Serif Regular only)
21
22
  * Added line feed character (U+000a)
22
23
  * Generated old-style kern table (neither Apple or OpenType) (required to make kerning work in Prawn) (flags: 0x90)
Binary file
Binary file