From f9ee9d0801f63bd2a9f578a16711789b869c7147 Mon Sep 17 00:00:00 2001 From: Lisa-Ann B Date: Fri, 16 Jan 2026 11:10:46 -0500 Subject: [PATCH 1/2] Add static search to docs - #71 --- .github/workflows/build-search.yaml | 57 + docs/404.html | 7 + docs/_includes/headers/_layout.html | 7 + docs/css/main.css | 4 +- docs/js/main.js | 322 +- docs/js/site-search-data.json | 5119 ++++++++++++++++++++++++++ gulpfile.js | 114 + package-lock.json | 33 +- package.json | 7 +- src/js/App.js | 30 +- src/js/FileMeta.js | 28 +- src/js/Search.js | 83 + src/js/ZIndex.js | 4 +- src/pug/components/layout/header.pug | 9 +- src/styles/components/_header.styl | 51 + src/styles/components/_table.styl | 3 + 16 files changed, 5744 insertions(+), 134 deletions(-) create mode 100644 .github/workflows/build-search.yaml create mode 100644 docs/js/site-search-data.json create mode 100644 src/js/Search.js create mode 100644 src/styles/components/_table.styl diff --git a/.github/workflows/build-search.yaml b/.github/workflows/build-search.yaml new file mode 100644 index 0000000..505ed30 --- /dev/null +++ b/.github/workflows/build-search.yaml @@ -0,0 +1,57 @@ +name: build-search-indices + +on: + pull_request: + types: [closed] + branches: + - main + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: write + pages: write + pull-requests: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + buildSearch: + runs-on: ubuntu-latest + if: ${{ ! contains(github.event.head_commit.message, 'Automate update') }} + steps: + - uses: actions/checkout@v4 + # Uses the private access token from above link + with: + fetch-depth: 0 + token: ${{ secrets.GH_SUBMODULE_SECRET }} + + - name: Restore timestamps + uses: chetan/git-restore-mtime-action@v1 + + - name: Pull latest changes + run: git pull origin main -X theirs + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install dependencies + run: npm ci + + - name: Build search + run: npm run search + + - name: Commit & push changes + run: | + git config --global user.email "actions@github.com" + git config --global user.name "GitHub Actions - build search index" + git status + git add . + git commit -m "Automate update site-search-data.json" + git push origin main \ No newline at end of file diff --git a/docs/404.html b/docs/404.html index e6d1bca..ae35c7e 100644 --- a/docs/404.html +++ b/docs/404.html @@ -36,6 +36,13 @@ diff --git a/docs/_includes/headers/_layout.html b/docs/_includes/headers/_layout.html index 5b8261e..e7bf387 100644 --- a/docs/_includes/headers/_layout.html +++ b/docs/_includes/headers/_layout.html @@ -5,6 +5,13 @@ \ No newline at end of file diff --git a/docs/css/main.css b/docs/css/main.css index 103905e..8b526d1 100644 --- a/docs/css/main.css +++ b/docs/css/main.css @@ -2,6 +2,6 @@ * hubmapdocs - * @version v0.1.0 * @link https://docs.hubmapconsortium.org/ - * @date Wed Nov 12 2025 11:00:22 GMT-0500 (Eastern Standard Time) + * @date Fri Jan 16 2026 10:59:12 GMT-0500 (Eastern Standard Time) */ -.h1{font-size:2.13rem;line-height:1.294117647058824}.h2{font-size:1.63rem;line-height:1.615384615384615}.h3{font-size:1.5rem;line-height:1.666666666666667}.h4{font-size:1.38rem;line-height:1.727272727272727}.p1{font-size:1.5rem;line-height:1.416666666666667}.p2{font-size:1.32rem;line-height:1.476190476190476}.p3{font-size:1.13rem;line-height:1.555555555555556}.p4{font-size:1rem;line-height:1.625}.p5{font-size:.88rem;line-height:1.714285714285714}.p6{font-size:.75rem;line-height:1.833333333333333}pre{box-shadow:0 0 10px rgba(0,0,0,0.1);color:#333;background-color:#fff;font-family:Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:14px;border-radius:2px;padding:10px;overflow:auto}code{background-color:#fcfcfc;color:#0f5b30}.clear{clear:both}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;line-height:24px;font-weight:340;background:#f2f2f2}html,body{height:100%}body{font-size:1rem;line-height:1.625;position:relative;line-height:1.5;text-size-adjust:none;font-family:Inter Variable,Helvetica,Arial,sans-serif}li{list-style-position:inside}a,a:visited{color:#2a6fb8;text-decoration:none;font-weight:bolder}a:hover{text-decoration:underline}.hide{display:none}details{margin-top:1em}ul ~ h1,ul ~ h2,ul ~ h3,ul ~ h4,ul ~ h5,ul ~ h6,table ~ h2,table ~ h3{margin-top:1rem}[tabindex="0"]:active,[tabindex="0"]:focus,[tabindex="1"]:active,[tabindex="1"]:focus,a:active,a:focus,button:active,button:focus,input:active,input:focus,select:active,select:focus,textarea:active,textarea:focus{outline:1px dotted #2a6fb8}table{width:auto;box-shadow:0 0 10px rgba(0,0,0,0.1);border-collapse:collapse;background:#fff}table tr{border:1px solid #ddd}table td,table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6;background-color:#fff !important}table th{font-weight:bold}.txt--highlight{background-color:#7fffd4;padding:.2em .3em}.c-documentation ul,.c-documentation ol{margin:0 0 15px 30px}.c-documentation h3,.c-documentation h4,.c-documentation h5{margin-top:1em}.c-documentation summary{background-color:#265a92;color:#fff;padding:7px;margin-top:5px;margin-bottom:5px}.c-documentation--dsg ol{box-sizing:border-box;list-style:decimal}.c-documentation--dsg li{list-style-position:outside}.c-breadcrumbs{margin-bottom:2em}@media (max-width:1024px){.c-breadcrumbs{margin-top:60px}}.c-breadcrumbs li{position:relative;list-style:none;display:inline-block;margin:0 10px}.c-breadcrumbs li.is-active a{color:#1e4879}.c-breadcrumbs li:last-child:after{content:none}.c-breadcrumbs li:first-child{margin-left:0}.c-breadcrumbs li:after{font-family:'FontAwesome';position:absolute;font-size:.57rem;content:'\f054';display:inline-block;margin-left:5px;top:5px}.c-code{box-shadow:0 0 10px rgba(0,0,0,0.1);color:#333;background-color:#fff;font-family:Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:14px;border-radius:2px;padding:10px;overflow:auto}.c-container{max-width:1000px;margin:auto;color:#333;margin:40px auto;margin-bottom:6em;min-height:calc(100vh - 100px)}@media (max-width:1024px){.c-container{padding:0 1em}}@media (max-width:1024px){.c-container{padding:0 2em}}.c-container section{margin:1em 0}.c-container p{margin:1em 0}.c-container .c-documentation--dsg img{width:inherit}@media (max-width:767px){.c-container img:not(.w-fixed){width:100% !important}}.c-fileMeta{font-size:.75rem;line-height:1.833333333333333;color:#807e7e;margin:1em 0}.c-fileMeta__label{display:none}.c-fileMeta__label.is-active{display:inline-block}.c-footer{position:inherit;color:#6c757d}.c-footer__main{font-weight:bold;text-align:right;padding:30px;border-top:solid 1px #ccc;background-color:#444a65;color:#fff}.c-footer__wrap{max-width:1000px;margin:auto}@media (max-width:1024px){.c-footer__wrap{padding:0 1em}}.c-footer__meta{max-width:1000px;margin:auto}@media (max-width:1024px){.c-footer__meta{padding:0 1em}}.c-header{position:relative;background-color:#444a65;border:none;padding-top:6px}@media (max-width:1024px){.c-header .lg{display:none}}@media (min-width:992px){.c-header{height:90px}}@media (max-width:1024px){.c-header{padding:15px 0}}.c-header > .c-header__main{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.c-header__sm{margin-left:60px;color:#fff}@media (min-width:992px){.c-header__sm{display:none}}.c-header__main{width:90%;margin:auto}@media (min-width:992px){.c-header__main{position:relative;max-width:1000px;margin:auto}}@media (min-width:992px) and (max-width:1024px){.c-header__main{padding:0 1em}}@media (max-width:1024px){.c-header__menu{margin-top:20px}}@media (min-width:992px){.c-header__menu{position:relative;margin-left:20%}}.c-header__logo{margin-right:50px;padding-top:0}.c-header__logo img{position:absolute;height:40px;top:-5px}@media (max-width:1024px){.c-header__logo img{top:15px}}.c-header li{font-size:1.5rem;line-height:1.416666666666667;color:#fff}@media (max-width:1024px){.c-header li{font-size:1.13rem;line-height:1.555555555555556}}.c-header li.h2{font-size:1.63rem;font-weight:bold}.c-header li.extra--right{position:absolute;right:5%;font-size:1rem}.c-header li a{color:#fff;text-decoration:none}.c-header li a:hover{color:#fff}@media (min-width:992px){.c-header li{font-size:1.5rem;line-height:1.416666666666667;list-style:none;display:inline-block;margin-left:15px;margin-right:15px;color:#fff}.c-header li a:hover{text-decoration:underline}.c-header li:first-child{margin-left:0}}.c-sidebar{position:relative}.c-sidebar .has-collapser{position:relative}.c-sidebar .has-collapser.is-open:after{content:'\f147'}.c-sidebar .has-collapser > ul{display:none}.c-sidebar .has-collapser > ul.is-visible{display:block}.c-sidebar .has-collapser:after{font-family:'FontAwesome';position:absolute;content:'\f196';width:24px;height:24px;top:15px;right:0;cursor:pointer}@media (min-width:1025px) and (max-width:1700px){.c-sidebar ~ .c-container{max-width:60%;margin-left:30%}}.c-sidebar.is-active .c-sidebar__main{position:fixed}.c-sidebar.is-static .c-sidebar__main{position:relative}.c-sidebar__wrap{position:absolute;width:20%}@media (max-width:1700px){.c-sidebar__wrap{width:25%}}@media (max-width:1024px){.c-sidebar__wrap{position:relative}}@media (max-width:1025px){.c-sidebar__wrap{width:100%}}.c-sidebar__main{position:relative;top:30px;padding-left:30px;padding-right:30px;height:80vh}@media (max-width:1024px){.c-sidebar__main{height:auto}}.c-sidebar__main > h2{margin-bottom:.8em}.c-sidebar__list{background:#fff;overflow-y:auto;border-bottom:solid 1px #eee}.c-sidebar__list > ul{border:solid 1px #eee;padding:1em}.c-sidebar__list > ul > li:first-child{border-top:none}.c-sidebar__list li{list-style:none;padding:.5em 0;border-top:solid 1px #eee}.c-sidebar__list li.has-children{font-size:1rem;line-height:1.625}.c-sidebar__list li.c-sidebar__level--2 a{font-weight:bold}.c-sidebar__list li.c-sidebar__level--3 a{padding-left:.8em;font-weight:normal}.c-sidebar__list ul li > ul a{font-size:.88rem;line-height:1.714285714285714;color:#333;padding-left:.4em}.c-sidebar__list ul li > ul a:before{font-family:'FontAwesome';content:'-';display:inline-block;margin-right:.5em}.c-sidebar__list ul.c-sidebar__level--1 li{padding-bottom:.2em}.c-sidebar__list ul.has-parent{margin-top:.5em}smuted,smuted a{font-size:13px;color:#6c757d !important}extlnk{display:inline-flex !important;align-items:center}extlnk:after{font-family:'FontAwesome';content:'\f08e';margin-left:.15rem;font-size:12px;color:#2a6fb8} \ No newline at end of file +.h1{font-size:2.13rem;line-height:1.294117647058824}.h2{font-size:1.63rem;line-height:1.615384615384615}.h3{font-size:1.5rem;line-height:1.666666666666667}.h4{font-size:1.38rem;line-height:1.727272727272727}.p1{font-size:1.5rem;line-height:1.416666666666667}.p2{font-size:1.32rem;line-height:1.476190476190476}.p3{font-size:1.13rem;line-height:1.555555555555556}.p4{font-size:1rem;line-height:1.625}.p5{font-size:.88rem;line-height:1.714285714285714}.p6{font-size:.75rem;line-height:1.833333333333333}pre{box-shadow:0 0 10px rgba(0,0,0,0.1);color:#333;background-color:#fff;font-family:Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:14px;border-radius:2px;padding:10px;overflow:auto}code{background-color:#fcfcfc;color:#0f5b30}.clear{clear:both}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;line-height:24px;font-weight:340;background:#f2f2f2}html,body{height:100%}body{font-size:1rem;line-height:1.625;position:relative;line-height:1.5;text-size-adjust:none;font-family:Inter Variable,Helvetica,Arial,sans-serif}li{list-style-position:inside}a,a:visited{color:#2a6fb8;text-decoration:none;font-weight:bolder}a:hover{text-decoration:underline}.hide{display:none}details{margin-top:1em}ul ~ h1,ul ~ h2,ul ~ h3,ul ~ h4,ul ~ h5,ul ~ h6,table ~ h2,table ~ h3{margin-top:1rem}[tabindex="0"]:active,[tabindex="0"]:focus,[tabindex="1"]:active,[tabindex="1"]:focus,a:active,a:focus,button:active,button:focus,input:active,input:focus,select:active,select:focus,textarea:active,textarea:focus{outline:1px dotted #2a6fb8}table{width:auto;box-shadow:0 0 10px rgba(0,0,0,0.1);border-collapse:collapse;background:#fff}table tr{border:1px solid #ddd}table td,table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6;background-color:#fff !important}table th{font-weight:bold}.txt--highlight{background-color:#7fffd4;padding:.2em .3em}.c-documentation ul,.c-documentation ol{margin:0 0 15px 30px}.c-documentation h3,.c-documentation h4,.c-documentation h5{margin-top:1em}.c-documentation summary{background-color:#265a92;color:#fff;padding:7px;margin-top:5px;margin-bottom:5px}.c-documentation--dsg ol{box-sizing:border-box;list-style:decimal}.c-documentation--dsg li{list-style-position:outside}.c-breadcrumbs{margin-bottom:2em}@media (max-width:1024px){.c-breadcrumbs{margin-top:60px}}.c-breadcrumbs li{position:relative;list-style:none;display:inline-block;margin:0 10px}.c-breadcrumbs li.is-active a{color:#1e4879}.c-breadcrumbs li:last-child:after{content:none}.c-breadcrumbs li:first-child{margin-left:0}.c-breadcrumbs li:after{font-family:'FontAwesome';position:absolute;font-size:.57rem;content:'\f054';display:inline-block;margin-left:5px;top:5px}.c-code{box-shadow:0 0 10px rgba(0,0,0,0.1);color:#333;background-color:#fff;font-family:Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:14px;border-radius:2px;padding:10px;overflow:auto}.c-container{max-width:1000px;margin:auto;color:#333;margin:40px auto;margin-bottom:6em;min-height:calc(100vh - 100px)}@media (max-width:1024px){.c-container{padding:0 1em}}@media (max-width:1024px){.c-container{padding:0 2em}}.c-container section{margin:1em 0}.c-container p{margin:1em 0}.c-container .c-documentation--dsg img{width:inherit}@media (max-width:767px){.c-container img:not(.w-fixed){width:100% !important}}.c-fileMeta{font-size:.75rem;line-height:1.833333333333333;color:#807e7e;margin:1em 0}.c-fileMeta__label{display:none}.c-fileMeta__label.is-active{display:inline-block}.c-footer{position:inherit;color:#6c757d}.c-footer__main{font-weight:bold;text-align:right;padding:30px;border-top:solid 1px #ccc;background-color:#444a65;color:#fff}.c-footer__wrap{max-width:1000px;margin:auto}@media (max-width:1024px){.c-footer__wrap{padding:0 1em}}.c-footer__meta{max-width:1000px;margin:auto}@media (max-width:1024px){.c-footer__meta{padding:0 1em}}.c-header{position:relative;background-color:#444a65;border:none;padding-top:6px}@media (max-width:1024px){.c-header .lg{display:none}}@media (min-width:992px){.c-header{height:90px}}@media (max-width:1024px){.c-header{padding:15px 0}}.c-header > .c-header__main{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.c-header__sm{margin-left:60px;color:#fff}@media (min-width:992px){.c-header__sm{display:none}}.c-header__main{width:90%;margin:auto}@media (min-width:992px){.c-header__main{position:relative;max-width:1000px;margin:auto}}@media (min-width:992px) and (max-width:1024px){.c-header__main{padding:0 1em}}@media (max-width:1024px){.c-header__menu{margin-top:20px}}@media (min-width:992px){.c-header__menu{position:relative;margin-left:20%}}.c-header__logo{margin-right:50px;padding-top:0}.c-header__logo img{position:absolute;height:40px;top:-5px}@media (max-width:1024px){.c-header__logo img{top:15px}}@media (min-width:1025px){.c-header__search{position:absolute;right:-50px}}.c-header__search input{padding:7px 10px;width:auto;transition:all .5s ease;opacity:1}.c-header__search input.is-hidden{width:0;opacity:0;border:0;padding:0}.c-header__search .list-group{position:absolute;z-index:1000;background-color:#fff;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;width:300px;max-height:400px;overflow-y:auto;overflow-x:hidden;border-radius:3px;width:0;opacity:0;transition:.5s ease opacity}.c-header__search .list-group.is-active{border:solid 1px #eee;width:300px;opacity:1}.c-header__search .list-group li{margin:0;border-bottom:solid 1px #eee}.c-header__search .list-group a,.c-header__search .list-group span{font-weight:normal;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:#333;padding:5px 10px;display:block}.c-header__search .list-group a:hover,.c-header__search .list-group span:hover{color:#2a6fb8}.c-header li{font-size:1.5rem;line-height:1.416666666666667;color:#fff}@media (max-width:1024px){.c-header li{font-size:1.13rem;line-height:1.555555555555556}}.c-header li.h2{font-size:1.63rem;font-weight:bold}.c-header li.extra--right{position:absolute;right:5%;font-size:1rem;margin-top:5px}.c-header li a{color:#fff;text-decoration:none}.c-header li a:hover{color:#fff}@media (min-width:992px){.c-header li{font-size:1.5rem;line-height:1.416666666666667;list-style:none;display:inline-block;margin-left:15px;margin-right:15px;color:#fff}.c-header li a:hover{text-decoration:underline}.c-header li:first-child{margin-left:0}}.c-sidebar{position:relative}.c-sidebar .has-collapser{position:relative}.c-sidebar .has-collapser.is-open:after{content:'\f147'}.c-sidebar .has-collapser > ul{display:none}.c-sidebar .has-collapser > ul.is-visible{display:block}.c-sidebar .has-collapser:after{font-family:'FontAwesome';position:absolute;content:'\f196';width:24px;height:24px;top:15px;right:0;cursor:pointer}@media (min-width:1025px) and (max-width:1700px){.c-sidebar ~ .c-container{max-width:60%;margin-left:30%}}.c-sidebar.is-active .c-sidebar__main{position:fixed}.c-sidebar.is-static .c-sidebar__main{position:relative}.c-sidebar__wrap{position:absolute;width:20%}@media (max-width:1700px){.c-sidebar__wrap{width:25%}}@media (max-width:1024px){.c-sidebar__wrap{position:relative}}@media (max-width:1025px){.c-sidebar__wrap{width:100%}}.c-sidebar__main{position:relative;top:30px;padding-left:30px;padding-right:30px;height:80vh}@media (max-width:1024px){.c-sidebar__main{height:auto}}.c-sidebar__main > h2{margin-bottom:.8em}.c-sidebar__list{background:#fff;overflow-y:auto;border-bottom:solid 1px #eee}.c-sidebar__list > ul{border:solid 1px #eee;padding:1em}.c-sidebar__list > ul > li:first-child{border-top:none}.c-sidebar__list li{list-style:none;padding:.5em 0;border-top:solid 1px #eee}.c-sidebar__list li.has-children{font-size:1rem;line-height:1.625}.c-sidebar__list li.c-sidebar__level--2 a{font-weight:bold}.c-sidebar__list li.c-sidebar__level--3 a{padding-left:.8em;font-weight:normal}.c-sidebar__list ul li > ul a{font-size:.88rem;line-height:1.714285714285714;color:#333;padding-left:.4em}.c-sidebar__list ul li > ul a:before{font-family:'FontAwesome';content:'-';display:inline-block;margin-right:.5em}.c-sidebar__list ul.c-sidebar__level--1 li{padding-bottom:.2em}.c-sidebar__list ul.has-parent{margin-top:.5em}.c-table--scrollable{overflow:auto scroll}smuted,smuted a{font-size:13px;color:#6c757d !important}extlnk{display:inline-flex !important;align-items:center}extlnk:after{font-family:'FontAwesome';content:'\f08e';margin-left:.15rem;font-size:12px;color:#2a6fb8} \ No newline at end of file diff --git a/docs/js/main.js b/docs/js/main.js index f83e755..36137de 100644 --- a/docs/js/main.js +++ b/docs/js/main.js @@ -2,9 +2,12 @@ * hubmapdocs - * @version v0.1.0 * @link https://docs.hubmapconsortium.org/ - * @date Fri Nov 07 2025 10:36:09 GMT-0500 (Eastern Standard Time) + * @date Fri Jan 16 2026 11:09:38 GMT-0500 (Eastern Standard Time) */ -var _this9 = this; +var _this11 = this; +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } @@ -15,9 +18,6 @@ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } @@ -9259,21 +9259,6 @@ var App = /*#__PURE__*/function () { value: function _t(msg) { return this.msgs[msg] || msg; } - }, { - key: "autoBlobDownloader", - value: function autoBlobDownloader(data, filename) { - var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'text/plain'; - var a = document.createElement('a'); - var url = window.URL.createObjectURL(new Blob(data, { - type: type - })); - a.href = url; - a.download = filename; - document.body.append(a); - a.click(); - a.remove(); - window.URL.revokeObjectURL(url); - } }, { key: "log", value: function log(title, msg) { @@ -9309,18 +9294,32 @@ var App = /*#__PURE__*/function () { return res.json(); case 8: window.apps.locale = _context.sent; - _context.next = 14; - break; + _context.next = 11; + return Rest.get('/js/site-search-data.json'); case 11: - _context.prev = 11; + res = _context.sent; + if (!res.ok) { + _context.next = 17; + break; + } + _context.next = 15; + return res.json(); + case 15: + window.apps.searchData = _context.sent; + window.apps.searchData.pop(); + case 17: + _context.next = 22; + break; + case 19: + _context.prev = 19; _context.t0 = _context["catch"](0); console.error(_context.t0); - case 14: + case 22: case "end": return _context.stop(); } } - }, _callee, null, [[0, 11]]); + }, _callee, null, [[0, 19]]); })); function loadLanguageFile() { return _loadLanguageFile.apply(this, arguments); @@ -9372,27 +9371,11 @@ var App = /*#__PURE__*/function () { }, { key: "applyStyles", value: function applyStyles(args) { - var css = ''; - $('img').each(function (i) { - var width = $(this).attr('width'); - if (width && parseInt(width) > 0 && !$(this).hasClass('w-fixed')) { - var cls = "imgw--".concat(i); - $(this).addClass("".concat(cls)); - width = parseInt(width).toString() === width ? width + 'px' : width; - css += ".".concat(cls, " {max-width: ").concat(width, ";}"); + $('table').each(function (i) { + if (!$(this).parent().hasClass('c-table--scrollable')) { + $(this).wrap('
'); } }); - if (css.length) { - $('body').append("")); - } - new CodeCopy(document, _objectSpread({ - app: 'codeCopy' - }, args)); - $('pre').each(function (i) { - new Pre(this, _objectSpread({ - app: '
'
-        }, args));
-      });
     }
   }, {
     key: "applyTheme",
@@ -9491,10 +9474,18 @@ var FileMeta = /*#__PURE__*/function (_App2) {
     return _this3;
   }
   _createClass(FileMeta, [{
+    key: "toDate",
+    value: function toDate(lastMod) {
+      var date = new Date(lastMod);
+      var formattedDate = date.toLocaleDateString('en-US');
+      var formattedTime = date.toLocaleTimeString('en-US');
+      this.$.date.html(formattedDate + ' @ ' + formattedTime);
+    }
+  }, {
     key: "addDate",
     value: function () {
       var _addDate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
-        var lastMod, path, paths, _i, _paths, p, r, date, formattedDate, formattedTime;
+        var lastMod, path, p, _iterator, _step, d, paths, _i, _paths, _p, r;
         return _regeneratorRuntime().wrap(function _callee3$(_context3) {
           while (1) {
             switch (_context3.prev = _context3.next) {
@@ -9511,33 +9502,64 @@ var FileMeta = /*#__PURE__*/function (_App2) {
                 }
                 return _context3.abrupt("return");
               case 6:
+                // Find file stat from search indicies
+                p = path;
+                _iterator = _createForOfIteratorHelper(window.apps.searchData);
+                _context3.prev = 8;
+                _iterator.s();
+              case 10:
+                if ((_step = _iterator.n()).done) {
+                  _context3.next = 18;
+                  break;
+                }
+                d = _step.value;
+                if (!(p.toLowerCase() == d.path.toLowerCase() && d.mod.length)) {
+                  _context3.next = 16;
+                  break;
+                }
+                this.toDate(d.mod);
+                this.$.label.addClass(this.classNames.active);
+                return _context3.abrupt("return");
+              case 16:
+                _context3.next = 10;
+                break;
+              case 18:
+                _context3.next = 23;
+                break;
+              case 20:
+                _context3.prev = 20;
+                _context3.t0 = _context3["catch"](8);
+                _iterator.e(_context3.t0);
+              case 23:
+                _context3.prev = 23;
+                _iterator.f();
+                return _context3.finish(23);
+              case 26:
+                // If not found, use the meta from the server
                 paths = [];
                 if (path.split('.').pop() === path) {
                   paths = ["".concat(path, ".html"), "".concat(path, ".md")];
                 }
                 _i = 0, _paths = paths;
-              case 9:
+              case 29:
                 if (!(_i < _paths.length)) {
-                  _context3.next = 20;
+                  _context3.next = 40;
                   break;
                 }
-                p = _paths[_i];
+                _p = _paths[_i];
                 if (!(this.$.date.html() && this.$.date.html().length)) {
-                  _context3.next = 13;
+                  _context3.next = 33;
                   break;
                 }
                 return _context3.abrupt("return");
-              case 13:
-                _context3.next = 15;
-                return Rest.get(p, 'text/plain');
-              case 15:
+              case 33:
+                _context3.next = 35;
+                return Rest.get(_p, 'text/plain');
+              case 35:
                 r = _context3.sent;
                 if (r.ok) {
                   lastMod = r.headers.get('last-modified');
-                  date = new Date(lastMod);
-                  formattedDate = date.toLocaleDateString('en-US');
-                  formattedTime = date.toLocaleTimeString('en-US');
-                  this.$.date.html(formattedDate + ' @ ' + formattedTime);
+                  this.toDate(lastMod);
                   this.$.label.addClass(this.classNames.active);
                 } else {
                   this.$.label.removeClass(this.classNames.active);
@@ -9545,25 +9567,25 @@ var FileMeta = /*#__PURE__*/function (_App2) {
                     error: true
                   });
                 }
-              case 17:
+              case 37:
                 _i++;
-                _context3.next = 9;
+                _context3.next = 29;
                 break;
-              case 20:
-                _context3.next = 25;
+              case 40:
+                _context3.next = 45;
                 break;
-              case 22:
-                _context3.prev = 22;
-                _context3.t0 = _context3["catch"](1);
-                App.log(this.app, _context3.t0, {
+              case 42:
+                _context3.prev = 42;
+                _context3.t1 = _context3["catch"](1);
+                App.log(this.app, _context3.t1, {
                   error: true
                 });
-              case 25:
+              case 45:
               case "end":
                 return _context3.stop();
             }
           }
-        }, _callee3, this, [[1, 22]]);
+        }, _callee3, this, [[1, 42], [8, 20, 23, 26]]);
       }));
       function addDate() {
         return _addDate.apply(this, arguments);
@@ -9778,31 +9800,127 @@ var Rest = /*#__PURE__*/function () {
   }]);
   return Rest;
 }();
