Releases: MoOx/phenomic
0.17.8
0.17.7
- Fixed:
offline.appcache
option was supporting a bunch of options that
were completely ignored.
We removed this useless options.
This might looks like a breaking change, but we prefer to warn you that you
are using things that don't do anything.
(@MoOx) - Fixed:
offline
option has been fixed to provide a network first approach
like documentation is saying.
(It was "cache first" since 0.15.0). If that's the behavior you want to keep,
please open an issue so we can discuss about that. We think cache-first does
not provide a good UX when it comes to update the content.
(@MoOx) - Fixed: direct access to url (from the address bar) containing a dot in
development
(@MoOx) - Added: new
force-offline
option, to force offline mode during
development
(@MoOx)
0.17.6
0.17.5
- Fixed:
PhenomicLoaderFeedWebpackPlugin
was filtering an altered collection
which can lead to empty RSS feeds.
(@MoOx) - Added: an error is thrown is you still have an option in your phenomic loader
config for the RSS feed.
We didn't mention this change in 0.17.0, sorry about that.
Don't worry, migration is really easy, you just have to move a piece of code.
See this commit for a feed migration example
(@MoOx)
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
🎉 This release make us closer to 1.0.
Noticeable changes are:
- 🚀 New experimental
"cache"
option to boost performance.
Development startup time drastically reduced
(from 15s to 2s on average for the default theme).
To try this feature, just add"cache": true
in your phenomic config
(inpackage.json
). - 🍭 Added support for
webpack@2
(we still support webpack 1).
See details below for more explanations &
webpack 2 migration notes.
New base theme already have commented instructions for future migrations 😘. - 🔥
react-hot-loader@3
is used (still in beta, but already battle tested).
You can now enjoy hot loading on React stateless components!
By the way, we changed the default theme to use stateless components. - ✨ New projects are setup with a new, more clear file tree,
see below for details. - 📖 Documentation has been improved a little
("Getting Started" now have more answers to commons questions like
"how to add Sass?"). - 👀 We improved CLI output to be more concise & make errors easier to spot
❓ To know what is coming next, check out our public ROADMAP.
And do not hesitate to give feedbacks, it's important for the community ❤️.
What's exactly in 0.17.0?
Breaking changes
-
Removed:
phenomicLoaderPlugins
&phenomicLoaderPresets
from "phenomic"
To avoid shipping unnecessary code into the client bundle (regression
from 0.16.0), we removed plugins & presets from “phenomic” import.
Please directly userequire(“phenomic/lib/loader-*
, by replacing
camelCase by dashedCase.phenomicLoaderPlugins.initBodyPropertyFromContent
->
require("phenomic/lib/loader-plugin-init-body-property-from-content").default
phenomicLoaderPlugins.initHeadPropertyFromConfig
->
require("phenomic/lib/loader-plugin-init-head-property-from-config").default
phenomicLoaderPlugins.initHeadPropertyFromContent
->
require("phenomic/lib/loader-plugin-init-head-property-from-content").default
phenomicLoaderPlugins.initRawPropertyFromContent
->
require("phenomic/lib/loader-plugin-init-raw-property-from-content").default
phenomicLoaderPlugins.initRawBodyPropertyFromContent
->
require("phenomic/lib/loader-plugin-init-rawBody-property-from-content").default
phenomicLoaderPlugins.markdownInitHeadDescriptionPropertyFromContent
->
require("phenomic/lib/loader-plugin-markdown-init-head.description-property-from-content").default
phenomicLoaderPlugins.markdownTransformBodyPropertyToHtml
->
require("phenomic/lib/loader-plugin-markdown-transform-body-property-to-html").default
phenomicLoaderPresets.default
->require("phenomic/lib/loader-preset-default").default
phenomicLoaderPresets.markdown
->require("phenomic/lib/loader-preset-markdown").default
-
Removed:
PageContainer
does not wrap its child into a<div>
(#691 - @MoOx,
based on @DavidWells idea) -
Removed: Service Worker is disabled during development (like AppCache)
(#689 /
755a3c2 - @MoOx) -
Changed:
BodyContainer
now avoid wrapping content in a<div>
if a
single string is passed as a child.
(@MoOx) -
Changed: RSS feed must be generated using the new
PhenomicLoaderFeedWebpackPlugin
.
The loader does not handle RSS feed generation anymore.
See this commit for a feed migration example
(@MoOx)
Minor changes
- Changed:
phenomic/lib/PageContainer
has been relocated.
To prevent issue in the future, is now accessible by doing
import { PageContainer } from "phenomic"
.
If you want to import it with a different name, you can do it this way:
js import { PageContainer as PhenomicPageContainer } from "phenomic"
(#433 - @MoOx) - Changed: error messages for bad configuration are now more readable
(#672 - @MoOx) - Changed: improved CLI output for phenomic commands/dev server
( f382b20
/ 5255b03 - Added: 🚀 Cache option to improve performance by more than 300%
You can enable this experimental feature by adding
"cache": true
in yourpackage.json
phenomic
section.
If you encounter weird issues, try disablingbabel-loader
cacheDirectory
(and tell us about it!) - Added: Error message in the browser if app start fail at start during
development
(#679 - @MoOx) - Added: proper message if Node and npm version are not satisfying requirements
(#709 - @thangngoc89) - Added: [
remark-toc
][https://www.npmjs.com/package/remark-toc]
in default markdown transformation.
You can now use## Table of Contents
(or## toc
) to get a
generated table of contents.
(569d512 - @MoOx) - Added: cache
enhanceCollection
usage to boost performance for large
websites
(#762 - @thangngoc89) - Added:
webpack@2
support.
To upgrade, you work will basically be upgrading your webpack configuration
after upgrading webpack version to^2.1.0-beta.23
(and some plugins, see below).
See webpack 2 migration notes.
Basically you will have to:- Change for webpack
ExtractTextPlugin
(more explicit API) - Upgrade of the babel configuration since webpack natively understand
ES2015import
: add new sections in yourbabel.env
configuration.
webpack 2 understand nativelyimport
statements so it’s
unnecessary to
transform those (and it will allow webpack 2 enable tree shaking):
webpack-develompment
&webpack-production
. - webpack
DedupePlugin
must be disabled for now as it's not fully
compatible yet - Your
webpack.config
file can directly export a function
(instead of exporting amakeConfig
function)
as it's now natively supported by webpack 2. - All loaders options must be passed by loader
query
options or by using
webpack or via webpack.LoaderPlugin
(#421 - @MoOx)
- Change for webpack
Fixes
- Fixed: front matter
route
can use/
to define the homepage
(#721 - @thangngoc89)
What's new in 0.17.0 base theme?
-
Removed:
eslint
"fix" option has been removed fromeslint-loader
usage according to the feedback of the community.
(#752 - @ben-eb) -
Changed: new default tree structure.
We encourage you to update to a similar structure if you were using the previous one.
Main changes:web_modules/layouts
=>src/layouts
web_modules/{Components}
=>src/components/*
web_modules/app/*
=>src/*
web_modules/LayoutContainer
=>src/AppContainer.js
-
Changed: we replaced
babel-preset-react-hmre
byreact-hot-loader@3
You can now enjoy hot loading on React stateless components!
See how to do the same for you current project in this commit.
(#737 - @MoOx) -
Changed: all components without state are now real
stateless components
(#747 - @thangngoc89) -
Changed:
babel-preset-latest
is now used in place of
babel-preset-es2015
.
This preset cover all stable ES specifications that will land in future
versions (currently it covers some ES2017 features).
(#661 - @MoOx) -
Changed: update stylelint to ^7.2.0 & stylelint-config-standard to ^13.0.0
(7c3c843 - @ben-eb) -
Added: some default global CSS custom properties (variables) have been added
into the webpack configuration file
(#617 - @MoOx)