Skip to content
Open
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
2 changes: 1 addition & 1 deletion antora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ asciidoc:
companyurl: https://www.tiny.cloud
cdnurl: https://cdn.tiny.cloud/1/no-api-key/tinymce/8/tinymce.min.js
tdcdnurl: https://cdn.tiny.cloud/1/_your_api_key_/tinydrive/8/tinydrive.min.js
tinymce_live_demo_url: https://cdn.tiny.cloud/1/qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc/tinymce/8/tinymce.min.js
tinymce_live_demo_url: https://cdn.tiny.cloud/1/qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc/tinymce/8-dev/tinymce.min.js
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Revert before merging- only used for demo testing
Suggested change
tinymce_live_demo_url: https://cdn.tiny.cloud/1/qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc/tinymce/8-dev/tinymce.min.js
tinymce_live_demo_url: https://cdn.tiny.cloud/1/qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc/tinymce/8/tinymce.min.js

tinydrive_live_demo_url: https://cdn.tiny.cloud/1/qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc/tinydrive/8/tinydrive.min.js
webcomponent_url: https://cdn.jsdelivr.net/npm/@tinymce/tinymce-webcomponent/dist/tinymce-webcomponent.min.js
jquery_url: https://cdn.jsdelivr.net/npm/@tinymce/tinymce-jquery@2/dist/tinymce-jquery.min.js
Expand Down
78 changes: 78 additions & 0 deletions modules/ROOT/examples/live-demos/exportpdf-v2/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<textarea id="exportpdf-v2">
<h1>Streamline - The Next-Gen Learning Management System (LMS)</h1>
<p>This document provides a comprehensive overview of the Streamline Learning Management System (LMS) project.</p>

<figure class="image">
<img src="https://images.unsplash.com/photo-1522199755839-a2bacb67c546?q=80&amp;w=2072&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.0.3&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="A laptop on a polished wood table with a bronze cup, creating a warm workspace ambiance" width="573" height="429">
<figcaption>An elegant workspace featuring a laptop on a polished wood table, accompanied by a bronze cup, creating a warm and productive atmosphere.</figcaption>
</figure>

<p>Photo by <a href="https://unsplash.com/@anete_lusina">Anete Lūsiņa</a> on <a href="https://unsplash.com">Unsplash</a></p>

<h2>Project Goals</h2>
<p>Streamline aims to revolutionize online learning by offering a robust and user-friendly platform for educators and learners. The primary goals include:</p>
<ul>
<li><strong>Empowering educators</strong> with intuitive tools for content creation, course management, and student assessment.</li>
<li><strong>Enhancing the learning experience for students</strong> through engaging content delivery, interactive features, and personalized learning paths.</li>
<li><strong>Increasing accessibility and scalability</strong> to cater to diverse learning needs and support a growing user base.</li>
</ul>

<h2>System Features</h2>
<p>Streamline is designed to enrich the learning process through a comprehensive set of features:</p>
<ul>
<li><strong>Content Management System (CMS)</strong>: An intuitive interface enabling educators to create and upload various learning materials, including videos, documents, presentations, and quizzes.</li>
<li><strong>Course Management Tools</strong>: Structure courses with clear objectives, organize content modules, and manage student enrollments effectively.</li>
<li><strong>Interactive Learning Activities</strong>: Includes gamification, discussion forums, collaborative assignments, and more to maintain student engagement.</li>
<li><strong>Assessment & Analytics</strong>: Tools for creating quizzes, tracking student progress, generating reports, and identifying improvement areas.</li>
<li><strong>Personalized Learning Paths</strong>: Machine learning algorithms provide tailored content recommendations based on student progress and needs.</li>
</ul>

<h3>Table 1: Streamline - Target User Groups</h3>
<table style="border-collapse: collapse; width: 100%;" border="1">
<thead>
<tr>
<th style="text-align: left;">User Group</th>
<th style="text-align: left;">Benefits</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Educators</strong></td>
<td>Easy content creation, efficient course management, and valuable student insights.</td>
</tr>
<tr>
<td><strong>Learners</strong></td>
<td>Engaging learning experience, personalized learning paths, and interactive collaboration.</td>
</tr>
<tr>
<td><strong>Administrators</strong></td>
<td>Scalable platform management, user access control, and comprehensive reporting tools.</td>
</tr>
</tbody>
</table>

<h2>Technology Stack</h2>
<p>Streamline will leverage a robust technology stack to ensure performance, scalability, and security:</p>
<ul>
<li><strong>Front-End</strong>: ReactJS for a responsive and user-friendly interface.</li>
<li><strong>Back-End</strong>: Node.js for efficient server-side operations.</li>
<li><strong>Database</strong>: MongoDB for flexible and scalable data storage.</li>
<li><strong>Cloud Platform</strong>: Amazon Web Services (AWS) for reliable hosting and infrastructure.</li>
</ul>

<h2>Project Timeline</h2>
<ul>
<li><strong>Phase 1 (2 Months)</strong>: System design, core functionalities development, and front-end prototype creation.</li>
<li><strong>Phase 2 (3 Months)</strong>: Integration of advanced features like personalized learning and assessment tools.</li>
<li><strong>Phase 3 (1 Month)</strong>: Rigorous testing, bug fixing, and UI refinement.</li>
<li><strong>Phase 4 (Ongoing)</strong>: Deployment, user feedback collection, and continuous iterative development.</li>
</ul>

<blockquote>
<p><em>This timeline is preliminary and may be subject to change.</em></p>
</blockquote>

<h2>Conclusion</h2>
<p>Streamline LMS is poised to become a game-changer in online education. By empowering educators and enhancing student experiences, it aims to make effective and accessible learning available to all.</p>
</textarea>
31 changes: 31 additions & 0 deletions modules/ROOT/examples/live-demos/exportpdf-v2/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
tinymce.init({
selector: 'textarea#exportpdf-v2',
height: '800px',
plugins: [
"exportpdf", "advlist", "anchor", "autolink", "charmap", "code", "codesample", "fullscreen",
"help", "image", "insertdatetime", "link", "lists", "media",
"preview", "searchreplace", "table", "visualblocks",
],
toolbar: "undo redo | exportpdf | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
image_caption: true,
exportpdf_converter_options: {
version: '2',
document: {
size: 'A4',
orientation: 'portrait',
margins: {
top: '1in',
right: '1in',
bottom: '1in',
left: '1in',
enable_mirror_margins: true
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the effect of this one would be more clear if the margin right and left are different, with the same margin this does nothing

}
},
metadata: {
title: 'Streamline LMS Overview',
author: 'TinyMCE',
subject: 'Learning Management System',
keywords: [ 'LMS', 'education', 'Streamline' ]
}
}
});
90 changes: 88 additions & 2 deletions modules/ROOT/examples/live-demos/exportpdf/index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
<textarea id="exportpdf">
<div style="display: flex; gap: 20px; width: 100%;">
<div style="flex: 1; min-width: 0;">
<h2>Flat format (backwards compatible)</h2>
<textarea class="exportpdf-flat" style="width: 100%;">
<h1>Streamline - The Next-Gen Learning Management System (LMS)</h1>
<p>This document provides a comprehensive overview of the Streamline Learning Management System (LMS) project.</p>

Expand Down Expand Up @@ -75,4 +78,87 @@ <h2>Project Timeline</h2>

<h2>Conclusion</h2>
<p>Streamline LMS is poised to become a game-changer in online education. By empowering educators and enhancing student experiences, it aims to make effective and accessible learning available to all.</p>
</textarea>
</textarea>
</div>
<div style="flex: 1; min-width: 0;">
<h2>Nested format (v2)</h2>
<textarea class="exportpdf-nested" style="width: 100%;">
<h1>Streamline - The Next-Gen Learning Management System (LMS)</h1>
<p>This document provides a comprehensive overview of the Streamline Learning Management System (LMS) project.</p>

<figure class="image">
<img src="https://images.unsplash.com/photo-1522199755839-a2bacb67c546?q=80&amp;w=2072&amp;auto=format&amp;fit=crop&amp;ixlib=rb-4.0.3&amp;ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
alt="A laptop on a polished wood table with a bronze cup, creating a warm workspace ambiance" width="573" height="429">
<figcaption>An elegant workspace featuring a laptop on a polished wood table, accompanied by a bronze cup, creating a warm and productive atmosphere.</figcaption>
</figure>

<p>Photo by <a href="https://unsplash.com/@anete_lusina">Anete Lūsiņa</a> on <a href="https://unsplash.com">Unsplash</a></p>

<h2>Project Goals</h2>
<p>Streamline aims to revolutionize online learning by offering a robust and user-friendly platform for educators and learners. The primary goals include:</p>
<ul>
<li><strong>Empowering educators</strong> with intuitive tools for content creation, course management, and student assessment.</li>
<li><strong>Enhancing the learning experience for students</strong> through engaging content delivery, interactive features, and personalized learning paths.</li>
<li><strong>Increasing accessibility and scalability</strong> to cater to diverse learning needs and support a growing user base.</li>
</ul>

<h2>System Features</h2>
<p>Streamline is designed to enrich the learning process through a comprehensive set of features:</p>
<ul>
<li><strong>Content Management System (CMS)</strong>: An intuitive interface enabling educators to create and upload various learning materials, including videos, documents, presentations, and quizzes.</li>
<li><strong>Course Management Tools</strong>: Structure courses with clear objectives, organize content modules, and manage student enrollments effectively.</li>
<li><strong>Interactive Learning Activities</strong>: Includes gamification, discussion forums, collaborative assignments, and more to maintain student engagement.</li>
<li><strong>Assessment & Analytics</strong>: Tools for creating quizzes, tracking student progress, generating reports, and identifying improvement areas.</li>
<li><strong>Personalized Learning Paths</strong>: Machine learning algorithms provide tailored content recommendations based on student progress and needs.</li>
</ul>

<h3>Table 1: Streamline - Target User Groups</h3>
<table style="border-collapse: collapse; width: 100%;" border="1">
<thead>
<tr>
<th style="text-align: left;">User Group</th>
<th style="text-align: left;">Benefits</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Educators</strong></td>
<td>Easy content creation, efficient course management, and valuable student insights.</td>
</tr>
<tr>
<td><strong>Learners</strong></td>
<td>Engaging learning experience, personalized learning paths, and interactive collaboration.</td>
</tr>
<tr>
<td><strong>Administrators</strong></td>
<td>Scalable platform management, user access control, and comprehensive reporting tools.</td>
</tr>
</tbody>
</table>

<h2>Technology Stack</h2>
<p>Streamline will leverage a robust technology stack to ensure performance, scalability, and security:</p>
<ul>
<li><strong>Front-End</strong>: ReactJS for a responsive and user-friendly interface.</li>
<li><strong>Back-End</strong>: Node.js for efficient server-side operations.</li>
<li><strong>Database</strong>: MongoDB for flexible and scalable data storage.</li>
<li><strong>Cloud Platform</strong>: Amazon Web Services (AWS) for reliable hosting and infrastructure.</li>
</ul>

<h2>Project Timeline</h2>
<ul>
<li><strong>Phase 1 (2 Months)</strong>: System design, core functionalities development, and front-end prototype creation.</li>
<li><strong>Phase 2 (3 Months)</strong>: Integration of advanced features like personalized learning and assessment tools.</li>
<li><strong>Phase 3 (1 Month)</strong>: Rigorous testing, bug fixing, and UI refinement.</li>
<li><strong>Phase 4 (Ongoing)</strong>: Deployment, user feedback collection, and continuous iterative development.</li>
</ul>

<blockquote>
<p><em>This timeline is preliminary and may be subject to change.</em></p>
</blockquote>

<h2>Conclusion</h2>
<p>Streamline LMS is poised to become a game-changer in online education. By empowering educators and enhancing student experiences, it aims to make effective and accessible learning available to all.</p>
</textarea>
</div>
</div>
34 changes: 33 additions & 1 deletion modules/ROOT/examples/live-demos/exportpdf/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
tinymce.init({
selector: 'textarea#exportpdf',
selector: 'textarea.exportpdf-flat',
height: '800px',
plugins: [
"exportpdf", "advlist", "anchor", "autolink", "charmap", "code", "codesample", "fullscreen",
Expand All @@ -16,3 +16,35 @@ tinymce.init({
margin_left: '1in'
}
});

tinymce.init({
selector: 'textarea.exportpdf-nested',
height: '800px',
plugins: [
"exportpdf", "advlist", "anchor", "autolink", "charmap", "code", "codesample", "fullscreen",
"help", "image", "insertdatetime", "link", "lists", "media",
"preview", "searchreplace", "table", "visualblocks",
],
toolbar: "undo redo | exportpdf | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
image_caption: true,
exportpdf_converter_options: {
version: '2',
document: {
size: 'A4',
orientation: 'portrait',
margins: {
top: '1in',
right: '1in',
bottom: '1in',
left: '1in',
enable_mirror_margins: true
}
},
metadata: {
title: 'Streamline LMS Overview',
author: 'TinyMCE',
subject: 'Learning Management System',
keywords: [ 'LMS', 'education', 'Streamline' ]
}
}
});
13 changes: 8 additions & 5 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -277,11 +277,14 @@
**** xref:mediaembed-server-config.adoc[Configure Enhanced Media Embed Server]
**** xref:mediaembed-server-integration.adoc[Integrate Enhanced Media Embed Server]
*** xref:advtable.adoc[Enhanced Tables]
*** xref:exportpdf.adoc[Export to PDF]
**** xref:html-to-pdf-converter-api.adoc[HTML to PDF Converter API]
**** JWT Authentication
***** xref:export-to-pdf-with-jwt-authentication-nodejs.adoc[Node.js]
***** xref:export-to-pdf-with-jwt-authentication-php.adoc[PHP]
*** Export to PDF
**** xref:exportpdf.adoc[Export to PDF]
***** xref:html-to-pdf-converter-api-v2.adoc[HTML to PDF Converter API]
***** JWT Authentication
****** xref:export-to-pdf-v2-with-jwt-authentication-nodejs.adoc[Node.js (8.4.0+)]
****** xref:export-to-pdf-v2-with-jwt-authentication-php.adoc[PHP (8.4.0+)]
****** xref:export-to-pdf-with-jwt-authentication-nodejs.adoc[Node.js (pre-8.4.0)]
****** xref:export-to-pdf-with-jwt-authentication-php.adoc[PHP (pre-8.4.0)]
*** xref:exportword.adoc[Export to Word]
**** xref:html-to-docx-converter-api.adoc[HTML to DOCX Converter API]
**** JWT Authentication
Expand Down
13 changes: 7 additions & 6 deletions modules/ROOT/pages/8.4.0-release-notes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -57,17 +57,18 @@ For information on the **<Open source plugin name>** plugin, see xref:<plugincod

The following premium plugin updates were released alongside {productname} {release-version}.

=== <Premium plugin name 1> <Premium plugin name 1 version>
=== Export to PDF

The {productname} {release-version} release includes an accompanying release of the **<Premium plugin name 1>** premium plugin.
The {productname} {release-version} release includes an accompanying release of the **Export to PDF** premium plugin.

**<Premium plugin name 1>** <Premium plugin name 1 version> includes the following <fixes, changes, improvements>.
**Export to PDF** includes the following addition.

==== <Premium plugin name 1 change 1>
==== exportpdf supports API version 2 converter options
// #TINY-13700

// CCFR here.
`{productname}` `{release-version}` adds support for version `2` of the `exportpdf` API through `exportpdf_converter_options`. Version `1` remains the default for backward compatibility. The new nested structure organizes options under `document`, `headers`, `footers`, `metadata`, `security`, and `signature`, enabling per-page headers and footers, PDF metadata, password protection, and certificate-based signing.

For information on the **<Premium plugin name 1>** plugin, see: xref:<plugincode>.adoc[<Premium plugin name 1>].
For information on the **Export to PDF** plugin, see xref:exportpdf.adoc[Export to PDF].


[[accompanying-premium-plugin-end-of-life-announcement]]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
= {pluginname} with JWT authentication (Node.js) Guide
:plugincode: exportpdf
:pluginname: Export to PDF
:navtitle: JWT Authentication setup for {pluginname}
:description: Guide on how to set up JWT authentication for exporting PDF files with {pluginname} using Node.js
:keywords: jwt, authentication, exportpdf, pdf, node.js


include::partial$auth/document-converters/nodejs/intro-and-prerequisites.adoc[]

[NOTE]
====
This guide uses the nested format (`version: '2'`) for `exportpdf_converter_options`. Requires {productname} 8.4.0 or newer. For full option documentation, see xref:exportpdf.adoc[Export to PDF]. For integrators on older versions, see xref:export-to-pdf-with-jwt-authentication-nodejs.adoc[JWT Authentication setup for Export to PDF (Node.js) – flat format].
====

include::partial$auth/document-converters/nodejs/initial-project-setup.adoc[]

== Setup

=== Generate a Public/Private Key Pair

include::partial$auth/document-converters/jwt-setup-document-converters.adoc[leveloffset=+2]

include::partial$auth/document-converters/nodejs/server-setup-jwt.adoc[]

=== Web Page (public/index.html)

Inside the `public` folder where you created the `index.html` file add the HTML setup code.

[source,html]
----
<!DOCTYPE html>
<html>
<head>
<title>TinyMCE with Export to PDF</title>
<script
src="https://cdn.tiny.cloud/1/no-api-key/tinymce/8/tinymce.min.js"
referrerpolicy="origin"
crossorigin="anonymous">
</script>
<script>
tinymce.init({
selector: 'textarea',
plugins: 'exportpdf',
toolbar: 'exportpdf',
exportpdf_converter_options: {
version: '2',
document: {
size: 'Letter',
margins: {
top: '1in',
right: '1in',
bottom: '1in',
left: '1in'
}
}
},

// exportpdf_token_provider fetches a token from the `/jwt` endpoint.
exportpdf_token_provider: () => {
return fetch('http://localhost:3000/jwt', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
}).then(response => response.json());
},
});
</script>
</head>
<body>
<h1>TinyMCE Export to PDF Demo</h1>
<textarea>
Welcome to TinyMCE! Try the Export to PDF feature.
</textarea>
</body>
</html>
----

include::partial$auth/document-converters/nodejs/configuration-steps.adoc[]

== Further configuration

For additional options such as per-page headers and footers, PDF metadata, and security settings, see the xref:exportpdf.adoc#exportpdf-converter-options[`exportpdf_converter_options`] section on the Export to PDF plugin page.
Loading
Loading