fluid-project / eleventy-plugin-fluid Goto Github PK
View Code? Open in Web Editor NEWEleventy plugin which provides common filters, shortcodes and transforms for Fluid Project websites.
License: BSD 3-Clause "New" or "Revised" License
Eleventy plugin which provides common filters, shortcodes and transforms for Fluid Project websites.
License: BSD 3-Clause "New" or "Revised" License
Eleventy 1.0 is out. There are a few breaking changes.
We should assess this project and update it to use the new version.
Not applicable.
Not applicable.
Users should be able to fully disable i18n features.
An i18n
option key, defaulting to true
, could be set to false to prevent the eleventy-plugin-i18n-gettext
from being loaded. The built in Eleventy i18n plugin could be maintained with the default language but there would no longer be a requirement to include a _locales
directory in the project source.
Not applicable.
Not applicable.
It seems that now that we're using structuredClone
node 16 is no longer supported. If this isn't documented in the eleventy-fluid-plugin we should probably do that there. For here it would also probably help to add docs to the README about how to make use of this file .nvmrc
. To get the supported version of node for the project.
Originally posted by @jobara in fluid-project/floeproject.org#309 (comment)
Markdown doesn't support <figure>
and <figcaption>
tags, and we often need to use them in our guides and websites.
An Eleventy shortcode should be provided.
Not applicable.
See example implementation here: inclusive-design/guide.inclusivedesign.ca@62bcbf3
Notes on alt text vs <figcaption>
: https://thoughtbot.com/blog/alt-vs-figcaption
Separate Codecov upload into its own task in CI.
Right now, src/framework/preferences/html
and src/components/tableOfContents/html
are copied into /lib/infusion
, and they shouldn't be.
Current logic would always use title attribute as permalink, even when custom permalink attribute is specified, which caused the issue opened up for IDRC website. An approach would be to add additional check if data has permalink attribute set, and if so, use that to generate permalink.
I'd like to be able to turn on the typographer setting for markdown-it; however, there is no way to modify the configuration used by the file.r
Allow the filter to take in configuration to merge/override the default configuration supplied by the filter. Additionally, the default configuration should be documented.
Also 11ty 1.0 will come with a Render plugin that may make this shortcode unnecessary.
Right now it looks for .webc
component files in /_components
. Ideally the default should be /src/_components
and there should be an option for implementers to pass their own custom paths.
This plugin includes a peerDependency on Infusion 4.x. However, Infusion 4 has not had a stable release and has only published dev releases. NPM 7 and higher will automatically try to install peerDependencies; however, it throws the following error.
ERESOLVE overriding peer dependency
npm WARN While resolving: [email protected]
npm WARN Found: infusion@undefined
npm WARN node_modules/infusion
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer infusion@"4.x" from [email protected]
npm WARN node_modules/eleventy-plugin-fluid
npm WARN eleventy-plugin-fluid@"0.3.1" from the root project
npm ERR! code ETARGET
npm ERR! notarget No matching version found for [email protected].
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
see: npm/cli#2087
Steps to reproduce the behavior:
npm install eleventy-plugin-fluid
to install the packageThe package installs correctly.
The ability to add footnotes to Markdown content should be supported across our sites.
The extended syntax for footnotes should be supported via the markdown-it-footnote plugin.
Not applicable.
We added a custom slug
filter in this plugin because the built-in slug filter had some issues (it wasn't removing some special characters from slugified URLs). However, this issue has been addressed in Eleventy 1.0 with the addition of a new slugify
filter: https://v1-0-0.11ty.dev/docs/filters/slugify/
We should swap out our custom slug
filter for the new core slugify
filter. The easiest way to do this would be to make slug
an alias for slugify
, which would not necessitate any changes for sites using eleventy-plugin-fluid
.
Not applicable.
We include a default transform in many of our projects which minifies the generated HTML.
This transform should be included in the plugin.
Not applicable.
Not applicable.
In #164, #168, and #175, the new CSS, Sass, and JavaScript processors support source map generation. However, we need to determine the best way to write these to the filesystem.
To be determined.
We could remove source map support.
The deep-merge.js
utility causes a failure on Windows in GitHub Actions if the corresponding test file is called deep-merge.test.js
. We haven't figured out why.
Steps to reproduce the behavior:
test/utils.test.js
to test/deep-merge.test.js
.File names shouldn't cause this issue.
Not applicable.
Currently the formatDate
filter formats dates in English. It should support an optional locale parameter to allow internationalized date formats.
{{ "Sun Jun 21 2020 18:00:00 GMT-0300 (Atlantic Daylight Time)" | formatDate }}
Output: June 21st, 2020
{{ "Sun Jun 21 2020 18:00:00 GMT-0300 (Atlantic Daylight Time)" | formatDate("fr") }}
Output: 21 juin 2020
Not applicable.
Related to fluid-project/trivet#148.
The figure shortcode is configured to inject <br>
tags when it encounters a line break in the fig caption. The issue is that we may want to use line breaks to enforce readability of the raw Markdown file in source, but not want those included in the rendered HTML.
It appears this is due to configuration set on the Markdown-in markdown renderer.
see: Markdown-It options
The expectation is that the line breaks within paragraphs in Markdown files are ignored, not injecting <br>
tags.
CSS, Sass, and/or JS processing should be able to be easily disabled for projects which don't require them.
Options object should have appropriate keys for CSS, Sass, and JS which can be set to false
to disable the functionality.
Not applicable.
Not applicable.
UI Options requires some styling from framework/core/css/fluid.css
in order to apply certain UIO styles. For example, focus contrast styling requires fl-focus
which is a style found in fluid.css
.
Otherwise it is up to the integrator to understand this relationship and to manually include fluid.css
.
The Markdown filter seems to be causing console errors in projects. This is probably because it loads Eleventy's Markdown template engine in an unsupported way.
The filter should be deprecated, and instead the plugin should offer an enhanced Markdown configuration which can be used in dependant projects (along the lines of this: https://github.com/nhoizey/eleventy-plugin-pack11ty/blob/main/_11ty/markdown.js).
Not applicable.
The new multilingual UIO support added in fluid-project/trivet#148 should be moved here.
Ability for UIO initialization shortcode to accept a language code and direction (ltr
or rtl
) and initialize UIO in that language.
Not applicable.
UIO needs to fall back to the default locale if a requested locale is not available.
We include a default parse transform which enables native lazy-loading of images in the main content area.
This parse transform should be included in the plugin.
Not applicable.
Not applicable.
Right now the generatePermalink
utility tries to determine the content language:
However, this should be done in directory data files and passed to the helper in the data object so that the generatePermalink
utility works even when there is only one (default) language.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.