Coder Social home page Coder Social logo

operasoftware / devopera Goto Github PK

View Code? Open in Web Editor NEW
93.0 93.0 144.0 475.39 MB

Repository for Dev.Opera source code

Home Page: https://dev.opera.com/

License: Apache License 2.0

HTML 77.58% Ruby 0.07% JavaScript 16.06% CSS 5.19% C++ 0.06% SCSS 1.04%

devopera's People

Contributors

andreasbovens avatar bratell-at-opera avatar c0rdis avatar chrislo avatar fsoder avatar greenkeeperio-bot avatar hemanth avatar hyunchulkwak avatar krystiangorski avatar mathiasbynens avatar merkuriy avatar motss avatar nowaktz avatar opera-jl avatar patrickhlauke avatar perja12 avatar prayagverma avatar richtr avatar runninglvlan avatar sayanee avatar shwetank avatar silentimp avatar simevidas avatar tomaszstawarz-opera avatar torgeilo-opera avatar tprockowatopera avatar uyeong avatar yoavweiss avatar zachleat avatar zcorpan avatar

Stargazers

 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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

devopera's Issues

Add content to articles

Similar to #19, except this time it’s the HTML content that needs to be imported. Also, leading whitespace must be removed (else Markdown parser thinks it’s all preformatted code blocks) except within <pre> elements.

I’ll do this. Any volunteers willing to go through the articles after that and clean them up (i.e. fix links and references to images, etc.)? @brucelawson @shwetank? (Only asking cause I’ll be preparing a talk + traveling later this week.)

Update Dev.Opera description

Right now we have this description:

Dev.Opera is the ultimate source of distilled knowledge for web developers, covering the latest open web technologies and techniques including HTML5, CSS3, JavaScript, SVG, optimizing content for mobiles, tablets and TVs, and creating add-ons such as extensions and themes for the Opera browser.

Which is too much even for Google:

screen shot 2014-02-26 at 15 17 46

Should we update it to be less SEO? Just one sentence, something better and more relevant. Something that could be used in RSS feed.

Some examples:

HTML5 Rocks

A resource for developers looking to put HTML5 to use today, including information on specific features and when to use them in your apps.

MDN

The Mozilla Developer Network (MDN) provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and HTML5 Apps. It also documents Mozilla products, like Firefox OS.

Create user accounts for our Amazon server

If you need/want a user account (needed to deploy and for ssh access), post a comment here containing the following:

  • your desired username
  • your public key(s)
  • are you gonna need root access or not?

Users added so far:

  • mathias
  • pepelsbey
  • shwetankdixit
  • odinho (for @velmont)

Adding a new user (note to self)

sudo su;
adduser "$username";
passwd "$username";
visudo; # add `$username   ALL=(ALL)    ALL`
usermod -a -G wheel "$username";
usermod -a -G www "$username";
usermod -g www "$username";
cd "/home/$username";
mkdir -p .ssh;
chmod 700 .ssh;
vi .ssh/authorized_keys; # add public key(s)
chmod 600 .ssh/authorized_keys;
chown "$username:$username" .ssh;
chown "$username:$username" .ssh/authorized_keys;
/etc/init.d/sshd reload;

Decide what to do with broken links

Such as:

