◊(Local Yarn Code "Check-in [8db9bae9]")

Overview
Comment:Switch all license notices to Blue Oak
Timelines: family | ancestors | descendants | both | licensing
Files: files | file ages | folders
SHA3-256: 8db9bae9a6d9b02c5fe8418de33399720c591d58fa9aa33b89834f86cb4e3316
User & Date: joel on 2019-05-19 21:50:25
Other Links: branch diff | manifest | tags
Context
2019-05-19
22:11
Merge license changes check-in: bfde8715 user: joel tags: trunk
21:50
Switch all license notices to Blue Oak Leaf check-in: 8db9bae9 user: joel tags: licensing
20:24
Merge updates from trunk check-in: cf26929b user: joel tags: licensing
Changes

Modified blog.rkt from [44d9d7ad] to [1ddb51ef].

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
1
2







3








4





5
6
7
8
9
10
11


-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-







#lang pollen/mode racket/base

;; Copyright (c) 2019 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------

;; Builds the paginated “blog” HTML files (blog-pg1.html ...) from the SQLite cache
;; The files will be written out every time this module is evaluated! (see end)

(require "crystalize.rkt"
         "snippets-html.rkt"
         racket/file

Modified code-docs/crystalize.scrbl from [4b2805a4] to [6c8c6c57].

1
2
3
4

5
6
7

8
9
10
11
12
13
14
15
1
2


3



4

5
6
7
8
9
10
11


-
-
+
-
-
-
+
-







#lang scribble/manual

@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved.  This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.

@(require "scribble-helpers.rkt")

@(require (for-label "../pollen.rkt"
                     "../dust.rkt"
                     "../crystalize.rkt"
                     racket/base

Modified code-docs/dust.scrbl from [f9a0825d] to [3d9b01e1].

1
2
3
4

5
6
7

8
9
10
11
12
13
14
15
1
2


3



4

5
6
7
8
9
10
11


-
-
+
-
-
-
+
-







#lang scribble/manual

@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved.  This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.

@(require "scribble-helpers.rkt"
          scribble/example)

@(require (for-label "../pollen.rkt"
                     "../dust.rkt"
                     racket/base

Modified code-docs/main.scrbl from [052fbd8b] to [1a5ea062].

1
2
3
4

5
6
7
8
9

10
11
12
13
14
15
16
17
1
2


3





4

5
6
7
8
9
10
11


-
-
+
-
-
-
-
-
+
-







#lang scribble/manual

@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved.  This file is offered as-is,
@; without any warranty.

@; This file is licensed under the Blue Oak Model License 1.0.0.
@; Scribble source for the main page of the code documents.

@(require "scribble-helpers.rkt")

@title{Local Yarn: source code notes}

@author{Joel Dueck}

Modified code-docs/overview.scrbl from [d9ff4aa0] to [1a4508f5].

1
2
3
4

5
6
7

8
9
10
11
12
13
14
15
1
2


3



4

5
6
7
8
9
10
11


-
-
+
-
-
-
+
-







#lang scribble/manual

@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved.  This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.

@(require "scribble-helpers.rkt"
          racket/runtime-path)

@(require (for-label racket/base))

@title{Overview}

Modified code-docs/pollen.scrbl from [a48aad25] to [18a1b869].

1
2
3
4

5
6
7

8
9
10
11
12
13
14
15
1
2


3



4

5
6
7
8
9
10
11


-
-
+
-
-
-
+
-







#lang scribble/manual

@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved.  This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.

@(require "scribble-helpers.rkt")
@(require (for-label "../pollen.rkt"
                     "../dust.rkt"
                     "../crystalize.rkt"
                     racket/base
                     racket/contract

Modified code-docs/scribble-helpers.rkt from [73316e54] to [95058fad].

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
1
2







3








4





5
6
7
8
9
10
11


-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-







#lang racket/base

;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------

;; Convenience/helper functions for this project’s Scribble documentation

(require scribble/core
         scribble/manual/lang
         scribble/html-properties
         (only-in net/uri-codec uri-encode))

Modified code-docs/scribble-iframe.html from [5bb7d4b4] to [6b0166f8].

1



2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
11
12
13

+
+
+









<div class='fossil-doc' data-title='Code Documentation' >
<!-- SPDX-License-Identifier: BlueOak-1.0.0
     This file is licensed under the Blue Oak Model License 1.0.0.
-->
    <div class='iframe-surround'>
        <iframe id='scribble' src="index.html" class="embedded-docs">
        </iframe>
    </div>
</div>

    <script>
        document.getElementById('scribble').src = "index.html?n=" + new Date()/1;
    </script>

Modified code-docs/snippets-html.scrbl from [80a0bc1d] to [bcf809dc].

1
2
3
4

5
6
7

8
9
10
11
12
13
14
15
1
2


3



4

5
6
7
8
9
10
11


-
-
+
-
-
-
+
-







#lang scribble/manual

@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved.  This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.

@(require "scribble-helpers.rkt")

@(require (for-label "../pollen.rkt"
                     "../dust.rkt"
                     "../snippets-html.rkt"
                     racket/base

Modified code-docs/sqlite-tools.scrbl from [a2f9cc08] to [9cc80fcd].

1
2
3
4

5
6
7

8
9
10
11
12
13
14
15
1
2


3



4

5
6
7
8
9
10
11


-
-
+
-
-
-
+
-







#lang scribble/manual

@; Copyright (c) 2019 Joel Dueck
@;
@; SPDX-License-Identifier: BlueOak-1.0.0
@; Copying and distribution of this file, with or without modification,
@; are permitted in any medium without royalty provided the copyright
@; notice and this notice are preserved.  This file is offered as-is,
@; This file is licensed under the Blue Oak Model License 1.0.0.
@; without any warranty.

@(require "scribble-helpers.rkt"
          scribble/example)

@(require (for-label "../pollen.rkt"
                     "../sqlite-tools.rkt"
                     racket/base

Modified crystalize.rkt from [e8e2afa2] to [9b9ee238].

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
1
2







3








4





5
6
7
8
9
10
11


-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-







#lang racket/base

;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------

;; Provides functions for fast preserving and fetching of article/series data.
;;  → Docs and metas go in (saved to SQLite database)
;;    HTML comes out →
;; Calling sites have no notion of the database or schema.

;; The functions provided by sqlite-tools.rkt are not safe for user-provided

Modified dust.rkt from [9569787a] to [d10d5d6e].

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
1
2







3








4





5
6
7
8
9
10
11


-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-







#lang racket/base

;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------

(require pollen/core
         pollen/pagetree
         pollen/setup
         pollen/file
         net/uri-codec
         file/sha1

Modified keyword-index.rkt from [9aa8d227] to [f4c58968].

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
1
2







3








4





5
6
7
8
9
10
11


-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-







#lang pollen/mode racket/base

;; Copyright (c) 2019 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------

;; Builds an HTML page containing the keyword index for all ◊index entries in
;; the articles, by pulling them out of the SQLite cache DB.

(require racket/match
         racket/list
         racket/file

Modified makefile from [dd1c5378] to [f5d2ef9f].


1
2


3
4
5
6
7
8
9
10
1


2
3

4
5
6
7
8
9
10
+
-
-
+
+
-







# SPDX-License-Identifier: BlueOak-1.0.0
# Licensed under the terms of the Blue Oak Model License 1.0.0
# https://blueoakcouncil.org/license/1.0.0
# This file is licensed under the Blue Oak Model License 1.0.0.

# You may not use this file except in compliance with that license.
SHELL = /bin/bash

# ~~~ Variables used by rules ~~~
#

core-files := pollen.rkt dust.rkt
html-deps  := snippets-html.rkt tags-html.rkt

Modified pollen.rkt from [a9e6e1d2] to [ee59101e].

1
2

3

4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3

4







5
6
7
8
9
10
11


+
-
+
-
-
-
-
-
-
-







#lang racket/base

; SPDX-License-Identifier: BlueOak-1.0.0
;; Licensed under the Local Yarn License 1.0.0. You may not use this 
; This file is licensed under the Blue Oak Model License 1.0.0.
;; file except in compliance with that license. A copy of the license
;; is included with this source code, in the file “LICENSE.md”.
;;
;; Maintainer contact information:
;;   Joel Dueck (joel@jdueck.net)
;;   https://joeldueck.com
;; -------------------------------------------------------------------------

;; Functions for tags and template content used in all Pollen source files and templates.

(require (for-syntax racket/base
                     racket/syntax
                     syntax/parse
                     pollen/setup))

Modified snippets-html.rkt from [55ae0657] to [09ba0c4a].

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
1
2







3








4





5
6
7
8
9
10
11


-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-







#lang pollen/mode racket/base

;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------

;; Provides functions for displaying content in HTML templates.
(require pollen/core
         pollen/template
         pollen/decode
         racket/string
         racket/function

Modified sqlite-tools.rkt from [5f494912] to [f4b3e603].

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
1
2







3








4





5
6
7
8
9
10
11


-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-







#lang racket/base

;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------

;; Provides a very light set of utility functions for a SQLite database.
;; These functions are completely agnostic as to the database schema.
;; These functions are NOT SAFE for use with data provided by untrusted users!

(require db/sqlite3
         db/base

Modified tags-html.rkt from [43d9d1e5] to [066e2351].

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17

18
19
20
21
22
23
24
25
26
27
28
29
1
2







3








4





5
6
7
8
9
10
11


-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-







#lang racket/base

;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
; This file is licensed under the Blue Oak Model License 1.0.0.
;;
;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------

;; Tag functions used by pollen.rkt when HTML is the output format.

(require (for-syntax racket/base racket/syntax))
(require racket/list
         racket/function
         pollen/decode

Modified template.html.p from [51a5e67e] to [d6041578].

1


2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
9
10

+
+







<!DOCTYPE html>
◊; SPDX-License-Identifier: BlueOak-1.0.0
◊; This file is licensed under the Blue Oak Model License 1.0.0.
<html lang="en">

◊(define article-html (crystalize-article! here doc))
◊(define page-title (article-plain-title here))
◊html$-page-head[page-title]

◊html$-page-body-open[]

Modified util/newpost.rkt from [88a7503d] to [89e8b78f].

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17
18


19
20
21
22

23
24
25
26
27
28
29
1
2







3









4
5




6
7
8
9
10
11
12
13


-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+







#lang pollen/mode racket/base

;; Copyright (c) 2018 Joel Dueck.
;;
;; Licensed under the Apache License, Version 2.0 (the "License");
;; you may not use this file except in compliance with the License.
;; A copy of the License is included with this source code, in the
;; file "LICENSE.txt".
;; You may also obtain a copy of the License at
; SPDX-License-Identifier: BlueOak-1.0.0
;;
;;       http://www.apache.org/licenses/LICENSE-2.0
;;
;; Unless required by applicable law or agreed to in writing, software
;; distributed under the License is distributed on an "AS IS" BASIS,
;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;; See the License for the specific language governing permissions and
;; limitations under the License.
;;
; This file is licensed under the Blue Oak Model License 1.0.0.

;; Author contact information:
;;   joel@jdueck.net
;;   https://joeldueck.com
;; -------------------------------------------------------------------------
;; Script/template for starting a new article

(require racket/date
         racket/string
         racket/file
         racket/system
         "../dust.rkt")

Modified util/relativize from [5428bcab] to [7e87490d].

1
2

3

4
5
6
7
8
9
10
11
1
2
3

4

5
6
7
8
9
10
11


+
-
+
-







#!/bin/bash

# SPDX-License-Identifier: BlueOak-1.0.0
# Licensed under the terms of the Blue Oak Model License 1.0.0
# This file is licensed under the Blue Oak Model License 1.0.0.
# https://blueoakcouncil.org/license/1.0.0

# The HTML generated assumes the whole site lives in the domain root. This script converts all links
# and image sources to relative URLs, so things don't break when accessed from within a subfolder of
# a live web server. (See ‘publish’ target of makefile)

# Stop on any error, forbid uninitialized vars
set -eu

Modified web-extra/font.css from [ff6adf1f] to [fb953054].





1
2
3
4
5
6
7
1
2
3
4
5
6
7
8
9
10
11
+
+
+
+







/* SPDX-License-Identifier: BlueOak-1.0.0
   This file is licensed under the Blue Oak Model License 1.0.0.
*/

@font-face {
  font-family: 'Fabiol';
  src: url('LDFabiolPro-Regular.woff2') format('woff2'),
       url('LDFabiolPro-Regular.woff') format('woff');
  font-style:   normal;
  font-weight:  400;
}

Modified web-extra/martin.css.pp from [96d16067] to [bc5225d2].

1
2
3
4
5
6
7

8
9
10
11
12
13
14
15

16
17
18
19
20
21
22
23
24
25
26
27
1
2





3








4





5
6
7
8
9
10
11


-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
-
-
-







#lang pollen/pre

/* Copyright (c) 2018 Joel Dueck.
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
/* SPDX-License-Identifier: BlueOak-1.0.0
**
**       http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
** This file is licensed under the Blue Oak Model License 1.0.0. */
**
** Author contact information:
**   joel@jdueck.net
**   https://joeldueck.com
** -------------------------------------------------------------------------

/* Welcome to my CSS File!  
** I have named it `martin.css`, after Martin Pale. */

◊;{Here, broadly, is the approach we are taking here:

   1. The site shall look decent and readable even when CSS is unavailable.