{"id":42212908,"url":"https://github.com/foliant-docs/foliantcontrib.slate","last_synced_at":"2026-02-16T13:18:24.634Z","repository":{"id":57431765,"uuid":"149454944","full_name":"foliant-docs/foliantcontrib.slate","owner":"foliant-docs","description":null,"archived":false,"fork":false,"pushed_at":"2020-06-09T08:55:04.000Z","size":422,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-24T22:59:07.314Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/foliant-docs.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-19T13:27:47.000Z","updated_at":"2020-06-09T08:55:06.000Z","dependencies_parsed_at":"2022-09-02T12:40:13.972Z","dependency_job_id":null,"html_url":"https://github.com/foliant-docs/foliantcontrib.slate","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/foliant-docs/foliantcontrib.slate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foliant-docs%2Ffoliantcontrib.slate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foliant-docs%2Ffoliantcontrib.slate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foliant-docs%2Ffoliantcontrib.slate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foliant-docs%2Ffoliantcontrib.slate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foliant-docs","download_url":"https://codeload.github.com/foliant-docs/foliantcontrib.slate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foliant-docs%2Ffoliantcontrib.slate/sbom","scorecard":{"id":406103,"data":{"date":"2025-08-11","repo":{"name":"github.com/foliant-docs/foliantcontrib.slate","commit":"61da11bd269398d52d6cee1416e0e46ba4e475f1"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 1/24 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 6 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T21:17:57.144Z","repository_id":57431765,"created_at":"2025-08-18T21:17:57.145Z","updated_at":"2025-08-18T21:17:57.145Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28794642,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-01-27T01:06:53.801Z","updated_at":"2026-01-27T01:06:54.708Z","avatar_url":"https://github.com/foliant-docs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![](https://img.shields.io/pypi/v/foliantcontrib.slate.svg)](https://pypi.org/project/foliantcontrib.slate/)  [![](https://img.shields.io/github/v/tag/foliant-docs/foliantcontrib.slate.svg?label=GitHub)](https://github.com/foliant-docs/foliantcontrib.slate)\n\n# Slate Backend for Foliant\n\n![Static site built by Foliant and Slate backend](https://raw.githubusercontent.com/foliant-docs/foliantcontrib.slate/master/img/slate.png)\n\nSlate backend generates API documentation from Markdown using [Slate docs generator](https://github.com/lord/slate).\n\nThis backend operates two targets:\n\n* `site` — build a standalone website;\n* `slate` — generate a slate project out from your Foliant project.\n\n## Installation\n\n```bash\n$ pip install foliantcontrib.slate\n```\n\nTo use this backend Slate should be installed in your system. Follow the [instruction](https://github.com/lord/slate#getting-set-up) in Slate repo.\n\nTo test if you've installed Slate properly head to the cloned Slate repo in your terminal and try the command below. You should get similar response.\n\n```bash\n$ bundle exec middleman\n== The Middleman is loading\n== View your site at ...\n== Inspect your site configuration at ...\n```\n\n## Usage\n\nTo convert Foliant project to Slate:\n\n```bash\n$ foliant make slate\nParsing config... Done\nApplying preprocessor flatten... Done\nApplying preprocessor _unescape... Done\nMaking slate... Done\n─────────────────────\nResult: My_Project-2018-09-19.src/\n```\n\nBuild a standalone website:\n\n```bash\n$ foliant make site -w slate\nParsing config... Done\nApplying preprocessor flatten... Done\nApplying preprocessor _unescape... Done\n─────────────────────\nResult: My_Project-2018-09-19.slate/\n```\n\n## Config\n\nYou don't have to put anything in the config to use Slate backend. If it is installed, Foliant detects it.\n\nTo customize the output, use options in `backend_config.slate` section:\n\n```yaml\nbackend_config:\n  slate:\n    shards: data/shards\n    header:\n        title: My API documentation\n        language_tabs:\n          - xml: Response example\n        search: true\n```\n\n`shards`\n:   Path to the shards directory relative to Foliant project dir or list of such paths. Shards allow you to customize Slate's layout, add scripts etc. More info on shards in the following section. Default: `shards`\n\n`header`\n:   Params to be copied into the beginning of Slate main Markdown file `index.html.md`. They allow you to change the title of the website, toggle search and add language tabs. More info in [Slate Wiki](https://github.com/lord/slate/wiki).\n\n## About shards\n\nShards is just a folder with files which will be copied into the generated Slate project replacing all files in there. If you follow the Slate project structure you can replace stylesheets, scripts, images, layouts etc to customize the view of the resulting site.\n\nIf shards is a string — it is considered a path to single shards directory relative to Foliant project dir:\n```\nslate:\n    shards: 'data/shards'\n```\n\nIf shards is a list — each list item is considered as a shards dir. They will be copied into the Slate project subsequently with replace.\n\n```\nslate:\n    shards:\n        - 'common/shards'\n        - 'custom/shards'\n        - 'new_design'\n```\n\nFor example, I want to customize standard Slate stylesheets. I look at the Slate repo and see that they lie in the folder `\u003cslate\u003e/source/stylesheets`. I create new stylesheets with the same names as the original ones and put them into my shards dir like that:\n\n```\nshards\\\n    source\\\n        stylesheets\\\n            _variables.scss\n            screen.css.scss\n```\n\nThese stylesheets will replace the original ones in the Slate project just before the website is be baked. So the page will have my styles in the end.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoliant-docs%2Ffoliantcontrib.slate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoliant-docs%2Ffoliantcontrib.slate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoliant-docs%2Ffoliantcontrib.slate/lists"}