Giter VIP home page Giter VIP logo

barnabycolby.io's People

Contributors

barnabycolby avatar

Watchers

 avatar  avatar  avatar

barnabycolby.io's Issues

Add a footer contact button directive

The contact buttons in the footer each use almost identical blocks of html. An AngularJS directive should be used to encapsulate these similarities making future changes and additional buttons easier.

Project descriptions should allow raw HTML

In particular, the phantomjs-alarm description needs to include a hyperlink. Although the implementation of this is trivial (add safe filter to nunjucks template), the webdriverio test is not so obvious.

Uncss doesn't work with url sources

grunt-uncss appears to have stopped working when URL's are given as sources. For now, this grunt task has been disabled, until it can be fixed.

Automatically updating copyright year

The footer contains a copyright statement including the current year as a hardcoded string. To avoid having to update this string every year, code should be added to retrieve the current year on the fly.

Split grunt default task into several more modular tasks

For example, all of the CSS processing tasks could be aliased under a CSS task, allowing any css changes to be processed without performing any of the other redundant tasks (this isn't much of an issue because of the grunt-newer package). Will also help to keep the aliases.json file clean.

Dynamic DNS issues

Dynamic DNS issues discovered in #14. Using dynamic DNS prevents the DNS zone file from pointing barnabycolby.io to barnabycolby.ddns.net, as the @ record must point to an IP address, not a hostname. Gandi.net offers a redirection service that forwards http://barnabycolby.io to http://www.barnabycolby.io, however this service does not work over HTTPS. The result is that https://barnabycolby.io results in an "Unable to connect" message. The only resolution I can see is to use a static IP instead of dynamic DNS.

Until this is resolved, the site will not be able to use HSTS.

Last updated should be improved

Currently, every time the grunt pipeline is run, the 'last updated' dates are updated, even if the rest of the pages haven't been changed. This could be improved.

It would be good to add a grunt task to the start of the pipeline that throws an error (stopping the pipeline from proceeding) if the source files haven't changed. I had a quick google and didn't see a package like this so I may need to write one.

'Last page update' in footer

A user often wants to know whether the content on a website is current, when was the last time it was updated and is it still relevant? To facilitate this, a 'This page was last updated on...' message should be added to the footer of every page. The first thing to do is to look into how to do this, it is not as simple as the last update to the html, for example, the projects.html may have been updated via the projects.json file.

Add source mappings for CSS

To enable easier debugging, source maps for the pre-processed, concatenated and minfied CSS, need to be generated as part of the grunt pipeline.

CSS source map chain

The source mapping for the CSS files results in two source maps, the first links back to the second which then contains the original source files. The browser displays the intermediate stylesheet.css file in the developer tools, which is not the end goal I was hoping for.

The resolution for this issue is to programmatically combine the two source map files into a single source map. Rich Harris' sorcery looks able to solve this issue but unfortunately it does not exist as a grunt task, nor does anything similar.

Projects should be grouped and ordered by date

It should be obvious which projects have been completed, which projects are currently being worked on and which are just ideas. This could be done by adding past, current, future h2 titles. As a user I want to see current projects first, although this makes the positioning of the other two groups a little more tricky than a purely chronologial layout.

Projects should be ordered chronologically, i.e. it should be obvious to a viewer which project is next on the list and what's after that etc.

Move actual nginx files to production path

The nginx files being used for some of the non-www subdomains are using the nginx files in the development repository, it would be better to copy them across as part of the 'git push production' workflow.

npm deprecated packages

When running npm install, several warnings are displayed about deprecated packages, including wrench and minimatch.

Homepage to look like jetbrains

I really like the design of the jetbrains website, in particular, the front page looks different to the rest of the pages. When you first visit the page, without scrolling, the background of the entire visible portion is a single colour, including the background of the header. The logo is slightly larger and more colourful, which highlights the fact that you're on the jetbrains website. I think my homepage would like nice with a similar design and perhaps a quote, in large text, telling the user to check out my projects page.

Automatic push to production and test

It should be possible to add a grunt task to the end of the pipeline that automatically pushes to production if all tests are successful. It should also be possible to automatically run the end to end tests against the real site once pushed.

Update README to include full website details

The README should include a full set of instructions on how to set up the site on a new machine using only this github repository. For example, systemd services that need to be enabled, how to set up the 'git push production' feature and how to use it.

Automate nginx reload when pushing to production

Currently, deploying changes to production is as simple as running 'git push production' on the web server. However, nginx changes require a manual reload of the configuration. Ideally the post-receive script would do this automatically.

iOS scrolling reveals background behind header and footer

On iOS, the webpage can be scrolled further than the top and bottom of the page. This reveals the white background above the header and below the footer, which doesn't look great. It would be much better to make the header and footer colours extend past the top and bottom of the visible page.

Readme needs instructions

The readme needs to have some instructions included to explain what needs to be done in order to build the website for yourself. For example, the first thing to do once you have the repository checked out is to install npm and the packages listed in the package.json file.

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.