Czy mogę oszukać GitHub, aby wyświetlał plik PDF w przeglądarce zamiast go pobierać?

22

Podczas przeglądania pliku PDF na GitHub wydaje się, że nie ma sposobu, aby przeglądarka po prostu wyświetlała plik w przeciwieństwie do pobierania go.

Żaden z tych linków nie działa i są to jedyne, do których mogę się dostać (lub czerpać z zachowania podczas pracy z kodem źródłowym):

Sean Allred
źródło

Odpowiedzi:

20

Github używa content-disposition: attachmentplików PDF, które automatycznie pobierają plik na github.com. Możesz hostować plik na stronie statycznej dostarczonej przez GitHub, która może zawierać link do tego pliku i aktualizować go podczas aktualizacji pliku PDF. W tym celu możesz zobaczyć strony github .

streszczenie

  • Utwórz repozytorium o nazwie USERNAME.github.io.
  • W tym repozytorium kliknij Ustawienia, następnie Automatyczny generator stron, a następnie ukończ kreatora, aby opublikować stronę użytkownika .
  • Wróć do repozytorium treści i kliknij Ustawienia, następnie Automatyczny generator stron, a następnie ukończ kreatora, aby opublikować stronę projektu . (Logicznie, pliki strony projektu byłyby umieszczone w specjalnym katalogu, ale GitHub umieszcza je w gałęzi gh-pages . Nie łącz tej gałęzi z / z master.)
  • Zsynchronizuj gałąź gh-pages z komputerem, a następnie skopiuj do plików PDF:

    git checkout gh-pages
    git checkout master -- 'docs/*.pdf'

  • Zatwierdź zmiany i prześlij je do GitHub.
  • Teraz wróć do repozytorium na GitHub i użyj Generatora stron automatycznych do edycji strony projektu, dodając linki do tych plików PDF formularza:

    [Intro.pdf](http://USERNAME.github.io/REPONAME/docs/Intro.pdf).

  • Ponownie opublikuj stronę projektu.
Muhammad Usman
źródło
Korzystanie ze stron jest naprawdę całkiem sprytne. Jeśli jutro w południe nie będzie innego wyjścia, będzie to wystarczająco dobre. :)
Sean Allred
Czy kiedykolwiek znalazłeś sposób na zrobienie tego bez korzystania ze stron Github? Problem, przed którym stoimy, to fakt, że strony Github są z konieczności publiczne, a pliki PDF, które chcemy dołączyć, są prywatne.
Joost
@Joost nie, nie próbowałem uczynić plików PDF prywatnymi. Najlepszym rozwiązaniem w github byłoby utworzenie prywatnego repozytorium, które jest repozytorium stron github, a następnie utrudnienie wykrycia adresu URL (który nie jest tak naprawdę prywatny, tylko trudniejszy do znalezienia).
Muhammad Usman,
3
Ostatnio GitHub wprowadził przeglądanie plików PDF .
Ionică Bizău,
1
Alternatywą jest użycie Dokumentów Google jak w docs.google.com/viewer?url=https://raw.githubusercontent.com/…
Steven Shaw
13

Użyj przeglądarki Dokumentów Google z adresem URL takim jak:

https://docs.google.com/viewer?url=${link_to_raw_pdf}

na przykład

https://docs.google.com/viewer?url=https://raw.githubusercontent.com/degoes-consulting/lambdaconf-2015/master/speakers/jdegoes/intro-purescript/presentation.pdf

https://docs.google.com/viewer?url=https://raw.githubusercontent.com/degoes-consulting/lambdaconf-2015/master/speakers/jdegoes/intro-purescript/presentation.pdf

Steven Shaw
źródło
Bardzo przydatna sztuczka. +1. Chciałbym trochę szczegółów na temat prawidłowego podziału adresu GitHub (Mianowicie, jak wyodrębnić adres określonego pliku PDF). Dziękuję Ci.
Royi
1
Skopiuj link z przycisku „Pobierz”. tzn. kliknij prawym przyciskiem myszy, skopiuj adres linku.
Steven Shaw
7

Nbviewer Jupytera obsługuje to zadanie. Wystarczy wkleić adres URL do pliku PDF obsługiwanego przez GitHub na stronie http://nbviewer.jupyter.org/ .

Na przykład tutaj jest plik PDF, który hostuję na GitHub, renderowany w przeglądarce.

Daniel Himmelstein
źródło
1
Wygląda to obiecująco, ale ciągle próbuję go użyć 503 błędów
user5359531,
3

Od 17 marca 2015 r. GitHub renderuje dokumenty PDF bezpośrednio w interfejsie internetowym.

Odniesienie: Przeglądanie plików PDF

Kos
źródło
2
Działa, ale nie jest tak dobry, jak w Chrome
Steven Shaw,
@StevenShaw może, ale nie używam chrome :) Przypuszczam, że ta sama zasada obowiązuje w przypadku safari, ale biorąc pod uwagę moje oryginalne Q, to wciąż odpowiada na pytanie :)
Sean Allred