Skip to content

feat: add Hugo and Jekyll integration guides and demo sections#151

Open
amankv1234 wants to merge 22 commits into
AOSSIE-Org:mainfrom
amankv1234:feature/hugo-jekyll-demo-cdn-guide
Open

feat: add Hugo and Jekyll integration guides and demo sections#151
amankv1234 wants to merge 22 commits into
AOSSIE-Org:mainfrom
amankv1234:feature/hugo-jekyll-demo-cdn-guide

Conversation

@amankv1234
Copy link
Copy Markdown
Contributor

@amankv1234 amankv1234 commented Apr 20, 2026

Description

Fixes #51

Adds first-class support for Hugo and Jekyll Static Site Generators (SSGs). This implementation provides a seamless "drop-in" CDN approach, which is the preferred integration pattern for static environments.

Changes

  • Demo Page: Added a new "📄 Hugo / Jekyll Integration" section to index.html with functional snippets for both frameworks and copy-to-clipboard support.
  • README: Formalized Hugo/Jekyll support in the feature list and added a detailed step-by-step integration guide.
  • Optimization: Used defer scripts and DOMContentLoaded listeners to ensure high performance and reliability.
  • Fix: Corrected the CDN version tags to @v1.0.3 to ensure links work immediately.

Verification

  • Pass formatting: npm run format
  • Manual check: Verified that the new sections match the UI design of existing integrations.

Summary by CodeRabbit

  • New Features

    • Added a Nuxt.js wrapper component for client-side social sharing.
  • Bug Fixes

    • Safer container detection and validation with improved fallback handling.
    • Clipboard copy now aggregates multiple code blocks and provides success/failure feedback.
  • Documentation

    • Expanded integration guides and demos for WordPress, Nuxt, Hugo, and Jekyll.
    • Updated CDN references to v1.0.3 and refreshed roadmap/README formatting.

- Added try-catch blocks to createButton and _getContainer to handle invalid CSS selectors.
- Improved fallbackCopy error visibility by logging to _debugWarn.
- Fixed HTML syntax error in index.html (removed stray closing div).
- Removed duplicate CTA section in index.html for cleaner code.
- Ran project-wide formatting and linting.

Closes AOSSIE-Org#132
- Implemented defensive try-catch blocks for container selector resolution.
- Refactored createButton() to deduplicate logic via _getContainer() helper.
- Enhanced fallbackCopy() to log clipboard errors using the _debugWarn helper.
- Fixed a SyntaxError in index.html and removed a redundant CTA section.
- Ran project-wide formatting and linting for full code consistency.

Closes AOSSIE-Org#132
- Implemented defensive try-catch blocks for container selector resolution.
- Added DOM Element type safety check in _getContainer() to prevent crashes.
- Refactored createButton() to deduplicate logic via _getContainer() helper.
- Enhanced fallbackCopy() to log clipboard errors using the _debugWarn helper.
- Fixed a SyntaxError in index.html and removed a redundant CTA section.
- Ran project-wide formatting and linting for full code consistency.

Closes AOSSIE-Org#132
- Added a new 'WordPress Integration' section to index.html with step-by-step instructions.
- Included PHP code snippets for enqueuing assets in unctions.php via standard WordPress hooks (wp_enqueue_scripts, wp_footer).
- Implemented copy-to-clipboard functionality for the new code blocks.
- Updated README.md to list WordPress as a formally supported platform.

Fixes AOSSIE-Org#52, Fixes AOSSIE-Org#112
- Replaced raw => characters with the HTML-escaped => equivalent in the Qwik component code block within index.html.
- Resolves potential HTML linting/validation errors caused by raw greater-than signs inside <code> tags.
- Replaced incorrect npm CDN URLs with the correct jsDelivr + GitHub CDN
  pointing to AOSSIE-Org/SocialShareButton@v1.0.4 in both index.html and README.md.
- Updated wp_footer add_action priority from default (10) to 21 so enqueued
  footer scripts are printed before initialization runs.
