|
| 1 | +# Selenium Redesign (WIP) |
| 2 | + |
| 3 | +## Quick start |
| 4 | +To view progress, you will first need to [install Hugo](https://gohugo.io/getting-started/installing/) |
| 5 | +on your machine. |
| 6 | + |
| 7 | +Once Hugo is installed, navigate to the root directory of the project and run `hugo server`. |
| 8 | + |
| 9 | +You should be able to view the WIP site at `localhost:1313`. |
| 10 | + |
| 11 | +## Editing data & content |
| 12 | +Various components of the site are driven by content found in the `/content` and `/data` folders. |
| 13 | +This section will explain how to add and remove content from these sections. |
| 14 | + |
| 15 | +### Blog |
| 16 | +Blog content can be found in `/content/blog`. Markdown files written to this folder will be displayed on the |
| 17 | +Blog section of the site, and previewed on the home page. All blog posts should have a metadata section |
| 18 | +at the top of the file: |
| 19 | +```$xslt |
| 20 | ++++ |
| 21 | +Description = "We are very pleased to announce the release of Selenium 3.0. |
| 22 | +Title = "Selenium 3.0: Out Now!" |
| 23 | +Date = 2016-10-13 |
| 24 | ++++ |
| 25 | +``` |
| 26 | + |
| 27 | +#### Blog Archive |
| 28 | +Hugo doesn't come with a way to archive content by date, but there's a relatively simple workaround. |
| 29 | +To create a new year for the archive, do the following: |
| 30 | +- Create a content page in `content/archive/<year>.md` with an appropriate date value - see `content/archive/2016.md` for an example. |
| 31 | +- Add a link to the new year in `themes/selenium/layouts/partials/blog-filter` that links to `/blog/<year>`. |
| 32 | + |
| 33 | +Posts dated in a given <year> will automatically appear in the `/blog/<year>` archive. |
| 34 | + |
| 35 | +### Documentation |
| 36 | +Documentation HTML files provided by the Selenium project can be found in `/content/documentation`. Per Hugo |
| 37 | +convention, the Documentation homepage can be found in `/themes/selenium/layouts/documentation/section.html`. |
| 38 | + |
| 39 | +As seen in many of the HTML files in `/content/documentation`, pages can link to other pages like so: |
| 40 | + |
| 41 | +_ex_: link to `quick.html`: |
| 42 | +`<a href="/documentation/quick">Quick tour</a>` |
| 43 | + |
| 44 | +### Downloads |
| 45 | +#### Previous releases |
| 46 | +Content for the Previous Releases modal on the Download page is stored in `/data/releases.json`. To add a new expandable |
| 47 | +section to the modal, add an entry to `/data/releases.json` matching the format shown below. Each entry in "links" |
| 48 | +represents a new row that will be displayed in the expanded version section. |
| 49 | +``` |
| 50 | +{ |
| 51 | +// ... |
| 52 | +"3.7": { |
| 53 | + "version": "3.7", |
| 54 | + "links": { |
| 55 | + "IEDriverServer_Win32_3.7.0.zip": { |
| 56 | + "name": "IEDriverServer_Win32_3.7.0.zip", |
| 57 | + "url": "https://selenium-release.storage.googleapis.com/3.7/IEDriverServer_Win32_3.7.0.zip", |
| 58 | + "lastModified": "2017-11-03 01:37:52", |
| 59 | + "size":"0.85MB", |
| 60 | + "etag": "18bd8ca48f4fe2074e121793502b2100", |
| 61 | + "version": "3.7" |
| 62 | + }, |
| 63 | + "IEDriverServer_x64_3.7.0.zip": { |
| 64 | + "name": "IEDriverServer_x64_3.8.0.zip", |
| 65 | + "url": "https://selenium-release.storage.googleapis.com/3.7/IEDriverServer_x64_3.7.0.zip", |
| 66 | + "lastModified": "2017-11-03 01:37:51", |
| 67 | + "size":"0.98MB", |
| 68 | + "etag": "ab4ffe9461002f140659fcfb3d98b5f3", |
| 69 | + "version": "3.7" |
| 70 | + } |
| 71 | + } |
| 72 | + } |
| 73 | +} |
| 74 | +``` |
| 75 | + |
| 76 | +#### Language bindings |
| 77 | +The list of Selenium Client & WebDriver Language Bindings on the Downloads page can be extended via its content files. |
| 78 | +To add a new row to the section, simply add a new file to `/content/downloads`. Conform to the format found in, for example, |
| 79 | +`/content/downloads/java.md`, and the new content will automatically be shown on the Downloads page. |
| 80 | + |
| 81 | +### Third Party |
| 82 | +List content for the Third Party page is stored in `/content/thirdparty`. Hugo determines which list the content belongs in |
| 83 | +based on the `Key` attribute found in the markdown file. |
| 84 | + |
| 85 | +#### Browser drivers |
| 86 | +Look to `/content/thirdparty/chromedriver.md` for an example here. Hugo will add any `/content/thirdparty/*.md` file |
| 87 | +containing the `Key = "drivers"` field to the Third Party Browser Drivers list. |
| 88 | + |
| 89 | +#### Language bindings |
| 90 | +Look to `/content/thirdparty/perl.md` for an example here. Hugo will add any `/content/thirdparty/*.md` file |
| 91 | +containing the `Key = "bindings"` field to the Third Party Browser Drivers list. |
| 92 | + |
| 93 | +#### Selenium Plugins |
| 94 | +Look to `/content/thirdparty/flex-pilot.md` for an example here. Hugo will add any `/content/thirdparty/*.md` file |
| 95 | +containing the `Key = "selenium-plugins"` field to the Third Party Browser Drivers list. |
| 96 | + |
| 97 | +## Hosting solutions |
| 98 | +Hugo's site has a great list of [hosting solutions available](https://gohugo.io/hosting-and-deployment/). |
| 99 | + |
| 100 | +Though we don't explicitly recommend any solution, |
| 101 | +Netlify, Gitlab, and AWS Amplify are popular & well supported options. |
0 commit comments