| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
The ToCWidget relies on Javascript to display the headings. If JS is
disabled in the browser, the widget is empty. For a better UX, we
should use dynamic imports. Now, the ToC is only displayed when JS is
enabled.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* make sure url are absolutes
* nest breadcrumb schema in webpage schema
* trim HTML tags from content/description
* use a regular script instead of next/script (with the latter the
schema is not updated on route change)
* place the script in document head
* add keywords, wordCount and readingTime keys in BlogPosting schema
* fix breadcrumbs in search page (without query)
* add tests (a `MatchInlineSnapshot` will be better but Prettier 3 is
not supported yet)
|
| |
|
|
|
|
|
| |
* use next/router to get the slug instead of using props
* handle cases where the current page title is not provided
* update JSON-LD schema to match the example in documentation
* add tests
|
| |
|
|
|
|
| |
* remove unnecessary dependency (useRouter)
* fix React errors (blurWidth/blurHeight)
* complete Cypress tests
|
| |
|
|
|
|
|
|
|
|
|
| |
* refactor ProjectOverview component to let consumers handle the value
* extract project overview depending on Github to avoid fetching
Github API if the project is not on Github
* wrap dynamic import in a useMemo hook to avoid infinite rerender
* fix table of contents by adding a useMutationObserver hook to refresh
headings tree (without it useHeadingsTree is not retriggered once the
dynamic import is done)
* add Cypress tests
|
| |
|
|
|
|
|
| |
Instead of repeating the overriding on each pages, we should define
it in one place and reuse it in pages.
By default it is not possible to override native HTML tags with MDX
so I added a plugin in next config to allow it.
|
| |
|
|
|
|
|
|
|
| |
* split pages in smaller components (it is both easier to maintain and
more readable, we avoid the use of fragments in pages directory)
* extract breadcrumbs from article tag (the navigation is not related
to the page contents)
* remove useReadingTime hook
* remove layout options except `isHome`
|
| |
|
|
|
|
| |
* replace `items` prop on MetaList with `children` prop: it was too
restrictive and the global options was not really useful. It is better
too give control to the consumers.
|
| |
|
|
|
|
|
| |
It does not make sense to re-export an existing object through a hook.
On some pages both the hook and the object was imported...
It is better to use the CONFIG (previously settings) object directly
and by doing it we avoid potential errors because of conditional hooks.
|
| |
|
|
|
|
| |
Instead of using helpers functions to format the date each time we need
to use a time element, it makes more sense to create a new component
dedicated to this task.
|
| |
|
|
|
|
| |
It removes items complexity by allowing consumers to use any label/value
association. Translations should also be defined by the consumer.
Each item can now be configured separately (borders, layout...).
|
| |
|
|
|
|
|
|
| |
The styles applied to ResponsiveImage are related to the figure and
figcaption elements. Those elements could be use with other contents
than images. So I extracted them in a Figure component. The
ResponsiveImage component is no longer useful: the consumer should use
the Image component from `next` and wrap it in a link if needed.
|
| |
|
|
|
|
|
|
| |
It makes it easier to change a route if needed and it avoid typo
mistakes.
I also refactored a bit the concerned files to be complient with the
new ESlint config. However, I should rewrite the pages to reduce
the number of statements.
|
| |
|
|
|
|
| |
Next expect a default export for pages so only those components should
use default exports. Everything else should use named exports to
reduce the number of import statements.
|
| |
|
|
|
| |
* MDX type has changed so some components props had to be updated
* Since Storybook now supports TS, I renamed the main/preview files
|
| |
|
|
|
|
| |
Using paths aliases starting with "@" can be confusing and can lead to
conflict with existings modules. I prefer to use relative paths to
avoid extra configuration in tools because of these aliases.
|
| | |
|
| | |
|
| |
|
|
|
| |
It prevents to rerender the common components between pages (header,
footer...).
|
| | |
|
| |
|
|
|
|
| |
The meta can have different layout. The previous implementation was not
enough to easily change the layout. Also, I prefer to restrict the meta
types and it prevents me to repeat myself for the labels.
|
| | |
|
| |
|
|
|
| |
Since I'm using new components, I will also rewrite the GraphQL queries
so it is easier to start from scratch.
|
| |
|
|
|
| |
I'm not able to configure SWC plugins in Next.js so to make it works,
all translation must have an id.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* build(deps): add use-ackee hook package
* chore: create a context provider for Ackee
The provider allows users to change the 'detailed' settings.
* chore: add a select menu to choose which info to share with Ackee
* chore: add a tooltip for askee settings
* chore: replace default select styles with custom styles
* chore: register user choice in localstorage
* chore: replace Matomo with Ackee in legal notice
|
| |
|
|
|
|
|
|
| |
* refactor: replace script tags with next/script
Since next.js v12.1.0 some warnings was displayed because I was using
some script tags.
* build(deps): bump next-themes to v0.1.1
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Squashed commit of the following:
commit 49c1b3b1556a0eb91c429a961fedd2bded8ffd47
Author: Armand Philippot <git@armandphilippot.com>
Date: Wed Feb 16 15:17:52 2022 +0100
chore: add headline field to blogPosting schema
commit 42214c6f032cc899ec252a9387be35dcad738546
Author: Armand Philippot <git@armandphilippot.com>
Date: Wed Feb 16 15:09:11 2022 +0100
chore: update the searchAction markup and add query-input
Google was complaining about "query-input" which is not in Schema.org
representation. So I added it.
commit 5f29226d937cbdcd262df2793f1588435d850f02
Author: Armand Philippot <git@armandphilippot.com>
Date: Wed Feb 16 14:32:14 2022 +0100
chore: remove breadcrumb from homepage
The breadcrumb is not displayed on the homepage, so the breadcrumb
field should not appear inside Schema markup.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
The previous method was not working so I tried a different approach.
Translation is loaded but I'm still getting warnings:
* Plurals for locale undefined aren't loaded
* Text content did not match
I can't figure how to fix them...
|
| | |
|
| |
|
|
|
| |
I will need the country code, so I think it makes more sense to gather
them inside the same property.
|
| |
|
|
| |
I also added the featured image on single article.
|
| |
|
|
|
|
|
|
|
| |
I'm now using a widget that can be expanded/collapsed. It also allows
me to handle more effectively widgets overflow and to avoid styles
repetitions.
However, with stylelint rule "no-descending-specificity", I'm not sure
if the stylesheets are really logical... Maybe I should deactivate this
rule.
|
| |
|
|
| |
This way I can use full width background for some blocks.
|
| | |
|
| |
|
|
|
| |
I cannot use WordPress shortcodes from a custom plugin through WP
GraphQL so I'm using mdx file instead to define the page content.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
I was repeating myself a lot in services. So I rewrited the different
functions to improve readability and I extracted some formatting
functions to put them in utils. I also rewrited/reorganized some types
to keep consistent names.
|
| |
|