370675d Dec 13, 2018
2 contributors

Users who have contributed to this file

@yuki-takei @sotarok
833 lines (612 sloc) 22.3 KB



  • Feature: NO_CDN Mode
  • Feature: Add option to show/hide restricted pages in list
  • Feature: MongoDB GridFS quota
  • Improvement: Refactor Access Control
  • Improvement: Checkbox behavior of task list
  • Improvement: Fixed search input on search result page
  • Improvement: Add 'christmas' theme
  • Improvement: Select default language of new users
  • Fix: Hide restricted pages contents in timeline
  • Support: Upgrade libs
    • googleapis
    • passport-saml


  • Fix: Pages in trash are available to create
  • Fix: Couldn't create portal page under Crowi Classic Behavior
  • Fix: Table tag in Timeline/SearchResult missed border and BS3 styles
  • I18n: Installer


  • Feature: Attachment Storing to MongoDB GridFS
  • Fix: row/col moving of Spreadsheet like GUI (Handsontable) doesn't work
  • Fix: Emoji AutoComplete dialog pops up at wrong position
  • Support: Upgrade libs
    • codemirror
    • react-codemirror2


  • Improvement: Add an option to use email for account link when using SAML federation
  • Fix: Editor layout is sometimes broken
  • Fix: Normalize table data for Spreadsheet like GUI (Handsontable) when import
  • Support: Improve development environment
  • Support: Upgrade libs
    • googleapis
    • react-dropzone


  • Feature: Import CSV/TSV/HTML table on Spreadsheet like GUI (Handsontable)
  • Fix: Pasting table data copied from Excel includes unnecessary line breaks
  • Fix: Page break Preset 1 for Presentation mode is broken
  • Fix: Login Form when LDAP login failed caused 500 Internal Server Error


  • Feature: Add select alignment buttons of Spreadsheet like GUI (Handsontable)
  • Improvement: Shrink the rows that have no diff of revision history page
  • Fix: Login form rejects weak password
  • Fix: An error occured by uploading attachment file when the page is not exists
    • Introduced by 2.3.5
  • Support: Upgrade libs
    • i18next-express-middleware
    • i18next-node-fs-backend
    • i18next-sprintf-postprocessor


  • Improvement: Expandable Spreadsheet like GUI (Handsontable)
  • Improvement: Move/Resize rows/columns of Spreadsheet like GUI (Handsontable)
  • Improvement: Prevent XSS of New Page modal
  • Fix: Recent Created tab of user home shows wrong page list
    • Introduced by 3.2.4
  • Support: Upgrade libs
    • @handsontable/react
    • handsontable
    • metismenu
    • sinon


  • Feature: Edit table with Spreadsheet like GUI (Handsontable)
  • Feature: Paging recent created in users home
  • Improvement: Specify certificate for SAML Authentication
  • Fix: SAML Authentication didn't work
    • Introduced by 3.2.2
  • Fix: Failed to create new page with title which includes RegEx special characters
  • Fix: Preventing XSS Settings are not applied in default
    • Introduced by 3.1.12
  • Support: Mongoose migration mechanism
  • Support: Upgrade libs
    • googleapis
    • mocha
    • mongoose
    • mongoose-paginate
    • mongoose-unique-validator
    • multer


  • Feature: Kibela like layout
  • Improvement: Custom newpage separator for presentation view
  • Support: Shrink image size for themes which recently added


  • Feature: SAML Authentication (SSO)
  • Improvement: Add 'wood' theme
  • Improvement: Add 'halloween' theme
  • Improvement: Add 'island' theme
  • Fix: Sending email function doesn't work
  • Support Upgrade libs
    • style-loader


  • Feature: Import data from
  • Feature: Import data from Qiita:Team
  • Feature: Add the endpoint for health check
  • Improvement: Adjust styles when printing
  • Fix: Renaming page doesn't work if the page was saved with shortcut
  • Support: Refactor directory structure
  • Support Upgrade libs
    • file-loader
    • googleapis
    • postcss-loader
    • sass-loader
    • style-loader


  • Feature: HackMD integration so that user will be able to simultaneously edit with multiple people
  • Feature: Login with Twitter Account (OAuth)
  • Fix: The Initial scroll position is wrong when reloading the page


  • Improvement: Show help for header search box
  • Improvement: Add Markdown Cheatsheet to Editor component
  • Fix: Couldn't delete page completely from search result page
  • Fix: Tabs of trash page are broken


  • Feature: Global Notification
  • Feature: Send Global Notification with E-mail
  • Improvement: Add attribute mappings for email to LDAP settings
  • Support: Upgrade libs
    • autoprefixer
    • css-loader
    • method-override
    • optimize-css-assets-webpack-plugin
    • react
    • react-bootstrap-typeahead
    • react-dom


  • Feature: Add XSS Settings
  • Feature: Notify to Slack when comment
  • Improvement: Prevent XSS in various situations
  • Improvement: Show forbidden message when the user accesses to ungranted page
  • Improvement: Add overlay styles for pasting file to comment form
  • Fix: Omit unnecessary css link
    • Introduced by 3.1.10
  • Fix: Invitation mail do not be sent
  • Fix: Edit template button on New Page modal doesn't work


  • Fix: OAuth doesn't work in production because callback URL field cannot be specified
    • Introduced by 3.1.9


  • Fix: Enter key on react-bootstrap-typeahead doesn't submit
    • Introduced by 3.1.9
  • Fix: CodeMirror of /admin/customize is broken
    • Introduced by 3.1.9


  • Feature: Login with Google Account (OAuth)
  • Feature: Login with GitHub Account (OAuth)
  • Feature: Attach files in Comment
  • Improvement: Write comment with CodeMirror Editor
  • Improvement: Post comment with Ctrl-Enter
  • Improvement: Place the commented page at the beginning of the list
  • Improvement: Resolve errors on IE11 (Experimental)
  • Support: Migrate to webpack 4
  • Support: Upgrade libs
    • eslint
    • react-bootstrap-typeahead
    • react-codemirror2
    • webpack

