diff --git a/.editorconfig b/.editorconfig old mode 100644 new mode 100755 diff --git a/.env.dist b/.env.dist old mode 100644 new mode 100755 diff --git a/.gitattributes b/.gitattributes old mode 100644 new mode 100755 index 07efc4f..d4cdb6d --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1 @@ -_charts/* linguist-vendored=true -_pocs/* linguist-vendored=true +other/* linguist-vendored=true diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index f7bb9b8..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "npm" - directory: "/" - schedule: - interval: "daily" - open-pull-requests-limit: 10 - reviewers: - - migueldemoura - assignees: - - migueldemoura diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml old mode 100644 new mode 100755 index 8e439df..7f8b9f5 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,20 +6,18 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: ruby/setup-ruby@v1 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v1 + - name: setup-zola + run: | + curl -s -L https://github.com/getzola/zola/releases/download/v0.19.2/zola-v0.19.2-x86_64-unknown-linux-gnu.tar.gz | sudo tar xvzf - -C /usr/local/bin + - uses: actions/setup-node@v1 with: - node-version: 18 + node-version: 22.x - run: sudo apt-get install -y shellcheck - run: | - npm run setup + yarn run setup - run: | - npm run lint:sh - npm run lint:scss - npm run lint:js - npm run lint:md - npm run build - npm run lint:html + yarn run lint + yarn run build diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 5995b76..2a33767 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,7 @@ !.keep .env -/_deploy/ -/_drafts/ -/_site/ -/.bundle/ -/.jekyll-cache/ +/deploy/ /node_modules/ -/ruby_gems/ -Gemfile.lock -package-lock.json +/public/ +/static/main.js +/static/processed_images/ diff --git a/.htmlhintrc b/.htmlhintrc old mode 100644 new mode 100755 diff --git a/.remarkr b/.remarkr old mode 100644 new mode 100755 diff --git a/.ruby-version b/.ruby-version deleted file mode 100644 index 7208c21..0000000 --- a/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.4 \ No newline at end of file diff --git a/.stylelintignore b/.stylelintignore old mode 100644 new mode 100755 index b28ba68..236a63b --- a/.stylelintignore +++ b/.stylelintignore @@ -1,12 +1,8 @@ -/_deploy/ -/_site/ -/.bundle/ -/.jekyll-cache/ -/node_modules/ -/ruby_gems/ *.* !*.css !*.scss -Gemfile +/deploy/ +/public/ +/node_modules/ _headers _redirects diff --git a/.stylelintrc.json b/.stylelintrc.json old mode 100644 new mode 100755 diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 79fdc99..0000000 --- a/Gemfile +++ /dev/null @@ -1,14 +0,0 @@ -source 'https://rubygems.org' - -ruby '>=' + File.read('.ruby-version').strip - -gem 'autoprefixer-rails', '>= 9.7.6' -gem 'jekyll', '>= 3.8.7' -gem 'kramdown-parser-gfm', '>=1.1.0' -gem 'mini_magick', '>= 4.10.1' -gem 'uglifier', '>= 4.2.0' -gem 'sprockets', '~> 3.7.2' - -group :jekyll_plugins do - gem 'jekyll-assets', '>= 3.0.12' -end diff --git a/README.md b/README.md index 22b3373..14b5bf7 100644 --- a/README.md +++ b/README.md @@ -2,23 +2,25 @@ [![Build Status](https://github.com/migueldemoura/migueldemoura.com/workflows/build/badge.svg)](https://github.com/migueldemoura/migueldemoura.com/actions) -This is my personal blog hosted at [migueldemoura.com]. It is built with Jekyll and other open source tools. +This is my personal blog hosted at [migueldemoura.com]. It is built with [Zola] and other open source tools. ### Browser Compatibility Fully supported (Desktop and Mobile): -- Latest 2 Chromium/Chrome/Edge versions +- Latest 2 Chromium/Chrome versions - Latest 2 Firefox versions (required fix [8985053] as it has a CSP bug regarding svgs - #3) +- Latest Edge version - Latest Safari version (required fix [50c4495] as it doesn't support svg 2 href) -Javascript is required for the image zoom effect ([Zooming](https://github.com/kingdido999/zooming)) and faster page transitions ([Turbolinks](https://github.com/turbolinks/turbolinks)). +Javascript is only required for the image zoom effect ([Zooming](https://github.com/kingdido999/zooming)) and faster page transitions ([Turbolinks](https://github.com/turbolinks/turbolinks)). ### License Template - `LICENSE-MIT.md`. Post content and assets - `LICENSE-CC-BY-SA-4.0.md`. + [Zola]: [migueldemoura.com]: [8985053]: [50c4495]: diff --git a/_assets/stylesheets/_base.scss b/_assets/stylesheets/_base.scss deleted file mode 100644 index 6673738..0000000 --- a/_assets/stylesheets/_base.scss +++ /dev/null @@ -1,188 +0,0 @@ -/* Document -============================================================================= */ - -*, -*::before, -*::after { - box-sizing: border-box; -} - -body { - margin: 35px; - background-color: $base-background-color; - line-height: $base-line-height; - color: $base-font-color; - font-family: $base-font-family; - font-size: $base-font-size; - font-weight: $base-font-weight; - - @include breakpoint(extra-small) { - margin: 35px 20px; - } -} - -/* Typography -============================================================================= */ - -p { - margin: 0; -} - -b, -strong { - font-weight: $base-font-weight-bold; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin-bottom: 1rem; - line-height: 1.25; - color: $base-font-color; -} - -h1 { - font-size: 2rem; -} - -h2, -h3 { - margin-top: 3.5rem; - font-size: 1.5rem; -} - -h4, -h5, -h6 { - margin-top: 1.1rem; - font-size: 1.1rem; -} - -a { - @include hover-active-focus { - text-decoration: underline; - } - - text-decoration: none; - color: $base-accent-color; -} - -svg { - fill: $base-font-color; - vertical-align: middle; -} - -ul, -ol { - padding-left: 50px; - - @include breakpoint(extra-small) { - padding-left: 30px; - } -} - -blockquote { - margin: 40px 0; - border-left: 5px solid $base-font-color; - border-radius: $base-border-radius; - background: $base-background-secondary-accent-color; - padding: 5px 30px; - - p { - margin: 15px 0; - } -} - -/* Other -============================================================================= */ - -hr { - margin: 30px 0; - border: 0; - border-bottom: 1px solid $base-border-color; -} - -img, -video { - width: 100%; -} - -img { - display: block; - border: 0; - border-radius: $base-border-radius; -} - -figure { - margin: 30px 0; - font-size: 14px; - - a { - @include hover-active-focus { - outline: none; - } - } - - figcaption { - margin-top: 15px; - } - - &.vertical { - img { - margin-right: auto; - margin-left: auto; - max-width: 350px; - - @include breakpoint(extra-small) { - max-width: 100%; - } - } - - figcaption { - text-align: center; - } - } -} - -table { - width: 100%; - border-collapse: collapse; - font-size: 14px; - - thead { - background: $base-background-color; - } - - th { - padding: 6px 10px; - text-align: left; - } - - td { - border-top: 1px solid $base-border-color; - padding: 4px 10px; - - &:first-child { - vertical-align: top; - white-space: nowrap; - - @include breakpoint(extra-small) { - white-space: normal; - } - } - } -} - -time { - text-transform: uppercase; - letter-spacing: 1px; - font-size: 14px; -} - -::selection { - background-color: $base-font-secondary-color; - color: $white; -} diff --git a/_assets/stylesheets/_mixins.scss b/_assets/stylesheets/_mixins.scss deleted file mode 100644 index 41aec36..0000000 --- a/_assets/stylesheets/_mixins.scss +++ /dev/null @@ -1,32 +0,0 @@ -/* Handling breakpoints for media queries -@param {Number} $val the media query specification. */ - -@mixin breakpoint($val) { - @if $val == extra-small { - @media all and (width <= 520px) { - @content; - } - } @else if $val == small { - @media all and (width <= 767px) { - @content; - } - } @else if $val == medium { - @media all and (width <= 1024px) { - @content; - } - } @else if $val == large { - @media all and (width <= 1223px) { - @content; - } - } @else { - @warn "The parameter #{$val} is not valid"; - } -} - -@mixin hover-active-focus { - &:hover, - &:active, - &:focus { - @content; - } -} diff --git a/_assets/stylesheets/_variables.scss b/_assets/stylesheets/_variables.scss deleted file mode 100644 index 7790242..0000000 --- a/_assets/stylesheets/_variables.scss +++ /dev/null @@ -1,57 +0,0 @@ -/* Typography -============================================================================= */ - -$base-font-family: /**/ - /* macOS Safari, macOS Firefox, iOS Safari (San Francisco) */ - "-apple-system", - /* macOS Chrome (San Francisco) */ - "BlinkMacSystemFont", - /* Windows */ - "Segoe UI", - /* Android, Chrome OS */ - "Roboto", - /* KDE */ - "Oxygen", - /* Ubuntu */ - "Ubuntu", - /* GNOME */ - "Cantarell", - /* macOS < 10.11 */ - "Helvetica Neue", - "sans-serif"; -$base-font-family-mono: /* macOS >= 10.12 */ - "SFMono-Regular", - /* Windows */ - "Consolas", - /* GNU/Linux Distributions */ - "Liberation Mono", - /* macOS >= 10.6 */ - "Menlo", - "Courier", - "monospace"; -$base-font-weight: normal; -$base-font-weight-bold: bold; - -/* Colors -============================================================================= */ - -$white: #f1eae1; -$base-font-color: #cdc8c1; -$base-font-secondary-color: #8b949e; -$base-accent-color: #2196f3; -$base-background-color: #131516; -$base-background-accent-color: #1051b5; -$base-background-secondary-accent-color: #161b22; -$base-border-color: #3a3e41; - -/* Sizes -============================================================================= */ - -/* Font sizes */ - -$base-font-size: 16px; -$base-line-height: 1.6; - -/* Box sizes */ - -$base-border-radius: 3px; diff --git a/_assets/stylesheets/layouts/_footer.scss b/_assets/stylesheets/layouts/_footer.scss deleted file mode 100644 index 5b1ed7a..0000000 --- a/_assets/stylesheets/layouts/_footer.scss +++ /dev/null @@ -1,33 +0,0 @@ -.footer { - margin: 50px auto 0; - max-width: 500px; - text-align: center; - color: $base-font-secondary-color; - font-size: 0.8rem; - - ul { - margin: 15px 0 10px; - padding: 0; - list-style: none; - - li { - display: inline-block; - margin-left: 15px; - vertical-align: middle; - - &:first-child { - margin-left: 0; - } - - a { - font-size: 20px; - - svg { - fill: $base-font-secondary-color; - width: 24px; - height: 24px; - } - } - } - } -} diff --git a/_assets/stylesheets/layouts/_header.scss b/_assets/stylesheets/layouts/_header.scss deleted file mode 100644 index e01492a..0000000 --- a/_assets/stylesheets/layouts/_header.scss +++ /dev/null @@ -1,45 +0,0 @@ -nav { - margin-top: 15px; - padding: 4px 0; - text-align: center; - - a { - border-radius: $base-border-radius; - padding: 8px; - font-size: 14px; - - &.subscribe { - margin-left: 12px; - background: $base-background-accent-color; - color: $white; - } - } -} - -header { - text-align: center; - - a { - @include hover-active-focus { - outline-color: $base-font-color; - color: $base-font-color; - } - - img { - display: inline-block; - border-radius: 50%; - width: 90px; - height: 90px; - } - - h1 { - @include hover-active-focus { - outline-color: $base-font-color; - } - - margin: 15px 0 0; - font-size: 1.6rem; - font-weight: $base-font-weight; - } - } -} diff --git a/_assets/stylesheets/modules/_articles.scss b/_assets/stylesheets/modules/_articles.scss deleted file mode 100644 index c8e25e3..0000000 --- a/_assets/stylesheets/modules/_articles.scss +++ /dev/null @@ -1,88 +0,0 @@ -article { - margin: 0 auto; - max-width: 610px; - - header { - margin-bottom: 40px; - text-align: center; - } - - h2 { - margin-top: 2.5rem; - line-height: 1.4em; - font-size: 1.4em; - } - - section > *:first-child { - margin-top: 0; - } - - .divider { - margin: 2em 0; - height: 1px; - - &:first-of-type { - margin: 1.7em 0; - } - } - - p { - margin-bottom: 16px; - } - - footer { - h2 { - display: inline; - margin-right: 15px; - } - - a { - display: inline-block; - margin-left: 10px; - vertical-align: text-bottom; - - svg { - width: 24px; - height: 24px; - fill: $base-accent-color; - } - } - } -} - -.article-list { - margin: 50px auto 0; - max-width: 500px; - - a { - display: block; - color: $base-font-color; - - h2 { - margin: 0; - line-height: 24px; - font-size: 15px; - font-weight: $base-font-weight; - } - } - - ul { - margin: 0; - padding: 0; - list-style: none; - - li { - margin: 25px 0; - - .article-list-date { - float: right; - margin: 0 0 0 20px; - color: $base-font-secondary-color; - } - - time { - display: inline-block; - } - } - } -} diff --git a/_assets/stylesheets/modules/_highlights.scss b/_assets/stylesheets/modules/_highlights.scss deleted file mode 100644 index 16a0657..0000000 --- a/_assets/stylesheets/modules/_highlights.scss +++ /dev/null @@ -1,183 +0,0 @@ -/* Inline highlighting */ -code.highlighter-rouge, -/* Block highlighting */ -pre.highlight { - border: 1px solid $base-background-secondary-accent-color; - border-radius: $base-border-radius; - background-color: $base-background-secondary-accent-color; -} - -code.highlighter-rouge { - padding: 2px 4px; - word-break: break-word; - color: #f07076; - font-size: 14px; -} - -pre.highlight { - margin: 30px 0; - padding: 1.5rem; - overflow: auto; - line-height: 1.8; - font-family: $base-font-family-mono; - font-size: 14px; -} - -/* Highlighting types -============================================================================= */ - -/* Comment */ -.c, -/* Comment.Multiline */ -.cm, -/* Comment.Single */ -.c1, -/* Comment.Special */ -.cs, -/* Generic.Emph */ -.ge { - font-style: italic; -} - -/* Comment */ -.c, -/* Comment.Multiline */ -.cm, -/* Comment.Single */ -.c1 { - color: #998; -} - -/* Comment.Single */ -.cp, -/* Comment.Special */ -.cs, -/* Generic.Heading */ -.gh, -/* Name.Builtin.Pseudo */ -.bp { - color: #999; -} - -/* Keyword */ -.k, -/* Operator */ -.o, -/* Comment.Single */ -.cp, -/* Comment.Special */ -.cs, -/* Generic.Strong */ -.gs, -/* Operator.Word */ -.ow { - color: #79c0ff; -} - -/* Generic.Deleted */ -.gd { - background-color: #fdd; - color: #000; - - /* Generic.Deleted.Specific */ - .x { - background-color: #faa; - color: inherit; - } -} - -/* Generic.Inserted */ -.gi { - background-color: #dfd; - color: #000; -} - -/* Generic.Inserted.Specific */ -.gi .x { - background-color: #afa; - color: #000; -} - -/* Generic.Output */ -.go { - color: #888; -} - -/* Generic.Prompt */ -.gp { - color: #555; -} - -/* Generic.Subheading */ -.gu { - color: #aaa; -} - -/* Name.Class */ -.nc { - color: #458; -} - -/* Name.Exception */ -.ne, -/* Name.Function */ -.nf { - color: #900; -} - -/* Name.Namespace */ -.nn { - color: #555; -} - -/* Name.Other */ -.nx { - color: #d2a8ff; -} - -/* Text.Whitespace */ -.w { - color: #bbb; -} - -/* Literal.Number.Float */ -.mf, -/* Literal.Number.Hex */ -.mh, -/* Literal.Number.Integer */ -.mi, -/* Literal.Number.Integer.Long */ -.il, -/* Literal.Number.Oct */ -.mo, -/* Literal.Number */ -.m, -/* Name.Tag */ -.nt { - color: #79c0ff; -} - -/* Literal.String.Backtick */ -.sb, -/* Literal.String.Char */ -.sc, -/* Literal.String.Doc */ -.sd, -/* Literal.String.Double */ -.s2, -/* Literal.String.Escape */ -.se, -/* Literal.String.Heredoc */ -.sh, -/* Literal.String.Interpol */ -.si, -/* Literal.String.Other */ -.sx, -/* Literal.String.Regex */ -.sr, -/* Literal.String.Single */ -.s1, -/* Literal.String */ -.s { - color: #a5d6ff; -} diff --git a/_assets/stylesheets/modules/_turbolinks.scss b/_assets/stylesheets/modules/_turbolinks.scss deleted file mode 100644 index 1a0a853..0000000 --- a/_assets/stylesheets/modules/_turbolinks.scss +++ /dev/null @@ -1,4 +0,0 @@ -.turbolinks-progress-bar { - background-color: $base-accent-color; - height: 3px; -} diff --git a/_assets/stylesheets/pages/_about.scss b/_assets/stylesheets/pages/_about.scss deleted file mode 100644 index 721a67e..0000000 --- a/_assets/stylesheets/pages/_about.scss +++ /dev/null @@ -1,4 +0,0 @@ -.about { - margin: auto; - max-width: 500px; -} diff --git a/_assets/stylesheets/pages/_notfound.scss b/_assets/stylesheets/pages/_notfound.scss deleted file mode 100644 index e5754c8..0000000 --- a/_assets/stylesheets/pages/_notfound.scss +++ /dev/null @@ -1,27 +0,0 @@ -.notfound { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - - header { - max-width: 250px; - - p { - margin-top: 15px; - - a { - @include hover-active-focus { - color: $base-accent-color; - } - - display: inline; - } - } - - img { - filter: grayscale(1); - transform: scale(1, -1); - } - } -} diff --git a/_config.yml b/_config.yml deleted file mode 100644 index cbee1ac..0000000 --- a/_config.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Miguel de Moura -url: https://migueldemoura.com -social: - twitter: miguel_demoura - github: migueldemoura - linkedin: migueldemoura - email: - -assets: - sources: - - _assets/fonts - - _assets/images - - _assets/javascripts - - _assets/stylesheets - - node_modules - gzip: true - compression: true - defaults: - js: { integrity: true } - css: { integrity: false } -collections: - pages: - output: true - permalink: /:path - posts_tags: - output: false - permalink: /tag/:slug -exclude: - - bin/ - - Gemfile - - Gemfile.lock - - LICENSE-CC-BY-SA-4.0.md - - LICENSE-MIT.md - - node_modules/ - - ruby_gems/ - - package-lock.json - - package.json - - README.md -permalink: posts/:slug - -webrick: - headers: - X-Content-Type-Options: "nosniff" - X-Frame-Options: "DENY" - X-XSS-Protection: "1; mode=block" - Content-Security-Policy: "default-src 'self'; script-src 'sha256-4NiodiPaoWGdMnNvXBZf4CRywj0myrJf5abtShk+JGY='; style-src 'self' 'sha256-5iykOHtHhyGUwIqg0oAvy+wqDvlQ5kXl8Rrc8qseGPg=' 'sha256-voXja0NHK+kj/CO6kVFGewEz+qyDFbxR+WW6e9vfN3o='; img-src 'self'; media-src 'self'; frame-src 'none'; manifest-src 'none'; object-src 'none'; worker-src 'none'; frame-ancestors 'none'; form-action 'none'; block-all-mixed-content; base-uri 'self'" - Cross-Origin-Resource-Policy: "same-site" - Permissions-Policy: "accelerometer=(), ambient-light-sensor=(), autoplay=(), camera=(), encrypted-media=(), geolocation=(), fullscreen=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), screen-wake-lock=(), sync-xhr=(), usb=(), web-share=()" - Referrer-Policy: "no-referrer" diff --git a/_headers b/_headers index 1cb33ff..6d6e366 100644 --- a/_headers +++ b/_headers @@ -1,6 +1,6 @@ /* Access-Control-Allow-Origin: https://migueldemoura.com - Content-Security-Policy: default-src 'self'; script-src 'sha256-4NiodiPaoWGdMnNvXBZf4CRywj0myrJf5abtShk+JGY='; style-src 'self' 'sha256-bNxVZe4cNFhCS6lQ4v9vOzHt1NKEOBJEsXjT8hNb9z0=' 'sha256-voXja0NHK+kj/CO6kVFGewEz+qyDFbxR+WW6e9vfN3o='; img-src 'self'; media-src 'self'; frame-src 'none'; manifest-src 'none'; object-src 'none'; worker-src 'none'; frame-ancestors 'none'; form-action 'none'; block-all-mixed-content; base-uri 'self'; + Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self'; media-src 'self'; frame-src 'none'; manifest-src 'none'; object-src 'none'; worker-src 'none'; frame-ancestors 'none'; form-action 'none'; block-all-mixed-content; base-uri 'self'; Cross-Origin-Embedder-Policy: require-corp Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index b5fac03..0000000 --- a/_includes/footer.html +++ /dev/null @@ -1,25 +0,0 @@ - diff --git a/_includes/head.html b/_includes/head.html deleted file mode 100644 index 6427e85..0000000 --- a/_includes/head.html +++ /dev/null @@ -1,50 +0,0 @@ -{% if page.thumb_image %} - {% capture thumb_image %}{% asset '{{ page.thumb_image }}' @path %}{% endcapture %} -{% else %} - {% capture thumb_image %}{% asset self.jpg @path %}{% endcapture %} -{% endif %} -{% assign thumb_image = thumb_image | absolute_url %} - - - {{ site.name }} | {{ page.title }} - - - - - - - - - - - - {% if page.layout == 'post' %} - - - - {% for tag in page.tags %} - - {% endfor %} - {% else %} - - {% endif %} - - - - - - {% if page.url == '/' %} - - {% else %} - - {% endif %} - - - - - - - - {% asset main.css !type !rel @inline %} - {% asset main.js defer !type data-turbolinks-track='reload' %} - diff --git a/_includes/image.html b/_includes/image.html deleted file mode 100644 index f26f5c0..0000000 --- a/_includes/image.html +++ /dev/null @@ -1,47 +0,0 @@ - - - {% if include.vertical %} - {% asset '{{ include.path }}' - srcset:width=200 - srcset:width=350 - srcset:width=700 - sizes='(max-width: 240px) 200px, 350px, 350px 2x' - alt='{{ include.alt }}' - data-action='zoom' - data-zooming-width='{{ assets[include.path].dimensions.width }}' - data-zooming-height='{{ assets[include.path].dimensions.height }}' - loading='lazy' - %} - {% else %} - {% if assets[include.path].dimensions.width == 610 %} - {% asset '{{ include.path }}' - srcset:width=200 - srcset:width=440 - srcset:width=610 - sizes='(max-width: 240px) 200px, (max-width: 480px) 440px, 610px' - alt='{{ include.alt }}' - data-action='zoom' - data-zooming-width='{{ assets[include.path].dimensions.width }}' - data-zooming-height='{{ assets[include.path].dimensions.height }}' - loading='lazy' - %} - {% else %} - {% asset '{{ include.path }}' - srcset:width=200 - srcset:width=440 - srcset:width=610 - srcset:width=1220 - sizes='(max-width: 240px) 200px, (max-width: 480px) 440px, 610px, 610px 2x' - alt='{{ include.alt }}' - data-action='zoom' - data-zooming-width='{{ assets[include.path].dimensions.width }}' - data-zooming-height='{{ assets[include.path].dimensions.height }}' - loading='lazy' - %} - {% endif %} - {% endif %} - - {% if include.caption %} -
Figure {{ include.caption-no }} - {{ include.caption }}
- {% endif%} - diff --git a/_includes/navigation.html b/_includes/navigation.html deleted file mode 100644 index d2a44da..0000000 --- a/_includes/navigation.html +++ /dev/null @@ -1,14 +0,0 @@ -
- - {% asset 'self.jpg' - srcset:width="180 2x" - srcset:width="90 1x" - alt='{{ site.name }} Photo' - %} -

{{ site.name }}

-
-
- diff --git a/_includes/svg-icon.html b/_includes/svg-icon.html deleted file mode 100644 index 851b89c..0000000 --- a/_includes/svg-icon.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/_includes/video.html b/_includes/video.html deleted file mode 100644 index ccb1f2a..0000000 --- a/_includes/video.html +++ /dev/null @@ -1,7 +0,0 @@ -{% capture poster_path %}{% asset '{{ include.frame }}' @path %}{% endcapture %} -{% asset '{{ include.path }}' - poster='{{ poster_path }}' - controls - loop - preload='none' -%} diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index b950091..0000000 --- a/_layouts/default.html +++ /dev/null @@ -1,11 +0,0 @@ - - -{% include head.html %} - -
- {% include navigation.html %} - {{ content }} - {% include footer.html %} -
- - diff --git a/_layouts/post-list.html b/_layouts/post-list.html deleted file mode 100644 index fc5ac43..0000000 --- a/_layouts/post-list.html +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default -permalink: / ---- - -
- -
diff --git a/_layouts/post.html b/_layouts/post.html deleted file mode 100644 index 433ec0a..0000000 --- a/_layouts/post.html +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: default ---- - -
-
-
-

{{ page.title }}

- -
-
- {{ content }} -
-
- {% comment %} - The class `share-article` is only used to ensure the whole share section is - hidden when the reader uses a content blocking extension with a list targeting - social share buttons. Otherwise, only the buttons themselves would be hidden - and the `Share` text would be visible which isn't ideal. - Right now this class is in the list hence why it was picked: - https://github.com/AdguardTeam/AdguardFilters/blob/master/SocialFilter/sections/general_elemhide.txt - {% endcomment %} - -
-
diff --git a/_pages/403.html b/_pages/403.html deleted file mode 100644 index 926bea7..0000000 --- a/_pages/403.html +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Forbidden -sitemap: false ---- - - - - -
-
-

- Looks like you tried being nefarious. Please be nice! -

-
-
- - diff --git a/_pages/404.html b/_pages/404.html deleted file mode 100644 index 11cd817..0000000 --- a/_pages/404.html +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Page not found -sitemap: false ---- - - - -{% include head.html %} - -
-
- - {% asset 'self.jpg' - srcset:width="180 2x" - srcset:width="90 1x" - alt='{{ site.name }} Photo' - %} -

{{ site.name }}

-
-

- Looks like you got lost. Let's get you back to the homepage! -

-
-
- - diff --git a/_pages/about.html b/_pages/about.html deleted file mode 100644 index f0bf4de..0000000 --- a/_pages/about.html +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: default -title: About -description: Systems Engineer on the Bot Management team at Cloudflare -sitemap: true ---- - -
-

About

-

Hey!

-
-

I'm Miguel de Moura, a Portuguese Systems Engineer at Cloudflare in London, UK. I'm currently on the Bot Management team but previously worked on the L7 Firewall / WAF team.

-
-

I studied Electrical and Computer Engineering at Técnico Lisboa. At my university, I was not only a Student Partner (MSP) for Microsoft, but also a Vice-President and IST Summer Internships Coordinator at NEECIST.

-
-
-

Source and Licenses can be found in the GitHub repository.

-
diff --git a/_pages/email.html b/_pages/email.html deleted file mode 100644 index 892f63b..0000000 --- a/_pages/email.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Email redirect -sitemap: false ---- - - - -{% include head.html %} - -
-

Email: {{ site.social.email }}.

-
- - diff --git a/_pocs/finance-tax-portal-2/userscript.js b/_pocs/finance-tax-portal-2/userscript.js deleted file mode 100644 index a52964e..0000000 --- a/_pocs/finance-tax-portal-2/userscript.js +++ /dev/null @@ -1,45 +0,0 @@ -// ==UserScript== -// @name Finance Portal Part 2 Demo -// @namespace https://miguedemoura.com -// @version 0.1 -// @description Data Spoof for Demo -// @author Miguel de Moura -// @match https://www.acesso.gov.pt/v2/* -// @match https://sitfiscal.portaldasfinancas.gov.pt/* -// @grant none -// ==/UserScript== - -(function() { - 'use strict'; - - let realNif = ''; - let realPassword = ''; - let spoofedGreeting = 'Boa noite'; - let spoofedNif = '600084779'; - let spoofedName = 'AUTORIDADE TRIBUTÁRIA E ADUANEIRA'; - - if (window.location.href === 'https://www.acesso.gov.pt/v2/login') { - let xsrfToken = document.querySelector('input[name="_csrf"]').value; - let realForm = document.createRange().createContextualFragment(` -
- - - - - - -