diff --git a/.eslintrc.js b/.eslintrc.js index 61ab14be01..30469021af 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,6 +5,8 @@ module.exports = { node: true, }, extends: [ + 'plugin:vue/recommended', + 'plugin:prettier-vue/recommended', '@nuxtjs/eslint-config-typescript', 'prettier', 'prettier/vue', diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml new file mode 100644 index 0000000000..6801060984 --- /dev/null +++ b/.github/workflows/nodejs.yml @@ -0,0 +1,27 @@ +# https://github.com/pixijs/pixi.js/blob/dev/.github/workflows/nodejs.yml +# https://github.com/actions/setup-node +name: Node.js CI + +on: + push: + branches: ['**'] + tags: ['**'] + release: + types: ['created'] + pull_request: + branches: ['**'] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [12.x] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: '12' + - run: yarn + - run: yarn lint + - run: yarn build diff --git a/.lintstagedrc.js b/.lintstagedrc.js index b58e845846..3eddf76e62 100644 --- a/.lintstagedrc.js +++ b/.lintstagedrc.js @@ -1,5 +1,5 @@ module.exports = { - '**/*.{js,ts,md,ts,json,vue}': [ + '**/*.{yml,yaml,js,ts,md,ts,json,vue}': [ 'use-cross-env prettier --ignore-path .prettierignore --ignore-unknown --write', ], '*.{scss,css,vue}': ['yarn run lint:style'], diff --git a/.prettierrc.js b/.prettierrc.js index 3d8bc6df9a..891b778178 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -16,6 +16,12 @@ const main = { proseWrap: 'always', }, }, + { + files: ['*.yaml', '*.yml'], + options: { + proseWrap: 'always', + }, + }, ], } diff --git a/.stylelintrc.js b/.stylelintrc.js new file mode 100644 index 0000000000..98229f62b3 --- /dev/null +++ b/.stylelintrc.js @@ -0,0 +1,8 @@ +/** + * https://stylelint.io/user-guide/configure + */ +const main = { + extends: 'stylelint-config-recommended', +} + +module.exports = main diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 2f4ec3786d..a3b7f00700 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,13 +5,15 @@ "dariofuzinato.vue-peek", "dbaeumer.vscode-eslint", "gamunu.vscode-yarn", - "humao.rest-client", "jasonnutter.search-node-modules", "kisstkondoros.vscode-codemetrics", "mrmlnc.vscode-attrs-sorter", "octref.vetur", "sdras.vue-vscode-snippets", "wix.vscode-import-cost", + "bradlc.vscode-tailwindcss", + "austenc.tailwind-docs", + "bourhaouta.tailwindshades", "bradlc.vscode-tailwindcss" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 2ccbe96b7e..5b6e2d2c8f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,6 +12,15 @@ "eslint.enable": true, "eslint.packageManager": "yarn", "eslint.run": "onType", + "files.associations": { + "*.css": "vue-postcss" + }, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + }, + "[vue-postcss]": { + "breadcrumbs.showVariables": true + }, "[vue]": { "editor.formatOnSave": false }, @@ -34,8 +43,5 @@ ".nuxt/**": true, "dist/**": true, "node_modules": true - }, - "editor.codeActionsOnSave": { - "source.fixAll.eslint": true } } diff --git a/assets/styles/global.css b/assets/styles/global.css new file mode 100644 index 0000000000..dbb71b0c8a --- /dev/null +++ b/assets/styles/global.css @@ -0,0 +1,5 @@ +body { + background-color: var(--bg); + color: var(--color-title); + transition: background-color 0.3s; +} diff --git a/assets/styles/main.css b/assets/styles/main.css index 93e55c5070..7306c38e77 100644 --- a/assets/styles/main.css +++ b/assets/styles/main.css @@ -2,79 +2,56 @@ @import 'tailwindcss/components'; @import 'tailwindcss/utilities'; -:root { - --color-sandwich-bg: #000; - --color-sandwich-text: #fff; - --color-container: #fff; - --color-backdrop: #e5e5e5; - --bg: var(--color-backdrop); - --color: #577f79; - --color-primary: #214761; - --color-secondary: #bb3f3f; - --color-tertiary: #cb7723; - --bg-secondary: #e5e5e5; - --border-color: #aaa; -} +/* purgecss start ignore */ +@import 'prism-themes/themes/prism-material-oceanic.css'; -.dark-mode { - --color-sandwich-bg: #000; - --color-sandwich-text: #fff; - --color-container: #577f79; - --color-backdrop: #214761; - --bg: var(--color-backdrop); - --color: #f4f7f3; - --color-primary: #577f79; - --color-secondary: #fdf9f3; - --bg-secondary: #214761; - --border-color: #061a17; -} +@import './vars.css'; +@import './global.css'; +@import './nuxt-content.css'; -body { - background-color: var(--bg); - color: var(--color); - transition: background-color 0.3s; +.zone__sandwich { + & .top { + @apply h-20; + } + & .middle { + @apply pt-20 pb-10; + } } -.zone__sandwich__top, -.zone__sandwich__bottom { - background-color: var(--color-sandwich-bg); - color: var(--color-sandwich-text); -} .zone__sandwich__meat { background-color: var(--color-container); } - -.document .title, -.app-side-bar__nav { - @apply italic font-serif; -} - -.taxonomy .taxonomy-label { - @apply sr-only; +.zone__sandwich__top { + background-color: var(--color-sandwich-bg); + color: var(--color-sandwich-text); + & .app-side-bar__nav { + @apply italic font-serif !important; + } } -.taxonomy .taxonomy-items li { - @apply inline-block text-gray-700 bg-gray-200 rounded-full px-3 py-1 mr-2 text-xs; +.zone__sandwich__bottom { + background-color: var(--color-sandwich-bg); + color: var(--color-sandwich-text); } -.document .title { - @apply text-xl; -} -.document .body { - @apply font-light; +.taxonomy { + & .taxonomy-label { + @apply sr-only; + } + & .taxonomy-items { + & li { + @apply inline-block bg-gray-200 rounded-full text-xs; + } + & li:hover { + @apply bg-gray-500; + } + } } -.document .body li { - @apply list-inside; - - color: inherit; -} -.document .body ul { - list-style-type: disc; -} -.document .body ol { - list-style-type: lower-roman; -} -.document .body li, -.document .body blockquote { - @apply pl-4; +.document { + & .title { + @apply italic font-serif text-2xl; + color: var(--color-title); + } } + +/* purgecss end ignore */ diff --git a/assets/styles/nuxt-content.css b/assets/styles/nuxt-content.css new file mode 100644 index 0000000000..dd5f6d7fe7 --- /dev/null +++ b/assets/styles/nuxt-content.css @@ -0,0 +1,97 @@ +/** + * copy-pasta of good starting point nuxt-content nested HTML + * Bookmark: + * - https://github.com/nuxt/content/blob/%40nuxt/content-theme-docs%400.6.0/packages/theme-docs/src/assets/css/main.css#L14-L88 + */ + +.nuxt-content { + @apply break-words font-light; + + & a { + @apply underline text-indigo-500; + } + & a:hover { + @apply text-indigo-800; + } + + & .nuxt-content-highlight { + @apply relative grid; + + /* Style filename span added by @nuxt/content */ + & > .filename { + @apply absolute right-0 top-0 text-gray-100 z-10 font-mono text-sm tracking-tight leading-none mr-4 mt-3; + } + + /* Add top padding to code blocks with filename */ + & > .filename + pre[class*='language-'] { + @apply pt-8 bg-gray-800 static; + } + + & pre { + @apply overflow-scroll break-all; + } + + /* Style copy button added in `pages/_.vue` */ + & > .copy { + @apply hidden absolute right-0 bottom-0 leading-none shadow-lg px-2 py-2 text-white bg-gray-800 text-sm uppercase rounded-md border border-white font-semibold mr-3 mb-3; + + &:hover { + @apply bg-gray-700; + } + + &:focus { + @apply outline-none bg-gray-600; + } + } + &:hover { + & > .copy { + @apply block; + } + } + } + + /** ***** **/ + + & h1, + & h2, + & h3, + & h4, + & h5, + & h6 { + @apply mt-5 mb-2 italic font-serif; + + color: var(--color-subtitle); + } + & h2, + & h1 { + color: var(--color-title); + } + & h2 { + @apply text-2xl; + } + & h3 { + @apply text-xl; + } + & h4, + & h5, + & h6 { + @apply text-lg; + } + & li { + @apply list-inside; + + color: inherit; + } + & ul { + list-style-type: disc; + } + & ol { + @apply italic; + + list-style-type: lower-roman; + } + & li, + & blockquote { + @apply pl-4; + } +} diff --git a/assets/styles/vars.css b/assets/styles/vars.css new file mode 100644 index 0000000000..f1d2b44ac0 --- /dev/null +++ b/assets/styles/vars.css @@ -0,0 +1,30 @@ +:root { + --color-sandwich-bg: #000; + --color-sandwich-text: #fff; + --color-container: #fff; + --color-backdrop: #e5e5e5; + --bg: var(--color-backdrop); + --color: #577f79; + --color-title: #262626; + --color-subtitle: #999; + --color-primary: #214761; + --color-secondary: #bb3f3f; + --color-tertiary: #cb7723; + --bg-secondary: #e5e5e5; + --border-color: #aaa; +} + +.dark-mode { + --color-sandwich-bg: #000; + --color-sandwich-text: #fff; + --color-container: #577f79; + --color-backdrop: #214761; + --bg: var(--color-backdrop); + --color: #f4f7f3; + --color-title: #262626; + --color-subtitle: #999; + --color-primary: #577f79; + --color-secondary: #fdf9f3; + --bg-secondary: #214761; + --border-color: #061a17; +} diff --git a/components/AppArticleTags.vue b/components/AppArticleTags.vue index 8ed78b9c4c..f71d490476 100644 --- a/components/AppArticleTags.vue +++ b/components/AppArticleTags.vue @@ -8,10 +8,8 @@ {{ labeler.label.textContent }} (...) diff --git a/components/AppBreadCrumb.vue b/components/AppBreadCrumb.vue index f506a01a04..437a875fc7 100644 --- a/components/AppBreadCrumb.vue +++ b/components/AppBreadCrumb.vue @@ -65,11 +65,16 @@ diff --git a/components/global/AppFooter.vue b/components/global/AppFooter.vue index fa4f338204..b341d46123 100644 --- a/components/global/AppFooter.vue +++ b/components/global/AppFooter.vue @@ -11,12 +11,14 @@
v{{ version }}
+
+ +
diff --git a/components/global/CodeBlock.vue b/components/global/CodeBlock.vue new file mode 100644 index 0000000000..63658a466a --- /dev/null +++ b/components/global/CodeBlock.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/components/global/CodeGroup.vue b/components/global/CodeGroup.vue new file mode 100644 index 0000000000..c40c7eb37b --- /dev/null +++ b/components/global/CodeGroup.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/components/global/GitHubPagesRedirect.vue b/components/global/GitHubPagesRedirect.vue index fd3005d2b7..38ac0ac297 100644 --- a/components/global/GitHubPagesRedirect.vue +++ b/components/global/GitHubPagesRedirect.vue @@ -19,7 +19,7 @@ baseurl: string } export default defineComponent({ - name: 'GitHubPagesRedirect', + name: 'GitHubPagesRedirect' /* git-hub-pages-redirect */, head: {}, props: { to: { diff --git a/content/blog/2005/12/detection-langue.md b/content/blog/2005/12/detection-langue.md index 9f78dcf3d6..63a5e032c1 100755 --- a/content/blog/2005/12/detection-langue.md +++ b/content/blog/2005/12/detection-langue.md @@ -3,6 +3,9 @@ locale: fr-CA published: true title: Detection de langue date: 2005-12-22 +oldArticle: + D’autant plus que j’ai écrit ça bien avant de réaliser comment c’est un appel + aux erreurs que de tout mettre dans le «global scope» categories: - Programmation tags: diff --git a/content/blog/2010/02/script-bash-pour-transferer-une-base-de-donnee-mysql-dun-serveur-a-lautre.md b/content/blog/2010/02/script-bash-pour-transferer-une-base-de-donnee-mysql-dun-serveur-a-lautre.md index 1457a9964f..0083ec02c0 100644 --- a/content/blog/2010/02/script-bash-pour-transferer-une-base-de-donnee-mysql-dun-serveur-a-lautre.md +++ b/content/blog/2010/02/script-bash-pour-transferer-une-base-de-donnee-mysql-dun-serveur-a-lautre.md @@ -39,9 +39,8 @@ Je me suis dit: _faisons-en un script_! Nous voulions... - Faciliter le travail car on savait qu'il faudrait souvent transférer, plus - d'une fois, chacune des bases de données; - Car nous devions faire fonctionner le site sur le nouveau serveur _avant_ de - transférer les DNS. + d'une fois, chacune des bases de données; Car nous devions faire fonctionner + le site sur le nouveau serveur _avant_ de transférer les DNS. - Entrer une commande _minimale_ et en conserver les configurations; - Que le _nouveau_ serveur réalise la tâche a lui-seul, sans prérequis sur le serveur distant; @@ -100,6 +99,8 @@ Nous voulions... J'ai crée une copie dans un [gist github pour partager le script][0]. + + ```bash #!/bin/bash @@ -361,4 +362,6 @@ case "$1" in esac ``` + + [0]: https://gist.github.com/renoirb/5770703 diff --git a/content/blog/2020/09/porting-all-my-content.md b/content/blog/2020/09/porting-all-my-content.md new file mode 100644 index 0000000000..c6c52acfb0 --- /dev/null +++ b/content/blog/2020/09/porting-all-my-content.md @@ -0,0 +1,40 @@ +--- +locale: en-CA +title: Porting all my content into a static-site +date: 2020-09-10 +tags: + - vuejs + - nuxt +--- + +[monorepo-related-alpha]: + https://github.com/renoirb/experiments-201908-rush-typescript-just-bili-monorepo + 'TypeScript monorepo using Rush.js, with a few packages, some depending on each other, and tests' +[monorepo-particles]: + https://gitlab.com/renoirb/renoirb-particles/ + 'Renoir’s particles' +[archivator]: http://www.archivator.site/ 'Archivator project' +[archivator-repo]: https://github.com/renoirb/archivator/tree/v3.x-dev +[archivator-npmjs]: https://www.npmjs.com/package/archivator + +It’s been more than ten years that I haven't touched my site and I want to +make-use of my skills working with Vue.js and modern Front End of the last years +back to my own profit. + +So this is going to be a complete port of all my previous content, talk slides, +experiments, posts, Twitter feed, examples, code bits all in a static site. + +It's still work in progress, at the moment `https://renoirb.github.io/site/` is +the live version of my site that'll replace `https://renoirb.com/` and +`https://renoirboulanger.com`. + +I should piggy-back using my own public packages such as my [Monorepo related +content][monorepo-related-alpha], [my "_Particles_" monorepo +project][monorepo-particles], along with archiving my thousands of web browser +tabs by leveraging my [Archivator][archivator] ([_archivator_ package on +NPM][archivator-npmjs]). + +This is just something I've jotted down quickly so that It explains what's this +for. + +Keep in touch! diff --git a/content/resume/jsonresume-renoirb.yaml b/content/resume/jsonresume-renoirb.yaml index 2e3a71041f..d25765b0a4 100644 --- a/content/resume/jsonresume-renoirb.yaml +++ b/content/resume/jsonresume-renoirb.yaml @@ -192,6 +192,12 @@ work: hidden: false startDate: '2016-11-07' endDate: '2017-05-01' + summary: + Software development, Simplification of Docker Compose multi-container + build to be more automated and reliable build for each service and + internal service modules, also worked on deployment scripts leveraging GNU + Make, Ansible, and Front-End Development with Vue.js and Yii 3 and Symfony + 2 - name: &name 6973051 Canada Inc. client: &client Colloquial / Betastream diff --git a/layouts/default.vue b/layouts/default.vue index 231ef5edcc..9a7215bdb9 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -36,7 +36,7 @@ head() { // https://vue-meta.nuxtjs.org/api/#htmlattrs const htmlAttrs = { - class: ['layout--default'], + class: ['layout--default', 'zone__sandwich'], } const out = { @@ -46,12 +46,3 @@ }, }) - - diff --git a/layouts/homepage.vue b/layouts/homepage.vue index c011c0a1ef..337c1f0ba5 100644 --- a/layouts/homepage.vue +++ b/layouts/homepage.vue @@ -1,23 +1,26 @@