Releases: MarkBind/markbind
v5.5.2
markbind-cli
User Facing Changes
Fixes
- Specify CACHE_DIR when deploying with GH actions by @EltonGohJH in #2542
Solves the error that is sometimes seen: "uncaughtException: The "path" argument must be of type string."
Documentation
- Update links to point to working site by @kaixin-hc in #2544
- Quick project writeup by @kaixin-hc in #2545
Full Changelog: v5.5.1...v5.5.2
v5.5.1
markbind-cli
Fixes (dependencies)
- Move buggy bootstrap-icons dependency to core/package.json by @kaixin-hc in #2539
- Bump fontawesome to remove console error by @kaixin-hc in #2540
Full Changelog: v5.5.0...v5.5.1
v5.5.0
markbind-cli
User Facing Changes
Breaking Changes
The main.css file is updated in #2500, so to implement this fix that prevents the appearance and disappearance of the scrollbar causing the icon in the nav bar to shift you will have to manually update the CSS file.
Features
- Add dataTable plugin in by @Tim-Siu in #2446
- Support Mermaid by @Tim-Siu in #2475
- Support Bootstrap icons by @yiwen101 in #2494
Added MarkBind templates for when users are starting their webpage
- MarkBind templates: add a project-specific template by @KevinEyo1 #2400
- Add portfolio template for init command by @jingting1412 in #2398
Enhancements
- Add once attribute to custom lists so attributes only apply to current item by @KevinEyo1 in #2454
- Support text-icons of lists by @yiwen101 in #2520
- Enable seamless panels to inherit any parent's colours by @jingting1412 in #2501
- Move scripts to bottom in page.njk (#2522) - performance improvement
Add warnings for authors to spot problematic areas in their website
- Implement efficient validation for hash intra-link by @yiwen101 in #2465
- Add warning for including empty segments or files in optional mode by @Tim-Siu in #2506
- Rule based html validation against hydration by @yiwen101 in #2493
Fixes
- Fix stray space before popover and tooltip by @yiwen101 in #2486 with investigation by @kaixin-hc
- Allocate space for scrollbar in nav components by @yucheng11122017 in #2500
- Fix off-positioned close button in imported modal by @yiwen101 in #2487 with help from @tlylt
Documentation
- Add references between image and pic in UG by @KevinEyo1 in #2514
- Remove Overridden Question Attributes in Docs by @luminousleek in #2513
- Add docs for attributes overridden by slots by @luminousleek in #2526
- Include link to the migrated AB3 website on our showcase by @tlylt in #2517
- Add note on absolute links by @jingting1412 in #2507
- Add getting started warning for python 3.12 with Node LTS by @kaixin-hc in #2536
- Chore (docs): Fix grammar + clarify sentence by @kaixin-hc in #2535 in list docs
- Chore: Document bootstrap classes with t-class in lists by @kaixin-hc in #2534
Developer Guide Only
- Update documentation for recommended IDE by @kaixin-hc in #2505
- Add documentation regarding security practices for github actions by @KevinEyo1 in #2528
- Remove milestones from our project workflow docs by @kaixin-hc in #2537
Developer Facing Changes
Code Quality
Complete Typescript Migration
- Migrate Site.test to Typescript by @yiwen101 in #2481
- Migrate core/index.js to Typescript by @yiwen101 in #2482
- Migrate Markdown_it_icons.test to TypeScript by @yiwen101 in #2480
Improve Tests
- Standardise NodeProcessor.data.ts constant names by @luminousleek in #2483
- Implement processSlotAttribute method by @luminousleek in #2511
- Add tests for logger output when overriding attributes by @luminousleek in #2525
- Ignore plantuml images for test sites @yucheng1112201 in #2502
Misc
- Using DangerJS to check changes coupling of implementation files to test or documentation files by @KevinEyo1 in #2523- POC, limited checking at present
- Chore: Remove generated PUML image and exclude it from .gitignore by @kaixin-hc in #2497
DevOps Changes
- Utilize GitHub Actions to check for SEMVER impact label by @KevinEyo1 in #2470
- Add a reminder when contributor is new to ping all contributor bot by @KevinEyo1 in #2484
- GitHub Actions: improve security by @KevinEyo1 in #2510
- Add back GITHUB_TOKEN to deploy-docs job by @KevinEyo1 in #2521
Dependencies
- Bump gh-pages from 2.2.0 to 5.0.0 by @dependabot in #2532 - due to security concerns
Miscellaneous
Full Changelog: v5.4.0...v5.5.0
v5.4.0
markbind-cli
User Facing Changes
Features
- Re-introduce lazy loading #2367 by @LamJiuFong in #2450
Enhancements
- Add line-numbers when wrapping is needed for printing by @Tim-Siu in #2431
- Add horizontal spacing between the icon and text in the custom icon list #2352 by @Ashleeey1224 in #2375
- Add text for icon by @yucheng11122017 in #2444
Fixes
- Fix external styles and script not hoisted by @yiwen101 in #2414
- Disable pop over in a-point if there is no header and content passed by user by @yucheng11122017 in #2436
- Use intended test input for NodeProcessor test by @luminousleek in #2462
- Debug cannot import footnote from hash by @yiwen101 in #2441
- 2416 fix gitignore not generated bug by @LamJiuFong in #2469
- Optimize code printing by @yucheng11122017 in #2445
Documentation
- Combining syntax cheat sheet and full syntax reference pages by @jingting1412 in #2426
- UG > PagNav: Misleading sentence by @KevinEyo1 in #2440
- Add pageNav to Reader-Facing Features by @jingting1412 in #2443
- Add keeping fork up to date section in DG by @itsyme in #2453
- Modify release documentation to add detailed instructions on permissions by @yucheng11122017 in #2455
Developer Facing Changes
Code Quality
- Layout ts by @kaixin-hc in #2461
- Test logger calls in tests for NodeProcessor by @luminousleek in #2463
Dependencies
- Migrate stylelint to latest version #2292 by @LamJiuFong in #2425
- Upgrade simple-git version by @KevinEyo1 in #2439
Miscellaneous
- add LamJiuFong as a contributor for code by @allcontributors in #2433
- add yiwen101 as a contributor for doc by @allcontributors in #2435
- add yiwen101 as a contributor for code by @allcontributors in #2437
- add Ashleeey1224 as a contributor for code by @allcontributors in #2456
Full Changelog: v5.3.0...v5.4.0
v5.3.0
markbind-cli
User Facing Changes
Features
- Allow
markbind serve
to specify custom host #2382 by @LamJiuFong in #2395
Enhancements
- Annotate support different labels by @yucheng11122017 in #2388
- Use a more noticeable color for highlight words in fenced code (#2051) by @Tim-Siu in #2394
- Enhance search performance of algolia plugin by @KevinEyo1 in #2406
- Annotation content slot by @yucheng11122017 in #2427
Documentation
- Correct broken UG external link (#2391) by @Tim-Siu in #2392
- Update user doc on markdown syntax for presentation component by @yiwen101 in #2415
Developer Facing Changes
Code Quality
- Chore: Remove unused CSS for seamless panel styling by @kaixin-hc in #2407
- Simplify fix for abrupt panel transition by @luminousleek in #2421
DevOps Changes
- Utilize GitHub Actions to aid checking of commit message by @KevinEyo1 in #2429
Dependencies
Miscellaneous
- add jingting1412 as a contributor for code by @allcontributors in #2390
- add Tim-Siu as a contributor for code by @allcontributors in #2393
- add KevinEyo1 as a contributor for code by @allcontributors in #2422
- add luminousleek as a contributor for code by @allcontributors in #2428
Full Changelog: v5.2.0...v5.3.0
v5.2.0
markbind-cli
User Facing Changes
Features
Enhancements
Fixes
Documentation
- Fix typo in scroll to top feature by @tlylt in #2374
- Update emoji and emoticon shortcuts in UG by @tlylt in #2379
Developer Facing Changes
Code Quality
DevOps Changes
- Remove build:ug step from CI workflow and dev docs by @tlylt in #2377
- Add CI check for documentation deploy errors by @tlylt in #2378
Miscellaneous
- Update onboarding bootcamp content wrt .gitignore by @tlylt in #2380
- add zlimez as a contributor for code by @allcontributors in #2381
Full Changelog: v5.1.0...v5.2.0
v5.1.0
markbind-cli
User Facing Changes
Important Note
The eager
loading option for <pic>
and <annotate>
has been removed in this release due to the fixes below.
- Pictures/annotations will now be loaded eagerly by default, as lazy loading them causes an undesirable bug in our scrolling feature
- You can remove the
eager
option if you have specified it in your MarkBind site. Leaving it there will not result in warning/error. - We do plan to support lazy loading in the future, once we can implement it without interfering with scrolling.
Fixes
Documentation
Developer Facing Changes
Code Quality
- Reimplement modal scrolling using Bootstrap's .modal-dialog-scrollable by @jmestxr in #2363
- Implement Site.Prototype methods in ES6 syntax #2280 by @jmestxr in #2356
DevOps Changes
Full Changelog: v5.0.2...v5.1.0
v5.0.2
markbind-cli
User Facing Changes
Enhancements
- Add Icon and Media Support to List - Resolves #906 and #2272 by @SPWwj in #2316
- Make missing variable detection warning more useful by @tlylt in #2339
- Add animation when closing panel with bottom switch by @yucheng11122017 in #2340
Fixes
- Fix bs-modal css variables #2353 by @jmestxr in #2354
- Invoke plantuml jar from the respective working directory by @tlylt in #2344
- Fix
puml
not syncing Resolve #1617 by @SPWwj in #2345
Developer Facing Changes
Code Quality
DevOps Changes
- Setup Codecov by @lesterong in #2348
Miscellaneous
- add jmestxr as a contributor for code, and doc by @allcontributors in #2360
Full Changelog: v5.0.1...v5.0.2
v5.0.1
v5.0.0
markbind-cli
User Facing Changes
Breaking Changes
1. Change scroll top button to component by @yucheng11122017 in #2170
Scroll to Top button is changed to a component to allow for more flexibility in its usage. This includes allowing users to
- Not use it if they want
- Change the icon
- Change the icon size and color
- Change the position
It is no longer automatically added to pages on the website. To add the Scroll to Top Button to a website, add the component to the layout page
In layout page
... <scroll-top-button /> ...
This button is still added to the default layout when users initialise a MarkBind project.
Example insertion:
<div id="flex-body">
<div id="content-wrapper">
{{ content }}
</div>
<scroll-top-button></scroll-top-button>
</div>
2. Update deploy
command to build site before deployment by @lhw-1 in #2218
The markbind deploy
command now builds and generates the site by default, and this automatic build step can be skipped using the newly introduced --no-build
flag. This change is to accommodate the common use case consisting of the following steps:
markbind build
markbind deploy
The markbind build
step can now be omitted.
It should be noted that if you have been generating your site with specified values for baseUrl
or path to siteConfig.json
, you should add the --no-build
flag to the markbind deploy
command to avoid re-building the site with default values.
If this was being done previously:
markbind build --site-config ./otherSiteConfig.json --baseUrl myDir markbind deploy
It should now be changed to:
markbind build --site-config ./otherSiteConfig.json --baseUrl myDir markbind deploy --no-build
3. Deprecate slots, attributes and syntax by @itsyme in #2208
Currently, there are quite a few attributes/slots/syntaxes that are deprecated. They may or may not be listed in the docs, implemented in the codebase, or log a warning when used. We now completely remove them.
Overview:
Component | Deprecated | In docs | In code | CLI warning? |
---|---|---|---|---|
Modals | modal-footer -> footer |
yes | yes | yes |
Modals | modal-header -> header |
no | yes | yes |
Question | has-input -> type="text" |
yes | yes | no |
Question | invalid question types[1] | no | yes | no |
Icons | {{ prefix_name }} -> :prefix_name: |
yes | no | no |
[1] This seems a bit more complex compared to the others - it looks like there is some backwards compatibility intentionally preserved (#1274, #1293)
To migrate:
Modal:
modal-header
->header
modal-header
attribute has been fully deprecated- To migrate, replace the
modal-header
attribute with justheader
with the text in the attribute unchanged - e.g.
<modal modal-header="HEADER TEXT">
to<modal header="HEADER TEXT">
modal-footer
->footer
modal-footer
attribute has been fully deprecated- To migrate, replace the
modal-footer
attribute with justfooter
with the text in the attribute unchanged - e.g.
<modal modal-footer="FOOTER TEXT">
to<modal footer="FOOTER TEXT">
Question:
has-input
->type="text"
has-input
attribute has been fully deprecated- To migrate, replace the
has-input
attribute withtype="text"
- e.g.
<question has-input>
to<question type="text">
- Invalid question types (invalid
type
attribute) now not supported- To migrate, give the question a valid type:
mcq
,checkbox
,blanks
,text
- To migrate, give the question a valid type:
Icons:
{{ }}
->: :
- To migrate, replace all
{{
and}}
to:
- e.g.
{{emoji-name}}
to:emoji-name:
- To migrate, replace all
4. Deprecate theme attribute in site config JSON by @itsyme in #2235
Fully deprecates theme
attribute in site config JSON.
theme
attribute in site config JSON has been fully deprecated.
To migrate:
Use "style": {"bootstrapTheme": "..."}
instead of "theme": "..."
.
For example,
Original (in site.json):
{
"theme": "bootswatch-cerulean"
}
Updated (in site.json):
{
"style": {
"bootstrapTheme": "bootswatch-cerulean"
}
}
5. Upgrade to use node 16 by @yucheng11122017 in #2233
Node.js version 14 is no longer supported by Markbind as it is due to reach it's end of life in 30 April 2023. The minimum required version of Node.js is now 16. Users are to upgrade to at least version 16 of Node.js.
6. Upgrade PlantUML version to 1.2023.10 by @lesterong in #2311
The PlantUML plugin has been updated from 1.2020.7 to 1.2023.10.
Changes
(For detailed changes, please view them on plantuml website)
- The default theme has been updated in this version of PlantUML. To use the old theme, use the
skin rose
directive.
- There is a slight shift in the layout with the new default theme, and the position of annotations on PlantUML diagrams may have to be updated.
- PlantUML now separates namespaces by default. This behavior can be disabled using the
set separator none
command.
- PlantUML no longer allows for two elements with the same name. A possible workaround is to provide an alias to one of the elements, so their names do not conflict.
'alias as c provided
rectangle checkout as c {
(checkout) .> (payment) : include
}
- PlantUML does not render underlines in class diagrams using the Creole syntax. A possible workaround is to use the HTML syntax to define underlines. For example,
<u>Class Name</u>
will render an underline, but not__Class Name__
.
- The font used in Gantt Charts has been updated. As a result, some of the text may appear outside of the bars.
7. Clean up docs & tests for variables by @tlylt in #2301
A newly generated site (e.g. via markbind init
) will no longer contain the following erroneous line in _markbind/variables.md
:
<variable from="variables.json" />
This way of importing variables from an external file within the global variables.md is not supported.
For existing sites migrating to the latest version, please check that you do not have the above line in your _markbind/variables.md
file as it will not work as expected and will log a warning. Please remove such a line if found.
8. Replace jQuery with vanilla JS by @yucheng11122017 in #2130
jQuery is no longer supported in Markbind. This is because jQuery is no longer as relevant since it can be replaced with modern DOM APIs.
If jQuery is used in your website, either
- import jQuery
- refactor jQuery usage in favour for modern DOM APIs. This website is useful when refactoring jQuery usages.
9. Generate .gitignore on init command by @lhw-1 in #2248
A .gitignore
file is now added by the markbind init
command by default.
Default rules for the
.gitignore
file:# Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* _markbind/logs/ # Dependency directories node_modules/ # Production _site/ # Env .env .env.local # IDE configs .vscode/ .idea/* *.iml
This file is only generated when initializing a new MarkBind site from scratch, and not when converting a set of pre-existing documents into a MarkBind site using markbind init --convert
. As such, this does not require any additional actions from the user.
10.Upgrade fontawesome version to latest (v6) from v5 Resolves #2242 by @SPWwj in #2326
We upgraded from fontawesome-free@5.15.4 to fontawesome-free@6.4.0.
The current icons will be preserved (i.e. you don't have to make any changes if you don't want to) due to Font Awesome's backward compatibility.
With Version 6
- new icons are available
- some icons have been renamed
- syntax/usage has changed slightly
For details please refer to Font Awesome's changelog
Features
- Contact form plugin by @yucheng11122017 in #2191
- Add autogenerated bread...