This is an automated email from the ASF dual-hosted git repository.
blue pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/main by this push:
new bcbcbb263e Site: Update for ASF site guidelines (#9729)
bcbcbb263e is described below
commit bcbcbb263ea7e13ab22d0feb918e207c7e42dbbd
Author: Brian "bits" Olsen <[email protected]>
AuthorDate: Sun Mar 3 12:44:39 2024 -0800
Site: Update for ASF site guidelines (#9729)
Co-authored-by: Muna Bedan <[email protected]>
---
site/docs/assets/images/asf-estd-1999-logo.png | Bin 0 -> 22681 bytes
site/docs/assets/javascript/lottie-player.js | 77 ++++++++++
site/docs/assets/javascript/termynal.js | 197 +++++++++++++++++++++++++
site/docs/assets/stylesheets/extra.css | 86 +++++------
site/docs/assets/stylesheets/fonts.css | 76 ++++++++++
site/docs/assets/stylesheets/termynal.css | 101 +++++++++++++
site/mkdocs.yml | 3 +-
site/nav.yml | 3 +-
site/overrides/home.html | 10 +-
site/overrides/partials/cto.html | 21 ---
site/overrides/partials/footer.html | 144 +++++++++++++++---
11 files changed, 617 insertions(+), 101 deletions(-)
diff --git a/site/docs/assets/images/asf-estd-1999-logo.png
b/site/docs/assets/images/asf-estd-1999-logo.png
new file mode 100644
index 0000000000..3aa13cfa11
Binary files /dev/null and b/site/docs/assets/images/asf-estd-1999-logo.png
differ
diff --git a/site/docs/assets/javascript/lottie-player.js
b/site/docs/assets/javascript/lottie-player.js
new file mode 100644
index 0000000000..146eea8343
--- /dev/null
+++ b/site/docs/assets/javascript/lottie-player.js
@@ -0,0 +1,77 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof
module?e(exports):"function"==typeof
define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof
globalThis?globalThis:t||self)["lottie-player"]={})}(this,(function(exports){"use
strict";function _asyncIterator(t){var e,r,i,s=2;for("undefined"!=typeof
Symbol&&(r=Symbol.asyncIterator,i=Symbol.iterator);s--;){if(r&&null!=(e=t[r]))return
e.call(t);if(i&&null!=(e=t[i]))return new
AsyncFromSyncIterator(e.call(t));r="@@asyncIte [...]
+/*!
*****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+
*****************************************************************************
*/var _extendStatics=function(t,e){return
_extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof
Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in
e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},_extendStatics(t,e)};function
__extends(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class
extends value "+String(e)+" is not a constructor or null");function r(){this.co
[...]
+/**
+ * @license
+ * Copyright 2019 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */}var t$3=window.ShadowRoot&&(void
0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in
Document.prototype&&"replace"in CSSStyleSheet.prototype,e$8=Symbol(),n$5=new
Map;class s$3{constructor(t,e){if(this._$cssResult$=!0,e!==e$8)throw
Error("CSSResult is not constructable. Use `unsafeCSS` or `css`
instead.");this.cssText=t}get styleSheet(){var t=n$5.get(this.cssText);return
t$3&&void 0===t&&(n$5.set(this.cssText,t=new
CSSStyleSheet),t.replaceSync(this.cssText)),t [...]
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+
*/,s$2,e$7=window.trustedTypes,r$2=e$7?e$7.emptyScript:"",h$2=window.reactiveElementPolyfillSupport,o$4={toAttribute(t,e){switch(e){case
Boolean:t=t?r$2:null;break;case Object:case
Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){var
r=t;switch(e){case Boolean:r=null!==t;break;case
Number:r=null===t?null:Number(t);break;case Object:case
Array:try{r=JSON.parse(t)}catch(t){r=null}}return
r}},n$4=(t,e)=>e!==t&&(e==e||t==t),l$3={attribute:!0,type:String,converter:o$4,refle
[...]
\r](?:([^\s"'>=/]+)([ \n\r]*=[ \n\r]*(?:[^ \n
\r"'`<>=]|("|')|))|$)/g,_=/'/g,m=/"/g,g=/^(?:script|style|textarea)$/i,p=t=>function(e){for(var
r=arguments.length,i=new
Array(r>1?r-1:0),s=1;s<r;s++)i[s-1]=arguments[s];return{_$litType$:t,strings:e,values:i}},$=p(1),y=p(2),b=Symbol.for("lit-noChange"),w=Symbol.for("lit-nothing"),T=new
WeakMap,x=(t,e,r)=>{var i,s,a=null!==(i=null==r?void 0:r.renderBefore)&&void
0!==i?i:e,n=a._$litPart$;if(void 0===n){var o=null!==(s=null==r?void
0:r.renderBefore)&&void 0!==s?s:null;a._$litPart$=n=new N(e [...]
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+var n$1=t=>e=>"function"==typeof
e?((t,e)=>(window.customElements.define(t,e),e))(t,e):((t,e)=>{var{kind:r,elements:i}=e;return{kind:r,elements:i,finisher(e){window.customElements.define(t,e)}}})(t,e)
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */,i$1=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in
e.descriptor)?_objectSpread2(_objectSpread2({},e),{},{finisher(r){r.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof
e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(r){r.createProperty(e.key,t)}};function
e$5(t){return(e,r)=>void
0!==r?((t,e,r)=>{e.constructor.createProperty(r,t)})(t,e,r):i$1(t,e)}
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */function t$1(t){return
e$5(_objectSpread2(_objectSpread2({},t),{},{state:!0}))}
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */var
e$4=(t,e,r)=>{Object.defineProperty(e,r,t)},t=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t}),o$1=t=>{var{finisher:e,descriptor:r}=t;return(t,i)=>{var
s;if(void 0===i){var a=null!==(s=t.originalKey)&&void
0!==s?s:t.key,n=null!=r?{kind:"method",placement:"prototype",key:a,descriptor:r(t.key)}:_objectSpread2(_objectSpread2({},t),{},{key:a});return
null!=e&&(n.finisher=function(t){e(t,a)}),n}var o=t.constructor;void
0!==r&&Object.defineProperty(t,i,r(i)),null= [...]
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */function e$3(t){return
o$1({finisher:(e,r)=>{Object.assign(e.prototype[r],t)}})}
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */function i(t,e){return o$1({descriptor:r=>{var i={get(){var e,r;return
null!==(r=null===(e=this.renderRoot)||void 0===e?void
0:e.querySelector(t))&&void
0!==r?r:null},enumerable:!0,configurable:!0};if(e){var s="symbol"==typeof
r?Symbol():"__"+r;i.get=function(){var e,r;return void
0===this[s]&&(this[s]=null!==(r=null===(e=this.renderRoot)||void 0===e?void
0:e.querySelector(t))&&void 0!==r?r:null),this[s]}}return i}})}
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */function e$2(t){return o$1({descriptor:e=>({get(){var e,r;return
null!==(r=null===(e=this.renderRoot)||void 0===e?void
0:e.querySelectorAll(t))&&void 0!==r?r:[]},enumerable:!0,configurable:!0})})}
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */function e$1(t){return o$1({descriptor:e=>({get(){var e=this;return
_asyncToGenerator((function*(){var r;return yield
e.updateComplete,null===(r=e.renderRoot)||void 0===r?void
0:r.querySelector(t)}))()},enumerable:!0,configurable:!0})})}
+/**
+ * @license
+ * Copyright 2021 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */var e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void
0:n.prototype.assignedElements)?(t,e)=>t.assignedElements(e):(t,e)=>t.assignedNodes(e).filter((t=>t.nodeType===Node.ELEMENT_NODE));function
l(t){var{slot:r,selector:i}=null!=t?t:{};return o$1({descriptor:s=>({get(){var
s,a="slot"+(r?"[name=".concat(r,"]"):":not([name])"),n=null===(s=this.renderRoot)||void
0===s?void 0:s.querySelector(a),o=null!=n?e(n,t):[];return
i?o.filter((t=>t.matches(i))):o},enumerable:!0,configurab [...]
+/**
+ * @license
+ * Copyright 2017 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */function o(t,e,r){var i,s=t;return"object"==typeof
t?(s=t.slot,i=t):i={flatten:e},r?l({slot:s,flatten:e,selector:r}):o$1({descriptor:t=>({get(){var
t,e,r="slot"+(s?"[name=".concat(s,"]"):":not([name])"),a=null===(t=this.renderRoot)||void
0===t?void 0:t.querySelector(r);return null!==(e=null==a?void
0:a.assignedNodes(i))&&void 0!==e?e:[]},enumerable:!0,configurable:!0})})}var
commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof
window?window:"undefined"!=typeo [...]
+//# sourceMappingURL=lottie-player.js.map
diff --git a/site/docs/assets/javascript/termynal.js
b/site/docs/assets/javascript/termynal.js
new file mode 100644
index 0000000000..77ec6cb01c
--- /dev/null
+++ b/site/docs/assets/javascript/termynal.js
@@ -0,0 +1,197 @@
+/**
+ * termynal.js
+ * A lightweight, modern and extensible animated terminal window, using
+ * async/await.
+ *
+ * @author Ines Montani <[email protected]>
+ * @version 0.0.1
+ * @license MIT
+ */
+
+'use strict';
+
+/** Generate a terminal widget. */
+class Termynal {
+ /**
+ * Construct the widget's settings.
+ * @param {(string|Node)=} container - Query selector or container element.
+ * @param {Object=} options - Custom settings.
+ * @param {string} options.prefix - Prefix to use for data attributes.
+ * @param {number} options.startDelay - Delay before animation, in ms.
+ * @param {number} options.typeDelay - Delay between each typed character,
in ms.
+ * @param {number} options.lineDelay - Delay between each line, in ms.
+ * @param {number} options.progressLength - Number of characters displayed
as progress bar.
+ * @param {string} options.progressChar – Character to use for progress
bar, defaults to █.
+ * @param {number} options.progressPercent - Max percent of progress.
+ * @param {string} options.cursor – Character to use for cursor, defaults
to ▋.
+ * @param {Object[]} lineData - Dynamically loaded line data objects.
+ * @param {boolean} options.noInit - Don't initialise the animation.
+ */
+ constructor(container = '#termynal', options = {}) {
+ this.container = (typeof container === 'string') ?
document.querySelector(container) : container;
+ this.pfx = `data-${options.prefix || 'ty'}`;
+ this.startDelay = options.startDelay
+ ||
parseFloat(this.container.getAttribute(`${this.pfx}-startDelay`)) || 600;
+ this.typeDelay = options.typeDelay
+ ||
parseFloat(this.container.getAttribute(`${this.pfx}-typeDelay`)) || 90;
+ this.lineDelay = options.lineDelay
+ ||
parseFloat(this.container.getAttribute(`${this.pfx}-lineDelay`)) || 1500;
+ this.progressLength = options.progressLength
+ ||
parseFloat(this.container.getAttribute(`${this.pfx}-progressLength`)) || 40;
+ this.progressChar = options.progressChar
+ || this.container.getAttribute(`${this.pfx}-progressChar`) || '█';
+ this.progressPercent = options.progressPercent
+ ||
parseFloat(this.container.getAttribute(`${this.pfx}-progressPercent`)) || 100;
+ this.cursor = options.cursor
+ || this.container.getAttribute(`${this.pfx}-cursor`) || '▋';
+ this.lineData = this.lineDataToElements(options.lineData || []);
+ if (!options.noInit) this.init()
+ }
+
+ /**
+ * Initialise the widget, get lines, clear container and start animation.
+ */
+ init() {
+ // Appends dynamically loaded lines to existing line elements.
+ this.lines =
[...this.container.querySelectorAll(`[${this.pfx}]`)].concat(this.lineData);
+
+ /**
+ * Calculates width and height of Termynal container.
+ * If container is empty and lines are dynamically loaded, defaults to
browser `auto` or CSS.
+ */
+ const containerStyle = getComputedStyle(this.container);
+ this.container.style.width = containerStyle.width !== '0px' ?
+ containerStyle.width : undefined;
+ this.container.style.minHeight = containerStyle.height !== '0px' ?
+ containerStyle.height : undefined;
+
+ this.container.setAttribute('data-termynal', '');
+ this.container.innerHTML = '';
+ this.start();
+ }
+
+ /**
+ * Start the animation and rener the lines depending on their data
attributes.
+ */
+ async start() {
+ await this._wait(this.startDelay);
+
+ for (let line of this.lines) {
+ const type = line.getAttribute(this.pfx);
+ const delay = line.getAttribute(`${this.pfx}-delay`) ||
this.lineDelay;
+
+ if (type == 'input') {
+ line.setAttribute(`${this.pfx}-cursor`, this.cursor);
+ await this.type(line);
+ await this._wait(delay);
+ }
+
+ else if (type == 'progress') {
+ await this.progress(line);
+ await this._wait(delay);
+ }
+
+ else {
+ this.container.appendChild(line);
+ await this._wait(delay);
+ }
+
+ line.removeAttribute(`${this.pfx}-cursor`);
+ }
+ }
+
+ /**
+ * Animate a typed line.
+ * @param {Node} line - The line element to render.
+ */
+ async type(line) {
+ const chars = [...line.textContent];
+ const delay = line.getAttribute(`${this.pfx}-typeDelay`) ||
this.typeDelay;
+ line.textContent = '';
+ this.container.appendChild(line);
+
+ for (let char of chars) {
+ await this._wait(delay);
+ line.textContent += char;
+ }
+ }
+
+ /**
+ * Animate a progress bar.
+ * @param {Node} line - The line element to render.
+ */
+ async progress(line) {
+ const progressLength = line.getAttribute(`${this.pfx}-progressLength`)
+ || this.progressLength;
+ const progressChar = line.getAttribute(`${this.pfx}-progressChar`)
+ || this.progressChar;
+ const chars = progressChar.repeat(progressLength);
+ const progressPercent =
line.getAttribute(`${this.pfx}-progressPercent`)
+ || this.progressPercent;
+ line.textContent = '';
+ this.container.appendChild(line);
+
+ for (let i = 1; i < chars.length + 1; i++) {
+ await this._wait(this.typeDelay);
+ const percent = Math.round(i / chars.length * 100);
+ line.textContent = `${chars.slice(0, i)} ${percent}%`;
+ if (percent>progressPercent) {
+ break;
+ }
+ }
+ }
+
+ /**
+ * Helper function for animation delays, called with `await`.
+ * @param {number} time - Timeout, in ms.
+ */
+ _wait(time) {
+ return new Promise(resolve => setTimeout(resolve, time));
+ }
+
+ /**
+ * Converts line data objects into line elements.
+ *
+ * @param {Object[]} lineData - Dynamically loaded lines.
+ * @param {Object} line - Line data object.
+ * @returns {Element[]} - Array of line elements.
+ */
+ lineDataToElements(lineData) {
+ return lineData.map(line => {
+ let div = document.createElement('div');
+ div.innerHTML = `<span ${this._attributes(line)}>${line.value ||
''}</span>`;
+
+ return div.firstElementChild;
+ });
+ }
+
+ /**
+ * Helper function for generating attributes string.
+ *
+ * @param {Object} line - Line data object.
+ * @returns {string} - String of attributes.
+ */
+ _attributes(line) {
+ let attrs = '';
+ for (let prop in line) {
+ attrs += this.pfx;
+
+ if (prop === 'type') {
+ attrs += `="${line[prop]}" `
+ } else if (prop !== 'value') {
+ attrs += `-${prop}="${line[prop]}" `
+ }
+ }
+
+ return attrs;
+ }
+}
+
+/**
+* HTML API: If current script has container(s) specified, initialise Termynal.
+*/
+if (document.currentScript.hasAttribute('data-termynal-container')) {
+ const containers =
document.currentScript.getAttribute('data-termynal-container');
+ containers.split('|')
+ .forEach(container => new Termynal(container))
+}
diff --git a/site/docs/assets/stylesheets/extra.css
b/site/docs/assets/stylesheets/extra.css
index 3e147c2f1b..e8af4a6a75 100644
--- a/site/docs/assets/stylesheets/extra.css
+++ b/site/docs/assets/stylesheets/extra.css
@@ -380,59 +380,6 @@ p {
}
-
-
-
-/*------------------------------------*\
- #CTO
-\*------------------------------------*/
-.cto {
- background-image:linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)),
url("../images/footer-bg.webp");
- background-size: cover;
- margin: 0;
- border: 0;
- font: inherit;
- vertical-align:auto;
- color: var(--color-default-white);
- text-align: center;
- padding: 20px 0;
-}
-
-.cto span {
- text-size-adjust: none;
- box-sizing: inherit;
- font-size: 14.5px;
- margin-right: 30px;
- font-stretch: 100%;
- color: var(--color-default-white);
-}
-
-
-.cto .btn span{
- font-size: 16px;
- color: var(--color-default-primary);
-}
-
-.md-footer {
- background-image:linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
url("../images/footer-bg.webp");
- background-size: cover;
- margin: 0;
- border: 0;
- font: inherit;
- vertical-align:auto;
- color: var(--color-default-white);
- text-align: center;
- padding: 0 0;
-}
-
-.md-copyright {
- color: var(--md-footer-fg-color--lighter);
- font-size: .64rem;
- margin: auto;
- padding: .4rem 0;
- width: 100%;
-}
-
.fa-2x {
width: 2em;
height: 2em;
@@ -468,3 +415,36 @@ p {
height: 2.5rem;
width: auto;
}
+
+#footer {
+ font-size: 16px;
+ line-height: 1.5;
+}
+
+#footer ul{
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+#footer li:hover{
+ font-weight: bold;
+}
+#footer h4 {
+ font-size: 20px;
+
+}
+
+.footer-top {
+ background-color: rgba(33,37,41, 0.2) !important;
+}
+
+.copyright-text {
+ font-size: 0.7em !important;
+ text-align: center !important;
+}
+
+
+.footer-icons img {
+ max-width: 100%;
+}
diff --git a/site/docs/assets/stylesheets/fonts.css
b/site/docs/assets/stylesheets/fonts.css
new file mode 100644
index 0000000000..2046a2971d
--- /dev/null
+++ b/site/docs/assets/stylesheets/fonts.css
@@ -0,0 +1,76 @@
+@font-face {
+ font-family: 'Nunito Sans';
+ font-style: italic;
+ font-weight: 300;
+ font-stretch: normal;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/nunitosans/v15/pe1kMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwXeVy3GboJ0kTHmrR92UnK_c.ttf)
format('truetype');
+}
+@font-face {
+ font-family: 'Nunito Sans';
+ font-style: italic;
+ font-weight: 400;
+ font-stretch: normal;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/nunitosans/v15/pe1kMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwXeVy3GboJ0kTHmqP92UnK_c.ttf)
format('truetype');
+}
+@font-face {
+ font-family: 'Nunito Sans';
+ font-style: italic;
+ font-weight: 700;
+ font-stretch: normal;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/nunitosans/v15/pe1kMImSLYBIv1o4X1M8cce4OdVisMz5nZRqy6cmmmU3t2FQWEAEOvV9wNvrwlNstMKW3Y6K5WMwXeVy3GboJ0kTHmpo8GUnK_c.ttf)
format('truetype');
+}
+@font-face {
+ font-family: 'Nunito Sans';
+ font-style: normal;
+ font-weight: 300;
+ font-stretch: normal;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/nunitosans/v15/pe1mMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp5F5bxqqtQ1yiU4GiClXs1Ug.ttf)
format('truetype');
+}
+@font-face {
+ font-family: 'Nunito Sans';
+ font-style: normal;
+ font-weight: 400;
+ font-stretch: normal;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/nunitosans/v15/pe1mMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp5F5bxqqtQ1yiU4G1ilXs1Ug.ttf)
format('truetype');
+}
+@font-face {
+ font-family: 'Nunito Sans';
+ font-style: normal;
+ font-weight: 700;
+ font-stretch: normal;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/nunitosans/v15/pe1mMImSLYBIv1o4X1M8ce2xCx3yop4tQpF_MeTm0lfGWVpNn64CL7U8upHZIbMV51Q42ptCp5F5bxqqtQ1yiU4GMS5Xs1Ug.ttf)
format('truetype');
+}
+@font-face {
+ font-family: 'Roboto Mono';
+ font-style: italic;
+ font-weight: 400;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cpw.ttf)
format('truetype');
+}
+@font-face {
+ font-family: 'Roboto Mono';
+ font-style: italic;
+ font-weight: 700;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/robotomono/v23/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrmAB9W6Cpw.ttf)
format('truetype');
+}
+@font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 400;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_ROW9.ttf)
format('truetype');
+}
+@font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 700;
+ font-display: fallback;
+ src:
url(https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_Of2_ROW9.ttf)
format('truetype');
+}
diff --git a/site/docs/assets/stylesheets/termynal.css
b/site/docs/assets/stylesheets/termynal.css
new file mode 100644
index 0000000000..cb7951313b
--- /dev/null
+++ b/site/docs/assets/stylesheets/termynal.css
@@ -0,0 +1,101 @@
+/**
+ * termynal.js
+ *
+ * @author Ines Montani <[email protected]>
+ * @version 0.0.1
+ * @license MIT
+ */
+
+:root {
+ --color-bg: #252a33;
+ --color-text: #eee;
+ --color-text-subtle: #a2a2a2;
+}
+
+[data-termynal] {
+ width: 750px;
+ max-width: 100%;
+ background: var(--color-bg);
+ color: var(--color-text);
+ font-size: 18px;
+ font-family: 'Fira Mono', Consolas, Menlo, Monaco, 'Courier New', Courier,
monospace;
+ border-radius: 4px;
+ padding: 75px 45px 35px;
+ position: relative;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+[data-termynal]:before {
+ content: '';
+ position: absolute;
+ top: 15px;
+ left: 15px;
+ display: inline-block;
+ width: 15px;
+ height: 15px;
+ border-radius: 50%;
+ /* A little hack to display the window buttons in one pseudo element. */
+ background: #d9515d;
+ -webkit-box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930;
+ box-shadow: 25px 0 0 #f4c025, 50px 0 0 #3ec930;
+}
+
+[data-termynal]:after {
+ content: 'bash';
+ position: absolute;
+ color: var(--color-text-subtle);
+ top: 5px;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+
+[data-ty] {
+ display: block;
+ line-height: 2;
+}
+
+[data-ty]:before {
+ /* Set up defaults and ensure empty lines are displayed. */
+ content: '';
+ display: inline-block;
+ vertical-align: middle;
+}
+
+[data-ty="input"]:before,
+[data-ty-prompt]:before {
+ margin-right: 0.75em;
+ color: var(--color-text-subtle);
+}
+
+[data-ty="input"]:before {
+ content: '$';
+}
+
+[data-ty][data-ty-prompt]:before {
+ content: attr(data-ty-prompt);
+}
+
+[data-ty-cursor]:after {
+ content: attr(data-ty-cursor);
+ font-family: monospace;
+ margin-left: 0.5em;
+ -webkit-animation: blink 1s infinite;
+ animation: blink 1s infinite;
+}
+
+
+/* Cursor animation */
+
+@-webkit-keyframes blink {
+ 50% {
+ opacity: 0;
+ }
+}
+
+@keyframes blink {
+ 50% {
+ opacity: 0;
+ }
+}
diff --git a/site/mkdocs.yml b/site/mkdocs.yml
index 9f75bad96d..2b3630ad4f 100644
--- a/site/mkdocs.yml
+++ b/site/mkdocs.yml
@@ -17,8 +17,6 @@
INHERIT: ./nav.yml
-copyright: |
- Apache Iceberg, Iceberg, Apache, the Apache feather logo, and the Apache
Iceberg project logo are</br>either registered trademarks or trademarks of The
Apache Software Foundation. Copyright © 2023</br>The Apache Software
Foundation, Licensed under the <a
href="https://www.apache.org/licenses/">Apache License, Version
2.0</a>.</br></br>
site_name: Apache Iceberg
theme:
@@ -51,6 +49,7 @@ plugins:
- search
- macros
- monorepo
+ - privacy
- offline:
enabled: !ENV [OFFLINE, false]
diff --git a/site/nav.yml b/site/nav.yml
index a12fd89724..c7d9a26ae0 100644
--- a/site/nav.yml
+++ b/site/nav.yml
@@ -41,8 +41,9 @@ nav:
- How to release: how-to-release.md
- Terms: terms.md
- ASF:
- - Sponsorship: https://www.apache.org/foundation/sponsorship.html
+ - Sponsorship: https://www.apache.org/foundation/thanks.html
- Events: https://www.apache.org/events/current-event.html
+ - Privacy: https://privacy.apache.org/policies/privacy-policy-public.html
- License: https://www.apache.org/licenses/
- Security: https://www.apache.org/security/
- Sponsors: https://www.apache.org/foundation/thanks.html
diff --git a/site/overrides/home.html b/site/overrides/home.html
index a79c44c746..f6479d46ea 100644
--- a/site/overrides/home.html
+++ b/site/overrides/home.html
@@ -4,7 +4,7 @@
{{ super() }}
<link
-
href="https://cdn.jsdelivr.net/gh/ines/termynal@9b301892db6f8d403abfce7adf65888dffed72ea/termynal.css"
+ href="assets/stylesheets/termynal.css"
rel="stylesheet"
/>
@@ -215,7 +215,7 @@
</ul>
</div>
<div class="col-lg-5 col-lg col-sm-12">
- <script
src="https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js"></script>
+ <script src="assets/javascript/lottie-player.js"></script>
<lottie-player
src="assets/lottie/hidden-partitioning-animation.json"
background="transparent"
speed="0.5"
@@ -307,7 +307,7 @@
</section>
<script
-
src="https://cdn.jsdelivr.net/gh/ines/termynal@9b301892db6f8d403abfce7adf65888dffed72ea/termynal.js"
+ src="assets/javascript/termynal.js"
data-termynal-container="#termynal|#termynal-data-compaction|#termynal-expressive-sql|#termynal-time-travel">
</script>
{% endblock %}
@@ -315,7 +315,3 @@
{% block content %}
{{ super() }}
{% endblock %}
-
-{% block footer%}
- {% include "partials/cto.html" %}
-{% endblock %}
diff --git a/site/overrides/partials/cto.html b/site/overrides/partials/cto.html
deleted file mode 100644
index a64e2533e5..0000000000
--- a/site/overrides/partials/cto.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<div class="cto">
- <div class="container">
- <span> Apache Iceberg, Iceberg, Apache, the Apache feather logo, and
the Apache Iceberg project logo
- are</br>either registered trademarks or trademarks of The Apache
Software Foundation. Copyright ©
- 2023</br>The Apache Software Foundation, Licensed under the <a
- href="https://www.apache.org/licenses/">Apache License,
Version 2.0</a>.</br></br>
- </span>
- <ul class="list-inline intro-social-buttons">
- {% for social in config.extra.social %}
- <li>
- <a class="btn btn-default btn-lg" href="{{ social.link }}"
target="_blank">
- <span class="fa fa-fw">
- {% include ".icons/" ~ social.icon ~ ".svg" %}
- </span>
- <span class="network-name"> {{ social.title }}</span>
- </a>
- </li>
- {% endfor %}
- </ul>
- </div>
-</div>
diff --git a/site/overrides/partials/footer.html
b/site/overrides/partials/footer.html
index 9567e202f4..adb4acc0b0 100644
--- a/site/overrides/partials/footer.html
+++ b/site/overrides/partials/footer.html
@@ -1,22 +1,132 @@
-<footer class="md-footer">
-
- <div class="md-footer-meta md-typeset">
- <div class="md-footer-meta__inner md-grid">
- <div class="md-copyright">
-
- <div class="md-copyright__highlight">
- Apache Iceberg, Iceberg, Apache, the Apache feather logo, and the
Apache Iceberg project logo are<br>either registered trademarks or trademarks
of The Apache Software Foundation. Copyright © 2023<br>The Apache Software
Foundation, Licensed under the <a
href="https://www.apache.org/licenses/">Apache License, Version 2.0</a>.<br><br>
-
+<footer id="footer" class="footer">
+ <div class="container-fluid footer-top">
+ <div class="d-flex justify-content-center pt-3 pb-3" >
+
+
+ <div class="col-lg-2 col-md-2 footer-links">
+ <h4>Features</h4>
+ <ul>
+ <li>
+ <a href="/docs/latest/evolution/#schema-evolution"
+ >Schema Evolution</a
+ >
+ </li>
+ <li>
+ <a href="/docs/latest/partitioning/">Hidden Partitioning</a>
+ </li>
+ <li>
+ <a href="/docs/latest/evolution/#partition-evolution"
+ >Partition Evolution</a
+ >
+ </li>
+ <li>
+ <a href="/docs/latest/reliability/">Serializable Isolation</a>
+ </li>
+ <li>
+ <a href="/docs/latest/branching/">Branching and Tagging</a>
+ </li>
+ <li>
+ <a href="/docs/latest/reliability/#concurrent-write-operations"
+ >Optimistic Concurrency</a
+ >
+ </li>
+ <li>
+ <a href="/docs/latest/performance/#data-filtering"
+ >Advanced Filtering</a
+ >
+ </li>
+ <li><a href="/docs/latest/">Compute Engine Integrations</a></li>
+ <li>
+ <a href="/concepts/catalog/#decoupling-using-the-rest-catalog"
+ >REST Catalog</a
+ >
+ </li>
+ <li><a href="/docs/latest/api/">Multiple language APIs</a></li>
+ </ul>
</div>
-
-
- Made with
- <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank"
rel="noopener">
- Material for MkDocs
- </a>
+
+ <div class="col-lg-2 col-md-2 footer-links">
+ <h4>Get Started</h4>
+ <ul>
+ <li><a href="spark-quickstart">Spark Quickstart</a></li>
+ <li><a href="hive-quickstart">Hive Quickstart</a></li>
+ <li><a href="spec/">Open Table Spec</a></li>
+ <li><a href="docs/latest">Docs</a></li>
+ <li><a href="blogs/">Blogs</a></li>
+ <li><a href="talks/">Talks</a></li>
+ </ul>
+ <br />
+ </div>
+
+ <div class="col-lg-2 col-md-2 footer-links">
+ <h4>Community</h4>
+ <ul>
+ <li><a href="community/#slack">Support</a></li>
+ <li><a href="community/#mailing-lists">Mailing Lists</a></li>
+ <li>
+ <a href="community/#iceberg-community-events">Iceberg Events</a>
+ </li>
+ <li><a href="community/#issues">Issues</a></li>
+ <li><a href="community/#contribute">Contribute</a></li>
+ <li><a href="community/#community-guidelines">Guidelines</a></li>
+ <!-- li><a href="/logos-and-assets.html">Solr Logos and
Assets</a></li -->
+ </ul>
+ </div>
+
+ <div class="col-lg-2 col-md-2 footer-links">
+ <h4>ASF</h4>
+ <ul>
+ <li>
+ <a href="https://www.apache.org/">Apache Software Foundation</a>
+ </li>
+ <li>
+ <a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
+ </li>
+ <li>
+ <a href="https://www.apache.org/foundation/sponsorship.html"
+ >Sponsorship</a
+ >
+ </li>
+ <li><a href="https://www.apache.org/security/">Security</a></li>
+ <li><a href="https://www.apache.org/licenses/">License</a></li>
+ </ul>
+ </div>
+
+ <div class="col-lg-2 col-md-2 mt-3 footer-icons">
+
+ <a href="https://iceberg.apache.org"
+ ><img
+ src="/assets/images/asf-estd-1999-logo.png"
+ alt="apache software foundation logo"
+ /></a>
+ <div class="d-flex justify-content-center">
+ <div class="social-links d-flex ">
+ {% if config.extra.social %} {% include "partials/social.html" %}
{%
+ endif %}
+ </div>
+ </div>
+
+ </div>
+ </div>
+
</div>
-
+
+ <div class="container-fluid ">
+ <div class="d-flex justify-content-center ">
+ <div class="col-md-8">
+ <p class="copyright-text m-4">
+ Apache Iceberg, Iceberg, Apache, the Apache feather logo, and the
+ Apache Iceberg project logo are either registered trademarks or
+ trademarks of The Apache Software Foundation. Copyright © 2024 The
+ Apache Software Foundation, Licensed under the
+ <span
+ ><a href="https://www.apache.org/licenses/"
+ >Apache License, Version 2.0</a
+ >.</span
+ >
+ </p>
</div>
</div>
- </footer>
\ No newline at end of file
+ </div>
+</footer>