You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ghost/apps/signup-form
ws fda7a8ab3e
1
3 months ago
..
.storybook 1 3 months ago
assets/icons 1 3 months ago
src 1 3 months ago
test 1 3 months ago
.env.development 1 3 months ago
.eslintrc.cjs 1 3 months ago
.yarnrc 1 3 months ago
README.md 1 3 months ago
index.html 1 3 months ago
package.json 1 3 months ago
playwright.config.ts 1 3 months ago
postcss.config.cjs 1 3 months ago
preview.html 1 3 months ago
tailwind.config.cjs 1 3 months ago
tsconfig.json 1 3 months ago
tsconfig.node.json 1 3 months ago
vite.config.ts 1 3 months ago

README.md

Embeddable Signup Form

Embed a Ghost signup form on any site.

Development

Pre-requisites

  • Run yarn in Ghost monorepo root
  • Run yarn in this directory

Running via Ghost yarn dev in root folder

You can automatically start the signup-form dev server when developing Ghost by running Ghost (in root folder) via yarn dev --all. This will only build the production build, without the demo site.

Running via yarn dev --all --signup or yarn dev --signup will also serve the demo site on http://localhost:6173.

Running the development version only

Run yarn dev (in package folder) to start the development server to test/develop the form standalone.

Using the UMD build during development

Vite by default only supports HRM with an ESM output. But when loading a script on a site as a ESM module (<script type="module" src="...">), you don't have access to document.currentScript inside the script, which is required to determine the location to inject the iframe. In development mode we use a workaround for this to make the ESM HMR work. But this workaround is not suitable for production.

To test the real production behaviour without this hack, you can use http://localhost:6173/preview.html. This HTML page will use http://localhost:6174/signup-form.min.js directly.

Develop

This is a monorepo package.

Follow the instructions for the top-level repo.

  1. git clone this repo & cd into it as usual
  2. Run yarn to install top-level dependencies.

Test

  • yarn lint run just eslint
  • yarn test run lint and tests
  • yarn test:e2e run e2e tests on Chromium
  • yarn test:slowmo run e2e tests visually (headed) and slower on Chromium
  • yarn test:e2e:full run e2e tests on all browsers