s  | 
    focus search bar ( enter  to select, ▲ / ▼  to change selection) | 
  
g e  | 
    go to examples | 
g g  | 
    go to guides | 
g l  | 
    go to layout_api | 
h  | 
    toggle this help ( esc  also exits) | 
  
Each section on this page illustrates liquid syntax that can be used to invoke macros provided by the programming pages theme.
embeds a collapsed example that the user can expand if interested.
| parameter | description | 
|---|---|
file | 
      path to example file for embedding (must be rooted in _includes) | 
    
syntax | 
      (optional) hint for syntax hilighter; defaults to file extension | 
id_only | 
      (optional) when 'true' (string value), macro only evaluates to id of example label, e.g. to use in an href; defaults to empty string and normal behavior of embedding code example | 
    
{% include collapsible_example.liquid file='snippets/hello_world.cpp' %}
/*
Hello World
  To compile and run this program:
  1. Save the code in a file with name "hello_world.cpp"
  2. Execute the following command in a terminal window:
    $ g++ -o /tmp/hello_world hello_world.cpp
      ..which invokes the Gnu C++ compiler, asking it to output
      an executable file into /tmp with name "hello_world".
  3. Execute the following command in a terminal window:
    $ /tmp/hello_world
      ..which will then run the program, causing the message
      "Hello World!" to be written to the terminal.
*/
#include <iostream>
int main()
{
   std::cout << "Hello World!" << std::endl;
   return 0;
}
inserts SVG code for an icon. SVG icons are defined in _data/icons/theme.yml by the theme. See the markdown sampler for a list of icon ids.
| parameter | description | 
|---|---|
id | 
      icon name from yaml data file | 
class | 
      (optional) css class string to apply to the embedded svg element in addition to icon | 
    
{% include icon.liquid id='star' %}
generates a javascript function that logs information to the console.
the function is submitted to jQuery’s document ready function ($()).
| parameter | description | 
|---|---|
lvl | 
      <log|info|warn|error> (optional, defaults to log; message level) | 
    
msg | 
      <string> (optional; message to print to console at specific level) | 
    
table | 
      [..] (optional; object to be logged as a table) | 
    
values | 
      [..] (optional; array of values to be logged individually at message level) | 
    
keys | 
      [..] (optional; array of labels to be combined with values and logged as a table) | 
    
{% include log.liquid msg='[programming-pages] hello, console' %}
{% include log.liquid msg='[programming-pages] warning, console' lvl='warn' %}
{% assign log_k = '' | split: '' %}
{% assign log_v = '' | split: '' %}
{% assign log_k = log_k | push: 'key 1' %}{% assign log_v = log_v | push: 'value one' %}
{% assign log_k = log_k | push: 'key 2' %}{% assign log_v = log_v | push: 'value two' %}
{% assign log_k = log_k | push: 'key 3' %}{% assign log_v = log_v | push: 'value three' %}
{% include log.liquid msg='[programming-pages] key/value pairs to table' keys=log_k values=log_v %}
(open the browser's javascript console to see the examples)
(open the browser’s javascript console to see the examples)
generates an html list of child pages, respecting their
page.ordervalue.
only first-level children are listed, grandchildren and beyond are ignored. order:0is first,-1is last, undefined orders go in the middle alphabetically
| parameter | description | 
|---|---|
docs | 
      reference to list of Jekyll collection docs | 
page | 
      (optional) reference to scoping page, restricting the list to children of the page | 
{% include ordered_child_list.liquid docs=site.examples %}
abbreviates intermediary package names to their first letter:
foo.bar.bat.Baz→foo.b.b.Baz
| parameter | description | 
|---|---|
package | 
      fully qualified package name | 
threshold | 
      (optional) number of components to leave unabbreviated. defaults to 2 | 
{% assign packages = "foo.bar.bat, foo.bar.bat.Baz, foo.Qix" | split: ", " %}
{% for pkg in packages %}
- {% include package_shortener.liquid package=pkg %}
{% endfor %}
foo.b.bat
foo.b.b.Baz
foo.Qix
extracts the first component of a page url:
/examples/includes/→/examples
| parameter | description | 
|---|---|
page | 
      reference to a Jekyll page object to extract the url root from | 
{% include page_root.liquid page=page %}
/examples
creates the individual links in the sidebar.
links are indented when parented, unless their page layout has been excluded withno_indent
| parameter | description | 
|---|---|
doc_list | 
      reference to list of Jekyll collection docs to generate indices for | 
collection_label | 
      name of indices tab, to ensure links keep proper tab open | 
page_title | 
      title of the current page, to render matching indices as ‘active’ | 
no_indent | 
      pipe (|) delimited list of layouts that should not be indented | 
    
<div class="ui link list">
{% assign collection = site.collections | where:"title","Examples" | first %}
{% include render_indices.liquid doc_list=collection.docs collection_label=collection.label page_title=page.title %}
</div>
| 
  
   
    programming pages
    2020 pixeldroid
     
  https://github.com/pixeldroid/programming-pages  | 
| programming pages theme v0.5.22 (https://github.com/pixeldroid/programming-pages) | 
s  | 
    focus search bar ( enter  to select, ▲ / ▼  to change selection) | 
  
g e  | 
    go to examples | 
g g  | 
    go to guides | 
g l  | 
    go to layout_api | 
h  | 
    toggle this help ( esc  also exits) |