Skip to content

Latest commit

 

History

History
78 lines (50 loc) · 2.09 KB

RR0 Refactoring.md

File metadata and controls

78 lines (50 loc) · 2.09 KB

RR0 Refactoring

Motivation

  • Improve performance by loading less (only requested contents, not all the webapp (header, menu, js) each time)
  • Keep context (current search query and results)
  • Compatibility with URLs referenced by Google

Design

The future default page, currently /index.new.html contains all the common markup around an ui-view, which will host the variable contents.

So every current page must redirect to this page with the path of the required contents as a p parameter. For example requesting https://rr0.org/science/crypto/ufo/enquete/dossier/Roswell/index.html must redirect to https://rr0.org/index.new.html?p=https://rr0.org/science/crypto/ufo/enquete/dossier/Roswell/index.html`

Setup

npm install

Generation

For data pages (contents of variable ui-view), Jekyll is used to generate static pages, according to the _config.yml configuration.

To run it:

jekyll build

(Add --watch to enable incremental build)

This will read all files found in the source configuration value (.), excluding the exclude configuration directories. For instance if ./time/index.jekyll.html contains:

    ---
    layout: page
    title: Historique
    ---
    <p>...some text </p>

it will be processed according to the _layouts/page.html (which contains a {{ content }} placeholder) to generate into the destination configuration directory a build/time/index.jekyll.html:

    <html>
    <title>Historique</title>
    <p>...some text </p>

Build

Build is the process of:

  1. compiling TypeScript into ES5 Javascript (see tsconfig.json)
  2. compiling Sass into CSS3

It can be run through:

npm run build

which produces an output into the dist directory.

Deployment

Deployment is the process of:

  1. Annotating the Angular ES5 code to support minification
  2. Minify all the code (starting from index.js) in a single dist/rr0.js file.

It calls for a build as a prerequiste.

It is performed through Webpack (see webpack.cofig.js), which is launched through:

npm run web