diff --git a/web/.gitignore b/web/.gitignore deleted file mode 100644 index bbb2a84..0000000 --- a/web/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -_site -.sass-cache -.jekyll-cache -.jekyll-metadata -vendor -seader.fap -assets diff --git a/web/.well-known/traffic-advice b/web/.well-known/traffic-advice deleted file mode 100644 index 1c5f15d..0000000 --- a/web/.well-known/traffic-advice +++ /dev/null @@ -1,6 +0,0 @@ -[{ - "user_agent": "prefetch-proxy", - "google_prefetch_proxy_eap": { - "fraction": 1.0 - } -}] diff --git a/web/404.html b/web/404.html deleted file mode 100644 index 086a5c9..0000000 --- a/web/404.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -permalink: /404.html -layout: default ---- - - - -
-

404

- -

Page not found :(

-

The requested page could not be found.

-
diff --git a/web/Gemfile b/web/Gemfile deleted file mode 100644 index 7ed0d88..0000000 --- a/web/Gemfile +++ /dev/null @@ -1,37 +0,0 @@ -source "https://rubygems.org" -# Hello! This is where you manage which Jekyll version is used to run. -# When you want to use a different version, change it below, save the -# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: -# -# bundle exec jekyll serve -# -# This will help ensure the proper Jekyll version is running. -# Happy Jekylling! -gem "jekyll", "~> 4.3.2" -# This is the default theme for new Jekyll sites. You may change this to anything you like. -gem "minima", "~> 2.5" -# If you want to use GitHub Pages, remove the "gem "jekyll"" above and -# uncomment the line below. To upgrade, run `bundle update github-pages`. -# gem "github-pages", group: :jekyll_plugins -# If you have any plugins, put them here! -group :jekyll_plugins do - gem "jekyll-feed", "~> 0.12" -end - -# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem -# and associated library. -platforms :mingw, :x64_mingw, :mswin, :jruby do - gem "tzinfo", ">= 1", "< 3" - gem "tzinfo-data" -end - -# Performance-booster for watching directories on Windows -gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] - -# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem -# do not have a Java counterpart. -gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] - -gem "jekyll-responsive-image" - -gem 'jekyll-clicky' diff --git a/web/Gemfile.lock b/web/Gemfile.lock deleted file mode 100644 index e709de9..0000000 --- a/web/Gemfile.lock +++ /dev/null @@ -1,91 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - addressable (2.8.1) - public_suffix (>= 2.0.2, < 6.0) - colorator (1.1.0) - concurrent-ruby (1.2.2) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - eventmachine (1.2.7) - ffi (1.15.5) - forwardable-extended (2.6.0) - google-protobuf (3.22.0-arm64-darwin) - http_parser.rb (0.8.0) - i18n (1.12.0) - concurrent-ruby (~> 1.0) - jekyll (4.3.2) - addressable (~> 2.4) - colorator (~> 1.0) - em-websocket (~> 0.5) - i18n (~> 1.0) - jekyll-sass-converter (>= 2.0, < 4.0) - jekyll-watch (~> 2.0) - kramdown (~> 2.3, >= 2.3.1) - kramdown-parser-gfm (~> 1.0) - liquid (~> 4.0) - mercenary (>= 0.3.6, < 0.5) - pathutil (~> 0.9) - rouge (>= 3.0, < 5.0) - safe_yaml (~> 1.0) - terminal-table (>= 1.8, < 4.0) - webrick (~> 1.7) - jekyll-clicky (0.1.5) - jekyll-feed (0.17.0) - jekyll (>= 3.7, < 5.0) - jekyll-responsive-image (1.6.0) - jekyll (>= 2.0, < 5.0) - rmagick (>= 2.0, < 5.0) - jekyll-sass-converter (3.0.0) - sass-embedded (~> 1.54) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - 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.4.0) - minima (2.5.1) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (5.0.1) - rb-fsevent (0.11.2) - rb-inotify (0.10.1) - ffi (~> 1.0) - rexml (3.2.5) - rmagick (4.3.0) - rouge (4.1.0) - safe_yaml (1.0.5) - sass-embedded (1.58.3-arm64-darwin) - google-protobuf (~> 3.21) - terminal-table (3.0.2) - unicode-display_width (>= 1.1.1, < 3) - unicode-display_width (2.4.2) - webrick (1.8.1) - -PLATFORMS - arm64-darwin-21 - -DEPENDENCIES - http_parser.rb (~> 0.6.0) - jekyll (~> 4.3.2) - jekyll-clicky - jekyll-feed (~> 0.12) - jekyll-responsive-image - minima (~> 2.5) - tzinfo (>= 1, < 3) - tzinfo-data - wdm (~> 0.1.1) - -BUNDLED WITH - 2.4.7 diff --git a/web/_config.yml b/web/_config.yml deleted file mode 100644 index b9889f7..0000000 --- a/web/_config.yml +++ /dev/null @@ -1,70 +0,0 @@ -# Welcome to Jekyll! -# -# This config file is meant for settings that affect your whole blog, values -# which you are expected to set up once and rarely edit after that. If you find -# yourself editing this file very often, consider using Jekyll's data files -# feature for the data you need to update frequently. -# -# For technical reasons, this file is *NOT* reloaded automatically when you use -# 'bundle exec jekyll serve'. If you change this file, please restart the server process. -# -# If you need help with YAML syntax, here are some quick references for you: -# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml -# https://learnxinyminutes.com/docs/yaml/ -# -# Site settings -# These are used to personalize your new site. If you look in the HTML files, -# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. -# You can create any custom variable you would like, and they will be accessible -# in the templates via {{ site.myvariable }}. - -title: Seader -email: bettse@fastmail.fm -description: >- # this means to ignore newlines until "baseurl:" - Interface with a SAM from the Flipper Zero over UART -baseurl: "" # the subpath of your site, e.g. /blog -url: "https://seader.ericbetts.dev" # the base hostname & protocol for your site, e.g. http://example.com -github_username: bettse -gitlab_username: bettse -linkedin_username: eric-betts -mastodon: - - username: bettse - instance: defcon.social - -responsive_image: - template: _includes/responsive-image.html - sizes: - - width: 320 - - width: 480 - - width: 800 - -# Build settings -theme: minima -plugins: - - jekyll-feed - - jekyll-responsive-image - - jekyll-clicky - -jekyll_clicky: #Add this if you want to track with Clicky analytics - site: - id: 101415968 - -# Exclude from processing. -# The following items will not be processed, by default. -# Any item listed under the `exclude:` key here will be automatically added to -# the internal "default list". -# -# Excluded items can be processed by explicitly listing the directories or -# their entries' file path in the `include:` list. -# -# exclude: -# - .sass-cache/ -# - .jekyll-cache/ -# - gemfiles/ -# - Gemfile -# - Gemfile.lock -# - node_modules/ -# - vendor/bundle/ -# - vendor/cache/ -# - vendor/gems/ -# - vendor/ruby/ diff --git a/web/_includes/responsive-image.html b/web/_includes/responsive-image.html deleted file mode 100644 index f7200b5..0000000 --- a/web/_includes/responsive-image.html +++ /dev/null @@ -1,16 +0,0 @@ -{% comment %} -Render your responsive images using , with the original asset used as a fallback. Note: If your original assets are not web-friendly (e.g. they are very large), you can use a resized image as the fallback instead. See the srcset-resized-fallback.html template for how to do this. - -Usage: - - {% responsive_image path: assets/image.jpg alt: "A description of the image" %} - -(P.S. You can safely delete this comment block) -{% endcomment %} - - - {% for i in resized %} - - {% endfor %} - - diff --git a/web/_site/404.html b/web/_site/404.html new file mode 100644 index 0000000..d6d21e2 --- /dev/null +++ b/web/_site/404.html @@ -0,0 +1,99 @@ + + + + + +Seader | Interface with a SAM from the Flipper Zero over UART + + + + + + + + + + + + + + + +
+
+ + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
+ +
+
+ + + + + diff --git a/web/apple-touch-icon-120x120-precomposed.png b/web/_site/apple-touch-icon-120x120-precomposed.png similarity index 100% rename from web/apple-touch-icon-120x120-precomposed.png rename to web/_site/apple-touch-icon-120x120-precomposed.png diff --git a/web/apple-touch-icon-120x120.png b/web/_site/apple-touch-icon-120x120.png similarity index 100% rename from web/apple-touch-icon-120x120.png rename to web/_site/apple-touch-icon-120x120.png diff --git a/web/apple-touch-icon-152x152-precomposed.png b/web/_site/apple-touch-icon-152x152-precomposed.png similarity index 100% rename from web/apple-touch-icon-152x152-precomposed.png rename to web/_site/apple-touch-icon-152x152-precomposed.png diff --git a/web/apple-touch-icon-152x152.png b/web/_site/apple-touch-icon-152x152.png similarity index 100% rename from web/apple-touch-icon-152x152.png rename to web/_site/apple-touch-icon-152x152.png diff --git a/web/apple-touch-icon-precomposed.png b/web/_site/apple-touch-icon-precomposed.png similarity index 100% rename from web/apple-touch-icon-precomposed.png rename to web/_site/apple-touch-icon-precomposed.png diff --git a/web/apple-touch-icon.png b/web/_site/apple-touch-icon.png similarity index 100% rename from web/apple-touch-icon.png rename to web/_site/apple-touch-icon.png diff --git a/web/_site/assets/main.css b/web/_site/assets/main.css new file mode 100644 index 0000000..5f301f1 --- /dev/null +++ b/web/_site/assets/main.css @@ -0,0 +1,649 @@ +/** + * Reset some basic elements + */ +body, h1, h2, h3, h4, h5, h6, +p, blockquote, pre, hr, +dl, dd, ol, ul, figure { + margin: 0; + padding: 0; +} + +/** + * Basic styling + */ +body { + font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + color: #111; + background-color: #fdfdfd; + -webkit-text-size-adjust: 100%; + -webkit-font-feature-settings: "kern" 1; + -moz-font-feature-settings: "kern" 1; + -o-font-feature-settings: "kern" 1; + font-feature-settings: "kern" 1; + font-kerning: normal; + display: flex; + min-height: 100vh; + flex-direction: column; +} + +/** + * Set `margin-bottom` to maintain vertical rhythm + */ +h1, h2, h3, h4, h5, h6, +p, blockquote, pre, +ul, ol, dl, figure, +.highlight { + margin-bottom: 15px; +} + +/** + * `main` element + */ +main { + display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ +} + +/** + * Images + */ +img { + max-width: 100%; + vertical-align: middle; +} + +/** + * Figures + */ +figure > img { + display: block; +} + +figcaption { + font-size: 14px; +} + +/** + * Lists + */ +ul, ol { + margin-left: 30px; +} + +li > ul, +li > ol { + margin-bottom: 0; +} + +/** + * Headings + */ +h1, h2, h3, h4, h5, h6 { + font-weight: 400; +} + +/** + * Links + */ +a { + color: #2a7ae2; + text-decoration: none; +} +a:visited { + color: #1756a9; +} +a:hover { + color: #111; + text-decoration: underline; +} +.social-media-list a:hover { + text-decoration: none; +} +.social-media-list a:hover .username { + text-decoration: underline; +} + +/** + * Blockquotes + */ +blockquote { + color: #828282; + border-left: 4px solid #e8e8e8; + padding-left: 15px; + font-size: 18px; + letter-spacing: -1px; + font-style: italic; +} +blockquote > :last-child { + margin-bottom: 0; +} + +/** + * Code formatting + */ +pre, +code { + font-size: 15px; + border: 1px solid #e8e8e8; + border-radius: 3px; + background-color: #eef; +} + +code { + padding: 1px 5px; +} + +pre { + padding: 8px 12px; + overflow-x: auto; +} +pre > code { + border: 0; + padding-right: 0; + padding-left: 0; +} + +/** + * Wrapper + */ +.wrapper { + max-width: -webkit-calc(800px - (30px * 2)); + max-width: calc(800px - (30px * 2)); + margin-right: auto; + margin-left: auto; + padding-right: 30px; + padding-left: 30px; +} +@media screen and (max-width: 800px) { + .wrapper { + max-width: -webkit-calc(800px - (30px)); + max-width: calc(800px - (30px)); + padding-right: 15px; + padding-left: 15px; + } +} + +/** + * Clearfix + */ +.footer-col-wrapper:after, .wrapper:after { + content: ""; + display: table; + clear: both; +} + +/** + * Icons + */ +.svg-icon { + width: 16px; + height: 16px; + display: inline-block; + fill: #828282; + padding-right: 5px; + vertical-align: text-top; +} + +.social-media-list li + li { + padding-top: 5px; +} + +/** + * Tables + */ +table { + margin-bottom: 30px; + width: 100%; + text-align: left; + color: #3f3f3f; + border-collapse: collapse; + border: 1px solid #e8e8e8; +} +table tr:nth-child(even) { + background-color: #f7f7f7; +} +table th, table td { + padding: 10px 15px; +} +table th { + background-color: #f0f0f0; + border: 1px solid #dedede; + border-bottom-color: #c9c9c9; +} +table td { + border: 1px solid #e8e8e8; +} + +/** + * Site header + */ +.site-header { + border-top: 5px solid #424242; + border-bottom: 1px solid #e8e8e8; + min-height: 55.95px; + position: relative; +} + +.site-title { + font-size: 26px; + font-weight: 300; + line-height: 54px; + letter-spacing: -1px; + margin-bottom: 0; + float: left; +} +.site-title, .site-title:visited { + color: #424242; +} + +.site-nav { + float: right; + line-height: 54px; +} +.site-nav .nav-trigger { + display: none; +} +.site-nav .menu-icon { + display: none; +} +.site-nav .page-link { + color: #111; + line-height: 1.5; +} +.site-nav .page-link:not(:last-child) { + margin-right: 20px; +} +@media screen and (max-width: 600px) { + .site-nav { + position: absolute; + top: 9px; + right: 15px; + background-color: #fdfdfd; + border: 1px solid #e8e8e8; + border-radius: 5px; + text-align: right; + } + .site-nav label[for=nav-trigger] { + display: block; + float: right; + width: 36px; + height: 36px; + z-index: 2; + cursor: pointer; + } + .site-nav .menu-icon { + display: block; + float: right; + width: 36px; + height: 26px; + line-height: 0; + padding-top: 10px; + text-align: center; + } + .site-nav .menu-icon > svg { + fill: #424242; + } + .site-nav input ~ .trigger { + clear: both; + display: none; + } + .site-nav input:checked ~ .trigger { + display: block; + padding-bottom: 5px; + } + .site-nav .page-link { + display: block; + padding: 5px 10px; + margin-left: 20px; + } + .site-nav .page-link:not(:last-child) { + margin-right: 0; + } +} + +/** + * Site footer + */ +.site-footer { + border-top: 1px solid #e8e8e8; + padding: 30px 0; +} + +.footer-heading { + font-size: 18px; + margin-bottom: 15px; +} + +.contact-list, +.social-media-list { + list-style: none; + margin-left: 0; +} + +.footer-col-wrapper { + font-size: 15px; + color: #828282; + margin-left: -15px; +} + +.footer-col { + float: left; + margin-bottom: 15px; + padding-left: 15px; +} + +.footer-col-1 { + width: -webkit-calc(35% - (30px / 2)); + width: calc(35% - (30px / 2)); +} + +.footer-col-2 { + width: -webkit-calc(20% - (30px / 2)); + width: calc(20% - (30px / 2)); +} + +.footer-col-3 { + width: -webkit-calc(45% - (30px / 2)); + width: calc(45% - (30px / 2)); +} + +@media screen and (max-width: 800px) { + .footer-col-1, + .footer-col-2 { + width: -webkit-calc(50% - (30px / 2)); + width: calc(50% - (30px / 2)); + } + .footer-col-3 { + width: -webkit-calc(100% - (30px / 2)); + width: calc(100% - (30px / 2)); + } +} +@media screen and (max-width: 600px) { + .footer-col { + float: none; + width: -webkit-calc(100% - (30px / 2)); + width: calc(100% - (30px / 2)); + } +} +/** + * Page content + */ +.page-content { + padding: 30px 0; + flex: 1; +} + +.page-heading { + font-size: 32px; +} + +.post-list-heading { + font-size: 28px; +} + +.post-list { + margin-left: 0; + list-style: none; +} +.post-list > li { + margin-bottom: 30px; +} + +.post-meta { + font-size: 14px; + color: #828282; +} + +.post-link { + display: block; + font-size: 24px; +} + +/** + * Posts + */ +.post-header { + margin-bottom: 30px; +} + +.post-title { + font-size: 42px; + letter-spacing: -1px; + line-height: 1; +} +@media screen and (max-width: 800px) { + .post-title { + font-size: 36px; + } +} + +.post-content { + margin-bottom: 30px; +} +.post-content h2 { + font-size: 32px; +} +@media screen and (max-width: 800px) { + .post-content h2 { + font-size: 28px; + } +} +.post-content h3 { + font-size: 26px; +} +@media screen and (max-width: 800px) { + .post-content h3 { + font-size: 22px; + } +} +.post-content h4 { + font-size: 20px; +} +@media screen and (max-width: 800px) { + .post-content h4 { + font-size: 18px; + } +} + +/** + * Syntax highlighting styles + */ +.highlight { + background: #fff; +} +.highlighter-rouge .highlight { + background: #eef; +} +.highlight .c { + color: #998; + font-style: italic; +} +.highlight .err { + color: #a61717; + background-color: #e3d2d2; +} +.highlight .k { + font-weight: bold; +} +.highlight .o { + font-weight: bold; +} +.highlight .cm { + color: #998; + font-style: italic; +} +.highlight .cp { + color: #999; + font-weight: bold; +} +.highlight .c1 { + color: #998; + font-style: italic; +} +.highlight .cs { + color: #999; + font-weight: bold; + font-style: italic; +} +.highlight .gd { + color: #000; + background-color: #fdd; +} +.highlight .gd .x { + color: #000; + background-color: #faa; +} +.highlight .ge { + font-style: italic; +} +.highlight .gr { + color: #a00; +} +.highlight .gh { + color: #999; +} +.highlight .gi { + color: #000; + background-color: #dfd; +} +.highlight .gi .x { + color: #000; + background-color: #afa; +} +.highlight .go { + color: #888; +} +.highlight .gp { + color: #555; +} +.highlight .gs { + font-weight: bold; +} +.highlight .gu { + color: #aaa; +} +.highlight .gt { + color: #a00; +} +.highlight .kc { + font-weight: bold; +} +.highlight .kd { + font-weight: bold; +} +.highlight .kp { + font-weight: bold; +} +.highlight .kr { + font-weight: bold; +} +.highlight .kt { + color: #458; + font-weight: bold; +} +.highlight .m { + color: #099; +} +.highlight .s { + color: #d14; +} +.highlight .na { + color: #008080; +} +.highlight .nb { + color: #0086B3; +} +.highlight .nc { + color: #458; + font-weight: bold; +} +.highlight .no { + color: #008080; +} +.highlight .ni { + color: #800080; +} +.highlight .ne { + color: #900; + font-weight: bold; +} +.highlight .nf { + color: #900; + font-weight: bold; +} +.highlight .nn { + color: #555; +} +.highlight .nt { + color: #000080; +} +.highlight .nv { + color: #008080; +} +.highlight .ow { + font-weight: bold; +} +.highlight .w { + color: #bbb; +} +.highlight .mf { + color: #099; +} +.highlight .mh { + color: #099; +} +.highlight .mi { + color: #099; +} +.highlight .mo { + color: #099; +} +.highlight .sb { + color: #d14; +} +.highlight .sc { + color: #d14; +} +.highlight .sd { + color: #d14; +} +.highlight .s2 { + color: #d14; +} +.highlight .se { + color: #d14; +} +.highlight .sh { + color: #d14; +} +.highlight .si { + color: #d14; +} +.highlight .sx { + color: #d14; +} +.highlight .sr { + color: #009926; +} +.highlight .s1 { + color: #d14; +} +.highlight .ss { + color: #990073; +} +.highlight .bp { + color: #999; +} +.highlight .vc { + color: #008080; +} +.highlight .vg { + color: #008080; +} +.highlight .vi { + color: #008080; +} +.highlight .il { + color: #099; +} + +/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/web/_site/assets/main.css.map b/web/_site/assets/main.css.map new file mode 100644 index 0000000..1b9fb7e --- /dev/null +++ b/web/_site/assets/main.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../../../../../Users/bettse/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/minima-2.5.1/_sass/minima/_base.scss","../../../../../../Users/bettse/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/minima-2.5.1/_sass/minima.scss","../../../../../../Users/bettse/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/minima-2.5.1/_sass/minima/_layout.scss","../../../../../../Users/bettse/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/minima-2.5.1/_sass/minima/_syntax-highlighting.scss"],"names":[],"mappings":"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","sourcesContent":["/**\n * Reset some basic elements\n */\nbody, h1, h2, h3, h4, h5, h6,\np, blockquote, pre, hr,\ndl, dd, ol, ul, figure {\n margin: 0;\n padding: 0;\n}\n\n\n\n/**\n * Basic styling\n */\nbody {\n font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;\n color: $text-color;\n background-color: $background-color;\n -webkit-text-size-adjust: 100%;\n -webkit-font-feature-settings: \"kern\" 1;\n -moz-font-feature-settings: \"kern\" 1;\n -o-font-feature-settings: \"kern\" 1;\n font-feature-settings: \"kern\" 1;\n font-kerning: normal;\n display: flex;\n min-height: 100vh;\n flex-direction: column;\n}\n\n\n\n/**\n * Set `margin-bottom` to maintain vertical rhythm\n */\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\nul, ol, dl, figure,\n%vertical-rhythm {\n margin-bottom: $spacing-unit / 2;\n}\n\n\n\n/**\n * `main` element\n */\nmain {\n display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */\n}\n\n\n\n/**\n * Images\n */\nimg {\n max-width: 100%;\n vertical-align: middle;\n}\n\n\n\n/**\n * Figures\n */\nfigure > img {\n display: block;\n}\n\nfigcaption {\n font-size: $small-font-size;\n}\n\n\n\n/**\n * Lists\n */\nul, ol {\n margin-left: $spacing-unit;\n}\n\nli {\n > ul,\n > ol {\n margin-bottom: 0;\n }\n}\n\n\n\n/**\n * Headings\n */\nh1, h2, h3, h4, h5, h6 {\n font-weight: $base-font-weight;\n}\n\n\n\n/**\n * Links\n */\na {\n color: $brand-color;\n text-decoration: none;\n\n &:visited {\n color: darken($brand-color, 15%);\n }\n\n &:hover {\n color: $text-color;\n text-decoration: underline;\n }\n\n .social-media-list &:hover {\n text-decoration: none;\n\n .username {\n text-decoration: underline;\n }\n }\n}\n\n\n/**\n * Blockquotes\n */\nblockquote {\n color: $grey-color;\n border-left: 4px solid $grey-color-light;\n padding-left: $spacing-unit / 2;\n @include relative-font-size(1.125);\n letter-spacing: -1px;\n font-style: italic;\n\n > :last-child {\n margin-bottom: 0;\n }\n}\n\n\n\n/**\n * Code formatting\n */\npre,\ncode {\n @include relative-font-size(0.9375);\n border: 1px solid $grey-color-light;\n border-radius: 3px;\n background-color: #eef;\n}\n\ncode {\n padding: 1px 5px;\n}\n\npre {\n padding: 8px 12px;\n overflow-x: auto;\n\n > code {\n border: 0;\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n\n/**\n * Wrapper\n */\n.wrapper {\n max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));\n max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));\n margin-right: auto;\n margin-left: auto;\n padding-right: $spacing-unit;\n padding-left: $spacing-unit;\n @extend %clearfix;\n\n @include media-query($on-laptop) {\n max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));\n max-width: calc(#{$content-width} - (#{$spacing-unit}));\n padding-right: $spacing-unit / 2;\n padding-left: $spacing-unit / 2;\n }\n}\n\n\n\n/**\n * Clearfix\n */\n%clearfix:after {\n content: \"\";\n display: table;\n clear: both;\n}\n\n\n\n/**\n * Icons\n */\n\n.svg-icon {\n width: 16px;\n height: 16px;\n display: inline-block;\n fill: #{$grey-color};\n padding-right: 5px;\n vertical-align: text-top;\n}\n\n.social-media-list {\n li + li {\n padding-top: 5px;\n }\n}\n\n\n\n/**\n * Tables\n */\ntable {\n margin-bottom: $spacing-unit;\n width: 100%;\n text-align: $table-text-align;\n color: lighten($text-color, 18%);\n border-collapse: collapse;\n border: 1px solid $grey-color-light;\n tr {\n &:nth-child(even) {\n background-color: lighten($grey-color-light, 6%);\n }\n }\n th, td {\n padding: ($spacing-unit / 3) ($spacing-unit / 2);\n }\n th {\n background-color: lighten($grey-color-light, 3%);\n border: 1px solid darken($grey-color-light, 4%);\n border-bottom-color: darken($grey-color-light, 12%);\n }\n td {\n border: 1px solid $grey-color-light;\n }\n}\n","@charset \"utf-8\";\n\n// Define defaults for each variable.\n\n$base-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$base-font-size: 16px !default;\n$base-font-weight: 400 !default;\n$small-font-size: $base-font-size * 0.875 !default;\n$base-line-height: 1.5 !default;\n\n$spacing-unit: 30px !default;\n\n$text-color: #111 !default;\n$background-color: #fdfdfd !default;\n$brand-color: #2a7ae2 !default;\n\n$grey-color: #828282 !default;\n$grey-color-light: lighten($grey-color, 40%) !default;\n$grey-color-dark: darken($grey-color, 25%) !default;\n\n$table-text-align: left !default;\n\n// Width of the content area\n$content-width: 800px !default;\n\n$on-palm: 600px !default;\n$on-laptop: 800px !default;\n\n// Use media queries like this:\n// @include media-query($on-palm) {\n// .wrapper {\n// padding-right: $spacing-unit / 2;\n// padding-left: $spacing-unit / 2;\n// }\n// }\n@mixin media-query($device) {\n @media screen and (max-width: $device) {\n @content;\n }\n}\n\n@mixin relative-font-size($ratio) {\n font-size: $base-font-size * $ratio;\n}\n\n// Import partials.\n@import\n \"minima/base\",\n \"minima/layout\",\n \"minima/syntax-highlighting\"\n;\n","/**\n * Site header\n */\n.site-header {\n border-top: 5px solid $grey-color-dark;\n border-bottom: 1px solid $grey-color-light;\n min-height: $spacing-unit * 1.865;\n\n // Positioning context for the mobile navigation icon\n position: relative;\n}\n\n.site-title {\n @include relative-font-size(1.625);\n font-weight: 300;\n line-height: $base-line-height * $base-font-size * 2.25;\n letter-spacing: -1px;\n margin-bottom: 0;\n float: left;\n\n &,\n &:visited {\n color: $grey-color-dark;\n }\n}\n\n.site-nav {\n float: right;\n line-height: $base-line-height * $base-font-size * 2.25;\n\n .nav-trigger {\n display: none;\n }\n\n .menu-icon {\n display: none;\n }\n\n .page-link {\n color: $text-color;\n line-height: $base-line-height;\n\n // Gaps between nav items, but not on the last one\n &:not(:last-child) {\n margin-right: 20px;\n }\n }\n\n @include media-query($on-palm) {\n position: absolute;\n top: 9px;\n right: $spacing-unit / 2;\n background-color: $background-color;\n border: 1px solid $grey-color-light;\n border-radius: 5px;\n text-align: right;\n\n label[for=\"nav-trigger\"] {\n display: block;\n float: right;\n width: 36px;\n height: 36px;\n z-index: 2;\n cursor: pointer;\n }\n\n .menu-icon {\n display: block;\n float: right;\n width: 36px;\n height: 26px;\n line-height: 0;\n padding-top: 10px;\n text-align: center;\n\n > svg {\n fill: $grey-color-dark;\n }\n }\n\n input ~ .trigger {\n clear: both;\n display: none;\n }\n\n input:checked ~ .trigger {\n display: block;\n padding-bottom: 5px;\n }\n\n .page-link {\n display: block;\n padding: 5px 10px;\n\n &:not(:last-child) {\n margin-right: 0;\n }\n margin-left: 20px;\n }\n }\n}\n\n\n\n/**\n * Site footer\n */\n.site-footer {\n border-top: 1px solid $grey-color-light;\n padding: $spacing-unit 0;\n}\n\n.footer-heading {\n @include relative-font-size(1.125);\n margin-bottom: $spacing-unit / 2;\n}\n\n.contact-list,\n.social-media-list {\n list-style: none;\n margin-left: 0;\n}\n\n.footer-col-wrapper {\n @include relative-font-size(0.9375);\n color: $grey-color;\n margin-left: -$spacing-unit / 2;\n @extend %clearfix;\n}\n\n.footer-col {\n float: left;\n margin-bottom: $spacing-unit / 2;\n padding-left: $spacing-unit / 2;\n}\n\n.footer-col-1 {\n width: -webkit-calc(35% - (#{$spacing-unit} / 2));\n width: calc(35% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-2 {\n width: -webkit-calc(20% - (#{$spacing-unit} / 2));\n width: calc(20% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-3 {\n width: -webkit-calc(45% - (#{$spacing-unit} / 2));\n width: calc(45% - (#{$spacing-unit} / 2));\n}\n\n@include media-query($on-laptop) {\n .footer-col-1,\n .footer-col-2 {\n width: -webkit-calc(50% - (#{$spacing-unit} / 2));\n width: calc(50% - (#{$spacing-unit} / 2));\n }\n\n .footer-col-3 {\n width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n width: calc(100% - (#{$spacing-unit} / 2));\n }\n}\n\n@include media-query($on-palm) {\n .footer-col {\n float: none;\n width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n width: calc(100% - (#{$spacing-unit} / 2));\n }\n}\n\n\n\n/**\n * Page content\n */\n.page-content {\n padding: $spacing-unit 0;\n flex: 1;\n}\n\n.page-heading {\n @include relative-font-size(2);\n}\n\n.post-list-heading {\n @include relative-font-size(1.75);\n}\n\n.post-list {\n margin-left: 0;\n list-style: none;\n\n > li {\n margin-bottom: $spacing-unit;\n }\n}\n\n.post-meta {\n font-size: $small-font-size;\n color: $grey-color;\n}\n\n.post-link {\n display: block;\n @include relative-font-size(1.5);\n}\n\n\n\n/**\n * Posts\n */\n.post-header {\n margin-bottom: $spacing-unit;\n}\n\n.post-title {\n @include relative-font-size(2.625);\n letter-spacing: -1px;\n line-height: 1;\n\n @include media-query($on-laptop) {\n @include relative-font-size(2.25);\n }\n}\n\n.post-content {\n margin-bottom: $spacing-unit;\n\n h2 {\n @include relative-font-size(2);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.75);\n }\n }\n\n h3 {\n @include relative-font-size(1.625);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.375);\n }\n }\n\n h4 {\n @include relative-font-size(1.25);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.125);\n }\n }\n}\n","/**\n * Syntax highlighting styles\n */\n.highlight {\n background: #fff;\n @extend %vertical-rhythm;\n\n .highlighter-rouge & {\n background: #eef;\n }\n\n .c { color: #998; font-style: italic } // Comment\n .err { color: #a61717; background-color: #e3d2d2 } // Error\n .k { font-weight: bold } // Keyword\n .o { font-weight: bold } // Operator\n .cm { color: #998; font-style: italic } // Comment.Multiline\n .cp { color: #999; font-weight: bold } // Comment.Preproc\n .c1 { color: #998; font-style: italic } // Comment.Single\n .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special\n .gd { color: #000; background-color: #fdd } // Generic.Deleted\n .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific\n .ge { font-style: italic } // Generic.Emph\n .gr { color: #a00 } // Generic.Error\n .gh { color: #999 } // Generic.Heading\n .gi { color: #000; background-color: #dfd } // Generic.Inserted\n .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific\n .go { color: #888 } // Generic.Output\n .gp { color: #555 } // Generic.Prompt\n .gs { font-weight: bold } // Generic.Strong\n .gu { color: #aaa } // Generic.Subheading\n .gt { color: #a00 } // Generic.Traceback\n .kc { font-weight: bold } // Keyword.Constant\n .kd { font-weight: bold } // Keyword.Declaration\n .kp { font-weight: bold } // Keyword.Pseudo\n .kr { font-weight: bold } // Keyword.Reserved\n .kt { color: #458; font-weight: bold } // Keyword.Type\n .m { color: #099 } // Literal.Number\n .s { color: #d14 } // Literal.String\n .na { color: #008080 } // Name.Attribute\n .nb { color: #0086B3 } // Name.Builtin\n .nc { color: #458; font-weight: bold } // Name.Class\n .no { color: #008080 } // Name.Constant\n .ni { color: #800080 } // Name.Entity\n .ne { color: #900; font-weight: bold } // Name.Exception\n .nf { color: #900; font-weight: bold } // Name.Function\n .nn { color: #555 } // Name.Namespace\n .nt { color: #000080 } // Name.Tag\n .nv { color: #008080 } // Name.Variable\n .ow { font-weight: bold } // Operator.Word\n .w { color: #bbb } // Text.Whitespace\n .mf { color: #099 } // Literal.Number.Float\n .mh { color: #099 } // Literal.Number.Hex\n .mi { color: #099 } // Literal.Number.Integer\n .mo { color: #099 } // Literal.Number.Oct\n .sb { color: #d14 } // Literal.String.Backtick\n .sc { color: #d14 } // Literal.String.Char\n .sd { color: #d14 } // Literal.String.Doc\n .s2 { color: #d14 } // Literal.String.Double\n .se { color: #d14 } // Literal.String.Escape\n .sh { color: #d14 } // Literal.String.Heredoc\n .si { color: #d14 } // Literal.String.Interpol\n .sx { color: #d14 } // Literal.String.Other\n .sr { color: #009926 } // Literal.String.Regex\n .s1 { color: #d14 } // Literal.String.Single\n .ss { color: #990073 } // Literal.String.Symbol\n .bp { color: #999 } // Name.Builtin.Pseudo\n .vc { color: #008080 } // Name.Variable.Class\n .vg { color: #008080 } // Name.Variable.Global\n .vi { color: #008080 } // Name.Variable.Instance\n .il { color: #099 } // Literal.Number.Integer.Long\n}\n"],"file":"main.css"} \ No newline at end of file diff --git a/web/_site/assets/minima-social-icons.svg b/web/_site/assets/minima-social-icons.svg new file mode 100644 index 0000000..fa7399f --- /dev/null +++ b/web/_site/assets/minima-social-icons.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/_site/assets/resized/fake_screenshot-320x167.png b/web/_site/assets/resized/fake_screenshot-320x167.png new file mode 100644 index 0000000..5fb4712 Binary files /dev/null and b/web/_site/assets/resized/fake_screenshot-320x167.png differ diff --git a/web/_site/assets/resized/fake_screenshot-480x251.png b/web/_site/assets/resized/fake_screenshot-480x251.png new file mode 100644 index 0000000..dacd60d Binary files /dev/null and b/web/_site/assets/resized/fake_screenshot-480x251.png differ diff --git a/web/_site/assets/resized/fake_screenshot-800x419.png b/web/_site/assets/resized/fake_screenshot-800x419.png new file mode 100644 index 0000000..4fa1ebf Binary files /dev/null and b/web/_site/assets/resized/fake_screenshot-800x419.png differ diff --git a/web/fake_screenshot.png b/web/_site/fake_screenshot.png similarity index 100% rename from web/fake_screenshot.png rename to web/_site/fake_screenshot.png diff --git a/web/favicon.ico b/web/_site/favicon.ico similarity index 100% rename from web/favicon.ico rename to web/_site/favicon.ico diff --git a/web/_site/feed.xml b/web/_site/feed.xml new file mode 100644 index 0000000..8987630 --- /dev/null +++ b/web/_site/feed.xml @@ -0,0 +1 @@ +Jekyll2023-08-06T19:12:45-07:00http://localhost:4000/feed.xmlSeaderInterface with a SAM from the Flipper Zero over UART \ No newline at end of file diff --git a/web/_site/index.html b/web/_site/index.html new file mode 100644 index 0000000..78ac8ff --- /dev/null +++ b/web/_site/index.html @@ -0,0 +1,157 @@ + + + + + +Seader | Interface with a SAM from the Flipper Zero over UART + + + + + + + + + + + + + + + +
+
+
+ +

A Flipper Zero application (aka “fap”) to interface with a SAM from the Flipper Zero over UART.

+ +

FAQ

+ +

See “Probably Frequently Asked Questions:” on Red Team Tools NARD SAM expansion board product page

+ +

Download

+ +

Release

+ +

Download release versions via the Flipper App Catalog in the mobile companion apps

+ +

Beta/Dev

+ +

Download builds based off of git at flipc

+ +

Bugs

+ +

File issues in GitHub.

+ +

Hardware

+ +

Option 1: NARD Flipper add-on

+ +

Buy it assembled at Red Team Tools, with or without SAM.

+ +

Or build it yourself from the files in the NARD repo.

+ +

Option 2: Smart Card 2 Click

+ +

Put SAM (USA EU CA) into adapter (because of chip on top) and plug into reader. Connect reader to Flipper Zero (See Connections below).

+ +

Optionally 3d print a case designed by sean

+ +

Connections

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Smart Card 2 ClickFlipper
5v1
GND8 / 11 / 18
TX16
RX15
+ +

Development

+ +

See repo readme.

+ + + +
+ +

Buy Me A Coffee

+ +
+ +
+
+ + + + + diff --git a/web/robots.txt b/web/_site/robots.txt similarity index 100% rename from web/robots.txt rename to web/_site/robots.txt diff --git a/web/_site/traffic spike.png b/web/_site/traffic spike.png new file mode 100644 index 0000000..70ff6a7 Binary files /dev/null and b/web/_site/traffic spike.png differ diff --git a/web/assets/resized/fake_screenshot-320x167.png b/web/assets/resized/fake_screenshot-320x167.png new file mode 100644 index 0000000..5fb4712 Binary files /dev/null and b/web/assets/resized/fake_screenshot-320x167.png differ diff --git a/web/assets/resized/fake_screenshot-480x251.png b/web/assets/resized/fake_screenshot-480x251.png new file mode 100644 index 0000000..dacd60d Binary files /dev/null and b/web/assets/resized/fake_screenshot-480x251.png differ diff --git a/web/assets/resized/fake_screenshot-800x419.png b/web/assets/resized/fake_screenshot-800x419.png new file mode 100644 index 0000000..4fa1ebf Binary files /dev/null and b/web/assets/resized/fake_screenshot-800x419.png differ diff --git a/web/banner.png b/web/banner.png new file mode 100644 index 0000000..f8dc322 Binary files /dev/null and b/web/banner.png differ diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..5d5dfeb --- /dev/null +++ b/web/index.html @@ -0,0 +1,177 @@ + + + + + + Seader - Your Ultimate App + + + + +
+

Seader

+

Your Ultimate Credential Reading App

+
+
+

Key Features

+ +
+
+ Menu Screenshot + PACS Screenshot + Save Menu Screenshot +
+
+

Hardware Options

+
+

Option 1: NARD flipper add-on

+

Buy it assembled at Red Team Tools, with or without SAM.

+

Or build it yourself from the files in the NARD repo.

+

Optionally 3d print a case designed by Antiklesys.

+ +

Option 2: Flippermeister

+

Buy it at Red Team Tools.

+ +

Option 3: Smart Card 2 Click

+

Buy HID SAM:

+ +

Put SAM into adapter (because of chip on top) and plug into Smart Card 2 Click (digikey with cheaper US shipping). Connect Smart Card 2 Click to Flipper Zero (See `Connections` below).

+

Optionally 3d print a case designed by sean.

+ +

Connections

+ + + + + + + + + + + + + + + + + + + + + +
Smart Card 2 ClickFlipper
5v1
GND8 / 11 / 18
TX16
RX15
+
+
+
+

Get Started with Seader

+

Download the app now and experience its amazing features!

+ + + +
+ + diff --git a/web/index.md b/web/index.md deleted file mode 100644 index 8ea5af0..0000000 --- a/web/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -layout: home ---- - - -A [Flipper Zero](https://flipperzero.one/) application (aka "fap") to interface with a SAM from the Flipper Zero over UART. Latest release on the [App Catalog](https://lab.flipper.net/apps/seader). - -# FAQ - -See "Probably Frequently Asked Questions:" on Red Team Tools [NARD SAM expansion board product page](https://www.redteamtools.com/nard-sam-expansion-board-for-flipper-zero-with-hid-seos-iclass-sam/) - -# Download - -## Release - -Download release versions via the [Flipper App Catalog](https://lab.flipper.net/apps/seader) in the mobile companion apps. - -## Beta/Dev - -Download builds based off of git at [flipc](https://flipc.org/bettse/seader?branch=main) - -# Bugs - -File issues in [GitHub](https://github.com/bettse/seader/issues). - -# Hardware - -## Option 1: NARD Flipper add-on - -Buy it assembled at [Red Team Tools](https://www.redteamtools.com/nard-sam-expansion-board-for-flipper-zero-with-hid-seos-iclass-sam/), with or without SAM. - -Or build it yourself from the files in the [NARD repo](https://github.com/killergeek/nard). - -Optionally 3d print a [case designed by Antiklesys](https://www.printables.com/model/576735-flipper-zero-samnard-protecting-cover). - -## Option 2: Flippermeister - -Buy it at [Red Team Tools](https://www.redteamtools.com/flippermeister/). - -## Option 3: Smart Card 2 Click - -Buy HID SAM: - * [USA](https://www.cdw.com/product/hp-sim-for-hid-iclass-for-hip2-reader-security-sim/4854794) - * [Europe](https://www.rfideas-shop.com/en/kt-sim-se-sim-card-hid-iclass-and-seos-for-sphip-r.html) - * [Canada](https://www.pc-canada.com/item/hp-sim-for-hid-iclass-se-and-hid-iclass-seos-for-hip2-reader/y7c07a) - * [eBay](https://www.ebay.com/p/4037642616) - -Put SAM into **[adapter](https://a.co/d/1E9Zk1h)** (because of chip on top) and plug into **Smart Card 2 Click** ([Mikroe](https://www.mikroe.com/smart-card-2-click) [digikey](https://www.digikey.com/en/products/detail/mikroelektronika/MIKROE-5492/20840872) with cheaper US shipping). Connect Smart Card 2 Click to Flipper Zero (See `Connections` below). - -Optionally 3d print a [case designed by sean](https://www.printables.com/model/543149-case-for-flipper-zero-devboard-smart2click-samsim) - -### Connections - -| Smart Card 2 Click | Flipper | -| ------------------ | ----------- | -| 5v | 1 | -| GND | 8 / 11 / 18 | -| TX | 16 | -| RX | 15 | - -# Development - -See [repo readme](https://github.com/bettse/seader#seader). - - - ----- - - -[Buy Me A Coffee](http://buymeacoffee.com/bettse) - diff --git a/web/menu.png b/web/menu.png new file mode 100644 index 0000000..8547aec Binary files /dev/null and b/web/menu.png differ diff --git a/web/pacs.png b/web/pacs.png new file mode 100644 index 0000000..c9aee36 Binary files /dev/null and b/web/pacs.png differ diff --git a/web/save_menu.png b/web/save_menu.png new file mode 100644 index 0000000..8d2ff7c Binary files /dev/null and b/web/save_menu.png differ