codegroup plugin for GitBook
npm install gitbook-plugin-codegroupGitBook CodeGroup Plugin
==============


book.json
``js`
{
"plugins": ["codegroup"]
}
then run
`bash`
$ gitbook install
book.json
`js`
"pluginsConfig": {
"codegroup":{
"defaultTabName": "Code",
"tabNameSeperator": "::",
"rememberTabs": true
}
}
| a fallback tab name if no language is specied for a fenced code block |
| tabNameSeperator {string}
default: :: | a string delimeter that differentiates the language name from the tab name |
| rememberTabs {boolean}
default: false |determines if the plugin will remember the selected tab, given the info in the codegroup has not changed |Template
{% codegroup %}
`js::sdk
var s = console.log;
`
`js
var s = console.warn;
`
{% endcodegroup %}
##### Args
codegroup takes optional named arguments: -
rememberTabs (boolean): Overrides value in pluginsConfig.codegroup.rememberTabs.
- defaultTabName (string): A default tab name to use for the specific code group. Overrides value in pluginsConfig.codegroup.defaultTabNameexample:
{% codegroup rememberTabs=true, defaultTabName="Snippet" %}
`js::nodejs
var s = "sample";
`
`swift
let s: String = "sample";
`
{% endcodegroup %}
#### Notes:
- ebook/PDF compatible
- The goal of this project is to write codegroups/codetabs as close to markdown as possible
$3
As seen in the example above, tabs can have custom names for situations where it is required to group the same language and there is need to differentiate them.
The example above shows a code block
js::sdk, where js is the language syntax to be used and sdk denotes the name to be seen in the tab; :: (configurable) is used to separate both terms.$3
It is also possible to supply a
Print Title using a second tabNameSeperatorExamples:
| Example | Description |
| ------------- | ------------- |
| Explicit
js::sdk::Javascript SDK| When converted to pdf, Javascript SDK will be placed above the code block |
| Syntax+Print Only
js::::Javascript SDK| It is possible to omit the custom tab name by using a double tabNameSeperator |
| TabName+Print Only
::sdk::Javascript SDK| It is possible to omit the syntax name to only define the custom tab name and print title |
| Print Only
::::Javascript SDK |It is possible to omit the syntax name and custom tab name by using a double tabNameSeperator` |Pull requests are welcome