@nera-static/starter-portfolio
v1.0.1
Published
A ready-to-edit Nera portfolio for a designer on @nera-static/theme-business: home, projects with image galleries, about, a contact form, navigation, responsive images, social links, a sitemap and imprint and privacy placeholders. One small script for the
Downloads
127
Maintainers
Readme
@nera-static/starter-portfolio
📖 Documentation: nera.js.org
A ready-to-edit portfolio for a designer or illustrator, built with the
Nera static site generator on
@nera-static/theme-business:
home with a hero image, a projects index with one image card per project,
three projects with captioned image galleries, about, a contact form,
navigation, responsive images, social links, a sitemap and imprint and privacy
placeholders. One small script for the contact form, no third-party requests;
a fresh site passes nera build --check and nera validate without a single
finding.
Usage
npx @nera-static/nera new my-site --starter portfolio
npx @nera-static/nera new my-site --starter portfolio --name "Studio Kreis" --lang de--name and --lang set name and lang in config/app.yaml; a new
language gets a copy of the English translations: entry to translate. The
pages never name the person or studio, so --name renames the whole site.
What you get
pages/index.md(home with the hero and a card per project),about.md,contact.md(with the form)pages/projects/index.md: the projects index on the theme'spages/list.pug, one card per project with itsimagepages/projects/tides.md,blocks.md,orbits.md: one project each on the theme'spages/gallery.pug, three captioned images laid out as a grid, numbered byorderpages/imprint.md,pages/privacy.md: placeholders, not legal textsconfig/app.yaml: name, language,theme: business,origin, a city and a country underbusiness:(no address, phone or opening hours) and the theme and plugin textsconfig/theme.yaml,contact-form.yaml,navigation.yaml,images.yaml(frontmatterimagebecomes a responsive picture),social-media-links.yamltheme/views/partials/: the theme's seams, filled with the plugins' outputtheme/views/vendor/: the plugins' published templatestheme/assets/js/contact-form.js: the contact form's script, which opens the visitor's own mail program (the form has no backend)theme/assets/images/: the hero and three images per project- plugins: contact-form, images, navigation, social-media-links, sitemap
Sample images
The ten sample images are abstract compositions generated for this starter by
scripts/sample-images.js (in the repository, not in the package): its own
work under the MIT licence of this package, no photo agency, no attribution
owed. Keep, replace or delete them.
German texts for --lang de
Replace the copied de: entry in config/app.yaml with:
de:
language_name: Deutsch
Skip to content: Zum Inhalt springen
Main navigation: Hauptnavigation
Language: Sprache
Legal: Rechtliches
Opening hours: Öffnungszeiten
Closed: Geschlossen
Contact details: Kontakt
Phone: Telefon
Email: E-Mail
Imprint: Impressum
Privacy: Datenschutz
Navigation: Navigation
Message from the website: Nachricht über die Website
Send message: Nachricht senden
Please fill in all required fields.: Bitte füllen Sie alle Pflichtfelder aus.
Please enter a valid email address.: Bitte geben Sie eine gültige E-Mail-Adresse an.
'Yes': Ja
'No': Nein
Your name: Ihr Name
Your email: Ihre E-Mail-Adresse
Message: Nachricht
I have read the privacy notice: Ich habe die Datenschutzerklärung gelesen
contact_intro: Erzählen Sie mir von Ihrem Projekt, seinem Umfang und seinem Zeitplan. Ich antworte innerhalb weniger Tage.
contact_consent: 'Beim Senden öffnet sich Ihr eigenes E-Mail-Programm; diese Website versendet nichts. Mehr dazu in der <a href="/privacy.html">Datenschutzerklärung</a>.'The pages themselves stay English: translate their copy by hand.
Requirements
@nera-static/nera1.11.0 or later, with@nera-static/core4.15.0 or later (the theme's floor; a fresh install brings the newest)- Node.js
>=22.12.0(its bundled npm 10.9 or later)
License
MIT
First steps
After nera new the files are yours: a starter has no update path. Each
file named in steps 1 to 5 marks its placeholders as such.
- Replace
origin: https://example.cominconfig/app.yamlwith your site's real address. The sitemap is built from it. - Replace the city and country under
business:inconfig/app.yaml. They show in the footer and next to the contact form. - Replace
recipient: [email protected]inconfig/contact-form.yamlwith the address the contact form writes to. - Replace the social link in
config/social-media-links.yaml. - Replace
pages/imprint.mdandpages/privacy.mdwith your own legal texts. - Replace the sample projects in
pages/projects/, the copy of the other pages, the sample images intheme/assets/images/and the grey placeholder icontheme/assets/favicon.icowith your own. A new project is a page onpages/gallery.pugwith anorder, animageand animage_altfor its card.