my.opera.com/*
snapshot.opera.com/*
people.opera.com/person/*
tc.labs.opera.com/*
widgets.opera.com

All of them should be at least removed as active links and kept as a text.

Browser statistics for Dev.Opera

@andreasbovens, do you have current statistics for browsers on Dev.Opera? I wonder what kind of browser support should I provide in the new Dev.Opera code. For example: should I care about IE9 and give serious fallback for multi-columns, etc.

Add introduction field to articles

This probably requires a lot of manual work (up to 217 articles from “yes” list).

Possible task workflow. Feel free to automate it.

  1. Run git clone [email protected]:operasoftware/devopera.git to clone repository to devopera folder
  2. While it’s running log in to Dev.Opera
  3. Once cloning is finished, go to articles/_posts folder
  4. Open MD file, copy title: field, Google it and go to article
  5. Click “Edit article” link at sidebar
  6. Copy contents of “Introduction” field
  7. Add new intro: field to MD file with copied text
  8. Repeat from 4 with next MD file

Intro contents should be in MD format (square brackets for links, backticks for code, etc.) and quoted, preferably using single quotes '. If there are single quotes inside: didn't replace them with apostrophe didn’t (which is Alt Shift } on Mac).

There are also translated MD located in articles/LANG/_posts folders. You could take care of your favorite language.

Example for “Understanding 3D Transforms” article:


---
title: Understanding 3D Transforms
authors:
- tiffany-brown
intro: 'In this article we’ll dig in to 3D transforms in detail,
looking at the fundamental differences between 3D and
2D transforms, the 3D transforms available, and some
demos that show how these work.'
tags:
- css
- css3
- transforms
layout: article

---

Sass compilation error

Running "sass:compile" (sass) task
Syntax error: Invalid CSS after "... unquote(".") ": expected selector or at-rule, was "!global;"
on line 150 of styles/grids.scss
from line 11 of styles/screen.scss

Redirect all feeds

Currently we have following feeds listed in Dev.Opera header:

/feeds/rss/articles
/feeds/atom/articles
/feeds/rss/comments
/feeds/atom/comments

I guess there will be no comment feeds and there’s no need in two feed types (in most cases it’s detected automatically by Feedly or any other service). Let’s just redirect all of them to /feed/. Commit moving atom.xml too feed folder will be ready soon.

Assigning to redirects guru @mathiasbynens ;)

Set up search

I have to set up a custom search engine and template.

Remove all non-English posts from blog

See decision taken in #27.

There are few blog posts in blog/_posts folder with non-English content (not translations as in articles’ case), I found a few but there are more (Chinese, Japanese?):

blog/_posts/2010-06-25-html5-video-artikel-und-wettbewerb-auf-chip-de.md
blog/_posts/2010-10-12-schone-neue-welt-von-html5-webtech-2010-mainz.md
blog/_posts/2011-10-31-handys-und-tablets-webentwicklung-jenseits-des-desktops-webtech-mainz-12.md

It could be done in following ways:

  • Analyzing post slugs (it could help with German as you can see above)
  • Get all posts by certain author: German for Patrick, Chinese for Zi Bin, Japanese for Karl and Daniel, etc. (search by author slug bruce-lawson)
  • Surfing through all posts and quickly analyzing language

Once post is found — delete file and commit deletion.

Move all TV articles into separate category

Clean up MD from title

There’s problem with Markdown in post titles: when you do {{ page.title | markdownify }} it also wrap line into <p> which is definitely wrong tag to nest in <h1>. So it should be just a plain text. See examples:

title: Brand new <video> blah
title: Get your media with getUserMedia

So: no Markdown is allowed in title: front-matter field. @mathiasbynens, could you please clean up your files?

Mark articles with proper licenses

There are seven license types:

  1. cc-by-3.0 — Creative Commons Attribution 3.0 Unported
  2. cc-by-nc-nd-2.5 — Creative Commons Attribution, Non Commercial - No Derivs 2.5
  3. cc-by-nc-sa-2.5 — Creative Commons Attribution, Non Commercial - Share Alike 2.5
  4. cc-by-nc-nd-3.0 — Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported
  5. cc-by-nc-sa-3.0 — Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported
  6. cc-bsd — Creative Commons BSD License
  7. os-asa — Opera Software ASA

Steps

  1. Go to dev.opera.com main page
  2. Open each article on the main page
  3. Go to “Edit article” (see picture below) and check license type
  4. Open corresponding MD file in articles/_posts (they are listed alphabetically)
  5. Put license: key in front matter before layout: with license slug value, cc-by-3.0 for example
  6. Go to the next page dev.opera.com/?page=2, repeat.

Examples

License type selected in article
screen shot 2014-02-25 at 13 44 20

License key in front matter


---
title: Opera 9 Technology Preview 2
authors:
- hakon-wium-lie
intro: '…'
tags:
- opera-9
- labs
license: os-asa
layout: article

---

Add `deploy` Grunt task

We can use this to deploy (after building):

rsync --delete --exclude ".DS_Store" -avz _site/ devopera:/var/www/html/

There’s a grunt-rsync task available that we could use to abstract this, or we could just pass it to grunt-shell directly.

Decide what to do with extension docs

Do we leave those as is for the time being, or do we want to integrate them into the site? Integrated is probably nicer, but it's also a bit more work of course.

rsync permissions conflict

When I do grunt deploy it stuck on some (probably updated) files. But when I remove all files on server (it’s possible only with sudo when some of them are updated by you) it runs without any problem.

Decide what to do with non-English posts from blog

For example:

blog/_posts/2010-06-25-html5-video-artikel-und-wettbewerb-auf-chip-de.md
blog/_posts/2010-10-12-schone-neue-welt-von-html5-webtech-2010-mainz.md
blog/_posts/2011-10-31-handys-und-tablets-webentwicklung-jenseits-des-desktops-webtech-mainz-12.md

There are few more in blog folder.

Canonical tags tree

Right now we have 587 tags. Half of them are just useless, another half is applied without any general idea. I suggest to create a “canonical tags tree”. Why not “cloud”? Because it will act in a special way. Our aim is to make number of tags around 100 and keep it there or grow this number really slow.

For example, you have an article about forms elements specific to HTML5. Right now it’s probably marked as html5-forms, html5 and input-type-number-is-cool. But it’s also forms and plain html without “5”. And no one would ever use input-type-number-is-cool tag again because it’s too specific.

Sample tree, finally

Full draft tree is on wiki page.

  • html
    • html5
    • semantics
    • video
    • forms
  • css
    • css3
    • gradients
      • linear
      • radial
    • prefixes
    • gradients
  • opera
    • opera-12
    • opera-15
    • opera-mini
    • opera-mobile

How it works? When you need a tag for your article you just follow steps:

  1. Select one or more root tags
  2. Add a few more specific if needed
  3. Add even more specific tags if you really need it and they are presented in the tree
  4. Profit!

For example: article about linear gradients: css css3 gradients linear — root tag, specific, even more specific. And if you really need new tag (some new technology like conical gradients appeared), go to wiki page, add it and only then use it.

And here’s the task

Create this tree based on existing content, existing tags (listed on special wiki page) and future topics. As I mentioned before, tags tree is located in wiki and could be edited just in place by “Edit Page” button. Requirements for tags tree:

  1. Number of all tags should close to 100 or less
  2. Tree should cover all existing articles and posts but aim to the new ones

Let’s use this task for discussion. I guess it’s something for you @brucelawson.

Paging plugin for categories

Custom categories pages (not all of them) such as /articles/ and /blog/ should be divided into pages: /category/n/ (based on config variable set) with page.next and page.prev objects available containing page number or nothing for building page navigation in following way:

{% if page.prev or page.next %}
    {% if page.prev %}
        <a href="/{{ page.category }}/{{ page.prev }}/">Previous</a>
    {% endif %}
    {% if page.next %}
        <a href="/{{ page.category }}/{{ page.next }}/">Next</a>
    {% endif %}
{% endif %}

Add bio to author MDs

We have 74 authors in authors/_posts folder. All of them have names and links, most of them have pictures (thank you @mathiasbynens). But no one have bio. We need to fill all available bios and maybe even update them with current author status.

Steps

  1. Pick one MD file in authors/_posts folder
  2. Copy file slug or author name from title: field
  3. Google it, for example andreas bovens site:dev.opera.com
  4. Go to author page and then to any article
  5. Scroll to bottom, copy author bio for example: Andreas is based in Oslo, where he works for Opera Software as Extensions Product Manager + Developer Relations.
  6. Paste it to MD file right after front matter:

---
title: Andreas Bovens
link: https://twitter.com/andreasbovens
layout: author

---

Andreas is based in Oslo, where he works for Opera Software
as Extensions Product Manager + Developer Relations.

Get extra points and 20 minutes in jacuzzi with @brucelawson for updating your own bio or outdated bio of the person you know.

Switch to GitHub Flavored Markdown (Redcarpet) + remove scripts/highlight.js along the way

@pepelsbey I wanted to run this by you. I’ve enabled GitHub Flavored Markdown, which effectively removes the need for the scripts/highlight.js file. Now, all the syntax highlighting can be done at build time.

All we need to do is use fenced code blocks as described on https://help.github.com/articles/github-flavored-markdown#syntax-highlighting, so that we can (optionally) specify the programming language used for each code block.

The result for an example post that uses this syntax can be found here: http://54.213.240.91/blog/opera-19/

Migrate extension docs to the new server

The extension docs should be published to our new Amazon server (which will host all of dev.opera.com). It would be get this set up as soon as possible, so that we can test it properly. For example, some changes to our rsync task will be needed.

Whoever has access to the current extension docs server (@andreasbovens? @shwetank?), please see #29 for how to request an account for the new server.

Create “this article is obsolete” banner

…to put at the top of all articles with obsolete tag. Something like: “Mentioned features are already implemented in Opera, see Opera Next, Desktop Team blog, blah-blah…”

It could be just one obsolete or more tags, historical for example. See #9.

Decide where to put license information

It could be:

This article is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported license.

…after each article or general disclaimer or even page mentioned in the footer.

Currently some articles on Dev.Opera contains above disclaimer, some not. Should it be one license and disclaimer for all articles or different in some cases?

Move all people.opera.com resources to articles’ folders

Test server

The settings in .htaccess are very much dependent on server config, so I’d like to make sure the redirects and everything else in there work correctly on our target host.

Do we have a test server? Who should I ask?

Fix generate-rewrite-rules.js script

…as it has moved to _scripts as well as url-redirects.json has moved to _data in a012aa1 to not being copied to _site folder on build process.

Maybe we should also watch url-redirects.json for changes in Grunt?

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.