GithubHelp home page GithubHelp logo

jasononeil / haxelib Goto Github PK

View Code? Open in Web Editor NEW

This project forked from haxefoundation/haxelib

0.0 5.0 0.0 921 KB

Provisional project for the Haxe 3 related haxelib changes.

Shell 0.63% ApacheConf 0.29% Haxe 68.21% CSS 7.06% JavaScript 16.77% HTML 7.01% Batchfile 0.02%

haxelib's Introduction

Haxelib

For documentation, please refer to haxe.org

Build Status


Running the website for development

(Work in progress instructions, 2015-02-27)

# Initial checkout
git clone https://github.com/jasononeil/haxelib.git
git checkout feature/newsite

# Install all the libs
haxelib install newsite.hxml
haxelib git ufront-mvc https://github.com/ufront/ufront-mvc.git

# Create directories
mkdir www
mkdir www/legacy
mkdir www/api/
mkdir www/api/3.0
mkdir www/files/
mkdir www/files/3.0

# TODO: copy assets

# Compile the site
haxe site.hxml
haxe newsite.hxml

# Set up the test database
cd www
neko old.n setup

# TODO: check the permissions, writeable directories etc.

# Start the server
nekotools server -rewrite

About this repo

Build files:

  • haxelib.hxml: Build the current haxelib tool from src/tools/haxelib/Main
  • legacyhaxelib.hxml: Build the haxelib tool that works with Haxe 2.x
  • prepare.hxml: Build a tool to prepare the server (I think)
  • site.hxml: Build the old website, the legacy website, and the Haxe remoting API.
  • newsite.hxml: Build the new website, the new site unit tests, and the Haxe remoting API. (Also runs the unit tests).
  • test.hxml: Build the automated tests.

Folders:

  • /src/: Source code for the haxelib tool and the website, including legacy versions.
  • /bin/: The compile target for building the haxelib tool, legacy tool, and site preparation tool.
  • /www/: The compile target (and supporting files) for the haxelib website (including legacy site and API)
  • /test/: Unit test source code for running on Travis.
  • /testing/: A setup for manually testing a complete setup.
  • /package/: Files that are used for bundling the haxelib_client zip file.

haxelib's People

Contributors

jasononeil avatar back2dos avatar simn avatar thehippo avatar markknol avatar andyli avatar ncannasse avatar nadako avatar matttuttle avatar waneck avatar gama11 avatar jgranick avatar tkawachi avatar polygonal avatar dr-emann avatar atry avatar

Watchers

 avatar  avatar James Cloos avatar  avatar  avatar

haxelib's Issues

Responsive Design Fixes

This issue is to collect a TODO list of things to fix up when viewing the site on mobile.

Features for after launch

Create new issues later:

  • Track downloads as installs
  • User logins
  • User password resets
  • Featured libs
  • Follow a project, get email alerts when they update
  • Pretty graphs for usage statistics
  • Any kind of user generated content / comments / upvotes etc.

Performance Considerations

With the READMEs and file browsing, we currently have extract each file from the zip as required. It might cause too much load on the server if we have a sudden rush of people. Perhaps some caching is needed, at least for the READMEs?

Also for the haxelib.json file, which I think I want to start using to grab information about dependencies, extra params etc also.

Library icon

Maybe we could add the favicon corresponding to the website URL in front of each library ? that would add a bit of graphics/colors to an otherwise black&white pages. We could also allow people to put their own icon.png in the zip but that's maybe a bit more difficult to implement ?

https://www.npmjs.com allows big icons for instance (if I look a the featured packages)

Project list template doesn't have access to Owner / Version objects

This seems to be a glitch somewhere inbetween SPOD relations, our SiteDB model classes, and erazor's templating. The templates can't access the properties by a getter.

I either need to diagnose the glitch, or use a View-Model typedef similar to ProjectInfos, that has all the information relevant to the view.

Improved homepage

  • Prettier logo, heading, jumbotron box
  • Are we happy with the lead paragraph / description?
  • We have browse by tag / user / popularity etc. What about search?
  • Usage examples box is too tall. Are there any lines we can cut?
  • Featured project - make it a real feature or get rid of it.

