{"id":13337376,"url":"https://github.com/tmscer/parshape","last_synced_at":"2025-03-11T06:32:06.560Z","repository":{"id":53917786,"uuid":"501233387","full_name":"tmscer/parshape","owner":"tmscer","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-31T13:17:41.000Z","size":536,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-11T10:23:11.119Z","etag":null,"topics":["nextjs","tex","vercel"],"latest_commit_sha":null,"homepage":"https://parshape.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tmscer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-08T12:05:10.000Z","updated_at":"2023-01-16T12:00:41.000Z","dependencies_parsed_at":"2023-01-31T19:15:31.054Z","dependency_job_id":null,"html_url":"https://github.com/tmscer/parshape","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmscer%2Fparshape","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmscer%2Fparshape/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmscer%2Fparshape/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmscer%2Fparshape/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmscer","download_url":"https://codeload.github.com/tmscer/parshape/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":213069674,"owners_count":15532832,"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":["nextjs","tex","vercel"],"created_at":"2024-07-29T19:14:20.166Z","updated_at":"2024-10-23T16:30:18.428Z","avatar_url":"https://github.com/tmscer.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parshape\n\nSee [parshape.com](https://parshape.com) for a live version.\n\nThis project came to be as a semestral work in subject [Typography and TeX](https://petr.olsak.net/typotex.html).\nSubject page on CTU's website can be found [here](https://bilakniha.cvut.cz/cs/predmet3407206.html).\n\n## List of features\n\n- draw a shape of your paragraph with\n  - lines\n  - lines that snap to a multiple of 15°\n  - half-circles\n  - n-point Bézier curve\n- configure the app close to your TeX environment, this project can use\n  - `\\baselineskip` and `\\lineskip`\n  - `\\hsize` and `\\vsize`\n  - `\\pagewidth` and `\\page height`\n  - offset of text start: `\\hoffset`, `\\pdfhorigin`, `\\voffset` and `\\pdfvorigin`\n\n## Static Build\n\n[![Static Build](https://github.com/tmscer/parshape/actions/workflows/static-build.yml/badge.svg?branch=master)](https://github.com/tmscer/parshape/actions/workflows/static-build.yml)\n\nTo obtain a static build click the badge above and\ngo to the latest build. On successful static builds, there is a section called **Artifacts**\nwith a ZIP file.\n\nTo serve the contents of the ZIP file, unpack it and serve using any HTTP server.\nMy favourite way to do so is using\n\n```console\n$ npx http-server -p 9000 \u0026  # ensure you are in the correct directory\n$ firefox localhost:9000\n```\n\nTo create a build locally, run\n\n```console\n$ npm run build:static\n```\n\nafter setting up your development environment using instructions below.\n\n## Local development\n\nRequired programs:\n\n- [Node.js](https://nodejs.org/en/download/) version \u003e= 14 and compatible NPM\n\nTo get started, run the following commands:\n\n```console\n$ npm install  # install dependencies\n$ npm run dev  # run local development server\n```\n\nA local build can be made with\n\n```console\n$ npm run build\n```\n\nand served with\n\n```console\n$ npm run start\n```\n\n## Documentation\n\nThis project is documented in two ways: code with its tests and a PDF file.\n\n### Code and tests\n\nIdeally all code should be tested -- don't understand what a line\nof code does? Try to change it or remove it and see what functionality breaks\nand which tests don't pass. Still have no clue? File an [issue](https://github.com/tmscer/parshape/issues/new).\n\nReact components should be understandable to a React developer. For everything\nelse there should be readable code (explanatory variables, short functions) and tests.\n\nJest is the chosen test runner. To run all tests, use:\n\n```console\n$ npm run test  # or `npm run test:watch` when developing\n```\n\n### PDF\n\n[![Build Docs](https://github.com/tmscer/parshape/actions/workflows/docs.yml/badge.svg)](https://github.com/tmscer/parshape/actions/workflows/docs.yml)\n\nTo obtain the PDF doc file, click the badge above and select the latest successful run from branch `master`.\nThe PDF contains high-level introduction to the project and explanation of some used\nalgorithms and math formulas.\n\nIf you wish to compile the TeX source yourself, go to `./doc` and run\n\n```console\n$ lautex -fmt optex parshape.tex\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmscer%2Fparshape","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmscer%2Fparshape","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmscer%2Fparshape/lists"}