{"id":15537015,"url":"https://github.com/nikolas/oblique","last_synced_at":"2025-07-12T12:34:03.879Z","repository":{"id":138008708,"uuid":"34705736","full_name":"nikolas/oblique","owner":"nikolas","description":"An indirect static site generator","archived":false,"fork":false,"pushed_at":"2017-08-02T13:51:27.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-20T14:42:27.253Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikolas.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-28T03:20:28.000Z","updated_at":"2023-09-08T16:57:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"d8f1df23-8aa0-474a-96fd-81446d22652e","html_url":"https://github.com/nikolas/oblique","commit_stats":{"total_commits":19,"total_committers":2,"mean_commits":9.5,"dds":0.1578947368421053,"last_synced_commit":"19cc05bfeaa94836b3e02cf9450be3125dce3d41"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolas%2Foblique","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolas%2Foblique/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolas%2Foblique/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolas%2Foblique/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikolas","download_url":"https://codeload.github.com/nikolas/oblique/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246112883,"owners_count":20725342,"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-02T11:54:32.509Z","updated_at":"2025-03-28T23:22:04.854Z","avatar_url":"https://github.com/nikolas.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oblique\n\n[![Build Status](https://img.shields.io/travis/nikolas/oblique/master.svg)](https://travis-ci.org/nikolas/oblique)\n\n## ¿   ?\n\nAn indirect static site generator: it compiles your entries from an\n`index.html` file into a full site. By using HTML as the authoring medium,\nOblique removes the markup layer of abstraction, while retaining the\norganizational convenience of static site templates. This approach could\nbe thought of as \"static site assembly\".\n\nWhen you make a site with Oblique, the build step is optional. You\ncan author the content in HTML and have a site that will render just\nfine in the web browser. Then, you can use Oblique on whatever\naggregate files you want to create the archived, \"detail\" pages for\neach entry in the aggregate.\n\nFor example:\n\n```html\n\u003c!doctype html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n    \u003ctitle\u003eNotes from another time\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n    \u003cdiv class=\"post\"\u003e\n         \u003ch1 class=\"title\"\u003e\n             \u003ca href=\"/-/today-i-learned-something-weird.html\"\u003e\n               Today I learned something weird\n             \u003c/a\u003e\n         \u003c/h1\u003e\n         \u003ctime\u003eApril 18, 2027\u003c/time\u003e\n         \u003cdiv class=\"blog-post\"\u003e\n         \u003cp\u003e\n            Well, I never thought I would learn that, but I did.\n         \u003c/p\u003e\n         \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cdiv class=\"post\"\u003e\n         \u003ch1 class=\"title\"\u003e\n             \u003ca href=\"/-/a-note-from-the-roaring-20s.html\"\u003e\n               A note from the roaring 20s\n             \u003c/a\u003e\n         \u003c/h1\u003e\n         \u003ctime\u003eFebruary 12, 2027\u003c/time\u003e\n         \u003cdiv class=\"blog-post\"\u003e\n         \u003cp\u003e\n            Dear diary, I'd like to tell you everything, but\n            I can't say it all at once.\n         \u003c/p\u003e\n         \u003c/div\u003e\n    \u003c/div\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n    $ python3 oblique/oblique.py index.html\n\nGiven this index page, Oblique's simple job is to archive\nthe posts into `/-/today-i-learned-something-weird.html` and\n`/-/a-note-from-the-roaring-20s.html`.\n\n## Testing\n\n    $ source env/bin/activate\n    $ python setup.py test\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikolas%2Foblique","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikolas%2Foblique","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikolas%2Foblique/lists"}