From: Arnaud Guéras Date: Tue, 5 Nov 2024 01:26:39 +0000 (+0100) Subject: Squashed commit of the following: X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=31ffe870bf6c25b9f882fbbb4f1b364a0039a627;p=www-xenproject-org.git Squashed commit of the following: commit f925cbd05451ed452604ddc01d2c8c8d74b4a4f1 Author: Arnaud Guéras Date: Tue Nov 5 02:26:19 2024 +0100 fix all pages Signed-off-by: Arnaud Guéras commit 77a9a4a58d3c1d09ccb226e1c51e06ef0ab98545 Author: Arnaud Guéras Date: Tue Nov 5 01:25:01 2024 +0100 fix pges and structure css --- diff --git a/content/contribute/code-of-conduct.md b/content/contribute/code-of-conduct.md index 3a6126b..543eaa3 100644 --- a/content/contribute/code-of-conduct.md +++ b/content/contribute/code-of-conduct.md @@ -11,14 +11,14 @@ menus: aside: - type: resource items: - - name: https://xenbits.xenproject.org/governance/communication-guide.html - link: Communication Guide - - name: https://xenbits.xenproject.org/governance/code-review-guide.html - link: Code Review Guide - - name: https://xenbits.xenproject.org/governance/communication-practice.html - link: Communication Best Practice - - name: https://xenbits.xenproject.org/governance/resolving-disagreement.html - link: Resolving Disagreement + - name: Communication Guide + link: https://xenbits.xenproject.org/governance/communication-guide.html + - name: Code Review Guide + link: https://xenbits.xenproject.org/governance/code-review-guide.html + - name: Communication Best Practice + link: https://xenbits.xenproject.org/governance/communication-practice.html + - name: Resolving Disagreement + link: https://xenbits.xenproject.org/governance/resolving-disagreement.html --- {{
}} diff --git a/content/contribute/contribution-guidelines.md b/content/contribute/contribution-guidelines.md index 94f8ea3..c6b7969 100644 --- a/content/contribute/contribution-guidelines.md +++ b/content/contribute/contribution-guidelines.md @@ -4,21 +4,22 @@ description: Please adhere to the following guidelines as you participate in the keywords: "Xen Project contribution guidelines, contributing to Xen Project, Xen Project patches, Xen Project code submission, Xen Project community, Xen Project development, Xen Project code of conduct, Xen Project patch submission, Xen Project developer guide, Xen Project contribution process, Xen Project coding standards, Xen Project patch review, Xen Project code security, Xen Project static analysis, Xen Project Coverity Scan" date: 2024-01-14T07:07:07+01:00 draft: false -layout: content-only menus: main: parent: Contribute weight: 50 --- -## Introduction + +{{
}} +### Introduction We want to see people contributing to the Xen Project effort, and there are many ways to do so. Our goal is to maintain an environment of professionalism, respect, and innovation within Xen Project development. Please adhere to our [Code of Conduct](/contribute/code-of-conduct/) in the Xen Project community. -## Contributing code +### Contributing code Contributions to the Xen Project are made through patches that are reviewed by the community. We do require contributors to sign contributions using the sign-off feature of the code repository, following the same approach as the Linux Kernel does (see [Developer Certificate Of Origin](http://elinux.org/Developer_Certificate_Of_Origin)). @@ -34,7 +35,7 @@ Before submitting a patch please read the CONTRIBUTING, COPYING and CODING_STYLE You can also ask questions on the [xen-devel@lists.xenproject.org](mailto:xen-devel@lists.xenproject.org) mailing list or our [Matrix channels](/resources/matrix/). -## Submitting patches to the Xen Project codebase +### Submitting patches to the Xen Project codebase Please first check the submission process for the Xen Sub-Project, and send an email to the proper mailing list with [PATCH] as the first word in the subject line. Each patch should perform a single function. Patches sent to the mailing lists should be broken up into several email messages of less than 100KB each, with only one patch per email. @@ -42,15 +43,15 @@ Please include a description of why you want the change made (not just the "what For details about what to include in your patch, you should start with the [patch submission documentation](https://wiki.xenproject.org/wiki/Submitting_Xen_Project_Patches)). -## Escalation +### Escalation If you submitted a patch to the xen-devel mailing list or bugzilla and did not receive a response within 5 business days, please send an email to xen-devel and in the first line of that email, include this phrase "Patch escalation: no response for x days". This is one case where you should "top post" to make sure that the escalation text is read. -## Code security scanning +### Code security scanning The Xen Project is registered with the ["Coverity Scan" service](https://scan.coverity.com/faq) which applies Coverity's static analyser to the Open Source projects. The tool can and does find flaws in the source code which can include security issues. Currently only the Xen Project Hypervisor (i.e. xen.git) is covered by these scans. Triaging and proposing solutions for the flaws found by Coverity is a useful way in which Community members can contribute to the Xen Project. Members of the community may request access to the Coverity database. However, Coverity requires that you create an account and apply for Xen Project membership by searching for the Xen Project and then requesting to be added to the project. We typically will approve requests within a few days, but reserve rejecting requests from accounts who never engaged with the project (aka never posted to a mailing list) or which look like spam accounts. - +{{
}} diff --git a/content/contribute/get-started.md b/content/contribute/get-started.md index e71f6d9..c69417e 100644 --- a/content/contribute/get-started.md +++ b/content/contribute/get-started.md @@ -15,6 +15,7 @@ menu: title="Contributing to Xen: an introduction" media=`https://www.youtube.com/embed/F6TDJnYtcY8` alt="Video of a presentation about Contributing to Xen on Youtube" + animate="true" >}} We've collated some information to help you get started, click here for resources. @@ -26,7 +27,7 @@ We've collated some information to help you get started, click here for resource {{}} {{
}} -{{
}} +{{
}} {{}} - title: "**Read** documentation" text: > @@ -46,8 +47,9 @@ We've collated some information to help you get started, click here for resource {{}}

Youtube channel

@@ -62,6 +64,7 @@ We've collated some information to help you get started, click here for resource {{}}` + animate="true" >}} The Xen Project Advisory Board is composed of experienced members who provide guidance and support to the project. Their expertise helps shape the direction and ensures the success of the Xen Project. By collaborating with the advisory board, we can address challenges and seize opportunities in the virtualization technology landscape. @@ -77,8 +80,9 @@ We've collated some information to help you get started, click here for resource {{}} By being an active Advisory Board participant, regular opportunities for discussions with technical leaders include the chance to share priorities and endorse new strategies. In return, members will gain valuable strategic insight into project plans and future scope.

