mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-25 15:07:17 +02:00
Extend Marked.js in order to support React Native's code players (#109)
* Extend Marked.js to support SnackPlayer and the WebPlayer, as used in React Native
This commit is contained in:
parent
069d5b3870
commit
419a11af3e
3 changed files with 67 additions and 9 deletions
|
@ -71,6 +71,8 @@ class Head extends React.Component {
|
|||
{includeGithubButton &&
|
||||
<script async defer src="https://buttons.github.io/buttons.js" />
|
||||
}
|
||||
<script type="text/javascript" src={this.props.config.baseUrl + "js/webplayer.js"} />
|
||||
<script type="text/javascript" src="https://snack.expo.io/embed.js" />
|
||||
</head>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -11,8 +11,10 @@
|
|||
|
||||
const React = require("react");
|
||||
import DOM from 'react-dom-factories';
|
||||
const Prism = require("./Prism.js");
|
||||
const Header = require("./Header.js");
|
||||
const Prism = require("./Prism");
|
||||
const Header = require("./Header");
|
||||
const WebPlayer = require('./WebPlayer');
|
||||
const SnackPlayer = require('./SnackPlayer');
|
||||
|
||||
/**
|
||||
* Block-Level Grammar
|
||||
|
@ -816,12 +818,32 @@ Parser.prototype.tok = function() {
|
|||
</Header>
|
||||
);
|
||||
}
|
||||
case "code": {
|
||||
return (
|
||||
<Prism language={this.token.lang}>
|
||||
{this.token.text}
|
||||
</Prism>
|
||||
);
|
||||
case 'code': {
|
||||
const lang = this.token.lang, text = this.token.text;
|
||||
|
||||
if (
|
||||
lang && lang.indexOf('ReactNativeWebPlayer') === 0
|
||||
) {
|
||||
return (
|
||||
<WebPlayer params={lang.split('?')[1]}>
|
||||
{text}
|
||||
</WebPlayer>
|
||||
);
|
||||
}
|
||||
|
||||
if (lang && lang.indexOf('SnackPlayer') === 0) {
|
||||
return (
|
||||
<SnackPlayer params={lang.split('?')[1]}>
|
||||
{text}
|
||||
</SnackPlayer>
|
||||
);
|
||||
}
|
||||
|
||||
if (lang) {
|
||||
return <Prism language={lang}>{text}</Prism>;
|
||||
}
|
||||
|
||||
return <Prism>{text}</Prism>;
|
||||
}
|
||||
case "table": {
|
||||
const table = [];
|
||||
|
|
|
@ -1994,3 +1994,37 @@ footer .copyright {
|
|||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** Web player **/
|
||||
.web-player > iframe {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.web-player > .prism {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.web-player.desktop > iframe {
|
||||
display: block; }
|
||||
|
||||
.web-player.mobile > .prism {
|
||||
display: block; }
|
||||
|
||||
.token.keyword {
|
||||
color: #1990b8;
|
||||
}
|
||||
|
||||
.token.string,
|
||||
.token.regex {
|
||||
color: #2f9c0a;
|
||||
}
|
||||
|
||||
.token.boolean,
|
||||
.token.number {
|
||||
color: #c92c2c;
|
||||
}
|
||||
|
||||
.token.comment {
|
||||
color: #7d8b99;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue