diff --git a/.npmrc b/.npmrc index bf2e764..cf04042 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,2 @@ shamefully-hoist=true +strict-peer-dependencies=false diff --git a/__unconfig_iles.config.ts b/__unconfig_iles.config.ts new file mode 100644 index 0000000..74007d8 --- /dev/null +++ b/__unconfig_iles.config.ts @@ -0,0 +1,12 @@ + +let __unconfig_data; +let __unconfig_stub = function (data = {}) { __unconfig_data = data }; +__unconfig_stub.default = (data = {}) => { __unconfig_data = data }; +import { defineConfig } from "iles"; + +const __unconfig_default = defineConfig({ + siteUrl: "https://juliencalixte.eu", + modules: ["@islands/headings"], +}); + +if (typeof __unconfig_default === "function") __unconfig_default(...[{"command":"serve","mode":"development"}]);export default __unconfig_data; \ No newline at end of file diff --git a/components.d.ts b/components.d.ts index 6bd5a9a..37170b2 100644 --- a/components.d.ts +++ b/components.d.ts @@ -7,7 +7,7 @@ declare module 'vue' { AboutMe: typeof import('./src/components/presentation/AboutMe.vue')['default'] AppHeader: typeof import('./src/components/AppHeader.vue')['default'] BlogPosts: typeof import('./src/components/posts/BlogPosts.vue')['default'] - Island: typeof import('./node_modules/.pnpm/iles@0.7.38_sass@1.51.0/node_modules/iles/dist/client/app/components/Island.vue')['default'] + Island: typeof import('./node_modules/.pnpm/iles@0.7.40_sass@1.53.0/node_modules/iles/dist/client/app/components/Island.vue')['default'] JulienCalixte: typeof import('./src/components/core/JulienCalixte.vue')['default'] ProductionFlow: typeof import('./src/components/flow/ProductionFlow.vue')['default'] Welcome: typeof import('./src/components/Welcome.vue')['default'] diff --git a/package.json b/package.json index b512302..bd2aa69 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,14 @@ { - "name": "iles-app", - "version": "0.0.0", + "name": "jcalixte-blog", + "version": "1.0.0", "scripts": { "dev": "iles dev", "build": "iles build", "preview": "iles preview --port 5050", - "test": "iles test", "typecheck": "vue-tsc --noEmit" }, "engines": { - "node": "^14.18 || >= 16.0.0" + "node": ">= 16.0.0" }, "devDependencies": { "@islands/headings": "^0.8.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index afbd6b3..f4e275d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,7 +40,6 @@ packages: /@babel/helper-validator-identifier/7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} engines: {node: '>=6.9.0'} - dev: true /@babel/parser/7.17.3: resolution: {integrity: sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA==} @@ -48,7 +47,6 @@ packages: hasBin: true dependencies: '@babel/types': 7.17.0 - dev: true /@babel/types/7.17.0: resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} @@ -56,7 +54,6 @@ packages: dependencies: '@babel/helper-validator-identifier': 7.16.7 to-fast-properties: 2.0.0 - dev: true /@esbuild/linux-loong64/0.15.7: resolution: {integrity: sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw==} @@ -311,14 +308,12 @@ packages: '@vue/shared': 3.2.39 estree-walker: 2.0.2 source-map: 0.6.1 - dev: true /@vue/compiler-dom/3.2.39: resolution: {integrity: sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==} dependencies: '@vue/compiler-core': 3.2.39 '@vue/shared': 3.2.39 - dev: true /@vue/compiler-sfc/3.2.39: resolution: {integrity: sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==} @@ -333,14 +328,12 @@ packages: magic-string: 0.25.7 postcss: 8.4.13 source-map: 0.6.1 - dev: true /@vue/compiler-ssr/3.2.39: resolution: {integrity: sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==} dependencies: '@vue/compiler-dom': 3.2.39 '@vue/shared': 3.2.39 - dev: true /@vue/devtools-api/6.2.1: resolution: {integrity: sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==} @@ -353,7 +346,6 @@ packages: '@vue/shared': 3.2.39 estree-walker: 2.0.2 magic-string: 0.25.7 - dev: true /@vue/reactivity/3.2.38: resolution: {integrity: sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==} @@ -365,14 +357,12 @@ packages: resolution: {integrity: sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ==} dependencies: '@vue/shared': 3.2.39 - dev: true /@vue/runtime-core/3.2.39: resolution: {integrity: sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g==} dependencies: '@vue/reactivity': 3.2.39 '@vue/shared': 3.2.39 - dev: true /@vue/runtime-dom/3.2.39: resolution: {integrity: sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA==} @@ -380,7 +370,6 @@ packages: '@vue/runtime-core': 3.2.39 '@vue/shared': 3.2.39 csstype: 2.6.19 - dev: true /@vue/server-renderer/3.2.39_vue@3.2.39: resolution: {integrity: sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ==} @@ -390,7 +379,6 @@ packages: '@vue/compiler-ssr': 3.2.39 '@vue/shared': 3.2.39 vue: 3.2.39 - dev: true /@vue/shared/3.2.38: resolution: {integrity: sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==} @@ -398,7 +386,6 @@ packages: /@vue/shared/3.2.39: resolution: {integrity: sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==} - dev: true /@vueuse/head/0.7.5_vue@3.2.39: resolution: {integrity: sha512-L+XQ5Act0nT/ZyO8Qo10J4FyM1qPOyQb6MT4MMn6+AITzrStpmKs/nUDDLJKD/rCcNWl/65XbdQm4T2vKp3VOQ==} @@ -550,7 +537,6 @@ packages: /csstype/2.6.19: resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==} - dev: true /debug/4.3.3: resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} @@ -920,7 +906,6 @@ packages: /estree-walker/2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true /estree-walker/3.0.1: resolution: {integrity: sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g==} @@ -1454,7 +1439,6 @@ packages: resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} dependencies: sourcemap-codec: 1.4.8 - dev: true /magic-string/0.26.2: resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} @@ -1903,7 +1887,6 @@ packages: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -2013,7 +1996,6 @@ packages: /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2045,7 +2027,6 @@ packages: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /postcss/8.4.16: resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} @@ -2209,12 +2190,10 @@ packages: /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - dev: true /source-map/0.7.3: resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} @@ -2223,7 +2202,6 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: true /space-separated-tokens/2.0.1: resolution: {integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==} @@ -2298,7 +2276,6 @@ packages: /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - dev: true /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -2320,7 +2297,6 @@ packages: resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /unbox-primitive/1.0.1: resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} @@ -2602,7 +2578,6 @@ packages: '@vue/runtime-dom': 3.2.39 '@vue/server-renderer': 3.2.39_vue@3.2.39 '@vue/shared': 3.2.39 - dev: true /webpack-sources/3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} diff --git a/src/app.ts b/src/app.ts index e54b490..9031913 100644 --- a/src/app.ts +++ b/src/app.ts @@ -11,7 +11,7 @@ export default defineApp({ link: [ { rel: "stylesheet", - href: "https://fonts.googleapis.com/css2?family=Fenix&family=Meow+Script&display=swap", + href: "https://fonts.googleapis.com/css2?family=Gulzar&family=Meow+Script&display=swap", }, ], }; diff --git a/src/assets/base.scss b/src/assets/base.scss index 63a7cca..8dc49b3 100644 --- a/src/assets/base.scss +++ b/src/assets/base.scss @@ -66,7 +66,7 @@ body { background: var(--color-background); transition: color 0.5s, background-color 0.5s; line-height: 1.6; - font-family: "Fenix", BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, + font-family: "Gulzar", BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, serif; font-size: 22px; text-rendering: optimizeLegibility; @@ -88,7 +88,18 @@ h6 { color: var(--primary); } -.julien-calixte { - font-family: "Meow Script", "Lucida Sans", "Lucida Sans Regular", - "Lucida Grande", "Lucida Sans Unicode", Geneva, Verdana, sans-serif; +h1 { + font-size: 1.8em; } + +h2 { + font-size: 1.2em; +} + +.julien-calixte { + font-family: "Meow Script", "Lucida Sans", "Lucida Sans Regular", Geneva, Verdana, sans-serif; +} + +strong { + font-weight: bold; +} \ No newline at end of file diff --git a/src/pages/posts/feature-factory.mdx b/src/pages/posts/feature-factory.mdx new file mode 100644 index 0000000..2d68dfe --- /dev/null +++ b/src/pages/posts/feature-factory.mdx @@ -0,0 +1,39 @@ +--- +title: An introduction to feature factory +layout: post +--- + +# {title} + +From my experience, project failures mainly come by having mistrust between teams. Lead time due to team availability to solve dependencies increases. + +In this post, I would like to tell you what helped me, how we succeed to engage all the skills needed to develop a product. We will talk about agility, lean. + +## It always comes to **showing** + +## Showing where we are + +## Showing where are the problems + +## Showing what next the team has to do + +Talking is hard, comprehension between two people is hard. How many times a developper came back to the product owner to ask a few questions left in his ticket? How many times a designer was asked to update a design to see how the app will react in case of an edge case? + +Dear developers, how clear is it for you the way you build an app? + +You may answer "Easy! There are few steps:" + +1. Talking to the client +2. Getting the design +3. Coding +4. deploying to users + +But how exactly? What does "talking to the client" really mean? And "coding" ? + +In lean, one particular important concept is **Visual Management**: *doing by seeing*. For that, we want to be clear on how we work. + +May I ask you some questions? + +First, can you name your different step before having your app in production? + + diff --git a/src/pages/posts/production-flow.mdx b/src/pages/posts/production-flow.mdx deleted file mode 100644 index 1efdeea..0000000 --- a/src/pages/posts/production-flow.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: An introduction to production flow -layout: post ---- - -# {title} - -Dear developers, how clear is it for you the way you build an app? - -You may answer "Easy! There are few steps:" - -1. Talking to the client -2. Getting the design -3. Coding -4. deploying to users - -But how exactly? What does "talking to the client" really mean? And "coding" ? - -In lean, one particular important concept is **Visual Management**: *doing by seeing*. For that, we want to be clear on how we work. - -May I ask you some questions? - -First, can you name your different step before having your app in production? - - diff --git a/tests/example.spec.ts b/tests/example.spec.ts deleted file mode 100644 index 7a13604..0000000 --- a/tests/example.spec.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { test, describe, expect } from 'vitest' - -import Index from '../src/pages/index.mdx' - -describe('example test', () => { - test('stub default layout', () => { - expect(Index.title).toEqual('You did it!') - }) -})