Po kilku próbach znalazłem rozwiązanie.
Zauważyłem, że jedyny plik zmieniony dla mojej witryny to index.html, reszta wygenerowanej strony była taka sama. Wewnątrz pliku index.html znajdował się znacznik <section>content</section>
, który zawierał html wygenerowany ze znacznika.
Tak więc utworzyłem dwa pliki header.inc
i footer.inc
, które zawierały "statyczną" część strony indeksu. Część treści powinna zostać wygenerowana z pliku README.md
.
Znalazłem, że istnieje API dostarczone przez github do render a RAW markdown in raw mode do html.
Ostatnim elementem układanki było uzyskanie permalinka dla README.md mojego projektu z zawartością RAW; które znalazłem here.
Więc napisałem ten simple bash script który regeneruje sam index.html, bez dotykania reszty strony:
#!/bin/sh
PG_DIR=$(dirname $0)
RAW_README_URL=https://raw.github.com/lviggiano/owner/master/README.md
GITHUB_API_URL=https://api.github.com/markdown/raw
cat $PG_DIR/header.inc
curl -s $RAW_README_URL | curl -s --data-binary @- -H 'Content-Type: text/plain' $GITHUB_API_URL
cat $PG_DIR/footer.inc
Potem wystarczy uruchomić skrypt jako:
$ cd myproject
$ git checkout gh-pages
$ git pull origin gh-pages:gh-pages
$ ./bin/autogen > index.html
$ git commit -m "updated index.html from latest README.md" index.html
$ git push origin gh-pages:gh-pages
Zobacz realizację szczegóły here.
Przetestowałem w układzie "Leap Day"; ale przypuszczam, że działa również dla innych.
dokładnie to, czego szukasz, dziękuję! Musiałem zmienić "layout: index" na "layout: index", aby to działało. W przeciwnym razie pojawi się błąd "deep_merge". – chris838
dlaczego nie jest to w tutorialu stron github !!!! dzięki. – si28719e
To powinna być zaakceptowana odpowiedź. – Matthew