{"id":13462270,"url":"https://github.com/Pomax/BezierInfo-2","last_synced_at":"2025-03-25T01:31:58.534Z","repository":{"id":38342507,"uuid":"48401499","full_name":"Pomax/BezierInfo-2","owner":"Pomax","description":"The development repo for the Primer on Bézier curves, https://pomax.github.io/bezierinfo","archived":false,"fork":false,"pushed_at":"2024-08-20T10:38:51.000Z","size":34932,"stargazers_count":2397,"open_issues_count":107,"forks_count":292,"subscribers_count":56,"default_branch":"master","last_synced_at":"2025-03-24T11:16:04.955Z","etag":null,"topics":["bezier-curves","book"],"latest_commit_sha":null,"homepage":"https://pomax.github.io/bezierinfo","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pomax.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"patreon":"bezierinfo"}},"created_at":"2015-12-22T00:32:11.000Z","updated_at":"2025-03-22T06:33:16.000Z","dependencies_parsed_at":"2023-01-24T11:31:07.174Z","dependency_job_id":"82df6965-eaff-4d23-8d47-9f4c198ad7cc","html_url":"https://github.com/Pomax/BezierInfo-2","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pomax%2FBezierInfo-2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pomax%2FBezierInfo-2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pomax%2FBezierInfo-2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pomax%2FBezierInfo-2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pomax","download_url":"https://codeload.github.com/Pomax/BezierInfo-2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245382125,"owners_count":20606157,"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":["bezier-curves","book"],"created_at":"2024-07-31T12:00:43.411Z","updated_at":"2025-03-25T01:31:58.517Z","avatar_url":"https://github.com/Pomax.png","language":"HTML","funding_links":["https://patreon.com/bezierinfo"],"categories":["Uncategorized","HTML","PHP","📦 Legacy \u0026 Inactive Projects"],"sub_categories":["Uncategorized"],"readme":"# BezierInfo-2: a dev repository\n\nThis is the development repository for [\"A Primer on Bézier Curves\"](https://pomax.github.io/bezierinfo), itself hosted as https://pomax.github.io/BezierInfo-2/\n\nThis is the new codebased for the primer, being a pure HTML/CSS/Vanilla-JS tech stack - the old version can be found on the [2016-react](https://github.com/Pomax/BezierInfo-2/tree/2016-react) branch\n\nWork is still underway on this new version, see https://github.com/Pomax/BezierInfo-2/issues/257 for the current task list.\n\n## Building everything\n\nUse the active Node LTS (currently v16) or higher, with all the project dependencies installed via `npm install`. Note that [node-canvas](https://github.com/Automattic/node-canvas) will need you to [install some Cairo libs/headers](https://github.com/Automattic/node-canvas#compiling) using your OS's package manager, with [special instructions for Windows users](https://github.com/Automattic/node-canvas/wiki/Installation:-Windows) because Windows doesn't come with the same kind of package management that Unixy systems do. To successfully compile, GTK is _required_, but JPEG support is not (this repo's code only generates PNG images).\n\nAlso note that you will need a TeX installation with several dependencies: on Windows, install [MiKTeX](https://miktex.org/download) and set it up so that it automatically installs things as needed. On Linux/Unix/etc, you'll need to install the following packages :\n\n- xzdec\n- libpoppler-glib-dev\n\nAnd for the LaTeX work you will need:\n\n- texlive\n- texlive-xetex\n- texlive-extra-utils\n- fonts-unfonts-core\n- pdf2svg\n\nTo make life easier, if your distro uses apt-get, just run this:\n\n```\n\u003e sudo apt-get update \u0026\u0026 sudo apt-get install xzdec libpoppler-glib-dev texlive texlive-xetex texlive-extra-utils pdf2svg\n```\n\nIf you're using a different package installation method, note that for LaTeX you will need `xetex`, `pdfcrop`, and the following fonts (installed using a TeX distribution manager):\n\n- Linux Libertine\n- XITS Math\n- TeX Gyre\n- TeX Gyre Math\n- Arphic-ttf\n- IPAex (_not_ type1)\n- UnBatang\n\nNote: [pdf2svg](https://github.com/dawbarton/pdf2svg/), can be installed just like everything else on Linux, but on Windows requires you to build the tool yourself, after which you will have to put the pdf2svg.exe file somewhere sensible (like `C:\\Program Files (x86)\\pdf2svg`) add then manually add its directory to your PATH environment variable, so that windows knows where to look when the `pdf2svg` command gets issued.\n\nWith all the dependencies in place, you can now continuous-test everything using:\n\n```\n\u003e npm test\n```\n\nWhich will start the build run in \"watch\" mode, opening a browser with the compiled project, and recompiling as you update and save files.\n\nTo run a single, full build, rather than continuous building, use:\n\n```\n\u003e npm start\n```\n\nNote that for dev work, you typically want to run `npm test` for as long as you're working on that code. Once you're ready to form a commit for PR purposes, run `npm start` to do a \"real\" build rather than a dev build, and then form your commit, so that you're pushing \"final\" code rather than intermediate dev code.\n\n#### Specialised commands:\n\n- `npm run regenerate` runs a build followed by running `prettier` on the final .html files, as well as `link-checker` to make sure there are no dead links in the content.\n- `npm run deploy` runs `regenerate` and then copies the content of the `docs` directory over to `../bezierinfo`, which is where the actual webview repo lives on my filesystem.\n\n#### Even more specialized commands:\n\nPlease see the package.json `\"scripts\"` section for the full list of commands. Most of these are just build chain steps, and running them on their own basically makes no sense.\n\n## Weird personal dependencies?\n\nThere are a number of dependencies that are pulled from my own forks of projects, because my versions include patches (either by myself or others) that fix problems or shortcomings that have not been merged into upstream (yet?), or _have_ been merged in but have not had a new release (yet?).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPomax%2FBezierInfo-2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPomax%2FBezierInfo-2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPomax%2FBezierInfo-2/lists"}