- From: Eric Eggert <ee@w3.org>
- Date: Tue, 24 Jan 2017 15:51:54 +0100
- To: EOWG <w3c-wai-eo@w3.org>
- Message-ID: <C539617E-D41C-4E13-8FCB-03B7157C5A7B@w3.org>
(For archival to the EO list, which I forgot to CC.)
Hi Robert, Andrew, and Mary Jo,
Here are some insights into the [WAI Policies Prototype] ([GitHub
Repository]), in list form:
* The prototype uses [Jekyll], which means that all changes of the
Github Repository are almost instantaneously reflected on the prototype.
* The project basically consists of two things that work together:
[Data] and (currently one) [Template].
* The data is in YAML files, which are (rater complex) text files, for
example:
https://raw.githubusercontent.com/w3c/wai-policies-prototype/gh-pages/_policies/australia.md
* Indentation matters: In this file we have multiple policies, those
are indented by two spaces and then a - and another space. Basically
each data sub-block begins with a dash. I think it is much easier to see
in the example document above than I can explain it here.
* The templates use a simple templating language called [Liquid]. Think
about it like PHP but not on steroids (it is not an actual programming
language). Example:
<ul>
{% for policy in site.policies %}
<li data-updated="{{policy.updated}}"><a href="#x{{policy.title
| slugify }}">{{policy.title}}</a></li>
{% endfor %}
</ul>
* This example uses the loops through the policies (they are all in
the site.policies variable) and then outputs various sub-variables from
any individual policy, which are dot (“.”) separated, so
policy.updated gives back the updated date of the policy. The curly
quotes {{}} means that the variable is shown in the HTML output.
Anything in {%%} is not output and is only instructional, like for loops
or ifs.
* Variables can be modified using the pipe character “|” – here
`{{policy.title | slugify }}` means that the title of the policy (here:
the country name is used and then “slugified”. Spaces are replaced
with dashes and certain international characters are changed to make it
work as an id.
* Note that the prototype does not support states yet, neither in the
data format, nor in the templating.
* In the template,
* [Line 7ff.] creates the sidebar with links to the individual
sections,
* [Line 20ff.] and following create the sortable table (the sorting
is done using JavaScript),
* [Line 45ff.] create the expandable sections on the bottom of the
page,
at the moment.
I hope that helps a bit. You can always press the edit button and make
changes, I will give you all writing permissions. If you need something
else from me, feel free to drop me an email. We can also meet on WebEx,
if necessary.
As always, it is much easier when actually play around with the
prototype than explaining it here.
— Eric
[WAI Policies Prototype]: https://w3c.github.io/wai-policies-prototype/
[GitHub Repository]: https://github.com/w3c/wai-policies-prototype
[Jekyll]: http://jekyllrb.com
[Data]:
https://github.com/w3c/wai-policies-prototype/tree/gh-pages/_policies
[Template]:
https://github.com/w3c/wai-policies-prototype/blob/gh-pages/index.html
[Liquid]: https://shopify.github.io/liquid/
[Line 7ff.]:
https://github.com/w3c/wai-policies-prototype/blob/gh-pages/index.html#L7
[Line 20ff.]:
https://github.com/w3c/wai-policies-prototype/blob/gh-pages/index.html#L20
[Line 45ff.]:
https://github.com/w3c/wai-policies-prototype/blob/gh-pages/index.html#L45
--
Eric Eggert
Web Accessibility Specialist
Web Accessibility Initiative (WAI) at World Wide Web Consortium (W3C)
Received on Tuesday, 24 January 2017 14:52:10 UTC