Commit | Line | Data |
---|---|---|
12b31e76 MM |
1 | # FSF History page |
2 | ||
35c22843 MM |
3 | This is a timeline project to chronicle the historical events surrounding the |
4 | Free Software Foundation. | |
12b31e76 | 5 | |
35c22843 MM |
6 | Link to production site: https://www.fsf.org/history/ |
7 | ||
8 | ## Project description | |
9 | ||
10 | We have a [final page](https://www.fsf.org/history/), | |
11 | [source and picture files](https://www.fsf.org/history/fsf-history.tar.gz), | |
12 | a markdown file, and a | |
13 | [translation](https://flallemand.fr/divers/fsf-history/). | |
14 | ||
15 | ### Goals | |
16 | ||
17 | - Generate the history page from source. | |
18 | - Generate the https://www.fsf.org/history/index.html file from our source | |
19 | file in MarkDown or JSON format using a simple scripting language | |
20 | (BASH/Python preferably). Basically this would involve creating a simple | |
21 | custom static site generator. Below is the syntax used by the source file. | |
22 | - The source is currently in ikiwiki MarkDown format, but it is not a | |
23 | traditional MarkDown document as it would need to be rendered in the way | |
24 | that the history page currently is displayed. Maybe converting the | |
25 | markdown to JSON would be a good first step. | |
26 | - Internationalization (i18n) | |
27 | - Create a method to convert the history page | |
28 | https://www.fsf.org/history/index.html to various other languages. A French | |
29 | translation might be rendered to https://www.fsf.org/history/fr/index.html | |
30 | URL for example. | |
31 | - This could be converting the rendered HTML to po with html2po and then | |
32 | gettext to make new versions. | |
33 | - Example command converting HTML to a po file: `sudo apt install translate-toolkit && wget https://www.fsf.org/history/index.html && html2po index.html > messages.po` | |
34 | - <http://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/html2po.html> | |
35 | - We currently have a French translation in HTML format, but we would need | |
36 | to convert this into a reproducable format that works with whatever | |
37 | system we decide to use. | |
38 | - Automatically generate new pages. | |
39 | - On the server-side, we would need a simple BASH script that is run by an | |
40 | automated cron job that fetches new changes from this repository and builds | |
41 | the pages with the new changes if necessary and creates new translations | |
42 | when available. | |
12b31e76 MM |
43 | |
44 | ## Syntax | |
45 | ||
46 | Entry syntax: | |
47 | ||
48 | ``` | |
49 | ## TITLE | |
50 | * ID: simple-unique-sublink | |
51 | * MONTH: APR | |
52 | * YEAR: 1985 | |
53 | * LINK: <https://link.to.relevant.website/> | |
54 | * IMAGE: Location of image to use | |
55 | * IMAGE SHAPE: rectangle or circle | |
56 | * IMAGE ALT TEXT: Single sentence that explains what the image contains for the visually impaired and search engine optimization. | |
57 | * IMAGE LICENSE: Copyright 2021 Free Software Foundation, Inc. CC-BY-SA-4.0 | |
58 | * NOTES: Text that will be skipped by the generation. | |
59 | * TEXT-BODY: Description that can be longer. | |
60 | * TEXT-MORE: Read more > | |
61 | ``` | |
62 | ||
63 | Syntax description: | |
64 | ||
65 | * TITLE | |
66 | - Required. | |
67 | - The title of the entry that will be displayed as a bold header. | |
68 | * ID | |
69 | - Required. | |
70 | - The ID is a unique abbreviated short code that can be used to link someone | |
71 | to a historical item within the context of the rest of the page. | |
72 | * MONTH | |
73 | - Optional. | |
74 | - Three letter abbreviation for the month when the event happened. | |
75 | * YEAR: 1985 | |
76 | - Required. | |
77 | - Four digit year when the event happened. | |
78 | * LINK | |
79 | - Required. | |
80 | - The URL most related to the historical event. | |
81 | * IMAGE | |
82 | - Optional. | |
83 | - Location of an image to accompany the event. | |
84 | * IMAGE SHAPE | |
85 | - Required if IMAGE is used. | |
86 | - The shape of the picture. | |
87 | - Valid answers are `rectangle` or `circle` only. | |
88 | - Generally, photos are rectangles and logos are circles. | |
89 | * IMAGE ALT TEXT | |
90 | - Required if IMAGE is used. | |
91 | - For accessibility, single sentence that explains what the image contains | |
92 | for the visually impaired and search engine optimization. | |
93 | * IMAGE LICENSE | |
94 | - Required if IMAGE is used. | |
95 | - The license of the image. | |
96 | * NOTES | |
97 | - Optional. | |
98 | - Notes that will not be generated into the production site. | |
99 | * TEXT-BODY | |
100 | - Optional. | |
101 | - Description of the event. | |
102 | * TEXT-MORE: Read more > | |
103 | - Optional. | |
104 | - Text for the link. We typically just use `Read more >` for this. | |
105 | ||
35c22843 | 106 | ## Links |
12b31e76 MM |
107 | |
108 | Some of the reference locations are only accessible to internal staff. I tried | |
109 | to mark all of those. I might have missed pictures, but they should be linked | |
110 | from the production site. | |
35c22843 MM |
111 | |
112 | * Development link: <https://static.fsf.org/nosvn/demos/history-static/> | |
113 | * Production link: <https://www.fsf.org/history/> | |
114 | * The original image we are drafting from: | |
115 | common/fundraising/biannual-fundraisers/2020-fall/timeline/ (Internal | |
116 | location) | |
117 | * [Member Forum post with comments](https://forum.members.fsf.org/t/fsf-history-page/3701) | |
118 | * <https://rt.gnu.org/Ticket/Display.html?id=1748452> (Internal location) RT | |
119 | ticket about adding fsfe, fsff, fsfi, and fsfla logos. |