Fix FSharpFileParser to support Windows end of line
Update to React 18
Revert Fix #156: Don't generate a .gitignore
in the destination folder because some tools like
peaceiris/actions-gh-pages
use git to publish to GH Pages and this cause the tool to push no files..
Fix #156: Create a gitignore
file in the destination folder
Remove unused middleware
On redirection based on the BaseUrl
add a query params to the URL allowing us to detect already redirected URLs
This is important to support url of the form /Fable.Form/Fable.Form/introduction.html
where Fable.Form
is the BaseUrl
.
Prior to this fix, the url was being redirected twice and ended up to /introduction.html
instead of /Fable.Form/introduction.html
.
Fix #154: Clear the console when the live reload websocket is trying to reconnect
Better detect front-matter section in F# literate file to avoid capturing direct next block comment.
Fix #143: Make the F# literate front-matter less strict
Improve Windows support for afterClean
spawn process
Change the run
hook name to afterClean
. This was a relica coming from the development.
Add support for "Literate F#" files
Fix #139: Don't crash on invalid menu.json file
Fix #133: In watch mode, don't crash on invalid JS/JSX file
Run build
if no command is specified
Add a new option --afterClean
allowing the user to launch a command after Nacara clean the output folder.
Example usage:
If you are not using SCSS to generate your style but TailwindCSS you can hook it up here in the Nacara process.
Fix #134: Trigger live-reload
mechanism by watching the output folder.
Example usage:
This allows the user to generates their CSS files externally from Nacara
Detect the Node.JS version and use fs.rm
or fs.rmdir
depending on the version.
This avoid warning about fs.rmdir
being deprecated in the future.
Fix missing fable_modules
folder from dist
Provide the relativePath
to unified
.
This is required for remark-code-import
plugins to work.
Release v1.0.0
Check if a directory exist before executing Directory.rmdir
. Since Node.js v16 it generate an error if the directory doesn't exist
Fix detection of nacara.config.json
it was a relicat from a test
Support both nacara.config.json
and nacara.config.js
as the config file.
The main goal is to have access to comments makking it easier for people to use the template.
Force to display nacara
as the script name when displaying help
Fix dynamic load of module from absolute and relative path for Windows
Add support for the partial inside the dropdowns
Fix #120: Add support for watching layout files changes
Fix live reload for the index page it was never reloading
Fix #105: Re-add support for JS/JSX for both partials and layouts
Add a default command so if Nacara is run without a command, it build the website
Move the NPM package to be a pure ESM package
Fix #80: Fix pages cache update, depending on the pages order, it could erase the "found" boolean
Add clean
command
Fix #8: Add favIcon
property to nacara.config.json
Fix #70: Generate a .nojekyll file on production build
Fix #96: Add partials support
Fix #77: Add footer support
Fix #2: Restart Nacara when changes to nacara.config.json
are detected
Clean the output folder before build
and watch
Fix #22: Make navigation buttons display on top of each other when on mobile display
Fix #67: Nacara crash if a folder under the source folder is empty
Fix #69: Change the default source folder from docsrc
to docs
Fix #71: Change the default output folder from docs
to docs_deploy
Change --watch
argument to watch
command
Load @babel/register
if a babel.config.json
is found.
It is up to you to install @babel/register
and the required presets.
Start WebServer after setting up the websocket
Answer on websocket connection, because it was causing the websocket to be really slow to connect
Reword category to section to have it consistent everywhere.
You need to replace category
with section
in both menu.json
and nacara.config.json
Wait only 200ms
instead of 2s
before considering a file stable. This makes Nacara detect changes faster and improve responsivenes
Remove --verbose
option
Include the scripts
folder into the published package
Add $menu-list-spacing
SCSS variable
Make chokidar wait for stable file before notifying a change
Fix #53: Remove live-server dependency instead use express and a custom implementation
Fix #62: Rework menu alignment and margin to have a better display
Relax Nacara requirements on npm engine from 7.13.0
to 7.0.0
Publish .fable
folder
Publish .fable
folder
Publish .fable
folder
Add excludeFromNavigation
property to all the layout allowing to opt-out a page from the Next / Previous button generation
Recompute the known pages if the attributes of a page change.
This ensure that the information using the attributes like the menu or the next / previous buttons are up to date on all the page
Add copy button to code blocks
Add $textual-steps-color
color SCSS variable
Create a NuGet package Nacara.Core
which shares the type and some helpers between Nacara and the layouts project
Add section support, a section is defined by being a folder under the root folder
For example, this structure defined 2 sections.
docsrc
├── changelogs
│ ├── file.md
├── docs
│ ├── file.md
├── index.md
Add support for menu.json
which allows to configure the menu per section
Change config file back to nacara.config.json
Generate Next / Previous button on site compilation instead of using JavaScript at runtime
Move the TOC inside the menu and remove the need for [[toc]]
tag
Upgrade to Bulma 0.9.3
Make the layout as a standalone npm package nacara-layout-standard
Move the Changelog.fs
from Nacara
to the Layout
project and rename it ChangelogParser.fs
Upgrade to Fable 3
Change Model.DocFiles
to use JS.Map
instead of Map
because it seems like Fable 3 does something different and break the Map
usage from the layout project
Remove the material like button
Unknown files are now copied to the output folder making it easier to add static assets like images
Generate compressed CSS from SCSS/SASS files when in build mode
Rewrite the base-url-middleware to redirect on exact match and use temporary redirection to avoid caching from the browser
Rewrite the base-url-middleware to redirect on exact match and use temporary redirection to avoid caching from the browser
Changed version
in paket.dependencies
to 5.258.1
so that it matches the version in .config/dotnet-tools.json
. This fixes the issue which required having .NET DSK version '2.1.0
.
Use paket from CLI tool
Removed files fake.cmd
and fake.sh
because they are no longer needed.
Removed unused code from build.fsx
.
Remove fake and use a Makefile instead.
Remove plugins property from the config file. Now the layouts can extends their own version of markdown-it to meet their needs
Remove the menu
property from the config file
Right now Windows user needs to install make or use Gitpod. In the future, a make.bat
will be available but I don't have time to add it right now.
Changelog parser and layout now correctly understand items indeed under a list item
Before, this text would have been displayed as quoted or you would have had to un-indent to force Nacara to display it "correctly" in the browser.
Make the text in the textual steps use a normal font-weight
. It was making it hard to read the text when on a white background
Change the font-size to 16px
to improve readibility and accessibility
When Nacara encounter an unknown file in build mode skip it and trigger the next process.
It was stopping the whole generation causing problem is the user hosted some PNG files in the source folder for example.
Change the config file name from nacara.js
is now nacara.config.js
It seems like the new version of npm exec
and npx
execute/open nacara.js
when executing npx nacara
. Probably because the file as the same name as the package 🤷♂️
Make the pre
element horizontal scrollable. This avoid to have the whole page having an horizontal scroll when a code snippet is a bit large
Fix #21: Make sure that the user can't click on the material like button when they are hidden
User can now click on the navbar brand to go "index" page.
The "index" page is calculated as follow config.url + config.baseUrl
If no menu found on the page, hide the Next & Previous button
Secure access to .mobile-menu .menu-trigger
to avoid error in the console if no menu found
Fix menu scroll on touch display
Layout system has been added
User can add layouts
node to nacara.js
, it takes an object.
Example:
{
default: standard.Default,
changelog: standard.Changelog
}
Responsive mode is now implemented supported in the standard layout
Markdown plugins are now configurable via plugins.markdown
in nacara.js
It take an array of object, the properties are:
{
// Path to pass to `require` function can be:
// - a npm module
// - a file path (local plugin)
path: 'markdown-it-container',
// Optional array of arguments
args: [
'warning',
mdMessage("warning")
]
}
Example:
plugins: {
markdown: [
{
path: 'markdown-it-container',
args: [
'warning',
mdMessage("warning")
]
},
{
path: path.join(__dirname, './src/markdown-it-anchored.js')
}
]
}
Build mode has been added to Nacara it active by default. You can start in watch mode by adding --watch
or -w
to the CLI
Port server can be configured via serverPort
in nacara.js
Current section is now shown in the Table of Content
Previous and Next navigation button are added at the bottom of the page
Add a button to scroll to the top, this button is only displayed the page is scrolled
Add material like menu when displayed on touchscreen (mobile & tablet)
Make the anchors elements less visible
Add possibility to have an Edit button at the top of the page
Turn it on, by setting editUrl
in nacara.js
. The url should be the start of the url, the file path will be added when generating the page.
Example: https://github.com/MangelMaxime/Nacara/edit/master/docsrc
Change config file format, nacara.json
is now nacara.js
Improve the navbar responsive support
Transform the left menu into a breadcumb when on touchscreen
Items with only icons will stay at the top of the navbar, while items with text (and icon) are displayed under the burger menu.
If a grammar is not found it's possible that some of the snippet in a valid grammar failed
Fix generated URL for Windows
Make page id independant from the OS
Remove is-primary
class from the navbar.
Please use the variable $navbar-background-color
in order to customize it
Fix nacara.scss
, user needs to provide Bulma in is own style.scss
file
Add cli.js
so nacara can be used as a CLI tool
Make nacara
a "CLI" package
Initial release