├── .dockerignore ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .github ├── FUNDING.yml └── workflows │ └── nodejs.yml ├── .gitignore ├── .npmrc ├── CHANGELOG.md ├── Dockerfile ├── README.md ├── assets ├── README.md ├── images │ └── telegram-group.svg └── styles │ ├── common │ ├── _global.scss │ ├── _transitions.scss │ └── _variables.scss │ ├── components │ ├── _buttons.scss │ ├── _codebox.scss │ ├── _forms.scss │ └── _matchbox.scss │ ├── fonts │ ├── _source.scss │ └── source-sans │ │ ├── VAR │ │ ├── SourceSansVariable-Italic.otf │ │ ├── SourceSansVariable-Italic.ttf │ │ ├── SourceSansVariable-Roman.otf │ │ └── SourceSansVariable-Roman.ttf │ │ ├── WOFF │ │ ├── OTF │ │ │ ├── SourceSansPro-Black.otf.woff │ │ │ ├── SourceSansPro-BlackIt.otf.woff │ │ │ ├── SourceSansPro-Bold.otf.woff │ │ │ ├── SourceSansPro-BoldIt.otf.woff │ │ │ ├── SourceSansPro-ExtraLight.otf.woff │ │ │ ├── SourceSansPro-ExtraLightIt.otf.woff │ │ │ ├── SourceSansPro-It.otf.woff │ │ │ ├── SourceSansPro-Light.otf.woff │ │ │ ├── SourceSansPro-LightIt.otf.woff │ │ │ ├── SourceSansPro-Regular.otf.woff │ │ │ ├── SourceSansPro-Semibold.otf.woff │ │ │ └── SourceSansPro-SemiboldIt.otf.woff │ │ ├── TTF │ │ │ ├── SourceSansPro-Black.ttf.woff │ │ │ ├── SourceSansPro-BlackIt.ttf.woff │ │ │ ├── SourceSansPro-Bold.ttf.woff │ │ │ ├── SourceSansPro-BoldIt.ttf.woff │ │ │ ├── SourceSansPro-ExtraLight.ttf.woff │ │ │ ├── SourceSansPro-ExtraLightIt.ttf.woff │ │ │ ├── SourceSansPro-It.ttf.woff │ │ │ ├── SourceSansPro-Light.ttf.woff │ │ │ ├── SourceSansPro-LightIt.ttf.woff │ │ │ ├── SourceSansPro-Regular.ttf.woff │ │ │ ├── SourceSansPro-Semibold.ttf.woff │ │ │ └── SourceSansPro-SemiboldIt.ttf.woff │ │ └── VAR │ │ │ ├── SourceSansVariable-Italic.otf.woff │ │ │ ├── SourceSansVariable-Italic.ttf.woff │ │ │ ├── SourceSansVariable-Roman.otf.woff │ │ │ └── SourceSansVariable-Roman.ttf.woff │ │ └── WOFF2 │ │ ├── OTF │ │ ├── SourceSansPro-Black.otf.woff2 │ │ ├── SourceSansPro-BlackIt.otf.woff2 │ │ ├── SourceSansPro-Bold.otf.woff2 │ │ ├── SourceSansPro-BoldIt.otf.woff2 │ │ ├── SourceSansPro-ExtraLight.otf.woff2 │ │ ├── SourceSansPro-ExtraLightIt.otf.woff2 │ │ ├── SourceSansPro-It.otf.woff2 │ │ ├── SourceSansPro-Light.otf.woff2 │ │ ├── SourceSansPro-LightIt.otf.woff2 │ │ ├── SourceSansPro-Regular.otf.woff2 │ │ ├── SourceSansPro-Semibold.otf.woff2 │ │ └── SourceSansPro-SemiboldIt.otf.woff2 │ │ ├── TTF │ │ ├── SourceSansPro-Black.ttf.woff2 │ │ ├── SourceSansPro-BlackIt.ttf.woff2 │ │ ├── SourceSansPro-Bold.ttf.woff2 │ │ ├── SourceSansPro-BoldIt.ttf.woff2 │ │ ├── SourceSansPro-ExtraLight.ttf.woff2 │ │ ├── SourceSansPro-ExtraLightIt.ttf.woff2 │ │ ├── SourceSansPro-It.ttf.woff2 │ │ ├── SourceSansPro-Light.ttf.woff2 │ │ ├── SourceSansPro-LightIt.ttf.woff2 │ │ ├── SourceSansPro-Regular.ttf.woff2 │ │ ├── SourceSansPro-Semibold.ttf.woff2 │ │ └── SourceSansPro-SemiboldIt.ttf.woff2 │ │ └── VAR │ │ ├── SourceSansVariable-Italic.otf.woff2 │ │ ├── SourceSansVariable-Italic.ttf.woff2 │ │ ├── SourceSansVariable-Roman.otf.woff2 │ │ └── SourceSansVariable-Roman.ttf.woff2 │ ├── layouts │ ├── _article.scss │ ├── _expr.scss │ ├── _pages.scss │ └── _post.scss │ ├── main.scss │ ├── tailwind.config.js │ └── tailwind.scss ├── components ├── README.md ├── layouts │ ├── base │ │ ├── footer.vue │ │ ├── navbar.vue │ │ └── post.vue │ └── expr.vue ├── post-components │ ├── CheatTable.vue │ ├── CodeBox.vue │ ├── MatchBox.vue │ ├── MatchBoxBetter.vue │ ├── RegvizEmbed.vue │ ├── TransitionExpand.vue │ └── utils │ │ └── FlagSelector.vue └── utils │ ├── CarbonAds.vue │ ├── CarbonAds2.vue │ ├── CommonResults.vue │ ├── Logo.vue │ ├── NoResults.vue │ ├── SearchBox.vue │ ├── SearchResult.vue │ ├── SideBarSearch.vue │ ├── SideBarToggleButton.vue │ └── TwitterButton.vue ├── entrypoint.sh ├── layouts ├── README.md ├── article.vue ├── default.vue └── error.vue ├── middleware └── README.md ├── mixins └── pastePlainText.js ├── netlify.toml ├── nuxt.config.js ├── package.json ├── pages ├── README.md ├── cheatsheet │ └── index.vue ├── color.vue.backup ├── donate.vue ├── expr │ ├── _id.vue │ └── index.vue ├── index.vue └── playground.vue ├── plugins ├── README.md ├── ga.js ├── headMixin.js ├── regex-colorize.js ├── vue-awesome.js └── vue-fuse.js ├── static ├── README.md ├── favicon.ico ├── images │ └── ihateregex.png └── regex │ ├── cheatsheet.json │ ├── data.json │ └── markdown │ ├── ascii.md │ ├── bitcoin-address.md │ ├── c-like-identifier.md │ ├── credit-card.md │ ├── date.md │ ├── discord-username.md │ ├── doi.md │ ├── e164-phone.md │ ├── email-2.md │ ├── email.md │ ├── emoji.md │ ├── han-unification.md │ ├── hashtag.md │ ├── hyphen-word-break.md │ ├── ip.md │ ├── ipv6.md │ ├── jira-ticket.md │ ├── lat-long.md │ ├── mac-address.md │ ├── pan-from-gstin.md │ ├── password.md │ ├── phone.md │ ├── port.md │ ├── semver.md │ ├── ssn.md │ ├── url-slug.md │ ├── url.md │ ├── username.md │ └── uuid.md └── store └── README.md /.dockerignore: -------------------------------------------------------------------------------- 1 | ./Dockerfile 2 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | nuxt.config.js 2 | plugins/regex-colorize.js 3 | .gitignore 4 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: true, 6 | }, 7 | parserOptions: { 8 | parser: 'babel-eslint', 9 | }, 10 | extends: [ 11 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention 12 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. 13 | 'plugin:vue/recommended', 14 | 'prettier', 15 | ], 16 | // required to lint *.vue files 17 | plugins: ['vue'], 18 | // add your custom rules here 19 | rules: { 20 | // 'prettier/prettier': 'error', 21 | 'no-console': 'off', 22 | 'vue/max-attributes-per-line': 'off', 23 | 'vue/html-self-closing': 0, 24 | }, 25 | } 26 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | open_collective: ihateregex 2 | -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- 1 | name: Node.js CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | strategy: 11 | matrix: 12 | node-version: [12.x] 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Use Node.js ${{ matrix.node-version }} 17 | uses: actions/setup-node@v1 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | - run: yarn install 21 | - run: yarn build 22 | - run: yarn run lint 23 | env: 24 | CI: true 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | yarn.lock 2 | 3 | ### Node ### 4 | # Logs 5 | logs 6 | *.log 7 | npm-debug.log* 8 | yarn-debug.log* 9 | yarn-error.log* 10 | lerna-debug.log* 11 | 12 | # Diagnostic reports (https://nodejs.org/api/report.html) 13 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 14 | 15 | # Runtime data 16 | pids 17 | *.pid 18 | *.seed 19 | *.pid.lock 20 | 21 | # Directory for instrumented libs generated by jscoverage/JSCover 22 | lib-cov 23 | 24 | # Coverage directory used by tools like istanbul 25 | coverage 26 | *.lcov 27 | 28 | # nyc test coverage 29 | .nyc_output 30 | 31 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 32 | .grunt 33 | 34 | # Bower dependency directory (https://bower.io/) 35 | bower_components 36 | 37 | # node-waf configuration 38 | .lock-wscript 39 | 40 | # Compiled binary addons (https://nodejs.org/api/addons.html) 41 | build/Release 42 | 43 | # Dependency directories 44 | node_modules/ 45 | jspm_packages/ 46 | 47 | # TypeScript v1 declaration files 48 | typings/ 49 | 50 | # TypeScript cache 51 | *.tsbuildinfo 52 | 53 | # Optional npm cache directory 54 | .npm 55 | 56 | # Optional eslint cache 57 | .eslintcache 58 | 59 | # Optional REPL history 60 | .node_repl_history 61 | 62 | # Output of 'npm pack' 63 | *.tgz 64 | 65 | # Yarn Integrity file 66 | .yarn-integrity 67 | 68 | # dotenv environment variables file 69 | .env 70 | .env.test 71 | 72 | # parcel-bundler cache (https://parceljs.org/) 73 | .cache 74 | 75 | # next.js build output 76 | .next 77 | 78 | # nuxt.js build output 79 | .nuxt 80 | 81 | # rollup.js default build output 82 | dist/ 83 | 84 | # Uncomment the public line if your project uses Gatsby 85 | # https://nextjs.org/blog/next-9-1#public-directory-support 86 | # https://create-react-app.dev/docs/using-the-public-folder/#docsNav 87 | # public 88 | 89 | # Storybook build outputs 90 | .out 91 | .storybook-out 92 | 93 | # vuepress build output 94 | .vuepress/dist 95 | 96 | # Serverless directories 97 | .serverless/ 98 | 99 | # FuseBox cache 100 | .fusebox/ 101 | 102 | # DynamoDB Local files 103 | .dynamodb/ 104 | 105 | # Temporary folders 106 | tmp/ 107 | temp/ 108 | 109 | ### Nuxtjs ### 110 | # dependencies 111 | node_modules 112 | 113 | # logs 114 | npm-debug.log 115 | 116 | # Nuxt build 117 | 118 | # Nuxt generate 119 | dist 120 | 121 | ### Vuejs ### 122 | # Recommended template: Node.gitignore 123 | 124 | yarn-error.log 125 | 126 | # prefer yarn.lock and avoid mixup 127 | package-lock.json 128 | 129 | .now -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 0.1.1 - 2020-08-30 4 | ### CHANGED: 5 | - Adds More content 6 | 1. Port 7 | 2. DOI 8 | 3. Discord 9 | 4. Hashtags 10 | 5. e.164 Phone 11 | 6. Han Unification 12 | 13 | ## 0.1.0 - 2020-08-30 14 | ### CHANGED: 15 | - Adds Changelog 16 | - Refactors tailwind inline classes into SASS `@apply` rules 17 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:latest 2 | EXPOSE 3600/tcp 3 | RUN apk update && apk add yarn 4 | COPY ./ /i-hate-regex/ 5 | WORKDIR /i-hate-regex/ 6 | RUN chmod +x entrypoint.sh && mv entrypoint.sh / && sed -i 's/localhost/0.0.0.0/g' nuxt.config.js && yarn install && yarn build 7 | ENTRYPOINT ["/entrypoint.sh"] 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 |

4 | iHateRegex 😈 5 |

6 | 7 |

8 | 9 | PRs Welcome 10 | 11 | Nodejs CI 12 | 13 | 14 |

15 |

16 | 17 | 18 | 19 |

20 | 21 | 22 |

23 | don't just use; understand. 24 |

25 | 26 |

27 | iHateRegex.io - a regex cheatsheet for the haters. 28 |

29 | 30 |

31 | Chat with us on Telegram 32 | 33 |

34 |
35 | 36 | 37 | 38 | ## Features 😎 39 | 40 | - [x] Visual representation of regular expressions 41 | - [x] Matched strings - the Testing area 42 | - [x] Embed regular expression visualization on your sites 43 | - [x] Regex code highlighting and validation 44 | - [x] Regex description with markdown support 45 | - [ ] [Playground page](https://ihateregex.io/playground) where you can create your own expression and link to it. 46 | - [ ] User login and save regex 47 | 48 | ## Setup 🚀 49 | 50 | 1. Install [yarn](https://yarnpkg.com/) 51 | 52 | 2. [Clone](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) this repo 53 | 54 | 3. Install dependencies ⚙️ 55 | 56 | ``` bash 57 | $ yarn install 58 | 59 | ``` 60 | 4. Test on localhost 🛠 61 | ``` bash 62 | # serve with hot reload at localhost:3600 63 | $ yarn dev 64 | ``` 65 | 5. Build and Start nuxt server 🚀 66 | ``` bash 67 | # build for production and launch server 68 | $ yarn build 69 | $ yarn start 70 | ``` 71 | 72 | This project is built with Nuxt.js 🙌 73 | 74 | For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org). 75 | 76 | 77 | ## Contribute Regex 🙏 78 | 79 | Contribute to this project and make this the largest collection of useful expressions 😍 80 | 81 | You can also submit regex via this [google form](https://forms.gle/Cwo3VupujQJzeoYQ9) 82 | 83 | ### To contribute: 84 | 85 | 1. Add your regex to `/static/regex/data.json` 86 | 87 |
88 | Show sample JSON 89 | 90 | ```json 91 | { 92 | "id": "username", 93 | "title": "username", 94 | "tagline": "match a username", 95 | "description": "Alphanumeric string that may include _ and - having a length of 3 to 16 characters.", 96 | "regex": "^[a-z0-9_-]{3,15}$", 97 | "flag": "gm", 98 | "matchText": [ 99 | "lorem", 100 | "ipsum", 101 | "gr3at", 102 | "a", 103 | "ab", 104 | "abcd", 105 | "abcde", 106 | "john doe", 107 | "johnny", 108 | "abcdefghijklmnopqrst" 109 | ], 110 | "cheatRegex": [ 111 | "/^/", 112 | "/$/", 113 | "/[a-zA-Z0-9]/", 114 | "/(hello){1,3}/" 115 | ], 116 | "embedHeight": 300, 117 | "tags" : ["name", "slug"] 118 | }, 119 | ``` 120 | 121 |
122 | 123 |
124 | Show JSON properties 125 | 126 | | Property | Definition | 127 | |------|------------| 128 | | id| this is the slug and also the short name of the regex. cannot contain spaces and only contain url-safe characters| 129 | | title | Title of the page. | 130 | | tagline | Tagline | 131 | | description | First line under the tagline and also the meta description | 132 | | regex | The actual regex string | 133 | | flag | regex flags associated with the expression. eg; g | 134 | | matchText | Array(line by line) of strings to be included in the string matching are | 135 | | cheatRegex | refer `static/regex/cheatsheet.json` and see what all cheats are relevent to this expression. (you can also add your own cheats into cheatsheet.json and refer to that) | 136 | | embedHeight | Height in pixels of the regex visualization embed | 137 | | tags | tags related to the expression (to be used later) | 138 | 139 |
140 | 141 | 2. Create a markdown file in `/static/regex/markdown/` named `.md` for longer description and explanation 142 | 143 | *<regex-id> is the **id** from **data.json*** 144 | 145 | 146 | That's it 🙌 Go ahead and shoot a new pull request✨✨ 147 | 148 | ### Descriptions 149 | 150 | There are 2 descriptions for each regex. 151 | 152 | - One is the **description** property inside `/static/regex/data.json`. 153 | 154 | - This is used for page **meta description** as well. 155 | - This is the **first description** 156 | 157 | - Second is a dedicated **markdown file** in `/static/regex/markdown/.md` 158 | 159 | - This should explain how the expression works in detail. 160 | - This is the **long description** 161 | 162 |
163 | 164 |
165 | 166 | 167 | | Property | Definition | example | 168 | |------|------------|------------| 169 | | **description** property inside `data.json` | This should explain about what the target match is in a few lines. It should not contain any html or markdown |A username is a unique identifier given to accounts in websites and social media | 170 | |dedicated **markdown file**|Explain about the expression and how it works| ip addresses are of the range 0.0.0.0 - 255.255.255.255. The expression matches the ....(more)| 171 | 172 | ## Sponsors 💖 173 | 174 | 175 | 176 | 177 | 178 |

