Code Monkey home page Code Monkey logo

neic.no's Introduction

License

Sources behind https://neic.no

Text is licensed under CC BY-SA 4.0. Source code is licensed under MPL v2.0.

Executive summary

We use GitHub pages. Sources are at https://github.com/neicnordic/neic.no. The web is full of guides and tutorials. GitHub pages uses GitHub flavored markdown syntax. Go to #web in NeIC slack if you need someone to talk to.

Requirements to edit the website

You need a GitHub account.

Optional: For very minor things like updating an email address it's easiest if you are part of the neicnordic organization. Ask in #web in NeIC slack.

If you want to preview the website locally on your computer, you need to install Jekyll.

Why is the website on GitHub/Jekyll?

This way we do not have to worry about hosting, backup, and uptime. Also we allow anybody to submit changes and corrections without the need of giving these persons write or edit permissions.

We have moved to GitHub/Jekyll early 2017. Before this move, the web hosting was done by a separate entity and we had to ask them for every change and it introduced delays and slowed done larger reorganization of pages. Back then, there was a large demand in moving the pages to a public hosting solution where anybody can propose changes and where accepting changes becomes nearly trivial.

When we chose the web hosting solution, we imagined that all NeIC staff is somehow familiar with open source tools and web hosting (this assumption was not correct) and that all NeIC staff would participate in maintaining the website (also this was not correct in hind-sight).

Now, couple of year later, we should have preferred an even simpler solution where one can submit and preview changes without knowledge of Git, GitHub, JavaScript, CSS, or HTML.

Recommendations for editing pages

Show non-trivial changes to others before they are on the main site

For trivial changes like updating an email address: Edit in directly through the web interface if you have write/edit permissions.

For non-trivial changes, make a fork (guide here).

If you work in a fork then you can point others to https://YOURUSER.github.io/neic.no to show them your work (but nothing is shown until you actually commit a change).

Example: https://yohell.github.io/neic.no.

Work locally if you can (not trivial on Windows)

  1. Clone the source code to your laptop.
  2. Serve it with jekyll serve.
  3. See changes live on http://localhost:4000/.
  4. Edit until happy.
  5. Commit.
  6. Push your changes back to GitHub.

Full guide here.

Where to place things

  • Ideally content should be in Markdown files.
  • Page layout should be in html files.
  • Ideally (almost) no content should be in html files.

We use Jekyll collections. Information on similar things are in the same folder. Examples:

  • People are in _people/.
  • Activities are in _activities/.
  • News articles are in _posts/.
  • ... you get the idea.

How to add/edit/modify persons

All people/staff are under _people/. I recommend to copy an existing person file which is either in the same project or has a similar set of group properties, rename the file, and adapt it.

  • Example file
  • Adapt name, homepage, country, photo, email, phone.
  • Under groups: are all the groups this person is in and in which role. Based on this information, group pages are populated with people.

For the record and for future restructuring of the website, I (RB) would like to recommend that I think now, few years after we introduced the structure, that it is too complex. I would prefer a solution where all content are simple Markdown pages and where content is not generated from a YAML data structure, like it is done now.

Media

  • News pictures should be ideally be 762x507 px in size.

Troubleshooting

If you hit a problem and do not know how to get out of it, ask in #web in NeIC slack, but here's the basics depending how you were working:

If you were working directly through the web interface

Ask in #web in the NeIC slack for help.

If you were working on a local clone

This is a simple, non-elegant solution:

  1. Make a new clone of whatever you were working on and which worked before it broke.
  2. Copy over the stuff you want and leave behind the changes you wish to discard.
  3. Commit.
  4. Push your changes.
  5. Delete the broken clone.

neic.no's People

Contributors

abdulrahmanazab avatar ambach avatar anettelb avatar annahagwall avatar antti-pur avatar bast avatar biomobst avatar blindij avatar caela avatar cbasu avatar djstill avatar emmatcheng avatar erland13 avatar jarnolaitinen avatar johannakaunisvaara avatar josefinen avatar kinenordstokka avatar knielbo avatar livenson avatar mariannestrom avatar marirar avatar maswan avatar menzzana avatar nicjar avatar paurkedal avatar soniahoubak avatar tomatkie avatar trz42 avatar vilmahakkinen avatar yohell avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neic.no's Issues

Creation and placement of calendar links

This event has an anchorjs link next to its heading which displays on hover.

http://neic.no/activities/tryggve/#eudat-sensitive-data-meeting

I wanted to do the same but with a calendar icon, to edit the calendar. I stole the html that anchorjs generates and replaced the icon and url.

Issues:

  • Is there a better way to do it? For example anchorjs has some logic in it to know whether the icon be shown on hover or always (eg on touchscreens).
  • I couldn't get the icon to display next to the heading, but it would always end up on the next line. So now I'm displaying it next to the date instead. Good/bad?

Make https://neic.no/tryggve#reference-group do something useful

I want to be able to link people to eg

https://neic.no/tryggve#reference-group
or
https://neic.no/tryggve#tryggve-rg

and have that do something useful, like expand the group member list and scroll down the browser window to it.

Presently I have to link to https://neic.no/tryggve and instruct people to scroll down, find the "REFERENCE GROUP" tab (yes it's a tab, or a heading thingie, with a down arrow on it, yes that one...) and click it, in order to see who's in the reference group, which is less than expedient.

Separate templating from content

The content should move out of the templates into Markdown/YAML so that the content can be edited by persons who do not know HTML/CSS.

Hardcoded text in /about/ page

  • publications are hardcoded
  • "What is NeIC?" is repeated (click "read more")
  • "Our history" is repeated (click "read more")

Port redesigned pages to Jekyll infrastructure

List of pages to port. Check them off once done:

  • about.php
  • activities.php
  • api.php
  • contact-single.php
  • contact.php
  • footer.php
  • frontpage.php
  • header.php
  • index.php
  • latest-news.php
  • news-single.php
  • open-positions.php
  • publications.php
  • single-activity.php
  • training-landing.php
  • training.php

Add "contact" section to activities?

With a lot of people on a page it could become hard for an outsider to know whom to contact. This is nontrivial though, and there's a risk that "simple" solutions are to inflexible.

Consider:

contact: antti-pursula

or:

leader: antti-pursula
owner: joel-hedlund

or:

contact: [email protected]

Possibly, it's better to put this section in the free text of activities that need it?

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.