Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@marp-team/marp-core

marp-team20.5kMIT4.1.0TypeScript support: included

The core of Marp tools

marp, markdown, parser, slide, deck, presentation

readme

@marp-team/marp-core

CircleCI Codecov npm LICENSE

The core of Marp converter.

In order to use on Marp tools, we have extended from the slide deck framework Marpit. You can use the practical Markdown syntax, advanced features, and official themes.

Install

npm install --save @marp-team/marp-core

Usage

We provide Marp class, that is inherited from Marpit.

import { Marp } from '@marp-team/marp-core'

// Convert Markdown slide deck into HTML and CSS
const marp = new Marp()
const { html, css } = marp.render('# Hello, marp-core!')

Features

We will only explain features extended in marp-core. Please refer to Marpit framework if you want to know the basic features.


Marp Markdown

Marp Markdown is a custom Markdown flavor based on Marpit and CommonMark. Following are principle differences from the original:


Built-in official themes

We provide bulit-in official themes for Marp. See more details in themes.

Default Gaia Uncover
<!-- theme: default --> <!-- theme: gaia --> <!-- theme: uncover -->

size global directive

Do you want a traditional 4:3 slide size? Marp Core adds the support of size global directive. The extended theming system can switch the slide size easier.

---
theme: gaia
size: 4:3
---

# A traditional 4:3 slide

Bulit-in themes for Marp have provided 16:9 (1280x720) and 4:3 (960x720) preset sizes.

Define size presets in custom theme CSS

If you want to use more size presets in your own theme, you have to define @size metadata(s) in theme CSS. Learn in the document of theme metadata for Marp Core.

Theme author does not have to worry an unintended design being used with unexpected slide size because user only can use pre-defined presets by author.


Emoji support

Emoji shortcode (like :smile:) and Unicode emoji 😄 will convert into the SVG vector image provided by twemoji 😄. It could render emoji with high resolution.


Math typesetting

We have Pandoc's Markdown style math typesetting support. Surround your formula by $...$ to render math as inline, and $$...$$ to render as block.

Markdown Rendered slide
Render inline math such as $ax^2+bc+c$.

$$ I_{xx}=\int\int_Ry^2f(x,y)\cdot{}dydx $$

$$
f(x) = \int_{-\infty}^\infty
    \hat f(\xi)\,e^{2 \pi i \xi x}
    \,d\xi
$$

Math typesetting support

You can choose using library for math from MathJax and KaTeX in math global directive (or JS constructor option). By default, we prefer MathJax for better rendering and syntax support, but KaTeX is faster rendering if you had a lot of formulas.

math global directive

Through math global directive, Marp Core is supporting to declare math library that will be used within current Markdown.

Set mathjax or katex in the math global directive like this:

---
# Declare to use KaTeX in this Markdown
math: katex
---

$$
\begin{align}
x &= 1+1 \tag{1} \\
  &= 2
\end{align}
$$

If not declared, Marp Core will use MathJax to render math. But we recommend to declare the library whenever to use math typesetting.

[!WARNING] The declaration of math library is given priority over math JS constructor option, but you cannot turn on again via math global directive if disabled math typesetting by the constructor.


Auto-scaling features

Marp Core has some auto-scaling features:

Auto-scaling is available if defined @auto-scaling metadata in an using theme CSS.

/*
 * @theme foobar
 * @auto-scaling true
 */

All of Marp Core's built-in themes are ready to use full-featured auto scalings. If you're the theme author, you can control target elements which enable auto-scaling by using metadata keyword(s).

This feature depends to inline SVG, so note that it will not working if disabled Marpit's inlineSVG mode by setting inlineSVG: false in constructor option.

[!WARNING] Auto-scaling is designed for horizontal scaling. In vertical, the scaled element still may stick out from bottom of slide if there are a lot of contents around it.

Fitting header

When the headings contains <!-- fit --> comment, the size of headings will resize to fit onto the slide size.

# <!-- fit --> Fitting header

This syntax is similar to Deckset's [fit] keyword, but we use HTML comment to hide a fit keyword on Markdown rendered as document.

Auto-shrink the block