179 | Donate via Opencollective 180 |

181 | 182 | 183 | ## Credits 184 | 185 | - The visual demo is built with: [regexper](https://gitlab.com/javallone/regexper-static 186 | ) -------------------------------------------------------------------------------- /assets/README.md: -------------------------------------------------------------------------------- 1 | # ASSETS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | This directory contains your un-compiled assets such as LESS, SASS, or JavaScript. 6 | 7 | More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#webpacked). 8 | -------------------------------------------------------------------------------- /assets/styles/common/_global.scss: -------------------------------------------------------------------------------- 1 | html { 2 | font-family: "Source Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", 3 | Roboto, "Helvetica Neue", Arial, sans-serif; 4 | font-size: 16px; 5 | word-spacing: 1px; 6 | -ms-text-size-adjust: 100%; 7 | -webkit-text-size-adjust: 100%; 8 | -moz-osx-font-smoothing: grayscale; 9 | -webkit-font-smoothing: antialiased; 10 | } 11 | 12 | *, 13 | *:before, 14 | *:after { 15 | box-sizing: border-box; 16 | margin: 0; 17 | } 18 | -------------------------------------------------------------------------------- /assets/styles/common/_transitions.scss: -------------------------------------------------------------------------------- 1 | // fade transition 2 | .fade-enter-active, 3 | .fade-leave-active { 4 | transition: all 0.3s ease-in-out; 5 | transform: scale(1.5); 6 | } 7 | .fade-enter { 8 | opacity: 0; 9 | transform: scale(1); 10 | } 11 | .fade-leave-to { 12 | opacity: 0; 13 | transform: scale(1.5); 14 | } 15 | -------------------------------------------------------------------------------- /assets/styles/common/_variables.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/common/_variables.scss -------------------------------------------------------------------------------- /assets/styles/components/_buttons.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/components/_buttons.scss -------------------------------------------------------------------------------- /assets/styles/components/_codebox.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Codebox component 3 | */ 4 | 5 | .codebox { 6 | @apply flex my-1 py-2 px-4 text-2xl rounded bg-gray-200 text-dark; 7 | 8 | transition: all 0.5s ease; 9 | 10 | .regex-area { 11 | @apply w-5/6 flex content-center flex-wrap; 12 | } 13 | 14 | .regex-options { 15 | @apply w-1/6 flex flex-col content-center text-dark-muted; 16 | } 17 | 18 | .codebox-content { 19 | @apply w-full; 20 | 21 | &:focus { 22 | @apply outline-none; 23 | } 24 | 25 | b { 26 | @apply font-bold; 27 | } 28 | } 29 | } 30 | 31 | 32 | .codebox-error { 33 | @apply bg-red-200; 34 | } 35 | 36 | -------------------------------------------------------------------------------- /assets/styles/components/_forms.scss: -------------------------------------------------------------------------------- 1 | .textbox { 2 | @apply bg-gray-200 appearance-none border-2 border-gray-200 rounded w-full py-2 px-4 text-gray-700 leading-tight; 3 | 4 | &:focus { 5 | @apply outline-none bg-white border-gray-200; 6 | } 7 | } 8 | 9 | 10 | .textbox-gray { 11 | @apply bg-gray-300 appearance-none border-2 border-gray-200 rounded w-full py-2 px-4 text-gray-700 leading-tight; 12 | 13 | &:focus { 14 | @apply outline-none; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /assets/styles/components/_matchbox.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Matchbox component 3 | */ 4 | 5 | .matchbox-wrapper { 6 | .text__highlight { 7 | white-space: pre-line; 8 | margin: 2px; 9 | background: hsla(160, 100%, 73%, 0.3) !important; 10 | } 11 | #matchbox { 12 | @apply relative text-lg p-3 whitespace-pre z-10 w-full bg-transparent; 13 | z-index: 10 !important; 14 | white-space: pre-wrap; 15 | min-height: 50px; 16 | } 17 | #matchbox:focus { 18 | border: none; 19 | outline: none; 20 | } 21 | .backdrop { 22 | overflow: auto; 23 | } 24 | 25 | .highlights { 26 | @apply absolute top-0 left-0 w-full p-3 text-lg; 27 | white-space: pre-wrap; 28 | word-wrap: break-word; 29 | word-spacing: 0px; 30 | color: transparent; 31 | } 32 | 33 | mark { 34 | @apply rounded; 35 | background-color: #d4e9ab; 36 | color: transparent; 37 | } 38 | } 39 | 40 | #matchbox-container { 41 | @apply relative bg-blue-100 rounded mb-2 shadow-inner overflow-hidden; 42 | z-index: 0 !important; 43 | height: auto; 44 | } -------------------------------------------------------------------------------- /assets/styles/fonts/_source.scss: -------------------------------------------------------------------------------- 1 | /** 2 | Source Sans Font 3 | */ 4 | 5 | @font-face { 6 | font-family: "Source Sans"; 7 | font-weight: 200 900; 8 | font-style: normal; 9 | font-stretch: normal; 10 | src: url("./fonts/source-sans/WOFF2/VAR/SourceSansVariable-Roman.ttf.woff2") 11 | format("woff2"), 12 | url("./fonts/source-sans/WOFF/VAR/SourceSansVariable-Roman.ttf.woff") 13 | format("woff"), 14 | url("./fonts/source-sans/VAR/SourceSansVariable-Roman.ttf") 15 | format("truetype"); 16 | } 17 | 18 | @font-face { 19 | font-family: "Source Sans"; 20 | font-weight: 200 900; 21 | font-style: italic; 22 | font-stretch: normal; 23 | src: url("./fonts/source-sans/WOFF2/VAR/SourceSansVariable-Italic.ttf.woff2") 24 | format("woff2"), 25 | url("./fonts/source-sans/WOFF/VAR/SourceSansVariable-Italic.ttf.woff") 26 | format("woff"), 27 | url("./fonts/source-sans/VAR/SourceSansVariable-Italic.ttf") 28 | format("truetype"); 29 | } 30 | -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/VAR/SourceSansVariable-Italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/VAR/SourceSansVariable-Italic.otf -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/VAR/SourceSansVariable-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/VAR/SourceSansVariable-Italic.ttf -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/VAR/SourceSansVariable-Roman.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/VAR/SourceSansVariable-Roman.otf -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/VAR/SourceSansVariable-Roman.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/VAR/SourceSansVariable-Roman.ttf -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Black.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Black.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-BlackIt.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-BlackIt.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Bold.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Bold.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-BoldIt.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-BoldIt.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-ExtraLight.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-ExtraLight.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-ExtraLightIt.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-ExtraLightIt.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-It.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-It.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Light.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Light.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-LightIt.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-LightIt.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Regular.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Regular.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Semibold.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-Semibold.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-SemiboldIt.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/OTF/SourceSansPro-SemiboldIt.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Black.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Black.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-BlackIt.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-BlackIt.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Bold.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Bold.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-BoldIt.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-BoldIt.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-ExtraLight.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-ExtraLight.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-ExtraLightIt.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-ExtraLightIt.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-It.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-It.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Light.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Light.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-LightIt.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-LightIt.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Regular.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Regular.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Semibold.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-Semibold.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-SemiboldIt.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/TTF/SourceSansPro-SemiboldIt.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/VAR/SourceSansVariable-Italic.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/VAR/SourceSansVariable-Italic.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/VAR/SourceSansVariable-Italic.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/VAR/SourceSansVariable-Italic.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/VAR/SourceSansVariable-Roman.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/VAR/SourceSansVariable-Roman.otf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF/VAR/SourceSansVariable-Roman.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF/VAR/SourceSansVariable-Roman.ttf.woff -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Black.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Black.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-BlackIt.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-BlackIt.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Bold.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Bold.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-BoldIt.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-BoldIt.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-ExtraLight.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-ExtraLight.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-ExtraLightIt.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-ExtraLightIt.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-It.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-It.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Light.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Light.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-LightIt.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-LightIt.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Regular.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Regular.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Semibold.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-Semibold.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-SemiboldIt.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/OTF/SourceSansPro-SemiboldIt.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Black.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Black.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-BlackIt.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-BlackIt.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Bold.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Bold.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-BoldIt.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-BoldIt.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-ExtraLight.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-ExtraLight.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-ExtraLightIt.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-ExtraLightIt.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-It.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-It.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Light.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Light.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-LightIt.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-LightIt.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Regular.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Regular.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Semibold.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-Semibold.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-SemiboldIt.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/TTF/SourceSansPro-SemiboldIt.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/VAR/SourceSansVariable-Italic.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/VAR/SourceSansVariable-Italic.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/VAR/SourceSansVariable-Italic.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/VAR/SourceSansVariable-Italic.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/VAR/SourceSansVariable-Roman.otf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/VAR/SourceSansVariable-Roman.otf.woff2 -------------------------------------------------------------------------------- /assets/styles/fonts/source-sans/WOFF2/VAR/SourceSansVariable-Roman.ttf.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/geongeorge/i-hate-regex/a8e8aec729390ae14ff7d6a774e4b4899bf56821/assets/styles/fonts/source-sans/WOFF2/VAR/SourceSansVariable-Roman.ttf.woff2 -------------------------------------------------------------------------------- /assets/styles/layouts/_article.scss: -------------------------------------------------------------------------------- 1 | .article-layout { 2 | min-height: 90vh; 3 | } -------------------------------------------------------------------------------- /assets/styles/layouts/_expr.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Styles for expression pages 3 | */ 4 | 5 | .expr-header { 6 | h1 { 7 | @apply text-2xl; 8 | .keyword { 9 | @apply font-bold; 10 | } 11 | } 12 | 13 | h3 { 14 | @apply text-sm text-dark-muted; 15 | } 16 | } 17 | 18 | .codebox-wrapper { 19 | @apply mt-8; 20 | } 21 | -------------------------------------------------------------------------------- /assets/styles/layouts/_pages.scss: -------------------------------------------------------------------------------- 1 | .main-content { 2 | @apply text-dark; 3 | 4 | min-height: 100vh; 5 | 6 | transition: background-color 0.5s ease; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /assets/styles/layouts/_post.scss: -------------------------------------------------------------------------------- 1 | /** 2 | Post Layout: Sidebar layout 3 | */ 4 | 5 | .post-wrapper { 6 | @apply min-h-screen; 7 | } 8 | @screen lg { 9 | .post-wrapper { 10 | @apply flex; 11 | } 12 | } 13 | 14 | .static-sidebar-wrapper { 15 | @apply static h-full inset-0 flex-none w-full; 16 | } 17 | 18 | @screen lg { 19 | .static-sidebar-wrapper { 20 | @apply w-1/5; 21 | } 22 | } 23 | 24 | .main-sidebar { 25 | @apply fixed bg-gray-200 z-20 h-screen w-full; 26 | } 27 | 28 | @screen lg { 29 | .main-sidebar { 30 | @apply w-1/5; 31 | } 32 | } 33 | 34 | .sidebar-footer { 35 | @apply flex-1 w-4/5 static; 36 | } 37 | 38 | .post-content { 39 | @apply flex-1; 40 | } 41 | 42 | @screen lg { 43 | .post-content { 44 | @apply w-4/5 static; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /assets/styles/main.scss: -------------------------------------------------------------------------------- 1 | /** Import variables */ 2 | @import "common/variables"; 3 | 4 | /* Import Vue Transitions */ 5 | @import "common/transitions"; 6 | 7 | /** Import fonts */ 8 | @import "fonts/source"; 9 | 10 | /** Import theme styles */ 11 | @import "common/global"; 12 | @import "components/buttons"; 13 | @import "components/forms"; 14 | @import "components/matchbox"; 15 | 16 | /* Import layout styles */ 17 | @import "layouts/pages"; 18 | @import "layouts/expr"; 19 | @import "layouts/post"; 20 | @import "layouts/article"; 21 | 22 | /* Import components */ 23 | @import "components/buttons"; 24 | @import "components/codebox"; 25 | -------------------------------------------------------------------------------- /assets/styles/tailwind.config.js: -------------------------------------------------------------------------------- 1 | const { colors } = require("tailwindcss/defaultTheme"); 2 | 3 | module.exports = { 4 | theme: { 5 | fontFamily: { 6 | // compatible with @nuxtjs/color-mode 7 | darkSelector: ".dark-mode", 8 | sans: ["'Source Sans'", "-apple-system", "BlinkMacSystemFont"] 9 | }, 10 | extend: { 11 | colors: { 12 | primary: colors.red["600"], 13 | secondary: colors.green["600"], 14 | shade: { 15 | default: colors.gray["200"], 16 | lighter: colors.gray["100"] 17 | }, 18 | dark: { 19 | black: '#121212', 20 | default: '#222222', 21 | lighter: '#515151', 22 | muted: '#7e7e7e', 23 | shade: '#cfcfcf', 24 | shadelight: '#e1e1e1' 25 | }, 26 | light: { 27 | default: colors.gray["200"], 28 | muted: colors.gray["500"], 29 | black: colors.gray["700"] 30 | } 31 | } 32 | } 33 | }, 34 | variants: { 35 | backgroundColor: [ 36 | "dark", 37 | "dark-hover", 38 | "dark-group-hover", 39 | "dark-even", 40 | "dark-odd", 41 | "hover", 42 | ], 43 | textColor: ["group-hover", "hover", "dark", "dark-hover", "dark-active"], 44 | borderColor: ["dark", "dark-focus", "dark-focus-within"], 45 | opacity: ["group-hover", "hover"], 46 | border: ["hover"], 47 | width: ["responsive"] 48 | }, 49 | purge: ["./src/**/*.html", "./src/**/*.vue", "./src/**/*.jsx"], 50 | plugins: [require("tailwindcss-dark-mode")()] 51 | }; 52 | -------------------------------------------------------------------------------- /assets/styles/tailwind.scss: -------------------------------------------------------------------------------- 1 | @import "tailwindcss/base"; 2 | @import "tailwindcss/components"; 3 | @import "tailwindcss/utilities"; 4 | -------------------------------------------------------------------------------- /components/README.md: -------------------------------------------------------------------------------- 1 | # COMPONENTS 2 | 3 | **This directory is not required, you can delete it if you don't want to use it.** 4 | 5 | The components directory contains your Vue.js Components. 6 | 7 | _Nuxt.js doesn't supercharge these components._ 8 | -------------------------------------------------------------------------------- /components/layouts/base/footer.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 22 | 23 | 26 | -------------------------------------------------------------------------------- /components/layouts/base/navbar.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /components/layouts/base/post.vue: -------------------------------------------------------------------------------- 1 | 34 | 60 | 61 | -------------------------------------------------------------------------------- /components/layouts/expr.vue: -------------------------------------------------------------------------------- 1 | 62 | 63 | 107 | 122 | -------------------------------------------------------------------------------- /components/post-components/CheatTable.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 57 | 58 | 69 | -------------------------------------------------------------------------------- /components/post-components/CodeBox.vue: -------------------------------------------------------------------------------- 1 | 52 | 53 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /components/post-components/MatchBox.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 169 | 170 | 177 | -------------------------------------------------------------------------------- /components/post-components/MatchBoxBetter.vue: -------------------------------------------------------------------------------- 1 |