summaryrefslogtreecommitdiff
path: root/soupault.toml
blob: 38ed6caed6116a6a20287cdb7f24e209bf7dcffa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# Configuration file for the soupault static site generator (https://soupault.app)

[settings]
  # Enable build progress (info level) logs
  verbose = true

  # Enable debug level logs
  debug = true

  # Fail on page processing errors
  strict = true

  default_template_file = "templates/main.html"

  # CSS selector of the element inside the template
  # where page content is inserted
  default_content_selector = "div#content"

[preprocessors]
  # Preprocess *.md Markdown pages with cmark (github.com/commonmark/cmark) before parsing.
  # --smart = smart punctuation, --unsafe = don't remove HTML tags
  md = "cmark --smart --unsafe"

[widgets]

# Moves all elements with class="footnote" or tag name <fn> to <div id="footnotes"> 
# and replaces them with numbered links.
[widgets.footnotes]
  widget = "footnotes"
  selector = "div#footnotes"
  footnote_selector = [".footnote", "fn"]
  footnote_link_class = "footnote"
  back_links = true
  link_id_prepend = "footnote-"
  back_link_id_append = "-ref"

# Inserts the banner in main page only
[widgets.insert-banner]
  widget = "include"
  page = "index.html"
  file = "templates/banner.html"
  selector = "main"
  action = "insert_before"

# Inserts the banner in main page only

[widgets.insert-google-tag-manager-head]
  widget = "insert_html"
  html = """
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5Q572R5');</script>
<!-- End Google Tag Manager -->
"""
  selector = "head"
  action = "prepend_child"

[widgets.insert-google-tag-manager-body]
  widget = "insert_html"
  selector = "body"
  html = """
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5Q572R5"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
  """
  action = "prepend_child"

# Inserts a scary warning banner in preview versions
[widgets.insert-staging-warning]
  widget = "include"
  file = "templates/staging-warning.html"
  selector = "header"
  action = "prepend_child"
  profile = "staging"

[widgets.disallow-indexing-on-staging]
  widget = "create-file"
  name = "robots.txt"
  content = """
User-agent: *
Disallow: /
"""
  profile = "staging"

## Nightly build image listing generator ##

# Inserts containers for current and equuleus lists
# This is done here rather than inside the page so that
# we can change the branches by editing just the config.
[widgets.insert-nightly-build-containers]
  widget = "insert_html"
  html = """
    <div id="rolling-current">
      <h3>Current/Circinus (future 1.5.0)</h3>
    </div>
  """
  selector = "#available-builds"
  action = "append_child"
  page = "get/nightly-builds.md"
  profile = "live"

# Generates a list of the "current" branch builds from GitHub releases
[widgets.list-nightly-builds-current]
  widget = "exec"
  command = "scripts/list-nightly-builds.py rolling/current"
  selector = "div#rolling-current"
  action = "append_child"

  page = "get/nightly-builds.md"

  after = "insert-nightly-build-containers"
  profile = "live"