- Added a note in README clarifying the package is not published to npm.
- Removed 	his._debugWarn logging inside the allbackCopy method's catch block within src/social-share-button.js.
- The failed copy action is now completely silent internally (since old browsers gracefully failing to copy isn't an unexpected app error), but still visually updates the UI button text to
@github-actions github-actions Bot added planned Planned feature - not final, may be dropped based on repo direction configuration Configuration file changes documentation Changes to documentation files frontend Changes to frontend code javascript JavaScript/TypeScript code changes labels Apr 20, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 20, 2026

Walkthrough

Adds framework integration docs (Nuxt, WordPress, Hugo, Jekyll), new Nuxt wrapper component, safer container resolution in core JS, revised clipboard copy behavior in the demo site, multiple demo pages, and widespread formatting/whitespace normalization across docs and source files.

Changes

Framework integration + implementation

Layer / File(s) Summary
Documentation / Integration Overview
README.md, index.html, docs/Roadmap.md
Expanded framework support list and integration overview to include Nuxt.js, WordPress, Hugo, Jekyll; added WordPress/Nuxt/Hugo/Jekyll usage snippets; normalized CDN examples to @v1.0.3.
New Wrapper Component
src/social-share-button-nuxt.vue
Added SSR-safe Nuxt/Vue wrapper component with many props; client-only initialization with polling for window.SocialShareButton; deep props watcher calling updateOptions(); cleanup via destroy() on unmount.
Core container resolution
src/social-share-button.js
Centralized container lookup into _getContainer(); added try/catch around selector resolution, debug warnings on errors, and validation that resolved value is a DOM Element (falls back to nodeType === 1) returning null when invalid.
Demo DOM behavior
index.html
Clipboard copy logic changed to collect all code elements inside a .code-block, concatenate with newlines, and copy; clipboard success/failure updates button text and a .copy-status element with a 2s reset.
Static demo pages
hugo-demo/*, jekyll-demo/*, wordpress-demo-project/*, index.html additions
Added Hugo, Jekyll, and WordPress demo pages and Hugo base layout template demonstrating CDN integration and initialization examples.
Formatting & whitespace cleanups
src/social-share-button-preact.jsx, src/social-share-button-react.jsx, src/social-share-button.css, eslint.config.js, src/social-share-analytics.js, landing-page/*, CONTRIBUTING.md, landing-page/README.md
Whitespace, indentation, and minor markup/typography normalization across multiple files; no behavioral changes.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant NuxtComp as Nuxt Component
    participant Browser as Browser (window, DOM)
    participant VanillaLib as window.SocialShareButton

    NuxtComp->>Browser: onMounted (client-only)
    NuxtComp->>Browser: start polling for VanillaLib availability
    Browser-->>NuxtComp: VanillaLib loaded (script from CDN)
    NuxtComp->>VanillaLib: new SocialShareButton({container, options})
    VanillaLib-->>Browser: creates DOM button inside container
    NuxtComp->>VanillaLib: updateOptions(...) (on prop changes)
    NuxtComp->>VanillaLib: destroy() (onBeforeUnmount)
    VanillaLib-->>Browser: cleanup DOM and listeners
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

Typescript Lang, Documentation

Suggested reviewers

  • kpj2006
  • Muneerali199

Poem

🐰 A tiny wrapper hops to play,
Docs for Hugo, Nuxt, and WordPress relay,
Clipboard gathers every code line,
Container lookups fail-safe and fine,
Share buttons ready — with a joyful sway!

🚥 Pre-merge checks | ✅ 3 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning PR includes unrelated changes beyond Hugo/Jekyll integration: README framework expansion (Nuxt, WordPress), CDN version downgrades (@v1.0.4→@v1.0.3), documentation/whitespace formatting across multiple files, and new wrapper components (Nuxt, Preact, React). Scope this PR to only Hugo/Jekyll integration and demo files; move README expansion, CDN versioning changes, and new wrapper components (Nuxt, Preact, React) to separate PRs.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and specifically describes the main change: adding Hugo and Jekyll integration guides and demo sections to the repository.
Linked Issues check ✅ Passed All acceptance criteria from issue #51 are met: no new wrapper file created, index.html updated with Hugo/Jekyll sections and copy-to-clipboard, README expanded with framework support, and CDN-based HTML/only integration implemented.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added size/XL Extra large PR (>500 lines changed) repeat-contributor PR from an external contributor who already had PRs merged needs-review labels Apr 20, 2026
@amankv1234
Copy link
Copy Markdown
Contributor Author

"Hi @kpj2006 ,
I've implemented the Hugo/Jekyll integration (#51) and fixed the CDN versioning. Please check my PR!

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
index.html (2)

520-542: ⚠️ Potential issue | 🟡 Minor

CTA section is stranded in the middle of the integration docs.

cta-section now appears between Preact (ends L478) and the newly added Qwik/Nuxt/Next/Vue/Angular/Hugo-Jekyll sections (L542-721). The "Ready to Get Started?" call-to-action should be the last content block before the footer; users currently scroll past it and then see more integration docs, hurting the UX.

Move the cta-section block to just before </div> at line 722 (after the Hugo/Jekyll section).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@index.html` around lines 520 - 542, The CTA block with class "cta-section"
(the "Ready to Get Started?" call-to-action) is placed mid-doc between Preact
and the Qwik/Nuxt/Next/Vue/Angular/Hugo-Jekyll integration sections; move the
entire <div class="cta-section">...</div> block so it appears just before the
closing wrapper/div that ends the integrations (i.e., after the Hugo/Jekyll
section and immediately before the final </div>/footer), ensuring you preserve
its child anchor elements and attributes (class="cta-button" and
class="cta-button discord-btn") and keep target/rel attributes intact.

888-944: ⚠️ Potential issue | 🟡 Minor

Clipboard handler: minor hardening.

  • navigator.clipboard is undefined on non-secure contexts (HTTP / file://); the .writeText() call will throw TypeError synchronously before .then/.catch engages, leaving the button stuck on "Copy" with no feedback. Guard with if (!navigator.clipboard) { … fallback / status }.
  • On error you call setTimeout to reset to originalText while button.textContent is already originalText (line 928), making the delayed reset a no-op but still clearing the status span — acceptable, just note for clarity.
-            navigator.clipboard
-              .writeText(text)
+            if (!navigator.clipboard?.writeText) {
+              if (statusSpan?.classList.contains("copy-status")) {
+                statusSpan.textContent = "Clipboard API unavailable";
+              }
+              return;
+            }
+            navigator.clipboard
+              .writeText(text)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@index.html` around lines 888 - 944, The clipboard handler must guard against
navigator.clipboard being undefined; before calling
navigator.clipboard.writeText(...) in the click listener for copyButtons, check
if navigator.clipboard exists and handle the fallback by setting the statusSpan
(and button.textContent) to a clear failure message and scheduling/clearing
button.copyResetTimer as you do on catch, so the UI never becomes stuck if
writeText would throw synchronously; keep the existing success and catch flows
but move the initial presence check for navigator.clipboard to the top of the
listener and reuse the same reset logic (button.copyResetTimer) when the API is
missing.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@index.html`:
- Around line 547-568: The copy button is concatenating multiple <code> elements
because the copy handler uses codeBlockContainer.querySelectorAll("code") and
joins them; fix by splitting the two snippets into separate .code-block
containers (each containing its own .copy-btn, .copy-status and a single <code>
node) so the existing copy button behavior remains consistent with other
sections; alternatively (if you prefer to keep one container) change the copy
logic that references codeBlockContainer.querySelectorAll("code") to only use
the first code element (e.g., querySelector("code")) — update the DOM structure
around the two snippets or the copy handler accordingly, referencing the
.code-block, .copy-btn, .copy-status elements and the
codeBlockContainer.querySelectorAll("code") usage.

In `@README.md`:
- Around line 625-640: The template-inserted description string in the
SocialShareButton init (the description property in the SocialShareButton
constructor) can break JS when page.description contains quotes, backslashes, or
newlines; change the Liquid/Jekyll insertion to emit a safe JSON string (use the
Liquid json/jsonify filter) and the Hugo insertion to use Hugo's jsonify (or
jsEscape) so the generated JS is valid JSON/JS string literal; update the same
pattern wherever SocialShareButton is initialized (the snippet that constructs
new SocialShareButton in README and in index.html).

In `@src/social-share-button-nuxt.vue`:
- Around line 1-86: Add a short header comment at the top of
src/social-share-button-nuxt.vue indicating this is a copy-paste wrapper
distributed manually (not yet on CDN) — mirror the pattern used in
social-share-button-react.jsx; place the comment above the <template> tag so
contributors see acquisition instructions immediately and mention that consumers
should copy this file into their project or use the released CDN/npm artifact
once the next release tag is cut.
- Around line 36-64: The component currently only tries to initialize inside
onMounted and silently does nothing if window.SocialShareButton isn't loaded;
add a polling fallback like in social-share-button-preact.jsx: inside onMounted
start a setInterval(100ms) that checks for window.SocialShareButton and a retry
counter (e.g., max retries), instantiate shareButton with the same options
(container, url, title, description, hashtags, via, platforms, theme,
buttonText, customClass, onShare, onCopy, buttonStyle, modalPosition,
buttonColor, buttonHoverColor, showButton, analytics, onAnalytics,
analyticsPlugins, componentId, debug) when found, then clearInterval; also save
the interval id and clear it in onBeforeUnmount (and also destroy/cleanup
shareButton if present) so the polling is bounded and cleaned up.
- Around line 74-85: Replace the direct watch(props, ...) with an explicit
getter watch(() => ({ ...props }), ...) to avoid receiving the same reactive
proxy for old/new values; inside the watcher keep the currentUrl/currentTitle
resolution and call shareButton.updateOptions({...}) as before. Also update the
updateOptions implementation (function name: updateOptions) or add
documentation: either make updateOptions trigger a full re-render when
non-reactive-affecting fields change (theme, buttonText, buttonStyle, platforms)
or clearly document that only url, buttonColor, and buttonHoverColor currently
take effect on update and other fields require re-creation of the shareButton
instance. Ensure references to shareButton and updateOptions are updated
accordingly.

In `@src/social-share-button.js`:
- Around line 694-699: The validation in _getContainer() uses "instanceof
Element" which can throw if the Element global is undefined; change the guard to
first check typeof Element !== "undefined" before using instanceof (e.g., only
evaluate container instanceof Element when Element exists), and keep the
existing fallback check container.nodeType === 1 so the function safely returns
null and warns when container is not a DOM element.

---

Outside diff comments:
In `@index.html`:
- Around line 520-542: The CTA block with class "cta-section" (the "Ready to Get
Started?" call-to-action) is placed mid-doc between Preact and the
Qwik/Nuxt/Next/Vue/Angular/Hugo-Jekyll integration sections; move the entire
<div class="cta-section">...</div> block so it appears just before the closing
wrapper/div that ends the integrations (i.e., after the Hugo/Jekyll section and
immediately before the final </div>/footer), ensuring you preserve its child
anchor elements and attributes (class="cta-button" and class="cta-button
discord-btn") and keep target/rel attributes intact.
- Around line 888-944: The clipboard handler must guard against
navigator.clipboard being undefined; before calling
navigator.clipboard.writeText(...) in the click listener for copyButtons, check
if navigator.clipboard exists and handle the fallback by setting the statusSpan
(and button.textContent) to a clear failure message and scheduling/clearing
button.copyResetTimer as you do on catch, so the UI never becomes stuck if
writeText would throw synchronously; keep the existing success and catch flows
but move the initial presence check for navigator.clipboard to the top of the
listener and reuse the same reset logic (button.copyResetTimer) when the API is
missing.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 320df6ce-a9e0-4e41-928e-6021f30ff86c

📥 Commits

Reviewing files that changed from the base of the PR and between d0686c4 and e6a99a1.

📒 Files selected for processing (13)
  • CONTRIBUTING.md
  • README.md
  • docs/Roadmap.md
  • eslint.config.js
  • index.html
  • landing-page/README.md
  • landing-page/src/app/globals.css
  • src/social-share-analytics.js
  • src/social-share-button-nuxt.vue
  • src/social-share-button-preact.jsx
  • src/social-share-button-react.jsx
  • src/social-share-button.css
  • src/social-share-button.js

Comment thread index.html
Comment thread README.md
Comment thread src/social-share-button-nuxt.vue
Comment thread src/social-share-button-nuxt.vue
Comment thread src/social-share-button-nuxt.vue Outdated
Comment thread src/social-share-button.js
@amankv1234
Copy link
Copy Markdown
Contributor Author

amankv1234 commented Apr 21, 2026

@kpj2006 ,
I apologize to the maintainers for my oversight. I have now thoroughly read the AOSSIE GSoC policy and the project's CONTRIBUTING.md. I realize I should have waited for a formal assignment and kept my PR more focused. I've joined the Discord as well. I'm ready to follow the process correctly—how would you like me to proceed with the existing PR?

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2026

Hello 👋 This PR has had no activity for more than 2 weeks. If you are still working on it, please push an update or leave a comment. Ping a maintainer if you believe it is ready for review or merge! This PR will be automatically closed in 7 days if there is no further activity.

@github-actions github-actions Bot added the Stale label May 6, 2026
@kpj2006
Copy link
Copy Markdown
Member

kpj2006 commented May 6, 2026

@amankv1234 thanks for your patience,
record demo video from https://github.com/AOSSIE-Org/SocialShareButton/blob/main/docs/demo-video-instruction.md in all your pr.

@kpj2006 kpj2006 removed the Stale label May 6, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@hugo-demo/index.html`:
- Around line 8-11: Replace the forked feature-branch CDN references with the
canonical release tag so the demo won't break after the contributor branch is
removed: change the link href that currently points to
"amankv1234/SocialShareButton@feature/hugo-jekyll-demo-cdn-guide/.../social-share-button.css"
to use "AOSSIE-Org/SocialShareButton@v1.0.3/.../social-share-button.css", and
likewise update the script src that loads the JS from the same fork to
"AOSSIE-Org/SocialShareButton@v1.0.3/.../social-share-button.js" so both the CSS
link and the JS script tags reference the stable v1.0.3 package instead of the
contributor fork.

In `@hugo-demo/layouts/_default/baseof.html`:
- Around line 8-11: The CDN URL in the <link> tag
(href="https://cdn.jsdelivr.net/gh/amankv1234/SocialShareButton@feature/hugo-jekyll-demo-cdn-guide/...")
is pointing to a fork/branch; update all occurrences in
layouts/_default/baseof.html (the <link> stylesheet reference and the other URL
around the social share button include) to the canonical release URL by
replacing "amankv1234/SocialShareButton@feature/hugo-jekyll-demo-cdn-guide" with
"AOSSIE-Org/SocialShareButton@v1.0.3" so both hrefs (the stylesheet at the top
and the other reference near lines 55–59) use the AOSSIE-Org v1.0.3 CDN path.

In `@index.html`:
- Around line 919-952: The code calls navigator.clipboard.writeText without
guarding for navigator.clipboard being undefined; update the copy handler (same
logic as copyLink in src/social-share-button.js) to first check if navigator &&
navigator.clipboard, and if not immediately set button.textContent and
statusSpan to the failure text and start the copyResetTimer to restore
originalText; otherwise call
navigator.clipboard.writeText(text).then(...).catch(...) as before—this prevents
a synchronous TypeError on non-HTTPS or older browsers and ensures the button
always resets.

In `@jekyll-demo/index.html`:
- Around line 8-11: Update the CDN URLs that point to the forked branch: find
occurrences of the string
"amankv1234/SocialShareButton@feature/hugo-jekyll-demo-cdn-guide" in
jekyll-demo/index.html (used in the link href for social-share-button.css and
the script src for social-share-button.js) and replace them with
"AOSSIE-Org/SocialShareButton@v1.0.3", ensuring the CSS uses
social-share-button.css and the JS uses social-share-button.js (i.e., change the
href to
https://cdn.jsdelivr.net/gh/AOSSIE-Org/SocialShareButton@v1.0.3/src/social-share-button.css
and the script src to
https://cdn.jsdelivr.net/gh/AOSSIE-Org/SocialShareButton@v1.0.3/src/social-share-button.js
for both occurrences).

In `@wordpress-demo-project/index.html`:
- Around line 8-11: Replace the fork/branch CDN URLs that reference
amankv1234/SocialShareButton@feature/... with the official release CDN links:
update the href for social-share-button.css and the script src for
social-share-button.js to use
https://cdn.jsdelivr.net/gh/AOSSIE-Org/SocialShareButton@v1.0.3/src/social-share-button.css
and
https://cdn.jsdelivr.net/gh/AOSSIE-Org/SocialShareButton@v1.0.3/src/social-share-button.js
respectively; locate the link element that loads social-share-button.css and the
script element that loads social-share-button.js and swap their href/src values
to the new AOSSIE-Org v1.0.3 URLs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 7a035477-726d-43d7-889c-da4074b8947a

📥 Commits

Reviewing files that changed from the base of the PR and between e6a99a1 and 3912804.

📒 Files selected for processing (8)
  • README.md
  • hugo-demo/index.html
  • hugo-demo/layouts/_default/baseof.html
  • index.html
  • jekyll-demo/index.html
  • src/social-share-button-nuxt.vue
  • src/social-share-button.js
  • wordpress-demo-project/index.html

Comment thread hugo-demo/index.html
Comment thread hugo-demo/layouts/_default/baseof.html
Comment thread index.html
Comment thread jekyll-demo/index.html
Comment thread wordpress-demo-project/index.html
@amankv1234
Copy link
Copy Markdown
Contributor Author

🎥 Integration Demo Video

I have recorded a comprehensive demo showcasing the seamless integration of SocialShareButton with Hugo, Jekyll, and WordPress.

Video Link: https://drive.google.com/file/d/1b3OF0z5Hw7txLqPdSkMsAlLAGbClWjeg/view?usp=sharing

What's covered in the video:

  • Frameworks: Hugo, Jekyll, and WordPress integration.
  • Code Setup: Demonstrated the use of branch-specific CDN links for testing.
  • Integration Guide: Verified the new README sections for these frameworks.
  • Functionality:
    • Modal rendering on localhost.
    • Social platform sharing (WhatsApp, X).
    • "Copy Link" functionality with feedback.
  • Console: Verified zero errors during all interactions.

CDN used for demo:

  • CSS: https://cdn.jsdelivr.net/gh/amankv1234/SocialShareButton@feature/hugo-jekyll-demo-cdn-guide/src/social-share-button.css
  • JS: https://cdn.jsdelivr.net/gh/amankv1234/SocialShareButton@feature/hugo-jekyll-demo-cdn-guide/src/social-share-button.js

@amankv1234
Copy link
Copy Markdown
Contributor Author

Hello @kpj2006,

I have completed the Hugo, Jekyll, and WordPress integrations as requested in PR #151.

Updates:

  1. Added dedicated integration guides and demo snippets for Hugo, Jekyll, and WordPress.
  2. Verified all features (Modal, Sharing, Copy Link) on local demo projects.
  3. Uploaded the integration demo video (link provided above).
  4. Ensured all code is formatted and CDN links are updated to @v1.0.3.

Please review the changes and the demo video. Let me know if there is anything else I should do or if any further improvements are needed.

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

configuration Configuration file changes documentation Changes to documentation files frontend Changes to frontend code javascript JavaScript/TypeScript code changes needs-review planned Planned feature - not final, may be dropped based on repo direction repeat-contributor PR from an external contributor who already had PRs merged size/XL Extra large PR (>500 lines changed)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enhancement: Add Hugo / Jekyll Integration — demo page section and CDN usage guide

2 participants