{"id":16971563,"url":"https://github.com/thomastjdev/nimwc_plugins","last_synced_at":"2025-06-14T09:34:35.411Z","repository":{"id":87657294,"uuid":"135790102","full_name":"ThomasTJdev/nimwc_plugins","owner":"ThomasTJdev","description":"Plugin repository for Nim Website Creator ","archived":false,"fork":false,"pushed_at":"2020-02-22T07:53:30.000Z","size":74,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-07T13:43:15.406Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://nimwc.org","language":"Nim","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ThomasTJdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-02T05:28:12.000Z","updated_at":"2020-03-30T16:57:38.000Z","dependencies_parsed_at":"2023-03-13T18:40:20.641Z","dependency_job_id":null,"html_url":"https://github.com/ThomasTJdev/nimwc_plugins","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ThomasTJdev/nimwc_plugins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnimwc_plugins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnimwc_plugins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnimwc_plugins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnimwc_plugins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThomasTJdev","download_url":"https://codeload.github.com/ThomasTJdev/nimwc_plugins/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasTJdev%2Fnimwc_plugins/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259795064,"owners_count":22912486,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T00:52:33.642Z","updated_at":"2025-06-14T09:34:35.396Z","avatar_url":"https://github.com/ThomasTJdev.png","language":"Nim","readme":"# Plugins for Nim Website Creator (NimWC)\n\n- Plugin repository for [Nim Website Creator](https://github.com/ThomasTJdev/nim_websitecreator).\n\n![Plugin Store Screenshot](nimwc-plugin-store.jpg \"Screenshot\")\n\n![Plugin Store Screenshot](https://user-images.githubusercontent.com/1189414/54094225-19d76e80-437e-11e9-83dd-471c4597e589.png \"Screenshot\")\n\n\n# Plugins\n\n## Plugin repo\n\nTo update the available plugins go to `\u003cwebpage\u003e/plugins/repo`. NimWC will clone this repo to ensure, that the latest available plugins are shown.\n\n## Enable/disable a plugin\n\nTo enable or disable a plugin go to `\u003cwebpage\u003e/plugins`. Only plugins installed at `\u003cwebpage\u003e/plugins/repo` will be available.\n\nPlugins are loaded at compile time with macros, therefore it can take up to ~60 seconds to enable or disable a plugin. The interface will notify you, when the plugin is installed.\n\n## Contribute\n\nTo make a plugin public accessible, you need to add it to the `plugins.json` in this [plugin repo](https://github.com/ThomasTJdev/nimwc_plugins).\n\nMake a pull request where you have added your plugin data to the **bottom** of `plugins.json`.\n\nWhen you release a new version of your plugin, you need to increase the version in your own plugin repo file `plugin.json` and in this repos file `plugins.json`. Otherwise the users will not notice, that your have released a new version.\n\n\n# Available plugins\n\n## Plugin: Backup\n\nCreate an instant backup file. Schedule continuously backups. Download backups.\n\nYou can access the plugin at `/backup`.\n\n\n## Plugin: Contact\n\nA simple contact form for non-logged in users. The email will be sent to the info address specified in the `config.cfg` file.\n\nYou can access the plugin at `/contact`. This link can be added to the navbar manually.\n\n\n## Plugin: Mailer\n\nAdd mail elements containing subject, description and a date for sending the mail. Every 12th hour a cronjob will run to check, if it is time to send the mail.\n\nAll registered users will receive the email.\n\nYou can access the plugin at `/mailer`. This link can be added to the navbar manually.\n\n\n## Plugin: Open registration\n\nAnyone can register an account and get a user with user role \"User\".  You can access the plugin at `/register`. An email with an activation link will be sent to users.\n\n\n## Plugin: Templates\n\nLoad predefined templates (database data, css, js and images) or save your current design to a template, which you can share.\n\nYou can access the plugin at `/templates/settings`.\n\n## Plugin: Themes\n\nSwitch between themes. Save custom themes from the browser.\n\nYou can access the plugin at `/themes/settings`.\n\n\n# Plugin structure\n\nA plugin needs the following structure:\n\n```\ntemplates/\n  - html.tmpl   (optional)\n  - templates.nim  (required)\n  - routes.nim  (required)\n  - plugin.json (required)\n  - public/\n    - js.js             (required) \u003c- Will be appended to all pages\n    - style.css         (required) \u003c- Will be appended to all pages\n    - js_private.js     (required) \u003c- Needs to be imported manually\n    - style_private.css (required) \u003c- Needs to be imported manually\n```\n\n## plugin.json\nThis file contains information about the plugin.\n\nThe file needs this formatting:\n```JSON\n[\n  {\n    \"name\": \"Templates\",\n    \"foldername\": \"templates\",\n    \"version\": \"0.1\",\n    \"requires\": \"5.0\",\n    \"url\": \"https://github.com/ThomasTJdev/nimwc_templates.git\",\n    \"method\": \"git\",\n    \"tags\": [\n      \"templates\"\n    ],\n    \"description\": \"Full templates. Includes database, css, js and other public files.\",\n    \"license\": \"MIT\",\n    \"web\": \"https://github.com/ThomasTJdev/nimwc_templates\",\n    \"sustainability\": \"\",\n    \"email\": \"user@example.com\"\n  }\n]\n```\n\n\n# JSON Fields Description\n\n- `\"name\"` Plugin Name, Human Readable, string type, no empty string, no trailing whitespaces.\n- `\"foldername\"` Folder Name, Human Readable, string type, no empty string, no trailing whitespaces.\n- `\"version\"` Plugin Version as a Float, Human Readable, string type, no empty string, no trailing whitespaces.\n- `\"requires\"` Minimum NimWc Version as a Float, `\u003e= 5.0`, Human Readable, string type, no empty string, no trailing whitespaces.\n- `\"url\"` Git clone URL, HTTPS preferred, must be OnLine, Human Readable, string type, no empty string, no trailing whitespaces.\n- `\"method\"` Must be `\"git\"`\n- `\"tags\"` Plugin Tags, Human Readable, Array of strings, no empty Array, no empty strings, no trailing whitespaces, will be used to display Rendered Tag cloud on Plugin Store, 10 Tags max.\n- `\"description\"` Plugin Description, Human Readable, string type, can be MarkDown/ResTructuredText/Plain Text, will be used to display Rendered HTML on Plugin Store, no empty string, no trailing whitespaces.\n- `\"license\"` Plugin License, Human Readable, Not an HTTP link, string type, no empty string, no trailing whitespaces.\n- `\"web\"` Plugin Web home page, HTTPS preferred, must be OnLine, can be a GitHub/GitLab Pages, Human Readable, string type, no empty string, no trailing whitespaces.\n- `\"email\"` Plugin Authors EMail, Human Readable, string type, will be used to display Libravatar/Gravatar on Plugin Store, you can use it to display your Logo of your Freelancing/Cooperative on Plugin Store, can be empty string, no trailing whitespaces.\n- `\"sustainability\"` Plugin Authors way to Self-Sustainable Development, eg Patreon, Liberapay, Bitcoin Address, etc, will be used to display on Plugin Store, HTTPS preferred, string type, can be empty string, no trailing whitespaces. We would love to make Open Source Self-Sustainable, will you help us?.\n\n\n## templates.nim\nIncludes the plugins proc()'s etc.\n\nIt is required to include a proc named `proc \u003cpluginname\u003eStart*(db: DbConn) =`\n\nFor the templates plugin this would be: `proc templatesStart*(db: DbConn) =` . If this proc is not needed, just `discard` the content.\n\n\n## routes.nim\nIncludes the URL routes.\n\nIt is required to include a route with `/\u003cpluginname\u003e/settings`. This page should show information about the plugin and any options which can be changed.\n\n\n## *.js and *.css\n\nAt compile time `js.js`, `js_private.js`, `style.css` and `style_private.css` are copied from the plugins public folder to the official public folder, if the files contains text.\n\n### JS files\nThe files will be renamed to `templates.js` and `templates_private.js`\n\n### CSS files\nThe files will be renamed to `templates.css` and `templates_private.css`.\n\n### Importing\n\nA `\u003clink\u003e` and/or a `\u003cscript\u003e` tag to `templates.css`/`templates.js` will be appended to the all pages, if `js.js` or `style.css` contains text.\n\nThe `*_private` files needs to be included manually.\n\n\n# JSON Checker\n\n- This repo includes a JSON Checker for consistency.\n- All JSON keys and values are checked.\n- Compile with SSL `-d:ssl` to check On-Line using Internet, optional.\n\n```\n$ nim c -r -d:ssl check_json.nim\n\n[Suite] Packages consistency testing\n  [OK] Check Basic Structure\n  [OK] Check Tags\n  [OK] Check Methods\n  [OK] Check Licenses\n  [OK] Check Names\n  [OK] Check Versions\n  [OK] Check Requires\n  [OK] Check Foldernames\n  [OK] Check Webs Off-Line\nD, [2019-03-06T16:12:32] -- check_json: https://github.com/thomastjdev/nimwc_backup\nD, [2019-03-06T16:12:33] -- check_json: https://github.com/thomastjdev/nimwc_contact\nD, [2019-03-06T16:12:34] -- check_json: https://github.com/thomastjdev/nimwc_mailer\nD, [2019-03-06T16:12:35] -- check_json: https://github.com/thomastjdev/nimwc_openregistration\nD, [2019-03-06T16:12:35] -- check_json: https://github.com/thomastjdev/nimwc_templates\nD, [2019-03-06T16:12:36] -- check_json: https://github.com/thomastjdev/nimwc_themes\n  [OK] Check Webs On-Line\n  [OK] Check Sustainability On-Line\n  [OK] Check URLs Off-Line\nD, [2019-03-06T16:12:36] -- check_json: https://github.com/thomastjdev/nimwc_backup.git\nD, [2019-03-06T16:12:37] -- check_json: https://github.com/thomastjdev/nimwc_backup.git\nD, [2019-03-06T16:12:38] -- check_json: https://github.com/thomastjdev/nimwc_contact.git\nD, [2019-03-06T16:12:38] -- check_json: https://github.com/thomastjdev/nimwc_contact.git\nD, [2019-03-06T16:12:39] -- check_json: https://github.com/thomastjdev/nimwc_mailer.git\nD, [2019-03-06T16:12:40] -- check_json: https://github.com/thomastjdev/nimwc_mailer.git\nD, [2019-03-06T16:12:40] -- check_json: https://github.com/thomastjdev/nimwc_openregistration.git\nD, [2019-03-06T16:12:41] -- check_json: https://github.com/thomastjdev/nimwc_openregistration.git\nD, [2019-03-06T16:12:42] -- check_json: https://github.com/thomastjdev/nimwc_templates.git\nD, [2019-03-06T16:12:43] -- check_json: https://github.com/thomastjdev/nimwc_templates.git\nD, [2019-03-06T16:12:44] -- check_json: https://github.com/thomastjdev/nimwc_themes.git\nD, [2019-03-06T16:12:44] -- check_json: https://github.com/thomastjdev/nimwc_themes.git\n  [OK] Check URLs On-Line\n\n$\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomastjdev%2Fnimwc_plugins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomastjdev%2Fnimwc_plugins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomastjdev%2Fnimwc_plugins/lists"}