aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/resources
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2017-01-16 14:05:15 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-01-31 14:32:35 +0100
commit6f6dc9767badd4bcacd8f00ef0ed467bcabc6296 (patch)
treee381a1be3195be8c69abb84a3e59b0c5470e557c /doc-tool/resources
parent248f469ddcf57067d02e8b1bea41237766a75cfb (diff)
downloaddotty-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.html6
-rw-r--r--doc-tool/resources/_includes/reference.html77
-rw-r--r--doc-tool/resources/_layouts/api-page.html11
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>=&gt;</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>&lt;:</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 %}&amp;{% 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 %} =&gt;{% 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 %} =&gt;{% 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>