2013-01-14 23 views
5

Uso la gemma Middleman Blog per il mio sito, ma per impostazione predefinita sembra che gli articoli del blog debbano trovarsi in /source che non è particolarmente bello quando si guarda l'albero in vim e si prova per individuare uno degli altri file in là (un modello per esempio).Spostamento degli articoli del blog in Middleman

Dal punto di vista della documentazione, non riesco a vedere se esiste un modo per spostare gli articoli del blog in modo che vengano memorizzati altrove, ad esempio una cartella blog_articles o simile.

È possibile?

risposta

10

mettere le seguenti nel file config.rb.

activate :blog do |blog| 
    blog.permalink = ":year-:month-:day-:title.html" 
    blog.sources = "blog_articles/:title.html" 
end 

Supponendo di avere un post 2012-01-01-example-article.html.markdown memorizzato nella cartella source/blog_articles.

Ora dovresti vedere il post con questo URL: http://localhost:4567/2012-01-01-example-article.html. (Si potrebbe essere necessario riavviare intermediario quando si cambia il file config.rb.)

Si prega di notare che ho anche dovuto impostare blog.permalink, il blog.sources impostazione da sola non ha fatto il trucco.

Un suggerimento bonus: ho activate :directory_indexes nel mio file config.rb. Questa impostazione ti dà URL piacevoli, senza la parte .html. Se si desidera lo stesso per i post del blog, è possibile eliminare lo .html dall'impostazione blog.permalink. In questo modo:

activate :blog do |blog| 
    blog.permalink = ":year-:month-:day-:title" 
    blog.sources = "blog_articles/:title.html" 
end 

Ora è possibile vedere il tuo post con questo URL: http://localhost:4567/2012-01-01-example-article.

+0

Questo non è riuscito per me con l'ultimo middleman e rails 4, il feed.xml ha esito negativo e scrive ancora in/posts/* i post di blog – Rubytastic

0

Ho incasinato l'estensione middleman-blog, ma ho rinunciato alla relativa opacità. Guardando allo the source, sembra che l'opzione prefix potrebbe fare il trucco per te? È un po 'poco chiaro se il prefisso è un prefisso URL o un prefisso percorso locale:

activate :blog do |blog| 
    blog.prefix = "/blog_articles" 
end 
+0

sembra essere un prefisso URL –

+0

Hmm, strano.La fonte sembra caricarsi da un oggetto File che mi ha fatto pensare che sarebbe adatto allo scopo qui. Oh bene. –

0

Guardando il codice risulti c'è un'opzione :sources che si può usare. Se frugare nella fonte v'è un esempio di questo:

https://github.com/middleman/middleman-blog/tree/master/fixtures/article-dirs-app

+1

L'ho visto, ma è stato confuso poiché l'opzione predefinita ': sources' sembra essere più sul formato del file:' options.sources || = ": year-: month-: day-: title.html" '. –

+0

Lo stesso qui, non è stato fino a quando ho visto il proiettore fisso con una cartella accesa la lampadina. –

0

La soluzione di cui sopra ha funzionato per me quando ho fatto le seguenti modifiche alle opzioni di configurazione permalink/Fonte:

blog.permalink = ":title.html" 
blog.sources = "posts/:year-:month-:day-:title.html" 

Il permalink è la posizione che apparirà nella URL del browser web in cui la fonte è il posizioni dei post.

Utilizzo di middleman 3.2.1

0

Ho creato la cartella del blog all'interno della directory dei sorgenti. Quindi creo la directory dei post e trasferisco tutti i miei post lì. source/blog/post/...

e poi dentro config.rb

activate :blog do |blog| 
.......... 
    blog.permalink = "blog/:year/:month/:day/:title.html" 
    blog.sources = "blog/posts/:year-:month-:day-:title.html" 
    ......... 
end 
+0

Ora tutti gli URL sono prefissati con/blog – prashantsahni