From 9d0632415fd5c603197bb48e63a9d7ffd7a0064b Mon Sep 17 00:00:00 2001
From: edouard-lopez
Date: Fri, 16 Feb 2024 19:12:51 +0000
Subject: [PATCH] Deployed 7f713ca with MkDocs version: 1.4.2
---
.nojekyll | 0
.pages | 4 +
404.html | 465 ++
RELEASE/index.html | 562 ++
about/index.html | 544 ++
assets/favicon.png | Bin 0 -> 5921 bytes
assets/images/favicon.png | Bin 0 -> 1870 bytes
assets/javascripts/bundle.51d95adb.min.js | 29 +
assets/javascripts/bundle.51d95adb.min.js.map | 8 +
assets/javascripts/lunr/min/lunr.ar.min.js | 1 +
assets/javascripts/lunr/min/lunr.da.min.js | 18 +
assets/javascripts/lunr/min/lunr.de.min.js | 18 +
assets/javascripts/lunr/min/lunr.du.min.js | 18 +
assets/javascripts/lunr/min/lunr.es.min.js | 18 +
assets/javascripts/lunr/min/lunr.fi.min.js | 18 +
assets/javascripts/lunr/min/lunr.fr.min.js | 18 +
assets/javascripts/lunr/min/lunr.hi.min.js | 1 +
assets/javascripts/lunr/min/lunr.hu.min.js | 18 +
assets/javascripts/lunr/min/lunr.it.min.js | 18 +
assets/javascripts/lunr/min/lunr.ja.min.js | 1 +
assets/javascripts/lunr/min/lunr.jp.min.js | 1 +
assets/javascripts/lunr/min/lunr.ko.min.js | 1 +
assets/javascripts/lunr/min/lunr.multi.min.js | 1 +
assets/javascripts/lunr/min/lunr.nl.min.js | 18 +
assets/javascripts/lunr/min/lunr.no.min.js | 18 +
assets/javascripts/lunr/min/lunr.pt.min.js | 18 +
assets/javascripts/lunr/min/lunr.ro.min.js | 18 +
assets/javascripts/lunr/min/lunr.ru.min.js | 18 +
.../lunr/min/lunr.stemmer.support.min.js | 1 +
assets/javascripts/lunr/min/lunr.sv.min.js | 18 +
assets/javascripts/lunr/min/lunr.ta.min.js | 1 +
assets/javascripts/lunr/min/lunr.th.min.js | 1 +
assets/javascripts/lunr/min/lunr.tr.min.js | 18 +
assets/javascripts/lunr/min/lunr.vi.min.js | 1 +
assets/javascripts/lunr/min/lunr.zh.min.js | 1 +
assets/javascripts/lunr/tinyseg.js | 206 +
assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++
.../workers/search.e5c33ebb.min.js | 42 +
.../workers/search.e5c33ebb.min.js.map | 8 +
assets/stylesheets/main.558e4712.min.css | 1 +
assets/stylesheets/main.558e4712.min.css.map | 1 +
assets/stylesheets/palette.2505c338.min.css | 1 +
.../stylesheets/palette.2505c338.min.css.map | 1 +
components/.pages | 1 +
components/colours/index.html | 547 ++
components/configuration/index.html | 486 ++
components/features-list/index.html | 1013 +++
components/features-overview/index.html | 548 ++
components/hero-banner/index.html | 489 ++
components/installation/index.html | 508 ++
components/logo/index.html | 487 ++
contributing/index.html | 780 ++
index.html | 1222 +++
requirements.txt | 7 +
search/search_index.json | 1 +
sitemap.xml | 58 +
sitemap.xml.gz | Bin 0 -> 204 bytes
stylesheets/extra.css | 15 +
58 files changed, 15023 insertions(+)
create mode 100644 .nojekyll
create mode 100644 .pages
create mode 100644 404.html
create mode 100644 RELEASE/index.html
create mode 100644 about/index.html
create mode 100644 assets/favicon.png
create mode 100644 assets/images/favicon.png
create mode 100644 assets/javascripts/bundle.51d95adb.min.js
create mode 100644 assets/javascripts/bundle.51d95adb.min.js.map
create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.ko.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.ta.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js
create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js
create mode 100644 assets/javascripts/lunr/tinyseg.js
create mode 100644 assets/javascripts/lunr/wordcut.js
create mode 100644 assets/javascripts/workers/search.e5c33ebb.min.js
create mode 100644 assets/javascripts/workers/search.e5c33ebb.min.js.map
create mode 100644 assets/stylesheets/main.558e4712.min.css
create mode 100644 assets/stylesheets/main.558e4712.min.css.map
create mode 100644 assets/stylesheets/palette.2505c338.min.css
create mode 100644 assets/stylesheets/palette.2505c338.min.css.map
create mode 100644 components/.pages
create mode 100644 components/colours/index.html
create mode 100644 components/configuration/index.html
create mode 100644 components/features-list/index.html
create mode 100644 components/features-overview/index.html
create mode 100644 components/hero-banner/index.html
create mode 100644 components/installation/index.html
create mode 100644 components/logo/index.html
create mode 100644 contributing/index.html
create mode 100644 index.html
create mode 100644 requirements.txt
create mode 100644 search/search_index.json
create mode 100644 sitemap.xml
create mode 100644 sitemap.xml.gz
create mode 100644 stylesheets/extra.css
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/.pages b/.pages
new file mode 100644
index 00000000..8d573b3c
--- /dev/null
+++ b/.pages
@@ -0,0 +1,4 @@
+nav:
+ - Documentation: .
+ - Contributing: contributing
+ - About: about
diff --git a/404.html b/404.html
new file mode 100644
index 00000000..ccd057b6
--- /dev/null
+++ b/404.html
@@ -0,0 +1,465 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 404 - Not found
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RELEASE/index.html b/RELEASE/index.html
new file mode 100644
index 00000000..3468d1b0
--- /dev/null
+++ b/RELEASE/index.html
@@ -0,0 +1,562 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RELEASE - Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RELEASE
+
+
+Releasing
+Release process is automated in the pipeline with the following steps.
+
+
Info
+
We follow semver , release is manage in the pipeline
+
+Test
+We run the test workflow on:
+
+Pull Request changing
+any **.fish
;
+and workflow (*.yml
) files ;
+on master
branch changing
+**.fish
files with the exception conf.d/pure.fish
, as we have dedicated mechanism to manage versions bump ;
+and workflow (*.yml
) files
+
+Versioning
+
+Versioning is done automatically based on commit messages and triggered only on master
branch.
+Details:
+
+We compute the project's next version using a GitHub Action ;
+Then update $pure_version
value in ./conf.d/pure.fish
;
+Finally commit and push the change to the repo.
+
+Adding new tag
+The add-version-tag.yml
pipeline is triggered only for master
when ./conf.d/pure.fish
is changed and add a tagged based on $pure_version
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/about/index.html b/about/index.html
new file mode 100644
index 00000000..c9dcea10
--- /dev/null
+++ b/about/index.html
@@ -0,0 +1,544 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ About - Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+About
+ License
+MIT
+Contributors
+ Maintainer
+
+ Thanks
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/favicon.png b/assets/favicon.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9435fdeabc34afc6eb101e513e8e4be92b38847
GIT binary patch
literal 5921
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
IM6N<$f(jP3KmY&$
literal 0
HcmV?d00001
diff --git a/assets/javascripts/bundle.51d95adb.min.js b/assets/javascripts/bundle.51d95adb.min.js
new file mode 100644
index 00000000..b20ec683
--- /dev/null
+++ b/assets/javascripts/bundle.51d95adb.min.js
@@ -0,0 +1,29 @@
+"use strict";(()=>{var Hi=Object.create;var xr=Object.defineProperty;var Pi=Object.getOwnPropertyDescriptor;var $i=Object.getOwnPropertyNames,kt=Object.getOwnPropertySymbols,Ii=Object.getPrototypeOf,Er=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable;var on=(e,t,r)=>t in e?xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))Er.call(t,r)&&on(e,r,t[r]);if(kt)for(var r of kt(t))an.call(t,r)&&on(e,r,t[r]);return e};var sn=(e,t)=>{var r={};for(var n in e)Er.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&kt)for(var n of kt(e))t.indexOf(n)<0&&an.call(e,n)&&(r[n]=e[n]);return r};var Ht=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Fi=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $i(t))!Er.call(e,o)&&o!==r&&xr(e,o,{get:()=>t[o],enumerable:!(n=Pi(t,o))||n.enumerable});return e};var yt=(e,t,r)=>(r=e!=null?Hi(Ii(e)):{},Fi(t||!e||!e.__esModule?xr(r,"default",{value:e,enumerable:!0}):r,e));var fn=Ht((wr,cn)=>{(function(e,t){typeof wr=="object"&&typeof cn!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(wr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(T){return!!(T&&T!==document&&T.nodeName!=="HTML"&&T.nodeName!=="BODY"&&"classList"in T&&"contains"in T.classList)}function f(T){var Ke=T.type,We=T.tagName;return!!(We==="INPUT"&&a[Ke]&&!T.readOnly||We==="TEXTAREA"&&!T.readOnly||T.isContentEditable)}function c(T){T.classList.contains("focus-visible")||(T.classList.add("focus-visible"),T.setAttribute("data-focus-visible-added",""))}function u(T){T.hasAttribute("data-focus-visible-added")&&(T.classList.remove("focus-visible"),T.removeAttribute("data-focus-visible-added"))}function p(T){T.metaKey||T.altKey||T.ctrlKey||(s(r.activeElement)&&c(r.activeElement),n=!0)}function m(T){n=!1}function d(T){s(T.target)&&(n||f(T.target))&&c(T.target)}function h(T){s(T.target)&&(T.target.classList.contains("focus-visible")||T.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),u(T.target))}function v(T){document.visibilityState==="hidden"&&(o&&(n=!0),B())}function B(){document.addEventListener("mousemove",z),document.addEventListener("mousedown",z),document.addEventListener("mouseup",z),document.addEventListener("pointermove",z),document.addEventListener("pointerdown",z),document.addEventListener("pointerup",z),document.addEventListener("touchmove",z),document.addEventListener("touchstart",z),document.addEventListener("touchend",z)}function re(){document.removeEventListener("mousemove",z),document.removeEventListener("mousedown",z),document.removeEventListener("mouseup",z),document.removeEventListener("pointermove",z),document.removeEventListener("pointerdown",z),document.removeEventListener("pointerup",z),document.removeEventListener("touchmove",z),document.removeEventListener("touchstart",z),document.removeEventListener("touchend",z)}function z(T){T.target.nodeName&&T.target.nodeName.toLowerCase()==="html"||(n=!1,re())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",m,!0),document.addEventListener("pointerdown",m,!0),document.addEventListener("touchstart",m,!0),document.addEventListener("visibilitychange",v,!0),B(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var un=Ht(Sr=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(c){return!1}},r=t(),n=function(c){var u={next:function(){var p=c.shift();return{done:p===void 0,value:p}}};return r&&(u[Symbol.iterator]=function(){return u}),u},o=function(c){return encodeURIComponent(c).replace(/%20/g,"+")},i=function(c){return decodeURIComponent(String(c).replace(/\+/g," "))},a=function(){var c=function(p){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var m=typeof p;if(m!=="undefined")if(m==="string")p!==""&&this._fromString(p);else if(p instanceof c){var d=this;p.forEach(function(re,z){d.append(z,re)})}else if(p!==null&&m==="object")if(Object.prototype.toString.call(p)==="[object Array]")for(var h=0;hd[0]?1:0}),c._entries&&(c._entries={});for(var p=0;p1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Sr);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(f,c){typeof f!="string"&&(f=String(f)),c&&typeof c!="string"&&(c=String(c));var u=document,p;if(c&&(e.location===void 0||c!==e.location.href)){c=c.toLowerCase(),u=document.implementation.createHTMLDocument(""),p=u.createElement("base"),p.href=c,u.head.appendChild(p);try{if(p.href.indexOf(c)!==0)throw new Error(p.href)}catch(T){throw new Error("URL unable to set base "+c+" due to "+T)}}var m=u.createElement("a");m.href=f,p&&(u.body.appendChild(m),m.href=m.href);var d=u.createElement("input");if(d.type="url",d.value=f,m.protocol===":"||!/:/.test(m.href)||!d.checkValidity()&&!c)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:m});var h=new e.URLSearchParams(this.search),v=!0,B=!0,re=this;["append","delete","set"].forEach(function(T){var Ke=h[T];h[T]=function(){Ke.apply(h,arguments),v&&(B=!1,re.search=h.toString(),B=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var z=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==z&&(z=this.search,B&&(v=!1,this.searchParams._fromString(this.search),v=!0))}})},a=i.prototype,s=function(f){Object.defineProperty(a,f,{get:function(){return this._anchorElement[f]},set:function(c){this._anchorElement[f]=c},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(f){s(f)}),Object.defineProperty(a,"search",{get:function(){return this._anchorElement.search},set:function(f){this._anchorElement.search=f,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(a,{toString:{get:function(){var f=this;return function(){return f.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(f){this._anchorElement.href=f,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(f){this._anchorElement.pathname=f},enumerable:!0},origin:{get:function(){var f={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],c=this._anchorElement.port!=f&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(c?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(f){},enumerable:!0},username:{get:function(){return""},set:function(f){},enumerable:!0}}),i.createObjectURL=function(f){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(f){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Sr)});var Qr=Ht((Lt,Kr)=>{/*!
+ * clipboard.js v2.0.11
+ * https://clipboardjs.com/
+ *
+ * Licensed MIT ยฉ Zeno Rocha
+ */(function(t,r){typeof Lt=="object"&&typeof Kr=="object"?Kr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Lt=="object"?Lt.ClipboardJS=r():t.ClipboardJS=r()})(Lt,function(){return function(){var e={686:function(n,o,i){"use strict";i.d(o,{default:function(){return ki}});var a=i(279),s=i.n(a),f=i(370),c=i.n(f),u=i(817),p=i.n(u);function m(j){try{return document.execCommand(j)}catch(O){return!1}}var d=function(O){var w=p()(O);return m("cut"),w},h=d;function v(j){var O=document.documentElement.getAttribute("dir")==="rtl",w=document.createElement("textarea");w.style.fontSize="12pt",w.style.border="0",w.style.padding="0",w.style.margin="0",w.style.position="absolute",w.style[O?"right":"left"]="-9999px";var k=window.pageYOffset||document.documentElement.scrollTop;return w.style.top="".concat(k,"px"),w.setAttribute("readonly",""),w.value=j,w}var B=function(O,w){var k=v(O);w.container.appendChild(k);var F=p()(k);return m("copy"),k.remove(),F},re=function(O){var w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},k="";return typeof O=="string"?k=B(O,w):O instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(O==null?void 0:O.type)?k=B(O.value,w):(k=p()(O),m("copy")),k},z=re;function T(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?T=function(w){return typeof w}:T=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},T(j)}var Ke=function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=O.action,k=w===void 0?"copy":w,F=O.container,q=O.target,Le=O.text;if(k!=="copy"&&k!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(q!==void 0)if(q&&T(q)==="object"&&q.nodeType===1){if(k==="copy"&&q.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(k==="cut"&&(q.hasAttribute("readonly")||q.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Le)return z(Le,{container:F});if(q)return k==="cut"?h(q):z(q,{container:F})},We=Ke;function Ie(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ie=function(w){return typeof w}:Ie=function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},Ie(j)}function Ti(j,O){if(!(j instanceof O))throw new TypeError("Cannot call a class as a function")}function nn(j,O){for(var w=0;w0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof F.action=="function"?F.action:this.defaultAction,this.target=typeof F.target=="function"?F.target:this.defaultTarget,this.text=typeof F.text=="function"?F.text:this.defaultText,this.container=Ie(F.container)==="object"?F.container:document.body}},{key:"listenClick",value:function(F){var q=this;this.listener=c()(F,"click",function(Le){return q.onClick(Le)})}},{key:"onClick",value:function(F){var q=F.delegateTarget||F.currentTarget,Le=this.action(q)||"copy",Rt=We({action:Le,container:this.container,target:this.target(q),text:this.text(q)});this.emit(Rt?"success":"error",{action:Le,text:Rt,trigger:q,clearSelection:function(){q&&q.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(F){return yr("action",F)}},{key:"defaultTarget",value:function(F){var q=yr("target",F);if(q)return document.querySelector(q)}},{key:"defaultText",value:function(F){return yr("text",F)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(F){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return z(F,q)}},{key:"cut",value:function(F){return h(F)}},{key:"isSupported",value:function(){var F=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],q=typeof F=="string"?[F]:F,Le=!!document.queryCommandSupported;return q.forEach(function(Rt){Le=Le&&!!document.queryCommandSupported(Rt)}),Le}}]),w}(s()),ki=Ri},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,f){for(;s&&s.nodeType!==o;){if(typeof s.matches=="function"&&s.matches(f))return s;s=s.parentNode}}n.exports=a},438:function(n,o,i){var a=i(828);function s(u,p,m,d,h){var v=c.apply(this,arguments);return u.addEventListener(m,v,h),{destroy:function(){u.removeEventListener(m,v,h)}}}function f(u,p,m,d,h){return typeof u.addEventListener=="function"?s.apply(null,arguments):typeof m=="function"?s.bind(null,document).apply(null,arguments):(typeof u=="string"&&(u=document.querySelectorAll(u)),Array.prototype.map.call(u,function(v){return s(v,p,m,d,h)}))}function c(u,p,m,d){return function(h){h.delegateTarget=a(h.target,p),h.delegateTarget&&d.call(u,h)}}n.exports=f},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(n,o,i){var a=i(879),s=i(438);function f(m,d,h){if(!m&&!d&&!h)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(h))throw new TypeError("Third argument must be a Function");if(a.node(m))return c(m,d,h);if(a.nodeList(m))return u(m,d,h);if(a.string(m))return p(m,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(m,d,h){return m.addEventListener(d,h),{destroy:function(){m.removeEventListener(d,h)}}}function u(m,d,h){return Array.prototype.forEach.call(m,function(v){v.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(m,function(v){v.removeEventListener(d,h)})}}}function p(m,d,h){return s(document.body,m,d,h)}n.exports=f},817:function(n){function o(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var f=window.getSelection(),c=document.createRange();c.selectNodeContents(i),f.removeAllRanges(),f.addRange(c),a=f.toString()}return a}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,a,s){var f=this.e||(this.e={});return(f[i]||(f[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var f=this;function c(){f.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),f=0,c=s.length;for(f;f{"use strict";/*!
+ * escape-html
+ * Copyright(c) 2012-2013 TJ Holowaychuk
+ * Copyright(c) 2015 Andreas Lubbe
+ * Copyright(c) 2015 Tiancheng "Timothy" Gu
+ * MIT Licensed
+ */var is=/["'&<>]/;Jo.exports=as;function as(e){var t=""+e,r=is.exec(t);if(!r)return t;var n,o="",i=0,a=0;for(i=r.index;i0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function W(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),o,i=[],a;try{for(;(t===void 0||t-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(s){a={error:s}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(a)throw a.error}}return i}function D(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,i;n1||s(m,d)})})}function s(m,d){try{f(n[m](d))}catch(h){p(i[0][3],h)}}function f(m){m.value instanceof Xe?Promise.resolve(m.value.v).then(c,u):p(i[0][2],m)}function c(m){s("next",m)}function u(m){s("throw",m)}function p(m,d){m(d),i.shift(),i.length&&s(i[0][0],i[0][1])}}function mn(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof xe=="function"?xe(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[i]=e[i]&&function(a){return new Promise(function(s,f){a=e[i](a),o(s,f,a.done,a.value)})}}function o(i,a,s,f){Promise.resolve(f).then(function(c){i({value:c,done:s})},a)}}function A(e){return typeof e=="function"}function at(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var $t=at(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription:
+`+r.map(function(n,o){return o+1+") "+n.toString()}).join(`
+ `):"",this.name="UnsubscriptionError",this.errors=r}});function De(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Fe=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,n,o,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=xe(a),f=s.next();!f.done;f=s.next()){var c=f.value;c.remove(this)}}catch(v){t={error:v}}finally{try{f&&!f.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var u=this.initialTeardown;if(A(u))try{u()}catch(v){i=v instanceof $t?v.errors:[v]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var m=xe(p),d=m.next();!d.done;d=m.next()){var h=d.value;try{dn(h)}catch(v){i=i!=null?i:[],v instanceof $t?i=D(D([],W(i)),W(v.errors)):i.push(v)}}}catch(v){n={error:v}}finally{try{d&&!d.done&&(o=m.return)&&o.call(m)}finally{if(n)throw n.error}}}if(i)throw new $t(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)dn(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&De(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&De(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Or=Fe.EMPTY;function It(e){return e instanceof Fe||e&&"closed"in e&&A(e.remove)&&A(e.add)&&A(e.unsubscribe)}function dn(e){A(e)?e():e.unsubscribe()}var Ae={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var st={setTimeout:function(e,t){for(var r=[],n=2;n0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,a=o.isStopped,s=o.observers;return i||a?Or:(this.currentObservers=null,s.push(r),new Fe(function(){n.currentObservers=null,De(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,a=n.isStopped;o?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new U;return r.source=this,r},t.create=function(r,n){return new wn(r,n)},t}(U);var wn=function(e){ne(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:Or},t}(E);var Et={now:function(){return(Et.delegate||Date).now()},delegate:void 0};var wt=function(e){ne(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=Et);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,a=n._infiniteTimeWindow,s=n._timestampProvider,f=n._windowTime;o||(i.push(r),!a&&i.push(s.now()+f)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,a=o._buffer,s=a.slice(),f=0;f0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=ut.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){var i;if(o===void 0&&(o=0),o!=null?o>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);var a=r.actions;n!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==n&&(ut.cancelAnimationFrame(n),r._scheduled=void 0)},t}(Ut);var On=function(e){ne(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(Wt);var we=new On(Tn);var R=new U(function(e){return e.complete()});function Dt(e){return e&&A(e.schedule)}function kr(e){return e[e.length-1]}function Qe(e){return A(kr(e))?e.pop():void 0}function Se(e){return Dt(kr(e))?e.pop():void 0}function Vt(e,t){return typeof kr(e)=="number"?e.pop():t}var pt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function zt(e){return A(e==null?void 0:e.then)}function Nt(e){return A(e[ft])}function qt(e){return Symbol.asyncIterator&&A(e==null?void 0:e[Symbol.asyncIterator])}function Kt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Ki(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Qt=Ki();function Yt(e){return A(e==null?void 0:e[Qt])}function Gt(e){return ln(this,arguments,function(){var r,n,o,i;return Pt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,Xe(r.read())];case 3:return n=a.sent(),o=n.value,i=n.done,i?[4,Xe(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,Xe(o)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function Bt(e){return A(e==null?void 0:e.getReader)}function $(e){if(e instanceof U)return e;if(e!=null){if(Nt(e))return Qi(e);if(pt(e))return Yi(e);if(zt(e))return Gi(e);if(qt(e))return _n(e);if(Yt(e))return Bi(e);if(Bt(e))return Ji(e)}throw Kt(e)}function Qi(e){return new U(function(t){var r=e[ft]();if(A(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Yi(e){return new U(function(t){for(var r=0;r=2;return function(n){return n.pipe(e?_(function(o,i){return e(o,i,n)}):me,Oe(1),r?He(t):zn(function(){return new Xt}))}}function Nn(){for(var e=[],t=0;t=2,!0))}function fe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new E}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,f=s===void 0?!0:s;return function(c){var u,p,m,d=0,h=!1,v=!1,B=function(){p==null||p.unsubscribe(),p=void 0},re=function(){B(),u=m=void 0,h=v=!1},z=function(){var T=u;re(),T==null||T.unsubscribe()};return g(function(T,Ke){d++,!v&&!h&&B();var We=m=m!=null?m:r();Ke.add(function(){d--,d===0&&!v&&!h&&(p=jr(z,f))}),We.subscribe(Ke),!u&&d>0&&(u=new et({next:function(Ie){return We.next(Ie)},error:function(Ie){v=!0,B(),p=jr(re,o,Ie),We.error(Ie)},complete:function(){h=!0,B(),p=jr(re,a),We.complete()}}),$(T).subscribe(u))})(c)}}function jr(e,t){for(var r=[],n=2;ne.next(document)),e}function K(e,t=document){return Array.from(t.querySelectorAll(e))}function V(e,t=document){let r=se(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function se(e,t=document){return t.querySelector(e)||void 0}function _e(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function tr(e){return L(b(document.body,"focusin"),b(document.body,"focusout")).pipe(ke(1),l(()=>{let t=_e();return typeof t!="undefined"?e.contains(t):!1}),N(e===_e()),Y())}function Be(e){return{x:e.offsetLeft,y:e.offsetTop}}function Yn(e){return L(b(window,"load"),b(window,"resize")).pipe(Ce(0,we),l(()=>Be(e)),N(Be(e)))}function rr(e){return{x:e.scrollLeft,y:e.scrollTop}}function dt(e){return L(b(e,"scroll"),b(window,"resize")).pipe(Ce(0,we),l(()=>rr(e)),N(rr(e)))}var Bn=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!zr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),xa?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!zr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=ya.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Jn=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),Zn=typeof WeakMap!="undefined"?new WeakMap:new Bn,eo=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=Ea.getInstance(),n=new Ra(t,r,this);Zn.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){eo.prototype[e]=function(){var t;return(t=Zn.get(this))[e].apply(t,arguments)}});var ka=function(){return typeof nr.ResizeObserver!="undefined"?nr.ResizeObserver:eo}(),to=ka;var ro=new E,Ha=I(()=>H(new to(e=>{for(let t of e)ro.next(t)}))).pipe(x(e=>L(Te,H(e)).pipe(C(()=>e.disconnect()))),J(1));function de(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){return Ha.pipe(S(t=>t.observe(e)),x(t=>ro.pipe(_(({target:r})=>r===e),C(()=>t.unobserve(e)),l(()=>de(e)))),N(de(e)))}function bt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function ar(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var no=new E,Pa=I(()=>H(new IntersectionObserver(e=>{for(let t of e)no.next(t)},{threshold:0}))).pipe(x(e=>L(Te,H(e)).pipe(C(()=>e.disconnect()))),J(1));function sr(e){return Pa.pipe(S(t=>t.observe(e)),x(t=>no.pipe(_(({target:r})=>r===e),C(()=>t.unobserve(e)),l(({isIntersecting:r})=>r))))}function oo(e,t=16){return dt(e).pipe(l(({y:r})=>{let n=de(e),o=bt(e);return r>=o.height-n.height-t}),Y())}var cr={drawer:V("[data-md-toggle=drawer]"),search:V("[data-md-toggle=search]")};function io(e){return cr[e].checked}function qe(e,t){cr[e].checked!==t&&cr[e].click()}function je(e){let t=cr[e];return b(t,"change").pipe(l(()=>t.checked),N(t.checked))}function $a(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ia(){return L(b(window,"compositionstart").pipe(l(()=>!0)),b(window,"compositionend").pipe(l(()=>!1))).pipe(N(!1))}function ao(){let e=b(window,"keydown").pipe(_(t=>!(t.metaKey||t.ctrlKey)),l(t=>({mode:io("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),_(({mode:t,type:r})=>{if(t==="global"){let n=_e();if(typeof n!="undefined")return!$a(n,r)}return!0}),fe());return Ia().pipe(x(t=>t?R:e))}function Me(){return new URL(location.href)}function ot(e){location.href=e.href}function so(){return new E}function co(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)co(e,r)}function M(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)co(n,o);return n}function fr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function fo(){return location.hash.substring(1)}function uo(e){let t=M("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Fa(){return b(window,"hashchange").pipe(l(fo),N(fo()),_(e=>e.length>0),J(1))}function po(){return Fa().pipe(l(e=>se(`[id="${e}"]`)),_(e=>typeof e!="undefined"))}function Nr(e){let t=matchMedia(e);return Zt(r=>t.addListener(()=>r(t.matches))).pipe(N(t.matches))}function lo(){let e=matchMedia("print");return L(b(window,"beforeprint").pipe(l(()=>!0)),b(window,"afterprint").pipe(l(()=>!1))).pipe(N(e.matches))}function qr(e,t){return e.pipe(x(r=>r?t():R))}function ur(e,t={credentials:"same-origin"}){return ve(fetch(`${e}`,t)).pipe(ce(()=>R),x(r=>r.status!==200?Tt(()=>new Error(r.statusText)):H(r)))}function Ue(e,t){return ur(e,t).pipe(x(r=>r.json()),J(1))}function mo(e,t){let r=new DOMParser;return ur(e,t).pipe(x(n=>n.text()),l(n=>r.parseFromString(n,"text/xml")),J(1))}function pr(e){let t=M("script",{src:e});return I(()=>(document.head.appendChild(t),L(b(t,"load"),b(t,"error").pipe(x(()=>Tt(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(l(()=>{}),C(()=>document.head.removeChild(t)),Oe(1))))}function ho(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function bo(){return L(b(window,"scroll",{passive:!0}),b(window,"resize",{passive:!0})).pipe(l(ho),N(ho()))}function vo(){return{width:innerWidth,height:innerHeight}}function go(){return b(window,"resize",{passive:!0}).pipe(l(vo),N(vo()))}function yo(){return Q([bo(),go()]).pipe(l(([e,t])=>({offset:e,size:t})),J(1))}function lr(e,{viewport$:t,header$:r}){let n=t.pipe(X("size")),o=Q([n,r]).pipe(l(()=>Be(e)));return Q([r,t,o]).pipe(l(([{height:i},{offset:a,size:s},{x:f,y:c}])=>({offset:{x:a.x-f,y:a.y-c+i},size:s})))}(()=>{function e(n,o){parent.postMessage(n,o||"*")}function t(...n){return n.reduce((o,i)=>o.then(()=>new Promise(a=>{let s=document.createElement("script");s.src=i,s.onload=a,document.body.appendChild(s)})),Promise.resolve())}var r=class{constructor(n){this.url=n,this.onerror=null,this.onmessage=null,this.onmessageerror=null,this.m=a=>{a.source===this.w&&(a.stopImmediatePropagation(),this.dispatchEvent(new MessageEvent("message",{data:a.data})),this.onmessage&&this.onmessage(a))},this.e=(a,s,f,c,u)=>{if(s===this.url.toString()){let p=new ErrorEvent("error",{message:a,filename:s,lineno:f,colno:c,error:u});this.dispatchEvent(p),this.onerror&&this.onerror(p)}};let o=new EventTarget;this.addEventListener=o.addEventListener.bind(o),this.removeEventListener=o.removeEventListener.bind(o),this.dispatchEvent=o.dispatchEvent.bind(o);let i=document.createElement("iframe");i.width=i.height=i.frameBorder="0",document.body.appendChild(this.iframe=i),this.w.document.open(),this.w.document.write(`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tip
+
See set_color
documentation for full possibilities.
+
+
+
Info
+
The absence of $
sign is expected in pure_
named colours.
+
+
+
+
+Base Color
+Inherited by
+Default
+
+
+
+
+pure_color_danger
+pure_color_prompt_on_error
+red
+
+
+pure_color_dark
+
+black
+
+
+pure_color_info
+pure_color_git_unpulled_commits
pure_color_git_unpushed_commits
+cyan
+
+
+pure_color_light
+pure_color_username_root
+white
+
+
+pure_color_mute
+pure_color_git_branch
pure_color_git_dirty
pure_color_git_stash
pure_color_hostname
pure_color_at_sign
pure_color_username_normal
pure_color_virtualenv
+brblack
+
+
+pure_color_normal
+pure_color_jobs
+normal
+
+
+pure_color_primary
+pure_color_current_directory
+blue
+
+
+pure_color_success
+pure_color_prompt_on_success
+magenta
+
+
+pure_color_warning
+pure_color_command_duration
+yellow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/configuration/index.html b/components/configuration/index.html
new file mode 100644
index 00000000..e10d5218
--- /dev/null
+++ b/components/configuration/index.html
@@ -0,0 +1,486 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration - Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+You can tweak pure
behavior and color by changing universal variables either directly in the terminal or in your config.fish
, e.g. :
+set --universal pure_show_system_time true
+set --universal pure_color_system_time pure_color_mute
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/features-list/index.html b/components/features-list/index.html
new file mode 100644
index 00000000..55f607e3
--- /dev/null
+++ b/components/features-list/index.html
@@ -0,0 +1,1013 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Features list - Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Features list
+
+
+Check For New Release
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_check_for_new_release
+false
+true
: check repo for new release (on every shell start)
+
+
+
+
+
๐ Faster Prompt
+
Checking new release send a HTTP request that slow down your prompt rendering
+as it wait for remote server response. Set it to false
speed up rendering:
+
set --universal pure_check_for_new_release false
+
+
+Container Detection (Docker)
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_container_detection
+true
+false
: Do not check pure runs inside a container (e.g. docker
, podman
, LXC
/LXD
, etc.). Detection is a bit tricky across OSes .
+
+
+pure_symbol_container_prefix
+
+Prefix when being inside a container (to customize )
+
+
+
+Current Working Directory
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_begin_prompt_with_current_directory
+true
+true
: pwd
git
, SSH
, duration .false
: SSH
pwd
git
, duration .
+
+
+pure_shorten_prompt_current_directory_length
+0
+Shorten every prompt path component but the last to X characters (0 do not shorten)
+
+
+pure_truncate_prompt_current_directory_keeps
+0
+Truncate working directory path in prompt, but keeps the last to n
components (0
full path in current directory)
+
+
+
+Git
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_git
+true
+Show info about Git repository.
+
+
+pure_symbol_git_dirty
+*
+Repository is Dirty (uncommitted/untracked changes).
+
+
+pure_symbol_git_stash
+โก
+Repository git stash status.
+
+
+pure_symbol_git_unpulled_commits
+โฃ
+Branch is behind upstream (commits to pull).
+
+
+pure_symbol_git_unpushed_commits
+โก
+Branch is ahead upstream (commits to push).
+
+
+
+
+ Need safer git
symbols ?
+
+Jobs
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_show_jobs
+false
+Show Number of running jobs
+
+
+
+Kubernetes
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_symbol_k8s_prefix
+โธ
+Prefix when being connected to Kubernetes/K8s
+
+
+pure_enable_k8s
+false
+true
: shows kubernetes
context and namespace.
+
+
+
+NixOS
+
+Indicate if nix develop shell is activated in their prompt.
+
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_nixdevshell
+false
+Indicate if a nix develop
shell is activated (based on IN_NIX_SHELL
).
+
+
+pure_symbol_nixdevshell_prefix
+โ๏ธ
+otherwise nerdfonts : '๓ฑ
' or '๏'
+
+
+pure_color_nixdevshell_prefix
+pure_color_info
+prefix color
+
+
+pure_color_nixdevshell_symbol
+pure_color_mute
+symbol color
+
+
+
+Prompt Symbol
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_symbol_prompt
+โฏ
+Prompt symbol.
+
+
+
+Python Virtualenv
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_virtualenv
+true
+Show virtual env name (based on VIRTUAL_ENV
or CONDA_DEFAULT_ENV
).
+
+
+pure_symbol_virtualenv_prefix
+
+Prefix when a Python virtual env is activated (default: undefined )
+
+
+
+AWS Profile
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_aws_profile
+true
+Show AWS profile name (based on AWS_VAULT
or AWS_PROFILE
).
+
+
+pure_symbol_aws_profile_prefix
+
+Prefix when a AWS profile is activated (default: undefined )
+
+
+
+Separate Error Symbol
+
+Single Line Prompt
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_single_line_prompt
+false
+true
: Compact prompt as a single line
+
+
+
+SSH Session
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_symbol_ssh_prefix
+
+Prefix when being connected to SSH session (default: undefined )
+
+
+
+Time & Duration
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_show_system_time
+false
+true
: shows system time before the prompt symbol (as %H:%M:%S
).
+
+
+pure_show_subsecond_command_duration
+false
+Show subsecond (ex. 1.5s) in command duration.
+
+
+pure_threshold_command_duration
+5
+Show command duration when above this value (seconds).
+
+
+
+Title
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_symbol_title_bar_separator
+-
+Separator in terminal's windows title.
+
+
+pure_shorten_window_title_current_directory_length
+0
+Shorten every window title path component but the last to X characters (0 do not shorten)
+
+
+pure_truncate_window_title_current_directory_keeps
+0
+Truncate working directory path in window title, but keeps the last to n
components (0
full path in window title)
+
+
+
+VI Mode
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_reverse_prompt_symbol_in_vimode
+true
+true
: โฎ
indicate a non-insert mode.false
: indicate vi mode with [I]
, [N]
, [V]
.
+
+
+pure_symbol_reverse_prompt
+โฎ
+VI non-insert mode symbol.
+
+
+
+Working as Root
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_show_prefix_root_prompt
+false
+true
: shows prompt prefix when logged in as root
.
+
+
+pure_symbol_prefix_root_prompt
+#
+Prefix prompt when logged in as root
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/features-overview/index.html b/components/features-overview/index.html
new file mode 100644
index 00000000..4d4c4ba9
--- /dev/null
+++ b/components/features-overview/index.html
@@ -0,0 +1,548 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Features overview - Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Features overview
+
+
+Overview
+Fully customizable (colors, symbols and features):
+
+๐ด means it's controlled by a feature flag, ๐ mean it's configurable.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/hero-banner/index.html b/components/hero-banner/index.html
new file mode 100644
index 00000000..24edf3cb
--- /dev/null
+++ b/components/hero-banner/index.html
@@ -0,0 +1,489 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hero banner - Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Pretty, minimal and fast Fish ๐ prompt, ported from zsh
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/installation/index.html b/components/installation/index.html
new file mode 100644
index 00000000..71a8473d
--- /dev/null
+++ b/components/installation/index.html
@@ -0,0 +1,508 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Installation - Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Success
+
Pure requires Fish โฅ3.x
+
+
+
+
+
fisher install pure-fish/pure
+
+
+
+
+
+Download the installer to /tmp
+
curl git.io/pure-fish --output /tmp/pure_installer.fish --location --silent
+
+
+
+Source and trigger the installer
+
source /tmp/pure_installer.fish; and install_pure
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/logo/index.html b/components/logo/index.html
new file mode 100644
index 00000000..0ffe6228
--- /dev/null
+++ b/components/logo/index.html
@@ -0,0 +1,487 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Logo - Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/contributing/index.html b/contributing/index.html
new file mode 100644
index 00000000..99dcb6fe
--- /dev/null
+++ b/contributing/index.html
@@ -0,0 +1,780 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contribution Guide - Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Contribution Guide
+Code of Conduct
+
+Be kind to others ;
+Critic code not people.
+
+ Work inside a Docker
+
+
Info
+
We use docker
to isolate from our working environment.
+
+Specify the FISH_VERSION
you want, and the CMD
executed by the container:
+make build-pure-on FISH_VERSION=3.3.1
+make dev-pure-on FISH_VERSION=3.3.1 CMD="fishtape tests/*.test.fish"
+
+Code Conventions
+Be Fishy
+Use the idiomatic test
instead of [
brackets (as recommended by the documentation).
+Be Explicit
+Use long form options , e.g. set --local
, as they are more explicit over cryptic 1-letter form.
+Naming Public Item
+
+Namespace your item with the prefix pure_
.
+
+
+Variable: pure_my_variable
+Function: pure_my_public_function
+Filename: pure_my_public_file.fish
+Test file: pure_my_public_file.test.fish
+
+Naming Private Item
+
+Namespace your item with the prefix _pure_
(begin with a single underscore).
+
+
+Variable: _pure_my_variable
+Function: _pure_my_private_function
+Filename: _pure_my_private_file.fish
+Test file: _pure_my_private_file.test.fish
+
+
+
+No need to use namespace when your variable variable is declare locally (set --local
) or your file/test file is related to tooling (installer.fish , testing package managers install).
+
+
+Filename: my_tool.fish
+Test file: my_tool.test.fish
+
+Global Variable
+
+Color's Variables
+
+Base colors should follow $pure_color_<meaning>
pattern (cf. bootstrap naming ).
+
+Example
+$pure_color_info # cyan
+$pure_color_success # green
+$pure_color_warning # yellow
+$pure_color_danger # red
+$pure_color_light
+$pure_color_dark
+$pure_color_muted # gray
+
+Feature's Variables
+
+Each feature should have a dedicated variables to allow customization.
+Feature's variables (flag, symbol, color) should use $pure_<type>_<feature>
naming pattern:
+
+
+
+Role
+Name pattern
+
+
+
+
+flag
+$pure_<verb>_<feature>
+
+
+color
+$pure_color_<feature>
+
+
+symbol
+$pure_symbol_<feature>
+
+
+
+
+Example
+$pure_enable_git_status
+
+$pure_symbol_git_unpushed_commits
+
+$pure_color_git_unpulled_commits
+
+Feature Flag's Variable
+
+Name should follow $pure_<verb>_<feature>
pattern, where:
+
+verb
describe the action triggered by the feature (i.e. separate
, begin
, show
, etc.) ;
+feature
descibre the what of the feature (i.e. prompt_on_error
, with_current_directory
, git_status
, etc.).
+Value should be a boolean .
+
+
+Example
+$pure_begin_prompt_with_current_directory = true
+
+$pure_enable_git_async = false
+
+Avoid abbreviation
+
+Use complete word over abbreviation.
+
+Example
+$pure_threshold_command_duration
+
+
+Releasing
+Release process is automated in the pipeline with the following steps.
+
+
Info
+
We follow semver , release is manage in the pipeline
+
+Test
+We run the test workflow on:
+
+Pull Request changing
+any **.fish
;
+and workflow (*.yml
) files ;
+on master
branch changing
+**.fish
files with the exception conf.d/pure.fish
, as we have dedicated mechanism to manage versions bump ;
+and workflow (*.yml
) files
+
+Versioning
+
+Versioning is done automatically based on commit messages and triggered only on master
branch.
+Details:
+
+We compute the project's next version using a GitHub Action ;
+Then update $pure_version
value in ./conf.d/pure.fish
;
+Finally commit and push the change to the repo.
+
+Adding new tag
+The add-version-tag.yml
pipeline is triggered only for master
when ./conf.d/pure.fish
is changed and add a tagged based on $pure_version
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..51119757
--- /dev/null
+++ b/index.html
@@ -0,0 +1,1222 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Pure.fish Documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Pure โฏโฎโฏ
+
+
+Pretty, minimal and fast Fish ๐ prompt, ported from zsh
.
+
+
+
+
+
+
+ Install
+
+
+
Success
+
Pure requires Fish โฅ3.x
+
+
+
+
+
fisher install pure-fish/pure
+
+
+
+
+
+Download the installer to /tmp
+
curl git.io/pure-fish --output /tmp/pure_installer.fish --location --silent
+
+
+
+Source and trigger the installer
+
source /tmp/pure_installer.fish; and install_pure
+
+
+
+
+
+
+ Configuration
+
+You can tweak pure
behavior and color by changing universal variables either directly in the terminal or in your config.fish
, e.g. :
+set --universal pure_show_system_time true
+set --universal pure_color_system_time pure_color_mute
+
+Features
+
+Overview
+Fully customizable (colors, symbols and features):
+
+๐ด means it's controlled by a feature flag, ๐ mean it's configurable.
+
+
+
+
+Check For New Release
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_check_for_new_release
+false
+true
: check repo for new release (on every shell start)
+
+
+
+
+
๐ Faster Prompt
+
Checking new release send a HTTP request that slow down your prompt rendering
+as it wait for remote server response. Set it to false
speed up rendering:
+
set --universal pure_check_for_new_release false
+
+
+Container Detection (Docker)
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_container_detection
+true
+false
: Do not check pure runs inside a container (e.g. docker
, podman
, LXC
/LXD
, etc.). Detection is a bit tricky across OSes .
+
+
+pure_symbol_container_prefix
+
+Prefix when being inside a container (to customize )
+
+
+
+Current Working Directory
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_begin_prompt_with_current_directory
+true
+true
: pwd
git
, SSH
, duration .false
: SSH
pwd
git
, duration .
+
+
+pure_shorten_prompt_current_directory_length
+0
+Shorten every prompt path component but the last to X characters (0 do not shorten)
+
+
+pure_truncate_prompt_current_directory_keeps
+0
+Truncate working directory path in prompt, but keeps the last to n
components (0
full path in current directory)
+
+
+
+Git
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_git
+true
+Show info about Git repository.
+
+
+pure_symbol_git_dirty
+*
+Repository is Dirty (uncommitted/untracked changes).
+
+
+pure_symbol_git_stash
+โก
+Repository git stash status.
+
+
+pure_symbol_git_unpulled_commits
+โฃ
+Branch is behind upstream (commits to pull).
+
+
+pure_symbol_git_unpushed_commits
+โก
+Branch is ahead upstream (commits to push).
+
+
+
+
+ Need safer git
symbols ?
+
+Jobs
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_show_jobs
+false
+Show Number of running jobs
+
+
+
+Kubernetes
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_symbol_k8s_prefix
+โธ
+Prefix when being connected to Kubernetes/K8s
+
+
+pure_enable_k8s
+false
+true
: shows kubernetes
context and namespace.
+
+
+
+NixOS
+
+Indicate if nix develop shell is activated in their prompt.
+
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_nixdevshell
+false
+Indicate if a nix develop
shell is activated (based on IN_NIX_SHELL
).
+
+
+pure_symbol_nixdevshell_prefix
+โ๏ธ
+otherwise nerdfonts : '๓ฑ
' or '๏'
+
+
+pure_color_nixdevshell_prefix
+pure_color_info
+prefix color
+
+
+pure_color_nixdevshell_symbol
+pure_color_mute
+symbol color
+
+
+
+Prompt Symbol
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_symbol_prompt
+โฏ
+Prompt symbol.
+
+
+
+Python Virtualenv
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_virtualenv
+true
+Show virtual env name (based on VIRTUAL_ENV
or CONDA_DEFAULT_ENV
).
+
+
+pure_symbol_virtualenv_prefix
+
+Prefix when a Python virtual env is activated (default: undefined )
+
+
+
+AWS Profile
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_aws_profile
+true
+Show AWS profile name (based on AWS_VAULT
or AWS_PROFILE
).
+
+
+pure_symbol_aws_profile_prefix
+
+Prefix when a AWS profile is activated (default: undefined )
+
+
+
+Separate Error Symbol
+
+Single Line Prompt
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_enable_single_line_prompt
+false
+true
: Compact prompt as a single line
+
+
+
+SSH Session
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_symbol_ssh_prefix
+
+Prefix when being connected to SSH session (default: undefined )
+
+
+
+Time & Duration
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_show_system_time
+false
+true
: shows system time before the prompt symbol (as %H:%M:%S
).
+
+
+pure_show_subsecond_command_duration
+false
+Show subsecond (ex. 1.5s) in command duration.
+
+
+pure_threshold_command_duration
+5
+Show command duration when above this value (seconds).
+
+
+
+Title
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_symbol_title_bar_separator
+-
+Separator in terminal's windows title.
+
+
+pure_shorten_window_title_current_directory_length
+0
+Shorten every window title path component but the last to X characters (0 do not shorten)
+
+
+pure_truncate_window_title_current_directory_keeps
+0
+Truncate working directory path in window title, but keeps the last to n
components (0
full path in window title)
+
+
+
+VI Mode
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_reverse_prompt_symbol_in_vimode
+true
+true
: โฎ
indicate a non-insert mode.false
: indicate vi mode with [I]
, [N]
, [V]
.
+
+
+pure_symbol_reverse_prompt
+โฎ
+VI non-insert mode symbol.
+
+
+
+Working as Root
+
+
+
+Option
+Default
+Description
+
+
+
+
+pure_show_prefix_root_prompt
+false
+true
: shows prompt prefix when logged in as root
.
+
+
+pure_symbol_prefix_root_prompt
+#
+Prefix prompt when logged in as root
.
+
+
+
+Colours
+
+
+
Tip
+
See set_color
documentation for full possibilities.
+
+
+
Info
+
The absence of $
sign is expected in pure_
named colours.
+
+
+
+
+Base Color
+Inherited by
+Default
+
+
+
+
+pure_color_danger
+pure_color_prompt_on_error
+red
+
+
+pure_color_dark
+
+black
+
+
+pure_color_info
+pure_color_git_unpulled_commits
pure_color_git_unpushed_commits
+cyan
+
+
+pure_color_light
+pure_color_username_root
+white
+
+
+pure_color_mute
+pure_color_git_branch
pure_color_git_dirty
pure_color_git_stash
pure_color_hostname
pure_color_at_sign
pure_color_username_normal
pure_color_virtualenv
+brblack
+
+
+pure_color_normal
+pure_color_jobs
+normal
+
+
+pure_color_primary
+pure_color_current_directory
+blue
+
+
+pure_color_success
+pure_color_prompt_on_success
+magenta
+
+
+pure_color_warning
+pure_color_command_duration
+yellow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 00000000..f3df00c9
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,7 @@
+pymdown-extensions
+mkdocs-material
+mkdocs-awesome-pages-plugin
+mkdocs-include-markdown-plugin
+mkdocs-git-committers-plugin-2
+mkdocs-git-authors-plugin
+
diff --git a/search/search_index.json b/search/search_index.json
new file mode 100644
index 00000000..8f6437c8
--- /dev/null
+++ b/search/search_index.json
@@ -0,0 +1 @@
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Home","text":""},{"location":"#pure","title":"Pure \u276f\u276e\u276f
","text":"Pretty, minimal and fast Fish \ud83d\udc1f prompt, ported from zsh
.
"},{"location":"#install","title":"Install","text":"Success
Pure requires Fish \u22653.x
FisherManually fisher install pure-fish/pure\n
Download the installer to /tmp
curl git.io/pure-fish --output /tmp/pure_installer.fish --location --silent\n
Source and trigger the installer
source /tmp/pure_installer.fish; and install_pure\n
"},{"location":"#configuration","title":"Configuration","text":"You can tweak pure
behavior and color by changing universal variables either directly in the terminal or in your config.fish
, e.g.:
set --universal pure_show_system_time true\nset --universal pure_color_system_time pure_color_mute\n
"},{"location":"#features","title":"Features","text":""},{"location":"#overview","title":"Overview","text":"Fully customizable (colors, symbols and features):
Excellent prompt character \u276f
\ud83d\udee0:
Change \u276f
to red when previous command has failed \ud83d\udee0 ; Start prompt with current working directory \ud83c\udff4 ; Compact-mode (single-line prompt) \ud83c\udff4 ; Check for new release on start \ud83c\udff4\ud83d\udc0c ;
Display username and hostname when in an SSH
session \ud83d\udee0 ; Display command duration when longer than 5
seconds \ud83d\udee0 ; Display Python
virtualenv when activated \ud83c\udff4\ud83d\udee0 ; Display AWS
profile when set \ud83c\udff4\ud83d\udee0 ; Display VI
mode and custom symbol for non-insert mode \ud83c\udff4\ud83d\udee0 ; Display kubernetes
context and namespace \ud83c\udff4\ud83d\udee0 ; Detect when running in a container (e.g. docker
, podman
, LXC
/LXD
) \ud83c\udff4\ud83d\udee0 Indicate if a nix develop
shell is activated \ud83c\udff4\ud83d\udee0. Show system time \ud83c\udff4 ; Show number of running jobs \ud83c\udff4 ; Prefix when root
\ud83c\udff4\ud83d\udee0 ; Display git
branch name \ud83c\udff4\ud83d\udee0 ;
Display *
when git
repository is dirty ; Display \u2261
when git
repository is stashed ; Display \u21e1
when branch is ahead (commits to push) ; Display \u21e3
when branch is behind (commits to pull) ; Async update when configured with fish-async-prompt ; Update terminal title with current folder and command \ud83d\udee0 ;
Shorten or truncate current folder component \ud83c\udff4\ud83d\udee0 ; and more\u2026 \ud83c\udff4 means it's controlled by a feature flag, \ud83d\udee0 mean it's configurable.
"},{"location":"#check-for-new-release","title":"Check For New Release","text":"Option Default Description pure_check_for_new_release
false
true
: check repo for new release (on every shell start) \ud83d\udc0c Faster Prompt
Checking new release send a HTTP request that slow down your prompt rendering as it wait for remote server response. Set it to false
speed up rendering:
set --universal pure_check_for_new_release false\n
"},{"location":"#container-detection-docker","title":"Container Detection (Docker)","text":"Option Default Description pure_enable_container_detection
true
false
: Do not check pure runs inside a container (e.g. docker
, podman
, LXC
/LXD
, etc.). Detection is a bit tricky across OSes. pure_symbol_container_prefix
Prefix when being inside a container (to customize)"},{"location":"#current-working-directory","title":"Current Working Directory","text":"Option Default Description pure_begin_prompt_with_current_directory
true
true
: pwd
git
, SSH
, duration.false
: SSH
pwd
git
, duration. pure_shorten_prompt_current_directory_length
0
Shorten every prompt path component but the last to X characters (0 do not shorten) pure_truncate_prompt_current_directory_keeps
0
Truncate working directory path in prompt, but keeps the last to n
components (0
full path in current directory)"},{"location":"#git","title":"Git","text":"Option Default Description pure_enable_git
true
Show info about Git repository. pure_symbol_git_dirty
*
Repository is Dirty (uncommitted/untracked changes). pure_symbol_git_stash
\u2261
Repository git stash status. pure_symbol_git_unpulled_commits
\u21e3
Branch is behind upstream (commits to pull). pure_symbol_git_unpushed_commits
\u21e1
Branch is ahead upstream (commits to push). Need safer git
symbols?
"},{"location":"#jobs","title":"Jobs","text":"Option Default Description pure_show_jobs
false
Show Number of running jobs"},{"location":"#kubernetes","title":"Kubernetes","text":"Option Default Description pure_symbol_k8s_prefix
\u2638
Prefix when being connected to Kubernetes/K8s pure_enable_k8s
false
true
: shows kubernetes
context and namespace."},{"location":"#nixos","title":"NixOS","text":"Indicate if nix develop shell is activated in their prompt.
Option Default Description pure_enable_nixdevshell
false
Indicate if a nix develop
shell is activated (based on IN_NIX_SHELL
). pure_symbol_nixdevshell_prefix
\u2744\ufe0f
otherwise nerdfonts: '\udb84\udd05' or '\uf313' pure_color_nixdevshell_prefix
pure_color_info
prefix color pure_color_nixdevshell_symbol
pure_color_mute
symbol color"},{"location":"#prompt-symbol","title":"Prompt Symbol","text":"Option Default Description pure_symbol_prompt
\u276f
Prompt symbol."},{"location":"#python-virtualenv","title":"Python Virtualenv","text":"Option Default Description pure_enable_virtualenv
true
Show virtual env name (based on VIRTUAL_ENV
or CONDA_DEFAULT_ENV
). pure_symbol_virtualenv_prefix
Prefix when a Python virtual env is activated (default: undefined)"},{"location":"#aws-profile","title":"AWS Profile","text":"Option Default Description pure_enable_aws_profile
true
Show AWS profile name (based on AWS_VAULT
or AWS_PROFILE
). pure_symbol_aws_profile_prefix
Prefix when a AWS profile is activated (default: undefined)"},{"location":"#separate-error-symbol","title":"Separate Error Symbol","text":"Option Default Description pure_separate_prompt_on_error
false
Show last command exit code as a second prompt symbol."},{"location":"#single-line-prompt","title":"Single Line Prompt","text":"Option Default Description pure_enable_single_line_prompt
false
true
: Compact prompt as a single line"},{"location":"#ssh-session","title":"SSH Session","text":"Option Default Description pure_symbol_ssh_prefix
Prefix when being connected to SSH session (default: undefined)"},{"location":"#time-duration","title":"Time & Duration","text":"Option Default Description pure_show_system_time
false
true
: shows system time before the prompt symbol (as %H:%M:%S
). pure_show_subsecond_command_duration
false
Show subsecond (ex. 1.5s) in command duration. pure_threshold_command_duration
5
Show command duration when above this value (seconds)."},{"location":"#title","title":"Title","text":"Option Default Description pure_symbol_title_bar_separator
-
Separator in terminal's windows title. pure_shorten_window_title_current_directory_length
0
Shorten every window title path component but the last to X characters (0 do not shorten) pure_truncate_window_title_current_directory_keeps
0
Truncate working directory path in window title, but keeps the last to n
components (0
full path in window title)"},{"location":"#vi-mode","title":"VI Mode","text":"Option Default Description pure_reverse_prompt_symbol_in_vimode
true
true
: \u276e
indicate a non-insert mode.false
: indicate vi mode with [I]
, [N]
, [V]
. pure_symbol_reverse_prompt
\u276e
VI non-insert mode symbol."},{"location":"#working-as-root","title":"Working as Root","text":"Option Default Description pure_show_prefix_root_prompt
false
true
: shows prompt prefix when logged in as root
. pure_symbol_prefix_root_prompt
#
Prefix prompt when logged in as root
."},{"location":"#colours","title":"Colours","text":"Tip
See set_color
documentation for full possibilities.
Info
The absence of $
sign is expected in pure_
named colours.
Base Color Inherited by Default pure_color_danger
pure_color_prompt_on_error
red
pure_color_dark
black
pure_color_info
pure_color_git_unpulled_commits
pure_color_git_unpushed_commits
cyan
pure_color_light
pure_color_username_root
white
pure_color_mute
pure_color_git_branch
pure_color_git_dirty
pure_color_git_stash
pure_color_hostname
pure_color_at_sign
pure_color_username_normal
pure_color_virtualenv
brblack
pure_color_normal
pure_color_jobs
normal
pure_color_primary
pure_color_current_directory
blue
pure_color_success
pure_color_prompt_on_success
magenta
pure_color_warning
pure_color_command_duration
yellow
"},{"location":"RELEASE/","title":"RELEASE","text":""},{"location":"RELEASE/#releasing","title":"Releasing","text":"Release process is automated in the pipeline with the following steps.
Info
We follow semver, release is manage in the pipeline
"},{"location":"RELEASE/#test","title":"Test","text":"We run the test workflow on:
Pull Request changing any **.fish
; and workflow (*.yml
) files ; on master
branch changing **.fish
files with the exception conf.d/pure.fish
, as we have dedicated mechanism to manage versions bump ; and workflow (*.yml
) files "},{"location":"RELEASE/#versioning","title":"Versioning","text":"Success
Commit messages must follow conventional commits convention.
Versioning is done automatically based on commit messages and triggered only on master
branch.
Details:
We compute the project's next version using a GitHub Action ; Then update $pure_version
value in ./conf.d/pure.fish
; Finally commit and push the change to the repo. "},{"location":"RELEASE/#adding-new-tag","title":"Adding new tag","text":"The add-version-tag.yml
pipeline is triggered only for master
when ./conf.d/pure.fish
is changed and add a tagged based on $pure_version
.
"},{"location":"about/","title":"About","text":""},{"location":"about/#license","title":"License","text":"MIT
"},{"location":"about/#contributors","title":"Contributors","text":""},{"location":"about/#maintainer","title":"Maintainer","text":""},{"location":"about/#thanks","title":"Thanks","text":" @andreiborisov for the docker images ; @jorgebucaran for fishtape ; @rafaelrinaldi for starting the project ; "},{"location":"contributing/","title":"Contribution Guide","text":""},{"location":"contributing/#code-of-conduct","title":"Code of Conduct","text":" Be kind to others ; Critic code not people. "},{"location":"contributing/#work-inside-a-docker","title":"Work inside a Docker","text":"Info
We use docker
to isolate from our working environment.
Specify the FISH_VERSION
you want, and the CMD
executed by the container:
make build-pure-on FISH_VERSION=3.3.1\nmake dev-pure-on FISH_VERSION=3.3.1 CMD=\"fishtape tests/*.test.fish\"\n
"},{"location":"contributing/#code-conventions","title":"Code Conventions","text":""},{"location":"contributing/#be-fishy","title":"Be Fishy","text":"Use the idiomatic test
instead of [
brackets (as recommended by the documentation).
"},{"location":"contributing/#be-explicit","title":"Be Explicit","text":"Use long form options, e.g. set --local
, as they are more explicit over cryptic 1-letter form.
"},{"location":"contributing/#naming-public-item","title":"Naming Public Item","text":"Namespace your item with the prefix pure_
.
Variable: pure_my_variable
Function: pure_my_public_function
Filename: pure_my_public_file.fish
Test file: pure_my_public_file.test.fish
"},{"location":"contributing/#naming-private-item","title":"Naming Private Item","text":"Namespace your item with the prefix _pure_
(begin with a single underscore).
Variable: _pure_my_variable
Function: _pure_my_private_function
Filename: _pure_my_private_file.fish
Test file: _pure_my_private_file.test.fish
"},{"location":"contributing/#local-and-tools","title":"Local and Tools","text":"No need to use namespace when your variable variable is declare locally (set --local
) or your file/test file is related to tooling (installer.fish, testing package managers install).
Filename: my_tool.fish
Test file: my_tool.test.fish
"},{"location":"contributing/#global-variable","title":"Global Variable","text":" Public settings' default values are placed in conf.d/pure.fish Private settings and anything else pure
needs to do on init are placed in conf.d/__pure_init.fish. "},{"location":"contributing/#colors-variables","title":"Color's Variables","text":"Base colors should follow $pure_color_<meaning>
pattern (cf. bootstrap naming).
"},{"location":"contributing/#example","title":"Example","text":"$pure_color_info # cyan\n$pure_color_success # green\n$pure_color_warning # yellow\n$pure_color_danger # red\n$pure_color_light\n$pure_color_dark\n$pure_color_muted # gray\n
"},{"location":"contributing/#features-variables","title":"Feature's Variables","text":"Each feature should have a dedicated variables to allow customization. Feature's variables (flag, symbol, color) should use $pure_<type>_<feature>
naming pattern:
Role Name pattern flag $pure_<verb>_<feature>
color $pure_color_<feature>
symbol $pure_symbol_<feature>
"},{"location":"contributing/#example_1","title":"Example","text":"$pure_enable_git_status\n
$pure_symbol_git_unpushed_commits\n
$pure_color_git_unpulled_commits\n
"},{"location":"contributing/#feature-flags-variable","title":"Feature Flag's Variable","text":"Name should follow $pure_<verb>_<feature>
pattern, where:
verb
describe the action triggered by the feature (i.e. separate
, begin
, show
, etc.) ; feature
descibre the what of the feature (i.e. prompt_on_error
, with_current_directory
, git_status
, etc.). Value should be a boolean. "},{"location":"contributing/#example_2","title":"Example","text":"$pure_begin_prompt_with_current_directory = true\n
$pure_enable_git_async = false\n
"},{"location":"contributing/#avoid-abbreviation","title":"Avoid abbreviation","text":"Use complete word over abbreviation.
"},{"location":"contributing/#example_3","title":"Example","text":"$pure_threshold_command_duration\n
"},{"location":"contributing/#releasing","title":"Releasing","text":"Release process is automated in the pipeline with the following steps.
Info
We follow semver, release is manage in the pipeline
"},{"location":"contributing/#test","title":"Test","text":"We run the test workflow on:
Pull Request changing any **.fish
; and workflow (*.yml
) files ; on master
branch changing **.fish
files with the exception conf.d/pure.fish
, as we have dedicated mechanism to manage versions bump ; and workflow (*.yml
) files "},{"location":"contributing/#versioning","title":"Versioning","text":"Success
Commit messages must follow conventional commits convention.
Versioning is done automatically based on commit messages and triggered only on master
branch.
Details:
We compute the project's next version using a GitHub Action ; Then update $pure_version
value in ./conf.d/pure.fish
; Finally commit and push the change to the repo. "},{"location":"contributing/#adding-new-tag","title":"Adding new tag","text":"The add-version-tag.yml
pipeline is triggered only for master
when ./conf.d/pure.fish
is changed and add a tagged based on $pure_version
.
"},{"location":"components/colours/","title":"Colours","text":"Tip
See set_color
documentation for full possibilities.
Info
The absence of $
sign is expected in pure_
named colours.
Base Color Inherited by Default pure_color_danger
pure_color_prompt_on_error
red
pure_color_dark
black
pure_color_info
pure_color_git_unpulled_commits
pure_color_git_unpushed_commits
cyan
pure_color_light
pure_color_username_root
white
pure_color_mute
pure_color_git_branch
pure_color_git_dirty
pure_color_git_stash
pure_color_hostname
pure_color_at_sign
pure_color_username_normal
pure_color_virtualenv
brblack
pure_color_normal
pure_color_jobs
normal
pure_color_primary
pure_color_current_directory
blue
pure_color_success
pure_color_prompt_on_success
magenta
pure_color_warning
pure_color_command_duration
yellow
"},{"location":"components/configuration/","title":"Configuration","text":"You can tweak pure
behavior and color by changing universal variables either directly in the terminal or in your config.fish
, e.g.:
set --universal pure_show_system_time true\nset --universal pure_color_system_time pure_color_mute\n
"},{"location":"components/features-list/","title":"Features list","text":""},{"location":"components/features-list/#check-for-new-release","title":"Check For New Release","text":"Option Default Description pure_check_for_new_release
false
true
: check repo for new release (on every shell start) \ud83d\udc0c Faster Prompt
Checking new release send a HTTP request that slow down your prompt rendering as it wait for remote server response. Set it to false
speed up rendering:
set --universal pure_check_for_new_release false\n
"},{"location":"components/features-list/#container-detection-docker","title":"Container Detection (Docker)","text":"Option Default Description pure_enable_container_detection
true
false
: Do not check pure runs inside a container (e.g. docker
, podman
, LXC
/LXD
, etc.). Detection is a bit tricky across OSes. pure_symbol_container_prefix
Prefix when being inside a container (to customize)"},{"location":"components/features-list/#current-working-directory","title":"Current Working Directory","text":"Option Default Description pure_begin_prompt_with_current_directory
true
true
: pwd
git
, SSH
, duration.false
: SSH
pwd
git
, duration. pure_shorten_prompt_current_directory_length
0
Shorten every prompt path component but the last to X characters (0 do not shorten) pure_truncate_prompt_current_directory_keeps
0
Truncate working directory path in prompt, but keeps the last to n
components (0
full path in current directory)"},{"location":"components/features-list/#git","title":"Git","text":"Option Default Description pure_enable_git
true
Show info about Git repository. pure_symbol_git_dirty
*
Repository is Dirty (uncommitted/untracked changes). pure_symbol_git_stash
\u2261
Repository git stash status. pure_symbol_git_unpulled_commits
\u21e3
Branch is behind upstream (commits to pull). pure_symbol_git_unpushed_commits
\u21e1
Branch is ahead upstream (commits to push). Need safer git
symbols?
"},{"location":"components/features-list/#jobs","title":"Jobs","text":"Option Default Description pure_show_jobs
false
Show Number of running jobs"},{"location":"components/features-list/#kubernetes","title":"Kubernetes","text":"Option Default Description pure_symbol_k8s_prefix
\u2638
Prefix when being connected to Kubernetes/K8s pure_enable_k8s
false
true
: shows kubernetes
context and namespace."},{"location":"components/features-list/#nixos","title":"NixOS","text":"Indicate if nix develop shell is activated in their prompt.
Option Default Description pure_enable_nixdevshell
false
Indicate if a nix develop
shell is activated (based on IN_NIX_SHELL
). pure_symbol_nixdevshell_prefix
\u2744\ufe0f
otherwise nerdfonts: '\udb84\udd05' or '\uf313' pure_color_nixdevshell_prefix
pure_color_info
prefix color pure_color_nixdevshell_symbol
pure_color_mute
symbol color"},{"location":"components/features-list/#prompt-symbol","title":"Prompt Symbol","text":"Option Default Description pure_symbol_prompt
\u276f
Prompt symbol."},{"location":"components/features-list/#python-virtualenv","title":"Python Virtualenv","text":"Option Default Description pure_enable_virtualenv
true
Show virtual env name (based on VIRTUAL_ENV
or CONDA_DEFAULT_ENV
). pure_symbol_virtualenv_prefix
Prefix when a Python virtual env is activated (default: undefined)"},{"location":"components/features-list/#aws-profile","title":"AWS Profile","text":"Option Default Description pure_enable_aws_profile
true
Show AWS profile name (based on AWS_VAULT
or AWS_PROFILE
). pure_symbol_aws_profile_prefix
Prefix when a AWS profile is activated (default: undefined)"},{"location":"components/features-list/#separate-error-symbol","title":"Separate Error Symbol","text":"Option Default Description pure_separate_prompt_on_error
false
Show last command exit code as a second prompt symbol."},{"location":"components/features-list/#single-line-prompt","title":"Single Line Prompt","text":"Option Default Description pure_enable_single_line_prompt
false
true
: Compact prompt as a single line"},{"location":"components/features-list/#ssh-session","title":"SSH Session","text":"Option Default Description pure_symbol_ssh_prefix
Prefix when being connected to SSH session (default: undefined)"},{"location":"components/features-list/#time-duration","title":"Time & Duration","text":"Option Default Description pure_show_system_time
false
true
: shows system time before the prompt symbol (as %H:%M:%S
). pure_show_subsecond_command_duration
false
Show subsecond (ex. 1.5s) in command duration. pure_threshold_command_duration
5
Show command duration when above this value (seconds)."},{"location":"components/features-list/#title","title":"Title","text":"Option Default Description pure_symbol_title_bar_separator
-
Separator in terminal's windows title. pure_shorten_window_title_current_directory_length
0
Shorten every window title path component but the last to X characters (0 do not shorten) pure_truncate_window_title_current_directory_keeps
0
Truncate working directory path in window title, but keeps the last to n
components (0
full path in window title)"},{"location":"components/features-list/#vi-mode","title":"VI Mode","text":"Option Default Description pure_reverse_prompt_symbol_in_vimode
true
true
: \u276e
indicate a non-insert mode.false
: indicate vi mode with [I]
, [N]
, [V]
. pure_symbol_reverse_prompt
\u276e
VI non-insert mode symbol."},{"location":"components/features-list/#working-as-root","title":"Working as Root","text":"Option Default Description pure_show_prefix_root_prompt
false
true
: shows prompt prefix when logged in as root
. pure_symbol_prefix_root_prompt
#
Prefix prompt when logged in as root
."},{"location":"components/features-overview/","title":"Features overview","text":""},{"location":"components/features-overview/#overview","title":"Overview","text":"Fully customizable (colors, symbols and features):
Excellent prompt character \u276f
\ud83d\udee0:
Change \u276f
to red when previous command has failed \ud83d\udee0 ; Start prompt with current working directory \ud83c\udff4 ; Compact-mode (single-line prompt) \ud83c\udff4 ; Check for new release on start \ud83c\udff4\ud83d\udc0c ;
Display username and hostname when in an SSH
session \ud83d\udee0 ; Display command duration when longer than 5
seconds \ud83d\udee0 ; Display Python
virtualenv when activated \ud83c\udff4\ud83d\udee0 ; Display AWS
profile when set \ud83c\udff4\ud83d\udee0 ; Display VI
mode and custom symbol for non-insert mode \ud83c\udff4\ud83d\udee0 ; Display kubernetes
context and namespace \ud83c\udff4\ud83d\udee0 ; Detect when running in a container (e.g. docker
, podman
, LXC
/LXD
) \ud83c\udff4\ud83d\udee0 Indicate if a nix develop
shell is activated \ud83c\udff4\ud83d\udee0. Show system time \ud83c\udff4 ; Show number of running jobs \ud83c\udff4 ; Prefix when root
\ud83c\udff4\ud83d\udee0 ; Display git
branch name \ud83c\udff4\ud83d\udee0 ;
Display *
when git
repository is dirty ; Display \u2261
when git
repository is stashed ; Display \u21e1
when branch is ahead (commits to push) ; Display \u21e3
when branch is behind (commits to pull) ; Async update when configured with fish-async-prompt ; Update terminal title with current folder and command \ud83d\udee0 ;
Shorten or truncate current folder component \ud83c\udff4\ud83d\udee0 ; and more\u2026 \ud83c\udff4 means it's controlled by a feature flag, \ud83d\udee0 mean it's configurable.
"},{"location":"components/hero-banner/","title":"Hero banner","text":"Pretty, minimal and fast Fish \ud83d\udc1f prompt, ported from zsh
.
"},{"location":"components/installation/","title":"Installation","text":"Success
Pure requires Fish \u22653.x
FisherManually fisher install pure-fish/pure\n
Download the installer to /tmp
curl git.io/pure-fish --output /tmp/pure_installer.fish --location --silent\n
Source and trigger the installer
source /tmp/pure_installer.fish; and install_pure\n
"},{"location":"components/logo/","title":"Logo","text":""}]}
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 00000000..0537c2fb
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,58 @@
+
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
+ None
+ 2024-02-16
+ daily
+
+
\ No newline at end of file
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
new file mode 100644
index 0000000000000000000000000000000000000000..fc7251835150bfd7f2b61167a9881700d7592571
GIT binary patch
literal 204
zcmV;-05ks|iwFp_v(IG$|8r?{Wo=<_E_iKh0PU1b4#FT1h4(!LVPBw)F={B?xpbum
zAQW2?3Kh`m?WI34J%eF3^XARVe7m9byVu|)ombXWus{R?X@qT*X)AcUp7R5&Sw^2u
zdl^6s8(+aLgyDqoIF87xAbUP|WL=BB=;Gk