def run(self):
""" Parse a tab directive """
self.assert_has_content()
env = self.state.document.settings.env
args = self.content[0].strip()
try:
args = json.loads(args)
self.content.trim_start(1)
except ValueError:
args = {}
tab_name = nodes.container()
self.state.nested_parse(
self.content[:1], self.content_offset, tab_name)
args['tab_name'] = tab_name
if 'tab_id' not in args:
args['tab_id'] = env.new_serialno('tab_id')
i = 1
while args['tab_id'] in env.temp_data['tab_ids']:
args['tab_id'] = '%s-%d' % (args['tab_id'], i)
i += 1
env.temp_data['tab_ids'].append(args['tab_id'])
data_tab = "sphinx-data-tab-{}".format(args['tab_id'])
env.temp_data['tab_titles'].append((data_tab, args['tab_name']))
text = '\n'.join(self.content)
node = nodes.container(text)
classes = 'ui bottom attached sphinx-tab tab segment'
node['classes'] = classes.split(' ')
node['classes'].extend(args.get('classes', []))
node['classes'].append(data_tab)
if env.temp_data['is_first_tab']:
node['classes'].append('active')
env.temp_data['is_first_tab'] = False
self.state.nested_parse(self.content[2:], self.content_offset, node)
return [node]
评论列表
文章目录