Use bugify without custom Jekyll plugin (#25334)

This commit is contained in:
m5o 2018-03-12 22:08:44 +01:00 committed by XhmikosR
parent 836de9ccfa
commit b9628d0642
3 changed files with 48 additions and 33 deletions

42
_includes/bugify.html Normal file
View File

@ -0,0 +1,42 @@
{%- 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 -%}

View File

@ -1,27 +0,0 @@
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)

View File

@ -28,9 +28,9 @@ See also:
{% 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>
@ -55,9 +55,9 @@ We publicly list these "most wanted" feature requests here, in the hopes of expe
{% 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>