{% comment %} As documented in /modules/markout/lib/markout.js, our Node web server recognizes the following machine properties in the Front Matter of Markdown files, for compatibility with the Jekyll web server: 'id' (eg, "ibm5150") 'name' (eg, "IBM PC (Model 5150) with Monochrome Display") 'type' (eg, "pc" or "pc-dbg") 'config' (eg, "machine.xml") 'template' (eg, "machine.xsl") 'uncompiled' (eg, true) 'parms' And the following properties (along with any property not listed above) will be added to the 'parms' property: 'autopower' (eg, "true") 'automount' (eg, {"A":{"name":"OS/2 FOOTBALL Boot Disk (v7.68.17)","path":"/disks/pc/os2/misc/football/debugger/FOOTBALL-7.68.17.json"}}) 'state' (eg, "state.json") 'messages' (eg, "disk") And all our JavaScript components expect multi-word property names to use camelCase, so that conversion happens both here and in markout.js. Examples include 'autopower' ('autoPower') and 'automount' ('autoMount'). {% endcomment %} {% for machine in page.machines %} {% capture machine_embed %}embed{{ machine.type | remove:'-dbg' | upcase }}{% endcapture %} {% if machine.autopower == nil %} {% assign machine_autopower = "true" %} {% else %} {% capture machine_autopower %}{{ machine.autopower }}{% endcapture %} {% endif %} {% unless machine.config %} {% assign machine_config = "machine.xml" %} {% else %} {% assign machine_config = machine.config %} {% endunless %} {% unless machine.template %} {% assign machine_template = '' %} {% else %} {% assign machine_template = machine.template %} {% endunless %} {% capture machine_parms %}{{ site.left_brace }}autoPower:{{ machine_autopower }},state:"{{ machine.state }}",autoMount:{{ machine.automount|jsonify }},messages:"{{ machine.messages }}"{{ site.right_brace }}{% endcapture %} {% if site.pcjs.compiled == true and machine.uncompiled != true %} {% capture machine_script %}{% endcapture %} {% unless machine_scripts contains machine_script %} {{ machine_script }} {% endunless %} {% capture machine_scripts %}{{ machine_scripts }}{{ machine_script }}{% endcapture %} {% if machine_template == '' %} {% capture machine_template %}{{ site.baseurl }}/versions/{{ machine.type | remove:'-dbg' }}js/{{ site.pcjs.version }}/components.xsl{% endcapture %} {% endif %} {% else %} {% if machine.type == "pc" or machine.type == "pc-dbg" %}{% assign array_scripts = site.pcjs.pc_scripts %}{% endif %} {% if machine.type == "c1p" or machine.type == "c1p-dbg" %}{% assign array_scripts = site.pcjs.c1p_scripts %}{% endif %} {% for script in array_scripts %} {% capture machine_script %}{% endcapture %} {% unless machine_scripts contains machine_script %} {{ machine_script }} {% endunless %} {% capture machine_scripts %}{{ machine_scripts }}{{ machine_script }}{% endcapture %} {% endfor %} {% if machine_template == '' %} {% capture machine_template %}{{ site.baseurl }}/modules/{{ machine.type | remove:'-dbg' }}js/templates/components.xsl{% endcapture %} {% endif %} {% endif %} {% if page.build %} {% endif %} {% endfor %}