Some of blocks will be shrunk to fit onto the slide. It is useful preventing stuck out the block from the right of the slide.

| | Traditional rendering | Auto-scaling | | :------------------: | :----------------------------------------------: | :-------------------------------------: | | Code block | Traditional rendering | Auto-scaling | | KaTeX math block | Traditional rendering | Auto-scaling |

[!NOTE] MathJax math block will always be scaled without even setting @auto-scaling metadata.


Constructor options

You can customize a behavior of Marp parser by passing an options object to the constructor. You can also pass together with Marpit constructor options.

[!NOTE]

Marpit's markdown option is accepted only object options because of always using CommonMark.

const marp = new Marp({
  // marp-core constructor options
  html: true,
  emoji: {
    shortcode: true,
    unicode: false,
    twemoji: {
      base: '/resources/twemoji/',
    },
  },
  math: 'katex',
  minifyCSS: true,
  script: {
    source: 'cdn',
    nonce: 'xxxxxxxxxxxxxxx',
  },
  slug: false,

  // It can be included Marpit constructor options
  looseYAML: false,
  markdown: {
    breaks: false,
  },
})

html: boolean | object

Setting whether to render raw HTML in Markdown. It's an alias to markdown.html (markdown-it option) but has additional feature about HTML allowlist.

  • (default): Use Marp's default allowlist.
  • true: The all HTML will be allowed.
  • false: All HTML except supported in Marpit Markdown will be disallowed.

By passing object, you can set the allowlist to specify allowed tags and attributes.

// Specify tag name as key, and attributes to allow as string array.
{
  a: ['href', 'target'],
  br: [],
}
// You may use custom attribute sanitizer by passing object.
{
  img: {
    src: (value) => (value.startsWith('https://') ? value : '')
  }
}

By default, Marp Core allows known HTML elements and attributes that are considered as safe. That is defined as a readonly html member in Marp class. See the full default allowlist in the source code.

[!NOTE] Whatever any option is selected, <!-- HTML comment --> and <style> tags are always parsed by Marpit for directives / tweaking style.

emoji: object

Setting about emoji conversions.

  • shortcode: boolean | "twemoji"

    • By setting false, it does not convert any emoji shortcodes.
    • By setting true, it converts emoji shortcodes into Unicode emoji. :dog: → 🐶
    • By setting "twemoji" string, it converts into twemoji vector image. :dog:🐶 (default)
  • unicode: boolean | "twemoji"

    • It can convert Unicode emoji into twemoji when setting "twemoji". 🐶 → 🐶 (default)
    • If you not want this aggressive conversion, please set false.
  • twemoji: object

For developers: When you setting unicode option as true, Markdown parser will convert Unicode emoji into tokens internally. The rendering result is same as in false.

math: boolean | "mathjax" | "katex" | object

Enable or disable math typesetting syntax and math global directive.

