-
Notifications
You must be signed in to change notification settings - Fork 352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Landing site for GHDL #506
Comments
I like your pushing in that direction. The landing page looks good, but the colors might be a bit too gray :). I'm think of people having issues in reading it con screens. Anyhow the structure and simplicity looks good. I would suggest to slowdown the animation. I have still mixed feelings about integration of RTD. But yes, GHDL is nor an organisation, so we have our own GitHub page for deployment. So I'll wait for your next proof of concept uploads. |
So glad to hear it!
I know, I've never been good when choosing color palettes for a general public :S. However, I somehow checked it. See
in http://tachyons.io/docs/themes/skins/ It scores 8.13, which I don't know whether it is too much, or not enough. Anyway, there is quite a complete palette there, so feel free to suggest alternatives.
Agree. Also, I want to make it fade-in/fade-out or introduce any other visual feedback to let the user now that a single box is changed in each step (it is a sliding window). That is, there are 9 in total.
About the organisation itself, as you see I consided github.com/ghdl and github.com/ghdl/ghdl to be somehow equivalent, meaning the latter is 'THE REPO', and any other are just auxiliary. I don't know if we should make it explicit that there is an organization, a main repo, an other repos. The implication of this is that ghdl.github.io/ghdl is also available, which would be branch |
The URL I don't like the loose branch in a multi rooted Git repository. That's not the idea of Git. Therefore users should use a separate repository. It's just a silly solution to spare an additional URL by GitHub. |
On 22 Dec 2017, at 07:50, 1138-4EB ***@***.***> wrote:
Demo available.
That's great! I was never good at writing website; thank you for pushing in that direction.
[...]
Related to the URL, if @tgingold is okay with it, ghdl.github.io can be a redirected to ghdl.free.fr, or the other way. Indeed, we can use an external domain but keep the page hosted at GitHub. If not, they can be just separate sites.
I think ghdl.free.fr can be a redirection to ghdl.github.io, that would be simpler.
[...]
Ideally, I want to embed Sphinx into the build procedure of the site, so that ghdl.free.fr/ghdl.github.io is a superset of RTD, without content conflicts at all, just two visualizations of the same sources.
@tgingold, @Paebbels note that, if you are not ok with having two sites with similar content, you can still consider the landing page only. In the end, the product is a static site (a few html, css and js files).
Having a static site is fine, as that's simpler to setup.
I am ok with having both RTD (which could be considered as a book) and the website. We will see how it works.
As I said, the template is written from scratch, so any color, border, size, font type... can be modified.
Up to you; I am not good at all in this topic.
Tristan.
|
Hey thank you @1138-4eb for your website demo, I also think GHDL deserves it's own (great looking (sorry ghdl.free.fr)) website. About the website, IMO we should base the overall layout on an existing framework. It would be:
Tell me what do you think about that. |
It's not the most comfortable environment for any of us in this community. But tools have evolved quite a lot. I hope we can come up with a solution we all understand, at least, in order to edit the content, add/remove, etc. Indeed, we can push the automation parts to master at a slow rythm, so that we all learn in the process. We might name it the 'How to make modern web pages without being a frontend designer' task.
In order to get rid of deprecated pages (such as http://ghdl.free.fr/site/pmwiki.php?n=Main.Download) appearing in the search engines I think we should make this carefully. At now, there is some host which is not GitHub involved. Do you want to keep using it? I ask this because we can make DNS services point to GitHub directly, and make GitHub serve ghdl.github.io as ghdl.free.fr. However, this would prevent you from using the old host, unless you have any other domain, or you access through IP. If you want to keep ghdl.free.fr, I think you should move all the content to a subdir (say NOTE: I cloned ghdl.free.fr with httrack, and there is a lot of 'hidden' content there (120MB). Mostly old releases (from 0.1 to 0.29, including windows installers in the latest).
I meant that the product is a static site, once the site is generated with the automation scripts, . That is, the production environment is easier to setup (just a file server, 30 lines in golang). However, because "we" "want" to have it automated from md or rst sources in the repo, and have it hosted in github pages (which is a different repo), the build & deployment process is not so simple. It is not much, but there are 70 lines of 'simplicity' involved:
I really like this approach. I.e. conceiving RTD as a book, or the main chapters in a book, and the site being the cover page, preface, appendices, etc. @Birate:
I don't think we need to feel sorry. We are talking about a not-complete effort started 10 years ago. GHDL didn't use GitHub. Wikis were the alternative to CMS such as WordPress, Joomla, etc. In the end, I think it is great looking if we see the context.
Don't take me wrong, but as far as I completely agree with you, I think that these statements are quite empty. I am using a framework, which is hugo for the 'backend' (i.e. generator or builder) and tachyons.io along with jQuery for the frontrend. See About this site. You can find the build procedure in the NOTE it might be possible that this exact info was not online when you visited the page (although I think it was). It is equally ok if it was there but you didn't see it. Once again, I don't want to sound rude at all. tho it is difficult when writing.
I already stated that the mobile version of the landing page is not correct: Make the landing page responsive. Currently it is ok for large screens, somehow ok for medium screens, and totally broken for mobile devices. So, I agree with you. However, I don't think that it can be extended to all the site. Sure, there are things to fix but I believe that every page except the landing page is ok. Let me be more explicit:
NOTE: the mess in the landing page is due to the height being fixed to the height of the screen. Disabling that CSS limitation in small screens fixes it. The same applies to the menu in the header. There is no dropdown in small screens, because I didn't introduce JavaScript yet. The only JavaScript feature is the animated slider.
I think it is quite easy to build right now. The complexity is related to the fact that we host sources in a git repo, the product in a different repo, and we want to have it automated. Locally, it is as complex as NOTE: I am very interested in having a lightweight jupyter-alike system for VHDL development. That is: write your code in markdown; preview it on-the-go in the browser; have code blocks indentified and allow to run GHDL; show the logs and waveforms below the code blocks. Save either the source or the product and share on GitHub/Gogs/Gitea/GitLab...! There is also complexity involved in trying to "merge" RTD sources with/in a different site. But this is a conflict we need to handle with any framework, unless we use RTD exclusively. This would mean designing a template for Sphinx from scratch and writting every custom procedure in Python. Once again, let's be more explicit about this option:
Sincerely, I don't feel comfortable at all doing all of that in Python exclusively, because that is the only option available in RTD. I want to be able to use the better tool and language for each task. E.g., execute curl and jq in a bash script to get info about releases/milestones from the GitHub API and have the 'Release notes' content automatically written in md or rst. No matter if the content is later pushed to GitHub releases, RTD or a different site. 80-90MB of Python runtime to do that? No, please. Then, if we introduce Travis because we want to execute different 'pre-process' tools to set the sources which will be then rendered by proper generators (be Sphinx, be hugo, be any other), why not make the best of it? I.e., analise all possible approaches to make GHDL a project where it is easier to contribute for users coming from different contexts?
Actual workflow:
My proposed workflow:
Why I prefer md for 'community content' and rst for the documentation? Because GitHub issues, PRs, readmes, etc. default to markdown, so it is more familiar to most of potential contributors. These are expected to contribute mostly with atomic material: a guide, instructions for a new/different platform, some external tool... However, rst and sphinx are better for cross-references (see gohugo.io/content-management/cross-references), which is a must if GHDL commands, options, arguments and internal are documented by hand, as it is now.
Please, do not hesitate to propose additional tools, alternatives or state why you think that hugo, tachyons, jquery and sphinx are not the best framework. Just for you to have a broader view. This is the list of currently available Hugo themes: https://themes.gohugo.io/ That is, we can use any of those without changing the sources. You can pull branch This means that I am open to using themes based on different toolsets, such as Bootstrap, Foundation, Angular, Vue... I started a new one from scratch because I felt that none of the existing fullfils our requirements, and it is easier to start from scratch taking things from here and there, than starting with an existing theme and leaving it clean prior to adding missing features. However, please, lets discuss about it. There are quite a lot of different options, and I'd be really pleased to hear other opinions on the workflow as a whole. For example, I stated above that I haven't introduced JavaScript yet, because I'd like to use Vue.js. But I am not sure if we need it or we can get along with raw JavaScript. Related to this, see filebrowser/filebrowser#302 (package.json), which comes from #111, and there is a draft here. On top of that, these are references I've had a look at:
|
Small update:
Note that I used Sphinx, not RTD. As a result, a single version of the docs is shown. This is because RTD is not meant to be used out of RTD.org at all:
|
(Haven't read the linked issues yet...) So its not possible to use the RTD docker image? It would bring us rendering to PDF via LaTeX. But yes, compiling documentation on Travis-CI brings us a faster and mor stable compilation. RTD has performance problems due to their low performance servers. I needed to negotiate an exception for PoC, because wie are compiling for several minutes. |
Long story short: RTD is monolithic. It is meant to be used as a web service. Everything is executed in a 8.5GB docker container: all possible python versions, dependencies, etc. There is little work done towards using multiple less resource-hungry images.
There are two different issues here:
When I say 'RTD feature' I mean the "multiple version" box in the bottom left. Do you miss any other feature?
This is ready. Now I'm trying to modify the readthedocs template to add some links the the home of the site. Do you want to try building PoC inside travis? Note, I expect RTD to have equivalent images to ghdl/ext:sphinx (340MB) and ghdl/ext:latex (2GB) at some point, which would allow us to stop maintaining these. But, for now, 8.5GB is not acceptable at all. |
I don't think the multiple versions/doc builds feature is needed for GHDL. Are there LaTeX only Docker images? LaTeX is a very big bundle and requires a lot of "normal" installation time. How does Travis-CI handle the download time of a multi GB image? Do they have Docker caches? I'm currently building PoCs documentation in RTD. It requires more than 30 minutes to finish due to the low performance servers and slot disks. My local PC is much faster. I experimented with Travis-CI and a GitHub.io static page. Unfortunately, PoC needs the multiple versions/branches features. |
Then, we are almost ready to leave RTD.org, but keep using the same sources and the same template. The only missing issue is to link the 'Edit on GitHub' button to the proper URLs (see readthedocs/sphinx_rtd_theme#529).
There are plenty of them. But I think we should use our own for now, in order to install minimum packages only. Note that installation time is irrelevant, because we use travis stages and we avoid building images every time.
See #489 (comment)
Did you get the 'Edit on GitHub' feature to work? Is that list of versions/branches described in any of the sources or is it configured through the RTD.org frontend? |
No there is no edit link. I remember only the of "active" branches in the RTD web GUI. I haven't seen this as an option for |
Well. An hour ago I was pretty decided to write an alternative implementation of RTD. That is, a bash script that reads a configuration
So I'm reviewing those. |
Just some follow up on this issue: In the end, I spent yesterday setting up the alpha version of github.com/buildthedocs:
Current status:
Execution time to build the three versions and deploy to GitHub Pages: 6min43s. I expect to improve it by building a single version each time (that corresponding to the active branch) and let the rest untouched, as long as they exist. This is closer to readthedocs' behaviour. @tgingold , @Paebbels any guess about all the warnings we get? I am mostly concerned about the
Right now, this is used in GHDL like this:
@Paebbels , this should work for PoC too:
However, I have not included the step which installs custom dependencies, yet. I don't want to do it on-the-fly, but have them preinstalled/cached. |
Most of the warnings are ok: options like --ieee are documented with all the choices but referenced with a generic name. I Haven't yet found a way to fix them. |
In the meantime, http://ghdl.free.fr/ is much worse than https://ghdl.github.io/ghdl/, yet it's the first hit for "ghdl" on Google. |
Demo available.
This issue is an attempt to follow these efforts towards making GHDL easier to start with for new users. More precisely, it is a proposal to replace ghdl.free.fr, which is mostly deprecated, but has some interesting section 'concepts': http://ghdl.free.fr/site/pmwiki.php?n=Main.Download
This is just a proof of concept to put some content in
ghdl.github.io
. To do so, we would create a new repo in the organization (ghdl/ghdl.github.io
). Then, we can automate the deployment in travis by adding a (last) stage to the build. In fact, having an organization makes it safer to automate the deployment without compromising the main repo, as explained in #477.Related to the URL, if @tgingold is okay with it,
ghdl.github.io
can be a redirected toghdl.free.fr
, or the other way. Indeed, we can use an external domain but keep the page hosted at GitHub. If not, they can be just separate sites.The proposed site is built from Markdown and reStructuredText sources with hugo, as explained in #477. Indeed, the structure explained there can be seen in the demo site. Mostly md sources are saved in
ghdl-io
, while mostly rst sources are kept indoc
.I wrote the template from scratch with tachyons. This means it is not feature-complete, but is is lightweight and simple (no social links, no google-analytics, etc.). The landing page is almost finished. The rest of the pages still need some work (i.e. code highlighting).
Some interesting features:
Work in progress:
Ideally, I want to embed Sphinx into the build procedure of the site, so that ghdl.free.fr/ghdl.github.io is a superset of RTD, without content conflicts at all, just two visualizations of the same sources.
@tgingold, @Paebbels note that, if you are not ok with having two sites with similar content, you can still consider the landing page only. In the end, the product is a static site (a few html, css and js files).
As I said, the template is written from scratch, so any color, border, size, font type... can be modified.
The text was updated successfully, but these errors were encountered: