# [[Static site generator]] ![[Static site generator.svg]] A static site generator is code that takes content, usually in a [[Markup languages|markup language]], and converts it into a publishing format such as [[XML]]. The generated code can then be uploaded to a web server. The point of a static site generator is to [[Principle of Atomicity]] two functions of a web server: generating content and serving it. With a static site generator, content is generated up front, leaving the web server with nothing to do but serve it. This approach significantly reduces the resources a web server needs, compared to a situation where a web server needs to dynamically generate content as needed. Static site generators are also more performant as there is less processing required to turn content into a website. ## Examples - [[Hugo]] - [site](https://gohugo.io/): My static site generator for [my site](https://nicole.to/site). Currently used by [[Grafana Labs (company)]] for marketing site and docs. - [[Gatsby]] - [site](https://www.gatsbyjs.com/): Previously used by [[k6 (Company)]] for marketing site and documentation - [[Jekyll]] - [site](https://jekyllrb.com/) - [[Eleventy]] - [site](https://www.11ty.dev/) - [[Sphinx]] - [site](https://www.sphinx-doc.org/en/master/) and [repo](https://github.com/sphinx-doc/sphinx) - [[AsciiDoc]] - [site](https://asciidoc.org/) - [[Middleman]] - [site](https://middlemanapp.com/) - [[Metalsmith]] - [site](https://metalsmith.io/) - [[MkDocs]] - [site](https://www.mkdocs.org/) - [[Hexo]] - [site](https://hexo.io/) - [[Obsidian Publish]] - [site](https://publish.obsidian.md): What I use to publish [my notes](https://notes.nicolevanderhoeven.com). - [[Quartz]] - [site](https://quartz.jzhao.xyz/): What I use to [write my book in public](https://doingitinpublic.com). - [[Docusaurus]] - [site](https://docusaurus.io/) ## Hosting Static site generators often don't come bundled in with a way to deploy/host your websites. Instead, they use [[Static hosting providers]]. %% # Excalidraw Data ## Text Elements ## Drawing ```json { "type": "excalidraw", "version": 2, "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.1.4", "elements": [ { "id": "4y8R7iOA", "type": "text", "x": 118.49495565891266, "y": -333.44393157958984, "width": 3.8599853515625, "height": 24, "angle": 0, "strokeColor": "#1e1e1e", "backgroundColor": "transparent", "fillStyle": "solid", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "groupIds": [], "frameId": null, "roundness": null, "seed": 967149026, "version": 2, "versionNonce": 939059582, "isDeleted": true, "boundElements": null, "updated": 1713723615080, "link": null, "locked": false, "text": "", "rawText": "", "fontSize": 20, "fontFamily": 4, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "", "lineHeight": 1.2 } ], "appState": { "theme": "dark", "viewBackgroundColor": "#ffffff", "currentItemStrokeColor": "#1e1e1e", "currentItemBackgroundColor": "transparent", "currentItemFillStyle": "solid", "currentItemStrokeWidth": 2, "currentItemStrokeStyle": "solid", "currentItemRoughness": 1, "currentItemOpacity": 100, "currentItemFontFamily": 4, "currentItemFontSize": 20, "currentItemTextAlign": "left", "currentItemStartArrowhead": null, "currentItemEndArrowhead": "arrow", "scrollX": 583.2388916015625, "scrollY": 573.6323852539062, "zoom": { "value": 1 }, "currentItemRoundness": "round", "gridSize": null, "gridColor": { "Bold": "#C9C9C9FF", "Regular": "#EDEDEDFF" }, "currentStrokeOptions": null, "previousGridSize": null, "frameRendering": { "enabled": true, "clip": true, "name": true, "outline": true } }, "files": {} } ``` %%