wenzhixin/bootstrap-table
43.6
Weak · 2 October 2026
22.3k
lines of production code
JavaScript
primary language
2
measurements over time
What this system is
This system is a data table library for web applications that provides extensive features for displaying, sorting, filtering, and editing tabular data. It supports multiple CSS frameworks including Bootstrap, Bulma, and Foundation, and offers numerous extensions for functionality like column pinning, drag-and-drop reordering, inline editing, and hierarchical tree views. The library also includes tools for internationalization, virtual scrolling for large datasets, and integration with Vue.js, alongside a comprehensive documentation site built with Astro.
How it got here
2013–2015 — ES6 modernization and extension ecosystem
20 changes.
The project underwent a significant architectural shift by refactoring the core library and its extensions into ES6 modules, supported by modern build tooling and polyfill integration. This period also focused on expanding functionality through the introduction of numerous new extensions, including features for data export, inline editing, column reordering, and mobile responsiveness.
2016–2019 — Bootstrap 5 migration and framework expansion
20 changes.
This period focused on migrating the library to support Bootstrap 5, including refactoring utility modules to remove jQuery dependencies and adding native Vue and virtual-scroll components. It also significantly expanded the ecosystem by introducing multiple new extensions for data handling and UI, alongside theme support for major CSS frameworks like Bulma, Semantic UI, and Foundation.
2020–2025 — Astro site migration and modularization
21 changes.
The project migrated its documentation site from Jekyll to Astro, implementing full internationalization with Chinese support and restructuring the site's components and layouts. Concurrently, the core library underwent significant architectural refactoring by splitting the monolithic BootstrapTable class into separate modules, while introducing new features like custom views and a Bootstrap theme, alongside expanded Cypress and unit test coverage.
2026 — Native helpers and extension testing
6 changes.
This period focused on introducing native DOM and event helper utilities to replace external library dependencies, accompanied by comprehensive unit testing for these new modules. Significant effort was also directed toward expanding test coverage for various table extensions, including export, fixed-columns, and reorder-columns, while enhancing the print extension's styling capabilities.
Features
Add Chinese locale support with internationalization utilities
The site now supports Chinese (Simplified) in addition to English. This change introduces the i18n infrastructure (ui.js and utils.js) that manages locale definitions, URL generation with locale prefixes, and translation lookups. Users can now view site content in Chinese, and the underlying utilities enable localized navigation and sidebar titles.
site/src/i18n · high confidence
Add English and Chinese (Simplified) locale files for site internationalization
The site now includes dedicated translation files for English (en) and Chinese (zh-cn) in the locales directory. These files provide the text strings for the navigation menu, sidebar documentation links, footer, subscription form, table of contents, support/sponsorship sections, and home page content, enabling the website to display these UI elements in the respective languages.
site/src/i18n/locales · high confidence
Add address bar synchronization extension
The addrbar extension has been added to allow the table state (pagination, sorting, and search) to be synchronized with the browser's URL. When enabled, the extension reads initial state from URL parameters and updates the browser history as the user interacts with the table, supporting custom prefixes and additional custom parameters.
src/extensions/addrbar · high confidence
Add bundled locale file with core-js polyfills
The distribution now includes a new \bootstrap-table-locale-all.js\ file (and its minified counterpart) that bundles all locale definitions. This build incorporates \core-js\ (v3.49.0) polyfills for modern JavaScript features such as \globalThis\, \Object.assign\, and \Array.prototype.concat\, ensuring broader browser compatibility for the locale data.
dist · high confidence
Add custom view extension for toggleable table content
The new custom-view extension allows users to toggle between the standard table body and a custom view defined by the \customView\ option. This feature adds a toolbar button (controlled by \showCustomView\) that switches the display, emitting \toggle-custom-view\ events and triggering \onCustomViewPostBody\/\onCustomViewPreBody\ hooks to support dynamic content rendering.
src/extensions/custom-view · high confidence
Add group-by-v2 extension for collapsible table grouping
Introduces the group-by-v2 extension, enabling users to group table rows by one or more fields with expand/collapse functionality. The extension adds new configuration options (groupBy, groupByField, groupByCollapsedGroups, etc.) to control grouping behavior, default collapse states, and custom formatting. It manages group state internally, supports custom sorting within groups, and includes CSS styles for visual indicators of expanded/collapsed states and hidden rows.
src/extensions/group-by-v2 · high confidence
Add reorder-columns extension for draggable column headers
Introduces the reorder-columns extension, allowing users to drag and drop table column headers to change their order. This feature includes an API method \orderColumns\ for programmatic reordering, persists the column order via cookies when the cookie extension is enabled, and triggers a \reorder-column\ event upon changes. It also ensures the toolbar and search state are correctly reinitialized after a column is moved.
src/extensions/reorder-columns · high confidence
Add sticky-header extension
A new sticky-header extension is introduced, allowing the table header to remain visible while scrolling. This feature is controlled by the \stickyHeader\ option and supports vertical offset (\stickyHeaderOffsetY\), as well as left and right offsets (\stickyHeaderOffsetLeft\, \stickyHeaderOffsetRight\) to position the sticky header correctly relative to the viewport or container. The extension includes JavaScript logic to clone the header and update its position on scroll and resize events, along with SCSS styles to ensure the sticky header displays with appropriate background colors for light and dark themes.
src/extensions/sticky-header · high confidence
Add treegrid extension for hierarchical table display
Introduces a new treegrid extension that enables Bootstrap Table to render hierarchical data structures. Users can enable this feature by setting the \treeEnable\ option to true and specifying the \treeShowField\ to identify the column containing the tree structure. The extension automatically disables virtual scrolling when active to ensure correct rendering of nested rows. It supports configuration of the ID and parent ID fields via \idField\ and \parentIdField\, and allows defining a \rootParentId\ to specify which records are considered top-level nodes. The implementation handles recursive row initialization and applies specific CSS classes for tree visualization.
src/extensions/treegrid · high confidence
Added Bootstrap Table theme support (v1.27.3)
The dist/themes directory now includes the Bootstrap Table theme assets (version 1.27.3), providing the CSS styles, JavaScript logic, and icon fonts required to render data tables with Bootstrap styling. This addition enables users to apply the Bootstrap Table visual theme to their table components.
dist/themes · high confidence
Added Bulma theme support for Bootstrap Table
Users can now style the Bootstrap Table using the Bulma CSS framework. This change introduces a new theme located in src/themes/bulma, which includes a JavaScript file (bootstrap-table-bulma.js) defining Bulma-specific classes for tables, toolbars, dropdowns, and pagination, as well as SCSS files (bootstrap-table-bulma.scss and \_custom.scss) to apply Bulma's visual styling and variables to the table components.
src/themes/bulma · high confidence
Added Cypress e2e support files
The project now includes Cypress end-to-end testing support files. A new \cypress/support/e2e.js\ file is added to load custom commands, and a \cypress/support/commands.js\ file is created to define custom Cypress commands, enabling the execution of end-to-end tests.
cypress/support · high confidence
Added Foundation CSS framework theme support
Users can now apply the ZURB Foundation styling to bootstrap-table components. This change introduces a new theme that adapts the table's toolbar, pagination, and dropdown menus to match Foundation's visual language, including specific button classes, dropdown containers, and pagination active states, while also initializing Foundation's JavaScript dropdown components for interactive elements.
src/themes/foundation · high confidence
Added Materialize CSS theme support
Users can now apply the Materialize CSS styling to bootstrap-table components. This change introduces a new theme located in src/themes/materialize, consisting of a JavaScript file (bootstrap-table-materialize.js) that configures Materialize-specific classes for buttons, dropdowns, and pagination, and SCSS files (bootstrap-table-materialize.scss and \_custom.scss) that define the visual appearance, including border colors, hover states, and layout adjustments for toolbars and pagination controls.
src/themes/materialize · high confidence
Added Reorder Rows extension for drag-and-drop row sorting
Users can now enable the Reorder Rows extension to allow dragging and dropping table rows to change their order. This feature integrates with the tableDnD library, providing visual feedback via a drag class and exposing events like onReorderRowsDrag, onReorderRowsDrop, and onReorderRow for custom logic. It supports both client-side and server-side pagination scenarios, ensuring the data model and UI stay synchronized after a row is moved.
src/extensions/reorder-rows · high confidence
Added Semantic UI theme support
Users can now apply the Semantic UI design system to bootstrap-table components. This change introduces a new theme located in src/themes/semantic, which includes a JavaScript file (bootstrap-table-semantic.js) that configures default CSS classes (e.g., 'ui selectable celled table') and HTML structures for toolbars, dropdowns, and pagination to match Semantic UI conventions. It also provides SCSS files (bootstrap-table-semantic.scss and \_custom.scss) to style the table container, search inputs, and buttons according to Semantic UI's visual standards, allowing for a consistent look and feel when using the Semantic UI framework.
src/themes/semantic · high confidence
Added column resizing capability to Bootstrap Table
The resizable extension has been added, enabling users to resize table columns by dragging column borders. This feature is controlled by a new \resizable\ option (defaulting to false) and integrates with the \resizableColumns\ library. The extension automatically handles re-initialization during column switching, page changes, and view toggles, ensuring resizing remains functional as the table state updates.
src/extensions/resizable · high confidence
Added copy-rows extension for copying selected table rows to clipboard
A new copy-rows extension has been added to bootstrap-table, enabling users to copy selected rows to the clipboard via a new 'Copy Rows' button in the toolbar. This feature respects column visibility settings (unless \copyWithHidden\ is enabled), allows customization of the delimiter and newline characters, supports a custom \copyRowsHandler\ for processing the copied text, and integrates with multiple icon sets (Glyphicons, Font Awesome, Bootstrap Icons, etc.).
src/extensions/copy-rows · high confidence
Added defer-url extension to defer initial data requests
A new extension has been added that allows Bootstrap Table to skip the initial server request when data is already present in the HTML. By using the \data-defer-url\ attribute (mapped to the \deferUrl\ option), the table will use the existing page data instead of fetching the first page from the server, reducing resource waste. This is implemented as a new ES6 class extension of the base BootstrapTable.
src/extensions/defer-url · high confidence
Added i18n-enhance extension for dynamic locale and title updates
The i18n-enhance extension has been added to bootstrap-table, introducing two new methods: \changeTitle\ and \changeLocale\. The \changeTitle\ method allows users to dynamically update column titles based on a provided locale mapping, while \changeLocale\ updates the table's locale setting and reinitializes the header, pagination, body, and toolbar to reflect the new language. This enables runtime internationalization support for Bootstrap Table instances.
src/extensions/i18n-enhance · high confidence
Added mobile responsive extension for Bootstrap Table
A new mobile extension has been added to enable responsive table behavior on smaller screens. When the \mobileResponsive\ option is enabled, the table automatically switches between card view and full table view based on the device's width and height thresholds. The extension includes options to configure minimum width/height, a height threshold for triggering view changes, and a list of columns to hide on mobile devices. It also debounces resize events to prevent excessive re-renders and ensures the view doesn't change if the user is actively typing in an input field.
src/extensions/mobile · high confidence
Added print extension for exporting table data
Users can now export the current table view to a printable format by enabling the new 'print' extension. This adds a toolbar button that generates a new browser window containing the table data, respecting current UI filters and sort orders by default. The extension supports custom styling via the \printStyles\ option, allows ignoring specific columns with \printIgnore\, and lets users define custom cell content formatting using the \printFormatter\ column option.
src/extensions/print · high confidence
Added virtual-scroll component for rendering large lists
A new virtual-scroll component has been introduced to support efficient rendering of large datasets. This feature allows users to display long lists by only rendering visible items, significantly improving performance and reducing memory usage when handling extensive data collections.
src/virtual-scroll · high confidence
Bootstrap 5 compatibility and new table options
The library now supports Bootstrap 5 by providing specific CSS class mappings (e.g., \form-select\, \dropdown-menu-end\) and HTML templates in the constants file, ensuring correct rendering for users upgrading from Bootstrap 4. Additionally, new configuration options are introduced for table behavior, including \buttonsAttributeTitle\ for customizing button titles, \buttonsOrder\ for reordering toolbar buttons, and \escapeTitle\ to control title escaping in column headers.
src/constants · high confidence
Chinese documentation added for Bootstrap Table
Added comprehensive Chinese (zh-cn) documentation for the project, including API references (table options, column options, events, methods, localizations), extension guides (addrbar, auto-refresh, cookie, copy-rows, custom-view, defer-url, editable, export, filter-control, fixed-columns, group-by-v2, i18n-enhance, key-events, mobile, multiple-sort, page-jump-to, pipeline, print, reorder-columns), and about pages (license, overview).
site/src/pages/zh-cn · high confidence
Introduce editable extension for inline cell editing
Adds the \bootstrap-table-editable\ extension, enabling inline editing of table cells via the x-editable library. Users can now configure columns to be editable, customize per-row editable options, and handle save/shown/hidden events through new callbacks (\onEditableInit\, \onEditableSave\, \onEditableShown\, \onEditableHidden\). The extension supports data attributes for configuration, handles HTML escaping/unescaping of values, and integrates with the table's data model to update rows upon save.
src/extensions/editable · high confidence
Introduction of native DOM and event helper utilities
New utility classes, DOMHelper and EventHelper, have been added to the helpers directory to provide jQuery-style DOM manipulation and event handling using native JavaScript. DOMHelper offers methods for selecting elements, managing CSS classes, and handling attributes, while EventHelper supports event binding, removal, triggering, and delegation with namespace support. These modules replace the need for external libraries for basic DOM and event operations within the application.
src/helpers · high confidence
Introduction of the Advanced Search Toolbar Extension
The toolbar extension now includes an 'Advanced Search' feature, allowing users to filter table data via a modal dialog. This new capability is controlled by the \advancedSearch\ option and integrates with the existing toolbar UI, supporting multiple CSS frameworks (Bootstrap 3/4/5, Bulma, Foundation, Materialize, Semantic UI) for consistent modal styling and accessibility.
src/extensions/toolbar · high confidence
Introduction of the Filter Control extension
The filter-control extension is now available, allowing users to add input, select, or datepicker controls to table headers for filtering data. This new feature includes options to customize control visibility, enable multiple value searches, and toggle controls via a switch button, with supporting styles provided in a dedicated SCSS file.
src/extensions/filter-control · high confidence
New Bootstrap Table theme with custom styling and icon font
A new 'bootstrap-table' theme is introduced, providing a distinct visual identity for the table component. The theme includes a custom SCSS file that overrides default variables for colors, borders, and button padding, along with specific styles for dropdowns, pagination, and toolbar buttons. It also introduces a dedicated icon font (bootstrap-table) with a set of glyphs for UI actions like sorting, copying, and downloading, and a JavaScript module that initializes the theme, handles dropdown toggle interactions, and defines custom HTML structures for input groups.
src/themes/bootstrap-table · high confidence
New Export Extension for Bootstrap Table
This change introduces the new \bootstrap-table-export\ extension, enabling users to export table data in various formats including JSON, XML, PNG, CSV, TXT, SQL, MS-Word, MS-Excel, MS-Excel (OpenXML), MS-Powerpoint, and PDF. The extension adds a toolbar button (or dropdown if multiple formats are enabled) to trigger exports, with options to control which data is exported (basic, all, or selected rows) and whether to include the table footer. It also supports customizing export options, forcing specific columns to be exported or hidden, and provides events (\onExportStarted\, \onExportSaved\) for integration.
src/extensions/auto-refresh, src/extensions/export, src/extensions/page-jump-to · high confidence
New Pipeline extension for server-side data caching
Adds the Bootstrap Table Pipeline extension, which enables client-side data caching for server-side requests to improve performance with large datasets. Users can enable this feature via the \usePipeline\ option and configure the cache window size with \pipelineSize\. The extension manages cache windows based on pagination, sorting, and searching, issuing new server requests only when data falls outside the current cache window. It also exposes \resetPipelineCache\ for programmatic cache invalidation and emits \cached-data-hit.bs.table\ and \cached-data-reset.bs.table\ events to track cache usage.
src/extensions/pipeline · high confidence
New Vue component wrapper for Bootstrap Table
A new Vue component (BootstrapTable) has been added to the src/vue directory, providing a reactive wrapper around the jQuery-based Bootstrap Table plugin. The component exposes columns, data, and options as props, automatically initializing the table on mount and destroying it on unmount to prevent memory leaks. It handles deep copying of configuration to avoid reference issues, synchronizes changes to columns, options, and data, and exposes Bootstrap Table methods (such as load and refreshOptions) directly on the component instance for programmatic control.
src/vue · high confidence
New addrbar and auto-refresh extensions added to distribution
The distribution now includes the addrbar and auto-refresh extensions for Bootstrap Table. The addrbar extension (\dist/extensions/addrbar/bootstrap-table-addrbar.js\) allows table state (pagination, sorting, search) to be synchronized with the browser URL, enabling bookmarkable and shareable table views. The auto-refresh extension (\dist/extensions/auto-refresh/bootstrap-table-auto-refresh.js\) provides functionality to automatically refresh table data at specified intervals. Both extensions are bundled with core-js polyfills to ensure compatibility across environments.
dist/extensions · high confidence
New documentation validation tools for API and locales
Added \check-api\ and \check-locale\ scripts to the \tools\ directory to automate documentation quality checks. The \check-api\ tool validates API documentation files (table-options, column-options, methods, events) for correct formatting, ensures all attributes have the required 'data-' prefix, verifies that example links point to existing files in the \bootstrap-table-examples\ repository, and checks for default options. The \check-locale\ tool verifies that locale files contain all required keys, that keys are unused, and that they are sorted alphabetically, with an optional \--fix\ flag to auto-correct order and missing keys.
tools · high confidence
New fixed-columns extension for left and right column pinning
Adds a new fixed-columns extension that allows users to pin specific columns to the left or right side of a Bootstrap table. This feature introduces new configuration options (fixedNumber, fixedRightNumber) and corresponding CSS styles to handle absolute positioning, z-indexing, and hover states for the fixed sections. The implementation ensures synchronized scrolling and selection states between the fixed columns and the main table body, while explicitly disabling the feature when detailView or cardView modes are active.
src/extensions/fixed-columns · high confidence
New theme browsing and listing components for the Astro site
The site has been migrated to Astro, introducing new components in the themes section to handle theme discovery and display. The Categories component now renders a navigable list of theme categories with client-side filtering logic to show or hide theme sections based on the selected category. The List component displays individual theme cards, including images, names, descriptions, and links to details or live previews, while distinguishing between free and premium products. These changes provide the underlying UI structure for browsing themes on the newly Astro-based site.
site/src/components/themes · high confidence
Repository initialization with modern build tooling and configuration
The repository has been initialized with a comprehensive set of configuration files to support modern development workflows. This includes a \.browserslistrc\ file to define target browser compatibility (Chrome \>= 90, Firefox \>= 88, Edge \>= 90, Safari \>= 14, iOS \>= 14, Android \>= 6), a \.cspell.json\ configuration with a custom word list for project-specific terminology, an \.editorconfig\ for consistent code formatting (2-space indentation, UTF-8, LF line endings), and a \.gitignore\ file excluding common IDE, build, and OS-specific artifacts. Additionally, the project now includes configuration for ESLint (\eslint.config.js\), Stylelint (\stylelint.config.js\), Cypress (\cypress.config.js\), Vitest (\vitest.config.js\), and Vite (\vite.config.js\) for testing and building, alongside a \rollup.config.js\ for bundling. Documentation files such as \README.md\, \CONTRIBUTING.md\, \LICENSE\, and \DONATORS.md\ have also been added to provide usage instructions, contribution guidelines, and licensing information.
(repo-wide) · high confidence
Support for locale-aware config placeholders in content
A new remark plugin (remark-config.js) now processes content files to replace \[\[config:...\]\] placeholders with values from the application configuration. The plugin automatically detects the current locale from the file path and adjusts the 'baseurl' value by appending the locale suffix for non-default languages, ensuring that links and assets resolve correctly in localized versions of the site.
site/src/plugins · high confidence
Architecture
Bootstrap Table v1.27.3 source code restructured into ES6 modules
The library source has been refactored from a single monolithic file into a modular ES6 structure, with the main logic split into separate modules (Initialization, Body, Check, Data, Detail, Header, Pagination, Search, Toolbar) and assembled via imports. A new Babel configuration (\.babelrc\) is introduced to transpile the code using \@babel/env\ with \corejs: 3\ and \useBuiltIns: usage\. The SCSS entry point (\bootstrap-table.scss\) is also updated to use the modern \@use\ directive for theme imports. This change affects the internal build and development workflow but maintains the same public API and version (1.27.3).
src · high confidence
Refactor BootstrapTable into separate modules
The monolithic BootstrapTable implementation has been split into distinct, single-responsibility modules (body, check, data, detail, header, initialization, pagination, search, and toolbar). This architectural change improves code maintainability and separation of concerns without altering the public API or user-facing behavior.
src/modules · high confidence
Behavioural changes
Centralized site configuration and version management
The site now uses a centralized configuration file to manage metadata, including the current version (read from package.json), site title, author, and contact links. This configuration also defines the list of supported versions for the documentation site and stores Algolia search credentials, allowing for easier maintenance of site-wide settings and version history.
site/src · high confidence
Cookie extension now supports multiple storage backends and modern cookie attributes
The cookie extension has been updated to support configurable storage mechanisms, allowing users to choose between standard cookies, localStorage, or sessionStorage via the new \cookieStorage\ option, along with custom storage handlers. Additionally, the extension now includes support for the \SameSite\ cookie attribute to improve security and compatibility with modern browsers, and it persists state for filter controls, column reordering, and custom views.
src/extensions/cookie · high confidence
Improved stability and performance for Algolia documentation search indexing
The site's Algolia indexing script has been updated to enhance reliability and reduce resource usage during the indexing process. Record sizes are now optimized by truncating content (2000 characters for main pages, 1500 for sections) and ensuring the required 'text' field is set before size checks, which supports better handling of larger content blocks like Chinese text. Additionally, the batch size for sending records to Algolia has been reduced to improve indexing stability, and the script now strictly enforces the 'text' field requirement for DocSearch compatibility.
site/scripts · high confidence
Migrate site layouts to Astro framework
The site's layout components (DocsLayout, HomeLayout, SimpleLayout) have been rewritten in Astro, replacing the previous implementation. This migration introduces internationalization support via locale-aware translations for navigation and UI text, updates the GitHub documentation link logic to reflect the new file structure, and integrates Astro-specific features such as frontmatter handling and component composition.
site/src/layouts · high confidence
Multiple Sort extension now supports Bootstrap 5 and Semantic UI themes
The multiple-sort extension has been updated to include theme definitions for Bootstrap 5 and Semantic UI, in addition to the existing Bootstrap 3 and 4 support. This ensures the multiple-sort modal dialog and its associated buttons render correctly with the appropriate CSS classes and data attributes (such as \data-bs-toggle\ for Bootstrap 5) when using these frameworks.
src/extensions/multiple-sort · high confidence
Print extension now supports row and cell styling
The print extension now respects rowStyle and cellStyle options, allowing users to apply custom CSS classes to rows and individual cells in the printed output. This ensures that visual formatting defined in the table configuration is preserved when generating print views.
cypress/extensions/print · medium confidence
Refactored utility modules and added Bootstrap 5 checkbox support
The src/utils directory has been split into a modular structure (checkbox, dom, framework, helper, object, search-sort, string, table-data) to remove jQuery dependencies and improve maintainability. This change introduces native JavaScript utilities for DOM manipulation and object handling, replacing previous jQuery-based implementations. Additionally, new checkbox utilities have been added to generate HTML compatible with both Bootstrap 5 (using form-check classes) and older Bootstrap versions, ensuring proper rendering of selection controls across framework versions.
src/utils · high confidence
Rewritten locale files to ES6 and expanded language support
The locale files in src/locale have been rewritten using ES6 syntax (arrow functions and template literals) to modernize the codebase. This change also introduces a comprehensive README.md documenting all supported language codes and adds new translation files for several languages, including Afrikaans (af-ZA), Azerbaijani (az-Latn-AZ), and Greek (el-GR), while updating existing translations for languages such as German, Spanish, and French.
src/locale · high confidence
Rewrote key-events extension to ES6 class
The key-events extension has been rewritten from jQuery-style code to an ES6 class that extends BootstrapTable. This modernizes the implementation, replacing $.extend with Object.assign and using class inheritance for initialization, while preserving the existing keyboard shortcut functionality (S, R, T, P, arrow keys) and toolbar interaction logic.
src/extensions/key-events · high confidence
Site components migrated to Astro with internationalization support
The site's UI components (Header, Footer, Navbar, Sidebar, TOC, Supports, Subscribe, Ads, Scripts) have been rewritten as Astro components. This migration introduces full internationalization (i18n) support, allowing navigation labels, footer links, and other UI text to be translated based on the current locale. The Navbar now includes a language selector and version menu, while the Sidebar uses slugs for navigation structure. The Header now dynamically sets page titles and descriptions using frontmatter and translations. Additionally, the site now uses specific CDN versions for dependencies like jQuery (3.7.1), Bootstrap (5.3.3), and Prism.js (1.30.0).
site/src/components · high confidence
Site migrated to Astro static site generator
The documentation site has been rebuilt using Astro, replacing the previous static site generator. This migration introduces a new configuration structure (astro.config.mjs) that handles internationalization, integrates MDX and sitemap generation, and defines URL redirects for legacy paths (such as /docs/ and /vuejs/). The build process now relies on Vite for module resolution and includes strict TypeScript configuration and ESLint rules specific to Astro components, resulting in a modernized development experience and optimized static output.
site · high confidence
Site migrated to Astro with internationalized home page
The documentation site has been rebuilt using the Astro framework, replacing the previous Jekyll-based structure. The new home page (index.astro) is fully internationalized, using translation keys for all user-facing text such as descriptions, button labels, and section headers. The layout includes updated styling for the masthead follow-up sections with rounded borders and shadows, and integrates components for ads, support, and subscription. A new news page has been added to display release history and changelogs.
site/src/pages · high confidence
Updated locale files to version 1.27.3 with core-js 3.49.0 polyfills
The distribution locale files in dist/locale have been rebuilt and updated to version 1.27.3. This update bundles the core-js library (version 3.49.0) directly into each locale file, ensuring that necessary JavaScript polyfills for features like globalThis, Object.assign, and Symbol are included. This change ensures that the locale files function correctly in older browsers or environments that do not natively support these modern JavaScript features, without requiring external polyfill dependencies.
dist/locale · high confidence
Updated site documentation assets and configuration
The site's public assets have been updated to align with the new Astro-based documentation build. This includes adding a CNAME file for the bootstrap-table.com domain and replacing the previous CSS with a new minified docs stylesheet that implements Bootstrap 5's grid system, navigation components, and Algolia DocSearch styling with updated theme variables.
site/public · high confidence
Updated theme documentation pages to use Astro and pin jQuery 3.7.1
The theme documentation pages in the site have been migrated to use the Astro layout (SimpleLayout.astro) and updated to reference jQuery version 3.7.1 in their starter templates. This change affects the getting-started guides for Bootstrap Table, Bootstrap v3, Bootstrap v4, Bulma, Foundation, Materialize, and Semantic UI, ensuring consistent styling and dependency versions across all theme-specific documentation.
site/src/pages/themes · high confidence
Fixes
Bootstrap 5 dark mode support and SVG sort icons
The theme system now supports Bootstrap 5's dark mode by defining CSS custom properties for table borders and loading states that adapt to the \data-bs-theme\ attribute. Additionally, table column sort indicators have been updated from PNG images to inline SVG data URIs, ensuring consistent rendering and better scalability across different themes.
src/themes · high confidence
Test coverage
Added Cypress test suites for Options and Welcome pages; Added Cypress tests for Export Extension options and events; Added Cypress tests for filter control options; Added Cypress tests for fixed-columns and reorder-columns extensions; Added comprehensive unit tests for utility modules; Added integration tests for DOMHelper utility; Added unit tests for DOMHelper and EventHelper utilities; Added unit tests for table body, data sorting, header resizing, and RTL initialization; Cypress e2e test suite restructured with new entry points.
Dependencies
Initial project scaffolding with dependency manifests
The repository now includes the foundational configuration files for the project, including \package.json\ for the main library and documentation site, \composer.json\ for PHP/Bootstrap integration, and \yarn.lock\ to lock dependency versions. This establishes the build environment, defining development dependencies such as Rollup, Vite, ESLint, Cypress, and Vue, along with peer dependencies like jQuery.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 44 → 44 (-0.1)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 37 → 37 (+0.0)
- Architecture 98 → 90 (-8.6)
- Maturity 53 → 53 (+0.2)
- Readiness 51 → 53 (+1.3)
- Security 69 → 72 (+3.8)
- Accessibility 39 → 40 (+0.3)
- Performance 60 (new)
Resolved (10)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: no installation or build instructions (README.md)
- High CVE: [GHSA redacted] (yarn.lock)
- Hotspot: src/modules/data.js (src/modules/data.js)
- Off-boarding risk: anonymized user #1
- initBody (cognitive 37) (src/extensions/group-by-v2/bootstrap-table-group-by.js)
- initBody (cyclomatic 22) (src/extensions/group-by-v2/bootstrap-table-group-by.js)
- initSort (cognitive 24) (src/extensions/group-by-v2/bootstrap-table-group-by.js)
- initSort (cyclomatic 16) (src/extensions/group-by-v2/bootstrap-table-group-by.js)
- initToolbar (cyclomatic 28) (src/extensions/multiple-sort/bootstrap-table-multiple-sort.js)
New (11)
- Dependency hygiene PARTLY measured — Composer dependencies read, no committed lock to grade for currency
- High CVE: [GHSA redacted] (yarn.lock)
- Off-boarding risk: anonymized user #1
- Projects may be oversized for their cohesion
- bootstrap-table-group-by.BootstrapTable.initBody (cognitive 38) (src/extensions/group-by-v2/bootstrap-table-group-by.js)
- bootstrap-table-group-by.BootstrapTable.initBody (cyclomatic 22) (src/extensions/group-by-v2/bootstrap-table-group-by.js)
- bootstrap-table-group-by.BootstrapTable.initSort (cognitive 24) (src/extensions/group-by-v2/bootstrap-table-group-by.js)
- bootstrap-table-group-by.BootstrapTable.initSort (cyclomatic 16) (src/extensions/group-by-v2/bootstrap-table-group-by.js)
- bootstrap-table-multiple-sort.BootstrapTable.initToolbar (cyclomatic 28) (src/extensions/multiple-sort/bootstrap-table-multiple-sort.js)
- bootstrap-table-multiple-sort.BootstrapTable.onMultipleSort (cognitive 24) (src/extensions/multiple-sort/bootstrap-table-multiple-sort.js)
- check-locale.fs.readdir() (cognitive 23) (tools/check-locale.js)
Changes since last survey
- 33 commits — 33 feature/other, 0 fixes
By area
- (repo) — 17 commits
- (root) — 16 commits
Notable commits
- change: Merge pull request #8481 from wenzhixin/dependabot/npm_and_yarn/cspell-10.3.1
- change: Merge pull request #8482 from wenzhixin/dependabot/npm_and_yarn/vitejs/plugin-vue-6.0.9
- change: Merge pull request #8483 from wenzhixin/dependabot/npm_and_yarn/rollup-4.63.3
- change: Merge pull request #8485 from wenzhixin/dependabot/npm_and_yarn/cypress-16.1.0
- change: Merge pull request #8486 from wenzhixin/dependabot/npm_and_yarn/vitest-5.0.1
- change: Merge pull request #8487 from wenzhixin/dependabot/npm_and_yarn/cspell-10.3.2
- change: Merge pull request #8489 from wenzhixin/dependabot/npm_and_yarn/cspell-10.3.3
- change: Merge pull request #8490 from wenzhixin/dependabot/npm_and_yarn/eslint-10.11.0
- change: Merge pull request #8491 from wenzhixin/dependabot/npm_and_yarn/vue-3.5.43
- change: Merge pull request #8492 from wenzhixin/dependabot/npm_and_yarn/rollup-4.63.4
- change: Merge pull request #8495 from wenzhixin/dependabot/npm_and_yarn/sass-1.105.0
- change: Merge pull request #8496 from wenzhixin/dependabot/npm_and_yarn/cspell-10.3.4
- change: Merge pull request #8497 from wenzhixin/dependabot/npm_and_yarn/vite-8.3.1
- change: Merge pull request #8498 from wenzhixin/dependabot/npm_and_yarn/rollup-4.63.5
- change: Merge pull request #8499 from wenzhixin/dependabot/npm_and_yarn/vitest-5.0.2
- change: Merge pull request #8500 from wenzhixin/dependabot/npm_and_yarn/cspell-10.3.5
- change: Merge pull request #8501 from wenzhixin/dependabot/npm_and_yarn/chalk-6.0.1
- change: build(deps-dev): bump @vitejs/plugin-vue from 6.0.8 to 6.0.9
- change: build(deps-dev): bump chalk from 6.0.0 to 6.0.1
- change: build(deps-dev): bump cspell from 10.3.1 to 10.3.2
- …and 13 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
wenzhixin/bootstrap-table was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit cf00e532a4d8a3a708e3c11ba50f2b2b07681a9a — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.