committed by
Paul O’Shannessy
8 changed files with 17 additions and 98 deletions
@ -1,82 +0,0 @@ |
|||||
/** |
|
||||
* Copyright 2013-present, Facebook, Inc. |
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* This source code is licensed under the BSD-style license found in the |
|
||||
* LICENSE file in the root directory of this source tree. An additional grant |
|
||||
* of patent rights can be found in the PATENTS file in the same directory. |
|
||||
*/ |
|
||||
|
|
||||
/** |
|
||||
* This is a web interface for the HTML to JSX converter contained in |
|
||||
* `html-jsx-lib.js`. |
|
||||
*/ |
|
||||
;(function() { |
|
||||
|
|
||||
var HELLO_COMPONENT = "\ |
|
||||
<!-- Hello world -->\n\ |
|
||||
<div class=\"awesome\" style=\"border: 1px solid red\">\n\ |
|
||||
<label for=\"name\">Enter your name: </label>\n\ |
|
||||
<input type=\"text\" id=\"name\" />\n\ |
|
||||
</div>\n\ |
|
||||
<p>Enter your HTML here</p>\ |
|
||||
"; |
|
||||
|
|
||||
var HTMLtoJSXComponent = React.createClass({ |
|
||||
getInitialState: function() { |
|
||||
return { |
|
||||
outputClassName: 'NewComponent', |
|
||||
createClass: true |
|
||||
}; |
|
||||
}, |
|
||||
onReactClassNameChange: function(evt) { |
|
||||
this.setState({ outputClassName: evt.target.value }); |
|
||||
}, |
|
||||
onCreateClassChange: function(evt) { |
|
||||
this.setState({ createClass: evt.target.checked }); |
|
||||
}, |
|
||||
setInput: function(input) { |
|
||||
this.setState({ input: input }); |
|
||||
this.convertToJsx(); |
|
||||
}, |
|
||||
convertToJSX: function(input) { |
|
||||
var converter = new HTMLtoJSX({ |
|
||||
outputClassName: this.state.outputClassName, |
|
||||
createClass: this.state.createClass |
|
||||
}); |
|
||||
return converter.convert(input); |
|
||||
}, |
|
||||
render: function() { |
|
||||
return ( |
|
||||
<div> |
|
||||
<div id="options"> |
|
||||
<label> |
|
||||
<input |
|
||||
type="checkbox" |
|
||||
checked={this.state.createClass} |
|
||||
onChange={this.onCreateClassChange} /> |
|
||||
Create class |
|
||||
</label> |
|
||||
<label style={{display: this.state.createClass ? '' : 'none'}}> |
|
||||
· |
|
||||
Class name: |
|
||||
<input |
|
||||
type="text" |
|
||||
value={this.state.outputClassName} |
|
||||
onChange={this.onReactClassNameChange} /> |
|
||||
</label> |
|
||||
</div> |
|
||||
<ReactPlayground |
|
||||
codeText={HELLO_COMPONENT} |
|
||||
renderCode={true} |
|
||||
transformer={this.convertToJSX} |
|
||||
showCompiledJSTab={false} |
|
||||
editorTabTitle="Live HTML Editor" |
|
||||
/> |
|
||||
</div> |
|
||||
); |
|
||||
} |
|
||||
}); |
|
||||
|
|
||||
ReactDOM.render(<HTMLtoJSXComponent />, document.getElementById('jsxCompiler')); |
|
||||
}()); |
|
@ -0,0 +1,12 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html> |
||||
|
<head> |
||||
|
<title>HTML to JSX</title> |
||||
|
<!-- Github Pages lacks basic functionality such as permanent server-side |
||||
|
redirects, so the best we can do is a meta redirect --> |
||||
|
<meta http-equiv="refresh" content="0; url=http://magic.reactjs.net/htmltojsx.htm" /> |
||||
|
</head> |
||||
|
<body> |
||||
|
This page has moved to <a href="http://magic.reactjs.net/htmltojsx.htm">http://magic.reactjs.net/htmltojsx.htm</a> |
||||
|
</body> |
||||
|
</html> |
@ -1,11 +0,0 @@ |
|||||
--- |
|
||||
layout: default |
|
||||
title: HTML to JSX |
|
||||
id: html-jsx |
|
||||
--- |
|
||||
<div class="jsxCompiler"> |
|
||||
<h1>HTML to JSX Compiler</h1> |
|
||||
<div id="jsxCompiler"></div> |
|
||||
<script src="https://reactcommunity.org/react-magic/htmltojsx.min.js"></script> |
|
||||
<script src="js/html-jsx.js"></script> |
|
||||
</div> |
|
Loading…
Reference in new issue