diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2017-01-16 14:05:15 +0100 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2017-01-31 14:32:35 +0100 |
commit | 6f6dc9767badd4bcacd8f00ef0ed467bcabc6296 (patch) | |
tree | e381a1be3195be8c69abb84a3e59b0c5470e557c /doc-tool/resources | |
parent | 248f469ddcf57067d02e8b1bea41237766a75cfb (diff) | |
download | dotty-6f6dc9767badd4bcacd8f00ef0ed467bcabc6296.tar.gz dotty-6f6dc9767badd4bcacd8f00ef0ed467bcabc6296.tar.bz2 dotty-6f6dc9767badd4bcacd8f00ef0ed467bcabc6296.zip |
Re-implement template expansion of references as filter
The original implementation used the template engine to recursively
expand references. This was very error-prone and with no typesafety and
proper stack traces it was very hard to diagnose. As such, these two
expansions (links and references) have been re-implemented as filters.
Diffstat (limited to 'doc-tool/resources')
-rw-r--r-- | doc-tool/resources/_includes/link.html | 6 | ||||
-rw-r--r-- | doc-tool/resources/_includes/reference.html | 77 | ||||
-rw-r--r-- | doc-tool/resources/_layouts/api-page.html | 11 |
3 files changed, 6 insertions, 88 deletions
diff --git a/doc-tool/resources/_includes/link.html b/doc-tool/resources/_includes/link.html deleted file mode 100644 index 621894eaf..000000000 --- a/doc-tool/resources/_includes/link.html +++ /dev/null @@ -1,6 +0,0 @@ -{% case tpeLink.kind %} -{% when 'NoLink' %} - {{ tpeLink.title }} -{% else %} - <a href="{{ tpeLink.target }}">{{ tpeLink.title }}</a> -{% endcase %} diff --git a/doc-tool/resources/_includes/reference.html b/doc-tool/resources/_includes/reference.html deleted file mode 100644 index eb741c02c..000000000 --- a/doc-tool/resources/_includes/reference.html +++ /dev/null @@ -1,77 +0,0 @@ -{% case reference.kind %} -{% when 'TypeReference' %} - - {% assign tpeLink = reference.tpeLink %} - {% include 'link' %} - {% if reference.paramLinks.size > 0 %} - <span class="no-left no-right">[</span> - {% for reference in reference.paramLinks %} - {% include 'reference' %} - {% if forloop.last != true %} - <span class="no-left">, </span> - {% endif %} - {% endfor %} - <span class="no-left">]</span> - {% endif %} - -{% when 'FunctionReference' %} - - {% assign originalLink = reference %} - {% case reference.args.size %} - {% when 0 %} - <span>()</span> - {% when 1 %} - {% for reference in reference.args %} - {% include 'reference' %} - {% endfor %} - {% else %} - {% for reference in reference.args %} - {% if forloop.first %} - <span class="no-right">(</span> - {% endif %} - {% include 'reference' %} - {% if forloop.last != true %} - <span class="no-left">,</span> - {% else %} - <span class="no-left">)</span> - {% endif %} - {% endfor %} - {% endcase %} - <span>=></span> - {% assign reference = originalLink.returnValue %} - {% include 'reference' %} - -{% when 'TupleReference' %} - - {% for reference in reference.args %} - {% if forloop.first %}<span class="no-right">(</span>{% endif %} - {% include 'reference' %} - {% if forloop.last %} - <span class="no-left">)</span> - {% else %} - <span class="no-left">,</span> - {% endif %} - {% endfor %} - -{% when 'BoundsReference' %} - - {% assign oldRef = reference %} - {% assign reference = oldRef.low %} - {% include 'reference' %} - <span><:</span> - {% assign reference = oldRef.hi %} - {% include 'reference' %} - -{% when 'ConstantReference' %} - {{ reference.title }} - -{% else %} - - {% assign original= reference %} - {% assign reference = original.left %} - {% include 'reference' %} - <span>{% if original.kind == "OrTypeReference" %}|{% else %}&{% endif %}</span> - {% assign reference = original.right %} - {% include 'reference' %} - -{% endcase %} diff --git a/doc-tool/resources/_layouts/api-page.html b/doc-tool/resources/_layouts/api-page.html index 292c334dc..ed65c0651 100644 --- a/doc-tool/resources/_layouts/api-page.html +++ b/doc-tool/resources/_layouts/api-page.html @@ -48,12 +48,13 @@ extraCSS: {% if plist.isImplicit %} <span class="no-left keyword">implicit</span> {% endif %} - {% for ref in plist.list %} - <span class="{% if forloop.first %}no-left{% endif %}">{{ ref.title }}:{% if ref.isByName %} =>{% endif %}</span> - {% assign reference = ref.ref %} - {% include "reference" %} + {% for namedRef in plist.list %} + <span class="{% if forloop.first %}no-left{% endif %}"> + {{ namedRef.title }}:{% if namedRef.isByName %} =>{% endif %} + </span> + {{ namedRef.ref | renderRef }} {% if forloop.last != true %} - <span class="no-left">, </span> + <span class="no-left">, </span> {% endif %} {% endfor %} <span class="no-left">)</span> |