diff --git a/.babelrc b/.babelrc
deleted file mode 100644
index cf97ee5cef0..00000000000
--- a/.babelrc
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "presets": [
- [
- "@babel/preset-env",
- {
- "useBuiltIns": "entry",
- "targets": "> 2%"
- }
- ]
- ]
-}
diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index 3c3629e647f..00000000000
--- a/.dockerignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 00000000000..4878736d85c
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,37 @@
+/* eslint-env node */
+module.exports = {
+ extends: [
+ 'eslint:recommended',
+ 'plugin:@typescript-eslint/recommended',
+ 'plugin:astro/recommended',
+ 'prettier'
+ ],
+ env: {
+ browser: true // enables window, document, etc
+ },
+ parser: '@typescript-eslint/parser',
+ plugins: ['@typescript-eslint'],
+ root: true,
+ ignorePatterns: ['dist/**'],
+
+ overrides: [
+ {
+ files: ['*.test.ts'],
+ rules: {
+ '@typescript-eslint/no-explicit-any': 'off'
+ }
+ },
+ {
+ files: ['*.astro'],
+ parser: 'astro-eslint-parser',
+ parserOptions: {
+ parser: '@typescript-eslint/parser',
+ extraFileExtensions: ['.astro']
+ }
+ // rules: {
+ // override/add rules settings here, such as:
+ // "astro/no-set-html-directive": "error"
+ // },
+ }
+ ]
+}
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index cdfdd378073..00000000000
--- a/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-yarn.lock binary
diff --git a/_docs/images/gitpod_preview_tut.png b/.github/images/gitpod_preview_tut.png
similarity index 100%
rename from _docs/images/gitpod_preview_tut.png
rename to .github/images/gitpod_preview_tut.png
diff --git a/_docs/images/screenshot.png b/.github/images/screenshot.png
similarity index 100%
rename from _docs/images/screenshot.png
rename to .github/images/screenshot.png
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 0a7de61f839..e019fd9fa35 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,26 +1,35 @@
-name: Build and test
+name: Run tests
on: [push, pull_request]
-
jobs:
build:
runs-on: ubuntu-latest
-
steps:
- - uses: actions/checkout@v2
-
- - name: Use Node.js
- uses: actions/setup-node@v2
+ - uses: actions/checkout@v4
+ - uses: ruby/setup-ruby@v1
with:
- node-version: '16.14.2'
- cache: yarn
+ bundler-cache: true
+ - uses: actions/setup-node@v4
+ with:
+ node-version-file: .node-version
+ - uses: pnpm/action-setup@v3
+ with: { run_install: false }
- - name: Use Ruby
- uses: ruby/setup-ruby@v1
+ # https://github.com/pnpm/action-setup?tab=readme-ov-file#use-cache-to-reduce-installation-time
+ - name: Get pnpm store directory
+ shell: bash
+ run: |
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
+ - uses: actions/cache@v3
+ name: Setup pnpm cache
with:
- ruby-version: '2.7.5'
- bundler-cache: true
+ path: ${{ env.STORE_PATH }}
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
+ restore-keys: |
+ ${{ runner.os }}-pnpm-store-
- - run: yarn install --frozen-lockfile
- - run: yarn build
- - run: yarn test
- - run: yarn test:smoke
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+ - name: Install playwright browsers
+ run: pnpm playwright install --with-deps chromium
+ - name: Run tests
+ run: pnpm run ci
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
deleted file mode 100644
index e7edf1625d7..00000000000
--- a/.github/workflows/deploy.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-name: Deploy
-on:
- push:
- branches:
- master
-
-jobs:
- build:
- runs-on: ubuntu-latest
-
- steps:
- - name: "Notes (read me) 📖"
- run: |
- # About this workflow:
- # This workflow generates GitHub pages, but IT IS NOT USED. It is
- # only generated as an emergency fallback in case Netlify goes down 😊
-
- - uses: actions/checkout@v2
- with:
- persist-credentials: false
-
- - name: Use Node.js
- uses: actions/setup-node@v2
- with:
- node-version: '16.14.2'
- cache: yarn
-
- - name: Use Ruby
- uses: ruby/setup-ruby@v1
- with:
- ruby-version: '2.7.5'
- bundler-cache: true
-
- - run: yarn install --frozen-lockfile
- - run: yarn build
-
- - name: "Deploy to gh-pages 🚀"
- uses: JamesIves/github-pages-deploy-action@releases/v3
- with:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- BRANCH: gh-pages
- FOLDER: _site
-
- - name: "Deploy to mirror 🚀"
- uses: JamesIves/github-pages-deploy-action@releases/v3
- with:
- ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- REPOSITORY_NAME: rstacruz/devhints-mirror
- BRANCH: gh-pages
- FOLDER: _site
-
- - name: "Notify Slack 📢"
- uses: rtCamp/action-slack-notify@v2.0.2
- env:
- SLACK_WEBHOOK: ${{ secrets.SLACK_DEPLOY_WEBHOOK_URL }}
diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml
deleted file mode 100644
index 5a659984123..00000000000
--- a/.github/workflows/rebase.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# https://github.com/cirrus-actions/rebase
-on:
- issue_comment:
- types: [created]
-
-name: Automatic rebase
-jobs:
- rebase:
- name: Rebase
- if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@master
- - name: Automatic Rebase
- uses: cirrus-actions/rebase@v1.2.0
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- # https://github.community/t5/GitHub-Actions/Workflow-is-failing-if-no-job-can-be-ran-due-to-condition/m-p/38186#M3250
- always_job:
- name: Aways run job
- runs-on: ubuntu-latest
- steps:
- - name: Always run
- run: echo "This job is used to prevent the workflow to fail when all other jobs are skipped."
diff --git a/.gitignore b/.gitignore
index 0457cc0129d..7386c531ad4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,26 @@
-_output
-_site
-.jekyll-metadata
-/node_modules
-/vendor
-.idea/
-.cache/
-
-# Generated by 'yarn dev'
-/_includes/2017/critical/*
-/assets/packed/*
+# build output
+dist/
+# generated types
+.astro/
+
+# dependencies
+node_modules/
+
+# logs
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+
+# environment variables
+.env
+.env.production
+
+# macOS-specific files
+.DS_Store
+
+.cache
+
+# playwright
+test-results
diff --git a/.gitpod.yml b/.gitpod.yml
deleted file mode 100644
index 150a4ceee37..00000000000
--- a/.gitpod.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-image: gitpod/workspace-full
-
-ports:
- - port: 4001
- onOpen: open-preview
-
-tasks:
- - init: yarn install && bundle install
- command: env PORT=4001 yarn run dev
-
-github:
- # Prebuild the docker image for gitpod - https://www.gitpod.io/docs/prebuilds/
- prebuilds:
- # enable for the master/default branch
- master: true
diff --git a/.node-version b/.node-version
new file mode 100644
index 00000000000..726a201e63a
--- /dev/null
+++ b/.node-version
@@ -0,0 +1 @@
+20.11.1
\ No newline at end of file
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 00000000000..99f751ef5cf
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,6 @@
+src/sass/vendor
+vendor
+.cache
+dist
+*.md
+pnpm-lock.yaml
diff --git a/.prettierrc b/.prettierrc
index 4f49fe27837..805cac99d43 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,6 +1,6 @@
{
"semi": false,
"singleQuote": true,
- "jsxSingleQuote": true,
- "trailingComma": "none"
+ "trailingComma": "none",
+ "plugins": ["prettier-plugin-astro"]
}
diff --git a/.projections.json b/.projections.json
deleted file mode 100644
index c41da12cc12..00000000000
--- a/.projections.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "*.md": {
- "type": "cheat",
- "template": [
- "---",
- "title: {basename|capitalize}",
- "category: Ruby",
- "layout: 2017/sheet",
- "updated: DATE",
- "---"
- ]
- }
-}
diff --git a/.ruby-version b/.ruby-version
new file mode 100644
index 00000000000..be94e6f53db
--- /dev/null
+++ b/.ruby-version
@@ -0,0 +1 @@
+3.2.2
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 00000000000..22a15055d63
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 00000000000..d6422097621
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/.vscode/markdown.code-snippets b/.vscode/markdown.code-snippets
new file mode 100644
index 00000000000..eda17ca6a83
--- /dev/null
+++ b/.vscode/markdown.code-snippets
@@ -0,0 +1,8 @@
+{
+ "Test snip": {
+ "prefix": ["about"],
+ "body": "Copyright. Foo Corp 2028",
+ "description": "Adds copyright...",
+ "scope": "markdown"
+ }
+}
diff --git a/404.html b/404.html
deleted file mode 100644
index 1e5d479beb0..00000000000
--- a/404.html
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: 2017/not_found
-type: error
-permalink: /404.html
----
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 03bfc7ed107..09a5281f3a5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,11 @@
# Developer notes
+## Runtimes
+
+Requires Node.js, Ruby, Yarn v1.
+
+See `.ruby-version` and `.node-version` for supported versions.
+
## Gitpod
This repository supports contribution using [gitpod](https://gitpod.io) which is online IDE using [Theia](https://github.com/eclipse-theia/theia).
@@ -13,7 +19,7 @@ Or using a button:
To preview the website you need to first build it then you can navigate to file that you are trying to contribute and preview directly.
-
+
## Starting a local instance
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 817e264432d..00000000000
--- a/Dockerfile
+++ /dev/null
@@ -1,11 +0,0 @@
-FROM ruby:2.7.1
-RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
-RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
-RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
-RUN apt-get update -qq && apt-get install -qq --no-install-recommends \
- nodejs \
- yarn \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-RUN mkdir -p /app
-WORKDIR /app
diff --git a/Gemfile b/Gemfile
index 0495baa0f5f..68b1516088e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,3 +1,4 @@
-source 'https://rubygems.org'
-gem 'webrick'
-gem 'github-pages', group: :jekyll_plugins
+source "https://rubygems.org"
+gem "minitest"
+gem "kramdown"
+gem "kramdown-parser-gfm"
diff --git a/Gemfile.lock b/Gemfile.lock
index 060dbd23a72..fdfea67c926 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,272 +1,21 @@
GEM
remote: https://rubygems.org/
specs:
- activesupport (7.1.0)
- base64
- bigdecimal
- concurrent-ruby (~> 1.0, >= 1.0.2)
- connection_pool (>= 2.2.5)
- drb
- i18n (>= 1.6, < 2)
- minitest (>= 5.1)
- mutex_m
- tzinfo (~> 2.0)
- addressable (2.8.5)
- public_suffix (>= 2.0.2, < 6.0)
- base64 (0.1.1)
- bigdecimal (3.1.4)
- coffee-script (2.4.1)
- coffee-script-source
- execjs
- coffee-script-source (1.11.1)
- colorator (1.1.0)
- commonmarker (0.23.10)
- concurrent-ruby (1.2.2)
- connection_pool (2.4.1)
- dnsruby (1.70.0)
- simpleidn (~> 0.2.1)
- drb (2.1.1)
- ruby2_keywords
- em-websocket (0.5.3)
- eventmachine (>= 0.12.9)
- http_parser.rb (~> 0)
- ethon (0.16.0)
- ffi (>= 1.15.0)
- eventmachine (1.2.7)
- execjs (2.9.1)
- faraday (2.7.11)
- base64
- faraday-net_http (>= 2.0, < 3.1)
- ruby2_keywords (>= 0.0.4)
- faraday-net_http (3.0.2)
- ffi (1.16.3)
- forwardable-extended (2.6.0)
- gemoji (3.0.1)
- github-pages (228)
- github-pages-health-check (= 1.17.9)
- jekyll (= 3.9.3)
- jekyll-avatar (= 0.7.0)
- jekyll-coffeescript (= 1.1.1)
- jekyll-commonmark-ghpages (= 0.4.0)
- jekyll-default-layout (= 0.1.4)
- jekyll-feed (= 0.15.1)
- jekyll-gist (= 1.5.0)
- jekyll-github-metadata (= 2.13.0)
- jekyll-include-cache (= 0.2.1)
- jekyll-mentions (= 1.6.0)
- jekyll-optional-front-matter (= 0.3.2)
- jekyll-paginate (= 1.1.0)
- jekyll-readme-index (= 0.3.0)
- jekyll-redirect-from (= 0.16.0)
- jekyll-relative-links (= 0.6.1)
- jekyll-remote-theme (= 0.4.3)
- jekyll-sass-converter (= 1.5.2)
- jekyll-seo-tag (= 2.8.0)
- jekyll-sitemap (= 1.4.0)
- jekyll-swiss (= 1.0.0)
- jekyll-theme-architect (= 0.2.0)
- jekyll-theme-cayman (= 0.2.0)
- jekyll-theme-dinky (= 0.2.0)
- jekyll-theme-hacker (= 0.2.0)
- jekyll-theme-leap-day (= 0.2.0)
- jekyll-theme-merlot (= 0.2.0)
- jekyll-theme-midnight (= 0.2.0)
- jekyll-theme-minimal (= 0.2.0)
- jekyll-theme-modernist (= 0.2.0)
- jekyll-theme-primer (= 0.6.0)
- jekyll-theme-slate (= 0.2.0)
- jekyll-theme-tactile (= 0.2.0)
- jekyll-theme-time-machine (= 0.2.0)
- jekyll-titles-from-headings (= 0.5.3)
- jemoji (= 0.12.0)
- kramdown (= 2.3.2)
- kramdown-parser-gfm (= 1.1.0)
- liquid (= 4.0.4)
- mercenary (~> 0.3)
- minima (= 2.5.1)
- nokogiri (>= 1.13.6, < 2.0)
- rouge (= 3.26.0)
- terminal-table (~> 1.4)
- github-pages-health-check (1.17.9)
- addressable (~> 2.3)
- dnsruby (~> 1.60)
- octokit (~> 4.0)
- public_suffix (>= 3.0, < 5.0)
- typhoeus (~> 1.3)
- html-pipeline (2.14.3)
- activesupport (>= 2)
- nokogiri (>= 1.4)
- http_parser.rb (0.8.0)
- i18n (1.14.1)
- concurrent-ruby (~> 1.0)
- jekyll (3.9.3)
- addressable (~> 2.4)
- colorator (~> 1.0)
- em-websocket (~> 0.5)
- i18n (>= 0.7, < 2)
- jekyll-sass-converter (~> 1.0)
- jekyll-watch (~> 2.0)
- kramdown (>= 1.17, < 3)
- liquid (~> 4.0)
- mercenary (~> 0.3.3)
- pathutil (~> 0.9)
- rouge (>= 1.7, < 4)
- safe_yaml (~> 1.0)
- jekyll-avatar (0.7.0)
- jekyll (>= 3.0, < 5.0)
- jekyll-coffeescript (1.1.1)
- coffee-script (~> 2.2)
- coffee-script-source (~> 1.11.1)
- jekyll-commonmark (1.4.0)
- commonmarker (~> 0.22)
- jekyll-commonmark-ghpages (0.4.0)
- commonmarker (~> 0.23.7)
- jekyll (~> 3.9.0)
- jekyll-commonmark (~> 1.4.0)
- rouge (>= 2.0, < 5.0)
- jekyll-default-layout (0.1.4)
- jekyll (~> 3.0)
- jekyll-feed (0.15.1)
- jekyll (>= 3.7, < 5.0)
- jekyll-gist (1.5.0)
- octokit (~> 4.2)
- jekyll-github-metadata (2.13.0)
- jekyll (>= 3.4, < 5.0)
- octokit (~> 4.0, != 4.4.0)
- jekyll-include-cache (0.2.1)
- jekyll (>= 3.7, < 5.0)
- jekyll-mentions (1.6.0)
- html-pipeline (~> 2.3)
- jekyll (>= 3.7, < 5.0)
- jekyll-optional-front-matter (0.3.2)
- jekyll (>= 3.0, < 5.0)
- jekyll-paginate (1.1.0)
- jekyll-readme-index (0.3.0)
- jekyll (>= 3.0, < 5.0)
- jekyll-redirect-from (0.16.0)
- jekyll (>= 3.3, < 5.0)
- jekyll-relative-links (0.6.1)
- jekyll (>= 3.3, < 5.0)
- jekyll-remote-theme (0.4.3)
- addressable (~> 2.0)
- jekyll (>= 3.5, < 5.0)
- jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
- rubyzip (>= 1.3.0, < 3.0)
- jekyll-sass-converter (1.5.2)
- sass (~> 3.4)
- jekyll-seo-tag (2.8.0)
- jekyll (>= 3.8, < 5.0)
- jekyll-sitemap (1.4.0)
- jekyll (>= 3.7, < 5.0)
- jekyll-swiss (1.0.0)
- jekyll-theme-architect (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-cayman (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-dinky (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-hacker (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-leap-day (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-merlot (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-midnight (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-minimal (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-modernist (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-primer (0.6.0)
- jekyll (> 3.5, < 5.0)
- jekyll-github-metadata (~> 2.9)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-slate (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-tactile (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-theme-time-machine (0.2.0)
- jekyll (> 3.5, < 5.0)
- jekyll-seo-tag (~> 2.0)
- jekyll-titles-from-headings (0.5.3)
- jekyll (>= 3.3, < 5.0)
- jekyll-watch (2.2.1)
- listen (~> 3.0)
- jemoji (0.12.0)
- gemoji (~> 3.0)
- html-pipeline (~> 2.2)
- jekyll (>= 3.0, < 5.0)
- kramdown (2.3.2)
+ kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
- liquid (4.0.4)
- listen (3.8.0)
- rb-fsevent (~> 0.10, >= 0.10.3)
- rb-inotify (~> 0.9, >= 0.9.10)
- mercenary (0.3.6)
- minima (2.5.1)
- jekyll (>= 3.5, < 5.0)
- jekyll-feed (~> 0.9)
- jekyll-seo-tag (~> 2.1)
- minitest (5.20.0)
- mutex_m (0.1.2)
- nokogiri (1.15.4-x86_64-linux)
- racc (~> 1.4)
- octokit (4.25.1)
- faraday (>= 1, < 3)
- sawyer (~> 0.9)
- pathutil (0.16.2)
- forwardable-extended (~> 2.6)
- public_suffix (4.0.7)
- racc (1.7.1)
- rb-fsevent (0.11.2)
- rb-inotify (0.10.1)
- ffi (~> 1.0)
- rexml (3.2.6)
- rouge (3.26.0)
- ruby2_keywords (0.0.5)
- rubyzip (2.3.2)
- safe_yaml (1.0.5)
- sass (3.7.4)
- sass-listen (~> 4.0.0)
- sass-listen (4.0.0)
- rb-fsevent (~> 0.9, >= 0.9.4)
- rb-inotify (~> 0.9, >= 0.9.7)
- sawyer (0.9.2)
- addressable (>= 2.3.5)
- faraday (>= 0.17.3, < 3)
- simpleidn (0.2.1)
- unf (~> 0.1.4)
- terminal-table (1.8.0)
- unicode-display_width (~> 1.1, >= 1.1.1)
- typhoeus (1.4.0)
- ethon (>= 0.9.0)
- tzinfo (2.0.6)
- concurrent-ruby (~> 1.0)
- unf (0.1.4)
- unf_ext
- unf_ext (0.0.8.2)
- unicode-display_width (1.8.0)
- webrick (1.8.1)
+ minitest (5.18.0)
+ rexml (3.2.5)
PLATFORMS
+ aarch64-linux-android
x86_64-linux
DEPENDENCIES
- github-pages
- webrick
+ kramdown
+ kramdown-parser-gfm
+ minitest
BUNDLED WITH
- 2.3.3
+ 2.4.1
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 24898c35b67..00000000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 Rico Sta. Cruz and contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 317584336d1..00000000000
--- a/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-npmbin := ./node_modules/.bin
-PORT ?= 3000
-HOST ?= 127.0.0.1
-
-help:
- @echo
- @echo Makefile targets
- @grep -E '^[a-zA-Z_-]+:.*?## .*$$' Makefile | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
- @echo
-
-# Builds intermediate files. Needs a _site built first though
-update: _site
-
-# Builds _site
-_site:
- yarn build
-
-dev:
- yarn dev
diff --git a/README.md b/README.md
index 7056eeb55ac..01e00eabe52 100644
--- a/README.md
+++ b/README.md
@@ -4,16 +4,10 @@
TL;DR for developer documentation - a ridiculous collection of cheatsheets
-
-
-
-
-
-
-
+
✨ devhints.io ✨
diff --git a/_config.yml b/_config.yml
deleted file mode 100644
index 63832dafba9..00000000000
--- a/_config.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-# Jekyll configuration
-
-whitelist:
- - jekyll-redirect-from
- - jekyll-github-metadata
-
-plugins:
- - jekyll-redirect-from
- - jekyll-github-metadata
-
-exclude:
- - .babelrc
- - .cache
- - CNAME
- - CONTRIBUTING.md
- - cssnano.config.js
- - docker_compose.yml
- - Dockerfile
- - Gemfile
- - Gemfile.lock
- - Makefile
- - node_modules
- - package.json
- - package-lock.json
- - postcss.config.js
- - README.md
- - vendor
- - webpack.config.js
- - yarn-error.log
- - yarn.lock
-
-# Markdown
-
-highlighter: false
-markdown: kramdown
-kramdown:
- input: GFM
- hard_wrap: false
- parse_block_html: true
- syntax_highlighter_opts:
- disable: true
-
-# Defaults
-
-defaults:
- - scope:
- path: ""
- type: pages
- values:
- layout: "default"
- og_type: article
- type: article
- category: "Others"
- excerpt_separator: ""
- prism_languages: []
-
-# Site info
-
-url: https://devhints.io
-title: Devhints.io cheatsheets
-
-# GitHub metadata
-# https://help.github.com/articles/repository-metadata-on-github-pages/
-
-repository: rstacruz/cheatsheets
diff --git a/_data/assets.yml b/_data/assets.yml
deleted file mode 100644
index e5cf4e94a7c..00000000000
--- a/_data/assets.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-# No trailing slash
-preview_host: https://assets.devhints.io/previews
diff --git a/_data/carbon.yml b/_data/carbon.yml
deleted file mode 100644
index 89ef88e3f0d..00000000000
--- a/_data/carbon.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-enabled: true
-src: https://pubsrv.devhints.io/carbon.js?serve=CE7IK5QM&placement=devhintsio
diff --git a/_data/categories.yml b/_data/categories.yml
deleted file mode 100644
index ac9bbafc58a..00000000000
--- a/_data/categories.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-enabled: true
-names:
- - Analytics
- - Ansible
- - Apps
- - C-like
- - CLI
- - CSS
- - Databases
- - Devops
- - Elixir
- - Git
- - HTML
- - Java & JVM
- - JavaScript
- - JavaScript libraries
- - Jekyll
- - Ledger
- - Markup
- - macOS
- - Node.js
- - PHP
- - Python
- - Rails
- - React
- - Ruby
- - Ruby libraries
- - Vim
- - Fitness
- - Others
diff --git a/_data/codefund.yml b/_data/codefund.yml
deleted file mode 100644
index 5d5dd6f4a92..00000000000
--- a/_data/codefund.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-enabled: true
-# token: "c2c8bc62-c275-4c7a-a304-74335c5a1cd0"
diff --git a/_data/content.yml b/_data/content.yml
deleted file mode 100644
index ca7df3e1697..00000000000
--- a/_data/content.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-home:
- title: "Rico's cheatsheets"
- tagline: |
- Hey! I'm @rstacruz and this is a modest collection of cheatsheets I've written.
-
-top_nav:
- title: Devhints.io
- edit: Edit
- edit_on_github: Edit this page on GitHub
-
-sheet:
- suffix: cheatsheet
-
-social_list:
- default_description: 'Ridiculous collection of web development cheatsheets'
- description: 'The ultimate cheatsheet for TITLE.'
- facebook_share: Share on Facebook
- twitter_share: Share on Twitter
-
-related_posts_callout:
- description: Over SIZE curated cheatsheets, by developers for developers.
- link: Devhints home
-
-related_posts_group:
- top: Top cheatsheets
- other: Other cheatsheets
- category: Other CATEGORY cheatsheets
-
-search_form:
- default_placeholder: Search SIZE+ cheatsheets
- home_placeholder: Search...
- prefix: devhints.io
-
-comments_area:
- suffix: for this cheatsheet.
- link: 'Write yours!'
-
-not_found:
- title: Not found
- description: Sorry, we don't have a cheatsheet for this yet. Try searching!
- home: Back to home
-
-announcement:
- # id: 2017-10-26-twitter
- id: 2023-12-14
- title: |
- We're on Twitter ♥️
- body: |
- Follow [@devhints](https://twitter.com/devhints) on X/Twitter for daily "today I learned" snippets.
-
- Also: I've started a new blog with some insights on web devlopment. Have a look! [**ricostacruz.com/posts**](https://ricostacruz.com/posts?utm_source=devhints)
diff --git a/_data/disqus.yml b/_data/disqus.yml
deleted file mode 100644
index 5fe82b1cef7..00000000000
--- a/_data/disqus.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-enabled: true
-host: devhints.disqus.com
diff --git a/_data/google_analytics.yml b/_data/google_analytics.yml
deleted file mode 100644
index abe040941eb..00000000000
--- a/_data/google_analytics.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-enabled: true
-hostname: devhints.io
-id: "G-N7TC6B227L"
-# id: "UA-106902774-1"
diff --git a/_inactive/ansible.md b/_inactive/ansible.md
deleted file mode 100644
index 7fed834ebb2..00000000000
--- a/_inactive/ansible.md
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: Ansible
-category: Ruby
----
-
-## Looping
-
-### Array (with_items)
-
-```yaml
-vars:
- security_groups:
- - name: 'hello'
- desc: 'world'
-
- - name: 'hola'
- desc: 'mundo'
-
-tasks:
- - name: Create required security groups
- ec2_group:
- name: "{{ item.name }}"
- description: "{{ item.desc }}"
- with_items: "{{ security_groups }}"
-```
-
-### Object (with_dict)
-
-```yaml
-tasks:
- - name: Print phone records
- debug: msg="User {{ item.key }} is {{ item.value.name }} ({{ item.value.telephone }})"
- with_dict: "{{ users }}"
-```
-
-## with_file
-
-```yaml
-- name: "Send key"
- ec2_key:
- key_material: "{{ item }}"
- with_file: ./keys/sshkey.pub
-
- # or
- with_fileglob: ./keys/*.pub
-```
-
-### Conditionals
-
-```yml
-- include: setup-debian.yml
- when: ansible_os_family == 'Debian'
-
- when: (ansible_distribution == "CentOS" and ansible_distribution_major_version == "6") or
- (ansible_distribution == "Debian" and ansible_distribution_major_version == "7")
-
-
- # Just like "and"
- when:
- - ansible_distribution == "CentOS"
- - ansible_distribution_major_version == "6"
-```
-
-## Expressions
-
-```
-{{ item }}
-{{ item.name }}
-{{ item[0].name }}
-
-{{ item | default('latest') }}
-```
-
-## Includes
-
-```
-tasks:
- - include: wordpress.yml
- vars:
- wp_user: timmy
-```
diff --git a/_inactive/deprecated/PHP_Kohana.ctxt b/_inactive/deprecated/PHP_Kohana.ctxt
deleted file mode 100644
index 733f81ae799..00000000000
--- a/_inactive/deprecated/PHP_Kohana.ctxt
+++ /dev/null
@@ -1,78 +0,0 @@
-# Installing
-wget "http://kohanaphp.com/download?modules%5Bauth%5D=Auth&languages%5Ben_US%5D=en_US&format=zip" -O k.zip &&\
-unzip -q k.zip && rm k.zip &&\
-mv Kohana_*/* . && rm -rf Kohana_* &&\
-rm -f "Kohana License.html" &&\
-# htaccess
-cat example.htaccess | sed 's/RewriteBase .*/RewriteBase \//g' > .htaccess && rm example.htaccess &&\
-echo Done! Go and edit application/config/config.php and change the site stuff.
-
-# Public HTML
-mkdir -p public_html &&\
-mv index.html public_html &&\
-mv .htaccess public_html &&\
-echo Done. Now edit index.html's paths
-
-Git ignore
-(echo \*.swo; echo \*.swp; echo .DS_Store; echo Thumbs.db; echo \*~; echo application/logs; echo application/cache ) > .gitignore &&\
-
-# Database
-$config['default'] = array
-(
- 'benchmark' => TRUE,
- 'persistent' => FALSE,
- 'connection' => array
- (
- 'type' => 'mysql',
- 'user' => 'leet', // set to db user name
- 'pass' => 'l33t', // set to db user password
- 'host' => 'localhost',
- 'port' => FALSE,
- 'socket' => FALSE,
- 'database' => 'leetdb' // set to db name
- ),
- 'character_set' => 'utf8',
- 'table_prefix' => '',
- 'object' => TRUE,
- 'cache' => FALSE,
- 'escape' => TRUE
-);
-
-
-// ORM model
-class Post_Model extends ORM {
- protected $has_one = array('user'); // has_many, belong_to, has_one, has_and_belongs_to_many
-}
-
-// ORM
-$post = ORM::factory('post', 1);
-$post->name = "Post name";
-$post->save();
-foreach ($post->categories as $category)
-{
- echo $category->name;
-}
-
-// Find (returns even if no row is found)
-$o = ORM::factory('article')->find(1);
-$o = ORM::factory('article')->where('title', $title)->find();
-if (!$o->loaded) { die('Not found'); }
-echo $o->title;
-
-// Find_all
-$o = ORM::factory('article')->find_all();
-foreach ($o as $article) { echo $article->title; }
-
-// ->$saved
-// ->$changed[]
-// ->$object_name (Blog_Post_Model => "blog_post")
-// ->$primary_key ('id')
-// ->$primary_val ('username') - more userfriendly identifier
-// ->$table_name
-// ->$ignored_columns = array('whatever')
-// ->$table_columns = array('id', 'username')
-// ->$sorting = array('last_login' => 'desc') -- default sorting
-
-//
-
-
diff --git a/_inactive/deprecated/Rails_2.ctxt b/_inactive/deprecated/Rails_2.ctxt
deleted file mode 100644
index 4a3eaa2135c..00000000000
--- a/_inactive/deprecated/Rails_2.ctxt
+++ /dev/null
@@ -1,104 +0,0 @@
-# Debug
-logger.debug "xx"
-
-# Controller stuff
-class MyController < ApplicationController::Base
-controller.response.body
-
- # Filters
- before_filter :require_login # Looks for require_login method
- before_filter MyFilter # Looks for MyFilter class
- before_filter { |ct| head(400) if ct.params["stop_action"] }
- around_filter :catch_exceptions
- after_filter :xx
-
- layout "admin_area" # Looks for the view file
- layout "admin_area", :except => [ :rss, :whatever ]
- layout :foo # Looks for private function foo
-
- private
- def whatever ...
-
-class MyFilter
- def self.filter(controller, &block)
-
-# Model
-
-belongs_to :user
-validates_presence_of :user
-default_scope :order => 'id DESC'
-named_scope :today, :conditions = "created_at x"
-named_scope :today, lambda {{ :conditions = [ "created_at between ? and ?", 1.hour.ago.utc, 300.seconds.ago.utc ] }}
-# Then you can call feed.today
-
-# Controller methods
-render :action => 'help', :layout => 'help'
-render :text => 'so and so'
-render :status => :created, :location => post_url(post) # With HTTP headers
-redirect_to :action => 'index'
-render :partial => 'product', :collection => @products, :as => :item, :spacer_template => "product_ruler"
-return head(:method_not_allowed)
-head :created, :location => '...'
-
-url_for :controller => 'posts', :action => 'recent'
-
-location = request.env["SERVER_ADDR"]
-
-# For views
-auto_discovery_link_tag(:rss, {:action => "feed"}, {:title => "RSS Feed"})
-javascript_include_tag "foo"
-stylesheet_link_tag
-image_tag
-
-# Ruby stuff!
-# Defining a class method (not a typo)
-Fixnum.instance_eval { def ten; 10; end }
-Fixnum.ten # => 10
-
-# Defining an instance method
-Fixnum.class_eval { def number; self; end }
-7.number #=> 7
-
-# Multiple arguments, send()
-class Klass
- def hello(*args); "Hello " + args.join(' '); end
-end
-Klass.new.send :hello, "gentle", "readers"
-
-def can(*args)
- yield if can?(*args)
-end
-# can(x) {...} => if can?(x) {...}
-
-
-
-# Struct
-class Foo < Struct.new(:name, :email)
-end
-
-j = Foo.new("Jason", "jason@bateman.com")
-j.name = "Hi"
-print j.name
-
-
-# Struct
-class Foo < Struct.new(:name, :email)
-end
-
-j = Foo.new("Jason", "jason@bateman.com")
-j.name = "Hi"
-print j.name
-
-
-# Method missing
- def method_missing(method_name, *arguments)
- if method_name.to_s[-1,1] == "?"
- self == method_name.to_s[0..-2]
-
-
-# Rails logger
-Rails.logger.info("...")
-
-# To string
-:hello_there.to_s
-
diff --git a/_inactive/deprecated/cinema4d.md b/_inactive/deprecated/cinema4d.md
deleted file mode 100644
index a1bf5ced707..00000000000
--- a/_inactive/deprecated/cinema4d.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Cinema4d
-category: Apps
----
-
- E R T : Move/rotate/scale
- P : snapping
diff --git a/_inactive/deprecated/compass-sprites.md b/_inactive/deprecated/compass-sprites.md
deleted file mode 100644
index cf2abf865ba..00000000000
--- a/_inactive/deprecated/compass-sprites.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-title: Compass sprites
----
-
-### Compass: Sprites
-
- @import compass/utilities/sprites
-
- $sprites: sprite-map('sprites/*.png')
- $sprites: sprite-map('sprites/*.png', $spacing: 20px)
-
- @mixin sprite($name)
- background-image: sprite-url($sprite)
-
- +sprite-dimensions($sprite, $name)
- width: image-width(sprite-file($sprite, $name)
- height: image-height(sprite-file($sprite, $name)
-
- +sprite-background-position($sprite, $name[, $offset-x, $offset-y])
- background-position: sprite-position($sprite, $name)
- nth(sprite-position($sprite, $name), 1) # X position
- nth(sprite-position($sprite, $name), 2) # Y position
-
-### Compass: Sprites (the @import way)
-
- // Sprite sets (applies to icon/*.png)
- $icon-spacing: 0
- $icon-dimensions: true
- $icon-repeat: no-repeat
- $icon-position: 0
-
- // Individual (applies to icon/mail.png)
- $icon-mail-spacing: 0
-
- @import 'icon/*.png'
- @include all-icon-sprites
-
- // Usage
- .image1
- @extend .icon-mail
-
- .image2
- @extend .icon-refresh;
-
- // ### Advanced control
- // The sprite map is available as $icon-sprites. You can then use
- // `sprite()` on it.
-
- .image3
- background: sprite($icon-sprites, refresh)
- //background: url(...) 0 -16px;
-
- .image3-with-offset
- background: sprite($icon-sprites, refresh, -2px, -9px)
- //background: url(...) -2px -19px;
-
diff --git a/_inactive/deprecated/docker-osx.md b/_inactive/deprecated/docker-osx.md
deleted file mode 100644
index eb2a5148619..00000000000
--- a/_inactive/deprecated/docker-osx.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: Docker on OSX
-category: Devops
----
-
-You'll need these:
-
- * [boot2docker] - bootstraps a Virtualbox VM to run a docker daemon
- * [docker] - docker client
-
-### Install
-
- $ brew install boot2docker
- $ brew install docker
- $ boot2docker init
-
-### Turning on
-
- $ boot2docker start
-
- Waiting for VM to be started...... Started.
- To connect the Docker client to the Docker daemon, please set:
-
- export DOCKER_HOST=tcp://192.168.59.103:2375
-
- $ export DOCKER_HOST=tcp://192.168.59.103:2375
-
-### Try it
-
- $ docker search ubuntu
-
- $ docker pull ubuntu
- $ docker start ubuntu
-
-### Turning off
-
- $ boot2docker save
- # save state to disk
-
-### Vagrant
-
-[boot2docker]: https://github.com/boot2docker/boot2docker
-[docker]: https://www.docker.com/
diff --git a/_inactive/deprecated/eslint.md b/_inactive/deprecated/eslint.md
deleted file mode 100644
index 7578fc37bcb..00000000000
--- a/_inactive/deprecated/eslint.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-title: eslint
-category: JavaScript libraries
----
-
-```js
-// "comma-dangle": "always" ("always-multiline", "never")
-var foo = {
- bar: "baz",
- qux: "quux",
-};
-var arr = [1,2,];
-```
-
-```
-// "yoda": "always" ("never")
-if ("red" === color)
-```
diff --git a/_inactive/deprecated/github.md b/_inactive/deprecated/github.md
deleted file mode 100644
index 8c1f60eb56a..00000000000
--- a/_inactive/deprecated/github.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: GitHub
-category: Git
----
-
-### URLs
-
- github.com/:userrepo/blame/:branch/:path
- github.com/:userrepo/commit/:commit
diff --git a/_inactive/deprecated/jquery-mobile-events.md b/_inactive/deprecated/jquery-mobile-events.md
deleted file mode 100644
index 5806458ccc0..00000000000
--- a/_inactive/deprecated/jquery-mobile-events.md
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: jQuery mobile events
-category: JavaScript libraries
----
-
-### Mobile events
-
-For support for `tap`, `swipe`, `swipeLeft`, et al, use
-[jquery.mobile.event.js][m]. Be sure to set `$.support.touch` first.
-
-To get `$.support.touch` (and family), use this from
-[jquery.mobile.support.js][s]:
-
- $.extend($.support, {
- orientation: "orientation" in window && "onorientationchange" in window,
- touch: "ontouchend" in document,
- cssTransitions: "WebKitTransitionEvent" in window,
- pushState: "pushState" in history && "replaceState" in history,
- mediaquery: $.mobile.media( "only all" ),
- cssPseudoElement: !!propExists( "content" ),
- touchOverflow: !!propExists( "overflowScrolling" ),
- boxShadow: !!propExists( "boxShadow" ) && !bb,
- scrollTop: ( "pageXOffset" in window || "scrollTop" in document.documentElement || "scrollTop" in fakeBody[ 0 ] ) && !webos && !operamini,
- dynamicBaseTag: baseTagTest()
- });
-
-[m]:https://github.com/jquery/jquery-mobile/blob/master/js/jquery.mobile.event.js
-[s]:https://github.com/jquery/jquery-mobile/blob/master/js/jquery.mobile.support.js
diff --git a/_inactive/gh.md b/_inactive/gh.md
deleted file mode 100644
index bab8b2a27fd..00000000000
--- a/_inactive/gh.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-title: node-gh
-category: JavaScript libraries
----
-
-## Everywhere
-
-| Flag | Description |
-| ---- | ---- |
-| `-u rstacruz -r nprogress` | Repo name |
-| `--browser` | Browser |
-{:.no-head}
-
-## Notifications
-
-```
-gh nt
-gh nt --watch
-```
-
-## Issues
-
-| Command | Description |
-| ---- | ---- |
-| `gh is 'Issue name'` | Create issue |
-| `gh is --search 'foo'` | Search issues |
-| `gh is 'Name' 'Description'` | Create issue |
-| `gh is 123` | Modify issue `123` (use with flags below) |
-| ... `-L`/`--label x,y,z` | Add label |
-| ... `-A`/`--assignee` | Assign to user |
-| ... `-c`/`--comment 'Thanks'` | Add a comment
-{:.no-head}
diff --git a/_inactive/git-one-liners.md b/_inactive/git-one-liners.md
deleted file mode 100644
index eacc74c450a..00000000000
--- a/_inactive/git-one-liners.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Git one-liners
----
-
-When did someone work
-
- git log --all --author='Rico' --pretty="%ai" | awk '{ print $1 }' | sort | uniq
diff --git a/_inactive/gpg.md b/_inactive/gpg.md
deleted file mode 100644
index 54093ba6189..00000000000
--- a/_inactive/gpg.md
+++ /dev/null
@@ -1,26 +0,0 @@
-
-### Encrypt decrypt
-
- gpg --encrypt --recepient 'James Receiverson' foo.txt
- gpg --decrypt foo.txt.gpg
-
-### Making keys
-
- gpg --gen-key
-
-### Share your public key
-
- # via file
- gpg --armor --output pub.txt --export "Rico Sta. Cruz"
-
- # via server
- gpg --send-keys "Rico Sta. Cruz" --keyserver http://...
-
-### Key management
-
- gpg --list-keys
- gpg --delete-key 'email@addie'
-
-### See
-
-* https://www.madboa.com/geek/gpg-quickstart/
diff --git a/_inactive/homebrew-formula.md b/_inactive/homebrew-formula.md
deleted file mode 100644
index ae654169c6b..00000000000
--- a/_inactive/homebrew-formula.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-title: Homebrew formula
----
-
-brew create http://example.com/foo-0.1.tar.gz
-
-https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md#formula-cookbook
-
- assert(this.ary.indexOf(zero) === two)
-
-
-```
-def install
- system "./configure", "--prefix=#{prefix}", "--disable-debug", "--disable-dependency-tracking"
- system "make", "install"
- cd "build/cmake"
- mv "a", "b"
-end
-```
diff --git a/_inactive/ios.md b/_inactive/ios.md
deleted file mode 100644
index 23044c465cf..00000000000
--- a/_inactive/ios.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: iOS
----
-
-Multiple Exchange accounts:
-
- scp root@iphone.local:/private/var/mobile/Library/Preferences/com.apple.accountsettings.plist .
-
-Paths:
-
- /Library/Themes # Winterboard themes
- /User/Media/DCIM/100APPLE # Photos
- /User/Media/Recordings # Voice recordings
-
-Copy photos:
-
- rsync -v -r root@iphone.local:/User/Media/DCIM/100APPLE ./photos
-
-Ringtone conversion using ffmpeg:
-
- ffmpeg -i foo.mp3 -ac 1 -ab 128000 -f mp4 -acodec libfaac -y target.m4r
diff --git a/_includes/2017/announcements-list.html b/_includes/2017/announcements-list.html
deleted file mode 100644
index 8d24ac01fa7..00000000000
--- a/_includes/2017/announcements-list.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{% if site.data.content.announcement %}
-
-
-
{{ site.data.content.announcement.title }}
-
{{ site.data.content.announcement.body | markdownify }}
-
-
-
-{% endif %}
-
diff --git a/_includes/2017/article-schema.html b/_includes/2017/article-schema.html
deleted file mode 100644
index f5722b00fc4..00000000000
--- a/_includes/2017/article-schema.html
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
diff --git a/_includes/2017/comments-area.html b/_includes/2017/comments-area.html
deleted file mode 100644
index 28dd4b09a75..00000000000
--- a/_includes/2017/comments-area.html
+++ /dev/null
@@ -1,22 +0,0 @@
-{% assign identifier = include.page.url | remove: '.html' | remove_first: '/' %}
-{% if site.data.disqus.enabled %}
-
-{% endif %}
diff --git a/_includes/2017/foot.html b/_includes/2017/foot.html
deleted file mode 100644
index 038762af781..00000000000
--- a/_includes/2017/foot.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-{% for lang in page.prism_languages %}{% endfor %}
diff --git a/_includes/2017/head.html b/_includes/2017/head.html
deleted file mode 100644
index a5b05d46488..00000000000
--- a/_includes/2017/head.html
+++ /dev/null
@@ -1,24 +0,0 @@
-{% include meta.html %}
-{% include polyfills.html %}
-
-
-{% if include.critical == 'home'
-%}{%
-endif
-%}{%
-if include.critical == 'sheet'
-%}{%
-endif %}
-
-
-
-
-
-
-
diff --git a/_includes/2017/headline-pub.html b/_includes/2017/headline-pub.html
deleted file mode 100644
index 6f0913b96cf..00000000000
--- a/_includes/2017/headline-pub.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/_includes/2017/meta-vars.html b/_includes/2017/meta-vars.html
deleted file mode 100644
index 577e5e72c57..00000000000
--- a/_includes/2017/meta-vars.html
+++ /dev/null
@@ -1,41 +0,0 @@
-{% comment %}
-
-This partial assigns these variables:
-
- meta_image: "https://assets.devhints.io/previews/react.jpg"
- meta_description: "A comprehensive cheatsheet for React."
- meta_title: "React cheatsheet"
- depth: "1"
- base: "./"
- timestamp: "293048189123"
- page_url: "https://devhints.io/react"
-
-It emits some blank lines because Jekyll, lol.
-
-{% endcomment %}
-
-{% assign depth = page.url | split: '/' | size | minus: 1 %}
-
-{% assign base = '' %}
-{% if depth <= 1 %}{% assign base = '.' %}
-{% elsif depth == 2 %}{% assign base = '..' %}
-{% elsif depth == 3 %}{% assign base = '../..' %}
-{% elsif depth == 4 %}{% assign base = '../../..' %}{% endif %}
-
-{% assign timestamp = site.time | date: "%Y%m%d%H%M%S" %}
-
-{% if site.data.assets.preview_host %}{% capture meta_image %}{%
- if page.url == '/'
-%}{{ site.data.assets.preview_host }}/index.jpg?t={{ timestamp }}{%
- else
-%}{{ site.data.assets.preview_host }}{{ include.page.url | remove: '.html' }}.jpg?t={{ timestamp }}{%
- endif
-%}{% endcapture %}{% endif %}
-
-{% capture meta_title %}{% include values/title.html page=include.page %}{% endcapture %}
-{% assign meta_title = meta_title | strip_newlines %}
-
-{% capture meta_description %}{% include values/description.html page=include.page %}{% endcapture %}
-{% assign meta_description = meta_description | strip_newlines %}
-
-{% capture page_url %}{{ site.url }}{{ page.url | remove: '.html' }}{% endcapture %}
diff --git a/_includes/2017/pages-list-item.html b/_includes/2017/pages-list-item.html
deleted file mode 100644
index 63db99cd688..00000000000
--- a/_includes/2017/pages-list-item.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% assign slug = include.page.url | remove: '.html' | remove_first: '/' %}
-
-
- {{ slug }}
-
- {% if include.page.layout == '2017/sheet' %}
-
- {% endif %}
-
- {{ include.page.title }} {{ include.page.redirect_to }}
-
-
diff --git a/_includes/2017/related-posts-item.html b/_includes/2017/related-posts-item.html
deleted file mode 100644
index 2fbb9c62d8f..00000000000
--- a/_includes/2017/related-posts-item.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- {{ include.page.title }}
-
- cheatsheet
-
- {% if include.page.layout == '2017/sheet' %}
-
- {% endif %}
-
-
-
diff --git a/_includes/2017/related-posts.html b/_includes/2017/related-posts.html
deleted file mode 100644
index d9d9e330472..00000000000
--- a/_includes/2017/related-posts.html
+++ /dev/null
@@ -1,62 +0,0 @@
-{% assign category_pages = site.pages
- | where: "category", include.page.category
- | where_exp: "page", "page.url != include.page.url"
- | where_exp: "page", "page.deprecated != true"
- | where_exp: "page", "page.redirect_to == null"
- | sort: "weight", "last"
-%}
-{% assign top_pages = site.pages
- | where_exp: "page", "page.url != include.page.url"
- | where_exp: "page", "page.deprecated != true"
- | sort: "weight", "last"
-%}
-{% assign size = site.pages | size %}
-
diff --git a/_includes/2017/search-footer.html b/_includes/2017/search-footer.html
deleted file mode 100644
index a350b29f957..00000000000
--- a/_includes/2017/search-footer.html
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/_includes/2017/search-form.html b/_includes/2017/search-form.html
deleted file mode 100644
index acc46d2744b..00000000000
--- a/_includes/2017/search-form.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
diff --git a/_includes/2017/top-nav.html b/_includes/2017/top-nav.html
deleted file mode 100644
index c063925d034..00000000000
--- a/_includes/2017/top-nav.html
+++ /dev/null
@@ -1,35 +0,0 @@
-{% comment %}
-Params:
-- noshare
-- noedit
-- noback
-{% endcomment %}
-
diff --git a/_includes/about-the-site.html b/_includes/about-the-site.html
deleted file mode 100644
index afdbbb249de..00000000000
--- a/_includes/about-the-site.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
diff --git a/_includes/foot.html b/_includes/foot.html
deleted file mode 100644
index 6315d0df87a..00000000000
--- a/_includes/foot.html
+++ /dev/null
@@ -1,14 +0,0 @@
- {% include about-the-site.html %}
-
-
-{% comment %}{% endcomment %}
-{% for lang in page.hljs_languages %}
-
-{% endfor %}
-
-
-
-
-
-
- - 0 Comments - - {{ site.data.content.comments_area.suffix }} - {{ site.data.content.comments_area.link }} -
-