Try   HackMD

CodiMD 1.4.0 Syrmaticus mikado

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’
Mikado Pheasant, photo credits to Snowyowls from wikipedia

The Mikado pheasant (Syrmaticus mikado) is a gamebird in the pheasant family Phasianidae of the order Galliformes, gallinaceous birds. Sometimes considered an unofficial national bird of Taiwan (along with the Swinhoe's pheasant and Taiwan blue magpie), a pair of Mikado pheasants and Yushan National Park, one of the areas it is known to inhabit, is depicted in the 1000 dollar bill of the Taiwanese dollar.

from wikipedia

Starting from version 1.4.0, we'll pick one species from the endemic species of Taiwan as version name. Is there anyone still remember we've once used type of coffee as our version name? It's time to revive that good convention, but this time we don't need coffee to stay up all night. πŸ’€

It has been over 200+ commits since our last release. Read on to learn about what's new in this version. 🍻

Highlights

Editor

New Table Tools

You can now manipulate markdown tables easily with CodiMD's new markdown tools. The markdown table toolbar would show up when you're editing a markdown table. You can do operations like creating new a row/column, moving row/column, or adjusting table alignment by the toolbar.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

You can even create a table with keyboard shortcut!

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

This functionality is built on top of @susisu's markdown-table-editor module, you can read through the code in PR #1300.

Markdownlint integration

markdownlint is a tool to lint Markdown, created by David Anson. In this version, we integrate markdownlint right in CodiMD's markdown editor. This feature is off by default. You can turn in on by clicking the light bulb(πŸ’‘) in the status bar.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

The light bulb in status bar:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

For CodeMirror users who also want to integrate markdownlint in your service, you can take a look at PR #1257.

Markdown enhancements

Support 2 new render engines: PlantUML and Vega lite

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

Learn the syntax to use them:

Thanks @chulkilee for contributing the PlantUML syntax ❀️

You can also specify your own PlanUML instance:

Environment Variable config.json Example Value Description
CMD_PLANTUML_SERVER plantuml.server https://www.plantuml.com/plantuml The URL of PlantUML instance

Learn more about configuration here.

Suppport 2 New markdown syntax: Spoiler and Ruby

You can create collapsible content with new spoiler container syntax:

:::spoiler
hide me
:::

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

And create HTML ruby tag easier than before:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

{δΈ­|ㄓㄨγ„₯}{ζ–‡|γ„¨γ„£ΛŠ}
{東|とう}{δΊ¬|きょう}

New emoji sets

We refactored our current emoji library - emojify.js with TypeScript, and add a new emoji set from AOSP with the help of emoji-data npm module.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

Looks more modern now, doesn't it? πŸ˜‰

Slide mode enhancement

@pastleo made two slide mode plugins for CodiMD: Elapsed time bar and Spotlight. Big thinks to him. ❀️ You can see the usage and their implementation details in PR #1162 and #1169

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

Engineering

Refactor realtime module

Realtime module (realtime.js) is always being the core foundation of CodiMD. In this version, we've done a lot on this over 3k+ lines module. Splitting modules and reorganizing the connection lifecycle, these changes help CodiMD more reliable, more testable, and resolves some underlying problems. 😎

Read through the changes in PR #1228.

Enable Heroku Review Apps

During this version, we enabled Heroku Review Apps feature in the CodiMD repository. This provides CodiMD contributors and our team to review and test pull request with more confidence.

Configuration

Support GitHub Enterprise OAuth login

Supply enterpriseURL in your config.json or set CMD_GITHUB_ENTERPRISE_URL environment variable.

Learn more about configuration here.

CodiMD now supports three different styles of header link. Take 3.1. Good Morning my Friend! - Do you have 5$? this header for example, CodiMD would generate link id as follows:

type result description
keep-case 31-Good-Morning-my-Friend---Do-you-have-5 Default
lower-case 31-good-morning-my-friend---do-you-have-5
gfm 31-good-morning-my-friend---do-you-have-5 It works like 'lower-case', but making sure the ID is unique. 1st appearance:
31-good-morning-my-friend---do-you-have-5
2nd appearance:
31-good-morning-my-friend---do-you-have-5-1
3rd appearance:
31-good-morning-my-friend---do-you-have-5-2

Learn more about the configuration here.

Configurable default break style

You can now configure default break style for your CodiMD instance:

config.defaultUseHardbreak: true
(default)
config.defaultUseHardbreak: false
(CommonMark flavored)
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More β†’

You can stil set the break style explicitly in YAML meta.

Enhancements

  • Refactor realtime module #1228
  • Use chance.animal() to generate random guest name #1245
  • Support markdown "spoiler" container syntax #1249
  • Support markdownlint #1257
  • Support vega lite rendering #1251
  • New dockerfile #1258
  • New emoji sets #1261
  • Support markdown-it-ruby syntax #1271
  • New markdown table tools #1300
  • Configurable default break style #1306

Fixes

  • Update codemirror to 5.46.2 #1227
  • Upgrade mermaid to 8.2.3 #1242
  • Fix js-sequence-diagrams package bundling #1243
  • Upgrade depen #1247
  • Fix plantuml bugs #1250
  • Fix history api failed cause by circular dependency #1252
  • Fix(security) potential JSONP callback overwritten #1253
  • Remove BUILD_ASSETS environment variable #1259
  • Support empty spoiler container syntax #1272
  • Update outdated yarn lockfile #1288
  • Fix image upload caused permission denied error in docker #1313
  • Fix table editor key map might conflict with textcomplete keymap #1328
  • Update markdownlint & webpack bundling #1332
  • Fix slide mode cannot print as pdf #1339

Thank you

These pull requests came from CodiMD community, thank you guys for being here and making CodiMD awesome ❀️

Contribute to translations: