How it works:
Standalone Page Limitations:
Overview:
Standalone Integration can be used to add editable CMS content areas to existing individual pages in an application. This can be used together with, or apart from, a site with a Router Integration.
Integration:
npm install jsharmony-cms-sdk-react
mkdir public/content
import { JshCms } from "jsharmony-cms-sdk-react";
import React from "react";
import { createRoot } from "react-dom/client";
// Configure the CMS
const jshCmsConfig = {
pageFilePath: "/path/to/page_files",
redirectListingPath: "path/to/jshcms_redirects.json",
accessKeys: [/*"ACCESS KEYS"*/]
};
const root = createRoot(document.getElementById("root")!);
root.render(
<JshCms {...jshCmsConfig} >
<App />
</JshCms>
);
import React from 'react';
import { JshCmsContent } from 'jsharmony-cms-sdk-react';
export const SampleStandalonePage: VFC<{}> = props => {
return <JshCmsContent>
<h1 cms-title="true">Page Title</h1>
<div cms-content-editor="body">Page Content</div>
</JshCmsContent>
};
import React from 'react';
import { BrowserRouter, Routes, Route } from "react-router-dom";
import { SampleStandalonePage} from './SampleStandalonePage.tsx';
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/sample-standalone-page" element={<SampleStandalonePage />}/>
</Routes>
</BrowserRouter>
);
}
export default App;
import React from 'react';
import { JshCmsContent, JshCmsPageConfig } from 'jsharmony-cms-sdk-react';
export const SampleStandalonePage: VFC<{}> = props => {
return <JshCmsContent>
<JshCmsPageConfig config={{
content: {
col1: { title: "Column 1" },
col2: { title: "Column 2" }
}
}} />
<h1 cms-title="true">Page Title</h1>
<div cms-content-editor="col1">Column 1</div>
<div cms-content-editor="col2">Column 2</div>
</JshCmsContent>
};