--- /dev/null
+{%- comment -%}
+Usage: {% include bugify.html content=text %},
+where content is a string that contains a bug reference name and id.
+e.g. Bootstrap#19984
+{%- endcomment -%}
+
+{%- assign words = include.content | split: " " -%}
+
+{%- for word in words -%}
+ {% if word contains "#" %}
+ {% if word contains "," %}{% assign separator = true %}{% else %}{% assign separator = false %}{% endif %}
+ {%- assign data = word | split: "#" -%}
+ {%- assign bug_cat = data[0] | strip_newlines -%}
+ {%- assign bug_id = data[1] | strip_newlines | remove: "," -%}
+
+ {%- case bug_cat -%}
+ {%- when "Bootstrap" -%}
+ <a href="https://github.com/twbs/bootstrap/issues/{{ bug_id }}">#{{ bug_id }}</a>
+ {%- when "Edge" -%}
+ <a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/{{ bug_id }}">Edge issue #{{ bug_id }}</a>
+ {%- when "A11yUserVoice" -%}
+ <a href="https://microsoftaccessibility.uservoice.com/forums/307429-microsoft-accessibility-feedback/suggestions/{{ bug_id }}">Microsoft A11y UserVoice idea #{{ bug_id }}</a>
+ {%- when "UserVoice" -%}
+ <a href="https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/{{ bug_id }}">Edge UserVoice idea #{{ bug_id }}</a>
+ {%- when "Mozilla" -%}
+ <a href="https://bugzilla.mozilla.org/show_bug.cgi?id={{ bug_id }}">Mozilla bug #{{ bug_id }}</a>
+ {%- when "Chromium" -%}
+ <a href="https://bugs.chromium.org/p/chromium/issues/detail?id={{ bug_id }}">Chromium issue #{{ bug_id }}</a>
+ {%- when "WebKit" -%}
+ <a href="https://bugs.webkit.org/show_bug.cgi?id={{ bug_id }}">WebKit bug #{{ bug_id }}</a>
+ {%- when "Safari" -%}
+ <a href="https://openradar.appspot.com/{{ bug_id }}">Apple Safari Radar #{{ bug_id }}</a>
+ {%- when "Normalize" -%}
+ <a href="https://github.com/necolas/normalize.css/issues/{{ bug_id }}">Normalize #{{ bug_id }}</a>
+ {%- else -%}
+ <strong>parse error</strong>
+ {%- endcase -%}{% if separator %}, {% endif %}
+
+ {% else %}
+ {{ word }}
+ {%- endif -%}
+{%- endfor -%}
+++ /dev/null
-module Jekyll
- module BugFilter
- def bugify(input)
- upstream_map = {
- "Bootstrap" => "https://github.com/twbs/bootstrap/issues/",
- "Edge" => ["https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/", "Edge issue"],
- "A11yUserVoice" => ["https://microsoftaccessibility.uservoice.com/forums/307429-microsoft-accessibility-feedback/suggestions/", "Microsoft A11y UserVoice idea"],
- "UserVoice" => ["https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/", "Edge UserVoice idea"],
- "Mozilla" => ["https://bugzilla.mozilla.org/show_bug.cgi?id=", "Mozilla bug"],
- "Chromium" => ["https://bugs.chromium.org/p/chromium/issues/detail?id=", "Chromium issue"],
- "WebKit" => ["https://bugs.webkit.org/show_bug.cgi?id=", "WebKit bug"],
- "Safari" => ["https://openradar.appspot.com/", "Apple Safari Radar"],
- "Normalize" => ["https://github.com/necolas/normalize.css/issues/", "Normalize"]
- }
-
- upstream_map.each do |key, data|
- url = data.is_a?(Array) ? data[0] : data
- label = data.is_a?(Array) ? "#{data[1]} " : ""
- input = input.gsub(/#{key}#(\d+)/, "<a href=\"#{url}\\1\">#{label}#\\1</a>")
- end
-
- return input
- end
- end
-end
-
-Liquid::Template.register_filter(Jekyll::BugFilter)
{% for bug in site.data.browser-bugs %}
<tr>
<td>{{ bug.browser }}</td>
- <td>{{ bug.summary | markdownify | bugify }}</td>
- <td>{{ bug.upstream_bug | bugify }}</td>
- <td>{{ bug.origin | bugify }}</td>
+ <td>{{ bug.summary | markdownify }}</td>
+ <td>{% include bugify.html content=bug.upstream_bug %}</td>
+ <td>{% include bugify.html content=bug.origin %}</td>
</tr>
{% endfor %}
</tbody>
{% for feat in site.data.browser-features %}
<tr>
<td>{{ feat.browser }}</td>
- <td>{{ feat.summary | markdownify | bugify }}</td>
- <td>{{ feat.upstream_bug | bugify }}</td>
- <td>{{ feat.origin | bugify }}</td>
+ <td>{{ feat.summary | markdownify }}</td>
+ <td>{% include bugify.html content=feat.upstream_bug %}</td>
+ <td>{% include bugify.html content=feat.origin %}</td>
</tr>
{% endfor %}
</tbody>