diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 043da5d4ebc..00000000000 --- a/Gemfile +++ /dev/null @@ -1,26 +0,0 @@ -source 'https://rubygems.org' - -require 'json' -require 'open-uri' -versions = JSON.parse(open('https://pages.github.com/versions.json').read) rescue ">0" - -group :jekyll_plugins do - gem 'jekyll-redirect-from' - gem 'github-pages', versions['github-pages'] - gem 'jekyll-octicons' - gem 'jekyll-readme-index' - gem 'jekyll-mentions' - gem 'jemoji' -end - -group :scripts do - gem 'octokit' -end - -group :test do - gem 'html-proofer' -end - -gem 'rb-fsevent', '0.9.8' # See issue https://github.com/guard/listen/issues/431 - -# Added at 2017-10-23 15:14:34 -0400 by jasonetcovitch: diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 13a74c98de7..00000000000 --- a/_config.yml +++ /dev/null @@ -1,50 +0,0 @@ -title: Probot -description: GitHub Apps to automate and improve your workflow -permalink: pretty - -exclude: - - Gemfile* - - node_modules - - package.json - - package-lock.json - - README.md - - node_modules - - _submodules - - script - - vendor - -markdown: GFM - -sass: - style: :compressed - sass_dir: _sass - load_paths: - - node_modules - - node_modules/**/*/node_modules - -collections: - apps: - output: true - permalink: /apps/:name/ - -defaults: - - scope: - path: "" - type: apps - values: - layout: app - - scope: - path: "docs" - values: - layout: docs - -plugins: - - jekyll-mentions - - jekyll-octicons - - jekyll-readme-index - - jekyll-redirect-from - - jekyll-seo-tag - - jekyll-sitemap - - jemoji - -branch: master diff --git a/_includes/app.html b/_includes/app.html deleted file mode 100644 index 8eb0f64b5a8..00000000000 --- a/_includes/app.html +++ /dev/null @@ -1,48 +0,0 @@ -
- -

{{ app.title }}

-

{{ app.description }}

-
-
- {% if app.installations %} -
- {% octicon download height:16 class:"v-align-middle" %} - {{ app.installations }} -
- {% endif %} -
- {% octicon star height:16 class:"v-align-middle" %} - {{ app.stars }} -
-
- {% for author in app.authors %} - Made by {{ author }} - {% endfor %} -
-
-
-
-
diff --git a/_includes/docs/examples.html b/_includes/docs/examples.html deleted file mode 100644 index 53cf3b31c11..00000000000 --- a/_includes/docs/examples.html +++ /dev/null @@ -1,7 +0,0 @@ -{% assign apps = site.apps | sample:4 %} - - diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index 94483eb50fd..00000000000 --- a/_includes/footer.html +++ /dev/null @@ -1,64 +0,0 @@ -
-
-
{% include subscribe.html %}
-
-

- - Star - - - -

-

- {% octicon code %} with {% octicon heart %} by - the Probot community -

-

- Code licensed - ISC - Docs licensed - CC-BY-4.0 -

-
-
-
-
- - diff --git a/_includes/nav.html b/_includes/nav.html deleted file mode 100644 index c65d832b207..00000000000 --- a/_includes/nav.html +++ /dev/null @@ -1,21 +0,0 @@ -{% if page.url == '/' %}{% assign homepage = true %}{% endif %} - -
-
-
-

- {% unless homepage %} - - - Probot - - {% endunless %} -

- -
-
-
diff --git a/_includes/subscribe.html b/_includes/subscribe.html deleted file mode 100644 index 7e9ec572947..00000000000 --- a/_includes/subscribe.html +++ /dev/null @@ -1,20 +0,0 @@ - -
-
-
-

-

Get occasional updates on new apps & features.

-
-
- -
-
- -
-
- - -
-
-
- diff --git a/_layouts/docs.liquid b/_layouts/docs.liquid index 32c356db52b..e499a2307ec 100644 --- a/_layouts/docs.liquid +++ b/_layouts/docs.liquid @@ -49,6 +49,7 @@ layout: default {% assign targeturl = item.url %} {% assign targettext = item.title %} {% else %} + {% for doc in collections.docs %} {% assign documentbase = "docs/" | append: doc.template.parsed.base %} {% assign documentbasepath = doc.template.parsed.base | slug %} {% assign documentbaseurl = "/docs/" | append: documentbasepath %} diff --git a/_sass/addtocalendar.scss b/_sass/addtocalendar.scss deleted file mode 100644 index a25aa03211a..00000000000 --- a/_sass/addtocalendar.scss +++ /dev/null @@ -1,125 +0,0 @@ -/** - * AddToCalendar Blue Style - * http://addtocalendar.com - */ - -/* Base */ - -.addeventatc span { - display: none; -} - -.addtocalendar { - position: relative; - display: inline-block; - background: transparent!important; -} - -.atcb-link { - outline: none!important; - cursor: pointer; -} - -.atcb-link:focus~ul, -.atcb-link:active~ul, -.atcb-list:hover{ - visibility:visible; -} - -.atcb-list { - visibility: hidden; - position: absolute; - top: 100%; - left: 0; - width: 170px; - z-index: 900; - @extend .border; - border-radius: 4px; - overflow: hidden; -} - -.atcb-list, -.atcb-item -{ - list-style: none; - margin: 0; - padding: 0; - background: #fff; -} - -.atcb-item { - float: none; - text-align: left; -} - -.atcb-item-link -{ - text-decoration: none; - outline: none; - display: block; -} - -.atcb-item.hover, -.atcb-item:hover { - position: relative; - z-index: 900; - cursor: pointer; - text-decoration: none; - outline: none; -} - -.atc-style-blue -{ - border: 0 !important; - padding: 0 !important; -} - -.atc-style-blue .addeventatc_icon -{ - display: none; -} - -.atc-style-blue .atcb-list, -.atc-style-blue .atcb-item -{ - background: #fff; - color: #000; -} - -.atc-style-blue .atcb-item, -.atc-style-blue .atcb-item-link -{ - line-height: 1.3em; - vertical-align: middle; - zoom: 1; -} - -.atc-style-blue .atcb-item-link, -.atc-style-blue .atcb-item-link:hover, -.atc-style-blue .atcb-item-link:active, -.atc-style-blue .atcb-item-link:focus -{ - color: #000; - font-family: $body-font; - font-size: 14px; - text-decoration: none; - outline: none; - padding: 5px 15px; -} - -.atc-style-blue .atcb-item-link:hover, -.atc-style-blue .atcb-item-link:active, -.atc-style-blue .atcb-item-link:focus -{ - color: #fff; -} - -.atc-style-blue .atcb-item.hover, -.atc-style-blue .atcb-item:hover { - background: $text-blue; -} - -// Override the addtocalendar.com button font -.addeventatc { - font-family: $body-font !important; -} diff --git a/_sass/colors.scss b/_sass/colors.scss deleted file mode 100644 index a752e4b57c2..00000000000 --- a/_sass/colors.scss +++ /dev/null @@ -1,15 +0,0 @@ -$brand: (red, #EF4136), - (blue, #00B0D8), - (blue-dark, darken(#00B0D8, 10%)), - (blue-light, lighten(#AFDFE4, 15%)), - (orange, #FCBA63); - -@each $name, $color in $brand { - .bg-brand-#{"" + $name} { - background-color: $color; - } - - .text-brand-#{"" + $name} { - color: $color; - } -} diff --git a/_sass/markdown.scss b/_sass/markdown.scss deleted file mode 100644 index 363092d6d8d..00000000000 --- a/_sass/markdown.scss +++ /dev/null @@ -1,14 +0,0 @@ -.markdown-body { - h1 { @include alt-h2; } - h2 { @include alt-h3; } - h3 { @include alt-h3; } - - h1, h2, h3 { - margin-top: $spacer-6; - - &:first-child { - margin-top: 0; - margin-bottom: $spacer-6; - } - } -} diff --git a/_sass/pages/home.scss b/_sass/pages/home.scss deleted file mode 100644 index 8977185d106..00000000000 --- a/_sass/pages/home.scss +++ /dev/null @@ -1,26 +0,0 @@ -.timeline-comment { - position: relative; -} - -.timeline-comment:before { - border-width: 8px; - border-right-color: #d1d5da; -} -.timeline-comment:after { - position: absolute; - top: 11px; - right: 100%; - left: -16px; - display: block; - width: 0; - height: 0; - pointer-events: none; - content: " "; - border-color: transparent; - border-style: solid solid outset; -} - -figure { - margin: 0; - padding: $spacer-3; -} diff --git a/_sass/switcher.scss b/_sass/switcher.scss deleted file mode 100644 index 8a548628220..00000000000 --- a/_sass/switcher.scss +++ /dev/null @@ -1,33 +0,0 @@ -.sixteen-by-nine { - position: relative; - - &:before { - display: block; - content: ""; - width: 100%; - padding-top: (9 / 16) * 100%; - } - - > .content { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - width: 100%; - height: 100%; - } -} - -.switcher-input { - display: none; -} - -.switcher-item { - transition: opacity .15s ease-in-out; - opacity: 0; - - input:checked + & { - opacity: 1; - } -} diff --git a/assets/card.png b/assets/card.png deleted file mode 100644 index 0016aad0c3f..00000000000 Binary files a/assets/card.png and /dev/null differ diff --git a/assets/conversation.svg b/assets/conversation.svg deleted file mode 100644 index 342167d4524..00000000000 --- a/assets/conversation.svg +++ /dev/null @@ -1,91 +0,0 @@ - - -home-1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/css/index.scss b/assets/css/index.scss deleted file mode 100644 index 0c9f93afc6c..00000000000 --- a/assets/css/index.scss +++ /dev/null @@ -1,53 +0,0 @@ ---- ---- - -@import "primer-css/index.scss"; -@import "pages/home.scss"; -@import "colors.scss"; -@import "markdown.scss"; -@import "switcher.scss"; -@import "addtocalendar.scss"; - -img { - max-width: 100%; - max-height: 100%; -} - -.featurette { - padding-top: $spacer * 10; - padding-bottom: $spacer * 10; -} - -.octicon { - display: inline-block; - vertical-align: middle; - fill: currentColor; -} - -code { - font-size: 14px; -} - -/* - * Extend the footer to the bottom of the page, - * even if there’s not enough content to make the page scroll. - */ -body { - min-height: 100vh; - display: flex; - flex-direction: column; -} -.container-lg { - flex: 1; - width: 100%; -} - -#toc .toc-wrap { - position: -webkit-sticky; - position: sticky; - top: 40px; -} - -.flex-1 { - flex: 1; -} diff --git a/assets/css/syntax.css b/assets/css/syntax.css deleted file mode 100644 index 2774b764926..00000000000 --- a/assets/css/syntax.css +++ /dev/null @@ -1,60 +0,0 @@ -.highlight { background: #ffffff; } -.highlight .c { color: #999988; font-style: italic } /* Comment */ -.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ -.highlight .k { font-weight: bold } /* Keyword */ -.highlight .o { font-weight: bold } /* Operator */ -.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ -.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ -.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #aa0000 } /* Generic.Error */ -.highlight .gh { color: #999999 } /* Generic.Heading */ -.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ -.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #555555 } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #aaaaaa } /* Generic.Subheading */ -.highlight .gt { color: #aa0000 } /* Generic.Traceback */ -.highlight .kc { font-weight: bold } /* Keyword.Constant */ -.highlight .kd { font-weight: bold } /* Keyword.Declaration */ -.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #009999 } /* Literal.Number */ -.highlight .s { color: #d14 } /* Literal.String */ -.highlight .na { color: #008080 } /* Name.Attribute */ -.highlight .nb { color: #0086B3 } /* Name.Builtin */ -.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ -.highlight .no { color: #008080 } /* Name.Constant */ -.highlight .ni { color: #800080 } /* Name.Entity */ -.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ -.highlight .nn { color: #555555 } /* Name.Namespace */ -.highlight .nt { color: #000080 } /* Name.Tag */ -.highlight .nv { color: #008080 } /* Name.Variable */ -.highlight .ow { font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #009999 } /* Literal.Number.Float */ -.highlight .mh { color: #009999 } /* Literal.Number.Hex */ -.highlight .mi { color: #009999 } /* Literal.Number.Integer */ -.highlight .mo { color: #009999 } /* Literal.Number.Oct */ -.highlight .sb { color: #d14 } /* Literal.String.Backtick */ -.highlight .sc { color: #d14 } /* Literal.String.Char */ -.highlight .sd { color: #d14 } /* Literal.String.Doc */ -.highlight .s2 { color: #d14 } /* Literal.String.Double */ -.highlight .se { color: #d14 } /* Literal.String.Escape */ -.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ -.highlight .si { color: #d14 } /* Literal.String.Interpol */ -.highlight .sx { color: #d14 } /* Literal.String.Other */ -.highlight .sr { color: #009926 } /* Literal.String.Regex */ -.highlight .s1 { color: #d14 } /* Literal.String.Single */ -.highlight .ss { color: #990073 } /* Literal.String.Symbol */ -.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #008080 } /* Name.Variable.Class */ -.highlight .vg { color: #008080 } /* Name.Variable.Global */ -.highlight .vi { color: #008080 } /* Name.Variable.Instance */ -.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ diff --git a/assets/logo.png b/assets/logo.png deleted file mode 100644 index c6357a2a353..00000000000 Binary files a/assets/logo.png and /dev/null differ diff --git a/assets/office-hours.png b/assets/office-hours.png deleted file mode 100644 index 8b7a9453cf4..00000000000 Binary files a/assets/office-hours.png and /dev/null differ diff --git a/assets/probot-head.png b/assets/probot-head.png deleted file mode 100644 index f2b9a0d5e52..00000000000 Binary files a/assets/probot-head.png and /dev/null differ diff --git a/browserconfig.xml b/browserconfig.xml deleted file mode 100644 index 12fe21398fd..00000000000 --- a/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #66cce0 - - - diff --git a/diff b/diff new file mode 100644 index 00000000000..3e9b23e3eec --- /dev/null +++ b/diff @@ -0,0 +1,317 @@ +diff --git a/_layouts/docs.liquid b/_layouts/docs.liquid +index a12b5cd5..e499a230 100644 +--- a/_layouts/docs.liquid ++++ b/_layouts/docs.liquid +@@ -51,7 +51,8 @@ layout: default + {% else %} + {% for doc in collections.docs %} + {% assign documentbase = "docs/" | append: doc.template.parsed.base %} +- {% assign documentbaseurl = "/docs/" | append: doc.template.parsed.base %} ++ {% assign documentbasepath = doc.template.parsed.base | slug %} ++ {% assign documentbaseurl = "/docs/" | append: documentbasepath %} + {% if documentbase == item %} + {% assign targeturl = documentbaseurl %} + {% assign targettext = doc.data.title %} +diff --git a/mstile-150x150.png b/mstile-150x150.png +new file mode 100644 +index 00000000..711ed4e9 +Binary files /dev/null and b/mstile-150x150.png differ +diff --git a/package-lock.json b/package-lock.json +new file mode 100644 +index 00000000..39788282 +--- /dev/null ++++ b/package-lock.json +@@ -0,0 +1,280 @@ ++{ ++ "requires": true, ++ "lockfileVersion": 1, ++ "dependencies": { ++ "primer-alerts": { ++ "version": "1.1.7", ++ "resolved": "https://registry.npmjs.org/primer-alerts/-/primer-alerts-1.1.7.tgz", ++ "integrity": "sha1-Ilhdk4/f8CttIs5gPd+xlnMpqIo=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-avatars": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-avatars/-/primer-avatars-1.0.1.tgz", ++ "integrity": "sha1-M9ZnDrZWpGcWrsK0kHnsodKh/5M=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-base": { ++ "version": "0.4.2", ++ "resolved": "https://registry.npmjs.org/primer-base/-/primer-base-0.4.2.tgz", ++ "integrity": "sha1-EL6nvdRUxEex7W6AFZXziIsw8B8=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-blankslate": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-blankslate/-/primer-blankslate-1.0.1.tgz", ++ "integrity": "sha1-feJj+C7rQy0QjUQfvyMk12JAQbw=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-box": { ++ "version": "2.1.7", ++ "resolved": "https://registry.npmjs.org/primer-box/-/primer-box-2.1.7.tgz", ++ "integrity": "sha1-BLcZ1evmpwgPWVgb9791TJTVc0I=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-breadcrumb": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-breadcrumb/-/primer-breadcrumb-1.0.1.tgz", ++ "integrity": "sha1-0O9p0vHeTOnU3ZPHwFmVRQbcDuQ=", ++ "requires": { ++ "primer-marketing-support": "1.0.1", ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-buttons": { ++ "version": "2.0.5", ++ "resolved": "https://registry.npmjs.org/primer-buttons/-/primer-buttons-2.0.5.tgz", ++ "integrity": "sha1-C97B8QLf+yPv8RKXHyng2DajAog=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-cards": { ++ "version": "0.1.7", ++ "resolved": "https://registry.npmjs.org/primer-cards/-/primer-cards-0.1.7.tgz", ++ "integrity": "sha1-mm6sbVO9PeK0XzlWoBKz9jf7K3o=", ++ "requires": { ++ "primer-marketing-support": "1.0.1", ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-core": { ++ "version": "5.0.1", ++ "resolved": "https://registry.npmjs.org/primer-core/-/primer-core-5.0.1.tgz", ++ "integrity": "sha1-TZq/WuR3s7BJr7/lG78YpAA/0Ms=", ++ "requires": { ++ "primer-base": "0.4.2", ++ "primer-box": "2.1.7", ++ "primer-buttons": "2.0.5", ++ "primer-forms": "1.0.12", ++ "primer-layout": "1.0.4", ++ "primer-navigation": "1.0.5", ++ "primer-support": "4.0.6", ++ "primer-table-object": "1.0.8", ++ "primer-tooltips": "1.0.1", ++ "primer-truncate": "1.0.1", ++ "primer-utilities": "4.3.4" ++ } ++ }, ++ "primer-css": { ++ "version": "8.0.0", ++ "resolved": "https://registry.npmjs.org/primer-css/-/primer-css-8.0.0.tgz", ++ "integrity": "sha1-5XYtq/f62SXzCXi7vFiPO9Rmrl8=", ++ "requires": { ++ "primer-alerts": "1.1.7", ++ "primer-avatars": "1.0.1", ++ "primer-base": "0.4.2", ++ "primer-blankslate": "1.0.1", ++ "primer-box": "2.1.7", ++ "primer-breadcrumb": "1.0.1", ++ "primer-buttons": "2.0.5", ++ "primer-cards": "0.1.7", ++ "primer-core": "5.0.1", ++ "primer-forms": "1.0.12", ++ "primer-labels": "1.1.5", ++ "primer-layout": "1.0.4", ++ "primer-markdown": "3.3.12", ++ "primer-marketing": "5.0.1", ++ "primer-marketing-support": "1.0.1", ++ "primer-marketing-type": "1.0.1", ++ "primer-marketing-utilities": "1.0.1", ++ "primer-navigation": "1.0.5", ++ "primer-page-headers": "1.0.1", ++ "primer-page-sections": "1.0.1", ++ "primer-product": "5.0.1", ++ "primer-support": "4.0.6", ++ "primer-table-object": "1.0.8", ++ "primer-tables": "1.0.1", ++ "primer-tooltips": "1.0.1", ++ "primer-truncate": "1.0.1", ++ "primer-utilities": "4.3.4" ++ } ++ }, ++ "primer-forms": { ++ "version": "1.0.12", ++ "resolved": "https://registry.npmjs.org/primer-forms/-/primer-forms-1.0.12.tgz", ++ "integrity": "sha1-AbmPUIhScvqLeH4gQzeYPlf38BU=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-labels": { ++ "version": "1.1.5", ++ "resolved": "https://registry.npmjs.org/primer-labels/-/primer-labels-1.1.5.tgz", ++ "integrity": "sha1-F1K536lS7mYnYEbiId1eEKD4vpk=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-layout": { ++ "version": "1.0.4", ++ "resolved": "https://registry.npmjs.org/primer-layout/-/primer-layout-1.0.4.tgz", ++ "integrity": "sha1-730nf+1bTk7jdYSrZ6SguLZhzdI=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-markdown": { ++ "version": "3.3.12", ++ "resolved": "https://registry.npmjs.org/primer-markdown/-/primer-markdown-3.3.12.tgz", ++ "integrity": "sha1-aN6IYA7cSdKHJ6/u4y4O/8HKKv4=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-marketing": { ++ "version": "5.0.1", ++ "resolved": "https://registry.npmjs.org/primer-marketing/-/primer-marketing-5.0.1.tgz", ++ "integrity": "sha1-J+r067J5x1XoZC3hvhu+GJpoPno=", ++ "requires": { ++ "primer-breadcrumb": "1.0.1", ++ "primer-cards": "0.1.7", ++ "primer-marketing-support": "1.0.1", ++ "primer-marketing-type": "1.0.1", ++ "primer-marketing-utilities": "1.0.1", ++ "primer-page-headers": "1.0.1", ++ "primer-page-sections": "1.0.1", ++ "primer-support": "4.0.6", ++ "primer-tables": "1.0.1" ++ } ++ }, ++ "primer-marketing-support": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-marketing-support/-/primer-marketing-support-1.0.1.tgz", ++ "integrity": "sha1-aL2NEWNvc0JINZDk6mXu9e50Nw4=" ++ }, ++ "primer-marketing-type": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-marketing-type/-/primer-marketing-type-1.0.1.tgz", ++ "integrity": "sha1-WMV/ulTeJ6KRK3mCHLKdUsyUpV0=", ++ "requires": { ++ "primer-marketing-support": "1.0.1", ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-marketing-utilities": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-marketing-utilities/-/primer-marketing-utilities-1.0.1.tgz", ++ "integrity": "sha1-SC+88Z+bgffSibJu5DvMlNVjhW4=", ++ "requires": { ++ "primer-marketing-support": "1.0.1", ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-navigation": { ++ "version": "1.0.5", ++ "resolved": "https://registry.npmjs.org/primer-navigation/-/primer-navigation-1.0.5.tgz", ++ "integrity": "sha1-6HsDhvFjZiTSdb1VZQs7HUdrBQ8=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-page-headers": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-page-headers/-/primer-page-headers-1.0.1.tgz", ++ "integrity": "sha1-4y4Vz7aixJu5nxzXHDygToF6D3c=", ++ "requires": { ++ "primer-marketing-support": "1.0.1", ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-page-sections": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-page-sections/-/primer-page-sections-1.0.1.tgz", ++ "integrity": "sha1-D0Knyc6P4SrIq9IdTToTIUFDWek=", ++ "requires": { ++ "primer-marketing-support": "1.0.1", ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-product": { ++ "version": "5.0.1", ++ "resolved": "https://registry.npmjs.org/primer-product/-/primer-product-5.0.1.tgz", ++ "integrity": "sha1-qceVAIMKvvKp5AJg4VtS1+PqhuQ=", ++ "requires": { ++ "primer-alerts": "1.1.7", ++ "primer-avatars": "1.0.1", ++ "primer-blankslate": "1.0.1", ++ "primer-labels": "1.1.5", ++ "primer-markdown": "3.3.12", ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-support": { ++ "version": "4.0.6", ++ "resolved": "https://registry.npmjs.org/primer-support/-/primer-support-4.0.6.tgz", ++ "integrity": "sha1-gPO/HOtj/aHPL9vOoJtjLIEuHVQ=" ++ }, ++ "primer-table-object": { ++ "version": "1.0.8", ++ "resolved": "https://registry.npmjs.org/primer-table-object/-/primer-table-object-1.0.8.tgz", ++ "integrity": "sha1-HBYUvWj2rYcuXTREcPs02DgtsV8=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-tables": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-tables/-/primer-tables-1.0.1.tgz", ++ "integrity": "sha1-zSNkV2s6exNTSATxJFNuYfwHhGQ=", ++ "requires": { ++ "primer-marketing-support": "1.0.1", ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-tooltips": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-tooltips/-/primer-tooltips-1.0.1.tgz", ++ "integrity": "sha1-BpKvasKqFzRkIb7cKDIBSyZ3VN8=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-truncate": { ++ "version": "1.0.1", ++ "resolved": "https://registry.npmjs.org/primer-truncate/-/primer-truncate-1.0.1.tgz", ++ "integrity": "sha1-NrliBrEbyQ1EKLjqkPmlOxqSq88=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ }, ++ "primer-utilities": { ++ "version": "4.3.4", ++ "resolved": "https://registry.npmjs.org/primer-utilities/-/primer-utilities-4.3.4.tgz", ++ "integrity": "sha1-/8ib2Z6vaSTVkE/jAIEXDGyFUAg=", ++ "requires": { ++ "primer-support": "4.0.6" ++ } ++ } ++ } ++} +diff --git a/package.json b/package.json +index f0347148..e725d38f 100644 +--- a/package.json ++++ b/package.json +@@ -6,7 +6,7 @@ + "watch": "npm-run-all --parallel watch:sass watch:eleventy", + "watch:sass": "node script/watchsass.js", + "watch:eleventy": "eleventy --serve", +- "build": "eleventy", ++ "build": "eleventy --incremental", + "lint": "eslint script/sync.ts", + "sync-data": "ts-node script/sync.ts" + }, diff --git a/script/bootstrap b/script/bootstrap deleted file mode 100755 index 98076eac18a..00000000000 --- a/script/bootstrap +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -set -e -export CC=gcc - -echo "==> Installing gem dependencies…" -which bundle || gem install bundle -bundle check --path vendor/gems 2>&1 > /dev/null || { - time bundle install --binstubs bin --path vendor/gems -} - -echo "==> Getting submodule for docs…" -git submodule update --init --recursive diff --git a/script/build b/script/build deleted file mode 100755 index 2bb29772a2d..00000000000 --- a/script/build +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -echo "==> Building the site…" -bundle exec jekyll build $@ diff --git a/script/html-proofer b/script/html-proofer deleted file mode 100755 index eb62e632768..00000000000 --- a/script/html-proofer +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env ruby - -require "bundler/setup" -require "html-proofer" - -# add links to ignore here -url_ignores = [ - # Installation links require being signed in to GitHub - %r{https://github.com/apps/.*/installations/new}, - "https://mochajs.org/", - %r{mit-license\.org}, # misconfigured SSL or old certs on Travis CI? - %r{https://localhost:*/*}, # Ignore links to localhost in documentation -] - -begin - HTMLProofer::Runner.new(["_site"], - :type => :directory, - :url_ignore => url_ignores, - :file_ignore => [%r{_site/api/}], - :verbose => !!ENV["VERBOSE"], - :check_html => true, - :empty_alt_ignore => true, - :typhoeus => { - # Work around SSL errors: https://github.com/gjtorikian/html-proofer/issues/376 - :ssl_verifypeer => false, - :ssl_verifyhost => 0 - } - ).run -rescue => e - puts "\n", e - exit 1 -end diff --git a/script/remote-sync b/script/remote-sync deleted file mode 100755 index b43a4591fa0..00000000000 --- a/script/remote-sync +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash -# Run script/sync-data and push changes. - -set -e - -echo "===> Syncing data" -script/sync-data - -git diff --quiet || { - echo "===> Committing and pushing changes" - git commit -am "Sync data" - - REPO=`git config remote.origin.url` - - # If GH_TOKEN environment variable is present, use that to push. - if [[ -n "$GH_TOKEN" ]]; then - REPO=${REPO/https:\/\//https://${GH_TOKEN}@} - fi - - git push $REPO HEAD:master -} diff --git a/script/server b/script/server deleted file mode 100755 index fc6829abe5d..00000000000 --- a/script/server +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -bundle exec jekyll serve --livereload diff --git a/script/site-test b/script/site-test deleted file mode 100755 index 6a6515927d9..00000000000 --- a/script/site-test +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -set -e - -script/build -script/html-proofer diff --git a/script/sync-data b/script/sync-data deleted file mode 100755 index d32508226ba..00000000000 --- a/script/sync-data +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env ruby -# Sync data for apps from GitHub - -require "bundler/setup" -require "open-uri" -require "octokit" -require "yaml" -client = Octokit::Client.new(:access_token => ENV["GH_TOKEN"]) - -files = ARGV[0] ? [ARGV[0]] : Dir.glob('_apps/*.md') - -files.each do |path| - app = YAML.load_file(path) - puts "Syncing #{app['repository']}" - - repo = client.repository(app['repository']) - app['stars'] = repo[:stargazers_count] - app['updated'] = repo[:pushed_at].to_s - - if app['host'] - begin - stats = JSON.parse(URI(app['host'] + '/probot/stats').open.read) - app['installations'] = stats['installations'] - app['organizations'] = stats['popular'].map { |org| org['login'] } - rescue => e - warn e.message - end - end - - content = File.read(path) - content.sub!(/---(.*?)---/m, "#{YAML.dump(app)}---") - File.write(path, content) -end diff --git a/test/frontmatter.yml b/test/frontmatter.yml deleted file mode 100644 index c11c18e4164..00000000000 --- a/test/frontmatter.yml +++ /dev/null @@ -1,55 +0,0 @@ -# Each piece of content has YAML front matter with these properties: -banned_words: - - GitHub App # They're all GitHub Apps - - bot # TODO: link to docs about why bot is not preferred - - automatically # They're all automatic - - probot # Now you're just name dropping - -exceptions: - bot: ["sentiment-bot"] - -fields: - title: - type: String - required: true - - description: - type: String - required: true - - slug: - type: String - required: true - - screenshots: - type: Array - required: true - - authors: - type: Array - required: true - - repository: - type: String - required: true - - host: - type: String - required: true - - # All these fields are generated by `scripts/sync-data` - stars: - type: Numeric - - installations: - type: Numeric - - organizations: - type: Array - - updated: - type: String - - # Misc - redirect_from: - required: false diff --git a/test/lint_test.rb b/test/lint_test.rb deleted file mode 100644 index d7196336a41..00000000000 --- a/test/lint_test.rb +++ /dev/null @@ -1,63 +0,0 @@ -require "bundler/setup" -require "safe_yaml" -require "minitest/autorun" -require "net/http" - -describe "lint test" do - FRONTMATTER = SafeYAML.load_file("test/frontmatter.yml") - - BANNED_WORDS = Regexp.new('\b(' + - FRONTMATTER["banned_words"].join('|') + - ')\b', Regexp::IGNORECASE | Regexp::MULTILINE) - - EXCEPTIONS = { - "bot" => ["sentiment-bot"] - } - - Dir.glob("_apps/*.md").each do |path| - describe path do - # Load frontmatter - data = SafeYAML.load_file(path) - - it "does not have extraneous fields" do - extra_fields = data.keys - FRONTMATTER["fields"].keys - assert extra_fields.empty?, "Unexpected metadata: #{extra_fields.inspect}" - end - - FRONTMATTER["fields"].each do |name, attrs| - if attrs["required"] - it "${name} is required" do - assert data.key?(name), "#{name} is required" - end - end - - if attrs["type"] && data[name] - it "${name} must be a #{attrs["type"]}" do - assert_kind_of Kernel.const_get(attrs["type"]), data[name] - end - end - end - - it "description should be sentence case" do - first_letter = data["description"][0] - assert_equal first_letter.upcase, first_letter, "Description should be in sentence case" - end - - it "does not use banned words" do - %w(title description slug).each do |field| - match = data[field].match(BANNED_WORDS) - if match && !Array(FRONTMATTER["exceptions"][match[1].downcase]).include?(data["slug"]) - assert !match, "`#{match[1]}` should not be used in #{field}" - end - end - end - - it "host returns 200" do - uri_end = data["host"].end_with?('/') ? 'ping' : '/ping' - uri = URI(data["host"] + uri_end) - res = Net::HTTP.get_response(uri) - assert_equal "200", res.code, "Expected 200 response from #{uri}" - end - end - end -end