rebber-plugins
v4.4.0
Published
Stringifies custom MDAST nodes to LaTeX
Downloads
80
Readme
rebber-plugins
rebber-plugins is a collection of LaTeX stringifiers for custom mdast nodes. These plugins are intended to be used with rebber.
It currently supports:
- remark-abbr
- remark-align
- remark-custom-blocks
- remark-emoticons
- remark-footnotes
- remark-grid-tables
- remark-iframes
- remark-kbd
- remark-ping
- remark-sub-super
Installation
npm:
npm install rebber-plugins
Usage
const unified = require('unified')
const remarkParser = require('remark-parse')
const rebber = require('rebber')
const {contents} = unified()
.use(remarkParser, remarkConfig)
.use(rebber, rebberConfig)
.processSync('### foo')
console.log(contents);
Supported remark plugins
remark-abbr
remarkConfig
needs to be configured forremark-abbr
rebberConfig.overrides.abbr = require('rebber-plugins/dist/type/abbr')
rebberConfig.abbr = (displayText, definition) => ''
remark-align
remarkConfig
needs to be configured forremark-align
rebberConfig.overrides.centerAligned = require('rebber-plugins/dist/type/align')
rebberConfig.overrides.leftAligned = require('rebber-plugins/dist/type/align')
rebberConfig.overrides.rightAligned = require('rebber-plugins/dist/type/align')
rebberConfig.leftAligned = (innerText) => ''
rebberConfig.centerAligned = (innerText) => ''
rebberConfig.rightAligned = (innerText) => ''
rebberConfig.defaultType = (innerText, type) => ''
remark-custom-blocks
remarkConfig
needs to be configured forremark-custom-blocks
rebberConfig.overrides.errorCustomBlock = require('rebber-plugins/dist/type/customBlocks')
rebberConfig.errorCustomBlock = (innerText, environmentName) => ''
remark-emoticons
remarkConfig
needs to be configured forremark-emoticons
rebberConfig.overrides.emoticon = require('rebber-plugins/dist/type/emoticon')
rebberConfig.emoticons = remarkConfig.emoticons
remark-grid-tables
remarkConfig
needs to be configured forremark-grid-tables
rebberConfig.overrides.gridTable = require('rebber-plugins/dist/type/gridTable')
Proper handling of fenced code blocks in grid tables being hard to achieve in LaTeX, you can use the following preprocessor to automatically move the code blocks to an appendix section and replace the original location with a reference to the appendix section:
.use(rebber, {
preprocessors: {
iframe: require('rebber-plugins/dist/preprocessors/iframe')
}
})
remark-iframes
remarkConfig
needs to be configured forremark-iframes
iframe
nodes require some preprocessing before getting compiled to LaTeX:
const unified = require('unified')
const remarkParser = require('remark-parse')
const rebber = require('rebber')
const {contents} = unified()
.use(remarkParser, {
// see config options in the remark-iframes package
iframes: {
'www.dailymotion.com': {
tag: 'iframe',
width: 480,
height: 270,
disabled: false,
replace: [
['video/', 'embed/video/'],
],
thumbnail: {
format: 'http://www.dailymotion.com/thumbnail/video/{id}',
id: '.+/(.+)$'
}
},
}
})
.use(rebber, {
preprocessors: {
iframe: require('rebber-plugins/dist/preprocessors/iframe')
}
})
.processSync('some markdown')
console.log(contents);
remark-kbd
remarkConfig
needs to be configured forremark-kbd
rebberConfig.overrides.kbd = require('rebber-plugins/dist/type/kbd')
remark-ping
remarkConfig
needs to be configured forremark-ping
rebberConfig.overrides.ping = require('rebber-plugins/dist/type/ping')
remark-sub-super
remarkConfig
needs to be configured forremark-sub-super
rebberConfig.overrides.sub = require('rebber-plugins/dist/type/sub')
rebberConfig.overrides.sup = require('rebber-plugins/dist/type/sup')