From eaff50ee1fb64f236ba715d2099a3a3011280c08 Mon Sep 17 00:00:00 2001 From: pommicket Date: Wed, 30 Aug 2023 00:15:41 -0400 Subject: change up guide a bit --- guide-src/index.html | 2 +- guide-src/make.py | 59 ++++++++++++++++++++++------------- guide-src/outline.txt | 7 ++--- guide-src/widget-inputs.html | 41 ++++++++++++++++++++++++ guide-src/widget-inputs/builtins.html | 20 ------------ guide-src/widget-inputs/syntax.html | 16 ---------- 6 files changed, 82 insertions(+), 63 deletions(-) create mode 100644 guide-src/widget-inputs.html delete mode 100644 guide-src/widget-inputs/builtins.html delete mode 100644 guide-src/widget-inputs/syntax.html (limited to 'guide-src') diff --git a/guide-src/index.html b/guide-src/index.html index c4f0869..c755491 100644 --- a/guide-src/index.html +++ b/guide-src/index.html @@ -1,4 +1,4 @@ ---- guide +--- introduction

your first pugl

diff --git a/guide-src/make.py b/guide-src/make.py index 058a63b..6f03513 100644 --- a/guide-src/make.py +++ b/guide-src/make.py @@ -32,34 +32,46 @@ class Section: def __repr__(self): return ''.join(['Section(path=', repr(self.path), ', name=', repr(self.name), ', items=', repr(self.items), ')']) - + outline = [l.strip() for l in readlines('{}/outline.txt'.format(INPUT_DIR)) if l.strip()] -sections = [] +entries = [] for item in outline: if item[0] == '/': assert item.endswith('.html'), 'expected path ending in .html' - sections[-1].items.append(item[1:]) - else: + entries[-1].items.append(item[1:]) + elif ':' in item: [path, name] = item.split(': ') - sections.append(Section(path, name)) + entries.append(Section(path, name)) + else: + entries.append(item) sidebar_content = [ ('', 'back to pugl'), - ('index.html', 'the basics'), ] -for section in sections: - sidebar_content.append(('', '

{}

'.format(section.name))) - for item in section.items: - path = '{}/{}/{}'.format(INPUT_DIR, section.path, item) - file = open(path) - first_line = file.readline().strip() - file.close() - assert first_line.startswith(TITLE_PREFIX), 'file {} doesn\'t start with title prefix {}'.format(path, TITLE_PREFIX) - title = first_line[len(TITLE_PREFIX):].strip() - assert '"' not in path, 'path {} should not contain "'.format(path) - url = quote('{}/{}'.format(section.path, item)) - sidebar_content.append((section.path + '/' + item, '{}'.format(url, html.escape(title)))) +def add_sidebar_link_for_page(path, indented): + file = open(INPUT_DIR + '/' + path) + first_line = file.readline().strip() + file.close() + assert first_line.startswith(TITLE_PREFIX), 'file {} doesn\'t start with title prefix {}'.format(path, TITLE_PREFIX) + title = first_line[len(TITLE_PREFIX):].strip() + sidebar_content.append(( + path, + '{title}'.format( + url=quote(path), c=' guide-sidebar-item-indented' if indented else '', title=html.escape(title) + ) + )) + +for entry in entries: + if isinstance(entry, Section): + section = entry + sidebar_content.append(('', '

{}

'.format(section.name))) + for item in section.items: + path = '{}/{}/{}'.format(INPUT_DIR, section.path, item) + add_sidebar_link_for_page(section.path + '/' + item, True) + else: + assert isinstance(entry, str) + add_sidebar_link_for_page(entry, False) def process_file(path): count = path.count('/') @@ -102,7 +114,10 @@ def process_file(path): f.write(output) f.close() -process_file('index.html') -for section in sections: - for item in section.items: - process_file('{}/{}'.format(section.path, item)) +for entry in entries: + if isinstance(entry, Section): + section = entry + for item in section.items: + process_file('{}/{}'.format(section.path, item)) + else: + process_file(entry) diff --git a/guide-src/outline.txt b/guide-src/outline.txt index 5ded64c..df12f5d 100644 --- a/guide-src/outline.txt +++ b/guide-src/outline.txt @@ -1,6 +1,5 @@ -widget-inputs: Widget inputs -/syntax.html -/builtins.html -development: Development +index.html +widget-inputs.html +development: development /index.html /js-features.html diff --git a/guide-src/widget-inputs.html b/guide-src/widget-inputs.html new file mode 100644 index 0000000..f0e8bdb --- /dev/null +++ b/guide-src/widget-inputs.html @@ -0,0 +1,41 @@ +--- widget inputs + +

syntax

+ +

+here are the various ways of specifying widget inputs: +

+ + + + + + + + + + + +
formatexampledescription
<number>5.3a number
#RRGGBB#ff831ca 3-component vector whose values are taken from the given color code. a color picker will be shown next to the input.
#RRGGBBAA#ff831c22a 4-component vector whose values are taken from the color code.
<widget name>add1the output from another widget
<input>,<input>.pos,0a vector composed of a and b (which can themselves be vectors)
<input>.<component>.pos.xextract a single component from a vector
<input>.<swizzle>.pos.yxyreorder vector components (this example is equivalent to .pos.y, .pos.x, .pos.y)
+ + +

built-in values

+ +all of pugl's built-in values begin with a . to distinguish +them from your widgets. +here they all are. +below, float refers to a plain old number, +vec2 is a 2-component vector, etc. + + + + + + + + + + + + +
built‑intypedescription
.posvec2the position of the pixel, with (−1, −1) being the bottom-left corner, and (+1, +1) being the top-right corner.
.pos01vec2the position of the pixel, with (0, 0) being the bottom-left corner, and (+1, +1) being the top-right corner.
.timefloatthe amount of time that has passed (wraps around every hour to prevent imprecision issues).
.mousevec2the position of the mouse ranging from (−1, −1) to (+1, +1).
.mouse01vec2the position of the mouse ranging from (0, 0) to (+1, +1).
.pifloatπ (3.1415…).
.2pifloat2π (6.2831…).
diff --git a/guide-src/widget-inputs/builtins.html b/guide-src/widget-inputs/builtins.html deleted file mode 100644 index 32cb3b1..0000000 --- a/guide-src/widget-inputs/builtins.html +++ /dev/null @@ -1,20 +0,0 @@ ---- built-in values - -all of pugl's built-in values begin with a . to distinguish -them from your widgets. -here they all are. -below, float refers to a plain old number, -vec2 is a 2-component vector, etc. - - - - - - - - - - - - -
built‑intypedescription
.posvec2the position of the pixel, with (−1, −1) being the bottom-left corner, and (+1, +1) being the top-right corner.
.pos01vec2the position of the pixel, with (0, 0) being the bottom-left corner, and (+1, +1) being the top-right corner.
.timefloatthe amount of time that has passed (wraps around every hour to prevent imprecision issues).
.mousevec2the position of the mouse ranging from (−1, −1) to (+1, +1).
.mouse01vec2the position of the mouse ranging from (0, 0) to (+1, +1).
.pifloatπ (3.1415…).
.2pifloat2π (6.2831…).
diff --git a/guide-src/widget-inputs/syntax.html b/guide-src/widget-inputs/syntax.html deleted file mode 100644 index 8026b33..0000000 --- a/guide-src/widget-inputs/syntax.html +++ /dev/null @@ -1,16 +0,0 @@ ---- syntax -

-here are the various ways of specifying widget inputs: -

- - - - - - - - - - - -
formatexampledescription
<number>5.3a number
#RRGGBB#ff831ca 3-component vector whose values are taken from the given color code. a color picker will be shown next to the input.
#RRGGBBAA#ff831c22a 4-component vector whose values are taken from the color code.
<widget name>add1the output from another widget
<input>,<input>.pos,0a vector composed of a and b (which can themselves be vectors)
<input>.<component>.pos.xextract a single component from a vector
<input>.<swizzle>.pos.yxyreorder vector components (this example is equivalent to .pos.y, .pos.x, .pos.y)
-- cgit v1.2.3