-var Sidebar = /*#__PURE__*/function (_App5) {
-  _inherits(Sidebar, _App5);
-  var _super5 = _createSuper(Sidebar);
-  function Sidebar(el, args) {
+var Search = /*#__PURE__*/function (_App5) {
+  _inherits(Search, _App5);
+  var _super5 = _createSuper(Search);
+  function Search(el, args) {
     var _this6;
-    _classCallCheck(this, Sidebar);
+    _classCallCheck(this, Search);
     _this6 = _super5.call(this, el, args);
+    _this6.data = [];
     _this6.$ = {
-      wrap: _this6.el.find('.js-sidebar__wrap'),
-      main: _this6.el.find('.js-sidebar__main'),
-      list: _this6.el.find('.js-sidebar__list'),
-      hs: $('.c-documentation').find('h1, h2, h3, h4, h5, h6')
+      btn: _this6.el.find('button'),
+      io: _this6.el.find('input'),
+      list: _this6.el.find('.list-group')
     };
-    _this6.sizeSideBar();
-    _this6.pathBase = '/';
-    _this6.classNames.root = 'is-root';
-    _this6.classNames["static"] = 'is-static';
-    _this6.headerHeight = 90;
+    _this6.getData();
     _this6.events();
-    _this6.determineContentBuilder();
-    _this6.sizeSideBarHeight();
-    _this6.togglePositioning();
-    _this6.addPageId();
     return _this6;
   }
+  _createClass(Search, [{
+    key: "getData",
+    value: function getData() {
+      this.data = window.apps.searchData;
+    }
+  }, {
+    key: "searchSite",
+    value: function searchSite(val) {
+      var found = [];
+      var dict = {};
+      var _iterator2 = _createForOfIteratorHelper(this.data),
+        _step2;
+      try {
+        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
+          var _d = _step2.value;
+          if ((_d === null || _d === void 0 ? void 0 : _d.title.toLowerCase().indexOf(val.toLowerCase())) > -1 && !dict[_d.path]) {
+            found.push(_d);
+            dict[_d.path] = true;
+          }
+        }
+      } catch (err) {
+        _iterator2.e(err);
+      } finally {
+        _iterator2.f();
+      }
+      var html = '';
+      for (var _i2 = 0, _found = found; _i2 < _found.length; _i2++) {
+        var d = _found[_i2];
+        html += "
  • ").concat(d.title, " ").concat(d.path, "
  • "); + } + this.$.list.addClass('is-active'); + if (!found.length) { + html = '
  • No results
  • '; + } + this.$.list.html(html); + } + }, { + key: "clearResults", + value: function clearResults() { + this.$.list.removeClass('is-active'); + this.$.list.html(''); + } + }, { + key: "closeSearch", + value: function closeSearch() { + this.$.io.val(''); + this.clearResults(); + this.$.io.addClass('is-hidden'); + } + }, { + key: "events", + value: function events() { + var _this7 = this; + this.$.btn.on('click', function (e) { + e.preventDefault(); + _this7.clearResults(); + if (_this7.$.io.val().length && !_this7.$.io.hasClass('is-hidden')) { + _this7.searchSite(_this7.$.io.val()); + } else { + _this7.$.io.val(''); + _this7.$.io.toggleClass('is-hidden'); + if (!_this7.$.io.hasClass('is-hidden')) { + _this7.$.io.focus(); + } + } + }.bind(this)); + $(window).on('keydown', function (e) { + if (_this7.isEsc(e)) { + _this7.closeSearch(); + } + }.bind(this)); + $('[role="main"]').on('click', function (e) { + e.stopPropagation(); + _this7.closeSearch(); + }.bind(this)); + } + }]); + return Search; +}(App); +var Sidebar = /*#__PURE__*/function (_App6) { + _inherits(Sidebar, _App6); + var _super6 = _createSuper(Sidebar); + function Sidebar(el, args) { + var _this8; + _classCallCheck(this, Sidebar); + _this8 = _super6.call(this, el, args); + _this8.$ = { + wrap: _this8.el.find('.js-sidebar__wrap'), + main: _this8.el.find('.js-sidebar__main'), + list: _this8.el.find('.js-sidebar__list'), + hs: $('.c-documentation').find('h1, h2, h3, h4, h5, h6') + }; + _this8.sizeSideBar(); + _this8.pathBase = '/'; + _this8.classNames.root = 'is-root'; + _this8.classNames["static"] = 'is-static'; + _this8.headerHeight = 90; + _this8.events(); + _this8.determineContentBuilder(); + _this8.sizeSideBarHeight(); + _this8.togglePositioning(); + _this8.addPageId(); + return _this8; + } _createClass(Sidebar, [{ key: "addPageId", value: function addPageId() { @@ -9836,18 +9954,18 @@ var Sidebar = /*#__PURE__*/function (_App5) { }, { key: "events", value: function events() { - var _this7 = this; + var _this9 = this; $(document).on('scroll', function (e) { var st = $(document).scrollTop(); - if (st > _this7.headerHeight && !_this7.isMobile()) { - _this7.el.addClass(_this7.classNames.active); + if (st > _this9.headerHeight && !_this9.isMobile()) { + _this9.el.addClass(_this9.classNames.active); } else { - _this7.el.removeClass(_this7.classNames.active); + _this9.el.removeClass(_this9.classNames.active); } }.bind(this)); $(window).on('resize', function (e) { - _this7.sizeSideBar(); - _this7.togglePositioning(); + _this9.sizeSideBar(); + _this9.togglePositioning(); }.bind(this)); $('body').on('click', '.has-collapser', function (e) { e.stopPropagation(); @@ -9880,7 +9998,7 @@ var Sidebar = /*#__PURE__*/function (_App5) { }, { key: "buildTableOfContents", value: function buildTableOfContents() { - var _this8 = this; + var _this10 = this; var rootChildren = []; var root = { tag: 'h0', @@ -9895,7 +10013,7 @@ var Sidebar = /*#__PURE__*/function (_App5) { var n1 = Number(node[1]); var n2 = Number(top.tag[1]); var label = $(el).text(); - var id = $(el).attr('id') || _this8.toId(label); + var id = $(el).attr('id') || _this10.toId(label); var pack = { tag: node, id: id, @@ -9973,17 +10091,17 @@ var Sidebar = /*#__PURE__*/function (_App5) { html += "
  • ").concat(name, ""); if (this.hasChildren(n)) { html += "
      "); - var _iterator = _createForOfIteratorHelper(this.getChildren(n)), - _step; + var _iterator3 = _createForOfIteratorHelper(this.getChildren(n)), + _step3; try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var c = _step.value; + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var c = _step3.value; html = this.getList(c, html, level + 1); } } catch (err) { - _iterator.e(err); + _iterator3.e(err); } finally { - _iterator.f(); + _iterator3.f(); } html += "
    "; } @@ -10012,10 +10130,12 @@ function ZIndex(source) { breadcrumbs: Breadcrumbs, footer: Footer, fileMeta: FileMeta, - gtm: GTM + gtm: GTM, + search: Search }; args = args || window.apps.init; try { + App.applyStyles(args); var _loop = function _loop(app) { document.querySelectorAll("[class*='js-app--".concat(app, "'], [data-js-").concat(app, "]")).forEach(function (el) { new apps[app](el, _objectSpread({ @@ -10039,5 +10159,5 @@ window.addEventListener('load', function (event) { App.loadThemeConfig().then(function () { ZIndex('init'); }); - }.bind(_this9)); + }.bind(_this11)); }); \ No newline at end of file diff --git a/docs/js/site-search-data.json b/docs/js/site-search-data.json new file mode 100644 index 0000000..edf9741 --- /dev/null +++ b/docs/js/site-search-data.json @@ -0,0 +1,5119 @@ +[{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section10" + },{ + "title": "Section 10 - Data Processing", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section10" + },{ + "title": "Ingestion Statuses", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section10" + },{ + "title": "Dataset Statuses", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section10" + },{ + "title": "Data Upload Flow Diagram", + "mod": "", + "tag": "h4", + "tagId": "", + "path": "/data-submission/Section10" + },{ + "title": "Dataset Flow Diagram", + "mod": "", + "tag": "h4", + "tagId": "", + "path": "/data-submission/Section10" + },{ + "title": "Donor Bulk Registration", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/bulk-registration/donor-bulk-reg" + },{ + "title": "layout: page", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/bulk-registration/donor-bulk-reg" + },{ + "title": "Donor Registration Fields", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/bulk-registration/donor-bulk-reg" + },{ + "title": "Donor metadata submission", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/bulk-registration/donor-bulk-reg" + },{ + "title": "HuBMAP RNAseq", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "layout: page", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Overview", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Description", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Definitions", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "HuBMAP RNA-Seq Data States", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "HuBMAP Metadata", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "HuBMAP Single-cell Sequence Raw File Structure", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "HuBMAP QA/QC of raw (state0) data files", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "For Additional Help", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Processing", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Last Updated 6/23/2020", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Bulk RNAseq", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "10x Genomics single cell RNASeq", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "SNARE-Seq", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "sci-RNASeq", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Definition of Metadata Levels", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Single Cell - specific Metadata Fields", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Bulk RNA seq - specific Metadata Fields", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Definition", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "GC content: Percentage of bases that are either guanine (G) or cytosine (C)", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "K-mer overrepresentation", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Library-level Alignment QC", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Uniquely mapping % –", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Duplicated reads % -", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "Post-alignment processing QC:", + "mod": "Wed Apr 27 10:55:32 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/rnaseq" + },{ + "title": "layout: page", + "mod": "Thu Jun 27 14:35:07 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/clt/install-hubmap-clt" + },{ + "title": "Installing and Getting Started with the HuBMAP Command Line Transfer", + "mod": "Thu Jun 27 14:35:07 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/clt/install-hubmap-clt" + },{ + "title": "Globus Prerequisites", + "mod": "Thu Jun 27 14:35:07 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/clt/install-hubmap-clt" + },{ + "title": "IMPORTANT NOTE ABOUT GLOBUS CONNECT PERSONAL", + "mod": "Thu Jun 27 14:35:07 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/clt/install-hubmap-clt" + },{ + "title": "Installing the HuBMAP CLT", + "mod": "Thu Jun 27 14:35:07 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/clt/install-hubmap-clt" + },{ + "title": "Using the HuBMAP CLT", + "mod": "Thu Jun 27 14:35:07 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/clt/install-hubmap-clt" + },{ + "title": "MERFISH", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/MERFISH" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MERFISH" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MERFISH" + },{ + "title": "IMC-2D", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/IMC" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/IMC" + },{ + "title": "2D IMC Version 2 (Latest)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/IMC" + },{ + "title": "2D IMC Version 1", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/IMC" + },{ + "title": "2D IMC Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/IMC" + },{ + "title": "3D IMC Version 1 (no longer accepting data)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/IMC" + },{ + "title": "3D IMC Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/IMC" + },{ + "title": "Seq-Scope", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/Seq-Scope" + },{ + "title": "layout: page", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Seq-Scope" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Seq-Scope" + },{ + "title": "Auto-fluorescence", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/AutoFluorescence" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/AutoFluorescence" + },{ + "title": "Version 2 (Latest)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/AutoFluorescence" + },{ + "title": "Version 1", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/AutoFluorescence" + },{ + "title": "Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/AutoFluorescence" + },{ + "title": "HuBMAP Light Sheet Fluorescence Microscopy (UF-TMC)", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "layout: page", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "Overview:", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "Description:", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "Defintions:", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "HuBMAP Lightsheet Data States (Levels):", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "Metadata:", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "LSFM General File Strcuture:", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "LSFM Data Processing by the HIVE", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "For Additional Help:", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "Last Updated: 1/26/2021", + "mod": "Wed Mar 30 13:00:54 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/lightsheet" + },{ + "title": "seqFISH", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/seqFISH" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/seqFISH" + },{ + "title": "Version 1 (no longer accepting data)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/seqFISH" + },{ + "title": "Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/seqFISH" + },{ + "title": "Visium-(with-probes)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/VisiumWithProbes" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/VisiumWithProbes" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/VisiumWithProbes" + },{ + "title": "Visium-(no-probes)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/VisiumNoProbes" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/VisiumNoProbes" + },{ + "title": "Version 3", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/VisiumNoProbes" + },{ + "title": "Version 2", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/VisiumNoProbes" + },{ + "title": "SnareSeq2", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/SnareSeq2" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/SnareSeq2" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/SnareSeq2" + },{ + "title": "Thick-Section-Multiphoton-MxIF", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/ThickSectionMultiphotonMxIF" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/ThickSectionMultiphotonMxIF" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/ThickSectionMultiphotonMxIF" + },{ + "title": "SnareSeq2", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/Slide-seq" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Slide-seq" + },{ + "title": "Version 1 (no longer accepting data)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Slide-seq" + },{ + "title": "Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Slide-seq" + },{ + "title": "STARmap", + "mod": "Tue Jan 6 16:37:37 2026 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/STARmap" + },{ + "title": "layout: page", + "mod": "Tue Jan 6 16:37:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/STARmap" + },{ + "title": "Version 2.0 (use this one)", + "mod": "Tue Jan 6 16:37:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/STARmap" + },{ + "title": "Pixel-seqV2", + "mod": "Tue Sep 16 14:26:33 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/Pixel-seqV2" + },{ + "title": "Second-Harmonic-Generation", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/SecondHarmonicGeneration" + },{ + "title": "layout: page", + "mod": "Tue Sep 16 14:26:33 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Pixel-seqV2" + },{ + "title": "Version 2.0 (use this one)", + "mod": "Tue Sep 16 14:26:33 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Pixel-seqV2" + },{ + "title": "Light-Sheet", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/LightSheet" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LightSheet" + },{ + "title": "Version 3 (latest)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LightSheet" + },{ + "title": "Version 2", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LightSheet" + },{ + "title": "Version 1", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LightSheet" + },{ + "title": "Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LightSheet" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/DESI" + },{ + "title": "Version 2 (Latest)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/DESI" + },{ + "title": "10X-Multiome", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/10XMultiome" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/10XMultiome" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/10XMultiome" + },{ + "title": "HuBMAP EPICs Overview", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h1", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "DESI", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/DESI" + },{ + "title": "Segmentation Mask: Published", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "Object by Analyte: Published", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "3D Reconstruction: Draft", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "layout: default", + "mod": "Mon May 19 09:53:59 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Overview" + },{ + "title": "What is an EPIC?", + "mod": "Mon May 19 09:53:59 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Overview" + },{ + "title": "Types of EPICs", + "mod": "Mon May 19 09:53:59 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Overview" + },{ + "title": "layout: default", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "What is an EPIC?", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "Types of EPICs", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "EPIC Example Type 1", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "EPIC Example Type 2", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "EPIC Example Type 3", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "Cell Type Annotations", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "Uploading EPICs", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "Minimum Upload Requirements", + "mod": "Tue Nov 11 11:25:20 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/EPICs/" + },{ + "title": "HuBMAP EPICs Overview", + "mod": "Mon May 19 09:53:59 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/EPICs/Overview" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/SecondHarmonicGeneration" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/SecondHarmonicGeneration" + },{ + "title": "layout: default", + "mod": "Mon May 19 12:51:41 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Upload_reqs" + },{ + "title": "Minimum Requirements for an EPIC Upload", + "mod": "Mon May 19 12:51:41 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Upload_reqs" + },{ + "title": "layout: default", + "mod": "Mon May 19 11:43:06 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Example3" + },{ + "title": "EPIC Example Type 3", + "mod": "Mon May 19 11:43:06 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Example3" + },{ + "title": "Object by Analyte: Draft", + "mod": "Mon May 19 11:38:51 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/EPICs/Example2" + },{ + "title": "layout: default", + "mod": "Mon May 19 11:38:51 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Example2" + },{ + "title": "EPIC Example Type 2", + "mod": "Mon May 19 11:38:51 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Example2" + },{ + "title": "3D Reconstruction: Draft", + "mod": "Mon May 19 11:43:06 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/EPICs/Example3" + },{ + "title": "layout: default", + "mod": "Mon May 19 11:27:48 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Example1" + },{ + "title": "EPIC Example Type 1", + "mod": "Mon May 19 11:27:48 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Example1" + },{ + "title": "Segmentation Mask: Published", + "mod": "Mon May 19 11:27:48 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/EPICs/Example1" + },{ + "title": "4i (Iterative Indirect Immunofluorescence Imaging)", + "mod": "", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/4i-(Iterative-Indirect-Immunofluorescence-Imaging)" + },{ + "title": "layout: page", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/4i-(Iterative-Indirect-Immunofluorescence-Imaging)" + },{ + "title": "Version 2 (current)", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/4i-(Iterative-Indirect-Immunofluorescence-Imaging)" + },{ + "title": "HuBMAP Person schema", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/param-search/schema-person" + },{ + "title": "FACS", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/FACS" + },{ + "title": "layout: page", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/FACS" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/FACS" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-person" + },{ + "title": "Overview:", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-person" + },{ + "title": "Person Schema", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-person" + },{ + "title": "CyTOF", + "mod": "Mon May 5 16:29:21 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/CyTOF" + },{ + "title": "layout: page", + "mod": "Mon May 5 16:29:21 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CyTOF" + },{ + "title": "Version 2 (Latest)", + "mod": "Mon May 5 16:29:21 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CyTOF" + },{ + "title": "layout: page", + "mod": "Fri Sep 13 13:48:29 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/ATACseq" + },{ + "title": "ATACseq", + "mod": "Fri Sep 13 13:48:29 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/ATACseq" + },{ + "title": "MUSIC", + "mod": "Mon Aug 26 15:50:07 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/MUSIC" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:50:07 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MUSIC" + },{ + "title": "Current Metadata Attributes", + "mod": "Mon Aug 26 15:50:07 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MUSIC" + },{ + "title": "layout: page", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/bulk-registration/comined-bulk-reg" + },{ + "title": "Combined Bulk Registration", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/bulk-registration/comined-bulk-reg" + },{ + "title": "Donor Registration Fields", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/bulk-registration/comined-bulk-reg" + },{ + "title": "Validation", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/bulk-registration/comined-bulk-reg" + },{ + "title": "Donor metadata submission", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/bulk-registration/comined-bulk-reg" + },{ + "title": "Sample Metadata Submission", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/bulk-registration/comined-bulk-reg" + },{ + "title": "Entity SDK", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Status", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Ancestor Organs", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Entity by ID", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Entity Provenance", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Entity Types", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Collection", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Collections", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Create Multiple Samples", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Create Entity", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Update Entity", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Ancestors", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Descendants", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Parents", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Children", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Previous Revisions", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Next Revisions", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Add Datasets To Collection", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Globus Url", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Dataset Latest Revision", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Dataset Revision Number", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Retract Dataset", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Revisions List", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Associated Organs", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Prov Info", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Get Prov Info By Id", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "MPLEx", + "mod": "Tue Sep 16 14:26:33 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/MPLEx" + },{ + "title": "layout: page", + "mod": "Tue Sep 16 14:26:33 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MPLEx" + },{ + "title": "Version 2.0 (use this one)", + "mod": "Tue Sep 16 14:26:33 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MPLEx" + },{ + "title": "CODEX", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/CODEX" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CODEX" + },{ + "title": "Version 2", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CODEX" + },{ + "title": "Version 1", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CODEX" + },{ + "title": "Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CODEX" + },{ + "title": "layout: page", + "mod": "Mon Feb 21 14:44:49 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/sdk/hubmapsdk" + },{ + "title": "Getting Started", + "mod": "Mon Feb 21 14:44:49 2022 -0500", + "tag": "h4", + "tagId": "", + "path": "/sdk/hubmapsdk" + },{ + "title": "Requirements", + "mod": "Mon Feb 21 14:44:49 2022 -0500", + "tag": "h4", + "tagId": "", + "path": "/sdk/hubmapsdk" + },{ + "title": "layout: page", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Entity SDK Overview", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "Entity Sdk Methods", + "mod": "Tue Dec 20 09:09:38 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/sdk/entitysdk" + },{ + "title": "SDK Overview", + "mod": "Mon Feb 21 14:44:49 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/hubmapsdk" + },{ + "title": "Modules", + "mod": "Mon Feb 21 14:44:49 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/hubmapsdk" + },{ + "title": "Demo the HuBMAP SDK with Jupyter Notebook", + "mod": "Mon Feb 21 14:44:49 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/hubmapsdk" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/HiFi-Slide" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/HiFi-Slide" + },{ + "title": "HuBMAP seqFISH", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "layout: page", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "Overview", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "Description", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "Definitions", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "HuBMAP seqFISH Data States (Levels)", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "HuBMAP Metadata", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "Associated JSON Files", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "HuBMAP seqFISH Raw File Structure", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "HuBMAP QA/QC of raw (state0) data files", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "seqFISH Data Processing by the HIVE", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "Terms defined in this document", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "For Additional Help", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "Last Updated 6/16/2020", + "mod": "Tue Feb 22 12:00:21 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/assays/seqfish" + },{ + "title": "HiFi-Slide", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/HiFi-Slide" + },{ + "title": "HuBMAP APIs", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h1", + "tagId": "", + "path": "/apis" + },{ + "title": "layout: page", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/apis" + },{ + "title": "Human Reference Atlas (HRA) APIs", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/apis" + },{ + "title": "Identifiers used in HuBMAP and the APIs", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/apis" + },{ + "title": "Ingest API", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "UUID API", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "Search & Index API", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "Ontology/UBKG API", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "Entity API", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "CCF API", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "HRA via SPARQL", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "HuBMAP ID", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "UUID", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "DOI", + "mod": "Tue Jan 7 11:51:46 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/apis" + },{ + "title": "RNAseq", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "RNAseq Version 5 (current)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "RNAseq Version 2", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "bulk-RNA Version 1", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "bulk-RNA Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "scRNAseq Version 3", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "scRNAseq Version 2", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "scRNAseq Version 1", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "scRNAseq Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseq" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LC-MS" + },{ + "title": "Version 4 (Latest)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LC-MS" + },{ + "title": "Version 3", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LC-MS" + },{ + "title": "Version 2", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LC-MS" + },{ + "title": "Version 1", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LC-MS" + },{ + "title": "Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/LC-MS" + },{ + "title": "LC-MS", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/LC-MS" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section2" + },{ + "title": "Section 2 - Register Data Sources", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section2" + },{ + "title": "Register a donor or source", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section2" + },{ + "title": "Register an organ or sample", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section2" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:50:07 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/SIMS" + },{ + "title": "Version 2 (latest)", + "mod": "Mon Aug 26 15:50:07 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/SIMS" + },{ + "title": "HuBMAP Sample schema", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "Overview:", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "Description:", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "SIMS", + "mod": "Mon Aug 26 15:50:07 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/SIMS" + },{ + "title": "Sample Metadata Schema", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "data_access_level attribute values", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "sample_category attribute values", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "organ attribute values", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "vital_state attribute values", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "health_status attribute values", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "organ_condition attribute values", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "perfusion_solution attribute values", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "File Schema", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-sample" + },{ + "title": "HuBMAP Documentation", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/technical" + },{ + "title": "layout: page", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/technical" + },{ + "title": "Histology", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/Histology" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Histology" + },{ + "title": "Version 2 (Latest)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Histology" + },{ + "title": "Image Mass Cytometry (IMC)", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "layout: page", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "Overview", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "Description", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "Definitions", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "HuBMAP IMC Data States (Levels)", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "HuBMAP Metadata:", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "HuBMAP IMC Raw File Structure", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "HuBMAP QA/QC of raw (state0) data files", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "IMC Data Processing by the Bodenmiller IMC Lab", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "For Additional Help", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "Last Updated 6/22/2020", + "mod": "Wed Mar 30 12:56:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/imc" + },{ + "title": "Validation procedure", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section3" + },{ + "title": "layout: page", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Autofluorescence Microscopy", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Assay for Transposase-Accessible Chromatin (ATACseq)", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Co-detection by indexing (CODEX)", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Image Mass Cytometry (IMC)", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Lightsheet", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Liquid Chromatography Mass Spectrometry (LC-MS)", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Matrix Assisted Laser Desorption/Ionization Imaging Mass Spectrometry (MALDI-IMS)", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Multiplexed Immunofluorescence (MxIF)", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "RNA Sequencing (RNAseq)", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Sequencing by Fluorescence In-Situ Hybridization (seqFISH)", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Stained Microscopy", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "Whole Genome Sequencing (WGS)", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays" + },{ + "title": "HuBMAP Assays", + "mod": "Fri Feb 24 15:50:27 2023 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section3" + },{ + "title": "Section 3 - Validating Metadata", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section3" + },{ + "title": "MALDI", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/MALDI" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MALDI" + },{ + "title": "Maldi Version 2 (latest)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MALDI" + },{ + "title": "IMS Version 2", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MALDI" + },{ + "title": "IMS Version 1", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MALDI" + },{ + "title": "IMS Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MALDI" + },{ + "title": "GeoMx", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/GeoMx" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/GeoMx" + },{ + "title": "NGS Version 2 (current)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/GeoMx" + },{ + "title": "nCounter Version 2 (current)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/GeoMx" + },{ + "title": "HuBMAP Dataset schema", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/param-search/schema-dataset" + },{ + "title": "layout: page", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-dataset" + },{ + "title": "Overview:", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-dataset" + },{ + "title": "Description:", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-dataset" + },{ + "title": "Dataset Attributes", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-dataset" + },{ + "title": "data_access_level attribute values", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-dataset" + },{ + "title": "status attribute values", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-dataset" + },{ + "title": "dataset_type allowable values", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-dataset" + },{ + "title": "HuBMAP File Indices", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "layout: page", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "Overview:", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "Description:", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "Limitations:", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "Document elements:", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "Last Updated: 2024-03-20", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "samples Array Elements:", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "organs Array Elements:", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "donors Array Elements:", + "mod": "Wed Mar 20 10:13:01 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/search-indices/files" + },{ + "title": "CyCIF", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/CyCIF" + },{ + "title": "layout: page", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CyCIF" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CyCIF" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/WGS" + },{ + "title": "Version 1 (no longer accepting data)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/WGS" + },{ + "title": "Version 0", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/WGS" + },{ + "title": "WGS", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/WGS" + },{ + "title": "Data Submission Guide", + "mod": "", + "tag": "h1", + "tagId": "", + "path": "/data-submission/" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/" + },{ + "title": "Information on EPICs and EPIC upload requirements", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/" + },{ + "title": "Information on Pass Through Dataset Types", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/" + },{ + "title": "MIBI", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/MIBI" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MIBI" + },{ + "title": "Version 2 (latest)", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MIBI" + },{ + "title": "Version 1", + "mod": "Tue Aug 27 14:43:44 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/MIBI" + },{ + "title": "layout: page", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "Overview", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "Description", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "Definitions", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "HuBMAP CODEX Data States (Levels)", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "HuBMAP Metadata", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "Associated JSON Files", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "HuBMAP CODEX Raw File Structure", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "HuBMAP QA/QC of raw (state0) data files", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "Terms defined in this document", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "For Additional Help", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "Last Updated: 6/1/2020", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "Antibody Metadata", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "How to read channelnames", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "How to read channelnames_report", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "How to evaluate the channels to create the QA/QC channelnames_report.cvs file", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "HuBMAP CODEX Data", + "mod": "Wed Mar 30 12:50:28 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/codex" + },{ + "title": "HuBMAP Antibody Validation Report Repository: Uploading new reports", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h1", + "tagId": "", + "path": "/avr/avr-upload-v2" + },{ + "title": "layout: page", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/avr/avr-upload-v2" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section7" + },{ + "title": "Section 7 - Local Validation", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section7" + },{ + "title": "Metadata", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h1", + "tagId": "", + "path": "/metadata" + },{ + "title": "layout: page", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/metadata" + },{ + "title": "Donor", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/metadata" + },{ + "title": "Sample", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/metadata" + },{ + "title": "Assay", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/metadata" + },{ + "title": "EPICs", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/metadata" + },{ + "title": "Other", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/metadata" + },{ + "title": "Sample Block", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/metadata" + },{ + "title": "Sample Section", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/metadata" + },{ + "title": "Sample Suspension", + "mod": "Tue Dec 16 12:46:36 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/metadata" + },{ + "title": "HuBMAP Liquid Chromatography Mass Spectrometry (LCMS)", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "layout: page", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "Overview", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "Description", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "HuBMAP Data States (Levels)", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "HuBMAP Metadata", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "Associated Files", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "HuBMAP QA/QC of raw (state0) data files", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "QC for Lipidomics & Metabolomics", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "Terms defined in this document", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "For Additional Help", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "Last Updated 6/22/2020", + "mod": "Wed Mar 30 13:03:54 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/lcms" + },{ + "title": "User Feedback", + "mod": "Mon Jun 3 13:11:38 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/feedback" + },{ + "title": "layout: page", + "mod": "Mon Jun 3 13:11:38 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/feedback" + },{ + "title": "Process", + "mod": "Mon Jun 3 13:11:38 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/feedback" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseqWithProbes" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/RNAseqWithProbes" + },{ + "title": "RNAseq-(with-probes)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/RNAseqWithProbes" + },{ + "title": "layout: page", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/datasets" + },{ + "title": "Datasets: Level of Access", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/datasets" + },{ + "title": "Status:", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/datasets" + },{ + "title": "Access Level:", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/datasets" + },{ + "title": "layout: page", + "mod": "Thu Nov 7 10:16:12 2024 -0500", + "tag": "h2", + "tagId": "", + "path": "/clt/" + },{ + "title": "Using the HuBMAP CLT", + "mod": "Thu Nov 7 10:16:12 2024 -0500", + "tag": "h3", + "tagId": "", + "path": "/clt/" + },{ + "title": "Manifest Files", + "mod": "Thu Nov 7 10:16:12 2024 -0500", + "tag": "h4", + "tagId": "", + "path": "/clt/" + },{ + "title": "Login", + "mod": "Thu Nov 7 10:16:12 2024 -0500", + "tag": "h4", + "tagId": "", + "path": "/clt/" + },{ + "title": "Example of usage", + "mod": "Thu Nov 7 10:16:12 2024 -0500", + "tag": "h4", + "tagId": "", + "path": "/clt/" + },{ + "title": "Note about Globus Connect Personal", + "mod": "Thu Nov 7 10:16:12 2024 -0500", + "tag": "h4", + "tagId": "", + "path": "/clt/" + },{ + "title": "Manifest File Examples", + "mod": "Thu Nov 7 10:16:12 2024 -0500", + "tag": "h4", + "tagId": "", + "path": "/clt/" + },{ + "title": "Checking the Status of a Transfer", + "mod": "Thu Nov 7 10:16:12 2024 -0500", + "tag": "h4", + "tagId": "", + "path": "/clt/" + },{ + "title": "HuBMAP single cell & bulk ATAC Sequence Data", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "layout: page", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Overview", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Description", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Definitions", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "HuBMAP ATAC Sequence Data States (Levels)", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "HuBMAP Metadata", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "HuBMAP QA/QC of raw (state0) data files", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Terms defined in this document", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "For Additional Help", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Last Updated: 6/23/2020", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Pre-alignment QC:", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Library-level Alignment QC", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Post-alignment processing QC (see Per cell QC metrics table below)", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Peak calling QC", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Final Step(s)", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Nucleosome signal", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Blacklist region fragment ratio", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Transcriptional start site (TSS) enrichment score", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Single-cell ATAC R implementation", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Bulk ATAC python implementation", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Fraction of fragments in peaks", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Total number of fragments", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Total number of fragments in peaks", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Mitochondrial fragment ratio", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Software & Documentation", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section5" + },{ + "title": "Section 5 - Submissions Directory Preparation", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section5" + },{ + "title": "Cellranger-atac", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h4", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Signac package", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h4", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "CRAN", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h4", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Sinto package", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h4", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "PyPI", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h4", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "Snap", + "mod": "Wed Mar 30 12:50:57 2022 -0400", + "tag": "h4", + "tagId": "", + "path": "/assays/atacseq" + },{ + "title": "HuBMAP Fast Track Projects", + "mod": "Wed Jun 4 11:44:20 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/fast-track-landing-page" + },{ + "title": "layout: page", + "mod": "Wed Jun 4 11:44:20 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/fast-track-landing-page" + },{ + "title": "Frequently Asked Questions (FAQ) for Antibody Validation Reports (AVRs)", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h1", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "layout: page", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "General AVR Questions", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Submitting AVRs", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "What is an antibody validation report?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "How are antibodies validated within HuBMAP?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "How can I access, search and browse existing AVRs?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Who should submit an AVR?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Can I contribute an AVR if I am not a HuBMAP member?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Can I add to or make changes to an existing AVR?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Do AVRs capture species cross-reactivity?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Is there a working group that I may join to support authoring an Organ Mapping Antibody Panel and submitting AVRs?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "How do I cite an AVR?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "How do I complete an AVR?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "How do I upload AVRs?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Should every antibody in an OMAP have a corresponding AVR?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Should I fill out an AVR for antibodies that work but are not included in an OMAP?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Should I fill out an AVR for antibodies that do not work for an imaging platform or tissue?", + "mod": "Mon Jan 12 13:38:37 2026 -0500", + "tag": "h3", + "tagId": "", + "path": "/avr/avr-faq" + },{ + "title": "Developers", + "mod": "Thu Nov 6 15:51:45 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/_includes/sidebars/internal-toc.block" + },{ + "title": "HuBMAP Developer Tools", + "mod": "Thu Nov 6 15:51:45 2025 -0500", + "tag": "h4", + "tagId": "", + "path": "/_includes/sidebars/internal-toc.block" + },{ + "title": "API 'Apps'", + "mod": "Thu Nov 6 15:51:45 2025 -0500", + "tag": "h4", + "tagId": "", + "path": "/_includes/sidebars/internal-toc.block" + },{ + "title": "Data Submitters", + "mod": "Thu Nov 6 15:51:45 2025 -0500", + "tag": "h4", + "tagId": "", + "path": "/_includes/sidebars/internal-toc.block" + },{ + "title": "General Links", + "mod": "Thu Nov 6 15:51:45 2025 -0500", + "tag": "h4", + "tagId": "", + "path": "/_includes/sidebars/internal-toc.block" + },{ + "title": "Commentary:", + "mod": "Tue Jan 6 16:44:34 2026 -0500", + "tag": "h4", + "tagId": "", + "path": "/assays/metadata/new-metadata-test" + },{ + "title": "layout: page", + "mod": "Tue Jan 6 16:44:34 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/new-metadata-test" + },{ + "title": "HuBMAP Metadata by Dataset Type", + "mod": "Tue Jan 6 16:44:34 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/new-metadata-test" + },{ + "title": "layout: default", + "mod": "Mon May 19 12:31:18 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Uploading" + },{ + "title": "Cell Type Annotations", + "mod": "Mon May 19 12:31:18 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Uploading" + },{ + "title": "Uploading EPICs", + "mod": "Mon May 19 12:31:18 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/EPICs/Uploading" + },{ + "title": "Issues with HuBMAP FAQ", + "mod": "Fri Feb 23 13:32:45 2024 -0500", + "tag": "h1", + "tagId": "", + "path": "/FAQ-issues-ReadMe" + },{ + "title": "Plan to Fix FAQ", + "mod": "Fri Feb 23 13:32:45 2024 -0500", + "tag": "h2", + "tagId": "", + "path": "/FAQ-issues-ReadMe" + },{ + "title": "Overall approach:", + "mod": "Fri Feb 23 13:32:45 2024 -0500", + "tag": "h3", + "tagId": "", + "path": "/FAQ-issues-ReadMe" + },{ + "title": "Specific fixes for issues detailed above:", + "mod": "Fri Feb 23 13:32:45 2024 -0500", + "tag": "h3", + "tagId": "", + "path": "/FAQ-issues-ReadMe" + },{ + "title": "Consumer-focused section", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Provider-focused section", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Assay Description", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Directories and Files", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Metadata", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Assay-level categorical field values", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h4", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Technology Overview", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Key Definitions", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Directory structure", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Files Included", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Sample-level", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Assay-level", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Antibody", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/template" + },{ + "title": "HIVE data processing pipeline", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/template" + },{ + "title": "Lab data processing pipeline", + "mod": "Wed Oct 12 09:13:02 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/template" + },{ + "title": "layout: page", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/data-provider-groups" + },{ + "title": "HuBMAP Data Provider Groups", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/data-provider-groups" + },{ + "title": "What are they?", + "mod": "Tue Jun 17 12:08:37 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/pass-thrus/" + },{ + "title": "Current examples", + "mod": "Tue Jun 17 12:08:37 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/pass-thrus/" + },{ + "title": "Pass Through Dataset Types", + "mod": "Tue Jun 17 12:08:37 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/pass-thrus/" + },{ + "title": "Publishing a Pass Through Dataset Type", + "mod": "Tue Jun 17 12:08:37 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/pass-thrus/" + },{ + "title": "HuBMAP Antibody Validation Report Repository: Uploading new reports", + "mod": "Wed Mar 16 15:32:03 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/avr/avr-upload" + },{ + "title": "layout: page", + "mod": "Wed Mar 16 15:32:03 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/avr/avr-upload" + },{ + "title": "Creating a Manifest", + "mod": "Mon Jul 15 17:31:14 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/clt/generate-manifest" + },{ + "title": "Limitations", + "mod": "Mon Jul 15 17:31:14 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/clt/generate-manifest" + },{ + "title": "Example query and Manifest", + "mod": "Mon Jul 15 17:31:14 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/clt/generate-manifest" + },{ + "title": "Using the Generated Manifest", + "mod": "Mon Jul 15 17:31:14 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/clt/generate-manifest" + },{ + "title": "Generating a Manifest File from SearchAPI for use with the Command Line Transfer", + "mod": "Mon Jul 15 17:31:14 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/clt/generate-manifest" + },{ + "title": "layout: page", + "mod": "Mon Jul 15 17:31:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/clt/generate-manifest" + },{ + "title": "Visium-HD", + "mod": "Tue Sep 16 14:26:33 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/Visium-HD" + },{ + "title": "layout: page", + "mod": "Tue Sep 16 14:26:33 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Visium-HD" + },{ + "title": "Version 2 (current)", + "mod": "Tue Sep 16 14:26:33 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Visium-HD" + },{ + "title": "layout: page", + "mod": "Thu Oct 30 15:53:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CosMx-Proteomics" + },{ + "title": "Version 2 (current)", + "mod": "Thu Oct 30 15:53:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/CosMx-Proteomics" + },{ + "title": "CosMx Proteomics", + "mod": "Thu Oct 30 15:53:39 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/CosMx-Proteomics" + },{ + "title": "Search SDK", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h1", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "layout: page", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Search SDK Overview", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Search SDK Methods", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Antibody Validation Report Repository", + "mod": "Mon Jan 12 12:07:29 2026 -0500", + "tag": "h1", + "tagId": "", + "path": "/avr/" + },{ + "title": "layout: page", + "mod": "Mon Jan 12 12:07:29 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/avr/" + },{ + "title": "Indices", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Search", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Search by Index", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Count", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Count by Index", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Status", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Reindex", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Reindex All", + "mod": "Thu Feb 20 10:51:35 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/sdk/searchsdk" + },{ + "title": "Raman-Imaging", + "mod": "Tue Jan 6 16:37:37 2026 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/Raman-Imaging" + },{ + "title": "layout: page", + "mod": "Tue Jan 6 16:37:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Raman-Imaging" + },{ + "title": "Version 2 (current)", + "mod": "Tue Jan 6 16:37:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Raman-Imaging" + },{ + "title": "How can I Access and Download Data?", + "mod": "Thu Oct 31 14:43:21 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/how-to-access-data" + },{ + "title": "Sequencing (Raw Genetic) vs. Other Datasets", + "mod": "Thu Oct 31 14:43:21 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/how-to-access-data" + },{ + "title": "Access & Download HuBMAP Data", + "mod": "Thu Oct 31 14:43:21 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/how-to-access-data" + },{ + "title": "HuBMAP Antibody Validation Report Structure", + "mod": "Mon Jan 12 12:07:29 2026 -0500", + "tag": "h1", + "tagId": "", + "path": "/avr/tsv-format-v2" + },{ + "title": "layout: page", + "mod": "Mon Jan 12 12:07:29 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/avr/tsv-format-v2" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section12" + },{ + "title": "Section 12 - dbGap Submission", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section12" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-antibody" + },{ + "title": "Overview:", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-antibody" + },{ + "title": "HuBMAP Antibody schema", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/param-search/schema-antibody" + },{ + "title": "Antibody Attributes", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-antibody" + },{ + "title": "layout: page", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/pipelines" + },{ + "title": "HuBMAP Pipelines", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/pipelines" + },{ + "title": "CODEX", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/pipelines" + },{ + "title": "SPRM – Spatial Process & Relationship Modeling", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/pipelines" + },{ + "title": "Single-cell RNA sequencing", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/pipelines" + },{ + "title": "Single-cell ATAC-seq", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/pipelines" + },{ + "title": "Bulk RNA sequencing", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/pipelines" + },{ + "title": "Bulk ATAC-seq", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/pipelines" + },{ + "title": "PhenoCycler", + "mod": "Mon Aug 26 15:50:07 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/PhenoCycler" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:50:07 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/PhenoCycler" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:50:07 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/PhenoCycler" + },{ + "title": "Example Data Query and Download", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/param-search/data-query-download-example" + },{ + "title": "layout: page", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/data-query-download-example" + },{ + "title": "Overview", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/data-query-download-example" + },{ + "title": "Description", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/data-query-download-example" + },{ + "title": "Example Query and Download", + "mod": "Mon Apr 14 14:55:55 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/data-query-download-example" + },{ + "title": "Publication Page Upload Workflow", + "mod": "Wed Jul 2 14:05:35 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/Publications/" + },{ + "title": "layout: default", + "mod": "Wed Jul 2 14:05:35 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/Publications/" + },{ + "title": "Introduction", + "mod": "Wed Jul 2 14:05:35 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/Publications/" + },{ + "title": "Prerequisites", + "mod": "Wed Jul 2 14:05:35 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/Publications/" + },{ + "title": "Contacts", + "mod": "Wed Jul 2 14:05:35 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/Publications/" + },{ + "title": "Viewing The Current Globus Download Directory", + "mod": "Mon Jul 1 03:17:47 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/clt/view-globus-download-location" + },{ + "title": "layout: page", + "mod": "Mon Jul 1 03:17:47 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/clt/view-globus-download-location" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section6" + },{ + "title": "Section 6 - Preparing Metadata", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section6" + },{ + "title": "Data Submission Guide", + "mod": "", + "tag": "h1", + "tagId": "", + "path": "/data-submission/README" + },{ + "title": "layout: page", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "Overview", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "Description", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "HuBMAP Whole Genome Sequencing Data States (Levels)", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "HuBMAP Metadata:", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "Values to be produced by HIVE Pipeline", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "HuBMAP WGS Sequence Raw File Structure", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "HuBMAP QA/QC of raw (state0) data files", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "Terms defined in this document", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "For Additional Help", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "HuBMAP Whole Genome Sequencing (WGS)", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "Last Updated 6/23/2020", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "Pre-alignment QC with FastQC", + "mod": "Thu Mar 3 15:14:08 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/assays/wgs" + },{ + "title": "layout: external-TOC2", + "mod": "Thu Oct 17 10:31:30 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/doc-sitemap-external" + },{ + "title": "HuBMAP Data", + "mod": "Thu Oct 17 10:31:30 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/doc-sitemap-external" + },{ + "title": "HuBMAP Tools", + "mod": "Thu Oct 17 10:31:30 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/doc-sitemap-external" + },{ + "title": "Search APIs", + "mod": "Thu Oct 17 10:31:30 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/doc-sitemap-external" + },{ + "title": "Getting Data", + "mod": "Thu Oct 17 10:31:30 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/doc-sitemap-external" + },{ + "title": "HuBMAP Documentation", + "mod": "Thu Oct 17 10:31:30 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/doc-sitemap-external" + },{ + "title": "Developers", + "mod": "Thu Oct 17 10:31:30 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/doc-sitemap-external" + },{ + "title": "Other Stakeholders", + "mod": "Thu Oct 17 10:31:30 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/doc-sitemap-external" + },{ + "title": "HuBMAP Cell DIVE Data (GE Research)", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "layout: page", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "Last Updated: 12/18/2020", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "Description:", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "Definitions:", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "Terms defined in this document:", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "HuBMAP Cell DIVE Data States (Levels):", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "HuBMAP Metadata", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "Associated Metadata Content:", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "HuBMAP Cell DIVE Raw File Structure:", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "Cell DIVE Processing by the HIVE:", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "QA/QC of processed microscopy data (state 1):", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "For Additional Help:", + "mod": "Thu Mar 3 13:14:47 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/celldive" + },{ + "title": "HuBMAP Donor schema", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/param-search/schema-donor" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-donor" + },{ + "title": "Overview:", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-donor" + },{ + "title": "Description:", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/schema-donor" + },{ + "title": "Dataset Attributes", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-donor" + },{ + "title": "Donor Metadata Schema", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-donor" + },{ + "title": "data_access_level attribute values", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/schema-donor" + },{ + "title": "About", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/about" + },{ + "title": "layout: page", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/about" + },{ + "title": "HuBMAP Consortium", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/about" + },{ + "title": "Consortium Data Access Policies & Procedures", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/about" + },{ + "title": "Consortium Data Use Agreement (DUA)", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/about" + },{ + "title": "Protected Data & Access via dbGaP", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/about" + },{ + "title": "Citation", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/about" + },{ + "title": "Funding", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/about" + },{ + "title": "Contact", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/about" + },{ + "title": "Team", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/about" + },{ + "title": "Software", + "mod": "Fri Feb 11 11:33:54 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/about" + },{ + "title": "HuBMAP Autofluorescence Microscopy (AF)", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays/af" + },{ + "title": "layout: page", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/af" + },{ + "title": "Overview:", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/af" + },{ + "title": "Description:", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/af" + },{ + "title": "Definitions:", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/af" + },{ + "title": "HuBMAP AF Data States (Levels):", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/af" + },{ + "title": "HuBMAP Metadata:", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/af" + },{ + "title": "Associated Metadata files:", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/af" + },{ + "title": "Terms defined in this document:", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/af" + },{ + "title": "For Additional Help:", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/af" + },{ + "title": "Last Updated: 6/15/2020", + "mod": "Thu Mar 3 13:01:59 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/assays/af" + },{ + "title": "HuBMAP PAS Stained Microscopy", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "layout: page", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "Overview", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "Description", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "Definitions", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "HuBMAP Stained Microscopy Data States (Levels)", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "HuBMAP Metadata", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "Associated Metadata files", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "Terms defined in this document", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "For Additional Help", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "Last Updated 6/15/2020", + "mod": "Thu Mar 3 12:46:25 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/assays/pas" + },{ + "title": "HuBMAP Parameterized Search", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/param-search/" + },{ + "title": "Inputs", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/" + },{ + "title": "Response", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/param-search/" + },{ + "title": "layout: page", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/" + },{ + "title": "Overview:", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/" + },{ + "title": "Description:", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/" + },{ + "title": "Examples:", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/" + },{ + "title": "Common document elements:", + "mod": "Wed Sep 11 10:24:05 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/param-search/" + },{ + "title": "Microscopy Metadata Captured to date... (as of 11-06-2023)", + "mod": "Wed Feb 26 15:27:43 2025 -0500", + "tag": "h1", + "tagId": "", + "path": "/microscopy-metadata-links" + },{ + "title": "layout: page", + "mod": "Wed Feb 26 15:27:43 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/microscopy-metadata-links" + },{ + "title": "How to Use this Table (above...)", + "mod": "Wed Feb 26 15:27:43 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/microscopy-metadata-links" + },{ + "title": "Some Helpful Links related to Microscopy Metadata", + "mod": "Wed Feb 26 15:27:43 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/microscopy-metadata-links" + },{ + "title": "Acknowledgements", + "mod": "Wed Feb 26 15:27:43 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/microscopy-metadata-links" + },{ + "title": "HuBMAP Antibody Validation Report CSV Structure", + "mod": "Tue Mar 22 14:31:39 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/avr/csv-format" + },{ + "title": "layout: page", + "mod": "Tue Mar 22 14:31:39 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/avr/csv-format" + },{ + "title": "Enhanced-SRS", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/EnhancedSRS" + },{ + "title": "layout: page", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/EnhancedSRS" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 26 15:19:00 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/EnhancedSRS" + },{ + "title": "Tissue Placement", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section4" + },{ + "title": "Tissue Registration Issues", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section4" + },{ + "title": "Best Practices", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section4" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section4" + },{ + "title": "Section 4 - RUI Tissue Blocks", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section4" + },{ + "title": "Assay Description", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Directories and Files", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Metadata", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Consumer-focused section", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Provider-focused section", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Assay-level categorical field values", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h4", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Technology Overview", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Key Definitions", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Directory structure", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Files Included", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Sample-level", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Assay-level", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Antibody", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/example" + },{ + "title": "HIVE data processing pipeline", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/example" + },{ + "title": "Lab data processing pipeline", + "mod": "Wed Oct 12 12:43:48 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/example" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section1" + },{ + "title": "Section 1 - Prerequisites", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section1" + },{ + "title": "Different ways to create a New Protocol", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section1" + },{ + "title": "Creating an entirely new protocol (from 'scratch'):", + "mod": "", + "tag": "h3", + "tagId": "Create-New-Protocol", + "path": "/data-submission/Section1" + },{ + "title": "Publishing your new protocol:", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section1" + },{ + "title": "Revise a Protocol you created previously", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section1" + },{ + "title": "Create a new protocol based on someone else's Protocol", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section1" + },{ + "title": "HuBMAP Matrix Assisted Laser Desorption/Ionization (MALDI) Imaging Mass Spectrometry (IMS)", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "layout: page", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "Overview", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "Description", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "Definitions", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "HuBMAP Data States (Levels)", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "HuBMAP Metadata", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "Associated JSON Files", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "HuBMAP MALDI-IMS File Structure", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "HuBMAP QC/QA for Level 1 MALDI IMS Data", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "Terms defined in this document", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "For Additional Help", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "Last updated: 6/12/2020", + "mod": "Wed Mar 30 13:14:58 2022 -0400", + "tag": "h3", + "tagId": "", + "path": "/assays/maldi-ims" + },{ + "title": "HuBMAP Data", + "mod": "Thu Nov 6 14:51:23 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/_includes/sidebars/external-toc.block" + },{ + "title": "HuBMAP Tools", + "mod": "Thu Nov 6 14:51:23 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/_includes/sidebars/external-toc.block" + },{ + "title": "Developers", + "mod": "Thu Nov 6 14:51:23 2025 -0500", + "tag": "h4", + "tagId": "", + "path": "/_includes/sidebars/external-toc.block" + },{ + "title": "Other Stakeholders", + "mod": "Thu Nov 6 14:51:23 2025 -0500", + "tag": "h4", + "tagId": "", + "path": "/_includes/sidebars/external-toc.block" + },{ + "title": "HuBMAP Data Consent", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/consent" + },{ + "title": "layout: page", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/consent" + },{ + "title": "Genomic Data Sharing", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/consent" + },{ + "title": "Context:", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/consent" + },{ + "title": "Additional Information:", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/consent" + },{ + "title": "layout: page", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/faq" + },{ + "title": "General Questions", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/faq" + },{ + "title": "Introduction to HuBMAP resources", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/faq" + },{ + "title": "Getting Started with the HuBMAP Data Portal", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/faq" + },{ + "title": "HuBMAP Data and Metadata Questions", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/faq" + },{ + "title": "API (Application Programming Interface) Questions", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/faq" + },{ + "title": "Experimental Design & Data Analysis Questions", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/faq" + },{ + "title": "Human Reference Atlas (HRA) APIs", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/faq" + },{ + "title": "University of Florida:", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/faq" + },{ + "title": "Vanderbilt University:", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/faq" + },{ + "title": "UCSD:", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h4", + "tagId": "", + "path": "/faq" + },{ + "title": "HuBMAP Frequently Asked Questions (FAQ)", + "mod": "Thu Jun 13 16:14:14 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/faq" + },{ + "title": "layout: page", + "mod": "Tue Jan 6 16:37:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/" + },{ + "title": "HuBMAP Metadata Attributes by Dataset Type", + "mod": "Tue Jan 6 16:37:37 2026 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/" + },{ + "title": "Acknowledgment of Manufacturers in Compliance with NBO-Q", + "mod": "Wed Oct 23 14:59:26 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/microscopy-manufacturer-credit" + },{ + "title": "Text for use with Assay Descriptions using Compliant Instruments", + "mod": "Wed Oct 23 14:59:26 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/microscopy-manufacturer-credit" + },{ + "title": "Text for Social Media", + "mod": "Wed Oct 23 14:59:26 2024 -0400", + "tag": "h3", + "tagId": "", + "path": "/microscopy-manufacturer-credit" + },{ + "title": "Last Updated 6/15/2020", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "HuBMAP Multiplexed Immunofluorescence (MxIF)", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "layout: page", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "Overview", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "Description", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "Definitions", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "HuBMAP CODEX Data States (Levels)", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "HuBMAP Metadata", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "Associated Metadata Files", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "Terms defined in this document", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "For Additional Help", + "mod": "Thu Mar 3 14:32:05 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/mxif" + },{ + "title": "EPICs", + "mod": "", + "tag": "h3", + "tagId": "", + "path": "/data-submission/Section8" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section8" + },{ + "title": "Section 8 - Creating an Upload Directory", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section8" + },{ + "title": "Access", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/release-summer-2020" + },{ + "title": "Search & View", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/release-summer-2020" + },{ + "title": "Analysis & Infrastructure", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/release-summer-2020" + },{ + "title": "HuBMAP Portal Release - Summer 2020", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/release-summer-2020" + },{ + "title": "layout: page", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/release-summer-2020" + },{ + "title": "Key Features", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/release-summer-2020" + },{ + "title": "Future Releases", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/release-summer-2020" + },{ + "title": "layout: page", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Olink" + },{ + "title": "Version 2 (current)", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/assays/metadata/Olink" + },{ + "title": "Olink", + "mod": "Mon Aug 11 12:33:39 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/assays/metadata/Olink" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section11" + },{ + "title": "Section 11 - Data Review", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section11" + },{ + "title": "layout: page", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/prov-graph" + },{ + "title": "Overview:", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/prov-graph" + },{ + "title": "Description:", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/prov-graph" + },{ + "title": "HuBMAP Provenance Graph", + "mod": "Tue Aug 27 14:21:02 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/prov-graph" + },{ + "title": "layout: page", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "Description:", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "Definitions:", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "HuBMAP nano/micro-DESI Data States (Levels):", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "HuBMAP Metadata:", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "Associated Metadata Files:", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "Additional Tags and Definitions:", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "QC/QA for Level 1 nano-DESI HuBMAP Data", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "For Additional Help:", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "HuBMAP Nano-DESI (Desorption Electrospray Ionization) & nanoPOTS (Processing in One Pot for Trace Samples )", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "Last Updated: 12/18/2020", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "HuBMAP nano-DESI & nano-POTS File Structure:", + "mod": "Fri Feb 11 12:35:10 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/assays/nano" + },{ + "title": "Sample Bulk Registration", + "mod": "Mon May 12 10:01:12 2025 -0400", + "tag": "h1", + "tagId": "", + "path": "/bulk-registration/sample-bulk-reg" + },{ + "title": "layout: page", + "mod": "Mon May 12 10:01:12 2025 -0400", + "tag": "h2", + "tagId": "", + "path": "/bulk-registration/sample-bulk-reg" + },{ + "title": "layout: external-TOC2", + "mod": "Thu Oct 31 15:24:21 2024 -0400", + "tag": "h2", + "tagId": "", + "path": "/about-docs" + },{ + "title": "Sample Bulk Registration TSV Fields", + "mod": "Mon May 12 10:01:12 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/bulk-registration/sample-bulk-reg" + },{ + "title": "Sample Metadata Submission", + "mod": "Mon May 12 10:01:12 2025 -0400", + "tag": "h3", + "tagId": "", + "path": "/bulk-registration/sample-bulk-reg" + },{ + "title": "HuBMAP - The Human BioMolecular Atlas Program", + "mod": "Thu Oct 31 15:24:21 2024 -0400", + "tag": "h1", + "tagId": "", + "path": "/about-docs" + },{ + "title": "HuBMAP Infrastructure", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/infrastructure" + },{ + "title": "layout: page", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/infrastructure" + },{ + "title": "Hybrid Deployment", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/infrastructure" + },{ + "title": "Microservices Architecture", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/infrastructure" + },{ + "title": "layout: page", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/donor" + },{ + "title": "Format", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/donor" + },{ + "title": "Content", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/donor" + },{ + "title": "Donor Metadata", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/donor" + },{ + "title": "Data Source", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "Data Extraction and Transformation", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "donor_id", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "source_name", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "start_datetime", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "end_datetime", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "graph_version", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "concept_id", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "code", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "sab", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "data_type", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "data_value", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "numeric_operator", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "units", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "preferred_term", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "grouping_concept", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "grouping_concept_preferred_term", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "grouping_code", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "grouping_sab", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "basic_demographics", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "more", + "mod": "Tue Dec 6 11:36:06 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/donor" + },{ + "title": "HuBMAP Data Submission", + "mod": "Fri Nov 7 10:03:18 2025 -0500", + "tag": "h1", + "tagId": "", + "path": "/" + },{ + "title": "HuBMAP Software Documentation", + "mod": "Fri Nov 7 10:03:18 2025 -0500", + "tag": "h1", + "tagId": "", + "path": "/" + },{ + "title": "layout: page-secondary", + "mod": "Fri Nov 7 10:03:18 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/" + },{ + "title": "APIs", + "mod": "Fri Nov 7 10:03:18 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/" + },{ + "title": "SDK", + "mod": "Fri Nov 7 10:03:18 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/" + },{ + "title": "HuBMAP Command Line Transfer Tool", + "mod": "Fri Nov 7 10:03:18 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/" + },{ + "title": "The HuBMAP Microservice Architecture", + "mod": "Fri Nov 7 10:03:18 2025 -0500", + "tag": "h3", + "tagId": "the-hubmap-microservice-architecture", + "path": "/" + },{ + "title": "layout: default", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section9" + },{ + "title": "Section 9 - Clinical Human Metadata", + "mod": "", + "tag": "h2", + "tagId": "", + "path": "/data-submission/Section9" + },{ + "title": "layout: page", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Description:", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Infratructure/ Base Product", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Tissue/ sample prep/ core data", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Spatial registration and semantic annotation (via 3D collision detection)", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Data & Metadata", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Pipeline", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Reference Mapping", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "QA", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Search & Download", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Visualization", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Operations", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/software" + },{ + "title": "Last Updaed: 2/19/2021", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h3", + "tagId": "", + "path": "/software" + },{ + "title": "HuBMAP Product Offerings: Project Management, Communication, Tracking, & Reporting", + "mod": "Fri Jan 7 16:10:55 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/software" + },{ + "title": "Not Found", + "mod": "Mon Nov 10 15:23:37 2025 -0500", + "tag": "h1", + "tagId": "", + "path": "/404" + },{ + "title": "Data and Code Availability", + "mod": "Mon Nov 10 15:05:52 2025 -0500", + "tag": "h2", + "tagId": "", + "path": "/alpha-index-tools" + },{ + "title": "Relevant GitHub Repositories", + "mod": "Mon Nov 10 15:05:52 2025 -0500", + "tag": "h3", + "tagId": "", + "path": "/alpha-index-tools" + },{ + "title": "Alphabetical Index of HuBMAP Tools", + "mod": "Mon Nov 10 15:05:52 2025 -0500", + "tag": "h1", + "tagId": "", + "path": "/alpha-index-tools" + },{ + "title": "Developer Tools", + "mod": "Tue Nov 12 16:52:24 2024 -0500", + "tag": "h3", + "tagId": "", + "path": "/doc-sitemap-internal" + },{ + "title": "Application-specific APIs", + "mod": "Tue Nov 12 16:52:24 2024 -0500", + "tag": "h3", + "tagId": "", + "path": "/doc-sitemap-internal" + },{ + "title": "HuBMAP Documentation", + "mod": "Tue Nov 12 16:52:24 2024 -0500", + "tag": "h1", + "tagId": "", + "path": "/doc-sitemap-internal" + },{ + "title": "layout: internal-TOC2", + "mod": "Tue Nov 12 16:52:24 2024 -0500", + "tag": "h2", + "tagId": "", + "path": "/doc-sitemap-internal" + },{ + "title": "Developers", + "mod": "Tue Nov 12 16:52:24 2024 -0500", + "tag": "h2", + "tagId": "", + "path": "/doc-sitemap-internal" + },{ + "title": "Data Submitters", + "mod": "Tue Nov 12 16:52:24 2024 -0500", + "tag": "h2", + "tagId": "", + "path": "/doc-sitemap-internal" + },{ + "title": "General Links", + "mod": "Tue Nov 12 16:52:24 2024 -0500", + "tag": "h2", + "tagId": "", + "path": "/doc-sitemap-internal" + },{ + "title": "HuBMAP Data & Metadata States", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/data-states" + },{ + "title": "Metadata", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/data-states" + },{ + "title": "Data", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/data-states" + },{ + "title": "Dataset", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h1", + "tagId": "", + "path": "/data-states" + },{ + "title": "layout: page", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/data-states" + },{ + "title": "Donor Metadata Status", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/data-states" + },{ + "title": "Sample Metadata Status", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/data-states" + },{ + "title": "Assay Metadata Status", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/data-states" + },{ + "title": "Quality Metric Availability", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/data-states" + },{ + "title": "Processing Level", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/data-states" + },{ + "title": "Sign-Off Status", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/data-states" + },{ + "title": "Dataset Staging", + "mod": "Fri Feb 11 12:21:44 2022 -0500", + "tag": "h2", + "tagId": "", + "path": "/data-states" + },{}] \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 268640e..99dc0ca 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -108,3 +108,117 @@ exports.default = function () { gulp.watch('src/js/*.js', js) gulp.watch('src/styles/**/*.styl', touch) } + + +// Site search +const fs = require('fs'); +const path = require('path'); +const { DOMParser } = require('xmldom') +let marked = {} +let searchDict = {} + +function writeToFile(content, method = 'appendFile') { + fs[method]('./docs/js/site-search-data.json', content, (err) => { + if (err) { + console.error('Error writing file:', err); + return; + } + }) +} + +function createIndex(path, statsSync) { + const urlPath = path.replace('docs/', '') + console.log(path) + fs.readFile(path, 'utf8', (err, data) => { + try { + let htmlString = data + if (path.indexOf('.md') > -1) { + htmlString = marked.parse(data) + } + + const parser = new DOMParser(); + const doc = parser.parseFromString(htmlString, 'text/html'); + + const headerTags = ['h1', 'h2', 'h3', 'h4'] + for (let tag of headerTags) { + const headerCollection = doc.getElementsByTagName(tag) + const headers = Array.from(headerCollection); + if (headers.length) { + let content = '' + for (let h of headers) { + let title = h.textContent.replaceAll('"', "'").trim() + if (h.textContent != 'Table of Contents' && !searchDict[title+urlPath]) { + content += `{ + "title": "${title}", + "mod": "${statsSync.trim()}", + "tag": "${tag}", + "tagId": "${h.getAttribute('id')}", + "path": "/${urlPath.replace(new RegExp(/(index\.(html|md)|\.(html|md))/), '')}" + },` + searchDict[title+urlPath] = true + } + + } + writeToFile(content) + } + } + } catch(e) { + console.error('Index error: ', path, e) + } + }); +} + +function getAllFilesRecursively(directoryPath) { + let filePaths = []; + const filesAndFolders = fs.readdirSync(directoryPath); + const excludedNames = ['_site', '_layouts', '.sass-cache', 'js', ]; + const filteredContents = filesAndFolders.filter(item => !excludedNames.includes(item)); + + for (const item of filteredContents) { + const fullPath = path.join(directoryPath, item); + const stats = fs.statSync(fullPath); + + if (stats.isFile()) { + filePaths.push(fullPath); + } else if (stats.isDirectory()) { + filePaths = filePaths.concat(getAllFilesRecursively(fullPath)); + } + } + + for (let f of filePaths) { + if ( f.indexOf('.html') > -1 || f.indexOf('.md') > -1 ) { + try { + exec('git log -1 --format="%ad" -- '+f, (error, stdout, stderr) => { + createIndex(f, stdout) + }) + } + catch (err) { + console.error('Error getting file stats synchronously:', err); + } + } + } + + return filePaths; +} + +function buildSearchIndicies(done) { + + import('marked') + .then(module => { + marked = module + writeToFile('[', 'writeFile') + getAllFilesRecursively('./docs') + done() + }) + .catch(error => { + console.error('Failed to load module:', error); + }) +} + +function endBuildSearchIndicies(done) { + writeToFile('{}]') + done() +} + +gulp.task('search', buildSearchIndicies) +gulp.task('searchEnd', endBuildSearchIndicies) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index bc4755a..717d6ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,9 @@ "version": "0.1.0", "dependencies": { "gulp-header": "^2.0.9", - "gulp-stylus": "^3.0.0" + "gulp-stylus": "^3.0.0", + "marked": "^17.0.1", + "xmldom": "^0.6.0" }, "devDependencies": { "@babel/cli": "^7.19.3", @@ -6214,6 +6216,17 @@ "node": ">=0.10.0" } }, + "node_modules/marked": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.1.tgz", + "integrity": "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, "node_modules/matchdep": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", @@ -9262,6 +9275,14 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, + "node_modules/xmldom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", + "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -14132,6 +14153,11 @@ "object-visit": "^1.0.0" } }, + "marked": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.1.tgz", + "integrity": "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==" + }, "matchdep": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", @@ -16617,6 +16643,11 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, + "xmldom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", + "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index d7e2d05..d871326 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "html": "concurrently \"gulp html-layouts\" \"gulp html-pages\" ", "css": "gulp css && cp docs/css/main.css docs/_site/css/main.css", "start": "concurrently \"serve -l 3005 ./docs\" \"gulp\"", - "build": "concurrently \"npm:js\" \"npm:css\" \"npm:html\"" + "search": "gulp search && gulp searchEnd", + "build": "concurrently \"npm:js\" \"npm:css\" \"npm:html\" \"npm:search\"" }, "prettier": { "singleQuote": true, @@ -36,6 +37,8 @@ }, "dependencies": { "gulp-header": "^2.0.9", - "gulp-stylus": "^3.0.0" + "gulp-stylus": "^3.0.0", + "marked": "^17.0.1", + "xmldom": "^0.6.0" } } diff --git a/src/js/App.js b/src/js/App.js index 3c41baa..b76c977 100644 --- a/src/js/App.js +++ b/src/js/App.js @@ -94,8 +94,14 @@ class App { static async loadLanguageFile() { try { if (window.apps.locale) return true - const res = await Rest.get(`/lang/${LocalStore.getLanguage()}.json`) + let res = await Rest.get(`/lang/${LocalStore.getLanguage()}.json`) window.apps.locale = await res.json() + + res = await Rest.get('/js/site-search-data.json') + if (res.ok) { + window.apps.searchData = await res.json() + window.apps.searchData.pop() + } } catch (e) { console.error(e) } @@ -112,27 +118,11 @@ class App { } static applyStyles(args) { - let css = '' - $('img').each(function( i ) { - let width = $(this).attr('width') - if (width && parseInt(width) > 0 && !$(this).hasClass('w-fixed')) { - let cls = `imgw--${i}` - $(this).addClass(`${cls}`) - width = parseInt(width).toString() === width ? width + 'px' : width - css += `.${cls} {max-width: ${width};}` + $('table').each(function( i ) { + if (!$(this).parent().hasClass('c-table--scrollable')) { + $(this).wrap('
    ') } }) - if (css.length) { - $('body').append(``) - } - - new CodeCopy(document, {app: 'codeCopy', ...args}) - - $('pre').each(function( i ) { - new Pre(this, {app: '
    ', ...args})
    -        })
    -
    -
         }
     
         static applyTheme() {
    diff --git a/src/js/FileMeta.js b/src/js/FileMeta.js
    index 4355bd9..6e41cd2 100644
    --- a/src/js/FileMeta.js
    +++ b/src/js/FileMeta.js
    @@ -8,6 +8,14 @@ class FileMeta extends App {
             this.addDate()
         }
     
    +    toDate(lastMod) {
    +        let date = new Date(lastMod)
    +        let formattedDate = date.toLocaleDateString('en-US')
    +        let formattedTime = date.toLocaleTimeString('en-US')
    +
    +        this.$.date.html(formattedDate + ' @ ' + formattedTime)
    +    }
    +
         async addDate() {
             let lastMod = null
             try {
    @@ -16,21 +24,29 @@ class FileMeta extends App {
                     path += 'index'
                 }
                 if (!path) return
    +
    +            // Find file stat from search indicies
    +            let p = path
    +            
    +            for (let d of window.apps.searchData) {
    +                if (p.toLowerCase() == d.path.toLowerCase() && d.mod.length) {
    +                    this.toDate(d.mod)
    +                    this.$.label.addClass(this.classNames.active)
    +                    return
    +                }
    +            }
    +
    +            // If not found, use the meta from the server
                 let paths = []
                 if (path.split('.').pop() === path) {
                     paths = [`${path}.html`, `${path}.md`]
                 }
                 for (let p of paths) {
                     if (this.$.date.html() && this.$.date.html().length) return
    -
                     let r = await Rest.get(p, 'text/plain')
                     if (r.ok) {
                         lastMod = r.headers.get('last-modified')
    -                    let date = new Date(lastMod)
    -                    let formattedDate = date.toLocaleDateString('en-US')
    -                    let formattedTime = date.toLocaleTimeString('en-US')
    -
    -                    this.$.date.html(formattedDate + ' @ ' + formattedTime)
    +                    this.toDate(lastMod)
                         this.$.label.addClass(this.classNames.active)
                     } else {
                         this.$.label.removeClass(this.classNames.active)
    diff --git a/src/js/Search.js b/src/js/Search.js
    new file mode 100644
    index 0000000..733a232
    --- /dev/null
    +++ b/src/js/Search.js
    @@ -0,0 +1,83 @@
    +class Search extends App {
    +    constructor(el, args) {
    +        super(el, args)
    +        this.data = []
    +        this.$ = {
    +          btn: this.el.find('button'),
    +          io: this.el.find('input'),
    +          list: this.el.find('.list-group')
    +        }
    +
    +        this.getData()
    +        this.events()
    +    }
    +
    +    getData()  {
    +      this.data = window.apps.searchData
    +    }
    +
    +    searchSite(val) {
    +      let found = []
    +      let dict = {}
    +      for (let d of this.data) {
    +        if (d?.title.toLowerCase().indexOf(val.toLowerCase()) > -1 && !dict[d.path]) {
    +          found.push(d)
    +          dict[d.path] = true
    +        }
    +      }
    +      let html = ''
    +      for (let d of found) {
    +        html += `
  • ${d.title} ${d.path}
  • ` + } + this.$.list.addClass('is-active') + if (!found.length) { + html = '
  • No results
  • ' + } + this.$.list.html(html) + + + } + + clearResults() { + this.$.list.removeClass('is-active') + this.$.list.html('') + } + + closeSearch() { + this.$.io.val('') + this.clearResults() + this.$.io.addClass('is-hidden') + } + + events() { + this.$.btn.on('click', ((e)=> { + e.preventDefault() + this.clearResults() + if (this.$.io.val().length && !this.$.io.hasClass('is-hidden')) { + this.searchSite(this.$.io.val()) + } else { + this.$.io.val('') + this.$.io.toggleClass('is-hidden') + if (!this.$.io.hasClass('is-hidden')) { + this.$.io.focus() + } + } + + + + }).bind(this)) + + $(window).on('keydown', ((e) => { + if (this.isEsc(e)) { + this.closeSearch() + } + }).bind(this)); + + $('[role="main"]').on('click', ((e) => { + e.stopPropagation() + this.closeSearch() + }).bind(this)); + } + + +} \ No newline at end of file diff --git a/src/js/ZIndex.js b/src/js/ZIndex.js index 056bf69..6455ca7 100644 --- a/src/js/ZIndex.js +++ b/src/js/ZIndex.js @@ -20,11 +20,13 @@ function ZIndex(source, args = null) { breadcrumbs: Breadcrumbs, footer: Footer, fileMeta: FileMeta, - gtm: GTM + gtm: GTM, + search: Search } args = args || window.apps.init try { + App.applyStyles(args) for (let app in apps) { document .querySelectorAll(`[class*='js-app--${app}'], [data-js-${app}]`) diff --git a/src/pug/components/layout/header.pug b/src/pug/components/layout/header.pug index be3c3b5..ac5a0b1 100644 --- a/src/pug/components/layout/header.pug +++ b/src/pug/components/layout/header.pug @@ -14,4 +14,11 @@ header.c-header.navbar.navbar-expand-lg(role='navigation') span.navbar-toggler-icon .c-header__menu#js-header__menu.collapse.navbar-collapse ul.navbar-nav.mr-auto - | {% include {{ include.content_to_render }} %} \ No newline at end of file + | {% include {{ include.content_to_render }} %} + + .c-header__search.js-app--search + form + input.is-hidden#js-searchInput(type='search' placeholder='Search' aria-label='Search') + button.btn.btn-outline-success.my-2.my-sm-0(type='submit' aria-label="Search" aria-controls='js-searchInput') + i.fa.fa-search(aria-hidden='true') + .list-group \ No newline at end of file diff --git a/src/styles/components/_header.styl b/src/styles/components/_header.styl index c0c7a55..4cca30d 100644 --- a/src/styles/components/_header.styl +++ b/src/styles/components/_header.styl @@ -50,6 +50,56 @@ +md-max() top 15px + &__search + +lg() + pos-abs() + right -50px + input + padding 7px 10px + width auto + transition all .5s ease + opacity 1 + &.is-hidden + width 0 + opacity 0 + border 0 + padding 0 + .list-group + pos-abs() + z-index 1000 + background-color white + display flex + flex-direction column + padding-left 0 + margin-bottom 0 + width 300px + max-height 400px + overflow-y auto + overflow-x hidden + border-radius 3px + width 0 + opacity 0 + transition .5s ease opacity + &.is-active + border solid 1px $col-lgt-grey + width 300px + opacity 1 + li + margin 0 + border-bottom solid 1px $col-lgt-grey + a,span + font-weight normal + max-width 280px + white-space nowrap + overflow hidden + text-overflow ellipsis + font-size 14px + color $col-dk-grey + padding 5px 10px + display block + &:hover + color $col-primary-blue + li p1() color white @@ -64,6 +114,7 @@ pos-abs() right 5% font-size 1rem + margin-top 5px a color white diff --git a/src/styles/components/_table.styl b/src/styles/components/_table.styl new file mode 100644 index 0000000..f777008 --- /dev/null +++ b/src/styles/components/_table.styl @@ -0,0 +1,3 @@ +.c-table + &--scrollable + overflow auto scroll \ No newline at end of file From d3e6884fd30ed029c60b3ddecdaa4f479388e475 Mon Sep 17 00:00:00 2001 From: Lisa-Ann B Date: Fri, 16 Jan 2026 11:27:03 -0500 Subject: [PATCH 2/2] Add empty content to li::marker so displays nicely in mobile --- docs/css/main.css | 4 ++-- src/styles/components/_header.styl | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/css/main.css b/docs/css/main.css index 8b526d1..1f1db45 100644 --- a/docs/css/main.css +++ b/docs/css/main.css @@ -2,6 +2,6 @@ * hubmapdocs - * @version v0.1.0 * @link https://docs.hubmapconsortium.org/ - * @date Fri Jan 16 2026 10:59:12 GMT-0500 (Eastern Standard Time) + * @date Fri Jan 16 2026 11:25:18 GMT-0500 (Eastern Standard Time) */ -.h1{font-size:2.13rem;line-height:1.294117647058824}.h2{font-size:1.63rem;line-height:1.615384615384615}.h3{font-size:1.5rem;line-height:1.666666666666667}.h4{font-size:1.38rem;line-height:1.727272727272727}.p1{font-size:1.5rem;line-height:1.416666666666667}.p2{font-size:1.32rem;line-height:1.476190476190476}.p3{font-size:1.13rem;line-height:1.555555555555556}.p4{font-size:1rem;line-height:1.625}.p5{font-size:.88rem;line-height:1.714285714285714}.p6{font-size:.75rem;line-height:1.833333333333333}pre{box-shadow:0 0 10px rgba(0,0,0,0.1);color:#333;background-color:#fff;font-family:Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:14px;border-radius:2px;padding:10px;overflow:auto}code{background-color:#fcfcfc;color:#0f5b30}.clear{clear:both}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;line-height:24px;font-weight:340;background:#f2f2f2}html,body{height:100%}body{font-size:1rem;line-height:1.625;position:relative;line-height:1.5;text-size-adjust:none;font-family:Inter Variable,Helvetica,Arial,sans-serif}li{list-style-position:inside}a,a:visited{color:#2a6fb8;text-decoration:none;font-weight:bolder}a:hover{text-decoration:underline}.hide{display:none}details{margin-top:1em}ul ~ h1,ul ~ h2,ul ~ h3,ul ~ h4,ul ~ h5,ul ~ h6,table ~ h2,table ~ h3{margin-top:1rem}[tabindex="0"]:active,[tabindex="0"]:focus,[tabindex="1"]:active,[tabindex="1"]:focus,a:active,a:focus,button:active,button:focus,input:active,input:focus,select:active,select:focus,textarea:active,textarea:focus{outline:1px dotted #2a6fb8}table{width:auto;box-shadow:0 0 10px rgba(0,0,0,0.1);border-collapse:collapse;background:#fff}table tr{border:1px solid #ddd}table td,table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6;background-color:#fff !important}table th{font-weight:bold}.txt--highlight{background-color:#7fffd4;padding:.2em .3em}.c-documentation ul,.c-documentation ol{margin:0 0 15px 30px}.c-documentation h3,.c-documentation h4,.c-documentation h5{margin-top:1em}.c-documentation summary{background-color:#265a92;color:#fff;padding:7px;margin-top:5px;margin-bottom:5px}.c-documentation--dsg ol{box-sizing:border-box;list-style:decimal}.c-documentation--dsg li{list-style-position:outside}.c-breadcrumbs{margin-bottom:2em}@media (max-width:1024px){.c-breadcrumbs{margin-top:60px}}.c-breadcrumbs li{position:relative;list-style:none;display:inline-block;margin:0 10px}.c-breadcrumbs li.is-active a{color:#1e4879}.c-breadcrumbs li:last-child:after{content:none}.c-breadcrumbs li:first-child{margin-left:0}.c-breadcrumbs li:after{font-family:'FontAwesome';position:absolute;font-size:.57rem;content:'\f054';display:inline-block;margin-left:5px;top:5px}.c-code{box-shadow:0 0 10px rgba(0,0,0,0.1);color:#333;background-color:#fff;font-family:Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:14px;border-radius:2px;padding:10px;overflow:auto}.c-container{max-width:1000px;margin:auto;color:#333;margin:40px auto;margin-bottom:6em;min-height:calc(100vh - 100px)}@media (max-width:1024px){.c-container{padding:0 1em}}@media (max-width:1024px){.c-container{padding:0 2em}}.c-container section{margin:1em 0}.c-container p{margin:1em 0}.c-container .c-documentation--dsg img{width:inherit}@media (max-width:767px){.c-container img:not(.w-fixed){width:100% !important}}.c-fileMeta{font-size:.75rem;line-height:1.833333333333333;color:#807e7e;margin:1em 0}.c-fileMeta__label{display:none}.c-fileMeta__label.is-active{display:inline-block}.c-footer{position:inherit;color:#6c757d}.c-footer__main{font-weight:bold;text-align:right;padding:30px;border-top:solid 1px #ccc;background-color:#444a65;color:#fff}.c-footer__wrap{max-width:1000px;margin:auto}@media (max-width:1024px){.c-footer__wrap{padding:0 1em}}.c-footer__meta{max-width:1000px;margin:auto}@media (max-width:1024px){.c-footer__meta{padding:0 1em}}.c-header{position:relative;background-color:#444a65;border:none;padding-top:6px}@media (max-width:1024px){.c-header .lg{display:none}}@media (min-width:992px){.c-header{height:90px}}@media (max-width:1024px){.c-header{padding:15px 0}}.c-header > .c-header__main{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.c-header__sm{margin-left:60px;color:#fff}@media (min-width:992px){.c-header__sm{display:none}}.c-header__main{width:90%;margin:auto}@media (min-width:992px){.c-header__main{position:relative;max-width:1000px;margin:auto}}@media (min-width:992px) and (max-width:1024px){.c-header__main{padding:0 1em}}@media (max-width:1024px){.c-header__menu{margin-top:20px}}@media (min-width:992px){.c-header__menu{position:relative;margin-left:20%}}.c-header__logo{margin-right:50px;padding-top:0}.c-header__logo img{position:absolute;height:40px;top:-5px}@media (max-width:1024px){.c-header__logo img{top:15px}}@media (min-width:1025px){.c-header__search{position:absolute;right:-50px}}.c-header__search input{padding:7px 10px;width:auto;transition:all .5s ease;opacity:1}.c-header__search input.is-hidden{width:0;opacity:0;border:0;padding:0}.c-header__search .list-group{position:absolute;z-index:1000;background-color:#fff;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;width:300px;max-height:400px;overflow-y:auto;overflow-x:hidden;border-radius:3px;width:0;opacity:0;transition:.5s ease opacity}.c-header__search .list-group.is-active{border:solid 1px #eee;width:300px;opacity:1}.c-header__search .list-group li{margin:0;border-bottom:solid 1px #eee}.c-header__search .list-group a,.c-header__search .list-group span{font-weight:normal;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:#333;padding:5px 10px;display:block}.c-header__search .list-group a:hover,.c-header__search .list-group span:hover{color:#2a6fb8}.c-header li{font-size:1.5rem;line-height:1.416666666666667;color:#fff}@media (max-width:1024px){.c-header li{font-size:1.13rem;line-height:1.555555555555556}}.c-header li.h2{font-size:1.63rem;font-weight:bold}.c-header li.extra--right{position:absolute;right:5%;font-size:1rem;margin-top:5px}.c-header li a{color:#fff;text-decoration:none}.c-header li a:hover{color:#fff}@media (min-width:992px){.c-header li{font-size:1.5rem;line-height:1.416666666666667;list-style:none;display:inline-block;margin-left:15px;margin-right:15px;color:#fff}.c-header li a:hover{text-decoration:underline}.c-header li:first-child{margin-left:0}}.c-sidebar{position:relative}.c-sidebar .has-collapser{position:relative}.c-sidebar .has-collapser.is-open:after{content:'\f147'}.c-sidebar .has-collapser > ul{display:none}.c-sidebar .has-collapser > ul.is-visible{display:block}.c-sidebar .has-collapser:after{font-family:'FontAwesome';position:absolute;content:'\f196';width:24px;height:24px;top:15px;right:0;cursor:pointer}@media (min-width:1025px) and (max-width:1700px){.c-sidebar ~ .c-container{max-width:60%;margin-left:30%}}.c-sidebar.is-active .c-sidebar__main{position:fixed}.c-sidebar.is-static .c-sidebar__main{position:relative}.c-sidebar__wrap{position:absolute;width:20%}@media (max-width:1700px){.c-sidebar__wrap{width:25%}}@media (max-width:1024px){.c-sidebar__wrap{position:relative}}@media (max-width:1025px){.c-sidebar__wrap{width:100%}}.c-sidebar__main{position:relative;top:30px;padding-left:30px;padding-right:30px;height:80vh}@media (max-width:1024px){.c-sidebar__main{height:auto}}.c-sidebar__main > h2{margin-bottom:.8em}.c-sidebar__list{background:#fff;overflow-y:auto;border-bottom:solid 1px #eee}.c-sidebar__list > ul{border:solid 1px #eee;padding:1em}.c-sidebar__list > ul > li:first-child{border-top:none}.c-sidebar__list li{list-style:none;padding:.5em 0;border-top:solid 1px #eee}.c-sidebar__list li.has-children{font-size:1rem;line-height:1.625}.c-sidebar__list li.c-sidebar__level--2 a{font-weight:bold}.c-sidebar__list li.c-sidebar__level--3 a{padding-left:.8em;font-weight:normal}.c-sidebar__list ul li > ul a{font-size:.88rem;line-height:1.714285714285714;color:#333;padding-left:.4em}.c-sidebar__list ul li > ul a:before{font-family:'FontAwesome';content:'-';display:inline-block;margin-right:.5em}.c-sidebar__list ul.c-sidebar__level--1 li{padding-bottom:.2em}.c-sidebar__list ul.has-parent{margin-top:.5em}.c-table--scrollable{overflow:auto scroll}smuted,smuted a{font-size:13px;color:#6c757d !important}extlnk{display:inline-flex !important;align-items:center}extlnk:after{font-family:'FontAwesome';content:'\f08e';margin-left:.15rem;font-size:12px;color:#2a6fb8} \ No newline at end of file +.h1{font-size:2.13rem;line-height:1.294117647058824}.h2{font-size:1.63rem;line-height:1.615384615384615}.h3{font-size:1.5rem;line-height:1.666666666666667}.h4{font-size:1.38rem;line-height:1.727272727272727}.p1{font-size:1.5rem;line-height:1.416666666666667}.p2{font-size:1.32rem;line-height:1.476190476190476}.p3{font-size:1.13rem;line-height:1.555555555555556}.p4{font-size:1rem;line-height:1.625}.p5{font-size:.88rem;line-height:1.714285714285714}.p6{font-size:.75rem;line-height:1.833333333333333}pre{box-shadow:0 0 10px rgba(0,0,0,0.1);color:#333;background-color:#fff;font-family:Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:14px;border-radius:2px;padding:10px;overflow:auto}code{background-color:#fcfcfc;color:#0f5b30}.clear{clear:both}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;line-height:24px;font-weight:340;background:#f2f2f2}html,body{height:100%}body{font-size:1rem;line-height:1.625;position:relative;line-height:1.5;text-size-adjust:none;font-family:Inter Variable,Helvetica,Arial,sans-serif}li{list-style-position:inside}a,a:visited{color:#2a6fb8;text-decoration:none;font-weight:bolder}a:hover{text-decoration:underline}.hide{display:none}details{margin-top:1em}ul ~ h1,ul ~ h2,ul ~ h3,ul ~ h4,ul ~ h5,ul ~ h6,table ~ h2,table ~ h3{margin-top:1rem}[tabindex="0"]:active,[tabindex="0"]:focus,[tabindex="1"]:active,[tabindex="1"]:focus,a:active,a:focus,button:active,button:focus,input:active,input:focus,select:active,select:focus,textarea:active,textarea:focus{outline:1px dotted #2a6fb8}table{width:auto;box-shadow:0 0 10px rgba(0,0,0,0.1);border-collapse:collapse;background:#fff}table tr{border:1px solid #ddd}table td,table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6;background-color:#fff !important}table th{font-weight:bold}.txt--highlight{background-color:#7fffd4;padding:.2em .3em}.c-documentation ul,.c-documentation ol{margin:0 0 15px 30px}.c-documentation h3,.c-documentation h4,.c-documentation h5{margin-top:1em}.c-documentation summary{background-color:#265a92;color:#fff;padding:7px;margin-top:5px;margin-bottom:5px}.c-documentation--dsg ol{box-sizing:border-box;list-style:decimal}.c-documentation--dsg li{list-style-position:outside}.c-breadcrumbs{margin-bottom:2em}@media (max-width:1024px){.c-breadcrumbs{margin-top:60px}}.c-breadcrumbs li{position:relative;list-style:none;display:inline-block;margin:0 10px}.c-breadcrumbs li.is-active a{color:#1e4879}.c-breadcrumbs li:last-child:after{content:none}.c-breadcrumbs li:first-child{margin-left:0}.c-breadcrumbs li:after{font-family:'FontAwesome';position:absolute;font-size:.57rem;content:'\f054';display:inline-block;margin-left:5px;top:5px}.c-code{box-shadow:0 0 10px rgba(0,0,0,0.1);color:#333;background-color:#fff;font-family:Monaco,"Bitstream Vera Sans Mono","Lucida Console",Terminal,monospace;font-size:14px;border-radius:2px;padding:10px;overflow:auto}.c-container{max-width:1000px;margin:auto;color:#333;margin:40px auto;margin-bottom:6em;min-height:calc(100vh - 100px)}@media (max-width:1024px){.c-container{padding:0 1em}}@media (max-width:1024px){.c-container{padding:0 2em}}.c-container section{margin:1em 0}.c-container p{margin:1em 0}.c-container .c-documentation--dsg img{width:inherit}@media (max-width:767px){.c-container img:not(.w-fixed){width:100% !important}}.c-fileMeta{font-size:.75rem;line-height:1.833333333333333;color:#807e7e;margin:1em 0}.c-fileMeta__label{display:none}.c-fileMeta__label.is-active{display:inline-block}.c-footer{position:inherit;color:#6c757d}.c-footer__main{font-weight:bold;text-align:right;padding:30px;border-top:solid 1px #ccc;background-color:#444a65;color:#fff}.c-footer__wrap{max-width:1000px;margin:auto}@media (max-width:1024px){.c-footer__wrap{padding:0 1em}}.c-footer__meta{max-width:1000px;margin:auto}@media (max-width:1024px){.c-footer__meta{padding:0 1em}}.c-header{position:relative;background-color:#444a65;border:none;padding-top:6px}@media (max-width:1024px){.c-header .lg{display:none}}@media (min-width:992px){.c-header{height:90px}}@media (max-width:1024px){.c-header{padding:15px 0}}.c-header > .c-header__main{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.c-header__sm{margin-left:60px;color:#fff}@media (min-width:992px){.c-header__sm{display:none}}.c-header__main{width:90%;margin:auto}@media (min-width:992px){.c-header__main{position:relative;max-width:1000px;margin:auto}}@media (min-width:992px) and (max-width:1024px){.c-header__main{padding:0 1em}}@media (max-width:1024px){.c-header__menu{margin-top:20px}}@media (min-width:992px){.c-header__menu{position:relative;margin-left:20%}}.c-header__logo{margin-right:50px;padding-top:0}.c-header__logo img{position:absolute;height:40px;top:-5px}@media (max-width:1024px){.c-header__logo img{top:15px}}@media (min-width:1025px){.c-header__search{position:absolute;right:-50px}}.c-header__search input{padding:7px 10px;width:auto;transition:all .5s ease;opacity:1}.c-header__search input.is-hidden{width:0;opacity:0;border:0;padding:0}.c-header__search .list-group{position:absolute;z-index:1000;background-color:#fff;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;width:300px;max-height:400px;overflow-y:auto;overflow-x:hidden;border-radius:3px;width:0;opacity:0;transition:.5s ease opacity}.c-header__search .list-group.is-active{border:solid 1px #eee;width:300px;opacity:1}.c-header__search .list-group li{margin:0;border-bottom:solid 1px #eee}.c-header__search .list-group li::marker{display:none}.c-header__search .list-group a,.c-header__search .list-group span{font-weight:normal;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:#333;padding:5px 10px;display:block}.c-header__search .list-group a:hover,.c-header__search .list-group span:hover{color:#2a6fb8}.c-header li{font-size:1.5rem;line-height:1.416666666666667;color:#fff}@media (max-width:1024px){.c-header li{font-size:1.13rem;line-height:1.555555555555556}}.c-header li.h2{font-size:1.63rem;font-weight:bold}.c-header li.extra--right{position:absolute;right:5%;font-size:1rem;margin-top:5px}.c-header li a{color:#fff;text-decoration:none}.c-header li a:hover{color:#fff}@media (min-width:992px){.c-header li{font-size:1.5rem;line-height:1.416666666666667;list-style:none;display:inline-block;margin-left:15px;margin-right:15px;color:#fff}.c-header li a:hover{text-decoration:underline}.c-header li:first-child{margin-left:0}}.c-sidebar{position:relative}.c-sidebar .has-collapser{position:relative}.c-sidebar .has-collapser.is-open:after{content:'\f147'}.c-sidebar .has-collapser > ul{display:none}.c-sidebar .has-collapser > ul.is-visible{display:block}.c-sidebar .has-collapser:after{font-family:'FontAwesome';position:absolute;content:'\f196';width:24px;height:24px;top:15px;right:0;cursor:pointer}@media (min-width:1025px) and (max-width:1700px){.c-sidebar ~ .c-container{max-width:60%;margin-left:30%}}.c-sidebar.is-active .c-sidebar__main{position:fixed}.c-sidebar.is-static .c-sidebar__main{position:relative}.c-sidebar__wrap{position:absolute;width:20%}@media (max-width:1700px){.c-sidebar__wrap{width:25%}}@media (max-width:1024px){.c-sidebar__wrap{position:relative}}@media (max-width:1025px){.c-sidebar__wrap{width:100%}}.c-sidebar__main{position:relative;top:30px;padding-left:30px;padding-right:30px;height:80vh}@media (max-width:1024px){.c-sidebar__main{height:auto}}.c-sidebar__main > h2{margin-bottom:.8em}.c-sidebar__list{background:#fff;overflow-y:auto;border-bottom:solid 1px #eee}.c-sidebar__list > ul{border:solid 1px #eee;padding:1em}.c-sidebar__list > ul > li:first-child{border-top:none}.c-sidebar__list li{list-style:none;padding:.5em 0;border-top:solid 1px #eee}.c-sidebar__list li.has-children{font-size:1rem;line-height:1.625}.c-sidebar__list li.c-sidebar__level--2 a{font-weight:bold}.c-sidebar__list li.c-sidebar__level--3 a{padding-left:.8em;font-weight:normal}.c-sidebar__list ul li > ul a{font-size:.88rem;line-height:1.714285714285714;color:#333;padding-left:.4em}.c-sidebar__list ul li > ul a:before{font-family:'FontAwesome';content:'-';display:inline-block;margin-right:.5em}.c-sidebar__list ul.c-sidebar__level--1 li{padding-bottom:.2em}.c-sidebar__list ul.has-parent{margin-top:.5em}.c-table--scrollable{overflow:auto scroll}smuted,smuted a{font-size:13px;color:#6c757d !important}extlnk{display:inline-flex !important;align-items:center}extlnk:after{font-family:'FontAwesome';content:'\f08e';margin-left:.15rem;font-size:12px;color:#2a6fb8} \ No newline at end of file diff --git a/src/styles/components/_header.styl b/src/styles/components/_header.styl index 4cca30d..588f1c7 100644 --- a/src/styles/components/_header.styl +++ b/src/styles/components/_header.styl @@ -87,6 +87,8 @@ li margin 0 border-bottom solid 1px $col-lgt-grey + &::marker + content '' a,span font-weight normal max-width 280px