Merge pull request #3236 from mhw/fix-model-markdown
Render Markdown for object and property descriptions
This commit is contained in:
@@ -40,6 +40,7 @@ class ObjectModel extends Component {
|
|||||||
let additionalProperties = schema.get("additionalProperties")
|
let additionalProperties = schema.get("additionalProperties")
|
||||||
let title = schema.get("title") || name
|
let title = schema.get("title") || name
|
||||||
let required = schema.get("required")
|
let required = schema.get("required")
|
||||||
|
const Markdown = getComponent("Markdown")
|
||||||
const JumpToPathSection = ({ name }) => <span className="model-jump-to-path"><JumpToPath path={`definitions.${name}`} /></span>
|
const JumpToPathSection = ({ name }) => <span className="model-jump-to-path"><JumpToPath path={`definitions.${name}`} /></span>
|
||||||
let collapsedContent = (<span>
|
let collapsedContent = (<span>
|
||||||
<span>{ braceOpen }</span>...<span>{ braceClose }</span>
|
<span>{ braceOpen }</span>...<span>{ braceClose }</span>
|
||||||
@@ -66,7 +67,9 @@ class ObjectModel extends Component {
|
|||||||
{
|
{
|
||||||
!description ? null : <tr style={{ color: "#999", fontStyle: "italic" }}>
|
!description ? null : <tr style={{ color: "#999", fontStyle: "italic" }}>
|
||||||
<td>description:</td>
|
<td>description:</td>
|
||||||
<td>{ description }</td>
|
<td>
|
||||||
|
<Markdown source={ description } />
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@@ -114,11 +117,12 @@ class ObjectModel extends Component {
|
|||||||
class Primitive extends Component {
|
class Primitive extends Component {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
schema: PropTypes.object.isRequired,
|
schema: PropTypes.object.isRequired,
|
||||||
|
getComponent: PropTypes.func.isRequired,
|
||||||
required: PropTypes.bool
|
required: PropTypes.bool
|
||||||
}
|
}
|
||||||
|
|
||||||
render(){
|
render(){
|
||||||
let { schema, required } = this.props
|
let { schema, getComponent, required } = this.props
|
||||||
|
|
||||||
if(!schema || !schema.get) {
|
if(!schema || !schema.get) {
|
||||||
// don't render if schema isn't correctly formed
|
// don't render if schema isn't correctly formed
|
||||||
@@ -129,17 +133,23 @@ class Primitive extends Component {
|
|||||||
let format = schema.get("format")
|
let format = schema.get("format")
|
||||||
let xml = schema.get("xml")
|
let xml = schema.get("xml")
|
||||||
let enumArray = schema.get("enum")
|
let enumArray = schema.get("enum")
|
||||||
let properties = schema.filter( ( v, key) => ["enum", "type", "format", "$$ref"].indexOf(key) === -1 )
|
let description = schema.get("description")
|
||||||
|
let properties = schema.filter( ( v, key) => ["enum", "type", "format", "description", "$$ref"].indexOf(key) === -1 )
|
||||||
let style = required ? { fontWeight: "bold" } : {}
|
let style = required ? { fontWeight: "bold" } : {}
|
||||||
|
const Markdown = getComponent("Markdown")
|
||||||
|
|
||||||
return <span className="prop">
|
return <span className="prop">
|
||||||
<span className="prop-type" style={ style }>{ type }</span> { required && <span style={{ color: "red" }}>*</span>}
|
<span className="prop-type" style={ style }>{ type }</span> { required && <span style={{ color: "red" }}>*</span>}
|
||||||
{ format && <span className="prop-format">(${format})</span>}
|
{ format && <span className="prop-format">(${format})</span>}
|
||||||
{
|
{
|
||||||
properties.size ? properties.entrySeq().map( ( [ key, v ] ) => <span key={`${key}-${v}`} style={ propStyle }>
|
properties.size ? properties.entrySeq().map( ( [ key, v ] ) => <span key={`${key}-${v}`} style={ propStyle }>
|
||||||
<br />{ key !== "description" && key + ": " }{ String(v) }</span>)
|
<br />{ key }: { String(v) }</span>)
|
||||||
: null
|
: null
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
!description ? null :
|
||||||
|
<Markdown source={ description } />
|
||||||
|
}
|
||||||
{
|
{
|
||||||
xml && xml.size ? (<span><br /><span style={ propStyle }>xml:</span>
|
xml && xml.size ? (<span><br /><span style={ propStyle }>xml:</span>
|
||||||
{
|
{
|
||||||
@@ -217,7 +227,7 @@ class Model extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
let { schema, required, name, isRef } = this.props
|
let { schema, getComponent, required, name, isRef } = this.props
|
||||||
let $$ref = schema && schema.get("$$ref")
|
let $$ref = schema && schema.get("$$ref")
|
||||||
let modelName = $$ref && this.getModelName( $$ref )
|
let modelName = $$ref && this.getModelName( $$ref )
|
||||||
let modelSchema, type
|
let modelSchema, type
|
||||||
@@ -245,7 +255,7 @@ class Model extends Component {
|
|||||||
case "integer":
|
case "integer":
|
||||||
case "boolean":
|
case "boolean":
|
||||||
default:
|
default:
|
||||||
return <Primitive schema={ modelSchema } required={ required }/>
|
return <Primitive getComponent={ getComponent } schema={ modelSchema } required={ required }/>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user