2013-01-14 19 views
5

Używam klejnotu Middleman Blog dla mojej witryny, ale domyślnie wydaje się, że artykuły na blogu muszą być umieszczone w /source co nie jest szczególnie miłe, gdy patrzę na drzewo w vimie i próbuję zlokalizować jeden z pozostałych plików (na przykład szablon).Przenoszenie artykułów blogów w Middleman

Od oglądania dokumentacji nie widzę, czy istnieje sposób na przeniesienie artykułów na blogu, więc są one przechowywane w innym miejscu, na przykład w folderze blog_articles lub podobnym.

Czy to możliwe?

Odpowiedz

10

umieścić następujące informacje w pliku config.rb.

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

Zakładając, że post 2012-01-01-example-article.html.markdown przechowywane w folderze source/blog_articles.

Powinieneś zobaczyć wpis z tym adresem URL: http://localhost:4567/2012-01-01-example-article.html. (Może być konieczne ponowne uruchomienie pośrednika przy zmianie pliku config.rb.)

Należy pamiętać, że miałem również ustawić blog.permalink The blog.sources ustawienie sam nie załatwi.

Dodatkowa wskazówka: Mam activate :directory_indexes w moim pliku config.rb. To ustawienie zapewnia ładnie wyglądające adresy URL, bez części .html. Jeśli chcesz to samo dla swoich wpisów na blogu, możesz usunąć .html z ustawienia blog.permalink. Tak:

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

Teraz można zobaczyć swój post z tego adresu URL: http://localhost:4567/2012-01-01-example-article.

+0

To mi się nie udało z najnowszymi pośrednikami i szynami 4, plik feed.xml nie powiedzie się i nadal pisze do/posts/* blogposts – Rubytastic

0

Pomyślałem o przedłużeniu bloga pośredniego, ale zrezygnowałem z jego względnej nieprzejrzystości. Patrząc na the source, wydaje się jednak, że opcja prefix może ci pomóc? To nieco niejasne, czy przedrostek to prefiks URL lub ścieżka lokalna prefiks:

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

wydaje się być URL przedrostek –

+0

Hmm, dziwne.Źródło wydaje się ładować z obiektu File, co sprawiło, że myślę, że pasowałoby to do celu tutaj. No cóż. –

0

Od patrząc na kod okaże istnieje opcja :sources których można użyć. Jeśli grzebać w źródle jest tego przykładem:

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

+1

Widziałem to, ale byłem zdezorientowany, ponieważ domyślna opcja ': sources' wydaje się być bardziej związana z formatem nazwy pliku:' options.sources || = ": year-: month-: day-: title.html" '. –

+0

Tak samo było, dopóki nie zobaczyłem, że urządzenie ma prefiks z folderem, w którym świeci żarówka. –

0

powyżej rozwiązanie pracował dla mnie, kiedy dokonała następujących zmian w opcjach konfiguracyjnych permalink/źródło:

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

w niego jest lokalizacja, która pojawi się ona w adresie URL przeglądarki internetowej, gdy źródłem jest lokalizacje postów.

Używanie pośrednika 3.2.1

0

Zrobiłem folder z blogiem wewnątrz katalogu źródłowego. Następnie utworzę katalog wpisów i przeniesię tam wszystkie moje posty. Źródło/blog/posty/...

a następnie wewnątrz 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

Teraz wszystkie adresy URL są poprzedzone/blogiem – prashantsahni