From a08984942842318cfad1e87c81e06ad478939cdc Mon Sep 17 00:00:00 2001 From: glopesdev Date: Sun, 25 Feb 2024 17:40:10 +0000 Subject: [PATCH 1/8] Install docfx as local tool and avoid xrefService --- .config/dotnet-tools.json | 12 ++++++++++++ docfx.json | 5 +++-- index.md | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 .config/dotnet-tools.json diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json new file mode 100644 index 00000000..278b6c75 --- /dev/null +++ b/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "docfx": { + "version": "2.75.3", + "commands": [ + "docfx" + ] + } + } +} \ No newline at end of file diff --git a/docfx.json b/docfx.json index be1da3a1..00d32aec 100644 --- a/docfx.json +++ b/docfx.json @@ -66,7 +66,9 @@ } ], "globalMetadata": { + "_enableSearch": true, "_enableNewTab": true, + "_appFooter": "© 2024 Bonsai Foundation and Contributors. Licensed under CC BY-SA 4.0. Made with docfx", "_gitContribute": { "repo": "https://github.com/bonsai-rx/docs", "branch": "main", @@ -80,7 +82,6 @@ "default", "template" ], - "postProcessors": [ "ExtractSearchIndex" ], "markdownEngineName": "markdig", "markdownEngineProperties": { "markdigExtensions": [ @@ -92,8 +93,8 @@ "keepFileLink": false, "cleanupCacheHistory": false, "disableGitFeatures": false, - "xrefService": [ "https://xref.docs.microsoft.com/query?uid={uid}" ], "xref": [ + "https://learn.microsoft.com/en-us/dotnet/.xrefmap.json", "https://horizongir.github.io/opencv.net/xrefmap.yml", "https://horizongir.github.io/ZedGraph/xrefmap.yml", "https://horizongir.github.io/opentk/xrefmap.yml", diff --git a/index.md b/index.md index e27be461..e4753e9d 100644 --- a/index.md +++ b/index.md @@ -3,7 +3,7 @@ Bonsai is a visual language for reactive programming. It is lightweight and easy to use with a variety of packages and modules for interfacing with hardware and for real-time processing and manipulation of data streams. > [!Warning] -> These docs are under active development, feel free to contribute by either [raising an issue](https://github.com/bonsai-rx/docs/issues) or following the links saying **Improve this Doc**. +> These docs are under active development, feel free to contribute by either [raising an issue](https://github.com/bonsai-rx/docs/issues) or following the links saying **Edit this page**. ## Quick Start From 47849bcc20cd37e7852cecbe8c82fb577be52684 Mon Sep 17 00:00:00 2001 From: glopesdev Date: Mon, 26 Feb 2024 08:30:37 +0000 Subject: [PATCH 2/8] Update to modern docfx template --- .gitmodules | 3 + docfx-tools | 1 + docfx.json | 2 + template/partials/head.tmpl.partial | 22 - template/partials/logo.tmpl.partial | 5 - template/partials/navbar.tmpl.partial | 40 -- template/partials/scripts.tmpl.partial | 6 - template/public/main.css | 21 + template/public/main.js | 13 + template/styles/jquery.greedy-navigation.js | 127 ----- template/styles/main.css | 494 -------------------- template/styles/main.js | 62 --- tutorials/acquisition.md | 2 - tutorials/closed-loop.md | 2 - tutorials/networking.md | 2 - tutorials/scripting.md | 2 - tutorials/state-machines.md | 2 - tutorials/synching-ephys.md | 2 - tutorials/synching.md | 2 - tutorials/vision-psychophysics.md | 2 - 20 files changed, 40 insertions(+), 772 deletions(-) create mode 160000 docfx-tools delete mode 100644 template/partials/head.tmpl.partial delete mode 100644 template/partials/logo.tmpl.partial delete mode 100644 template/partials/navbar.tmpl.partial delete mode 100644 template/partials/scripts.tmpl.partial create mode 100644 template/public/main.css create mode 100644 template/public/main.js delete mode 100644 template/styles/jquery.greedy-navigation.js delete mode 100644 template/styles/main.css delete mode 100644 template/styles/main.js diff --git a/.gitmodules b/.gitmodules index 256dc9fc..ebc85a6f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "src/bonsai"] path = src/bonsai url = https://github.com/bonsai-rx/bonsai.git +[submodule "docfx-tools"] + path = docfx-tools + url = https://github.com/bonsai-rx/docfx-tools diff --git a/docfx-tools b/docfx-tools new file mode 160000 index 00000000..6013b39e --- /dev/null +++ b/docfx-tools @@ -0,0 +1 @@ +Subproject commit 6013b39e0f7004ded509a726c325d86d7de2c072 diff --git a/docfx.json b/docfx.json index 00d32aec..d5e57a0e 100644 --- a/docfx.json +++ b/docfx.json @@ -80,6 +80,8 @@ "fileMetadataFiles": [], "template": [ "default", + "modern", + "docfx-tools/template", "template" ], "markdownEngineName": "markdig", diff --git a/template/partials/head.tmpl.partial b/template/partials/head.tmpl.partial deleted file mode 100644 index 1e71ca94..00000000 --- a/template/partials/head.tmpl.partial +++ /dev/null @@ -1,22 +0,0 @@ -{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}} - - - - - {{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}} - - - - {{#_description}}{{/_description}} - - - - - - - - - {{#_noindex}}{{/_noindex}} - {{#_enableSearch}}{{/_enableSearch}} - {{#_enableNewTab}}{{/_enableNewTab}} - diff --git a/template/partials/logo.tmpl.partial b/template/partials/logo.tmpl.partial deleted file mode 100644 index d01c12a1..00000000 --- a/template/partials/logo.tmpl.partial +++ /dev/null @@ -1,5 +0,0 @@ -{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}} - - - - diff --git a/template/partials/navbar.tmpl.partial b/template/partials/navbar.tmpl.partial deleted file mode 100644 index ce6c77d4..00000000 --- a/template/partials/navbar.tmpl.partial +++ /dev/null @@ -1,40 +0,0 @@ -{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}} - -
-
-
- -
-
-
- - diff --git a/template/partials/scripts.tmpl.partial b/template/partials/scripts.tmpl.partial deleted file mode 100644 index 05af632f..00000000 --- a/template/partials/scripts.tmpl.partial +++ /dev/null @@ -1,6 +0,0 @@ -{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}} - - - - - diff --git a/template/public/main.css b/template/public/main.css new file mode 100644 index 00000000..4dfbbd27 --- /dev/null +++ b/template/public/main.css @@ -0,0 +1,21 @@ +@import "workflow.css"; + +/* ========================================================================== + DESIGN GUIDELINES STYLE + ========================================================================== */ + +.do > p::before { + content: "✔️ DO "; +} + +.consider > p::before { + content: "✔️ CONSIDER "; +} + +.avoid > p::before { + content: "❌ AVOID "; +} + +.donot > p::before { + content: "❌ DO NOT "; +} \ No newline at end of file diff --git a/template/public/main.js b/template/public/main.js new file mode 100644 index 00000000..cbb231bc --- /dev/null +++ b/template/public/main.js @@ -0,0 +1,13 @@ +import WorkflowContainer from "./workflow.js" + +export default { + defaultTheme: 'light', + iconLinks: [{ + icon: 'github', + href: 'https://github.com/bonsai-rx/bonsai', + title: 'GitHub' + }], + start: () => { + WorkflowContainer.init(); + } +} \ No newline at end of file diff --git a/template/styles/jquery.greedy-navigation.js b/template/styles/jquery.greedy-navigation.js deleted file mode 100644 index 2b320d08..00000000 --- a/template/styles/jquery.greedy-navigation.js +++ /dev/null @@ -1,127 +0,0 @@ -/* -GreedyNav.js - https://github.com/lukejacksonn/GreedyNav -Licensed under the MIT license - http://opensource.org/licenses/MIT -Copyright (c) 2015 Luke Jackson http://lukejacksonn.com -*/ - -$(function() { - - var $btn = $("nav.greedy-nav .greedy-nav__toggle"); - var $vlinks = $("nav.greedy-nav .visible-links"); - var $hlinks = $("nav.greedy-nav .hidden-links"); - var $nav = $("nav.greedy-nav"); - var $logo = $('nav.greedy-nav a.navbar-brand'); - var $logoImg = $('nav.greedy-nav .site-logo img'); - var $title = $("nav.greedy-nav .site-title"); - var $search = $('nav.greedy-nav button.search__toggle'); - - var numOfItems, totalSpace, closingTime, breakWidths; - - // This function measures both hidden and visible links and sets the navbar breakpoints - // This is called the first time the script runs and everytime the "check()" function detects a change of window width that reached a different CSS width breakpoint, which affects the size of navbar Items - // Please note that "CSS width breakpoints" (which are only 4) !== "navbar breakpoints" (which are as many as the number of items on the navbar) - function measureLinks(){ - numOfItems = 0; - totalSpace = 0; - closingTime = 1000; - breakWidths = []; - - // Adds the width of a navItem in order to create breakpoints for the navbar - function addWidth(i, w) { - totalSpace += w; - numOfItems += 1; - breakWidths.push(totalSpace); - } - - // Measures the width of hidden links by making a temporary clone of them and positioning under visible links - function hiddenWidth(obj){ - var clone = obj.clone(); - clone.css("visibility","hidden"); - $vlinks.append(clone); - addWidth(0, clone.outerWidth()); - clone.remove(); - } - // Measure both visible and hidden links widths - $vlinks.children().outerWidth(addWidth); - $hlinks.children().each(function(){hiddenWidth($(this))}); - } - // Get initial state - measureLinks(); - - var winWidth = $( window ).width(); - // Set the last measured CSS width breakpoint: 0: <768px, 1: <1024px, 2: < 1280px, 3: >= 1280px. - var lastBreakpoint = winWidth < 768 ? 0 : winWidth < 1024 ? 1 : winWidth < 1280 ? 2 : 3; - - var availableSpace, numOfVisibleItems, requiredSpace, timer; - - function check() { - - winWidth = $( window ).width(); - // Set the current CSS width breakpoint: 0: <768px, 1: <1024px, 2: < 1280px, 3: >= 1280px. - var curBreakpoint = winWidth < 768 ? 0 : winWidth < 1024 ? 1 : winWidth < 1280 ? 2 : 3; - // If current breakpoint is different from last measured breakpoint, measureLinks again - if(curBreakpoint !== lastBreakpoint) measureLinks(); - // Set the last measured CSS width breakpoint with the current breakpoint - lastBreakpoint = curBreakpoint; - - // Get instant state - numOfVisibleItems = $vlinks.children().length; - // Decrease the width of visible elements from the nav innerWidth to find out the available space for navItems - availableSpace = /* nav */ $nav.innerWidth() - - /* logo */ ($logo.length !== 0 ? $logo.outerWidth(true) : 0) - - /* title */ ($title.length !== 0 ? $title.outerWidth(true) : 0) - - /* search */ ($search.length !== 0 ? $search.outerWidth(true) : 0) - - /* toggle */ (numOfVisibleItems !== breakWidths.length ? $btn.outerWidth(true) : 0); - requiredSpace = breakWidths[numOfVisibleItems - 1]; - - // There is not enought space - if (requiredSpace > availableSpace) { - $vlinks.children().last().prependTo($hlinks); - numOfVisibleItems -= 1; - check(); - // There is more than enough space. If only one element is hidden, add the toggle width to the available space - } else if (availableSpace + (numOfVisibleItems === breakWidths.length - 1?$btn.outerWidth(true):0) > breakWidths[numOfVisibleItems]) { - $hlinks.children().first().appendTo($vlinks); - numOfVisibleItems += 1; - check(); - } - // Update the button accordingly - $btn.attr("count", numOfItems - numOfVisibleItems); - if (numOfVisibleItems === numOfItems) { - $btn.addClass('hidden'); - } else $btn.removeClass('hidden'); - } - - // Window listeners - $(window).resize(function() { - check(); - }); - - $btn.on('click', function() { - $hlinks.toggleClass('hidden'); - $(this).toggleClass('close'); - clearTimeout(timer); - }); - - $hlinks.on('mouseleave', function() { - // Mouse has left, start the timer - timer = setTimeout(function() { - $hlinks.addClass('hidden'); - }, closingTime); - }).on('mouseenter', function() { - // Mouse is back, cancel the timer - clearTimeout(timer); - }) - - // check if page has a logo - if($logoImg.length !== 0){ - // check if logo is not loaded - if(!($logoImg[0].complete || $logoImg[0].naturalWidth !== 0)){ - // if logo is not loaded wait for logo to load or fail to check - $logoImg.one("load error", check); - // if logo is already loaded just check - } else check(); - // if page does not have a logo just check - } else check(); - -}); diff --git a/template/styles/main.css b/template/styles/main.css deleted file mode 100644 index f5ff0b63..00000000 --- a/template/styles/main.css +++ /dev/null @@ -1,494 +0,0 @@ -article h2, article h3 { - margin-top: 1.5em; -} - -.table > tbody > tr > td, .table > tbody > tr > th { - vertical-align: middle; -} - -.affix { - height: auto; -} - -.affix > ul.level1 { - overflow: inherit; -} - -.affix ul > li.active > ul, -.affix ul > li.active > a:before, -.affix ul > li > a:hover:before { - display: block; - white-space: inherit; -} - -.workflow { - border: 1px solid #e3e3e3; - padding: 2px; -} - -.workflow > p > img { - padding-top: 12px; - padding-left: 12px; - padding-right: 12px; -} - -.codeHeader { - box-sizing: content-box; - background-color: #f2f2f2; - color: #171717; - display: flex; - flex-direction: row; - border: 1px solid #e3e3e3; - border-bottom: 0; - margin-top: 16px; - min-height: 30px; -} - -.codeHeader > .language { - padding: 2px 16px; - flex-grow: 1; - line-height: 26px; -} - -.codeHeader > .action { - position: relative; - padding: 2px 10px; - background-color: transparent; - border: 0 solid #e3e3e3; - border-left-width: 1px; - color: #171717; - cursor: pointer; - display: flex; - align-items: center; - line-height: normal; -} - -.codeHeader .glyphicon { - margin-right: 0.25em; -} - -.codeHeader > .action:hover { - background-color: #fafafa; -} - -.codeHeader + pre { - margin-top: 0; - border: 1px solid #e3e3e3; -} - -.codeHeader > .action .successful-copy-alert { - justify-content: center; - align-items: center; - right: 0; - left: 0; - bottom: 0; - top: 0; - position: absolute; - display: flex; - background-color: #128712; - outline-color: #fff; - color: #fff; -} - -.codeHeader > .action .successful-copy-alert.is-transparent { - opacity: 0; - transition: 500ms opacity ease-in-out; -} - -.diagram { - text-align: center; -} - -summary { - display: list-item; -} - -/* ========================================================================== - DESIGN GUIDELINES STYLE - ========================================================================== */ - -.do > p::before { - content: "✔️ DO "; -} - -.consider > p::before { - content: "✔️ CONSIDER "; -} - -.avoid > p::before { - content: "❌ AVOID "; -} - -.donot > p::before { - content: "❌ DO NOT "; -} - -/* ========================================================================== - MASTHEAD NAVIGATION ADAPTED FROM MINIMAL MISTAKES THEME - Copyright (c) 2013-2020 Michael Rose and contributors - Licensed under the MIT license. See LICENSE file in the project root for - full license information. - ========================================================================== */ - -:root { - --gray: #7a8288; - --lighter-gray: mix(#fff, var(--gray), 90%); - --global-transition: all 0.2s ease-in-out; - --intro-transition: intro 0.3s both; - --sans-serif-narrow: -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", - "Helvetica Neue", "Lucida Grande", Arial, sans-serif; - --type-size-5: 1em; - --type-size-8: 0.625em; - --nav-height: 2.22em; - --nav-toggle-height: 2em; - --navicon-width: 1.5em; - --navicon-height: 0.25em; - --border-radius: 4px; - --background-color: #fff; - --primary-color: #6f777d; - --border-color: var(--lighter-gray); - --masthead-link-color: var(--primary-color); - --masthead-link-color-hover: mix(#000, var(--primary-color), 25%); - --navicon-link-color-hover: mix(#fff, var(--primary-color), 75%); - --small: 600px; - --medium: 768px; - --medium-wide: 900px; - --large: 1024px; - --x-large: 1280px; -} - -/* ========================================================================== - MASTHEAD - ========================================================================== */ - -.masthead { - position: relative; - border-bottom: 1px solid mix(#fff, var(--gray), 90%); - -webkit-animation: var(--intro-transition); - animation: var(--intro-transition); - -webkit-animation-delay: 0.15s; - animation-delay: 0.15s; - z-index: 20; -} - -.masthead__inner-wrap { - clear: both; - margin-left: auto; - margin-right: auto; - padding: 0.1em 1em 0.1em 0em; - max-width: 100%; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - font-family: var(--sans-serif-narrow); - background: var(--background-color); - font-size: 16px; -} - -.container { - width: 100%; - --article-margin-top: 120px; - --sidefilter-offset: -30px; - --sidetoc-offset: 32px; - --sideaffix-offset: -20px; -} - -.navbar-brand { - height: 100%; - padding-top: 4.5px; - padding-bottom: 0.5px; -} - -.container-fluid > .navbar-collapse, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container > .navbar-header { - margin-right: 0; - margin-left: -20px; -} - -.article { - margin-top: var(--article-margin-top); -} - -.sideaffix { - overflow-x: hidden; - overflow-y: auto; - top: calc(var(--article-margin-top) + var(--sideaffix-offset)); -} - -.sidetoc { - top: calc(var(--article-margin-top) + var(--sidetoc-offset)); -} - -.sidetoc.shiftup { - bottom: 50px; -} - -.sidefilter { - top: calc(var(--article-margin-top) + var(--sidefilter-offset)); -} - -@media (min-width: 48em) { - .container { --article-margin-top: 169px; } - .masthead__inner-wrap { - font-size: 18px; - padding: 0.2em 1em 0.2em 0em; - } - - .navbar-brand { - padding-top: 5px; - padding-bottom: 0px; - } -} - -@media (min-width: 64em) { - .container { --article-margin-top: 174px; } - .masthead__inner-wrap { font-size: 20px; } -} - -@media (min-width: 80em) { - .container { - max-width: var(--x-large); - --article-margin-top: 179px; - } - - .masthead__inner-wrap { - font-size: 22px; - max-width: var(--x-large); - } -} - -.site-logo img { - max-height: 2rem; -} - -.site-title { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-item-align: center; - align-self: center; - font-weight: bold; -} - -.site-subtitle { - display: block; - font-size: var(--type-size-8); -} - -.masthead__menu { - float: left; - margin-left: 0; - margin-right: 0; - width: 100%; - clear: both; -} - -.masthead__menu-item { - display: block; - list-style-type: none; - white-space: nowrap; -} - -/* - Priority plus navigation - ========================================================================== */ - -.greedy-nav { - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - min-height: var(--nav-height); - background: var(--background-color); -} - -.greedy-nav a { - display: block; - margin: 0 1em; - color: var(--masthead-link-color); - text-decoration: none; - -webkit-transition: none; - transition: none; -} - -.greedy-nav a:hover { - color: var(--masthead-link-color-hover); -} - -.greedy-nav a.site-logo { - margin-left: 0; - margin-right: 0.5rem; -} - -.greedy-nav a.site-title { - margin-left: 0; -} - -.greedy-nav img { - -webkit-transition: none; - transition: none; -} - -.greedy-nav__toggle { - -ms-flex-item-align: center; - align-self: center; - height: var(--nav-toggle-height); - border: 0; - outline: none; - background-color: transparent; - cursor: pointer; -} - -.greedy-nav .visible-links { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - overflow: hidden; - line-height: 1.5; -} - -.greedy-nav ul.visible-links { - margin: 0px; -} - -.greedy-nav .visible-links li { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; -} - -.greedy-nav .visible-links a { - position: relative; -} - -.greedy-nav .visible-links a:before { - content: ""; - position: absolute; - left: 0; - bottom: 0; - height: 2px; - background: var(--primary-color); - width: 100%; - -webkit-transition: var(--global-transition); - transition: var(--global-transition); - -webkit-transform: scaleX(0) translate3d(0, 0, 0); - transform: scaleX(0) translate3d(0, 0, 0); -} - -.greedy-nav .visible-links a:hover:before { - -webkit-transform: scaleX(1); - -ms-transform: scaleX(1); - transform: scaleX(1); -} - -.greedy-nav .hidden-links { - position: absolute; - top: 100%; - right: 0; - margin-top: 15px; - padding: 5px; - border: 1px solid var(--border-color); - border-radius: var(--border-radius); - background: var(--background-color); - -webkit-box-shadow: 0 2px 4px 0 rgba(#000, 0.16), - 0 2px 10px 0 rgba(#000, 0.12); - box-shadow: 0 2px 4px 0 rgba(#000, 0.16), 0 2px 10px 0 rgba(#000, 0.12); -} - -.greedy-nav .hidden-links.hidden { - display: none; -} - -.greedy-nav .hidden-links a { - margin: 0; - padding: 10px 20px; - font-size: var(--type-size-5); -} - -.greedy-nav .hidden-links a:hover { - color: var(--masthead-link-color-hover); - background: var(--navicon-link-color-hover); -} - -.greedy-nav .hidden-links:before { - content: ""; - position: absolute; - top: -11px; - right: 10px; - width: 0; - border-style: solid; - border-width: 0 10px 10px; - border-color: var(--border-color) transparent; - display: block; - z-index: 0; -} - -.greedy-nav .hidden-links:after { - content: ""; - position: absolute; - top: -10px; - right: 10px; - width: 0; - border-style: solid; - border-width: 0 10px 10px; - border-color: var(--background-color) transparent; - display: block; - z-index: 1; -} - -.greedy-nav .hidden-links li { - display: block; - border-bottom: 1px solid var(--border-color); -} - -.greedy-nav .hidden-links li:last-child { - border-bottom: none; -} - -/* - Navicons - ========================================================================== */ - -.navicon { - position: relative; - width: var(--navicon-width); - height: var(--navicon-height); - background: var(--primary-color); - margin: auto; - -webkit-transition: 0.3s; - transition: 0.3s; -} - -.navicon:before, -.navicon:after { - content: ""; - position: absolute; - left: 0; - width: var(--navicon-width); - height: var(--navicon-height); - background: var(--primary-color); - -webkit-transition: 0.3s; - transition: 0.3s; -} - -.navicon:before { - top: calc(-2 * var(--navicon-height)); -} - -.navicon:after { - bottom: calc(-2 * var(--navicon-height)); -} \ No newline at end of file diff --git a/template/styles/main.js b/template/styles/main.js deleted file mode 100644 index eb4f07eb..00000000 --- a/template/styles/main.js +++ /dev/null @@ -1,62 +0,0 @@ -$(function() { - var createCodeHeader = function(text) { - return $( - '
'+ - ' '+ text +''+ - ' '+ - '
' - ); - } - - var setCopyAlert = function($element) { - var copyAlert = $element.find(".successful-copy-alert"); - copyAlert.removeClass("is-transparent"); - setTimeout(function() { - copyAlert.addClass("is-transparent"); - }, 2000); - } - - $("div.workflow").each(function() { - var workflowPath = undefined; - $(this).find("img").attr("src", (_, val) => { - workflowPath = val; - return workflowPath.replace(/\.[^.]+$/, ".svg"); - }); - var $codeHeader = createCodeHeader("Workflow"); - $(this).first().before($codeHeader); - $codeHeader.find("button").click(function() { - var $button = $(this); - fetch(workflowPath).then(req => req.text()).then(contents => { - navigator.clipboard.writeText(contents); - setCopyAlert($button); - }); - }); - }); - - $("code.hljs").each(function() { - var $this = $(this); - var languageQuery = /lang-(.+?)(\s|$)/.exec($this.attr("class")); - var language = languageQuery && languageQuery.length > 1 ? languageQuery[1].toUpperCase() : null; - if (language && language !== 'CMD') { - var language = languageQuery[1].toUpperCase(); - if (language === 'CS' || language === 'CSHARP') { language = "C#"; } - if (language === 'JS') { language = "JavaScript"; } - if (language === 'PYTHON') { language = "Python"; } - var $codeHeader = createCodeHeader(language); - var $codeElement = $this.closest("pre"); - $codeElement.before($codeHeader); - $codeHeader.find("button").click(function() { - navigator.clipboard.writeText($codeElement.text()); - setCopyAlert($(this)); - }); - } - }); -}); \ No newline at end of file diff --git a/tutorials/acquisition.md b/tutorials/acquisition.md index 81db0beb..62656d58 100644 --- a/tutorials/acquisition.md +++ b/tutorials/acquisition.md @@ -1,6 +1,4 @@ --- -layout: worksheet -title: Acquisition and Tracking --- # Acquisition and Tracking diff --git a/tutorials/closed-loop.md b/tutorials/closed-loop.md index 89137770..2facbb5a 100644 --- a/tutorials/closed-loop.md +++ b/tutorials/closed-loop.md @@ -1,6 +1,4 @@ --- -layout: worksheet -title: Closed-Loop Systems --- # Closed-Loop Systems diff --git a/tutorials/networking.md b/tutorials/networking.md index 94d84414..c07aa10b 100644 --- a/tutorials/networking.md +++ b/tutorials/networking.md @@ -1,6 +1,4 @@ --- -layout: worksheet -title: Networking --- # Networking diff --git a/tutorials/scripting.md b/tutorials/scripting.md index fdb9a693..b9f50f2f 100644 --- a/tutorials/scripting.md +++ b/tutorials/scripting.md @@ -1,6 +1,4 @@ --- -layout: worksheet -title: Scripting --- # Scripting diff --git a/tutorials/state-machines.md b/tutorials/state-machines.md index fc337560..1e14f8ad 100644 --- a/tutorials/state-machines.md +++ b/tutorials/state-machines.md @@ -1,6 +1,4 @@ --- -layout: worksheet -title: State Machines uid: state-machines-tutorial --- diff --git a/tutorials/synching-ephys.md b/tutorials/synching-ephys.md index 030275e9..d2683382 100644 --- a/tutorials/synching-ephys.md +++ b/tutorials/synching-ephys.md @@ -1,6 +1,4 @@ --- -layout: worksheet -title: Ephys Synchronization --- # Ephys Synchronization diff --git a/tutorials/synching.md b/tutorials/synching.md index d31d1c61..a805ec87 100644 --- a/tutorials/synching.md +++ b/tutorials/synching.md @@ -1,6 +1,4 @@ --- -layout: worksheet -title: Data Synchronization --- # Data Synchronization diff --git a/tutorials/vision-psychophysics.md b/tutorials/vision-psychophysics.md index 423b3709..b251fde9 100644 --- a/tutorials/vision-psychophysics.md +++ b/tutorials/vision-psychophysics.md @@ -1,6 +1,4 @@ --- -layout: worksheet -title: Vision Psychophysics --- # Vision Psychophysics From fe2e9f19c17d7b3448b129a69ac096ed4184f96c Mon Sep 17 00:00:00 2001 From: glopesdev Date: Mon, 26 Feb 2024 13:28:40 +0000 Subject: [PATCH 3/8] Export example workflows with responsive theme --- docfx-tools | 2 +- workflows/acquisition-analog.svg | 34 +++- workflows/acquisition-audio.svg | 36 ++++- workflows/acquisition-audiobinary.svg | 34 +++- workflows/acquisition-audioplayback.svg | 46 +++++- workflows/acquisition-audiotrigger.svg | 83 +++++++++- workflows/acquisition-backsubtraction.svg | 100 +++++++++++- workflows/acquisition-grayvideo.svg | 50 +++++- workflows/acquisition-led.svg | 36 ++++- workflows/acquisition-motion.svg | 87 +++++++++- workflows/acquisition-motionsegmentation.svg | 87 +++++++++- workflows/acquisition-segmentation1.svg | 45 +++++- workflows/acquisition-segmentation2.svg | 49 +++++- workflows/acquisition-servo.svg | 59 ++++++- workflows/acquisition-tracking.svg | 113 ++++++++++++- workflows/acquisition-video.svg | 40 ++++- workflows/closed-loop-generator.svg | 59 ++++++- workflows/closed-loop-latency-arduino.svg | 69 +++++++- workflows/closed-loop-latency-video.svg | 106 +++++++++++- workflows/closed-loop-modulate.svg | 134 ++++++++++++++- workflows/closed-loop-pantilt-error.svg | 79 ++++++++- workflows/closed-loop-pantilt-servo.svg | 106 +++++++++++- workflows/closed-loop-pantilt-tracking.svg | 153 +++++++++++++++++- workflows/closed-loop-roi.svg | 100 +++++++++++- workflows/closed-loop-stabilization.svg | 147 ++++++++++++++++- workflows/closed-loop-trigger.svg | 129 ++++++++++++++- workflows/closed-loop-warpaffine.svg | 69 +++++++- workflows/expressions-format-example.svg | 42 ++++- workflows/expressions-format-path-example.svg | 91 ++++++++++- workflows/reactiontime-arduino.svg | 22 ++- workflows/reactiontime-measurement.svg | 67 +++++++- workflows/reactiontime-stimulus.svg | 84 +++++++++- .../reactiontime-triggerstimulus-inner.svg | 75 ++++++++- workflows/reactiontime-triggerstimulus.svg | 46 +++++- workflows/reactiontime-triggervideo-inner.svg | 53 +++++- workflows/reactiontime-triggervideo.svg | 126 ++++++++++++++- .../reactive-combinetimestamp-example.svg | 95 ++++++++++- workflows/reactive-condition-example.svg | 35 +++- .../reactive-eventloopscheduler-example.svg | 46 +++++- workflows/synching-camera.svg | 81 +++++++++- workflows/synching-led.svg | 92 ++++++++++- 41 files changed, 2923 insertions(+), 84 deletions(-) diff --git a/docfx-tools b/docfx-tools index 6013b39e..b751ba16 160000 --- a/docfx-tools +++ b/docfx-tools @@ -1 +1 @@ -Subproject commit 6013b39e0f7004ded509a726c325d86d7de2c072 +Subproject commit b751ba16a2813245757da241202339ae5f0674a5 diff --git a/workflows/acquisition-analog.svg b/workflows/acquisition-analog.svg index 81383aaf..d1ffc9ce 100644 --- a/workflows/acquisition-analog.svg +++ b/workflows/acquisition-analog.svg @@ -1,3 +1,33 @@ - + -]>CsvWriterAnalogInput \ No newline at end of file +]> + + + + + + + + + + + + CsvWriter + + + + + + AnalogInput + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-audio.svg b/workflows/acquisition-audio.svg index 9e170f37..ad1a9363 100644 --- a/workflows/acquisition-audio.svg +++ b/workflows/acquisition-audio.svg @@ -1,3 +1,35 @@ - + -]>AudioWriterAudioCapture \ No newline at end of file +]> + + + + + + + + + + + + AudioWriter + + + + + + + + AudioCapture + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-audiobinary.svg b/workflows/acquisition-audiobinary.svg index b077cb90..e54344e1 100644 --- a/workflows/acquisition-audiobinary.svg +++ b/workflows/acquisition-audiobinary.svg @@ -1,3 +1,33 @@ - + -]>MatrixWriterAudioCapture \ No newline at end of file +]> + + + + + + + + + + MatrixWriter + + + + + + + + AudioCapture + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-audioplayback.svg b/workflows/acquisition-audioplayback.svg index dfe855bf..e75ead21 100644 --- a/workflows/acquisition-audioplayback.svg +++ b/workflows/acquisition-audioplayback.svg @@ -1,3 +1,45 @@ - + -]>AudioPlaybackAudioReader \ No newline at end of file +]> + + + + + + + + + + + + + + Audio + + + Playback + + + + + + + + + + AudioReader + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-audiotrigger.svg b/workflows/acquisition-audiotrigger.svg index 6a54da99..0ba5786c 100644 --- a/workflows/acquisition-audiotrigger.svg +++ b/workflows/acquisition-audiotrigger.svg @@ -1,3 +1,82 @@ - + -]>AudioPlaybackItem2WithLatestFromKeyDownAudioReader \ No newline at end of file +]> + + + + + + + + + + + + + + + + + Audio + + + Playback + + + + + + + Item2 + + + + + WithLatest + + + From + + + + + + + KeyDown + + + + + + + + + + AudioReader + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-backsubtraction.svg b/workflows/acquisition-backsubtraction.svg index 9fe6019a..794d940b 100644 --- a/workflows/acquisition-backsubtraction.svg +++ b/workflows/acquisition-backsubtraction.svg @@ -1,3 +1,99 @@ - + -]>ThresholdAbsoluteDifferenceCombineLatestSkipTakeGrayscaleCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + Threshold + + + + + Absolute + + + Difference + + + + + + + Combine + + + Latest + + + + + Skip + + + + + Take + + + + + + Grayscale + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-grayvideo.svg b/workflows/acquisition-grayvideo.svg index 3cf28b78..35debd9f 100644 --- a/workflows/acquisition-grayvideo.svg +++ b/workflows/acquisition-grayvideo.svg @@ -1,3 +1,49 @@ - + -]>VideoWriterGrayscaleCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + VideoWriter + + + + + + Grayscale + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-led.svg b/workflows/acquisition-led.svg index dab22a07..44d3ddc7 100644 --- a/workflows/acquisition-led.svg +++ b/workflows/acquisition-led.svg @@ -1,3 +1,35 @@ - + -]>DigitalOutputBoolean \ No newline at end of file +]> + + + + + + + + + + DigitalOutput + + + + + + + + + + Boolean + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-motion.svg b/workflows/acquisition-motion.svg index 34eee3cb..34a04080 100644 --- a/workflows/acquisition-motion.svg +++ b/workflows/acquisition-motion.svg @@ -1,3 +1,86 @@ - + -]>CsvWriterVal0SumBackgroundSubtractionGrayscaleCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + CsvWriter + + + + + + + Val0 + + + + + Sum + + + + + + Background + + + Subtraction + + + + + + Grayscale + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-motionsegmentation.svg b/workflows/acquisition-motionsegmentation.svg index 049a2b90..df525bfe 100644 --- a/workflows/acquisition-motionsegmentation.svg +++ b/workflows/acquisition-motionsegmentation.svg @@ -1,3 +1,86 @@ - + -]>ThresholdAbsoluteDifferenceZipSkipGrayscaleCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + Threshold + + + + + Absolute + + + Difference + + + + + + + Zip + + + + + Skip + + + + + + + Grayscale + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-segmentation1.svg b/workflows/acquisition-segmentation1.svg index 7d782a4b..6f61833b 100644 --- a/workflows/acquisition-segmentation1.svg +++ b/workflows/acquisition-segmentation1.svg @@ -1,3 +1,44 @@ - + -]>RangeThresholdCameraCapture \ No newline at end of file +]> + + + + + + + + + + Range + + + Threshold + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-segmentation2.svg b/workflows/acquisition-segmentation2.svg index a672f744..631d4f4e 100644 --- a/workflows/acquisition-segmentation2.svg +++ b/workflows/acquisition-segmentation2.svg @@ -1,3 +1,48 @@ - + -]>HsvThresholdConvertColorCameraCapture \ No newline at end of file +]> + + + + + + + + + + + HsvThreshold + + + + + + ConvertColor + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-servo.svg b/workflows/acquisition-servo.svg index c25e8257..719f93d2 100644 --- a/workflows/acquisition-servo.svg +++ b/workflows/acquisition-servo.svg @@ -1,3 +1,58 @@ - + -]>ServoOutputRepeatRescaleTakeTimer \ No newline at end of file +]> + + + + + + + + + + + + + ServoOutput + + + + + Repeat + + + + + Rescale + + + + + Take + + + + + + Timer + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-tracking.svg b/workflows/acquisition-tracking.svg index 48ae925a..97fa34b9 100644 --- a/workflows/acquisition-tracking.svg +++ b/workflows/acquisition-tracking.svg @@ -1,3 +1,112 @@ - + -]>CsvWriterCentroidLargestBinaryRegionBinaryRegionAnalysisFindContoursHsvThresholdConvertColorCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + + + CsvWriter + + + + + + Centroid + + + + + + LargestBinary + + + Region + + + + + + BinaryRegion + + + Analysis + + + + + + FindContours + + + + + + HsvThreshold + + + + + + ConvertColor + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/acquisition-video.svg b/workflows/acquisition-video.svg index 0af203cf..fe1251ea 100644 --- a/workflows/acquisition-video.svg +++ b/workflows/acquisition-video.svg @@ -1,3 +1,39 @@ - + -]>VideoWriterCameraCapture \ No newline at end of file +]> + + + + + + + + + + + VideoWriter + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-generator.svg b/workflows/closed-loop-generator.svg index 6f2d2d0b..32af77ab 100644 --- a/workflows/closed-loop-generator.svg +++ b/workflows/closed-loop-generator.svg @@ -1,3 +1,58 @@ - + -]>AudioPlaybackFunctionGeneratorAmplitude \ No newline at end of file +]> + + + + + + + + + + + + + + + Audio + + + Playback + + + + + + Function + + + Generator + + + + + + + Amplitude + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-latency-arduino.svg b/workflows/closed-loop-latency-arduino.svg index 6405eeed..8b37aeda 100644 --- a/workflows/closed-loop-latency-arduino.svg +++ b/workflows/closed-loop-latency-arduino.svg @@ -1,3 +1,68 @@ - + -]>Interval.TotalMillisecondsTimeIntervalDigitalOutputBitwiseNotDigitalInput \ No newline at end of file +]> + + + + + + + + + + + + + + Interval.Total + + + Milliseconds + + + + + TimeInterval + + + + + + DigitalOutput + + + + + + + BitwiseNot + + + + + + DigitalInput + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-latency-video.svg b/workflows/closed-loop-latency-video.svg index 47653a33..d8b47924 100644 --- a/workflows/closed-loop-latency-video.svg +++ b/workflows/closed-loop-latency-video.svg @@ -1,3 +1,105 @@ - + -]>DigitalOutputBitwiseNotDistinctUntilChangedGreaterThanVal2SumCropCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + DigitalOutput + + + + + + + BitwiseNot + + + + + DistinctUntil + + + Changed + + + + + + + GreaterThan + + + + + + + Val2 + + + + + Sum + + + + + + Crop + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-modulate.svg b/workflows/closed-loop-modulate.svg index 9ea723a3..df4a51ae 100644 --- a/workflows/closed-loop-modulate.svg +++ b/workflows/closed-loop-modulate.svg @@ -1,3 +1,133 @@ - + -]>AudioPlaybackFunctionGeneratorAmplitudeExpressionTransformSubtractCentroidHsvThresholdConvertColorCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + + + + + + Audio + + + Playback + + + + + + Function + + + Generator + + + + + + + Amplitude + + + + + + + Expression + + + Transform + + + + + + + Subtract + + + + + + Centroid + + + + + + HsvThreshold + + + + + + ConvertColor + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-pantilt-error.svg b/workflows/closed-loop-pantilt-error.svg index 79ded41d..741373bb 100644 --- a/workflows/closed-loop-pantilt-error.svg +++ b/workflows/closed-loop-pantilt-error.svg @@ -1,3 +1,78 @@ - + -]>RescaleXCentroidHsvThresholdConvertColorCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + Rescale + + + + + + + X + + + + + + Centroid + + + + + + HsvThreshold + + + + + + ConvertColor + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-pantilt-servo.svg b/workflows/closed-loop-pantilt-servo.svg index c3925be7..d22e18d2 100644 --- a/workflows/closed-loop-pantilt-servo.svg +++ b/workflows/closed-loop-pantilt-servo.svg @@ -1,3 +1,105 @@ - + -]>ServoOutputPythonTransformRescaleXCentroidHsvThresholdConvertColorCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + ServoOutput + + + + + + + Python + + + Transform + + + + + Rescale + + + + + + + X + + + + + + Centroid + + + + + + HsvThreshold + + + + + + ConvertColor + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-pantilt-tracking.svg b/workflows/closed-loop-pantilt-tracking.svg index 1cba0cf2..e73a95c6 100644 --- a/workflows/closed-loop-pantilt-tracking.svg +++ b/workflows/closed-loop-pantilt-tracking.svg @@ -1,3 +1,152 @@ - + -]>ServoOutputServoOutputPythonTransformPythonTransformRescaleRescaleXYCentroidHsvThresholdConvertColorCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + + + + + ServoOutput + + + + + + ServoOutput + + + + + + + Python + + + Transform + + + + + + + Python + + + Transform + + + + + Rescale + + + + + Rescale + + + + + + + X + + + + + + + Y + + + + + + Centroid + + + + + + HsvThreshold + + + + + + ConvertColor + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-roi.svg b/workflows/closed-loop-roi.svg index 6753e987..b6d15067 100644 --- a/workflows/closed-loop-roi.svg +++ b/workflows/closed-loop-roi.svg @@ -1,3 +1,99 @@ - + -]>DigitalOutputGreaterThanVal0SumThresholdGrayscaleCropCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + DigitalOutput + + + + + + + GreaterThan + + + + + + + Val0 + + + + + Sum + + + + + + Threshold + + + + + + Grayscale + + + + + + Crop + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-stabilization.svg b/workflows/closed-loop-stabilization.svg index c46c3a18..99061ea9 100644 --- a/workflows/closed-loop-stabilization.svg +++ b/workflows/closed-loop-stabilization.svg @@ -1,3 +1,146 @@ - + -]>WarpAffineTransformAffineTransformTranslationAddNegateCentroidHsvThresholdConvertColorCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + WarpAffine + + + + + + + + Transform + + + + + + + + Affine + + + Transform + + + + + + + + Translation + + + + + + + + Add + + + + + + + + Negate + + + + + + + Centroid + + + + + + + HsvThreshold + + + + + + + ConvertColor + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-trigger.svg b/workflows/closed-loop-trigger.svg index 1f7f86a8..8daaa479 100644 --- a/workflows/closed-loop-trigger.svg +++ b/workflows/closed-loop-trigger.svg @@ -1,3 +1,128 @@ - + -]>DigitalOutputLessThanPythonTransformSortBinaryRegionsBinaryRegionAnalysisFindContoursHsvThresholdConvertColorCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + + DigitalOutput + + + + + + + LessThan + + + + + + + Python + + + Transform + + + + + + SortBinary + + + Regions + + + + + + BinaryRegion + + + Analysis + + + + + + FindContours + + + + + + HsvThreshold + + + + + + ConvertColor + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/closed-loop-warpaffine.svg b/workflows/closed-loop-warpaffine.svg index 87cb6512..af7a4111 100644 --- a/workflows/closed-loop-warpaffine.svg +++ b/workflows/closed-loop-warpaffine.svg @@ -1,3 +1,68 @@ - + -]>WarpAffineCameraCaptureTransformAffineTransform \ No newline at end of file +]> + + + + + + + + + + + + WarpAffine + + + + + + + Camera + + + Capture + + + + + + + Transform + + + + + + + + + Affine + + + Transform + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/expressions-format-example.svg b/workflows/expressions-format-example.svg index c1c3eb1b..ade70225 100644 --- a/workflows/expressions-format-example.svg +++ b/workflows/expressions-format-example.svg @@ -1,3 +1,41 @@ - + -]>FormatTimestampTimer \ No newline at end of file +]> + + + + + + + + + + + + Format + + + + + Timestamp + + + + + + Timer + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/expressions-format-path-example.svg b/workflows/expressions-format-path-example.svg index bf70bfaf..6eeb9bc1 100644 --- a/workflows/expressions-format-path-example.svg +++ b/workflows/expressions-format-path-example.svg @@ -1,3 +1,90 @@ - + -]>BasePathCsvWriterStringTimerFileNameFormatBasePath \ No newline at end of file +]> + + + + + + + + + + + + + + + BasePath + + + + + + + + CsvWriter + + + + + + + + + + String + + + + + + Timer + + + + + + + FileName + + + + + + + Format + + + + + + + BasePath + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/reactiontime-arduino.svg b/workflows/reactiontime-arduino.svg index d0cfbd62..a228672d 100644 --- a/workflows/reactiontime-arduino.svg +++ b/workflows/reactiontime-arduino.svg @@ -1,3 +1,21 @@ - + -]>Arduino \ No newline at end of file +]> + + + + + + + + + Arduino + + + + + + + + \ No newline at end of file diff --git a/workflows/reactiontime-measurement.svg b/workflows/reactiontime-measurement.svg index 8ae9a9ac..c418c48e 100644 --- a/workflows/reactiontime-measurement.svg +++ b/workflows/reactiontime-measurement.svg @@ -1,3 +1,66 @@ - + -]>RollingGraphCsvWriterZipAnalogInputAnalogInput \ No newline at end of file +]> + + + + + + + + + + + + + + + RollingGraph + + + + + + + + CsvWriter + + + + + + + Zip + + + + + + AnalogInput + + + + + + AnalogInput + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/reactiontime-stimulus.svg b/workflows/reactiontime-stimulus.svg index c2a9b14e..05906c8b 100644 --- a/workflows/reactiontime-stimulus.svg +++ b/workflows/reactiontime-stimulus.svg @@ -1,3 +1,83 @@ - + -]>RepeatDigitalOutputBooleanDelayDigitalOutputBooleanTimer \ No newline at end of file +]> + + + + + + + + + + + + + + Repeat + + + + + + DigitalOutput + + + + + + + + Boolean + + + + + Delay + + + + + + DigitalOutput + + + + + + + + Boolean + + + + + + Timer + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/reactiontime-triggerstimulus-inner.svg b/workflows/reactiontime-triggerstimulus-inner.svg index ab86b400..f5d92282 100644 --- a/workflows/reactiontime-triggerstimulus-inner.svg +++ b/workflows/reactiontime-triggerstimulus-inner.svg @@ -1,3 +1,74 @@ - + -]>DigitalOutputBooleanDelayDigitalOutputBooleanTimer \ No newline at end of file +]> + + + + + + + + + + + + + + DigitalOutput + + + + + + + + Boolean + + + + + Delay + + + + + + DigitalOutput + + + + + + + + Boolean + + + + + + Timer + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/reactiontime-triggerstimulus.svg b/workflows/reactiontime-triggerstimulus.svg index 07ce7cb5..dead1164 100644 --- a/workflows/reactiontime-triggerstimulus.svg +++ b/workflows/reactiontime-triggerstimulus.svg @@ -1,3 +1,45 @@ - + -]>SelectManyConditionDigitalInput \ No newline at end of file +]> + + + + + + + + + + + + + + SelectMany + + + + + + + Condition + + + + + + DigitalInput + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/reactiontime-triggervideo-inner.svg b/workflows/reactiontime-triggervideo-inner.svg index 0446d61e..cbc9f7b2 100644 --- a/workflows/reactiontime-triggervideo-inner.svg +++ b/workflows/reactiontime-triggervideo-inner.svg @@ -1,3 +1,52 @@ - + -]>WorkflowOutputVideoWriterSource1 \ No newline at end of file +]> + + + + + + + + + + + + + Workflow + + + Output + + + + + + + VideoWriter + + + + + + + + Source1 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/reactiontime-triggervideo.svg b/workflows/reactiontime-triggervideo.svg index 2078aeb6..3a47464d 100644 --- a/workflows/reactiontime-triggervideo.svg +++ b/workflows/reactiontime-triggervideo.svg @@ -1,3 +1,123 @@ - -]>SelectManyWindowTriggerDelayConditionVideoWriterDistinctUntilChangedCameraCaptureGreaterThanAnalogInput \ No newline at end of file + + +]> + + + + + + + + + + + + + + + + + + + + SelectMany + + + + + Window + + + Trigger + + + + + Delay + + + + + + + Condition + + + + + + + VideoWriter + + + + + DistinctUntil + + + Changed + + + + + + + Camera + + + Capture + + + + + + + GreaterThan + + + + + + AnalogInput + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/reactive-combinetimestamp-example.svg b/workflows/reactive-combinetimestamp-example.svg index 87b1d2f4..624ca5de 100644 --- a/workflows/reactive-combinetimestamp-example.svg +++ b/workflows/reactive-combinetimestamp-example.svg @@ -1,3 +1,92 @@ - -]>CombineTimestampZipMultiplyTimestampValueTimestampTimer \ No newline at end of file + + +]> + + + + + + + + + + + + + + + + Combine + + + Timestamp + + + + + + + Zip + + + + + + + Multiply + + + + + + + Timestamp + + + + + + + Value + + + + + + Timestamp + + + + + + Timer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/reactive-condition-example.svg b/workflows/reactive-condition-example.svg index 5553d70e..5848cff7 100644 --- a/workflows/reactive-condition-example.svg +++ b/workflows/reactive-condition-example.svg @@ -1,3 +1,32 @@ - -]>ConditionTimer \ No newline at end of file + + +]> + + + + + + + + + + + Condition + + + + + + Timer + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/reactive-eventloopscheduler-example.svg b/workflows/reactive-eventloopscheduler-example.svg index fb22fe63..8e864675 100644 --- a/workflows/reactive-eventloopscheduler-example.svg +++ b/workflows/reactive-eventloopscheduler-example.svg @@ -1,3 +1,45 @@ - + -]>ResourceSubjectEventLoopScheduler \ No newline at end of file +]> + + + + + + + + + + + + Resource + + + Subject + + + + + + EventLoop + + + Scheduler + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/synching-camera.svg b/workflows/synching-camera.svg index 2758a461..30334dab 100644 --- a/workflows/synching-camera.svg +++ b/workflows/synching-camera.svg @@ -1,3 +1,80 @@ - + -]>VideoWriterConcatWithLatestFromCameraCaptureCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + VideoWriter + + + + + Concat + + + + + WithLatest + + + From + + + + + + + Camera + + + Capture + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/synching-led.svg b/workflows/synching-led.svg index af5f86cb..d98c8946 100644 --- a/workflows/synching-led.svg +++ b/workflows/synching-led.svg @@ -1,3 +1,91 @@ - + -]>CsvWriterVal0AverageGrayscaleCropVideoWriterCameraCapture \ No newline at end of file +]> + + + + + + + + + + + + + + + + + CsvWriter + + + + + + + Val0 + + + + + Average + + + + + + Grayscale + + + + + + Crop + + + + + + + VideoWriter + + + + + + + Camera + + + Capture + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 899369de630a545d8ed8fc4bfecc19826a31ea16 Mon Sep 17 00:00:00 2001 From: glopesdev Date: Tue, 27 Feb 2024 08:31:54 +0000 Subject: [PATCH 4/8] Export logo with responsive theme --- logo.svg | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/logo.svg b/logo.svg index 6e5db5f9..079c2c63 100644 --- a/logo.svg +++ b/logo.svg @@ -73,6 +73,7 @@ + From b77751a4820e2d0ac9908fac0e4a1a3daa0d6ae9 Mon Sep 17 00:00:00 2001 From: glopesdev Date: Sun, 3 Mar 2024 10:54:25 +0000 Subject: [PATCH 5/8] Update copyright notices --- LICENSE-CODE | 2 +- NOTICE | 2 +- docfx.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/LICENSE-CODE b/LICENSE-CODE index fc8ddebc..1cead7aa 100644 --- a/LICENSE-CODE +++ b/LICENSE-CODE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2024 Bonsai Foundation CIC +Copyright (c) 2022-2024 Bonsai Foundation CIC and Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/NOTICE b/NOTICE index aa605616..2e480499 100644 --- a/NOTICE +++ b/NOTICE @@ -4,7 +4,7 @@ Attribution-ShareAlike 4.0 International license included in the LICENSE file. This repository also includes build automation and deployment software which is released under the following license: -Copyright (C) 2022 Gonçalo Lopes +Copyright (c) 2022-2024 Bonsai Foundation CIC and Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/docfx.json b/docfx.json index d5e57a0e..398cf60a 100644 --- a/docfx.json +++ b/docfx.json @@ -68,7 +68,7 @@ "globalMetadata": { "_enableSearch": true, "_enableNewTab": true, - "_appFooter": "© 2024 Bonsai Foundation and Contributors. Licensed under CC BY-SA 4.0. Made with docfx", + "_appFooter": "© 2024 Bonsai Foundation CIC and Contributors. Licensed under CC BY-SA 4.0. Made with docfx", "_gitContribute": { "repo": "https://github.com/bonsai-rx/docs", "branch": "main", From 3a6a4a20f23bb69aa79e730662a36ec0f0f189f1 Mon Sep 17 00:00:00 2001 From: glopesdev Date: Sun, 3 Mar 2024 22:36:08 +0000 Subject: [PATCH 6/8] Update docfx-tools --- docfx-tools | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docfx-tools b/docfx-tools index b751ba16..16491352 160000 --- a/docfx-tools +++ b/docfx-tools @@ -1 +1 @@ -Subproject commit b751ba16a2813245757da241202339ae5f0674a5 +Subproject commit 164913526b4294a9884df72812d25d9c48ff4214 From 987bcfaf71fe5f9bed3eab8b67cf46bae8a39d72 Mon Sep 17 00:00:00 2001 From: glopesdev Date: Mon, 4 Mar 2024 14:08:21 +0000 Subject: [PATCH 7/8] Remove span element from app footer --- docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docfx.json b/docfx.json index 398cf60a..d7bba8cf 100644 --- a/docfx.json +++ b/docfx.json @@ -68,7 +68,7 @@ "globalMetadata": { "_enableSearch": true, "_enableNewTab": true, - "_appFooter": "© 2024 Bonsai Foundation CIC and Contributors. Licensed under CC BY-SA 4.0. Made with docfx", + "_appFooter": "© 2024 Bonsai Foundation CIC and Contributors. Licensed under CC BY-SA 4.0. Made with docfx", "_gitContribute": { "repo": "https://github.com/bonsai-rx/docs", "branch": "main", From 12ba2d1f19910f860e63eda4148907cb4e270be8 Mon Sep 17 00:00:00 2001 From: glopesdev Date: Mon, 4 Mar 2024 14:08:40 +0000 Subject: [PATCH 8/8] Update action dependencies --- .github/workflows/build.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 108c1d79..87b1e587 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,32 +10,35 @@ jobs: build: runs-on: windows-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4.1.1 name: Checkout with: submodules: recursive - name: Setup MSBuild - uses: microsoft/setup-msbuild@v1 + uses: microsoft/setup-msbuild@v2 - name: Restore NuGet Packages run: msbuild -t:restore src\bonsai\Bonsai.sln - - name: Setup DocFX - uses: crazy-max/ghaction-chocolatey@v1 + - name: Setup .NET Core SDK + uses: actions/setup-dotnet@v4.0.0 with: - args: install docfx + dotnet-version: 7.x + + - name: Setup DocFX + run: dotnet tool restore - name: Build Documentation - run: docfx docfx.json + run: dotnet docfx docfx.json - name: Checkout gh-pages - uses: actions/checkout@v2 + uses: actions/checkout@v4.1.1 with: ref: gh-pages path: gh-pages - name: Publish to github pages - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v3.9.3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: _site