Giter VIP home page Giter VIP logo

omroka / eleventy-multilingual-portfolio Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 2.74 MB

A multilingual portfolio / blog template for people with little coding experience

License: MIT License

JavaScript 29.94% Nunjucks 37.61% CSS 32.45%
11ty 11ty-starter 11ty-template eleventy eleventy-starter eleventy-template eleventy-website i18n internationalization multilingual portfolio-website portolio

eleventy-multilingual-portfolio's Introduction

Eleventy Multilingual Portfolio (Beta)

This template is for people with little coding experience who still want an affordable, manageable and very performant portfolio and/or blog website (unlike no-code tools). It aims for simplicity yet up-to-date best practices in term of accessibility, SEO, UI, speed and so on. It will be further updated with corrections and features based on feedbacks. It use the Eleventy site generator.

A complete list of the features is available below, but mainly it offers an simple way to manage images and write you content, in markdown and separated from code. The website appearance can easily be modified because no class is used in the CSS.

โš ๏ธ It's a beta version, some things are broken for now (projects list). Also you're invited to review the code and clean it up with me.

Table of content

Features

  • Static website
    • No javascript, all pages are pre-rendered
    • Configured for EN and FR content but can support different or more languages
    • Write your website in Markdown or HTML or a mix to generate HTML pages
    • Use the first image in a web page as a thumbnail in another one with a simple shortcode
    • Local server with live reload to work on your website in realtime
  • Generated pages and elements
    • Home, projects and about pages
    • sitemap.xml
    • robots.txt
    • 404 Content not found pages
    • .htaccess for redirects on Apache servers
    • "previous" / "next" links at the bottom of pages
  • Multilingual
    • Use elevent's i18n plugin
    • A folder for each language, name you pages as you want
    • Easily add new languages
    • Apache redirects to the correct root and 404 depending on the client's preferences
    • "This page is also available in" footer link
    • A language version list other available options using hreflang attribute
  • Blazing fast
    • No javascript loading
    • Small CSS file size
    • System fonts
    • Optimized images
  • Image optimization
    • Automatically generates multiple image formats and sizes from a single image
    • Serve the best image according to the client's device size
    • Simple markup in Mardown: {% image "name.png", "description" %}
    • Modern image format conversion (AVIF)
    • Images can be located anywhere
    • Images keep their name for SEO purposes
  • Simple and customizable CSS
    • Classless CSS that works with any vanilla HTML / Markdown
    • Kept as simple as possible but versatile
    • Automatic dark and light theme
    • Uses Harmony color palette for accessible and even color contrasts and easy color swap
    • Responsive font size and spacing
    • Simple grid system
    • Styling of the most used elements
    • Normalize browsers' styling

Getting started

  1. Make sure you have Node.js installed

  2. Open your terminal, make a directory and navigate to it:

mkdir new-directory-name
cd new-directory-name
  1. Clone this Repository
git clone https://github.com/omroka/eleventy-multilingual-portfolio/
  1. Modify src/_data/meta.js with your own info (website url, website name, and a default description). Optional: modify eleventy.config.js too with your own eleventy preferences

  2. Install dependencies

npm install
  1. Run Eleventy Build to the dist folder and host on a local development server (http://localhost:8080/) to test your website:
npm start

Generate a ready-to-publish build to the dist folder:

npm run build

First configuration

  • Change src/_data/languages/ depending on your website languages
  • Replaces the images in src/public/favicon og/. The og image is the default link preview when you share your website on social medias etc. Favicons and icons are for browsers' tabs, bookmarks etc. You can follow this "how to" on favicons
  • .htaccess file is used for redirects to the correct language. Change its content based on your website languages.
  • to change the typeface: drop your font (.woff or .woff2) in src/public/fonts/. Then search and replace "YourFontName" in src/public/css by the name of the font. Verify that line 8 the url is matching with the file name, because it may not be the case.

Documentation

There will be an explanation of every file here.

Get help

This project is maintained by me, @omroka. Feel free to reach me out, on Twitter, Discord or via the email displayed on my website.

Roadmap

  • Next / previous links at the bottom of pages done
  • CSS updates: cleaning code and style changes
  • Bundling CSS
  • CSS minifier
  • Breadcrumbs?
  • Automatic link anchor for headings
  • Atom and JSON feeds for RSS updates
  • Tags system
  • Draft categorization for pages (not rendered when building the website but only in preview)
  • Webapp?

eleventy-multilingual-portfolio's People

Contributors

omroka avatar

Stargazers

 avatar

Watchers

 avatar

eleventy-multilingual-portfolio's Issues

Better README

The README should be clearer

  • It should specify that Git has to be installed
  • "Implementation Notes" should be completed
  • Step 2 should be broken in 2 steps and directory creation may be easier with the file explorer
  • Step 4 can be broken in 2 steps : 1 optional review of the config file and later 1 about meta.js
  • Explain how to visualize localhost server preview
  • "Features" could be easier to understand
  • "Config" could be clearer : explain first the steps people may want to do first (modify the languages, the appearance...)
  • Maybe a small tutorial on how to write your first page and change the CSS a bit ?
  • "Get help" should link to 11ty Discord server
  • Maybe add how to contribute and how to give feedbacks?
  • Add a reminder to manually change the url from localhost:8080 to localhost:8080/en/ because redirects only work on the server

Better example pages

  • The content of the different example pages should show what is possible to do with this template, with Mardown, HTML, Nunjucks and potentially CSS.
  • They should show different image and text layouts, and elements (titles, code blocks and so on)
  • They should provide a satisfying and clear on-boarding experience
  • They should explain the pros and cons of such website creation method (over no-code tools for example or other eleventy templates)

Support for other file formats

  • Svg file format should be supported by the image shortcode (bypass through?)
  • Gif file format should be supported by the image shortcode (bypass through?)
  • There should also be a clear explanation of how to handle videos
  • There should also be a clear explanation of how to display PDF

CSS cleanup

  • Some parts of the code can potentially be cleaned up (erased).
  • There should be a lot more comments.
  • Sections must be clearly labeled.
  • Variables should be added (body max-width for example)
  • It should be clear how to modify the CSS to achieve simple style transformations

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.