• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sile-typesetter / sile / 9304060604

30 May 2024 02:07PM UTC coverage: 74.124% (-0.6%) from 74.707%
9304060604

push

github

alerque
style: Reformat Lua with stylua

8104 of 11995 new or added lines in 184 files covered. (67.56%)

15 existing lines in 11 files now uncovered.

12444 of 16788 relevant lines covered (74.12%)

7175.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.74
/packages/pullquote/init.lua
1
local base = require("packages.base")
1✔
2

3
local package = pl.class(base)
1✔
4
package._name = "pullquote"
1✔
5

6
local typesetMark = function (open, setback, scale, color, mark)
7
   SILE.settings:temporarily(function ()
4✔
8
      SILE.call("pullquote:mark-font")
2✔
9
      SILE.call("raise", { height = -(open and (scale + 1) or scale) .. "ex" }, function ()
4✔
10
         SILE.settings:set("font.size", SILE.settings:get("font.size") * scale)
4✔
11
         SILE.call("color", { color = color }, function ()
4✔
12
            if open then
2✔
13
               SILE.typesetter:pushGlue({ width = -setback })
2✔
14
               SILE.call("rebox", { width = setback, height = 0 }, { mark })
2✔
15
            else
16
               SILE.typesetter:pushGlue(SILE.nodefactory.hfillglue())
2✔
17
               local hbox = SILE.typesetter:makeHbox({ mark }) -- for measuring
1✔
18
               SILE.typesetter:pushGlue({ width = setback - hbox.width })
2✔
19
               SILE.call("rebox", { width = hbox.width, height = 0 }, { mark })
1✔
20
               SILE.typesetter:pushGlue({ width = -setback })
2✔
21
            end
22
         end)
23
      end)
24
   end)
25
end
26

27
function package:_init ()
1✔
28
   base._init(self)
1✔
29
   self:loadPackage("color")
1✔
30
   self:loadPackage("raiselower")
1✔
31
   self:loadPackage("rebox")
1✔
32
end
33

34
function package:registerCommands ()
1✔
35
   self:registerCommand("pullquote:font", function (_, _) end, "The font chosen for the pullquote environment")
2✔
36

37
   self:registerCommand("pullquote:author-font", function (_, _)
2✔
38
      SILE.settings:set("font.style", "italic")
1✔
39
   end, "The font style with which to typeset the author attribution.")
2✔
40

41
   self:registerCommand("pullquote:mark-font", function (_, _)
2✔
42
      SILE.settings:set("font.family", "Libertinus Serif")
2✔
43
   end, "The font from which to pull the quotation marks.")
3✔
44

45
   self:registerCommand(
2✔
46
      "pullquote",
1✔
47
      function (options, content)
48
         SILE.typesetter:leaveHmode()
1✔
49
         local author = options.author or nil
1✔
50
         local scale = options.scale or 3
1✔
51
         local color = options.color or "#999999"
1✔
52
         SILE.settings:temporarily(function ()
2✔
53
            SILE.call("pullquote:font")
1✔
54
            local setback = SU.cast("length", options.setback or "2em"):absolute()
2✔
55
            SILE.settings:set("document.rskip", SILE.nodefactory.glue(setback))
2✔
56
            SILE.settings:set("document.lskip", SILE.nodefactory.glue(setback))
2✔
57
            SILE.call("noindent")
1✔
58
            typesetMark(true, setback, scale, color, "“")
1✔
59
            SILE.call("indent")
1✔
60
            SILE.process(content)
1✔
61
            typesetMark(false, setback, scale, color, "”")
1✔
62
            if author then
1✔
63
               SILE.settings:temporarily(function ()
2✔
64
                  SILE.typesetter:leaveHmode()
1✔
65
                  SILE.call("pullquote:author-font")
1✔
66
                  SILE.call("raggedleft", {}, function ()
2✔
67
                     SILE.typesetter:typeset("— " .. author)
1✔
68
                  end)
69
               end)
70
            else
NEW
71
               SILE.call("par")
×
72
            end
73
         end)
74
      end,
NEW
75
      "Typesets its contents in a formatted blockquote with decorative quotation\
×
NEW
76
        marks in the margins."
×
77
   )
1✔
78
end
79

80
package.documentation = [[
81
\begin{document}
82
The \autodoc:package{pullquote} package formats longer quotations in an indented blockquote block with decorative quotation marks in the margins.
83
Here is some text set in a \autodoc:environment{pullquote} environment:
84

85
\begin[author=Anatole France]{pullquote}%
86
An education is not how much you have committed to memory, or even how much you know.
87
It is being able to differentiate between what you do know and what you do not know.
88
\end{pullquote}
89

90
Optional values are available for:
91

92
\begin{itemize}
93
\item{\autodoc:parameter{author} to add an attribution line}
94
\item{\autodoc:parameter{setback} to set the bilateral margins around the block}
95
\item{\autodoc:parameter{color} to change the color of the quote marks}
96
\item{\autodoc:parameter{scale} to change the relative size of the quote marks}
97
\end{itemize}
98

99
If you want to specify what font the \autodoc:environment{pullquote} environment should use, you can redefine the \autodoc:command{\pullquote:font} command.
100
By default it will be the same as the surrounding document.
101
The font style used for the attribution line can likewise be set redefining \autodoc:command{\pullquote:author-font}, and the font used for the quote marks can be set redefining \autodoc:command{\pullquote:mark-font}.
102
\end{document}
103
]]
1✔
104

105
return package
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc