[meld/pages] Add new website



commit b766482c374ddc29ed2f0ab7e2c993e1e93cad8f
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sun May 9 09:54:44 2021 +1000

    Add new website

 .gitlab-ci.yml                 |  30 ++++++
 README.md                      |  27 ++++++
 _config.yml                    |   5 +
 _data/releases.yml             |  16 ++++
 _includes/release_card.html    |  30 ++++++
 _layouts/default.html          |  64 +++++++++++++
 favicon.png                    | Bin 0 -> 2234 bytes
 images/dirdiff.png             | Bin 0 -> 36672 bytes
 images/filediff.png            | Bin 0 -> 38784 bytes
 images/meld.svg                | 182 +++++++++++++++++++++++++++++++++++
 images/vcview.png              | Bin 0 -> 16573 bytes
 index.html                     | 211 +++++++++++++++++++++++++++++++++++++++++
 style.css                      |  27 ++++++
 workers-site/.cargo-ok         |   0
 workers-site/.gitignore        |   2 +
 workers-site/index.js          |  92 ++++++++++++++++++
 workers-site/package-lock.json |  33 +++++++
 workers-site/package.json      |  12 +++
 wrangler.toml                  |  17 ++++
 19 files changed, 748 insertions(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..3988e3c0
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,30 @@
+stages:
+  - deploy
+  - publish
+
+variables:
+  DEPENDENCIES: findutils git libxslt rubygem-jekyll yelp-tools
+
+pages:
+  stage: deploy
+  image: fedora:33
+  script:
+    - dnf install -y $DEPENDENCIES
+    - jekyll build -d public/
+    - git checkout master
+    - mkdir public/help/
+    - yelp-build html -o public/help help/C
+  artifacts:
+    paths:
+      - public
+  only:
+    - pages
+
+cloudflareworkers:
+  stage: publish
+  image: node:12-alpine
+  script:
+    - npm install @cloudflare/wrangler
+    - npx wrangler publish --env production
+  only:
+    - pages
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..f4a931a1
--- /dev/null
+++ b/README.md
@@ -0,0 +1,27 @@
+
+Meld website
+============
+
+This branch exists to keep and build Meld's website.
+
+
+Build
+-----
+
+The build process (see `.gitlab-ci.yml`) has three stages. The first stage
+builds the actual site using Jekyll, outputting to the `public` folder. The
+second stage switches to the master branch and uses the Yelp build tool to
+generate an HTML version of Meld's help, which is output to a `help` subfolder
+under the existing `public` folder. This public folder is the artifact that is
+then uploaded to the GitLab Pages site.
+
+In order to make the page more easily accessible, and to retain our current
+well-known domain, this site is then published to Cloudflare workers.
+
+
+Screenshots
+-----------
+
+These have been minimized using `pngquant` (https://pngquant.org/), since
+absolute lossless presentation isn't really necessary here, and the size
+saving is significant.
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 00000000..72ad5437
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1,5 @@
+exclude:
+- README.md
+- wrangler.toml
+- workers-site
+- dist
diff --git a/_data/releases.yml b/_data/releases.yml
new file mode 100644
index 00000000..b73c9ffc
--- /dev/null
+++ b/_data/releases.yml
@@ -0,0 +1,16 @@
+- version: 3.20.3
+  date: 2021-02-13
+  type: stable
+  description: >
+    The most recent stable release is the best option for most users. We keep changes to these releases to a 
minimum.
+  platforms:
+    - linux
+    - windows
+
+- version: 3.21.0
+  date: 2020-04-19
+  type: development
+  description: >
+     Our development releases are usually fairly reliable, but you'll probably run in to a few issues. 
Please tell us!
+  platforms:
+    - linux
diff --git a/_includes/release_card.html b/_includes/release_card.html
new file mode 100644
index 00000000..98ee6e26
--- /dev/null
+++ b/_includes/release_card.html
@@ -0,0 +1,30 @@
+    <div class="card bg-dark text-white mb-3 mr-md-3 py-3 px-3 py-md-4 px-md-5">
+      <div class="card-body py-0 px-0">
+        {% assign release = include.release %}
+        {% assign short_version = release.version | split: "." | pop | join: "." %}
+        <div class="d-flex w-100 justify-content-between align-items-baseline">
+          <h5 class="card-title">Meld {{ release.version }} — {{ release.type }}</h5>
+          <h6 class="card-subtitle mb-2 text-muted">
+            <time datetime="{{ release.date }}">{{ release.date | date_to_long_string }}</time>
+          </h6>
+        </div>
+        <p class="mb-1">
+          {{ release.description }}
+        </p>
+        <p>
+            See the <a href="https://gitlab.gnome.org/GNOME/meld/-/releases/{{ release.version }}" 
class="card-link">release notes</a> for details.
+        </p>
+
+        <div>
+          <a class="btn btn-primary mr-2" role="button" href="https://download.gnome.org/sources/meld/{{ 
short_version }}/meld-{{ release.version }}.tar.xz">
+            <i class="fas fa-download"></i> Source <small>(.tar.xz)</small>
+          </a>
+
+          {% if release.platforms contains 'windows' %}
+          <a class="btn btn-primary mr-2" role="button" 
href="https://download.gnome.org/binaries/win32/meld/{{ short_version }}/Meld-{{ release.version 
}}-mingw.msi">
+            <i class="fas fa-download"></i> Windows <small>(.msi)</small>
+          </a>
+          {% endif %}
+        </div>
+      </div>
+    </div>
diff --git a/_layouts/default.html b/_layouts/default.html
new file mode 100644
index 00000000..72d61244
--- /dev/null
+++ b/_layouts/default.html
@@ -0,0 +1,64 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <meta name="author" content="Kai Willadsen">
+    <link rel="icon" type="image/png" href="favicon.png">
+
+    <title>{{ page.title }}</title>
+
+    <!-- Bootstrap CSS -->
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"; 
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
+
+    <!-- Fontawesome CSS -->
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.8/css/solid.css"; 
integrity="sha384-v2Tw72dyUXeU3y4aM2Y0tBJQkGfplr39mxZqlTBDUZAb9BGoC40+rdFCG0m10lXk" crossorigin="anonymous">
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.8/css/brands.css"; 
integrity="sha384-IiIL1/ODJBRTrDTFk/pW8j0DUI5/z9m1KYsTm/RjZTNV8RHLGZXkUDwgRRbbQ+Jh" crossorigin="anonymous">
+    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.8/css/fontawesome.css"; 
integrity="sha384-q3jl8XQu1OpdLgGFvNRnPdj5VIlCvgsDQTQB6owSOHWlAurxul7f+JpUOVdAiJ5P" crossorigin="anonymous">
+
+    <link rel="stylesheet" href="style.css">
+  </head>
+
+  <body>
+    <nav class="navbar navbar-expand-md navbar-dark" style="background-color: #3465a4;">
+      <div class="container">
+        <a class="navbar-brand" href="#">
+          <img src="/images/meld.svg" width="30" height="30" class="d-inline-block align-top" alt="">
+          Meld
+        </a>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" 
data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle 
navigation">
+          <span class="navbar-toggler-icon"></span>
+        </button>
+        <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
+          <div class="navbar-nav">
+            <a class="nav-item nav-link" href="#features">Features</a>
+            <a class="nav-item nav-link" href="#development">Development</a>
+            <a class="nav-item nav-link" href="help/">Help</a>
+            <a class="nav-item nav-link" href="https://gitlab.gnome.org/GNOME/meld/wikis/home";>
+              Wiki
+              <i class="fas fa-external-link-alt fa-xs" style="vertical-align: text-top"></i>
+            </a>
+          </div>
+        </div>
+      </div>
+    </nav>
+
+    <div class="container">
+      {{ content }}
+    </div>
+
+    <footer class="container py-3">
+      <div class="row">
+        <div class="col-12 col-md">
+          <small class="d-block mb-3 text-muted">&copy; {{ page.copyright }}</small>
+        </div>
+      </div>
+    </footer>
+
+
+    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"; 
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" 
crossorigin="anonymous"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"; 
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" 
crossorigin="anonymous"></script>
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"; 
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" 
crossorigin="anonymous"></script>
+
+   </body>
+</html>
diff --git a/favicon.png b/favicon.png
new file mode 100644
index 00000000..c67d2a0d
Binary files /dev/null and b/favicon.png differ
diff --git a/images/dirdiff.png b/images/dirdiff.png
new file mode 100644
index 00000000..5716492c
Binary files /dev/null and b/images/dirdiff.png differ
diff --git a/images/filediff.png b/images/filediff.png
new file mode 100644
index 00000000..1f0cd899
Binary files /dev/null and b/images/filediff.png differ
diff --git a/images/meld.svg b/images/meld.svg
new file mode 100644
index 00000000..19308f0f
--- /dev/null
+++ b/images/meld.svg
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   viewBox="0 0 128 128"
+   style="display:inline;enable-background:new"
+   version="1.0"
+   id="svg11300"
+   height="128"
+   width="128">
+  <title
+     id="title4162">Adwaita Icon Template</title>
+  <defs
+     id="defs3">
+    <clipPath
+       id="clipPath868"
+       clipPathUnits="userSpaceOnUse">
+      <rect
+         
style="display:inline;opacity:1;fill:#4fd2fd;fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+         id="rect870"
+         width="112"
+         height="80"
+         x="8"
+         y="196"
+         rx="8"
+         ry="8" />
+    </clipPath>
+    <linearGradient
+       id="linearGradient1427">
+      <stop
+         id="stop1423"
+         offset="0"
+         style="stop-color:#c64600;stop-opacity:1" />
+      <stop
+         style="stop-color:#c64600;stop-opacity:1"
+         offset="0.84624046"
+         id="stop1431" />
+      <stop
+         id="stop1433"
+         offset="0.9231202"
+         style="stop-color:#e66100;stop-opacity:1" />
+      <stop
+         id="stop1425"
+         offset="1"
+         style="stop-color:#c64600;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7688">
+      <stop
+         id="stop7684"
+         offset="0"
+         style="stop-color:#1a5fb4;stop-opacity:1" />
+      <stop
+         style="stop-color:#1c71d8;stop-opacity:1"
+         offset="0.1875"
+         id="stop3222" />
+      <stop
+         style="stop-color:#1a5fb4;stop-opacity:1"
+         offset="0.375"
+         id="stop1435" />
+      <stop
+         id="stop7686"
+         offset="1"
+         style="stop-color:#1a5fb4;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       y2="64"
+       x2="116"
+       y1="64"
+       x1="12"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient888"
+       xlink:href="#linearGradient7688" />
+    <linearGradient
+       y2="112"
+       x2="116"
+       y1="112"
+       x1="63.970703"
+       gradientTransform="matrix(1,0,0,0.99997115,5e-7,0.00335)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient890"
+       xlink:href="#linearGradient1427" />
+  </defs>
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>GNOME Design Team</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source />
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/"; />
+        <dc:title>Adwaita Icon Template</dc:title>
+        <dc:subject>
+          <rdf:Bag />
+        </dc:subject>
+        <dc:date />
+        <dc:rights>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:rights>
+        <dc:publisher>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:publisher>
+        <dc:identifier />
+        <dc:relation />
+        <dc:language />
+        <dc:coverage />
+        <dc:description />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title />
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/4.0/";>
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution"; />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#Notice"; />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#Attribution"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks"; />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#ShareAlike"; />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(0,-172)"
+     style="display:inline"
+     id="layer1">
+    <g
+       style="display:inline"
+       id="layer9">
+      <rect
+         ry="39"
+         y="184"
+         x="12"
+         height="100"
+         width="104"
+         id="rect930"
+         
style="opacity:1;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 />
+      <path
+         transform="translate(0,172)"
+         id="path878"
+         d="M 12 74.523438 L 12 77 L 12 78.523438 L 12.039062 78.523438 C 12.834855 99.416938 29.90482 116 
51 116 L 58.890625 116 L 77 116 L 63.970703 115.99609 L 63.970703 112 L 58.890625 112 L 51 112 C 29.90482 112 
12.834865 95.416938 12.039062 74.523438 L 12 74.523438 z "
+         
style="opacity:1;fill:url(#linearGradient888);fill-opacity:1;stroke:none;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 />
+      <path
+         transform="translate(0,172)"
+         id="path880"
+         d="M 116 104 C 116 108.432 112.432 112 108 112 L 77 112 L 63.970703 112 L 63.970703 115.99609 L 77 
116 L 108 116 C 112.432 116 116 112.43187 116 108 L 116 104 z "
+         
style="display:inline;fill:url(#linearGradient890);fill-opacity:1;stroke-width:0.99998552;enable-background:new"
 />
