Domanda

Ho cercato di far funzionare l'evidenziazione della sintassi nella mia semplice app di test Django (1.1) usando Markdown (2.0.1) & amp; Pygments (1.0). L'idea è di generare HTML dall'input degli utenti che è in formato markdown e archiviare entrambi nel DB, quindi non devo eseguire il markdown per la traduzione HTML durante il recupero.

Finora ho funzionato l'elaborazione del markdown ma non riesco a far funzionare l'evidenziazione della sintassi. My models.py è simile al seguente:

from django.db import models
from django.contrib import admin
from markdown import markdown

class BlogPost( models.Model ):
    title = models.CharField( max_length = 150 )
    body = models.TextField()
    body_html = models.TextField(editable=False, blank=True, null=True)
    timestamp = models.DateTimeField()

    def save(self):
        self.body_html = markdown(self.body, ['codehilite'])
        super( BlogPost, self).save()

    class Meta:
        ordering = ( '-timestamp', )

class BlogPostAdmin( admin.ModelAdmin ):
    list_display = ( 'title', 'timestamp' )

admin.site.register(BlogPost, BlogPostAdmin)

Finora il test funziona solo con la sintassi markdown ma se provo qualcosa di simile non vedo l'evidenziazione della sintassi nell'output o nella sorgente di output:

   :::python
   from foo import bar
   foobar = bar('foo')

Mi aspetto di vedere almeno un insieme di elementi di codice nell'origine di output.

È stato utile?

Soluzione

Risolto! Il codice avrebbe dovuto essere rientrato di quattro spazi, non tre!

Ho fatto più modifiche per testarlo prima di porre la domanda, ma sembrerebbe che Firefox abbia memorizzato nella cache la pagina come utilizzo come post di prova. Dato che avevo usato la scorciatoia da tastiera di Windows per forzare una pagina a ricaricare non la scorciatoia da tastiera del mac, eh!

Ho notato che funzionava quando ho creato un nuovo post di prova per la frustrazione con quattro rientri nello spazio e poi ho ispezionato l'origine della pagina.

Altri suggerimenti

È meglio archiviarlo nel database in formato markdown, quindi convertirlo nel formato di presentazione desiderato (HTML) al momento della visualizzazione. In questo modo puoi modificare i tuoi dati nello stesso modo in cui li hai aggiunti in primo luogo.

Nella parte superiore del modello è necessario includere:

{% load markup %}

Quindi utilizza il markdown del filtro modello.

{{ blog_post.body|markdown}}

Quindi usa semplicemente css per assicurarti di avere la formattazione corretta.

Devi anche installare il pacchetto di markdown se non lo fai qui.

E in settings.py in INSTALLED_APPS dovresti includere "django.contrib.markup"

Per ulteriori informazioni consultare questa pagina .

Per quanto riguarda il motivo per cui non vedi la formattazione, controlla l'origine contrassegnata e assicurati che funzioni correttamente. vale a dire assicurarsi che sia correttamente contrassegnato. Quindi assicurati di avere i fogli di stile necessari.

Il formato Markdown è il formato prima di essere contrassegnato.

Puoi anche utilizzare JQuery per aggiungere una classe agli elementi contrassegnati, in modo da poter dare uno stile al testo del markdown senza influire sul resto della pagina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top