You can choose the default library for math by passing "mathjax" (default) or "katex", and modify more settings by passing an object of sub-options.

  • lib: "mathjax" | "katex"

    • Choose the default library for math typesetting. (mathjax by default)
  • katexOption: object

    • Options that will be passed to KaTeX. Please refer to KaTeX document.
  • katexFontPath: string | false

    • By default, Marp Core will use online web-font resources through jsDelivr CDN. You have to set path to fonts directory if you want to use local resources. If you set false, we will not manipulate the path (Use KaTeX's original path: fonts/KaTeX_***-***.woff2).

minifyCSS: boolean

Enable or disable minification for rendered CSS. true by default.

script: boolean | object

Setting about an injected helper script for the browser context. This script is necessary for applying WebKit polyfill and rendering auto-scaled elements correctly.

  • true (default): Inject the inline helper script into after the last of slides.
  • false: Don't inject helper script. Developer must execute a helper script manually, exported in @marp-team/marp-core/browser. Requires bundler such as webpack. It's suitable to the fully-controlled tool such as Marp Web.

You can control details of behavior by passing object.

  • source: string - Choose the kind of script.

    • inline: Inject the inline script. It would work correctly also in the environment that there is not network. (default)
    • cdn: Inject script referred through jsDelivr CDN. It's better choice on the restricted environment by CSP.
  • nonce: string - Set nonce attribute of <script>.

slug: boolean | function | object

Configure slugification for headings. By default, Marp Core tries to make the slug by the similar way to GitHub. It should be compatible with Markdown Language Server.

  • true (default): Assign auto-generated id attribute from the contents of <h1>-<h6> headings.
  • false: Disable auto-assigning slug to headings.
  • function: Set the custom slugifier function, that takes one argument: the content of the heading. It must return a generated slug string.

You can control details of behavior by passing object.

  • slugifier: function - Set the custom slugifier function.
  • postSlugify: function - Set the post-process function after generated a slug. The function takes 2 arguments, the string of generated slug and the index of the same slug, and must return a string for assigning to id attribute of the heading.

    By default, Marp Core applies the post-process to avoid assigning duplicated ids in the document: (slug, index) => (index > 0 ? `${slug}-${index}` : slug)

    Assigning the custom post-process function is also helpful to append the custom prefix and suffix to the generated slug: (slug, i) => `prefix:${slug}:${i}`

[!NOTE] Take care not to confuse Marp Core's slug option and Marpit's anchor option. slug is for the Markdown headings, and anchor is for the slide elements.

Marp class is extended from Marpit class so you can customize both options in the constructor. To fully disable auto-generated id attribute, set both options as false. (This is important to avoid breaking your Web application by user's Markdown contents)

Contributing

Are you interested in contributing? Please see CONTRIBUTING.md and the common contributing guideline for Marp team.

Author

Managed by @marp-team.

License

This package releases under the MIT License.

changelog

Change Log

[Unreleased]

v4.1.0 - 2025-05-16

Added

  • Transform Unicode 16 emojis into Twemoji images (#399)
  • Test against Node.js 24 (#399)

Changed

  • Upgrade Marpit to v3.1.3 (#398, #399)
  • Upgrade development Node.js LTS and dependent packages to the latest version (#399)

v4.0.1 - 2024-12-24

Security

  • Fixed: Improper neutralization of HTML sanitization by comments that may lead to XSS (CVE-2024-56510 reported by @Ry0taK)

Changed

  • Upgrade Marpit to v3.1.2 (#390)
  • Upgrade development Node.js LTS and dependent packages to the latest version (#391)

v4.0.0 - 2024-09-09

[!IMPORTANT] The new slide container styles, block container and safe centering, produce breaking changes to existing slide layouts. (#382)

If you are using the built-in theme that contents are vertically centered (or the custom theme that depends on such themes), you can tweak the style in Markdown or the custom theme to get back the previous flex container.

  • For default and uncover theme:

    <style>
      section {
        display: flex;
      }
    </style>
  • For gaia theme's lead class:

    <style>
      section.lead {
        display: flex;
      }
    </style>

Breaking

  • Drop support against end-of-lifed Node.js versions (v16 and earlier), and now v18+ are required (#359)
  • The slide container of built-in themes became the block element and adopted safe centering (#372, #382)

Added

  • Transform emojis up to Unicode 15.1 into Twemoji images (#380)

Changed

  • Upgrade Marpit to v3.1.1 (#378)
    • Bump markdown-it to v14.1.0, and follow the latest spec of CommonMark 0.31.2
    • Support for CSS nesting (cssNesting constructor option)
  • Use simpler CSS minification when minifyCSS option is enabled (#381)
  • Relax HTML allowlist: Allowed a lot of HTML elements and attributes by default (#301, #383)
  • Make the image background transparent in default theme (#196, #371, #386)

  • Upgrade development Node.js to v20 LTS (#359)

  • Upgrade dependent packages to the latest version (#380)
  • Switch package manager from yarn to npm (#379)
  • Migrate ESLint config to Flat config (#385)

Fixed

  • Suppress uncaught DOMException error while upgrading <marp-pre> Web Component elements in Firefox (#370, #384)

v3.9.1 - 2024-12-24

Security

  • Improper neutralization of HTML sanitization by comments may lead to XSS (CVE-2024-56510 reported by @Ry0taK)

v3.9.0 - 2023-10-15

Added

Changed

  • Upgrade Marpit to v2.6.1 (#358)
    • Added cssContainerQuery constructor option
    • Added lang global directive and constructor option
  • Slightly changed the color scheme of default theme to match as the current GitHub style (#358)
  • Upgrade Node.js and dependent packages to the latest version (#358)

v3.8.1 - 2023-09-11

Changed

Fixed

  • Regression: Auto-scaling for KaTeX block is always enabled regardless of @auto-scaling theme metadata (#353, #354)

v3.8.0 - 2023-08-01

Added

  • highlightjs getter, to access the generated highlight.js instance per Marp Core instances (#350)

Changed

  • Marp Core instance is no longer using the shared highlight.js instance (#350)
  • Upgrade Node.js and dependent packages to the latest version (#351)

v3.7.0 - 2023-06-09

Changed

  • Upgrade Marpit to v2.5.0 (#342)
    • Added paginate: skip and paginate: hold
  • Upgrade Node.js and dependent packages to the latest version (#345)

Fixed

  • Regression: Not working emoji.twemoji.base constructor option (#343, #344)

v3.6.0 - 2023-04-01

Added

  • Assign auto-generated slug to id attribute of each headings (#299, #338)
  • slug constructor option (#338)

Changed

  • Upgrade Node.js and dependent packages (#336)
  • Use @twemoji/api package instead of twemoji (#337)

v3.5.0 - 2023-02-18

Changed

  • Upgrade marpit-svg-polyfill to v2.1.0 (#329)
  • Upgrade Node.js and dependencies (#331)

Deprecated

  • An observer() function exported by @marp-team/marp-core/browser, which was actually designed for internal (#330)

v3.4.2 - 2023-01-08

Fixed

  • Patch KaTeX style to fix visibility of some math symbol in Chromium-flavored browsers (#326)

Changed

  • Upgrade Node and dependent packages (#327)

v3.4.1 - 2022-12-24

Changed

  • Bundle external modules used by emoji plugin (#323)
  • Upgrade dependent packages to the latest version (#325)

v3.4.0 - 2022-11-19

Added

  • Test against Node.js 18 LTS (#318)

Changed

  • Change CDN for Twemoji images from default to jsDelivr (#320, #321)
  • Upgrade Marpit to v2.4.2 (#318)
  • Upgrade development Node.js and dependent packages (#318)

Removed

  • Test against no longer supported Node.js 12 (#318)

v3.3.3 - 2022-09-08

Fixed

  • Prebundle PostCSS plugins for minifyCSS option, to fix incompatibility with ESM (#314, #315)

v3.3.2 - 2022-08-12

Fixed

  • Flush display of <marp-auto-scaling> only when resized the scaling wrapper (#313)

v3.3.1 - 2022-08-11

Fixed

  • Apply workaround for vanished <marp-auto-scaling> in Chrome 105+ (#312)

v3.3.0 - 2022-08-11

Changed

  • Upgrade Marpit to v2.4.0 (#310)
    • anchor constructor option for slide anchor customization
  • Upgrade dependent packages to the latest version (#310)
  • Replace Google Fonts in gaia theme to Bunny Fonts (#311)

v3.2.1 - 2022-06-05

Fixed

  • Decrease specificity of highlight.js classes for default theme (#304, #307)
  • Apply hydration for custom elements whenever calling browser script (#305)
  • An empty auto-scaling component becomes unnecessary bigger (#306)

v3.2.0 - 2022-05-21

Changed

v3.1.2 - 2022-04-24

Fixed

  • Make compatible with a patched markdown-it-emoji (#294)

v3.1.1 - 2022-04-12

Changed

  • Upgrade Marpit to v2.2.4 (#291)
    • Fixed: Scoped style does not style pseudo elements section::before and section::after in advanced background
  • Upgrade marpit-svg-polyfill to v2.0.0 (#291)
  • Upgrade dependent packages to the latest version (#291)

v3.1.0 - 2022-03-29

Added

  • Transform Unicode 14.0 emojis into images (#289)

Fixed

  • Disable thickening MathJax strokes in print media (#287, #290)

Changed

  • Upgrade Marpit to v2.2.3 (#289)
  • Upgrade Node and dependent packages to the latest version (#289)

v3.0.2 - 2022-01-23

Fixed

  • Refactor auto scaling component (#276)
  • Preserve HTML comments within html block (#282)

Changed

  • Upgrade Marpit to v2.2.2 (#281)
  • Upgrade dependent packages to the latest version (#281)

v3.0.1 - 2022-01-08

Changed

  • Upgrade Marpit to v2.2.1 (#275)
  • Upgrade dependent packages to the latest version (#275)

v3.0.0 - 2021-11-22

⚡️ Breaking

  • Dropped Node 10 support and now requires the latest version of Node.js v12 and later (#260, #266)
  • Changed the default library for math typesetting from KaTeX to MathJax (#159, #236, #271)

Added

  • Auto-scaling for code block in uncover theme (#263)
  • Allow color customization through CSS variables in default theme (#209, #266)

Changed

  • Web Components based new auto scaling (#96, #248, #263)
  • Match color schemes for default theme to the latest GitHub (#266)
  • Adopt ::where() selector to class variants for making styles overridable (#244, #267)
  • Disable autolink for URL text that has no http(s):// protocol (#268)

<summary>History of versions older than v3</summary>

v2.4.2 - 2022-04-24

Fixed

  • Make compatible with a patched markdown-it-emoji (#294)

v2.4.1 - 2022-04-12

Changed

  • Upgrade Marpit to v2.2.4 (#291)
    • Fixed: Scoped style does not style pseudo elements section::before and section::after in advanced background
  • Upgrade marpit-svg-polyfill to v2.0.0 (#291)
  • Upgrade dependent packages to the latest version (#291)

v2.4.0 - 2022-03-29

Added

  • Transform Unicode 14.0 emojis into images (#289)

Fixed

  • Disable thickening MathJax strokes in print media (#287, #290)

Changed

  • Upgrade Marpit to v2.2.3 (#289)
  • Upgrade Node and dependent packages to the latest version (#289)

v2.3.2 - 2022-01-23

Fixed

  • Preserve HTML comments within html block (#282)

Changed

  • Upgrade Marpit to v2.2.2 (#281)
  • Upgrade dependent packages to the latest version (#281)

v2.3.1 - 2022-01-08

Changed

  • Upgrade Marpit to v2.2.1 (#275)
  • Upgrade dependent packages to the latest version (#275)

v2.3.0 - 2021-11-22

Changed

v2.2.0 - 2021-10-29

Changed

  • Upgrade Marpit to v2.1.2 (#262)
  • Upgrade dependent packages to the latest version (#262)
  • Update default theme to match styles into the latest GitHub's light color scheme (#262)

v2.1.1 - 2021-08-14

Fixed

  • Define the default 16:9 size preset to built-in themes (#250)

Changed

  • Upgrade Marpit to v2.1.1 (#253)
  • Upgrade dependent packages to the latest version (#253)

v2.1.0 - 2021-07-19

Added

  • math global directive for switching math typesetting library in current Markdown (#243, #246)

Changed

  • Upgrade dependent packages to the latest version (#241)

Deprecated

  • End-of-Lifed Node.js 10 support (Still can use but no longer tested) (#241)

v2.0.3 - 2021-05-17

Fixed

  • Fitting header with single emoji has unexpected zoom animation (#232, #233)

Changed

  • Upgrade dependent packages to the latest version (#234)

v2.0.2 - 2021-05-08

Fixed

  • Fix to work markdown.typographer option (#228)

Changed

  • Upgrade dependent packages to the latest version (#229)

v2.0.1 - 2021-04-27

Changed

  • Upgrade Marpit to v2.0.1 (#225)
  • Upgrade dependent packages to the latest version (#225)

v2.0.0 - 2021-04-24

Added

  • Allow color customization through CSS variables in Gaia and Uncover theme (#209, #221)

May break appearance of existing presentation if you have a slide with custom style.

Changed

  • Upgrade Marpit to v2.0.0 (#220)
  • Upgrade Node LTS and dependent packages to the latest version (#222)

v1.5.0 - 2021-04-02

Fixed

  • Fixed a deprecation warning of highlight.js (#219)

Changed

  • Upgrade Node LTS and dependent packages to the latest version (#219)

v1.4.3 - 2021-02-11

Fixed

  • KaTeX does not be rendered together with header/footer (#214, #215)

v1.4.2 - 2021-02-07

Changed

v1.4.1 - 2021-02-06

Fixed

  • KaTeX: Persist defined global macro between math renderings (#212)
  • MathJax: Prevent leaking defined macro between Markdown renderings (#212)

Changed

  • Upgrade Marpit to v1.6.4 (#210)
  • Upgrade dependent packages to the latest version (#210)
  • Rename master branch into main (#211)

v1.4.0 - 2020-12-05

Breaking

  • Stopped auto-detection of syntax highlight for code block (#202, #205)

Added

  • Support more emoji shorthands (#203)

Changed

  • Use Node 14 LTS for development (#203)
  • Upgrade Marpit to v1.6.3 (#203)
  • Upgrade dependent packages to the latest version (#203)

Removed

  • observer() with boolean argument in @marp-team/marp-core/browser (#204)

v1.3.0 - 2020-08-18

Changed

  • Upgrade Marpit SVG polyfill to v1.7.0 (#184, #185)
  • Update browser script to make changeable the target root (#185)
  • Upgrade dependent packages to the latest version (#186)

Deprecated

  • observer() with boolean argument from @marp-team/marp-core/browser has been deprecated in favor of the usage of the option object (#185)

v1.2.2 - 2020-07-18

Added

  • Setup GitHub Dependabot for marp-team packages (#172)

Changed

v1.2.1 - 2020-07-09

Added

  • Test against Node 14 (#171)

Changed

  • Upgrade Marpit SVG polyfill to v1.4.0 (#170)
  • Upgrade development Node LTS and dependent packages to the latest version (#170)
  • Migrate from TSLint to ESLint (#169)

v1.2.0 - 2020-06-08

Added

  • Transform Unicode 13.0 emojis into SVG images (#167)
  • Add MathJax v3 support to math plugin (#164, #165 by @tani, #166)
  • Add sandbox directory to make easy to develop core (#157)

Changed

  • Upgrade Marpit to v1.6.2 and Marpit SVG polyfill to v1.3.0 (#167)
  • Upgrade dependent packages to the latest version (#167)

v1.1.1 - 2020-04-18

Changed

  • Upgrade Marpit to v1.5.2 (#156)
  • Upgrade dependent packages to the latest version (#154, #156)

v1.1.0 - 2020-03-15

Changed

  • Upgrade Marpit to v1.5.1 (#153)
  • Upgrade Node and dependent packages to the latest version (#153)

v1.0.1 - 2020-01-17

Fixed

  • v1.0.0 throws "z is not a function" (#146, #147)

v1.0.0 - 2020-01-13

Breaking

  • Marp Core requires Node >= 10 (#143)

Added

  • Expose selected size as data-size attribute (#135, #144)

Changed

  • Upgrade Marpit to v1.5.0 (#142)
  • Update community health files (#133)
  • Upgrade Node and dependent packages to the latest version (#138, #143)

Removed

  • EOL Node 8 is no longer supported (#143)
  • Remove deprecated Marp.ready() (Use @marp-team/marp-core/browser entrypoint) (#145)

v0.15.2 - 2019-11-18

Fixed

  • Fix visual regression by moving script position to after closing section (#131)

Changed

  • Upgrade dependent packages to the latest version (#130)

v0.15.1 - 2019-11-06

Changed

  • Upgrade Marpit to v1.4.2 (#126)
  • Upgrade dependent packages to the latest version (#126)

Removed

  • Remove dollar prefix plugin for obsolated syntax (#127)

v0.15.0 - 2019-11-05

Added

Fixed

  • Fix type definition for browser to export default func (#120)

Changed

  • Upgrade Node for development to v12 LTS (#125)
  • Upgrade dependent packages to the latest version (#125)

v0.14.0 - 2019-10-19

Added

  • Inject the inline helper script for browser into rendered Markdown automatically (#115)
  • Add script constructor option (#115)

Changed

  • Upgrade Marpit to v1.4.1 (#113)
  • Upgrade dependent packages to the latest version (#109, #113)
  • Apply font-display: swap to Google Fonts in gaia theme (#114)
  • Define word-wrap css property as break-word in gaia and uncover theme (#108, #119)
  • Reduce inconsistency about html option between Marp Core and markdown-it option (#111, #117)

Deprecated

  • Marp.ready() had deprecated in favor of new entrypoint @marp-team/marp-core/browser (#115)

Removed

  • Remove unused inline web font from default theme (#116)

v0.13.1 - 2019-09-13

Fixed

  • Fix dollar prefix option to support size directive (#107)

v0.13.0 - 2019-09-12

Added

  • Add minifyCSS option (#103)
  • Add dollarPrefixForGlobalDirectives option (not for users) (#104)

Fixed

  • Optimize default theme CSS by removing .markdown-body selector on build time (#106)

Changed

  • Update CircleCI configuration to use v2.1 (#101)
  • Upgrade Marpit to v1.4.0 (#105)
  • Upgrade Node and dependent packages to the latest version (#105)

v0.12.1 - 2019-08-23

Changed

  • Upgrade Marpit to v1.3.2 (#100)
  • Upgrade dependent packages to the latest version (#100)

v0.12.0 - 2019-07-13

Changed

  • Upgrade Marpit to v1.3.0 and Marpit SVG polyfill to v1.1.1 (#97, #99)
  • Upgrade Node and dependent packages to the latest version (#97)

v0.11.0 - 2019-06-24

Added

  • size global directive and @size theme metadata to get easier way for using 4:3 deck in built-in theme (#91, #94)

v0.10.2 - 2019-06-21

Fixed

  • Improve bundle size of script for browser to be about one fifth (#93)

v0.10.1 - 2019-06-17

Changed

  • Upgrade Marpit to v1.2.0 and Marpit SVG polyfill to v1.0.0 (#92)
  • Upgrade Node and dependent packages to the latest version (#92)

v0.10.0 - 2019-06-03

Changed

  • Upgrade Marpit to v1.1.0 (#89)
  • Upgrade dependent packages to the latest version (#89)

v0.9.0 - 2019-05-06

Breaking

  • Marp Core requires Node >= 8.

Added

  • Shorthand for text color by image syntax, from Marpit v1 (#87)
  • Test with Node 12 (Erbium) (#87)
  • Automate GitHub release (#87)

Fixed

  • Improve rendering compatibility of uncover theme's pagination in PDF.js (#84, #86)

Changed

  • Upgrade Marpit to v1 (#87)
  • Swap Sass compiler from node-sass to Dart Sass (#87)

Removed

  • Remove unnecessary dependency of markdown-it (#88)

v0.8.0 - 2019-04-08

Breaking

  • Change auto-scaling features to require enabling by @auto-scaling metadata of theme CSS explicitly (#72, #81)

Changed

  • Upgrade Marpit to v0.9.2 (#80, #82)
  • Upgrade dependent packages to the latest version (#82)

Removed

  • Deprecated twemojiBase option (#80)

v0.7.1 - 2019-03-20

Fixed

  • Fix incorrect scaling in WebKit browser with custom zoom factor, by updating @marp-team/marpit-svg-polyfill to v0.3.0 (#79)

v0.7.0 - 2019-03-13

Added

Changed

  • Upgrade Node and dependent packages to the latest (#76)
  • Output warning when used deprecated twemojiBase option (#77)

v0.6.2 - 2019-03-09

Changed

  • Use markdown-it's html option instead of Marp Core option to sanitize HTML (#74)
  • Upgrade dependent packages to the latest (#75)

v0.6.1 - 2019-02-13

Removed

  • Remove dependency to PostCSS (#71)

Changed

  • Upgrade dependent packages to the latest (#73)

v0.6.0 - 2019-02-04

Added

  • Allow using twemoji via PNG by added emoji.twemoji.ext option (#67)
  • Support custom sanitizer for HTML attributes within allowlist (#68)
  • Add usage of multiple classes in Gaia theme (#69)

Fixed

  • Fix over-sanitized attributes with HTML allowlist (#68)

Changed

  • Normalize known self-closing HTML elements with xhtmlOut: true (#66)
  • Upgrade Node and dependent packages to the latest (#70)

Deprecated

  • emoji.twemojiBase option has soft-deprecated in favor of emoji.twemoji.base (#67)

v0.5.2 - 2019-01-31

Changed

  • Upgrade dependent packages to latest version, includes Marpit v0.7.0 (#63)
  • Support an enhanced Marpit enable state (#64)

v0.5.1 - 2019-01-26

Changed

v0.5.0 - 2019-01-20

Added

  • Colored <strong> element in headings for highlighting (#59)
  • Support env option and htmlAsArray env in render(), from Marpit v0.6.0 (#61)

Fixed

  • Prevent showing scrollbar in code block (#60)
  • Use the real compiled Sass in test (#61)

Changed

  • Upgrade dependent packages to latest version (#61)

v0.4.1 - 2018-12-31

Fixed

  • Fix incorrect scaling in Marpit SVG polyfill (#58)

v0.4.0 - 2018-12-29

Added

Changed

v0.3.1 - 2018-12-23

Changed

v0.3.0 - 2018-12-02

Added

Fixed

  • Fix incorrect accessibility of members in Marp (#51, #53)

Changed

  • Upgrade Node and dependent packages to latest version (#52)
  • Run yarn audit while running CI / publish processes (#52)

v0.2.1 - 2018-11-24

Security

  • Upgrade dependent packages to prevent the malicious attack in dependencies (#50)

v0.2.0 - 2018-11-21

Added

  • Support the scoped inline style through <style scoped> from Marpit v0.3.0 (#49)

Fixed

Changed

  • Upgrade dependent packages to latest version (#49)

v0.1.0 - 2018-11-06

Breaking

  • No longer work with Node v6.14.2 and v6.14.3 (#45)

Added

Fixed

  • Force reflow on updated fitting elements in Edge (#43)

Changed

  • Support Node 10.x and use its LTS for development (#44)
  • Upgrade dependent packages to latest version (#45)

v0.0.12 - 2018-10-13

Added

  • Support collecting HTML comments for presenter notes, from Marpit v0.2.0 (#39)
  • Provide CJS version bundle for browser (#41)
  • Add observe argument into functions for browser to allow controlling observation frames (#41)

Fixed

  • Add yarn resolutions to flatten katex to prevent double-bundling (#40)
  • Prevent reflow by calling setAttribute in browser context only if value is updated (#41)

Changed

  • Update license author to marp-team (#38)
  • Upgrade dependent packages to latest version (#42)

v0.0.11 - 2018-10-09

Fixed

  • Fix fitting header regression with broken comment traversing (#37)

v0.0.10 - 2018-10-05

Added

  • Add CI test against Node v6 Boron Maintenance LTS (#35)

Changed

  • Update code style to use for-of loop instead of iterate functions if possible (#34)
  • Upgrade dependent packages to latest, includes marp-team/marpit v0.1.3 (#36)

v0.0.9 - 2018-09-20

Changed

v0.0.8 - 2018-09-18

Changed

v0.0.7 - 2018-09-15

Added

  • Support auto scaling for math block (#30)

Changed

  • Upgrade Node LTS and dependent packages (#31)

v0.0.6 - 2018-09-06

Fixed

v0.0.5 - 2018-09-02

Added

  • Support HTML allowlisting (#26)

Fixed

  • Apply color directive to heading of default theme (#28)

Changed

v0.0.4 - 2018-08-29

Added

  • Support auto scaling of code block and fence (for default / gaia theme) (#23, #25)

Changed

  • Upgrade dependencies to latest (#24)

v0.0.3 - 2018-08-22

Added

  • Add a separated bundle of Marp.ready() for browser (#21)

Fixed

  • Fix fitting header's size on printing (#22)

v0.0.2 - 2018-08-19

Added

  • Support fitting header (#17)
  • Add uncover theme (#18)
  • Add emoji support with twemoji (#19)

Fixed

  • Reduce bundle size by stopping to resolve dependencies (#15)

Changed

  • Upgrade dependencies to latest (#16)

v0.0.1 - 2018-08-10

  • Initial release.