Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(WIP, NO MERGE) routerMode:history for the docsify site #1968

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

trusktr
Copy link
Member

@trusktr trusktr commented Jan 22, 2023

Summary

This allows us to deploy the Docsify site to a static server that handles unknown URLs with a default 404.html page, for example GitHub Pages.

As an example, https://docs.lume.io is published on GitHub pages. Notice that the URLs are in history mode, and you can refresh the site while on any path, and it works. Pushing to the github repo automatically updates the deployment using this GitHub Actions file.

What kind of change does this PR introduce?

Repo settings

Docs

For any code change,

  • Related documentation has been updated if needed
  • Related tests have been updated or tests have been added

Does this PR introduce a breaking change? (check one)

  • Yes
  • No

If yes, please describe the impact and migration path for existing applications:

Related issue, if any:

Tested in the following browsers:

  • Chrome
  • Firefox
  • Safari
  • Edge
  • IE (nope!)

@vercel
Copy link

vercel bot commented Jan 22, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated
docsify-preview ✅ Ready (Inspect) Visit Preview 💬 Add your feedback Jan 26, 2023 at 6:39AM (UTC)

@codesandbox-ci
Copy link

codesandbox-ci bot commented Jan 22, 2023

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 2da44fa:

Sandbox Source
docsify-template Configuration

@trusktr
Copy link
Member Author

trusktr commented Jan 22, 2023

Nice, the deployment works fine with it! F.e. https://docsify-preview-ll3a2gp9v-docsifyjs.vercel.app/markdown

@trusktr trusktr changed the title (WIP, DO NOT MERGE) routerMode:history for the docsify site routerMode:history for the docsify site Jan 22, 2023
@trusktr
Copy link
Member Author

trusktr commented Jan 22, 2023

Old bookmarks will still work fine. Try the following (with a hash): https://docsify-preview-ll3a2gp9v-docsifyjs.vercel.app/#/language-highlight

@trusktr trusktr changed the title routerMode:history for the docsify site (WIP, NO MERGE) routerMode:history for the docsify site Jan 23, 2023
@trusktr trusktr marked this pull request as draft January 23, 2023 01:19
…single-page app mode with routerMode:history
@sy-records
Copy link
Member

sy-records commented Jan 23, 2023

Edit: see https://docsify-preview-git-routermode-history-for-website-docsifyjs.vercel.app/quickstart

It works fine, but doesn't seem to show 404.

image


Great job, but it seems that when using a browser to view the source code, it is a 404 page code, is this normal?
image

@trusktr
Copy link
Member Author

trusktr commented Jan 26, 2023

Ah, you found an issue! There's actually two things happening in your screenshot:

1) For the vercel deploy, it is not using the 404.html trick, it is using vercel.json to rewrite URLs on the server. So for a path like /notexistspage, it sends back the content of /index.html. Here's a screenshot that shows status code 200, with index.html being returned:

Screenshot 2023-01-25 at 10 33 21 PM

What we can do is update the vercel.json so that it will not rewrite a URL if it ends with .md, that way the client will receive 404 and will know what file to look for.

2) For docsify.js.org this is deployed on GitHub Pages, which behaves in a different way: the 404.html page is needed on GitHub in order to redirect to the root / path, then our Docsify JS code can load the content. Without this, routerMode:history won't function on GitHub Pages.

So, for vercel, the 404.html stuff is not needed, it is only for GitHub, and doesn't have the issue that Vercel does.

For Vercel, I'll update vercel.json so it'll do what we want with the .md lookups.

I've been experimenting on https://docs.lume.io. I'll bring back what I learn from there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants