def inline_indexterm node
if node.type == :visible
%(<indexterm><primary>#{node.text}</primary></indexterm>#{node.text})
else
terms = node.attr 'terms'
result = []
if (numterms = terms.size) > 2
result << %(<indexterm>
<primary>#{terms[0]}</primary><secondary>#{terms[1]}</secondary><tertiary>#{terms[2]}</tertiary>
</indexterm>)
end
if numterms > 1
result << %(<indexterm>
<primary>#{terms[-2]}</primary><secondary>#{terms[-1]}</secondary>
</indexterm>)
end
result << %(<indexterm>
<primary>#{terms[-1]}</primary>
</indexterm>)
result * EOL
end
end