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

sile-typesetter / sile / 9699312690

27 Jun 2024 03:22PM UTC coverage: 62.16% (-9.2%) from 71.339%
9699312690

push

github

web-flow
Merge ea2d501b6 into 8c5a2a2ba

10771 of 17328 relevant lines covered (62.16%)

2463.58 hits per line

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

0.0
/packages/inputfilter/init.lua
1
local base = require("packages.base")
×
2

3
local package = pl.class(base)
×
4
package._name = "inputfilter"
×
5

6
function package:transformContent (content, transformFunction, extraArgs)
×
7
   local newContent = {}
×
8
   for k, v in SU.sortedpairs(content) do
×
9
      if type(k) == "number" then
×
10
         if type(v) == "string" then
×
11
            local transformed = transformFunction(v, content, extraArgs)
×
12
            if type(transformed) == "table" then
×
13
               for i = 1, #transformed do
×
14
                  newContent[#newContent + 1] = transformed[i]
×
15
               end
16
            else
17
               newContent[#newContent + 1] = transformed
×
18
            end
19
         else
20
            newContent[#newContent + 1] = self:transformContent(v, transformFunction, extraArgs)
×
21
         end
22
      else
23
         newContent[k] = v
×
24
      end
25
   end
26
   return newContent
×
27
end
28

29
function package.createCommand (_, pos, col, lno, command, options, content)
×
30
   local position = { lno = lno, col = col, pos = pos }
×
31
   return SU.ast.createCommand(command, options, content, position)
×
32
end
33

34
function package:_init ()
×
35
   base._init(self)
×
36
   self:deprecatedExport("createCommand", self.createCommand)
×
37
   self:deprecatedExport("transformContent", self.transformContent)
×
38
end
39

40
package.documentation = [[
41
\begin{document}
42
The \autodoc:package{inputfilter} package provides ways for class authors to transform the input of a SILE document after it is parsed but before it is processed.
43
It does this by allowing you to rewrite the abstract syntax tree representing the document.
44

45
Loading \autodoc:package{inputfilter} into your class with \code{class:loadPackage("inputfilter")} provides you with two new Lua functions: \code{transformContent} and \code{createCommand}.
46
\code{transformContent} takes a content tree and applies a transformation function to the text within it.
47
See \url{https://sile-typesetter.org/examples/inputfilter.sil} for a simple example, and \url{https://sile-typesetter.org/examples/chordmode.sil} for a more complete one.
48
\end{document}
49
]]
×
50

51
return package
×
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