Skip to content
Snippets Groups Projects
  1. Sep 15, 2020
  2. Sep 11, 2020
  3. Sep 10, 2020
  4. Sep 08, 2020
  5. Sep 07, 2020
  6. Sep 03, 2020
    • Martyn Welch's avatar
      Update and classify a batch of design documents · 786fb549
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      The design documents imported from designs.apertis.org need to be
      classified and moved into the structure implemented for documents on the
      new website. The content of the documents also need minor edits to ensure
      a good look and feel as well as the addition of notes to explain the
      context of some documents (such as noting that certain concept documents
      have been implemented since they were written and when that occurred).
      
      This commit contains conversion of an initial batch of design documents.
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      786fb549
    • Martyn Welch's avatar
      Fix creation dates · a98cb03f
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      Got out of step whilst adding creation dates to designs and failed to test
      properly. A stray space is stopping the dates from being parsed. Remove
      the space.
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      a98cb03f
  7. Sep 02, 2020
  8. Aug 31, 2020
  9. Aug 27, 2020
  10. Aug 26, 2020
  11. Aug 25, 2020
  12. Aug 18, 2020
  13. Aug 06, 2020
  14. Aug 05, 2020
  15. Aug 03, 2020
  16. Jul 29, 2020
    • Martyn Welch's avatar
      Fix up broken links · c7250de9
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      A number of broken links didn't match the patterns used for automated
      replacement. Fix up those that can be manually.
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      c7250de9
    • Martyn Welch's avatar
      Remove link to designs.a.o · 9a6388ac
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      We now have the designs here, don't point to designs.a.o.
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      9a6388ac
    • Martyn Welch's avatar
      Updating old links · ee26b8cf
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      After moving the documents from designs.a.o to www.a.o, there were
      quite a few links from the designs.a.o docs pointing to wiki.a.o and
      quite a few links from www.a.o pointing to designs.a.o. Replace these
      links with Hugo ref shortcodes to avoid hammering the redirects.
      
      This was achieved with the following script:
      
      ```
      
      import os
      import re
      import sys
      import toml
      
      from urllib.parse import urlparse
      
      def get_aliases(filename):
          #print("%s: " % filename)
          with open(filename, 'r') as file:
              contents = file.read()
              if not contents[0:3] == "+++":
                  return
      
              if "_index.md" in filename:
                  filename = filename.strip(".")
              else:
                  filename = filename.split("/")[-1]
      
              data = toml.loads(contents.split("+++")[1])
      
              if not "aliases" in data.keys():
                  return
      
              for alias in data["aliases"]:
                  if "/old-wiki/" in alias:
                      wiki_aliases[alias.replace("/old-wiki/", "/")] = filename
      
                  if "/old-designs/" in alias:
                      # We're dropping the per-release links from designs.a.o, so match on shorter path
                      design_aliases[alias.replace("/old-designs/latest/", "/")] = filename
      
      def fix_link(url):
          link = url.group('link')
      
          url = urlparse(link)
      
          if url.netloc == "wiki.apertis.org":
              if url.path in wiki_aliases.keys():
                  url = url._replace(scheme="")
                  url = url._replace(netloc="")
                  url = url._replace(path=wiki_aliases[url.path])
                  link = " {{< ref \"%s\" >}} " % url.geturl()
      
          if url.netloc == "designs.apertis.org":
              # We're dropping the per-release links from designs.a.o, so match on shorter path
              path = "/%s" % url.path.split('/', 2)[-1]
              print(path)
              if path in design_aliases.keys():
                  url = url._replace(scheme="")
                  url = url._replace(netloc="")
                  url = url._replace(path=design_aliases[path])
                  link = " {{< ref \"%s\" >}} " % url.geturl()
      
          return "](%s)" % link
      
      def fix_ref(url):
          link = url.group('link')
      
          url = urlparse(link)
      
          if url.netloc == "wiki.apertis.org":
              if url.path in wiki_aliases.keys():
                  url = url._replace(scheme="")
                  url = url._replace(netloc="")
                  url = url._replace(path=wiki_aliases[url.path])
                  link = " {{< ref \"%s\" >}} " % url.geturl()
      
          if url.netloc == "designs.apertis.org":
              # We're dropping the per-release links from designs.a.o, so match on shorter path
              path = "/%s" % url.path.split('/', 2)[-1]
              print(path)
              if path in design_aliases.keys():
                  url = url._replace(scheme="")
                  url = url._replace(netloc="")
                  url = url._replace(path=design_aliases[path])
                  link = " {{< ref \"%s\" >}} " % url.geturl()
      
          return "]: %s" % link
      
      def correct_links(filename):
          #print("%s: " % filename)
          with open(filename, 'r+') as file:
              contents = file.read()
      
              if not contents[0:3] == "+++":
                  return
      
              fm = contents.split("+++")[1]
              doc = contents.split("+++",2)[2]
      
              # Hotdoc allows empty links like `[](url)`
              pattern = re.compile("\]\((?P<link>.*?)\)")
              doc = pattern.sub(fix_link, doc)
      
              pattern = re.compile("\]: (?P<link>.*)")
              doc = pattern.sub(fix_ref, doc)
      
              file.seek(0)
              file.truncate()
      
              file.write("+++")
              file.write(fm)
              file.write("+++")
              file.write(doc)
      
      wiki_aliases = {}
      design_aliases = {}
      
      for root, dirs, files in os.walk(sys.argv[1]):
          for file in files:
              if ".md" in file:
                  get_aliases("%s/%s" %(root, file))
      
      print("wiki_aliases:")
      print(wiki_aliases)
      print("design_aliases:")
      print(design_aliases)
      
      for root, dirs, files in os.walk(sys.argv[1]):
          for file in files:
              if ".md" in file:
                  correct_links("%s/%s" %(root, file))
      ```
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      ee26b8cf
    • Martyn Welch's avatar
      Minor tidy up of designs · e26083c0
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      A number of broken links remained after scripted conversion and a
      number of spurious code blocks were found in the docs. Clean these up
      so that the documents render correctly.
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      e26083c0
    • Martyn Welch's avatar
      Tweak HTML rendering to allow HTML elements in Markdown · 8249ccd7
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      By default the Goldmark renderer used by Hugo won't render HTML
      elements that are present in the markdown, even though this is allowed
      in the CommonMark Spec that it claims to implement:
      
          https://spec.commonmark.org/0.29/#html-blocks
      
      
      
      We can get this to work by turning on "unsafe" mode, which means:
      
          By default, Goldmark does not render raw HTMLs and potentially
          dangerous links. If you have lots of inline HTML and/or JavaScript,
          you may need to turn this on.
      
      As we have such elements and we can guarantee what's being rendered,
      turn this on.
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      8249ccd7
    • Martyn Welch's avatar
      Fix links in imported designs · af5a2a88
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      A lot of the links in the imported designs are broken:
      
      - HotDoc allowed a `[][link]` format that Hugo doesn't understand
      - HotDoc allowed relative links without text, which Hugo doesn't handle
      - The location of the images and other media has changed
      - The format used for internal page references has is different
      
      Additionally, fix up touched links to other Apertis pages to use the
      Hugo "ref" shortcode, which reduces the risk of leaving hanging links.
      
      Conversion completed with the following python script:
      
      ```
      
      import os
      import re
      import sys
      
      def url_munge(match):
          url = match.group('url').strip('.')
          if url[0] != "/":
              url = "/%s" % url
          url = url.replace("media", "images")
          link = ("![](%s)" % url)
      
          return link
      
      def link_munge(match):
          link = match.group('link')
          new = link.replace("(", "")
          new = new.replace(")", "")
          new = new.replace("`", "")
          new = new.replace("?", "")
          new = new.replace(":", "")
          new = new.replace(",", "")
          new = new.replace("–", "")
          new = new.replace("“", "")
          new = new.replace("”", "")
          new = new.replace(".", "")
          new = new.replace(" ", "-")
          new = new.lower()
          new = (" [%s]( {{< ref \"#%s\" >}} )" % (link, new))
      
          return new
      
      def link_munge_2(match):
          link = match.group('link')
          new = link.replace("#", "")
          new = new.replace("-", " ")
          new = new.replace(".md", "")
          if not "http" in link:
              link = " {{< ref \"%s\" >}} " % link
      
          new = ("[%s](%s)" % (new, link))
      
          return new
      
      for filename in os.listdir(sys.argv[1]):
          #print("%s: " % filename)
          with open(filename, 'r+') as file:
              contents = file.read()
      
              # Hotdoc uses `[][Internal Title]` for internal links whilst Hugo uses `[](#internal-title)`
              pattern = re.compile("\[\]\[(?P<link>.*?)\]")
              contents = pattern.sub(link_munge, contents)
      
              # Hotdoc allows empty links like `[](url)`
              pattern = re.compile("[^!]\[\]\((?P<link>.*?)\)")
              contents = pattern.sub(link_munge_2, contents)
      
              # Media links not working
              pattern = re.compile("!\[\]\((?P<url>.*?)\)")
              contents = pattern.sub(url_munge, contents)
      
              file.seek(0)
              file.truncate()
      
              file.write(contents)
      
      ```
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      af5a2a88
    • Martyn Welch's avatar
      Unbreak page because of spurious code block deliminator · 35d4de00
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      35d4de00
    • Martyn Welch's avatar
      Convert hotdoc code blocks · 1495ab3f
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      Hotdoc allows "---" to be used for a code block, this is not supported
      by Hugo, it needs to use "```". Convert uses of the former with:
      
        sed 's/^---$/```/' -i *
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      1495ab3f
    • Martyn Welch's avatar
      Convert hotdoc metadata to Hugo frontmatter · 6858b920
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      Convert the existing metadata stored at the front of each file to
      frontmatter formatted for Hugo:
      
       - Remove authors as we don't have an equivalent for that in Hugo
       - Add in fields that the existing metadata doesn't have
       - Include aliases to allow us to point to the new pages from a
         redirect on designs.apertis.org
       - Ensure we have a title (based on filename if one not present)
      
      All frontmatter created in toml format to stay consistent with existing
      documents.
      
      Converted using the following python script:
      ```
      
      import os
      import re
      import sys
      import toml
      import yaml
      
      for filename in os.listdir(sys.argv[1]):
          print("%s: " % filename)
          with open(filename, 'r+') as file:
              contents = file.read()
              if contents[0:3] == "+++":
                  # We have toml
                  data = toml.loads(contents.split("+++")[1])
                  doc = "+++".join(contents.split("+++")[2:])
              elif contents[0:3] == "---":
                  # We have yaml
                  data = yaml.load(contents.split("---")[1])
                  doc = "---".join(contents.split("---")[2:])
              else:
                  # No frontmatter
                  data = {}
                  doc = contents
      
              if not "title" in data.keys():
                  data["title"] = filename.split(".")[0].replace('_', ' ').capitalize()
      
              data["weight"] = 100
              data["aliases"] = ["/old-designs/latest/%s" % filename.replace(".md", ".html")]
      
              data["outputs"] = ["html", "pdf-in"]
      
              if "authors" in data.keys():
                  del data["authors"]
      
              file.seek(0)
              file.truncate()
      
              file.write("+++\n")
              file.write(toml.dumps(data))
              file.write("+++")
              file.write(doc)
      ```
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      6858b920
    • Martyn Welch's avatar
      Manual tweaks to add titles · 04408e7f
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      Some of the pages lack titles, others are just menu items we don't
      need. Tweak the pages with initial pass to give them all titles and
      remove stuff we don't need (we will be sorting the designs anyway).
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      04408e7f
    • Martyn Welch's avatar
      Add media from designs.apertis.org · 13f39020
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      Copy all the media files from the designs.apertis.org website under
      "images" where we currently have all the website media.
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      13f39020
    • Martyn Welch's avatar
      Add designs from designs.a.o · c21b22f9
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      Add the designs from designs.a.o with the minimum changes to get the
      site to build. This essentially required to trailing marker for the
      metadata to be changed from "..." to "---".
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      c21b22f9
  17. Jul 27, 2020
  18. Jul 24, 2020
    • Martyn Welch's avatar
      Move contribution process from designs.a.o to policies · ab8bc548
      Martyn Welch authored and Emanuele Aina's avatar Emanuele Aina committed
      
      We have a stub in guidelines for the contribution process. Move the
      content over from designs.a.o and move to policies.
      
      Add in alias for `old-designs` to record the location used on
      designs.a.o that we can be used once we've dropped all the contents
      of designs.a.o as a redirect to the website.
      
      Flag file to be generated as PDF since it's a document from
      designs.a.o.
      
      Remove `guidelines` from the main page as it's now empty.
      
      Signed-off-by: default avatarMartyn Welch <martyn.welch@collabora.com>
      ab8bc548
Loading