Skip to content

Commit ac08bbe

Browse files
committed
Merge branch 'main' of github.com:apache/infrastructure-actions
2 parents 713b378 + ed04ef7 commit ac08bbe

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

pelican/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ runs:
4545
run: |
4646
(
4747
test "${{ inputs.debug }}" == 'true' || exec >/dev/null
48-
pip3 install pelican==${{ inputs.version }} markdown bs4 ezt requests
48+
PIP_BREAK_SYSTEM_PACKAGES=1 pip3 install pelican==${{ inputs.version }} markdown bs4 ezt requests
4949
)
5050
python3 -V
5151
echo "Pelican version:"
@@ -95,7 +95,7 @@ runs:
9595
if [ -n "${{ inputs.requirements }}" ]
9696
then
9797
echo "Installing python requirements from ${{ inputs.requirements }}"
98-
pip3 install -r ${{ inputs.requirements }}
98+
PIP_BREAK_SYSTEM_PACKAGES=1 pip3 install -r ${{ inputs.requirements }}
9999
fi
100100
if [ "${{ inputs.debug }}" == 'true' ]
101101
then

pelican/plugins/toc.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@
22
toc
33
===================================
44
Generates Table of Contents for markdown.
5-
Only generates a ToC for the headers FOLLOWING th [TOC] tag,
5+
Only generates a ToC for the headers FOLLOWING the [TOC] tag,
66
so you can insert it after a specific section that need not be
7-
include in the ToC.
7+
included in the ToC.
8+
9+
The default container format (which includes a 'Table of Contents' heading )
10+
can be overridden by providing something like the following entry in pelicanconf.py:
11+
ASF_TOC = {
12+
'CONTAINER_FORMAT': "<div id='toc'>{}</div>"
13+
}
814
'''
915

1016
from __future__ import unicode_literals
@@ -42,12 +48,13 @@ def unique(id_, ids):
4248

4349

4450
class HtmlTreeNode(object):
45-
def __init__(self, parent, header, level, id_):
51+
def __init__(self, parent, header, level, id_, content):
4652
self.children = []
4753
self.parent = parent
4854
self.header = header
4955
self.level = level
5056
self.id = id_
57+
self.content = content
5158

5259
def add(self, new_header, ids):
5360
new_level = new_header.name
@@ -66,11 +73,11 @@ def add(self, new_header, ids):
6673
new_id = unique(new_id, ids) # make sure id is unique
6774
new_header.attrs['id'] = new_id
6875
if(self.level < new_level):
69-
new_node = HtmlTreeNode(self, new_string, new_level, new_id)
76+
new_node = HtmlTreeNode(self, new_string, new_level, new_id, self.content)
7077
self.children += [new_node]
7178
return new_node, new_header
7279
elif(self.level == new_level):
73-
new_node = HtmlTreeNode(self.parent, new_string, new_level, new_id)
80+
new_node = HtmlTreeNode(self.parent, new_string, new_level, new_id, self.content)
7481
self.parent.children += [new_node]
7582
return new_node, new_header
7683
elif(self.level > new_level):
@@ -90,7 +97,12 @@ def __str__(self):
9097
ret = "<li>{}</li>".format(ret)
9198

9299
if not self.parent:
93-
ret = "<div id='toc' style='border-radius: 3px; border: 1px solid #999; background-color: #EEE; padding: 4px;'><h4>Table of Contents:</h4><ul>{}</ul></div>".format(ret)
100+
fmt = self.content.settings.get('ASF_TOC',{}).get('CONTAINER_FORMAT')
101+
if fmt:
102+
print(f"Overriding TOC CONTAINER_FORMAT: {fmt}")
103+
else:
104+
fmt = "<div id='toc' style='border-radius: 3px; border: 1px solid #999; background-color: #EEE; padding: 4px;'><h4>Table of Contents:</h4><ul>{}</ul></div>"
105+
ret = fmt.format(ret)
94106

95107
return ret
96108

@@ -114,7 +126,7 @@ def generate_toc(content):
114126

115127
all_ids = set()
116128
title = content.metadata.get('title', 'Title')
117-
tree = node = HtmlTreeNode(None, title, 'h0', '')
129+
tree = node = HtmlTreeNode(None, title, 'h0', '', content)
118130
soup = BeautifulSoup(content._content, 'html.parser') # pylint: disable=protected-access
119131
settoc = False
120132

0 commit comments

Comments
 (0)