2015-12-10 19 views
8

Czy istnieje prosty sposób konwersji tekstu ze znacznika z treściowego api do renderowania w kod HTML, który będzie wyświetlany na stronie html. Próbowałem używać stronicowania i niektórych podobnych technik, ale żaden nie działa dla mnie.contentful konwersja znacznika API do HTML

+1

W jakim języku piszesz swój kod? Dodaj, aby odpowiedź Meghan wskazywała właściwy pakiet. – Ivan

Odpowiedz

8

Jestem menadżerem sukces klienta w Contentful -

Możesz sprawdzić listę zalecanych parserami według języka na our FAQ.

Ponadto, prosimy o przesłanie nam wiadomości na Intercom pośrednictwem naszego interfejsu klikając „Porozmawiaj z nami” linku :)

1

Oto jak to zrobiłem z React:

class NewsDetail extends React.Component { 
    render() { 
     const body = marked(this.props.body || ""); 
     return (
       <div className="news-detail"> 
       <h2>{this.props.title}</h2> 
       <div dangerouslySetInnerHTML={ { __html: body } }></div> 
       </div> 
     ); 
    } 
} 

zawartości Przecena jest przechowywany w atrybucie body znacznika NewsDetail (przez krótką funkcję, która mapuje treściową strukturę danych do mojej struktury aplikacji).

Strona HTML ma ten tag skryptu ciągnąć w zaznaczonej funkcji:

<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.6/marked.min.js"></script> 
2

Wiem, że późno, ale tutaj jest rozwiązanie za pomocą kierownicy:

var marked = require('marked'); 
marked.setOptions({ 
    renderer: new marked.Renderer(), 
    sanitize: true, 
    smartLists: true, 
    smartypants: true 
}); 

//Home 
router.get('/', (req, res) => { 
    client.getEntry('<ENTRY_ID>') 
    .then((entry)=> { 
    entry.fields.body = marked(entry.fields.body); 
    res.render('static/index', 
    { 
     entry: entry, 
     user: req.user 
    }); 
    }).catch((err) => { 
    console.log(err); 
    }) 
}); 

Wtedy w naszym indeksie. Szablon hbs możemy nazwać zmienną przeceny w tym przypadku (entry.fields.body) za pomocą {{{}}}, aby zapobiec ucieczce.

{{{entry.fields.body}}} 
+0

W ten sposób zrobiliśmy to tylko za pomocą oznaczonych i nunjucks dla szablonów w JavaScript. Z jakiego stosu technologii korzystasz? –

+0

@WillHancock to wygląda jak kompilacja ekspresu + kierownicy. – MattClaff