Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/continuous-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: "18"
node-version: "24"
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Build for production
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.DS_Store
.idea
cache
dist
node_modules
3 changes: 0 additions & 3 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx pretty-quick --staged
2 changes: 1 addition & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
@@ -1 +1 @@
nodejs 18.18.0
nodejs 24
180 changes: 180 additions & 0 deletions docs/.vitepress/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
export default {
lang: "en-US",
title: "Formspark Documentation",
description: "Formspark documentation",
cleanUrls: true,
sitemap: {
hostname: "https://documentation.formspark.io",
},
head: [
[
"link",
{
rel: "icon",
href: "https://cdn.formspark.io/images/formspark/logos/formspark.ico",
},
],
[
"meta",
{
property: "og:title",
content: "Formspark Documentation",
},
],
[
"meta",
{
property: "og:url",
content: "https://documentation.formspark.io",
},
],
[
"meta",
{
property: "og:image",
content:
"https://cdn.formspark.io/images/formspark/logos/formspark--1200x630.png",
},
],
["meta", { property: "og:image:type", content: "image/png" }],
["meta", { property: "og:image:width", content: "1200" }],
["meta", { property: "og:image:height", content: "630" }],
["meta", { name: "theme-color", content: "#707ee7" }],
["meta", { name: "mobile-web-app-capable", content: "yes" }],
["meta", { name: "apple-mobile-web-app-capable", content: "yes" }],
[
"meta",
{ name: "apple-mobile-web-app-status-bar-style", content: "black" },
],
],
themeConfig: {
logo: "https://cdn.formspark.io/images/formspark/logos/formspark.svg",
editLink: {
pattern:
"https://github.com/formspark/documentation/edit/master/docs/:path",
},
nav: [
{ text: "Home", link: "/" },
{ text: "Formspark", link: "https://formspark.io" },
],
socialLinks: [
{ icon: "github", link: "https://github.com/formspark/documentation" },
],
search: {
provider: "local",
},
sidebar: [
{
text: "Introduction",
items: [{ text: "About", link: "/" }],
},
{
text: "Setup",
items: [
{ text: "Installation", link: "/setup/" },
{ text: "Spam protection", link: "/setup/spam-protection" },
{ text: "File uploads", link: "/setup/file-uploads" },
{ text: "Arrays and objects", link: "/setup/arrays-and-objects" },
],
},
{
text: "Customization",
items: [
{ text: "Redirection", link: "/customization/redirection" },
{ text: "Feedback page", link: "/customization/feedback-page" },
{
text: "Notification email",
link: "/customization/notification-email",
},
{ text: "Direct replies", link: "/customization/direct-replies" },
{ text: "Custom routing", link: "/customization/custom-routing" },
],
},
{
text: "Dashboard",
items: [
{
text: "Inviting team members",
link: "/dashboard/inviting-team-members",
},
{
text: "Additional workspaces",
link: "/dashboard/additional-workspaces",
},
{
text: "Redeeming vouchers",
link: "/dashboard/redeeming-vouchers",
},
{
text: "Email notification settings",
link: "/dashboard/email-notification-settings",
},
{
text: "Exporting submissions",
link: "/dashboard/exporting-submissions",
},
],
},
{
text: "HTML form",
items: [
{ text: "Form validation", link: "/html-form/form-validation" },
{ text: "Form styling", link: "/html-form/form-styling" },
{
text: "Special input types",
link: "/html-form/special-input-types",
},
{ text: "Drop-down list", link: "/html-form/drop-down-list" },
{
text: "Submit in different tab",
link: "/html-form/submit-in-different-tab",
},
],
},
{
text: "Examples",
items: [
{ text: "AJAX submissions", link: "/examples/ajax" },
{ text: "Alpine.js", link: "/examples/alpinejs" },
{ text: "Framer", link: "/examples/framer" },
{ text: "Gatsby", link: "/examples/gatsby" },
{ text: "Hugo", link: "/examples/hugo" },
{ text: "Jekyll", link: "/examples/jekyll" },
{ text: "Next.js", link: "/examples/nextjs" },
{ text: "Nuxt", link: "/examples/nuxtjs" },
{ text: "React", link: "/examples/react" },
{ text: "React Native", link: "/examples/react-native" },
{ text: "Svelte", link: "/examples/svelte" },
{ text: "SvelteKit", link: "/examples/sveltekit" },
{ text: "Vue", link: "/examples/vue" },
{ text: "Webflow", link: "/examples/webflow" },
{ text: "WordPress", link: "/examples/wordpress" },
],
},
{
text: "Integration",
items: [
{ text: "Slack", link: "/integration/slack" },
{ text: "Webhooks", link: "/integration/webhooks" },
{ text: "UTM parameters", link: "/integration/utm-parameters" },
{ text: "Zapier", link: "/integration/zapier" },
{ text: "Make", link: "/integration/make" },
{ text: "Integromat", link: "/integration/integromat" },
],
},
{
text: "Troubleshooting",
items: [
{
text: "Common issues",
link: "/troubleshooting/common-issues",
},
{
text: "Email reception",
link: "/troubleshooting/email-reception",
},
],
},
],
},
};
21 changes: 21 additions & 0 deletions docs/.vitepress/theme/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import DefaultTheme from "vitepress/theme";
import * as Sentry from "@sentry/vue";
import "./style.css";

export default {
extends: DefaultTheme,
enhanceApp({ app, router }) {
if (typeof window !== "undefined" && import.meta.env.PROD) {
Sentry.init({
app,
dsn: "https://d0d1620e3b0e46d2b84cb7a1ce25011a@o456819.ingest.sentry.io/5450322",
integrations: [Sentry.browserTracingIntegration()],
tracesSampleRate: 1.0,
});

router.onAfterRouteChange = (to) => {
Sentry.getCurrentScope().setTransactionName(to);
};
}
},
};
15 changes: 15 additions & 0 deletions docs/.vitepress/theme/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
:root {
--vp-sidebar-width: 320px;
}

@media (min-width: 1440px) {
:root {
--vp-sidebar-width: 360px;
}
}

@media (min-width: 768px) {
.VPNavBarSearch .DocSearch-Button {
width: 240px;
}
}
Loading