Prevent google crawling, or make it faster.

We just had a google bot start crawling "preview.lib.haxe.org". (Still not sure where it scraped the URL from, but oh well).

It hit the File Browser, which currently displays a source file by opening the haxelib zip, unpacking the file, rendering it, and sending it to the client. Needless to say, with the tens (hundreds?) of thousands of files, this was causing significant strain on the server.

I've turned the preview site off for now until I fix this, either by having a faster (cached?) implementation, or by using robots.txt to block google from the file browser section.

Documentation Pages

  • Creating a haxelib
  • FAQ
  • Installation
  • Using Haxelib
  • Remoting API and JSON API
  • Contributing to Haxelib
  • About Haxelib
  • Tips and Tricks
  • Menu styling
  • Menu ordering
  • Load top navbar menu from the actual page list, rather than hard-coding them.

Search

Do we:

  1. Use a simple keyword search on title / description, or
  2. Use a google web search targetting haxe.org

And then....

  • Fix the search box in the nav bar
  • Style the search results page
  • If we are doing our own results, figure out a good balance of popularity / relevance to search on.

General CSS / templates cleanup

  • In files/ , less margin under the breadcrumbs
  • Add an icon to README.md
  • Sort project "versions" DESC, not ASC
  • On project "versions" list, add a release date column.
  • On project page, show the release date somewhere.
  • General margins / spacing on profile view
  • Make icon in btn-primary white
  • Fix search box
  • Get rid of margin on code view: http://preview.lib.haxe.org/p/flixel-tools/1.0.4/files/haxelib.json
  • Better code highlighting, especially for non-haxe files.
  • Consider line numbering / linking, Github style.
  • Check phone view and update this list as required.

Put lib.haxe live

๐Ÿ˜„ the new api.haxe is already live, would be great if we can put lib.haxe also live with this 3.2 release.

Is there anything I can do to help?

Documentation Menu

The left menu on the documentation section order does not match the drop down menu
http://preview.lib.haxe.org/documentation/using-haxelib

I'm not sure we should have a "About haxelib", we don't have much more to say here than what's already on the haxelib home page. Not sure about "Tip and tricks" also (all commands should be properly documented already).

I would put these in that order:

Getting started (would mention install, upgrade, how to open commandline on Windows :) etc)
Commands (all commands documented, nicely formated)
FAQ (where are my libs stored, contributing, reporting issues, etc)
API

As for contributing, we could have a link to Github project with an github icon in the header

Show dependencies on version page

It would be great to show "depends on" and "depended on by" information on the Project page.

"Depends on" we could extract from the haxelib.json.
"Depended on by" would have to be loaded from a database, with all of the dependencies added. So a bit more work, but would be useful information.

Another question: for "depended on by", do you link the dependencies with specific versions? It gets messy if you are caching version information in the DB, but it is not depending on an exact version, and then the dependency gets an update.

Popularity measurement

Regarding downloads : I think that we should not count the total number of downloads which will in general favor older libraries versus "trending ones".

A suggestion to improve that: every month, run a cron that count the number of downloads this month, then update popularity with popularity = (max(downloads-this-month,popularity) + downloads-this-month) * 0.5.

Unifying Haxe Header

The header does not use the same size / font / behavior / etc than on haxe.org (and the logo is the old one which has rendering issues :) )

API Documentation

I want to use Dox to create API documentation. A few things to consider:

  • Should we use dox? Or render on each load? Advantage is that dox is awesome. Disadvantage is that when we update a template, we need to re-render every lib.
  • We currently store the "haxelib.xml" document in the DB, but should we allow loading multiple xml files so we can note different platforms etc?
  • Do we save the html files to disk? Database?
  • Do we render dox on project upload, on first access, or on a cron job etc? If it's on upload, what do we do about all the existing projects?

Readme.md/documentation how-to

I saw on the forums questions about how this awesome readme embedding thing works. Maybe there should be a section created to explain this feature.

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.