Compare commits

..

No commits in common. "c4947a9c04c483dd7cdf9336062f9b02af858df6" and "6520cdbcf035ce5029555c299051dd7d53044d9e" have entirely different histories.

5 changed files with 2143 additions and 2318 deletions

View file

@ -1,23 +1,10 @@
/* jshint strict: false */ /* jshint strict: false */
import fs from 'fs/promises';
import {HtmlBasePlugin} from "@11ty/eleventy"; import {HtmlBasePlugin} from "@11ty/eleventy";
import pluginWebc from "@11ty/eleventy-plugin-webc";
async function hasFiles(dirPath) {
try {
const entries = await fs.readdir(dirPath, {withFileTypes: true});
return entries.some(entry => entry.isFile());
} catch (err) {
console.error('Error reading directory:', err);
return false;
}
}
// noinspection JSUnusedGlobalSymbols // noinspection JSUnusedGlobalSymbols
export default async function (eleventyConfig) { export default async function (eleventyConfig) {
eleventyConfig.addPlugin(HtmlBasePlugin); eleventyConfig.addPlugin(HtmlBasePlugin);
eleventyConfig.addPlugin(pluginWebc);
eleventyConfig.setLiquidOptions({ eleventyConfig.setLiquidOptions({
// greedy: false, // greedy: false,
@ -30,9 +17,6 @@ export default async function (eleventyConfig) {
eleventyConfig.addGlobalData('permalink', () => { eleventyConfig.addGlobalData('permalink', () => {
return (data) => `${data.page.filePathStem}.${data.page.outputFileExtension}`; return (data) => `${data.page.filePathStem}.${data.page.outputFileExtension}`;
}); });
const demoPath = await hasFiles('source/screens') ? '/demo/' : '/';
eleventyConfig.addGlobalData('hippie', { eleventyConfig.addGlobalData('hippie', {
brand: 'hippie', brand: 'hippie',
titlePrefix: '', titlePrefix: '',
@ -44,7 +28,6 @@ export default async function (eleventyConfig) {
mail: 'name@domain.tld', mail: 'name@domain.tld',
domain: 'https://domain.tld' domain: 'https://domain.tld'
}, },
demoPath: demoPath,
debugMode: true, debugMode: true,
legacyMode: false legacyMode: false
}); });
@ -100,6 +83,7 @@ export default async function (eleventyConfig) {
</g> </g>
</g> </g>
</svg> </svg>
`; `;
let output = ''; let output = '';
@ -137,6 +121,7 @@ export default async function (eleventyConfig) {
includes: '../templates', includes: '../templates',
data: '../data' data: '../data'
}, },
templateFormats: ['html', 'liquid', 'md', 'njk'] templateFormats: ['html', 'liquid', 'md']
// pathPrefix: './demo/'
}; };
} }

View file

@ -4,20 +4,15 @@ Hippie interweaves preeminent personal interface elements
> WORK IN PROGRESS (it is not ready to be used) > WORK IN PROGRESS (it is not ready to be used)
This is a [Node.js](https://nodejs.org/) based generator for static HTML documents. This is a [Node.js](https://nodejs.org/) based generator for static HTML documents.
It uses the [Eleventy](https://www.11ty.dev/) project to fiddle everything together.
Styling is powered by the CSS extension language [SASS](https://sass-lang.com/). The HTML pages are written with It uses the [gulp](https://gulpjs.com/) module to fiddle everything together. Styling is powered by the CSS extension language [SASS](https://sass-lang.com/). The HTML pages itself are made with the templating engine [Nunjucks](https://mozilla.github.io/nunjucks/).
templating engines or directly as HTML files. Mainly [Liquid](https://liquidjs.com/) is used,
but [Markdown](https://daringfireball.net/projects/markdown/) and [Nunjucks](https://mozilla.github.io/nunjucks/) are
also options.
## Installing ## Installing
Clone the repository `https://quelltext.interaktionsweise.de/interaktionsweise/hippie.git` to a folder to create your Clone the repository `https://quelltext.interaktionsweise.de/interaktionsweise/hippie.git` to a folder to create your build environment.
build environment.
Change to the newly created folder. By default, this would be *hippie*. Change to the newly created folder. By default this would be *hippie*.
Run the command `git submodule update --init`. Run the command `git submodule update --init`.
This will load the submodules. This will load the submodules.
@ -27,26 +22,21 @@ This will install all dependencies into the folder *node_modules*.
## Usage ## Usage
Different *scripts* are provided through `package.json`: The command `gulp --tasks` will give you an overview of possible actions.
Run the command `npm run serve` for a live development environment. Run the command `gulp` for a live development environment.
This will create a folder `/build` with the resulting files. This will create a folder *build* with the resulting files.
Also, the source files will be watched for changes which are reflected live at [localhost:8080](http://localhost:8080) Also the source files will be watched for changes which are reflected live at [localhost:3000](http://localhost:3000) and the *build* directory.
and the `/build` directory.
`npm run build` will just create the resulting `/build` directory and `npm run deploy` will use a path prefix (*hippie* `gulp build` will create the resulting *build* directory ready for deployment.
by default) and create the results in `/deploy` ready for deployment.
HIPPIE is intended to be used as a basis when creating HTML sites. It can be used without changes. It can be modified to HIPPIE is intended to be used as a basis when creating HTML sites. It can be used without changes. It can be modified to have a different look and feel. It also can be used to build a new basis on top of it.
have a different look and feel. It also can be used to build a new basis on top of it.
## Content ## Content
### Intro ### Intro
There is an *intro* page which explains the main elements and their intended usage. It uses the default styling methods There is an *intro* page which explains the main elements and their intended usage. It uses the default styling methods and also shows variations. The page is written in german language. However it has a semantic structure and the text itself can also just be seen as example content.
and also shows variations. The page is written in german language. However, it has a semantic structure and the text
itself can also just be seen as example content.
### Sass (CSS) ### Sass (CSS)
@ -54,16 +44,15 @@ Everything has its default style.
CSS classes follow a naming scheme of `<object>_<description>`. CSS classes follow a naming scheme of `<object>_<description>`.
- *Object* usually is the name of the HTML element. If it is not an element directly it is the thing which receives the - *Object* usually is the name of the HTML element. If it is not a element directly it is the thing which receives the styling
styling
- *Description* is a name of the style e.g. what it does, how it looks - *Description* is a name of the style e.g. what it does, how it looks
### JavaScript (JS) ### JavaScript (JS)
The codebase uses ECMAScript 2023 Language Specification (14th edition). The codebase uses ECMAScript 2023 Language Specification (14th edition).
However, currently the JSHint configuration only allows 11 as highest version. However, currently the JSHint configuration only allows 11 as highest version.
ID values are written in *camelCase*. The scheme further uses parts for specific contexts. ID values are written in *camelCase*. The scheme further uses parts for specific contexts.
If the ID is for an interactive element the first part is an abbreviation of the action. If the ID is for an interactive element the first part is an abbreviation of the action.
@ -76,23 +65,19 @@ If the ID is for an interactive element the first part is an abbreviation of the
## Versioning ## Versioning
This project uses [SemVer](http://semver.org/) for versioning. For the versions available, see This project uses [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://quelltext.interaktionsweise.de/interaktionsweise/hippie/tags).
the [tags on this repository](https://quelltext.interaktionsweise.de/interaktionsweise/hippie/tags).
## Contribution ## Contribution
For contribution please use the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) For contribution please use the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) specification.
specification.
The commit *type* can include the following: The commit *type* can include the following:
- feat A new feature is introduced with the changes - feat A new feature is introduced with the changes
- fix A bug fix has occurred - fix A bug fix has occurred
- chore Changes that do not relate to a fix or feature and don't modify src or test files (for example updating - chore Changes that do not relate to a fix or feature and don't modify src or test files (for example updating dependencies)
dependencies)
- refactor Refactored code that neither fixes a bug nor adds a feature - refactor Refactored code that neither fixes a bug nor adds a feature
- docs Updates to documentation such as the README or other Markdown files - docs Updates to documentation such as a the README or other markdown files
- style Changes that do not affect the meaning of the code, likely related to code formatting such as white-space, - style Changes that do not affect the meaning of the code, likely related to code formatting such as white-space, missing semi-colons, and so on.
missing semicolons, and so on.
- test Including new or correcting previous tests - test Including new or correcting previous tests
- perf Performance improvements - perf Performance improvements
- ci Continuous integration related - ci Continuous integration related

4383
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -38,7 +38,7 @@
}, },
"dependencies": { "dependencies": {
"@11ty/eleventy": "^3.1.2", "@11ty/eleventy": "^3.1.2",
"@11ty/eleventy-plugin-webc": "^0.11.2", "@11ty/eleventy-upgrade-help": "^3.0.2",
"bootstrap-icons": "^1.13.1", "bootstrap-icons": "^1.13.1",
"hippie-script": "git+https://quelltext.interaktionsweise.de/interaktionsweise/hippie-script.git", "hippie-script": "git+https://quelltext.interaktionsweise.de/interaktionsweise/hippie-script.git",
"jquery": "^3.7.1", "jquery": "^3.7.1",

View file

@ -1,5 +1,5 @@
--- ---
permalink: "{{ hippie.demoPath }}" permalink: "/"
title: Index title: Index
--- ---
{% assign pageId = page.fileSlug -%} {% assign pageId = page.fileSlug -%}