- Component Tree structure changed
{{}}
now prints empty string (earlier it used to print brackets)
Exports serve
function from main.
Now you can do-
const { serve } = require('abell');
serve({
port: 5000
});
and this will run the abell's dev server!
Link injection now handles cases like ./bundled-js/main.abell.js
, /bundled-js/main.abell.js
, bundled-js/main.abell.js
Bump abell-renderer. Bug fix - abelljs/abell-renderer#44
- Avoid adding style or script to parent page if the link already exists #114
- feat: ignoreInOutput
Adds
ignoreInOutput
configuration again (It was possible in earlier Abell versions)
You can pass an array of file/folder which should be ignored when generating output.
If there are files that output some other file. You can use this to ignore source files.
// abell.config.js
module.exports = {
ignoreInOutput: ['styles.scss']
};
-
fix: dev-server changes not reflecting in multiple devices If you connect to dev-server from multiple devices, your changes will now reflect in all of them without manual reload.
-
"Built Static Files" Added to Logs.
-
Upgrade abell-renderer. (Removes scopedSelector is declared bug)
- Add
Abell.programInfo
variable with information about paths and abell process. - Abell Renderer Updates
- Add
scopedSelector
in Abell Components! 🥳 - Add
__filename
,__dirname
variables. - Fix not printing falsy values issue
{{ 0 }}
,{{ false }}
- Support components inside Abell Blocks- This works now-
- Add
{{
true
? <SomeComponent />
: `<div>False</div>`
}}
- Update abell-renderer
- No user-facing changes.
- Internal Tests are refactored
- The paths in the output from
Abell.$root
andAbell.$path
will be forced to use forward slash/
in them instead of OS dependent separators.
- Serve website over Network (#92 by @judicaelandria)
- Add
--print-ip
flag to set if logs should have IP or not. defaulttrue
.
- Add space after emoji in
abell serve
(#91 by @siddharthkp)
- Fixed #88
Added support for multiple styles and scripts in a single component (PR #87)
This snippet will add content from second style tag to head of the index.html page, and add first style tag content to main.abell.css file.
<AbellComponent>
<template>
<div>Hello</div>
</template>
<style>
div { background-color: #333; }
</style>
<style inlined>
div { color: #fff; }
</style>
</AbellComponent>
- Add
--ignore-plugins
flag to ignore executing plugins. (Thanks to abhijit-hota for #80)
- Fix
afterBuild
plugins executing after dev-server
- Less loggy logs for
beforeHTMLWrite
- Fix dev-server exit on error
- Better error logs
- Updates abell-renderer to v0.3.0 (Scoped CSS Feature, AST based block validation) https://github.com/abelljs/abell-renderer/blob/main/CHANGELOG.md
- Executing plugin logs when there are no plugins removed.
- Readme Improved
- Plugins can now export
beforeHTMLWrite
function
- Abell now looks for other ports when 5000 is taken
- Tests for Dev Server 🎉
(Thanks to #64 by @pantharshit00)
- In abell.config.js,
sourcePath
changed tothemePath
destinationPath
changed tooutputPath
- Internally (and for plugins)
programInfo.abellConfigs
changed toprogramInfo.abellConfig
- In folder structure, [$path] changed to [path]
- All variables will now be inside
Abell
object.globalMeta
->Abell.globalMeta
$contentArray
->Abell.contentArray
$root
and$path
->Abell.$root
andAbell.$path
- A lot of things in programInfo variable of plugins changed
- Dropped support for automatic prefixing of paths (it was super buggy)
- Added
createContent
function for beforeBuild plugins that lets plugin developers create source plugin with ease. - Added support for HTML content in source plugins.
- Abell Components 🌻
- Abell Bundlerrrrr 🎉
Abell.$root
value fix for Windows- Stack trace in errors
- You can now
.map
to loop without.join
in the end. Arrays will be turned into strings by default. - Other minor bug fixes
Along with v0.4.0, we also released v0.2.0 of Abell Renderer. The changes are mentioned in abell-renderer
- Single port dev-server (#55)
- typedefs added to export for plugins
- Understandable message when markdown path does not exist (Thanks to @judicaelandria for #48)
- Contributing steps in README update (by @smaranjitghose in #50)
- Auto-linking removed. (The library used was too heavy (20kb). Need to find alternative)
- Markdown anchors fix to match dev.to's markdown syntax.
- Auto-linking of URLs added.
- Support for async plugins (with the help of @anuraghazra)
- Tests Refactor (Migration to Cheerio based tests)
- Run-time bug fix for windows (by @anuraghazra)
- Run bug fix when content is empty (by @Judionit)
- Complete refactor and added e2e tests
- We now support plugins 🎉 Example: https://github.com/saurabhdaware/abell-sitemap-plugin (Issue #15)
- Nested folders in
content
now maintain structure (Resolved Issue #19) - BREAKING CHANGE All assets should be inside
content/<slug>/assets/
folder (#22) - Keeping dev-server alive when not defined errors occur (Partially fixes #16)
- Keeping dev-server alive when new blog added/deleted (Fixed #23)
- Refresh cache in dev-server to avoid display of old data (#26)
- Crash on
content/index.md
change fix (Issue #21) - Removed
ignoreInDist
, will be auto-calculated depending on which files are required (Resolves #25) - Refactoring
- Ability to change socket ports with
abell serve --socket-port 3000 --port 5000
- BREAKING CHANGE
./theme/[$slug]/index.abell
changed to./theme/[$path]/index.abell
- Fix of nested .abell files in
theme
- Added
$root
to global variables in all.abell
files. - Multiple templates (Resolved #31)
- Way to overwrite
$createdAt
and$modifiedAt
values frommeta.json
in content. Resolved #14
- Warnings are displayed in yellow color
- abell-renderer updated to 0.1.10 Changelog of Abell Renderer
- BUG FIX
Caching of files required from
.abell
files during dev-server fixed. Now Auto-refresh will work on required files as well.
- Having
content
directory is no more necessary. Ability to build a static site which is not dependent on markdown content.
- Fix for dev-server not having right content-type of
.mjs
files.
- Having
[$slug]/index.abell
is no more necessary.
- Prefetch now recognizes the links that are preloaded in the next page.
- Forgot to add .vscode to npmignore in last update and my vscode configs went with the package 😭😭
- Added
as=<type>
to prefetched links during build-time
- Building all
.abell
files insidetheme
folder. (Thanks to @akash-joshi for PR #12) - BREAKING CHANGE
Dropping option of
templateExtension
fromabell.config.js
- Tiny Refactor og ignoring files flow.
- MAJOR UPDATE: Website Performance Improvements All links from content's template will be prefetched on the index page.
- Secretly supporting
ignoreInBuild
option in abell configs to remove files from destination (can be used to ignore files that are only required in build time)
- BREAKING CHANGE
Paths in
require
are now relative to the respective .abell files.
- BREAKING CHANGE
Default sourcePath changed from
src
totheme
- Documentation update
MAJOR UPDATE: Build Performance Improvements
browser-sync
removed from dependency- New faster dev server written from complete scratch.
- Migrated from
markdown-it
package toremarkable
- Build adds
id
to Markdown to HTML rendered content.
- BREAKING CHANGE
$contentList
changed to$contentArray
- Refactoring of how variables are handled internally
$contentObj
and$slug
variables added- BREAKING CHANGE
template/content.abell
changed to[$slug]/index.abell
- BREAKING CHANGE Syntax for importing content changed.
{{ import_content '{{meta.$slug}}/index.md' }}
⬇️
{
{
$importContent(meta.$slug + '/index.md');
}
}
- Update to abell-renderer v0.1.4
- BREAKING CHANGE
Default folder to read content template changed from
[content]/index.abell
totemplate/content.abell
. - Build time reduced. (Pre-calculating directories and contentList before execution)
- More accurate Build times.
- Error handling on Build Failures.
- Documentation design updates.
Migration to abell-renderer v0.1.0
...Detailed ChangeLog at abell-renderer v0.1.x Changelog
Added build time to logs
Directory listing fix for node v8 (#3 by @Pika1998)
- A little more stable API (still not final though)
- Migration from Mustache to Abell Renderer
- Ability to write JS in HTML inside
{{
,}}
tags
- Experimented stuff..