+      <path
+         id="path884"
+         d="m 20,184 c -4.431999,0 -8,3.568 -8,8 v 31 6.32422 c 2.41723,6.19473 5.90014,11.98333 
10.60742,17.05078 5.5033,5.92436 13.680291,10.87906 22.14258,12.7168 8.46229,1.83772 17.20734,0.56105 
23.85938,-5.97266 2.27839,-2.23785 4.19951,-5.55421 4.876951,-8.95117 0.67743,-3.39695 0.11237,-6.87287 
-2.574221,-9.44531 -0.85264,-0.81642 -2.11333,-1.51151 -3.39258,-1.74219 -1.27138,-0.22927 -2.55726,0 
-3.48242,1.01953 1.03228,0.938 1.264401,2.24323 1.033201,3.52539 -0.23278,1.29085 -0.93222,2.5617 
-1.75586,3.42188 -2.5856,2.70033 -6.08357,3.26568 -9.49218,2.58593 -3.4086,-0.67976 -6.73127,-2.60464 
-8.97657,-4.89062 -4.91008,-4.99899 -6.85572,-11.17831 -6.74609,-17.53125 0.0365,-2.11766 0.30166,-4.25456 
0.76172,-6.37305 1.84027,-8.47398 6.7982,-16.65732 12.73047,-22.16797 3.78778,-3.51857 7.97986,-6.34942 
12.439449,-8.57031 z"
+         
style="opacity:1;fill:#ff9632;fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 />
+      <path
+         id="path886"
+         d="m 76.88867,208.14844 c -6.34194,-0.1105 -12.50901,1.83213 -17.49804,6.73242 -2.27839,2.23785 
-4.19756,5.55616 -4.875,8.95312 -0.67743,3.39695 -0.11238,6.87288 2.57421,9.44532 0.85264,0.81642 
2.11334,1.5115 3.39258,1.74218 1.271831,0.22934 2.55719,-0.001 3.48242,-1.02148 -1.03233,-0.9379 
-1.26438,-2.24332 -1.0332,-3.52539 0.23276,-1.29075 0.93228,-2.56176 1.75586,-3.42188 2.58548,-2.70021 
6.08367,-3.26566 9.49219,-2.58593 3.4085,0.67974 6.72937,2.60471 8.97461,4.89062 4.91001,4.99893 
6.85768,11.1784 6.74804,17.53125 -0.0365,2.11761 -0.30165,4.25458 -0.76171,6.37305 -1.84025,8.47387 
-6.79827,16.65738 -12.73047,22.16797 C 72.622341,278.9483 68.4305,281.7791 63.970701,284 H 77 108 c 4.432,0 
8,-3.568 8,-8 v -27 -10.32422 c -2.41743,-6.19474 -5.90013,-11.98333 -10.60742,-17.05078 -5.503319,-5.92436 
-13.678339,-10.8771 -22.140629,-12.71484 -2.115581,-0.45943 -4.24931,-0.72488 -6.363281,-0.76172 z"
+         
style="opacity:1;fill:#ff9632;fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 />
+    </g>
+  </g>
+</svg>
diff --git a/images/vcview.png b/images/vcview.png
new file mode 100644
index 00000000..3c83f2ef
Binary files /dev/null and b/images/vcview.png differ
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..aabffa78
--- /dev/null
+++ b/index.html
@@ -0,0 +1,211 @@
+---
+layout: default
+title: Meld
+copyright: 2021 Kai Willadsen
+---
+
+<div class="row">
+  <div class="m-md-3 bg-light">
+    <div class="col-md-8 mx-auto my-5">
+      <h1 class="display-4 font-weight-normal">Meld<small class="text-muted">&nbsp;&nbsp;Visual diff and 
merge tool</small></h1>
+      <p class="lead">
+        Meld helps you compare files, directories, and version controlled projects. It provides two- and 
three-way comparison of both files and directories, and has support for many popular version control systems.
+      </p>
+      <p class="lead">
+        Meld helps you review code changes and understand patches. It might even help you to figure out 
what's going on in that merge you keep avoiding.
+      </p>
+    </div>
+  </div>
+</div>
+
+<div class="row">
+  <a id="features"></a>
+  <div class="col-md my-md-3">
+    <div class="bg-dark p-3 p-md-5 text-white">
+      <div id="feature-carousel" class="carousel slide mx-4" data-ride="carousel">
+        <div class="carousel-inner">
+          <div class="carousel-item active">
+            <div class="d-md-flex">
+              <a href="images/filediff.png" class="mx-3">
+                <img class="w-100" src="images/filediff.png" alt="File comparison">
+              </a>
+              <div class="w-100 mx-3">
+                <h3>File comparison</h3>
+                <ul class="list-feature">
+                  <li>Compare, edit and merge files using live comparison updates</li>
+                  <li>Navigate between changes and operate on change blocks</li>
+                  <li>Simple text filtering for ignoring irrelevant differences</li>
+                  <li>Three-way merge assistance with conflict handling and base version display</li>
+                </ul>
+              </div>
+            </div>
+          </div>
+          <div class="carousel-item">
+            <div class="d-md-flex">
+              <a href="images/dirdiff.png" class="mx-3">
+                <img class="w-100" src="images/dirdiff.png" alt="Folder comparison">
+              </a>
+              <div class="w-100 mx-3">
+                <h3>Folder comparison</h3>
+                <ul class="list-feature">
+                  <li>Identify and manage missing or modified files across folders</li>
+                  <li>Drill down into a file comparison for a detailed view of differences</li>
+                  <li>Ignore certain files or folders for more useful comparisons</li>
+                </ul>
+              </div>
+            </div>
+          </div>
+          <div class="carousel-item">
+            <div class="d-md-flex">
+              <a href="images/vcview.png" class="mx-3">
+                <img class="w-100" src="images/vcview.png" alt="Version control view">
+              </a>
+              <div class="w-100 mx-3">
+                <h3>Version control</h3>
+                <ul class="list-feature">
+                  <li>Supports Git, Mercurial, Bazaar and Subversion</li>
+                  <li>Check your changes, commit and push easily</li>
+                  <li>View and manage version control states</li>
+                  <li>Tool integration with e.g., <code>git mergetool</code></li>
+                </ul>
+              </div>
+            </div>
+          </div>
+
+        </div>
+        <a class="carousel-control-prev" href="#feature-carousel" role="button" data-slide="prev">
+          <span class="carousel-control-prev-icon" aria-hidden="true"></span>
+          <span class="sr-only">Previous</span>
+        </a>
+        <a class="carousel-control-next" href="#feature-carousel" role="button" data-slide="next">
+          <span class="carousel-control-next-icon" aria-hidden="true"></span>
+          <span class="sr-only">Next</span>
+        </a>
+
+      </div>
+    </div>
+  </div>
+</div>
+
+<div class="row">
+  <div class="col-md-6 my-md-3">
+    <div class="py-3 px-3 py-md-5 px-md-5">
+      <div>
+        <h3>Installing Meld</h3>
+        <div class="d-flex">
+          <i class="fas fa-cubes fa-2x fa-fw mr-3 mb-2"></i>
+          <p>
+            Meld is packaged for most Linux/Unix distributions, and is also available on <a 
href="https://flathub.org/";>Flathub</a>. For installing from source, see the <a 
href="https://gitlab.gnome.org/GNOME/meld/-/blob/master/README.md";>instructions</a>.
+          </p>
+        </div>
+        <div class="d-flex">
+          <i class="fab fa-windows fa-2x fa-fw mr-3 mb-2"></i>
+          <p>
+            Windows users should download the MSI. Meld does not yet support automatic updates or portable 
installs.
+          </p>
+        </div>
+        <div class="d-flex">
+          <i class="fab fa-apple fa-2x fa-fw mr-3 mb-2"></i>
+          <p>
+            Meld is not <em>yet</em> supported on OS X. Third-party binaries <a 
href="https://github.com/yousseb/meld/releases";>are available</a>, and you can install from <a 
href="https://brew.sh/";>Homebrew</a>, <a href="https://www.macports.org/";>MacPorts</a> or <a 
href="http://www.finkproject.org/";>Fink</a>.
+          </p>
+        </div>
+      </div>
+
+      <div>
+        <h5>Requirements</h5>
+        <ul class="list-columns">
+          <li>Python 3.4</li>
+          <li>GTK+ 3.20</li>
+          <li>GLib 2.36</li>
+          <li>PyGObject 3.20</li>
+          <li>GtkSourceView 3.20</li>
+          <li>pycairo</li>
+        </ul>
+        <p>
+          See the current <a href="https://gitlab.gnome.org/GNOME/meld/-/blob/master/README.md";>README 
file</a> for development and build requirements.
+        </p>
+      </div>
+    </div>
+  </div>
+
+  <div class="col-md-6 my-md-3">
+    {% for release in site.data.releases %}
+      {% include release_card.html release=release %}
+    {% endfor %}
+
+    <div class="card bg-dark text-white mb-3 mr-md-3 py-2 px-3 py-md-3 px-md-5">
+      <div class="card-body py-0 px-0">
+          See the <a href="https://gitlab.gnome.org/GNOME/meld/-/releases";>full release list</a> for older 
releases.
+      </div>
+    </div>
+  </div>
+</div>
+
+<div class="row">
+
+  <div class="col-md-6 my-md-3">
+    <div class="bg-dark text-white mr-md-3 py-3 px-3 py-md-5 px-md-5">
+      <a id="development"></a>
+      <h3>Contributing</h3>
+      <p>
+        All development happens on <a href="https://gitlab.gnome.org/GNOME/meld";>GNOME's Gitlab 
instance</a>. Please <a href="https://gitlab.gnome.org/GNOME/meld/issues";>open an issue</a> for any problems 
you encounter, and feel free to ask on the <a href="https://discourse.gnome.org/tag/meld";>discussion 
board</a> if you're uncertain about anything.
+      </p>
+
+      <h3>Developing</h3>
+      <p>
+        You can run Meld directly from your git clone, without installing:<br>
+      </p>
+        <pre class="text-white">
+$ git clone https://gitlab.gnome.org/GNOME/meld.git
+$ bin/meld</pre>
+
+      <h3>Internationalization support</h3>
+      <p>
+        Meld is available in <a href="https://l10n.gnome.org/module/meld/";>several languages</a> thanks to 
the epic efforts of many wonderful translators. If you'd like to contribute translations, please contact the 
<a href="https://wiki.gnome.org/TranslationProject";>GNOME Translation Project</a>.
+      </p>
+    </div>
+  </div>
+  <div class="col-md-6 my-md-3">
+    <div class="mr-md-3 py-3 px-3 py-md-5 px-md-5">
+
+      <div class="row">
+        <div class="col-sm-12">
+          <h3>Resources</h3>
+        </div>
+        <div class="col-sm-4 mt-1">Project page</div>
+        <div class="col-sm-8 mt-1">
+          <a href="https://gitlab.gnome.org/GNOME/meld";>https://gitlab.gnome.org/GNOME/meld</a>
+        </div>
+        <div class="col-sm-4 mt-1">Source view</div>
+        <div class="col-sm-8 mt-1">
+          <a 
href="https://gitlab.gnome.org/GNOME/meld/tree/master";>https://gitlab.gnome.org/GNOME/meld/tree/master</a>
+        </div>
+        <div class="col-sm-4 mt-1">Issue tracker</div>
+        <div class="col-sm-8 mt-1">
+          <a href="https://gitlab.gnome.org/GNOME/meld/issues";>https://gitlab.gnome.org/GNOME/meld/issues</a>
+        </div>
+        <div class="col-sm-4 mt-1">Discussion</div>
+        <div class="col-sm-8 mt-1">
+          <a href="https://discourse.gnome.org/tag/meld";>https://discourse.gnome.org/tag/meld</a>
+        </div>
+        <div class="col-sm-4 mt-1">Translations</div>
+        <div class="col-sm-8 mt-1">
+          <a href="https://l10n.gnome.org/module/meld/";>https://l10n.gnome.org/module/meld/</a>
+        </div>
+
+        <div class="col-sm-12 mt-4">
+          <h3>Project details</h3>
+        </div>
+        <div class="col-sm-4 mt-1">License</div>
+        <div class="col-sm-8 mt-1">
+          <a href="https://www.gnu.org/licenses/gpl-2.0.html";>GPLv2 or later</a>, except as noted
+        </div>
+        <div class="col-sm-4 mt-1">Primary authors</div>
+        <div class="col-sm-8 mt-1">
+          Kai Willadsen, Stephen Kennedy, Vincent Legoll
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
diff --git a/style.css b/style.css
new file mode 100644
index 00000000..12b39edb
--- /dev/null
+++ b/style.css
@@ -0,0 +1,27 @@
+/* Feature list */
+
+.list-feature {
+  font-size: 1.25rem;
+  font-weight: 300;
+  list-style-type: square;
+  padding-inline-start: 1em;
+}
+
+/* Requirements list only */
+
+.list-columns {
+  column-count: 2;
+  column-gap: 1em;
+}
+
+/* Rubbish carousel customisations */
+
+.carousel-control-prev {
+  margin-left: -2rem;
+  width: unset;
+}
+
+.carousel-control-next {
+  margin-right: -2rem;
+  width: unset;
+}
diff --git a/workers-site/.cargo-ok b/workers-site/.cargo-ok
new file mode 100644
index 00000000..e69de29b
diff --git a/workers-site/.gitignore b/workers-site/.gitignore
new file mode 100644
index 00000000..75c573a4
--- /dev/null
+++ b/workers-site/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+worker
diff --git a/workers-site/index.js b/workers-site/index.js
new file mode 100644
index 00000000..15597fde
--- /dev/null
+++ b/workers-site/index.js
@@ -0,0 +1,92 @@
+import { getAssetFromKV, mapRequestToAsset } from '@cloudflare/kv-asset-handler'
+
+/**
+ * The DEBUG flag will do two things that help during development:
+ * 1. we will skip caching on the edge, which makes it easier to
+ *    debug.
+ * 2. we will return an error message on exception in your Response rather
+ *    than the default 404.html page.
+ */
+const DEBUG = false
+
+addEventListener('fetch', event => {
+  try {
+    event.respondWith(handleEvent(event))
+  } catch (e) {
+    if (DEBUG) {
+      return event.respondWith(
+        new Response(e.message || e.toString(), {
+          status: 500,
+        }),
+      )
+    }
+    event.respondWith(new Response('Internal Error', { status: 500 }))
+  }
+})
+
+async function handleEvent(event) {
+  const url = new URL(event.request.url)
+  let options = {}
+
+  /**
+   * You can add custom logic to how we fetch your assets
+   * by configuring the function `mapRequestToAsset`
+   */
+  // options.mapRequestToAsset = handlePrefix(/^\/docs/)
+
+  try {
+    if (DEBUG) {
+      // customize caching
+      options.cacheControl = {
+        bypassCache: true,
+      };
+    }
+    const page = await getAssetFromKV(event, options);
+
+    // allow headers to be altered
+    const response = new Response(page.body, page);
+
+    response.headers.set("X-XSS-Protection", "1; mode=block");
+    response.headers.set("X-Content-Type-Options", "nosniff");
+    response.headers.set("X-Frame-Options", "DENY");
+    response.headers.set("Referrer-Policy", "unsafe-url");
+    response.headers.set("Feature-Policy", "none");
+
+    return response;
+
+  } catch (e) {
+    // if an error is thrown try to serve the asset at 404.html
+    if (!DEBUG) {
+      try {
+        let notFoundResponse = await getAssetFromKV(event, {
+          mapRequestToAsset: req => new Request(`${new URL(req.url).origin}/404.html`, req),
+        })
+
+        return new Response(notFoundResponse.body, { ...notFoundResponse, status: 404 })
+      } catch (e) {}
+    }
+
+    return new Response(e.message || e.toString(), { status: 500 })
+  }
+}
+
+/**
+ * Here's one example of how to modify a request to
+ * remove a specific prefix, in this case `/docs` from
+ * the url. This can be useful if you are deploying to a
+ * route on a zone, or if you only want your static content
+ * to exist at a specific path.
+ */
+function handlePrefix(prefix) {
+  return request => {
+    // compute the default (e.g. / -> index.html)
+    let defaultAssetKey = mapRequestToAsset(request)
+    let url = new URL(defaultAssetKey.url)
+
+    // strip the prefix from the path for lookup
+    url.pathname = url.pathname.replace(prefix, '/')
+
+    // inherit all other props from the default request
+    return new Request(url.toString(), defaultAssetKey)
+  }
+}
\ No newline at end of file
diff --git a/workers-site/package-lock.json b/workers-site/package-lock.json
new file mode 100644
index 00000000..e0af0cc8
--- /dev/null
+++ b/workers-site/package-lock.json
@@ -0,0 +1,33 @@
+{
+  "name": "worker",
+  "version": "1.0.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@cloudflare/kv-asset-handler": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.1.1.tgz";,
+      "integrity": 
"sha512-loZzVTXfoSKsZ/VVeHGuRlQFcxUEmTPIyWx3Zti9/lShfhETZJ90nKpbvoWps7P60kILWpILE/5EfHDiumfYEQ==",
+      "requires": {
+        "@cloudflare/workers-types": "^2.0.0",
+        "@types/mime": "^2.0.2",
+        "mime": "^2.4.6"
+      }
+    },
+    "@cloudflare/workers-types": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-2.1.0.tgz";,
+      "integrity": 
"sha512-VmXaHTq0lt6Xre4aK1hUK25hjZjuEUkHtdUEt0FJamv+NzQO54Gwp6Zr5Cfu6SP5EQ/tTmTMP/tK9npA8zhcCg=="
+    },
+    "@types/mime": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz";,
+      "integrity": 
"sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q=="
+    },
+    "mime": {
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz";,
+      "integrity": 
"sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg=="
+    }
+  }
+}
diff --git a/workers-site/package.json b/workers-site/package.json
new file mode 100644
index 00000000..7ca3cdee
--- /dev/null
+++ b/workers-site/package.json
@@ -0,0 +1,12 @@
+{
+  "private": true,
+  "name": "worker",
+  "version": "1.0.0",
+  "description": "A template for kick starting a Cloudflare Workers project",
+  "main": "index.js",
+  "author": "Ashley Lewis <ashleymichal gmail com>",
+  "license": "MIT",
+  "dependencies": {
+    "@cloudflare/kv-asset-handler": "~0.1.1"
+  }
+}
diff --git a/wrangler.toml b/wrangler.toml
new file mode 100644
index 00000000..bec7503a
--- /dev/null
+++ b/wrangler.toml
@@ -0,0 +1,17 @@
+name = "meld-app"
+type = 'webpack'
+account_id = '6339f2b9496297204382eca4fb01f7e2'
+route = ''
+zone_id = ''
+usage_model = ''
+workers_dev = true
+target_type = "webpack"
+
+[site]
+bucket = "./public"
+entry-point = "workers-site"
+
+[env.production]
+workers_dev = false
+zone_id = "b64c0c8b024e2c6dd513e48a2b346d7b"
+route = "meld.app/*"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]