diff --git a/content/projects/all-projects.md b/content/projects/all-projects.md index f0a663c..d0a9892 100644 --- a/content/projects/all-projects.md +++ b/content/projects/all-projects.md @@ -17,7 +17,7 @@ menus: {{}} {{

}} -{{
}} +{{
}} {{}} ### Join the **conversation** {{}} @@ -39,12 +39,13 @@ menus: title="Lead by a dedicated community" media="/img/flatline/team-work.svg" alt="Illustration of a team working together on a project, with a shared vision and goal." + animate="true" >}} The Xen community is a dynamic and collaborative ecosystem comprised of developers, researchers, and enthusiasts dedicated to advancing open-source virtualization technology. With diverse backgrounds and expertise, members actively contribute to Xen's evolution, fostering innovation, sharing knowledge, and supporting one another through continuous development efforts.

- + Get started

@@ -56,8 +57,9 @@ menus: {{}} The Xen community is a dynamic and collaborative ecosystem comprised of developers, researchers, and enthusiasts dedicated to advancing open-source virtualization technology. With diverse backgrounds and expertise, members actively contribute to Xen's evolution, fostering innovation, sharing knowledge, and supporting one another through continuous development efforts. diff --git a/content/projects/embedded-and-automative.md b/content/projects/embedded-and-automative.md index 0f6a2f9..6ef1607 100644 --- a/content/projects/embedded-and-automative.md +++ b/content/projects/embedded-and-automative.md @@ -17,6 +17,7 @@ menus: media="/img/logos/arm-logo.svg" imageSize="50%" alt="ARM logo" + animate="true" >}} {{}} At the core of every modern embedded system is software meticulously crafted and seamlessly integrated with hardware, dedicated to fulfilling a specific, vital function. This is where our journey begins. @@ -41,6 +42,8 @@ Our focus extends beyond ARMv7 to encompass ARMv8, x86-64, and RISC-V, catering media="/img/flatline/data_and_settings.svg" mediaPosition="right" alt="Illustration of a database icon with gears and a wrench, representing data management and configuration tools." + animate="true" + >}} {{}} - Xen revolutionizes embedded systems, enabling fully-featured operating systems like Linux to coexist with smaller and faster RTOSes such as Zephyr. @@ -50,7 +53,7 @@ Our focus extends beyond ARMv7 to encompass ARMv8, x86-64, and RISC-V, catering {{}} {{
}} -{{
}} +{{
}} {{}} - title: Real-Time and Cache Coloring icon: fas fa-clock-rotate-left @@ -70,6 +73,8 @@ Our focus extends beyond ARMv7 to encompass ARMv8, x86-64, and RISC-V, catering {{}}` + animate="true" + >}} The Xen Project Hypervisor is uniquely placed to support a new range of use cases, building on top of 14 years of usage within the data center. In particular, its isolation and security features, flexible virtualization mode and architecture, driver disaggregation, and ARM support (only 47K lines of code) make it a perfect fit for embedded applications. @@ -84,6 +89,7 @@ The Xen Project Hypervisor is uniquely placed to support a new range of use case media="/img/others/xen-progress-certification.png" mediaPosition="right" alt="Slide titled 'Xen Project's Progress Toward Safety Certification' by Stefano Stabellini and team members from AMD and BUGSENG." + animate="true" >}} {{}} With sponsorships from the likes of AMD, we’re on a mission to align Xen with top safety standards, including ISO 26262 ASIL D and IEC 61508 SIL 3. @@ -100,6 +106,7 @@ Xen is not just a technology; it’s a vision coming to life, shaping the future title="Functional safety" media="/img/flatline/coding.svg" alt="Illustration of a person typing code on a computer, symbolizing software development and programming." + animate="true" >}} {{}} diff --git a/content/projects/hvmi.md b/content/projects/hvmi.md index 39253f6..4cbc9cf 100644 --- a/content/projects/hvmi.md +++ b/content/projects/hvmi.md @@ -21,6 +21,7 @@ aside: title="What is HVMI?" media="https://xenproject.org/wp-content/uploads/sites/79/2020/07/github-hvmi-v2_Kek0TiK6.compressed.mp4" alt="Video of a presentation about HVMI" + animate="true" >}} HVMI stands for Hypervisor-based Memory Introspection. The technology leverages Virtual Machine Introspection (VMI) APIs in the Xen and KVM hypervisors. By gaining introspection of the raw memory of running guest virtual machines, HVMI can apply security logic to detect and prevent the use of common attack techniques, such as buffer overflows, heap spray, code injection, and so-on. {{}} @@ -32,6 +33,7 @@ HVMI stands for Hypervisor-based Memory Introspection. The technology leverages media="/img/flatline/laptop-cybersecurity.svg" mediaPosition="right" alt="Illustration of a laptop with a shield and check mark icon, representing cybersecurity and data protection." + animate="true" >}} A research and development team at Bitdefender extended the VMI APIs by working with the Xen Project and KVM Project communities. Bitdefender initially released a commercial solution known as GravityZone Hypervisor Introspection (HVI). The core components of HVI were open-sourced in mid-2020, forming the basis of the HVMI project. @@ -44,6 +46,7 @@ The primary goal of the HVMI project is to build a community to foster developme title="License" media="/img/flatline/coding2.svg" alt="Illustration of hands typing code on a laptop with documents and a cup of coffee, symbolizing software development and workflow." + animate="true" >}} HVMI is licensed under Apache 2.0. {{}} diff --git a/content/projects/hypervisor.md b/content/projects/hypervisor.md index 91986b5..4d53739 100644 --- a/content/projects/hypervisor.md +++ b/content/projects/hypervisor.md @@ -16,98 +16,98 @@ aside: icon: fas fa-check - name: Features (unstable) link: https://xenbits.xen.org/docs/unstable/SUPPORT.html - icon: fa-road + icon: fas fa-road - title: Team Processes items: - name: Maintenance link: http://wiki.xenproject.org/wiki/Xen_Maintenance_Releases - icon: fa-wrench + icon: fas fa-wrench - name: Security Process - link: /about-xen/security-policy/ - icon: fa-key + link: /about/security-policy + icon: fas fa-key - name: OpenPGP Keys - link: /developers/openpgp-keys - icon: fa-key + link: ./openpgp-keys + icon: fas fa-key - title: Users items: - name: Downloads - link: /xen-project-archives/ - icon: fa-cube + link: /resources/downloads/ + icon: fas fa-cube - name: Docs link: https://wiki.xenproject.org/wiki/Main_Page#Xen_Started - icon: fa-book + icon: fas fa-book - name: xen-users@ mailing list - link: /help/mailing-list#general - icon: fa-envelope + link: /resources/mailing-lists/#xen-project-hypervisor + icon: fas fa-envelope - name: "IRC: #xen" - link: /help/irc/ - icon: fa-comments-o + link: /resources/mailing-lists/#xen-project-hypervisor + icon: fas fa-comments-o - name: Report a Bug link: http://wiki.xenproject.org/wiki/Reporting_Bugs_against_Xen - icon: fa-bug + icon: fas fa-bug - name: Xen Project Test Days link: http://wiki.xenproject.org/wiki/Xen_Test_Days - icon: fa-calendar-check-o + icon: fas fa-calendar-check-o - name: Security Announcements link: https://xenbits.xen.org/xsa/ - icon: fa-bullhorn + icon: fas fa-bullhorn - title: Developers items: - name: xen-devel@ mailing list - link: /help/mailing-list#devel - icon: fa-envelope + link: /resources/mailing-lists/#xen-project-hypervisor + icon: fas fa-envelope - name: "IRC: #xendevel" link: /help/irc/ - icon: fa-comments-o + icon: fas fa-comments-o - name: Browse Xen.git link: http://xenbits.xenproject.org/gitweb/?p=xen.git;a=summary - icon: fa-code-fork + icon: fas fa-code-fork - name: Repositories and Branches link: http://wiki.xenproject.org/wiki/Xen_Repositories - icon: fa-git + icon: fas fa-git - name: Submitting Patches link: http://wiki.xenproject.org/wiki/Submitting_Xen_Patches - icon: fa-medkit + icon: fas fa-medkit - name: Docs (API and Test) link: /help/documentation/#xen - icon: fa-book + icon: fas fa-book - name: Wiki Dev Home link: http://wiki.xenproject.org/wiki/XenDevHome - icon: fa-globe + icon: fas fa-globe - name: Projects for Newbies link: https://wiki.xenproject.org/wiki/Outreach_Program_Projects - icon: fa-cube + icon: fas fa-cube - title: Project Team items: - name: "Release Manager: Henry Wang" - icon: fa-briefcase + icon: fas fa-briefcase - name: Andy Cooper - icon: fa-star + icon: fas fa-star - name: George Dunlap icon: fa-star - name: Jan Beulich - icon: fa-star + icon: fas fa-star - name: Julien Grall - icon: fa-star + icon: fas fa-star - name: Stefano Stabellini - icon: fa-star + icon: fas fa-star - name: Wei Liu - icon: fa-star + icon: fas fa-star - name: Maintainers link: http://xenbits.xenproject.org/gitweb/?p=xen.git;a=blob;f=MAINTAINERS;hb=HEAD icon: fa-wrench - title: Committer Emeritus items: - name: Keir Fraser - icon: fa-star + icon: fas fa-star - name: Ian Campbell - icon: fa-star + icon: fas fa-star - name: Tim Deegan icon: fa-star - name: Ian Jackson - icon: fa-star + icon: fas fa-star - name: Konrad R Wilk - icon: fa-star + icon: fas fa-star --- @@ -122,7 +122,7 @@ The Xen Project hypervisor is an open-source type-1 or baremetal hypervisor, whi {{
}} -{{
}} +{{
}} {{}} - title: Small footprint and interface icon: fas fa-memory diff --git a/content/projects/hypervisor/openpgp-keys.md b/content/projects/hypervisor/openpgp-keys.md new file mode 100644 index 0000000..0b9e765 --- /dev/null +++ b/content/projects/hypervisor/openpgp-keys.md @@ -0,0 +1,70 @@ +--- +title: OpenPGP Keys +description: OpenPGP Keys for the Xen Project +keywords: "Xen Project, OpenPGP, PGP keys, security, cryptographic keys" +draft: false +--- + +{{
}} +# The Hypervisor Team’s OpenPGP Keys + +The Hypervisor team uses OpenPGP when necessary to provide essential confidentiality and integrity. Our current set of in-use, published, keys are these: + +## Xen Project tree code signing and announcements + +We use this key to sign git tags on xen.git and qemu-xen-*.git, whenever we make a Xen Project release. + +We also use it to sign Xen Project security advisories from the security team. + +```text +pub 2048R/57E82BD9 2010-04-06 + Key fingerprint = 23E3 222C 145F 4475 FA80 60A7 83FE 14C9 57E8 2BD9 +uid Xen.org Xen tree code signing (signatures on the + xen hypervisor and tools) +``` + +## Security team incoming email + +If you need to send encrypted email to the Xen Project security team, please use this key. We prefer that routine communications not be encrypted. + +```text +pub 2048R/82D3A964 2012-05-02 + Key fingerprint = F1F9 380F 6287 0056 A186 2CC0 743A 3FCA 82D3 A964 +uid Xen.org (incoming email) +``` + +```text +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.12 (GNU/Linux) +mQENBE+hNqgBCADYua5OFR0/Jeu0rByk+Obk6+SewIeGej1FAcjo+Cvpcr1dfnLB +AhmmhbfMb++qr6SG6Ek+cUQogYAFvZcEcusbRPy4MIzJkqoPSyOUhCxZoxWNWUfh +Ddt0TWA3Hs1vYmFOe+2jvlL3h7yAsGMYO8jo6ow8ceBEOmf8Q5BLq2OPkNpGcaHE +hbSv0VZ3mdHM30ynY6GubIwsc68LZ5hTORTSjKaj2WVCe4OorBMZte5Im+6MOEUb +CjynqPJSU9KNFhIhUuyXp1vn0gZ2N5QSpkghpzBJLzeBNEI6ecV3Q0p+/pq8EvEA +uUSNLUEbIZ/NSLqyTVMc9HZxnPu59im8wB9rABEBAAG0K1hlbi5vcmcgKGluY29t +aW5nIGVtYWlsKSA8c2VjdXJpdHlAeGVuLm9yZz6JATgEEwECACIFAk+hNqgCGwMG +CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEHQ6P8qC06lk1y0H/2PjjQyPDZVS +4zIVnR4xQOQ1KphPCdSTPlhj+VVrjZZNXWGCUKvJShL84XIONH62fIgQE/6CTWXJ +tx6i4u1oAtFH4+8HayFjg609lxx9frJ4tJkJitw5TT6VEGAambchIG5QaP9hepgy +rVXjQ0X2ot0jgpwL6G3sx0L1gewiMALXtGT6oTqLjXius/nv69yRe26wxU1GX80o +WWH/5p585xt54C1XnhDEVzp0S9UW7VAAVDCWuSefSrihh3jZi4QE1fnGRwO0RfeL +h1sXeuMn9uFIz0CmaCbAp5PeUyNb6wgG60h4JLCDyhJntoHfq8pQLEJ8G9nvjDfw +8BLvkBKYNvaIRgQQEQIABgUCUVv1xQAKCRCR4BLxp7SsZHgRAJ0XZO6Ids87Wp7q +djuti9yoTByh1gCgjzZL+llMzUAvTHPUvnY054utm365AQ0ET6E2qAEIALqWNlGF +d3uIj+DXZ40/i7fsoPb+HaYaG6Y+7+ZWxMxUeQDTLBnTYiAa+EGVutc4v52BXH8R +Zc9I/NH9lBT2/AwaEVSomxLicbixXUGoFC9kMp/VP1xwWJ+gm+ZEnQzY+2AFJGMv +qEsGocQA7yLw121JUOrorny3CqpHykPUF3fqp4n/GL47VTaKxlsoV8o2JgZZ62NJ +lkBtnbA4ODzhWr6cA21smWFgsfFJ+EkXb1NEeYLs8CWtTn2EiQXlZTQ8OgBPahfv +LZ+AJ4sM/Raoi2c3UIQrlCsg9BoojKMkLi8XUrywr8HEJYjhBYObCgbmaeIEfmrw +5XJqOKlMg40XY+MAEQEAAYkBHwQYAQIACQUCT6E2qAIbDAAKCRB0Oj/KgtOpZDhJ +B/0XtxrlVuRttpjK1PEYK/A/9h47VH9p0UvVYCH+ZS2a+sTgsapx0zp4uni8wtyt +kvGw/EM06D4ZoaWAUcjXILNKGdi62q/z+WAfdEY/WrONxAbr2Dtv/LT00/2nifYU +9O1vGYS1Kx/B3D8fU0w+2Sjv+hYjbGDWn619etC8dNEIxczH6V/cVOZf0D2KhoBf +MCHUoKeuAfaIKDMxOZjb7sajfUW70cxFFWYqH96Py01oxDroOKzy0x62iVdsYFGB +3FvcD9tDWsxVWwGHA8DKEfKMuNPiuapzdxdrNm5AQilSUlfD65KK9d3kQdoOUPdP +WoIQnz8GnHMPDe997SuwxWGb +=Ne4C +-----END PGP PUBLIC KEY BLOCK----- +``` + +{{
}} \ No newline at end of file diff --git a/content/projects/mirage-os.md b/content/projects/mirage-os.md index 57e2b93..3584249 100644 --- a/content/projects/mirage-os.md +++ b/content/projects/mirage-os.md @@ -14,6 +14,7 @@ keywords: "mirage os, unikernel, library operating system, secure virtualization title="About us" media="/img/flatline/data_and_settings.svg" alt="Illustration of a database icon with gears and a wrench, representing data management and configuration tools." + animate="true" >}} MirageOS is a library operating system that constructs unikernels for secure, high-performance, low-energy footprint applications across various hypervisor and embedded platforms. It is available as an open-source project created and maintained by the MirageOS Core Team. A unikernel can be customised based on the target architecture by picking the relevant MirageOS libraries and compiling them into a standalone operating system, strictly containing the functionality necessary for the target. This minimises the unikernel’s footprint, increasing the security of the deployed operating system. {{}} @@ -26,7 +27,7 @@ The MirageOS architecture can be divided into operating system libraries, typed {{
}} -{{
}} +{{
}} {{}} - title: Fast Start icon: fas fa-power-off @@ -49,6 +50,7 @@ The MirageOS architecture can be divided into operating system libraries, typed media="/img/flatline/coding.svg" mediaPosition="right" alt="Illustration of a person typing code on a computer, symbolizing software development and programming." + animate="true" >}} Mirage OS follows a standard Github workflow and has its own Developer Portal. All developer-related information such as documentation, development team members, and other information related to the development of Mirage OS can be found there as well. {{}} @@ -59,6 +61,7 @@ Mirage OS follows a standard Github workflow and has its own Developer Portal. A title="License" media="/img/flatline/coding2.svg" alt="Illustration of hands typing code on a laptop with documents and a cup of coffee, symbolizing software development and workflow." + animate="true" >}} {{}} The Mirage codebase is released under the ISC license, with some portions of code released under LGPLv2. diff --git a/content/projects/unikraft.md b/content/projects/unikraft.md index 6ae21e4..e8dcab4 100644 --- a/content/projects/unikraft.md +++ b/content/projects/unikraft.md @@ -14,6 +14,7 @@ keywords: "unikraft, specialized kernels, lightweight virtualization, customized title="Basic concepts" media="https://www.slideshare.net/slideshow/embed_code/key/hzJl1EbWmxfFUN" alt="Slide for Unikraft's basic concepts on slideshare.net" + animate="true" >}} The high-level goal of Unikraft is to be able to build unikernels targeted at specific applications without requiring the time-consuming, expert work that building such a unikernel requires today. An additional goal (or hope) of Unikraft is that all developers interested in unikernel development would contribute by supplying libraries rather than working on independent projects with different code bases as it is done now. {{}} @@ -27,6 +28,7 @@ The high-level goal of Unikraft is to be able to build unikernels targeted at sp media="/img/others/unikraft-architecture.png" mediaPosition="right" alt="Diagram showing the process of selecting applications, configuring libraries, building, and running unikernel binaries with various components like network stack, filesystem, schedulers, and memory allocators." + animate="true" >}} {{}} The main idea behind Unikraft is depicted in Figure 1 and consists of two basic components: @@ -65,6 +67,7 @@ The high-level goal of Unikraft is to be able to build unikernels targeted at sp title="License" media="/img/flatline/coding2.svg" alt="Illustration of hands typing code on a laptop with documents and a cup of coffee, symbolizing software development and workflow." + animate="true" >}} {{}} The main license of the run-time components of Unikraft is a 3-clause BSD license unless there is a good reason not to use it (e.g. we may import 2-clause BSD licensed code from Mini-OS, which we would not anticipate to change). The Makefile system would be licensed under GPL v2 or later as we want to be able to use KConfig functionality from Buildroot/Linux. diff --git a/content/projects/windows-pv-drivers.md b/content/projects/windows-pv-drivers.md index ab737f0..e752cd9 100644 --- a/content/projects/windows-pv-drivers.md +++ b/content/projects/windows-pv-drivers.md @@ -22,6 +22,7 @@ keywords: "windows PV drivers, paravirtualization drivers, windows virtualizatio title="About Windows PV Drivers" media=`{{}}` alt="Video of a presentation about Windows PV Drivers on Youtube" + animate="true" >}} {{}} Paravirtualization aware (PV) device drivers are an important part of HVM guests running under the Xen Project Hypervisor. @@ -72,6 +73,7 @@ The Windows PV Drivers team at the Xen Project is maintaining and developing the title="License" media="/img/flatline/coding2.svg" alt="Illustration of hands typing code on a laptop with documents and a cup of coffee, symbolizing software development and workflow." + animate="true" >}} {{}} The drivers are available under a [simplified 2-clause BSD license](https://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29). The code can be found in the following repositories on [xenbits.xen.org](https://xenbits.xen.org/gitweb/) in the [pvdrivers/win](https://xenbits.xen.org/gitweb/?a=project_list;pf=pvdrivers/win) folder. diff --git a/content/projects/xapi.md b/content/projects/xapi.md index 5096dbf..9a96fdc 100644 --- a/content/projects/xapi.md +++ b/content/projects/xapi.md @@ -10,13 +10,13 @@ aside: - type: resource items: - name: "**Github project**" - url: "https://github.com/xapi-project/xapi" + link: "https://github.com/xapi-project/xapi" - name: Documentation - url: "http://xapi-project.github.io/" + link: "http://xapi-project.github.io/" - name: Contribute - url: "https://github.com/xapi-project/xen-api/blob/master/README.markdown" + link: "https://github.com/xapi-project/xen-api/blob/master/README.markdown" - name: Report a Bug - url: "https://github.com/xapi-project/xen-api/issues" + link: "https://github.com/xapi-project/xen-api/issues" keywords: "XAPI, xen API, virtualization management, xen toolstack, virtual machine management, cloud orchestration, virtualization tools, resource management, VM lifecycle management, infrastructure management" --- @@ -25,6 +25,7 @@ keywords: "XAPI, xen API, virtualization management, xen toolstack, virtual mach title="Enterprise-ready tools" media="/img/flatline/data_and_settings.svg" alt="Illustration of a database icon with gears and a wrench, representing data management and configuration tools." + animate="true" >}} The XAPI project is an enterprise ready toolstack for use with the Xen Project hypervisor. When used with Xen, the XAPI toolstack consolidates server workloads, enables savings in power, cooling, and management costs (contributing to environmentally sustainable computing), increases the ability to adapt to ever-changing IT environments, optimizes the use of existing hardware, and improves the level of IT reliability. The XAPI team also develops tooling, agents and libraries that are needed to operate a XAPI-based system. @@ -63,6 +64,7 @@ XAPI adds additional functionality compared to other Xen Project toolstacks, inc media="/img/flatline/coding2.svg" mediaPosition="right" alt="Illustration of hands typing code on a laptop with documents and a cup of coffee, symbolizing software development and workflow." + animate="true" >}} {{}} XAPI is licensed under the [Lesser GNU General Public License (LGPL2)](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html). diff --git a/content/projects/xcp-ng.md b/content/projects/xcp-ng.md index c73ef64..2101217 100644 --- a/content/projects/xcp-ng.md +++ b/content/projects/xcp-ng.md @@ -33,7 +33,7 @@ aside: url: "https://github.com/xcp-ng" - name: Dev Docs url: "https://github.com/xcp-ng/xcp/wiki#development" - - name: Project Team + - name: Team type: members-list items: - name: Project Lead @@ -47,7 +47,7 @@ aside: title="Turnkey **open-source hypervisor**" media="/img/others/xcp-ng-badge.webp" alt="Logo of XCP-ng : Illustration of a red rocket ship blasting off into space with a circular background, symbolizing innovation and progress." - + animate="true" >}} {{}} XCP-ng enables an easy way to deploy a VM based infrastructure using Xen as the hypervisor and XAPI to deliver an out of the box, turnkey, solution. XCP-ng satisfies the needs of any sized organization from their thriving community of homelabbers to massive data centers. **XCP-ng is built to run in numerous configurations for any type of production environment.** @@ -62,6 +62,7 @@ XCP-ng enables an easy way to deploy a VM based infrastructure using Xen as the media="/img/flatline/timeline.svg" mediaPosition="right" alt="Illustration of a timeline with milestones for the years 2012, 2018, 2020, and 2024, representing project progress and development." + animate="true" >}} {{}} In 2018 XCP-ng was born, following Citrix System’s announcement to remove features from their free version and place them behind paid tiers. XCP-ng was launched with the intentions of revitalizing the original goals of the XCP project, to **provide free and community back version of XenServer.** @@ -70,7 +71,7 @@ In 2018 XCP-ng was born, following Citrix System’s announcement to remove feat {{
}} -{{
}} +{{
}} {{}} - title: Scalable icon: fas fa-expand @@ -93,7 +94,7 @@ In 2018 XCP-ng was born, following Citrix System’s announcement to remove feat title="How to **get started?**" media="/img/flatline/start-up.svg" alt="Illustration of a green rocket launching from a laptop screen, symbolizing a startup or new project launch." - + animate="true" >}} {{}} There are many ways to get started with XCP-ng. There are a number of **video training tutorials** on our youtube channel, **step-by-step written instructions** in our documentation, and a training course for XCP-ng is coming soon. @@ -122,6 +123,7 @@ In 2018 XCP-ng was born, following Citrix System’s announcement to remove feat media="/img/flatline/coding.svg" mediaPosition="right" alt="Illustration of a person typing code on a computer, symbolizing software development and programming." + animate="true" >}} {{}} The XCP-ng platform benefits from **15 dedicated employees** and the assistance of contributors like yourself. Within our documentation, you can find more detailed information about our development process, **how you can be involved in future** updates and testing of the platform. diff --git a/content/resources/use-cases.md b/content/resources/use-cases.md index 914eaac..dae6f31 100644 --- a/content/resources/use-cases.md +++ b/content/resources/use-cases.md @@ -16,6 +16,7 @@ menus: media="/img/flatline/data-process.svg" mediaPosition="right" alt="Illustration of a laptop displaying 3D bar charts, connected to cloud and file management icons, representing data integration and synchronization." + animate="true" >}} Qubes OS is a security-focused operating system based on Xen. The goal of Qubes OS is to create a reasonably secure environment that is also practical and usable, capable of playing the role of a daily driver rather than a highly situational solution - and Xen is a major reason why we can confidently say that Qubes OS succeeds.

@@ -30,6 +31,7 @@ Qubes OS is a security-focused operating system based on Xen. The goal of Qubes title="Xen Server case study" media="/img/flatline/data-process.svg" alt="Illustration of a laptop displaying 3D bar charts, connected to cloud and file management icons, representing data integration and synchronization." + animate="true" >}} Xen Server, powered by the Xen Project hypervisor, offers a robust virtualization platform for enterprise environments. It enables efficient resource utilization, simplified management, and enhanced security for organizations of all sizes. With features like live migration and dynamic memory allocation, Xen Server optimizes datacenter operations and reduces downtime. {{}} @@ -41,6 +43,7 @@ Xen Server, powered by the Xen Project hypervisor, offers a robust virtualizatio mediaPosition="right" media="/img/flatline/data-hosting.svg" alt="Illustration of servers surrounded by cloud icons with upload and download arrows, representing cloud computing and data storage." + animate="true" >}} Amazon Web Services (AWS) leverages the Xen Project hypervisor to power its Elastic Compute Cloud (EC2) service. This implementation demonstrates the scalability and reliability of Xen in large-scale cloud environments. AWS's success with Xen has revolutionized cloud computing, offering flexible and cost-effective solutions for businesses worldwide. {{}} @@ -51,6 +54,7 @@ Amazon Web Services (AWS) leverages the Xen Project hypervisor to power its Elas title="Security" media="/img/flatline/data-process.svg" alt="Illustration of a laptop displaying 3D bar charts, connected to cloud and file management icons, representing data integration and synchronization." + animate="true" >}} The Xen Project hypervisor prioritizes security through its unique architecture and ongoing development efforts. Its small codebase and isolation features minimize the attack surface, while regular security updates address emerging threats. Xen's security-first approach makes it an ideal choice for organizations with stringent data protection requirements.

@@ -66,6 +70,7 @@ The Xen Project hypervisor prioritizes security through its unique architecture media="/img/flatline/data_and_settings.svg" mediaPosition="right" alt="Illustration of a database icon with gears and a wrench, representing data management and configuration tools." + animate="true" >}} Xen Project's virtualization technology is increasingly adopted in embedded systems and automotive applications. It enables the consolidation of multiple systems onto a single hardware platform, reducing costs and complexity. In automotive, Xen supports the development of advanced infotainment systems and autonomous driving technologies while ensuring critical safety features remain isolated. @@ -77,7 +82,7 @@ Xen Project's virtualization technology is increasingly adopted in embedded syst {{

}} -{{
}} +{{
}} ## Did you know? There are several virtualization technologies available in the world today. Our Xen Project virtualization and cloud software includes many powerful features that make it an excellent choice for many organizations. @@ -98,14 +103,11 @@ Conservative estimates show that Xen has an active user base of 10+ million; the {{
}} -{{
}} - ### Projects -{{
}} {{}} {{}} {{}}

- Discover all projects + Discover all projects

{{
}} diff --git a/hugo_stats.json b/hugo_stats.json index e4ebbb2..403fed0 100644 --- a/hugo_stats.json +++ b/hugo_stats.json @@ -29,9 +29,11 @@ "nav", "ol", "p", + "pgp@xen.org", "pre", "script", "section", + "security@xen.org", "source", "span", "strong", @@ -82,6 +84,8 @@ "container", "container-full", "container-small", + "container-square-primary", + "container-square-rounded", "content", "content-markdown", "conversation-card", @@ -151,11 +155,14 @@ "footer__menu", "footer__text", "full-width-image", + "has-aside", "header", "header-content", + "header-inner", "header-logo", "header-nav", "hero-block", + "highlight", "home-hero-animated", "home-section-hero", "image-ratio-large", @@ -171,6 +178,7 @@ "list-no-style", "list-pages", "main", + "mainhas-aside", "media-block", "media-block--left", "media-block--mobile-bottom", @@ -311,12 +319,14 @@ "scope-of-this-process", "security-response-team-members", "security-response-team-short-security-team", + "security-team-incoming-email", "specific-process", "sponsor", "sub-projects-and-teams", "submitting-patches-to-the-xen-project-codebase", "supports-multiple-cloud-platforms-cloudstack-openstack", "supports-multiple-guest-operating-systems-linux-windows-netbsd-freebsd", + "the-hypervisor-teams-openpgp-keys", "the-linux-foundation", "trademark-policy", "transparency", @@ -331,6 +341,7 @@ "xen-project-advisory-board", "xen-project-hypervisor", "xen-project-matrix", + "xen-project-tree-code-signing-and-announcements", "xen-project-wide-roles" ] } diff --git a/themes/xen-project/assets/css/components/box-members.scss b/themes/xen-project/assets/css/components/box-members.scss index 1afc22a..d030768 100644 --- a/themes/xen-project/assets/css/components/box-members.scss +++ b/themes/xen-project/assets/css/components/box-members.scss @@ -1,4 +1,7 @@ .box-members { + background-color: #fff; + border-radius: 16px; + padding: var(--sp-md); ul { list-style: none; padding: 0; diff --git a/themes/xen-project/assets/css/components/box-resources.scss b/themes/xen-project/assets/css/components/box-resources.scss index 00105b8..0705680 100644 --- a/themes/xen-project/assets/css/components/box-resources.scss +++ b/themes/xen-project/assets/css/components/box-resources.scss @@ -1,5 +1,6 @@ .box-resources { - background-color: var(--color-brand-surface); + background-color: #fff; + border-radius: 16px; padding: var(--sp-md); .box-resources__title { diff --git a/themes/xen-project/assets/css/components/images-in-circle.scss b/themes/xen-project/assets/css/components/images-in-circle.scss index b36c98f..0323283 100644 --- a/themes/xen-project/assets/css/components/images-in-circle.scss +++ b/themes/xen-project/assets/css/components/images-in-circle.scss @@ -15,7 +15,7 @@ --translate: -100%; --size: calc(var(--circle-dimensions) + (var(--padding) * 2)); - --bg-color: var(--color-surface); + --bg-color: var(--color-surface-secondary); --index: 0; --total: 1; --start-angle: 0deg; diff --git a/themes/xen-project/assets/css/header/header-desktop.scss b/themes/xen-project/assets/css/header/header-desktop.scss index 1b900f8..b0077c6 100644 --- a/themes/xen-project/assets/css/header/header-desktop.scss +++ b/themes/xen-project/assets/css/header/header-desktop.scss @@ -7,6 +7,7 @@ --nav-margin-left: 0; --header-height: 84px; --header-font-size: 16px; + padding: var(--header-padding); @include desktop { --gap: 40px; @@ -15,13 +16,14 @@ --header-padding: 12px 40px; } - flex-direction: row; - gap: var(--gap); - height: var(--header-height); - justify-content: space-between; - padding: var(--header-padding); - z-index: 10; - font-size: var(--header-font-size); + .header-inner { + flex-direction: row; + gap: var(--gap); + height: var(--header-height); + justify-content: space-between; + z-index: 10; + font-size: var(--header-font-size); + } &-content { display: flex; diff --git a/themes/xen-project/assets/css/header/header-mobile.scss b/themes/xen-project/assets/css/header/header-mobile.scss index e01b484..75234d9 100644 --- a/themes/xen-project/assets/css/header/header-mobile.scss +++ b/themes/xen-project/assets/css/header/header-mobile.scss @@ -1,14 +1,19 @@ .header { --header-height: 52px; - display: flex; - flex-direction: row-reverse; - justify-content: space-between; - align-items: center; background: var(--header-color-background); - border-bottom: 1px solid var(--header-color-border); - position: relative; + border-bottom: none; padding: var(--sp-xs) var(--sp-sm); - height: var(--header-height); + + .header-inner { + display: flex; + flex-direction: row-reverse; + justify-content: space-between; + align-items: center; + position: relative; + height: var(--header-height); + max-width: var(--container-width); + margin: 0 auto; + } } .header-logo { diff --git a/themes/xen-project/assets/css/layout/aside.scss b/themes/xen-project/assets/css/layout/aside.scss index cf29763..26055f6 100644 --- a/themes/xen-project/assets/css/layout/aside.scss +++ b/themes/xen-project/assets/css/layout/aside.scss @@ -1,5 +1,6 @@ .page-aside { - padding: var(--sp-lg); + padding: 0 var(--sp-lg) var(--sp-lg); + display: flex; flex-direction: column; gap: var(--sp-lg); diff --git a/themes/xen-project/assets/css/layout/page-single-aside.scss b/themes/xen-project/assets/css/layout/page-single-aside.scss index 7fdfc48..0572f42 100644 --- a/themes/xen-project/assets/css/layout/page-single-aside.scss +++ b/themes/xen-project/assets/css/layout/page-single-aside.scss @@ -1,25 +1,25 @@ -.page-single-aside { - flex-direction: column; - display: flex; - gap: 0; - justify-content: stretch; - align-items: flex-start; +// .page-single-aside { +// flex-direction: column; +// display: flex; +// gap: 0; +// justify-content: stretch; +// align-items: flex-start; - .page-aside { - flex: 0 0 auto; - padding: var(--sp-lg); - } +// .page-aside { +// flex: 0 0 auto; +// padding: var(--sp-lg); +// } - .page-content { - flex: 1; - } +// .page-content { +// flex: 1; +// } - @include tablet { - flex-direction: row; +// @include tablet { +// flex-direction: row; - .page-aside { - flex: 0 0 320px; - padding: var(--sp-lg) var(--sp-lg) var(--sp-xl); - } - } -} +// .page-aside { +// flex: 0 0 320px; +// padding: var(--sp-lg) var(--sp-lg) var(--sp-xl); +// } +// } +// } diff --git a/themes/xen-project/assets/css/molecules/buttons.scss b/themes/xen-project/assets/css/molecules/buttons.scss index 4847ff8..0f9ed34 100644 --- a/themes/xen-project/assets/css/molecules/buttons.scss +++ b/themes/xen-project/assets/css/molecules/buttons.scss @@ -1,5 +1,5 @@ .btn { - --border-radius: 0.125rem; + --border-radius: 0.4em; --border-size: 0.125rem; --color-active: var(--color-action-fill-pressed); --color-disabled: var(--color-border); @@ -72,7 +72,7 @@ &-secondary, &-tertiary { - background-color: var(--color-surface); + background-color: var(--color-surface-secondary); color: var(--color-primary); } diff --git a/themes/xen-project/assets/css/molecules/features-list.scss b/themes/xen-project/assets/css/molecules/features-list.scss index 9f80bfb..12624bc 100644 --- a/themes/xen-project/assets/css/molecules/features-list.scss +++ b/themes/xen-project/assets/css/molecules/features-list.scss @@ -15,6 +15,18 @@ @include desktop { --features-columns-count: 3; } + + .features-list--cols-2 { + --features-columns-count: 2; + } + + .features-list--cols-3 { + --features-columns-count: 3; + } + + .features-list--cols-4 { + --features-columns-count: 4; + } } // Mixins @@ -42,6 +54,7 @@ --li-width: calc(100% / var(--features-columns-count) - var(--gap)); margin: 0; flex: 1 1 var(--li-width); + min-width: 300px; } // diff --git a/themes/xen-project/assets/css/molecules/media-block.scss b/themes/xen-project/assets/css/molecules/media-block.scss index 1706002..1825eeb 100644 --- a/themes/xen-project/assets/css/molecules/media-block.scss +++ b/themes/xen-project/assets/css/molecules/media-block.scss @@ -10,6 +10,7 @@ --padding-v: 20px; --media-h-padding: 6.9vw; --media-v-padding: 0; + --animation-delay: 0.1s; display: flex; flex-wrap: nowrap; @@ -53,12 +54,12 @@ &--right.animate .media-block__media { animation: slideFromRight 0.8s ease-out forwards; - animation-delay: 0.3s; + animation-delay: var(--animation-delay); } &--left.animate .media-block__media { animation: slideFromLeft 0.8s ease-out forwards; - animation-delay: 0.3s; + animation-delay: var(--animation-delay); } &[data-animate] .media-block__media { diff --git a/themes/xen-project/assets/css/molecules/search-form.scss b/themes/xen-project/assets/css/molecules/search-form.scss index 4523742..f53a2cf 100644 --- a/themes/xen-project/assets/css/molecules/search-form.scss +++ b/themes/xen-project/assets/css/molecules/search-form.scss @@ -13,7 +13,10 @@ flex-grow: 1; border: none; background: transparent; - padding: 10px; + padding: 0 24px; + line-height: 2; + height: 3em; + font-size: 1rem; &::placeholder { color: var(--color-text-secondary); @@ -26,6 +29,8 @@ border: none; padding: 8px 12px; cursor: pointer; + margin-right: 8px; + font-size: 1.1em; } } .search-results ul { diff --git a/themes/xen-project/assets/css/molecules/vertical-lists.scss b/themes/xen-project/assets/css/molecules/vertical-lists.scss index b5112e0..b2f3826 100644 --- a/themes/xen-project/assets/css/molecules/vertical-lists.scss +++ b/themes/xen-project/assets/css/molecules/vertical-lists.scss @@ -15,7 +15,7 @@ flex: 1; --border-left: 2px solid var(--color-brand-fill); padding-left: var(--sp-sm-md); - border-left: var(--border-left); + //border-left: var(--border-left); ul, li { diff --git a/themes/xen-project/assets/css/structure.scss b/themes/xen-project/assets/css/structure.scss index 74773ab..85984f2 100644 --- a/themes/xen-project/assets/css/structure.scss +++ b/themes/xen-project/assets/css/structure.scss @@ -1,55 +1,36 @@ .main { - // break margin + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: stretch; + align-items: stretch; + padding-top: 80px; + + &.has-aside { + max-width: 1920px; + margin-left: auto; + margin-right: auto; + } + &::before, &::after { content: ""; display: table; } - padding: 0 var(--content-padding-horizontal); -} -@include tablet { .page-aside { - width: 420px; - } -} + min-width: 400px; + flex: 0 0 400px; -.page-single { - @include tablet { - > .article { - padding-top: var(--sp-xl); + @media (max-width: 900px) { + min-width: 100%; + flex: 1 0 100%; } } - &.with-aside { - display: flex; - flex-direction: column; - gap: var(--sp-lg); - margin-left: auto; - margin-right: auto; - max-width: 1920px; - - @include tablet { - flex-direction: row; - gap: 0; - - > .article, - > .page-aside { - padding-top: var(--sp-xl); - } - - > .article h1 { - margin-top: 0; - } - } - } - - @include tablet { - .single-content { - margin-top: var(--sp-lg); - .section-space:first-child { - margin-top: 0; - } - } + .article { + flex: 1; + padding: 0 var(--content-padding-horizontal); + width: 100%; } } diff --git a/themes/xen-project/assets/css/variables.scss b/themes/xen-project/assets/css/variables.scss index fdd3d35..b05d8dc 100644 --- a/themes/xen-project/assets/css/variables.scss +++ b/themes/xen-project/assets/css/variables.scss @@ -27,7 +27,7 @@ @include tablet { --container-paddings: var(--sp-lg); - --section-space: 160px; + --section-space: 100px; --block-space: 160px; --h1-font-size: 2.5rem; /* 40px */ --h2-font-size: 2.25rem; /* 36px */ diff --git a/themes/xen-project/assets/js/downloads-search.js b/themes/xen-project/assets/js/downloads-search.js index bca83fb..1b9a43b 100644 --- a/themes/xen-project/assets/js/downloads-search.js +++ b/themes/xen-project/assets/js/downloads-search.js @@ -96,6 +96,9 @@ const init = (element) => { const searchInput = element.querySelector(".search-input"); resultsContainer = element.querySelector(".search-results"); + element.querySelector("form").addEventListener("submit", (e) => { + e.preventDefault(); + }); // Load data immediately loadDownloadsData(); @@ -115,9 +118,6 @@ }, 300); searchInput.addEventListener("input", debouncedSearch); - - searchInput.value = "xen sss"; - searchInput.dispatchEvent(new Event("input")); }; init(element); }; diff --git a/themes/xen-project/layouts/_default/baseof.html b/themes/xen-project/layouts/_default/baseof.html index 78298fc..4fe5f87 100644 --- a/themes/xen-project/layouts/_default/baseof.html +++ b/themes/xen-project/layouts/_default/baseof.html @@ -5,7 +5,7 @@ {{ partial "header.html" . }} -
+
{{ block "main" . }}{{ end }}
{{ partial "footer.html" . }} diff --git a/themes/xen-project/layouts/_default/home.html b/themes/xen-project/layouts/_default/home.html index 9e76ea0..97aa7af 100644 --- a/themes/xen-project/layouts/_default/home.html +++ b/themes/xen-project/layouts/_default/home.html @@ -1,3 +1,5 @@ -{{define "main"}} - {{.Content}} -{{end}} +{{ define "main" }} +
+ {{ .Content }} +
+{{ end }} diff --git a/themes/xen-project/layouts/_default/single.html b/themes/xen-project/layouts/_default/single.html index 3481eda..d982fb4 100644 --- a/themes/xen-project/layouts/_default/single.html +++ b/themes/xen-project/layouts/_default/single.html @@ -3,26 +3,26 @@ {{ if .Page.Params.aside }} {{ $class = "with-aside " | add $class }} {{ end }} -
- {{ $asidePosition := .Page.Params.asidePosition | default "before" }} - {{ if eq $asidePosition "before" }} - {{ partial "aside.html" . }} - {{ end }} -
-
-

{{ .Title }}

-
- {{ .Description }} -
-
-
- {{ .Content }} + {{ $asidePosition := .Page.Params.asidePosition | default "before" }} + {{ if eq $asidePosition "before" }} + {{ partial "aside.html" . }} + {{ end }} +
+
+

{{ .Title }}

+
+ {{ .Description }}
- {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }} -
- {{ if eq $asidePosition "after" }} - {{ partial "aside.html" . }} - {{ end }} -
+
+ +
+ {{ .Content }} +
+ {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }} + + {{ if eq $asidePosition "after" }} + {{ partial "aside.html" . }} + {{ end }} + {{ end }} diff --git a/themes/xen-project/layouts/partials/card.html b/themes/xen-project/layouts/partials/card.html index 0129a3f..979b3a3 100644 --- a/themes/xen-project/layouts/partials/card.html +++ b/themes/xen-project/layouts/partials/card.html @@ -1,13 +1,18 @@ +{{ $defaultIcon := "fa-arrow-up-right-from-square" }} +{{ $defaultLinkText := "Join" }} + +

{{ .title | safeHTML }}

{{ .description | safeHTML }}
diff --git a/themes/xen-project/layouts/partials/header.html b/themes/xen-project/layouts/partials/header.html index 31a46e0..a3cd240 100644 --- a/themes/xen-project/layouts/partials/header.html +++ b/themes/xen-project/layouts/partials/header.html @@ -1,12 +1,14 @@
- - -
- {{ partial "menu.html" (dict "menuID" "main" "page" .) }} - {{ partial "socials.html" }} +
+ + +
+ {{ partial "menu.html" (dict "menuID" "main" "page" .) }} + {{ partial "socials.html" }} +
diff --git a/themes/xen-project/layouts/partials/layout/link-item.html b/themes/xen-project/layouts/partials/layout/link-item.html index 785a272..64880b7 100644 --- a/themes/xen-project/layouts/partials/layout/link-item.html +++ b/themes/xen-project/layouts/partials/layout/link-item.html @@ -1,10 +1,19 @@
  • - - {{ .name }} - {{ if .icon }} - - {{ else }} - - {{ end }} - + {{ if .link }} + + {{ .name | markdownify }} + {{ if .icon }} + + {{ else }} + + {{ end }} + + {{ else }} + + {{ .name | markdownify }} + {{ if .icon }} + + {{ end }} + + {{ end }}
  • diff --git a/themes/xen-project/layouts/shortcodes/list-pages.html b/themes/xen-project/layouts/shortcodes/list-pages.html index 9ef0f0f..9777e20 100644 --- a/themes/xen-project/layouts/shortcodes/list-pages.html +++ b/themes/xen-project/layouts/shortcodes/list-pages.html @@ -5,12 +5,13 @@
    {{ range $projects }} - {{ partial "project-card.html" (dict + {{ partial "card.html" (dict "title" .Title "description" .Description "link" .Permalink "linkText" "Discover" - "class" "project-card" + "linkIcon" "fas fa-arrow-right" + "class" "" ) }} {{ end }}