You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
985 B
43 lines
985 B
/*jshint ignore:start */
|
|
var CodeBox = React.createClass({
|
|
getInitialState: function() {
|
|
return {
|
|
html: ''
|
|
};
|
|
},
|
|
componentDidMount: function() {
|
|
this.props.src = this.props.src.replace(/\.md$/, '.html');
|
|
$.get('/' + this.props.src).then(function(data) {
|
|
var item = $(data);
|
|
item.find('.highlight').appendTo(item);
|
|
this.setState({
|
|
html: item.html()
|
|
});
|
|
}.bind(this));
|
|
},
|
|
handleClick: function(e) {
|
|
if (!$(e.target).hasClass('collapse')) {
|
|
return;
|
|
}
|
|
$(e.target).parent().parent().find('.highlight').slideToggle(150);
|
|
},
|
|
render: function() {
|
|
var html = this.state.html;
|
|
return (
|
|
<div className="code-box"
|
|
onClick={this.handleClick}
|
|
dangerouslySetInnerHTML={{__html: html}}>
|
|
</div>
|
|
);
|
|
}
|
|
});
|
|
|
|
var CodeBoxes = React.createClass({
|
|
render: function() {
|
|
return (
|
|
<div className="code-boxes">
|
|
{this.props.children}
|
|
</div>
|
|
);
|
|
}
|
|
});
|
|
|