3.1.8 (Missing number)


  • Fix: Update hidden input 'pageForm[grant]' when save with Ctrl-S
  • Fix: Show alert message when conflict
  • Fix: BLOCKDIAG_URI environment variable doesn't work
  • Fix: Paste in markdown list doesn't work correctly
  • Support: Ensure to inject logger configuration from environment variables
  • Support: Upgrade libs
    • sinon
    • sinon-chai


  • Feature: Support blockdiag
  • Feature: Add BLOCKDIAG_URI environment variable
  • Fix: Select modal for group is not shown
  • Support: Upgrade libs
    • googleapis
    • throttle-debounce


  • Feature: Write comment with Markdown
  • Improvement: Support some placeholders for template page
  • Improvement: Omit unnecessary response header
  • Improvement: Support LDAP attribute mappings for user's full name
  • Improvement: Enable to scroll revision-toc
  • Fix: Posting to Slack doesn't work
    • Introduced by 3.1.0
  • Fix: page.rename api doesn't work
  • Fix: HTML escaped characters in markdown are unescaped unexpectedly after page is saved
  • Fix: sanitize #raw-text-original content with 'entities'
  • Fix: Double newline character posted
    • Introduced by 3.1.4
  • Fix: List and Comment components do not displayed
    • Introduced by 3.1.4
  • Support: Upgrade libs
    • markdown-it-toc-and-anchor-with-slugid

3.1.4 (Missing number)

3.1.3 (Missing number)


  • Feature: Template page
  • Improvement: Add 'future' theme
  • Improvement: Modify syntax for Crowi compatible template feature
    • before
      ``` template:/page/name
      page contents
    • after
      ::: template:/page/name
      page contents
  • Improvement: Escape iframe tag in block codes
  • Support: Upgrade libs
    • assets-webpack-plugin
    • googleapis
    • react-clipboard.js
    • xss


  • Improvement: Add 'blue-night' theme
  • Improvement: List up pages which restricted for Group ACL
  • Fix: PageGroupRelation didn't remove when page is removed completely


  • Improvement: Group Access Control List - Select group modal
  • Improvement: Better input on mobile
  • Improvement: Detach code blocks correctly
  • Improvement: Auto-format markdown table which includes multibyte text
  • Improvement: Show icon when auto-format markdown table is activated
  • Improvement: Enable to switch show/hide border for highlight.js
  • Improvement: BindDN field allows also ActiveDirectory styles
  • Improvement: Show LDAP logs when testing login
  • Fix: Comment body doesn't break long terms
  • Fix: lsx plugin lists up pages that hit by forward match wrongly
    • Introduced by 3.0.4
  • Fix: Editor is broken on IE11
  • Support: Multilingualize React components with i18next
  • Support: Organize dependencies
  • Support: Upgrade libs
    • elasticsearch
    • googleapis


  • Improvement: Add Vim/Emacs/Sublime-Text icons for keybindings menu
  • Improvement: Add 'mono-blue' theme
  • Fix: Unportalize process failed silently
  • Fix: Sidebar breaks editor layouts
  • Support: Switch the logger from 'pino' to 'bunyan'
  • Support: Set the alias for 'debug' to the debug function of 'bunyan'
  • Support: Translate /admin/security
  • Support: Optimize bundles
    • upgrade 'markdown-it-toc-and-anchor-with-slugid' and omit 'uslug'
  • Support: Optimize .eslintrc.js


  • Feature: Support Vim/Emacs/Sublime-Text keybindings
  • Improvement: Add some CodeMirror themes (Eclipse, Dracula)
  • Improvement: Dynamic loading for CodeMirror theme files from CDN
  • Improvement: Prevent XSS when move/redirect/duplicate


  • Fix: login.html is broken in iOS
  • Fix: Removing attachment is crashed
  • Fix: File-attaching error after new page creation
  • Support: Optimize development build
  • Support: Upgrade libs
    • env-cmd
    • googleapis
    • sinon


  • Improvement: Add 'nature' theme
  • Fix: Page list and Timeline layout for layout-growi
  • Fix: Adjust theme colors
    • Introduced by 3.0.9


  • Fix: Registering new LDAP User is failed
    • Introduced by 3.0.6
  • Support: Organize scss for overriding bootstrap variables
  • Support: Upgrade libs
    • codemirror
    • react-codemirror2
    • normalize-path
    • style-loader


  • Improvement: h1#revision-path occupies most of the screen when the page path is long
  • Improvement: Ensure not to save concealed email field to localStorage
  • Fix: Cannot input "c" and "e" on iOS


  • Improvement: Enable to download an attached file with original name
  • Improvement: Use MongoDB for session store instead of Redis
  • Improvement: Update dropzone overlay icons and styles
  • Fix: Dropzone overlay elements doesn't show
    • Introduced by 3.0.0
  • Fix: Broken page path of timeline
    • Introduced by 3.0.4


  • Improvement: Automatically bind external accounts newly logged in to local accounts when username match
  • Improvement: Simplify configuration for Slack Web API
  • Support: Use 'slack-node' instead of '@slack/client'
  • Support: Upgrade libs
    • googleapis
    • i18next
    • i18next-express-middleware
    • react-bootstrap-typeahead
    • sass-loader
    • uglifycss


  • Improvement: Update lsx icons and styles
  • Fix: lsx plugins doesn't show page names


  • Improvement: The option that switch whether add h1 section when create new page
  • Improvement: Encode page path that includes special character
  • Fix: Page-saving error after new page creation


  • Fix: Login page is broken in iOS
  • Fix: Hide presentation tab if portal page
  • Fix: A few checkboxes doesn't work
    • Invite user check with email in /admin/user
    • Recursively check in rename modal
    • Redirect check in rename modal
  • Fix: Activating invited user form url is wrong
  • Support: Use postcss-loader and autoprefixer


  • Feature: Group Access Control List
  • Feature: Add site theme selector
  • Feature: Add a control to switch whether email shown or hidden by user
  • Feature: Custom title tag content
  • Fix: bosai version
  • Support: Rename to GROWI
  • Support: Add dark theme
  • Support: Refreshing bootstrap theme and icons
  • Support: Use Browsersync instead of easy-livereload
  • Support: Upgrade libs
    • react-bootstrap
    • react-bootstrap-typeahead
    • react-clipboard.js

3.0.1 (Missing number)

3.0.0 (Missing number)


  • Feature: Autoformat Markdown Table
  • Feature: highlight.js Theme Selector
  • Fix: The bug of updating numbering list by codemirror
  • Fix: Template LangProcessor doesn't work
    • Introduced by 2.4.0
  • Support: Apply ESLint
  • Support: Upgrade libs
    • react, react-dom
    • codemirror, react-codemirror2


  • Improvement: i18n in /admin
  • Improvement: Add SESSION_NAME environment variable
  • Fix: All Elements are cleared when the Check All button in DeletionMode
  • Support: Upgrade libs
    • uglifycss
    • sinon-chai


  • Improvement: Ensure to set absolute url from root when attaching files when FILE_UPLOAD=local
  • Fix: Inline code blocks that includes doller sign are broken
  • Fix: Comment count is not updated when a comment of the page is deleted
  • Improvement: i18n in /admin (WIP)
  • Support: Upgrade libs
    • googleapis
    • markdown-it-plantuml


  • Feature: Custom Header HTML
  • Improvement: Add highlight.js languages
    • dockerfile, go, gradle, json, less, scss, typescript, yaml
  • Fix: Couldn't connect to PLANTUML_URI
    • Introduced by 2.4.0
  • Fix: Couldn't render UML which includes CJK
    • Introduced by 2.4.0
  • Support: Upgrade libs
    • axios
    • diff2html


  • Feature: Support Footnotes
  • Feature: Support Task lists
  • Feature: Support Table with CSV
  • Feature: Enable to render UML diagrams with public server
  • Feature: Enable to switch whether rendering MathJax in realtime or not
  • Improvement: Replace markdown parser with markdown-it
  • Improvement: Generate anchor of headers with header strings
  • Improvement: Enhanced Scroll Sync on Markdown Editor/Preview
  • Improvement: Update #revision-body tab contents after saving with Ctrl-S
  • Fix: 500 Internal Server Error occures when basic-auth configuration is set


  • Fix: Ctrl-/ doesn't work on Chrome
  • Fix: Close Shortcuts help with Ctrl-/, ESC key
  • Fix: Jump to last line wrongly when .revision-head-edit-button clicked
  • Support: Upgrade libs
    • googleapis


  • Feature: Suggest page path when creating pages
  • Improvement: Prevent keyboard shortcuts when modal is opened
  • Improvement: PageHistory UI
  • Improvement: Ensure to scroll when edit button of section clicked
  • Improvement: Enabled to toggle the style for active line
  • Support: Upgrade libs
    • style-loader
    • react-codemirror2


  • Fix: Open popups when Ctrl+C pressed
    • Introduced by 2.3.5


  • Feature: Theme Selector for Editor
  • Improvement: Remove unportalize button from crowi-plus layout
  • Fix: CSS for admin pages
  • Support: Shrink the size of libraries to include


  • Feature: Enhanced Editor by CodeMirror
  • Feature: Emoji AutoComplete
  • Feature: Add keyboard shortcuts
  • Improvement: Attaching file with Dropzone.js
  • Improvement: Show shortcuts help with Ctrl-/
  • Fix: DOMs that has .alert-info class don't be displayed
  • Support: Switch and upgrade libs
    • 8fold-marked -> marked
    • react-bootstrap
    • googleapis
    • mongoose
    • mongoose-unique-validator
    • etc..

2.3.4 (Missing number)


  • Fix: The XSS Library escapes inline code blocks
    • Degraded by 2.3.0
  • Fix: NPE occurs on Elasticsearch when initial access
  • Fix: Couldn't invite users(failed to create)


  • Improvement: Add LDAP group search options


  • Fix: Blockquote doesn't work
    • Degraded by 2.3.0
  • Fix: Couldn't create user with first LDAP logging in


  • Feature: LDAP Authentication
  • Improvement: Prevent XSS
  • Fix: node versions couldn't be shown
  • Support: Upgrade libs
    • express-pino-logger


  • Fix: googleapis v23.0.0 lost the function oauth2Client.setCredentials
    • Degraded by 2.2.2 updates
  • Fix: HeaderSearchBox didn't append 'q=' param when searching
    • Degraded by 2.2.3 updates


  • Fix: The server responds anything when using passport
    • Degraded by 2.2.2 updates
  • Fix: Update lastLoginAt when login is success
  • Support: Replace moment with date-fns
  • Support: Upgrade react-bootstrap-typeahead
  • Improvement: Replace emojify.js with emojione

2.2.2 (Missing number)


  • Feature: Duplicate page
  • Improve: Ensure that admin users can remove users waiting for approval
  • Fix: Modal doesn't work with React v16
  • Support: Upgrade React to 16
  • Support: Upgrade outdated libs


  • Support: Merge official Crowi v1.6.3


  • Improvement: Ensure to prevent suspending own account
  • Fix: Ensure to be able to use . for username when invited
  • Fix: monospace font for <code></code>


  • Fix: The problem that React Modal doesn't work
  • Support: Lock some packages(react, react-dom, mongoose)


  • Feature: Adopt Passport the authentication middleware
  • Feature: Selective batch deletion in search result page
  • Improvement: Ensure to be able to login with both of username or email
  • Fix: The problem that couldn't update user data in /me
  • Support: Upgrade outdated libs


  • Fix: Server is down when a guest user accesses to someone's private pages
  • Support: Merge official Crowi (master branch)
  • Support: Upgrade outdated libs


  • Fix: The problem that path including round bracket makes something bad
  • Fix: Recursively option processes also unexpedted pages
  • Fix: en-US translation


  • Improvement: Add recursively option for Delete/Move/Putback operation
  • Improvement: Comment layout and sort order (crowi-plus Enhanced Layout)


  • Fix: check whether $APP_DIR/public/uploads exists before creating symlink
    • Fixed in weseek/crowi-plus-docker


  • Improvement: Adjust styles for CodeMirror
  • Fix: File upload does not work when using crowi-plus-docker-compose and FILE_UPLOAD=local is set
    • Fixed in weseek/crowi-plus-docker

2.0.2 - 2.0.4 (Missing number)


  • Feature: Custom Script
  • Improvement: Adjust layout and styles for admin pages
  • Improvement: Record and show last updated date in user list page
  • Fix: Ignore Ctrl+(Shift+)Tab when editing (cherry-pick from the official)


  • Feature: Enabled to integrate with Slack using Incoming Webhooks
  • Support: Upgrade all outdated libs


  • Improvement: Condition for creating portal
  • Fix: Couldn't create new page after installation cleanly


  • Improvement: Optimize cache settings for express server
  • Improvement: Add a logo link to the affix header
  • Fix: Child pages under /trash are not shown when applying crowi-plus Simplified Behavior


  • Fix: Tabs(a[data-toggle="tab"][href="#..."]) push browser history twice
  • Fix: a[href="#edit-form"] still save history even when disabling pushing states option


  • Improvement: Enabled to switch whether to push states with History API when tabs changes
  • Fix: Layout of the Not Found page

1.2.12 (Missing number)


  • Improvement: Enabled to open editing form from affix header
  • Improvement: Enabled to open editing form from each section headers


  • Fix: Revise server:prod:container script for backward compatibility


  • Improvement: Enabled to save with ⌘+S on Mac
  • Improvement: Adopt the fastest logger 'pino'
  • Fix: The problem that can't upload profile image


  • Fix: The problem that redirect doesn't work when using 'crowi-plus Simplified Behavior'

1.2.7 (Missing number)


  • Fix: The problem that page_list widget doesn't show the picture of
  • Fix: Change implementation of Bootstrap3 toggle switch for admin pages


  • Feature: crowi-plus Simplified Behavior
    • /page and /page/ both shows the page
    • /nonexistent_page shows editing form
    • All pages shows the list of sub pages
  • Improvement: Ensure to be able to disable Timeline feature


  • Fix: Internal Server Error has occurred when a guest user visited the page someone added "liked"


  • Improvement: Ensure to be able to use Presentation Mode even when not logged in
  • Improvement: Presentation Mode on IE11 (Experimental)
  • Fix: Broken Presentation Mode


  • Support: Merge official Crowi (master branch)


  • Fix: buildIndex error occured when access to installer


  • Support: Merge official Crowi v1.6.2


  • Feature: Remove Comment Button


  • Fix: Omit Comment form from page_list (crowi-plus Enhanced Layout)
  • Fix: .search-box is broken on sm/xs screen


  • Fix: .search-box is broken on sm/xs screen
  • Support: Browsable with IE11 (Experimental)


  • Improvement: Ensure to generate indices of Elasticsearch when installed
  • Fix: Specify the version of Bonsai Elasticsearch on Heroku


  • Fix: Depth of dropdown-menu when .on-edit
  • Fix: Error occured on saveing with Ctrl-S
  • Fix: Guest users browsing


  • Feature: Add option to allow guest users to browse
  • Fix: crowi-plus Enhanced Layout


  • Fix: crowi-plus Enhanced Layout


  • Fix: crowi-plus Enhanced Layout
  • Support: Merge official Crowi v1.6.1 master branch [573144b]


  • Feature: Ensure to select layout type from Admin Page
  • Feature: Add crowi-plus Enhanced Layout


  • Improvement: Use POSIX-style paths (bollowed crowi/crowi#219 by @Tomasom)


  • Imprv: Brushup fonts and styles
  • Fix: Ensure to specity revision id when saving with Ctrl-S


  • Feature: Save with Ctrl-S
  • Imprv: Brushup fonts and styles


  • Support: Merge official Crowi v1.6.1


  • Feature: Delete user
  • Feature: Upload other than images


  • Feature: Ensure to delete page completely
  • Feature: Ensure to delete redirect page
  • Fix: https access to Gravatar (this time for sure)


  • Feature: Keyboard navigation for search box
  • Improvement: Intelligent Search


  • Feature: Copy button that copies page path to clipboard
  • Fix: https access to Gravatar
  • Fix: server watching crash with Error: read ECONNRESET on Google Chrome


  • Feature: Ensure to use Gravatar for profile image


  • Improvement: Detach code blocks before preProcess
  • Support: Ensure to deploy to Heroku with INSTALL_PLUGINS env
  • Support: Ensure to load plugins easily when development


  • Improvement: Adjust styles


  • Improvement: For lsx


  • Feature: Custom CSS
  • Support: Notify build failure to Slask


  • Feature: Plugin mechanism
  • Feature: Switchable LineBreaks ON/OFF from admin page
  • Improvement: Exclude Environment-dependency
  • Improvement: Enhanced linker
  • Support: Add Dockerfile
  • Support: Abolish gulp
  • Support: LiveReload
  • Support: Update libs